diff --git a/awx/ui/static/js/awx-min.js b/awx/ui/static/js/awx-min.js index ddc15db11d..1f7b3a9801 100644 --- a/awx/ui/static/js/awx-min.js +++ b/awx/ui/static/js/awx-min.js @@ -4,7 +4,7 @@ * * awx-min.js * - * master-09cebfc, Tue Jul 9 00:09:37 2013 -0400 + * master-aa780ad, Tue Jul 9 14:48:58 2013 -0400 * */ var urlPrefix="/static/"; @@ -53,10 +53,10 @@ action:function(a){q({inventory_id:I,group_id:$(a).attr("group_id")})}},edit:{la !1,y.groupDeleteHide=!1,y.createButtonShow=!0,y.group_id=d.attr("group_id"),y.groupName=b.data,y.groupTitle=b.data,y.groupTitle+=d.attr("description")?" -"+d.attr("description"):""):"inventory"==c&&(e=d.attr("hosts"),y.groupAddHide=!1,y.groupEditHide=!0,y.groupDeleteHide=!0,y.createButtonShow=!1,y.groupName="All Hosts",y.groupTitle="All Hosts",y.group_id=null);y.relatedSets.hosts={url:e,iterator:"host"};z({scope:y,form:f,relatedSets:y.relatedSets});w({scope:y,relatedSets:y.relatedSets});y.search("host"); y.$$phase||y.$digest()});y.addGroup=function(){q({inventory_id:I,group_id:y.group_id})};y.editGroup=function(){v({inventory_id:I,group_id:y.group_id})};y.deleteGroup=function(){E({scope:y,inventory_id:I,group_id:y.group_id})};y.selectHost=function(){F({scope:y,inventory_id:I,group_id:y.group_id})};y.createHost=function(){D({scope:y,inventory_id:I,group_id:y.group_id})};y.editHost=function(a,b){r({scope:y,inventory_id:I,group_id:y.group_id,host_id:a,host_name:b})};y.deleteHost=function(a,b){K({scope:y, inventory_id:I,group_id:y.group_id,host_id:a,host_name:b})};y.showEvents=function(a,c){l.setUrl(c);l.get().success(function(d,c,f,e){b({path:"/jobs/"+d.id,title:d.name});g.url("/jobs/"+d.id+"/job_events/?host="+escape(a))}).error(function(a,b,e,l){d(y,a,b,f,{hdr:"Error!",msg:"Failed to lookup last job: "+c+". GET status: "+b})})}}InventoriesEdit.$inject="$scope $rootScope $compile $location $log $routeParams InventoryForm GenerateForm Rest Alert ProcessErrors LoadBreadCrumbs RelatedSearchInit RelatedPaginateInit ReturnToCaller ClearScope LookUpInit Prompt OrganizationList TreeInit GetBasePath GroupsList GroupsEdit LoadInventory GroupsDelete HostsList HostsAdd HostsEdit HostsDelete RefreshTree ParseTypeChange".split(" ");function JobEventsList(h,m,k,g,c,p,f,e,l,a,d,b,z,w,B,u,x,t,s,n,C){B("htmlTemplate");e.base=k.path();h=x("jobs")+c.id+"/job_events/";k.path().replace(/^\//,"").split("/");var q=l.inject(e,{mode:"edit"});m.flashMessage=null;q.selected=[];q.expand=!0;q.parentNode="parent-event";q.childNode="child-event";q.RemovePostRefresh&&q.RemovePostRefresh();q.RemovePostRefresh=q.$on("PostRefresh",function(){for(var a=q[e.name],b,d=0;d -a[d].event_level)a[d].ngclick="toggleChildren("+a[d].id+', "'+a[d].related.children+'")',a[d].ngicon="icon-collapse-alt",a[d]["class"]="parentNode";else{a[d]["class"]="childNode";b=a[d];var c=a[d].event_data,f="";if(c.res){var l=!1,n=void 0,n=void 0;if("string"==typeof c.res)n=(n=c.res.match(/\n/g))?n.length:1,l=!0,f+="\n",f+='\n";else{var k=void 0;for(k in c.res)if(("msg"==k||"stdout"==k||"stderr"== -k)&&null!==c.res[k]&&""!==c.res[k]){f+="\n";n=(n=c.res[k].match(/\n/g))?n.length:1;f+='\n";l=!0}}f=l?'
\n'+f+"
\n":""}f=""==f?null:f;b.event_detail=f}a[d].show=!0;a[d].spaces=24*a[d].event_level;q.jobevents[d].status=q.jobevents[d].failed?"error":q.jobevents[d].changed?"changed":"success";b= -new Date(a[d].created);a[d].created=C(b)}});b({scope:q,set:"jobevents",list:e,url:h});z({scope:q,list:e,url:h});c.host&&(q[e.iterator+"SearchField"]="host",q[e.iterator+"SearchValue"]=c.host,q[e.iterator+"SearchFieldLabel"]=e.fields.host.label);q.search(e.iterator);q.toggleChildren=function(a,b){s({scope:q,list:e,id:a,children:b})};a();q.viewJobEvent=function(a){n({event_id:a})};q.refresh=function(){q.expand=!0;q.search(e.iterator)};q.jobDetails=function(){k.path("/jobs/"+c.id)};q.jobSummary=function(){k.path("/jobs/"+ -c.id+"/job_host_summaries")}}JobEventsList.$inject="$scope $rootScope $location $log $routeParams Rest Alert JobEventList GenerateList LoadBreadCrumbs Prompt SearchInit PaginateInit ReturnToCaller ClearScope ProcessErrors GetBasePath LookUpInit ToggleChildren EventView FormatDate".split(" "); +a[d].event_level)a[d].ngclick="toggleChildren("+a[d].id+', "'+a[d].related.children+'")',a[d].ngicon="icon-collapse-alt",a[d]["class"]="parentNode";else{a[d]["class"]="childNode";b=a[d];var c=a[d].event_data,f="";if(c.res){var l=!1,n=void 0,n=void 0;if("string"==typeof c.res)n=(n=c.res.match(/\n/g))?n.length:1,l=!0,f+="\n",f+='\n";else{var k=void 0;for(k in c.res){if(("msg"==k||"stdout"==k||"stderr"== +k)&&null!==c.res[k]&&""!==c.res[k]){f+="\n";n=(n=c.res[k].match(/\n/g))?n.length:1;f+='\n";l=!0}if("results"==k&&Array.isArray(c.res[k])&&0Results:\n";l="";for(n=0;n'+l+"\n";l=!0}"rc"== +k&&0!=c.res[k]&&(f+="\n",f+='\n',l=!0)}}f=l?'
\n'+f+"
\n":""}f=""==f?null:f;b.event_detail=f}a[d].show=!0;a[d].spaces=24*a[d].event_level;q.jobevents[d].status=q.jobevents[d].failed?"error":q.jobevents[d].changed?"changed":"success";b=new Date(a[d].created);a[d].created=C(b)}});b({scope:q,set:"jobevents",list:e,url:h});z({scope:q,list:e,url:h});c.host&&(q[e.iterator+"SearchField"]="host",q[e.iterator+ +"SearchValue"]=c.host,q[e.iterator+"SearchFieldLabel"]=e.fields.host.label);q.search(e.iterator);q.toggleChildren=function(a,b){s({scope:q,list:e,id:a,children:b})};a();q.viewJobEvent=function(a){n({event_id:a})};q.refresh=function(){q.expand=!0;q.search(e.iterator)};q.jobDetails=function(){k.path("/jobs/"+c.id)};q.jobSummary=function(){k.path("/jobs/"+c.id+"/job_host_summaries")}}JobEventsList.$inject="$scope $rootScope $location $log $routeParams Rest Alert JobEventList GenerateList LoadBreadCrumbs Prompt SearchInit PaginateInit ReturnToCaller ClearScope ProcessErrors GetBasePath LookUpInit ToggleChildren EventView FormatDate".split(" "); function JobEventsEdit(h,m,k,g,c,p,f,e,l,a,d,b,z,w,B){z("htmlTemplate");var u=e.inject(f,{mode:"edit",related:!0});e.reset();h=w("base")+"job_events/"+p.event_id+"/";g.path().replace(/^\//,"").split("/");l.setUrl(h);l.get().success(function(a,d,c,e){b({path:"/job_events/"+p.event_id,title:a.event});for(var l in f.fields)"status"==l?u.status=a.failed?"error":"success":"event_data"==l?u.event_data=JSON.stringify(a.event_data,void 0,"\t"):"created"==l?u.created=B(new Date(a.created)):a[l]&&(u[l]=a[l])}).error(function(a, b,c,e){d(u,a,b,f,{hdr:"Error!",msg:"Failed to retrieve event detail: "+p.event_id+". GET status: "+b})})}JobEventsEdit.$inject="$scope $rootScope $compile $location $log $routeParams JobEventForm GenerateForm Rest Alert ProcessErrors LoadBreadCrumbs ClearScope GetBasePath FormatDate".split(" ");function JobHostSummaryList(h,m,k,g,c,p,f,e,l,a,d,b,z,w,B,u,x){B("htmlTemplate");h=x("jobs")+c.id+"/job_host_summaries/";k.path().replace(/^\//,"").split("/");var t=l.inject(e,{mode:"edit"});t.selected=[];t.PostRefreshRemove&&t.PostRefreshRemove();t.PostRefershRemove=t.$on("PostRefresh",function(){for(var a=0;a\n';for(var u=0;u\n',f+='\n",f+='
\n',f+='\n';for(var u=0;u\n',f+='\n",f+='
\n',f+='A value is required!\n',f+='\n',f+="
\n",f+="
\n",w=z.associated,z=h.fields[z.associated],a[w]="",f+='
\n',f+='\n",f+='
\n',f+='A value is required!\n',z.awPassMatch&&(f+='Must match Password value\n'),f+='\n',f+="
\n",f+="
\n";f+="\n";d=angular.element(document.getElementById("password-body"));d.html(f);m(d.contents())(a); $("#password-modal").modal({})}}]).factory("SubmitJob",["PromptPasswords","$compile","Rest","$location","GetBasePath","CredentialList","LookUpInit","JobTemplateForm","ProcessErrors",function(h,m,k,g,c,p,f,e,l){return function(a){function d(a){b.credentialWatchRemove&&b.credentialWatchRemove();var d=(new Date).toISOString(),c=w?w:a.name;k.setUrl(a.related.jobs?a.related.jobs:a.related.job_template+"jobs/");k.post({name:c+" "+d,description:a.description,job_template:a.id,inventory:a.inventory,project:a.project, @@ -240,7 +240,7 @@ f[d.name][c][l.fields[b].sourceField],e[l.name+"_form"][l.fields[b].sourceModel+ "_"+f[d.name][b].id+"_class"]="";null!=a&&void 0!=a&&(f[d.iterator+"_"+a+"_class"]="success")};g({scope:f,set:d.name,list:d,url:B});c({scope:f,list:d,url:B,mode:"lookup"});f.search(d.iterator);if(a)f["toggle_"+d.iterator](a)}}}]);angular.module("md5Helper",["RestServices","Utilities"]).factory("md5Setup",["Alert","Rest","GetBasePath","ProcessErrors",function(h,m,k,g){return function(c){var g=c.scope,f=c.master,e=c.check_field;c=c.default_val;g[e]=c;f[e]=c;g.genMD5=function(c){g[c]=$.md5("AnsibleWorks"+(new Date).getTime())};g.toggleCallback=function(c){"false"==g.allow_callbacks&&(g[c]=null)};g.selectAll=function(c){$('input[name="'+c+'"]').focus().select()}}}]);angular.module("PaginateHelper",["RefreshHelper"]).factory("PaginateInit",["Refresh",function(h){return function(m){var k=m.scope,g=m.list,g=m.iterator?m.iterator:g.iterator,c=m.url,p=m.mode?m.mode:null;k[g+"Page"]=0;k[g+"PageSize"]=m.pageSize?m.pageSize:"lookup"==p?5:20;k.nextSet=function(c,e){k[e+"NextUrl"]&&(k[e+"Page"]++,h({scope:k,set:c,iterator:e,url:k[e+"NextUrl"]}))};k.prevSet=function(c,e){k[e+"PrevUrl"]&&(k[e+"Page"]--,h({scope:k,set:c,iterator:e,url:k[e+"PrevUrl"]}))};k.changePageSize= function(f,e){k[e+"Page"]=0;var l=c.replace(/\?page_size\=\d+/,""),a=/\/$/.test(l)?"?":"&",l=l+(k[e+"SearchParams"]?a+k[e+"SearchParams"]+"&page_size="+k[e+"PageSize"]:+a+"page_size="+k[e+"PageSize"]);h({scope:k,set:f,iterator:e,url:l})}}}]);angular.module("ParseHelper",[]).factory("ParseTypeChange",[function(){return function(h){h.blockParseTypeWatch=!1;h.blockVariableDataWatch=!1;h.removeParseTypeWatch&&h.removeParseTypeWatch();h.removeParseTypeWatch=h.$watch("parseType",function(m,k){if(m!==k)if("json"==m)if(h.variables&&!/^---$/.test(h.variables))try{var g=jsyaml.load(h.variables);h.variables=JSON.stringify(g,null," ")}catch(c){}else h.variables="{}";else if(h.variables&&!/^\{\}$/.test(h.variables))try{g=JSON.parse(h.variables),h.variables= jsyaml.safeDump(g)}catch(p){}else h.variables="---"})}}]);angular.module("ProjectPathHelper",["RestServices","Utilities"]).factory("GetProjectPath",["Alert","Rest","GetBasePath","ProcessErrors",function(h,m,k,g){return function(c){var p=c.scope,f=c.master;m.setUrl(k("config"));m.get().success(function(c,l,a,d){l=[];for(a=0;a button to create a new user.',editInstructions:"Create a new credential from either the Teams tab or the Users tab. Teams and Users each have an associated set of Credentials.",index:!0, +function(c,e){for(var l=[],a=0;a button to create a new user.',editInstructions:"Create a new credential from either the Teams tab or the Users tab. Teams and Users each have an associated set of Credentials.",index:!0, hover:!0,fields:{name:{key:!0,label:"Name"},description:{label:"Description"},team:{label:"Team",ngBind:"credential.summary_fields.team.name",sourceModel:"team",sourceField:"name"},user:{label:"User",ngBind:"credential.summary_fields.user.usename",sourceModel:"user",sourceField:"username"}},actions:{add:{icon:"icon-plus",label:"Add",mode:"all",ngClick:"addCredential()",basePaths:["teams","users"],"class":"btn-success btn-small",awToolTip:"Create a new credential"}},fieldActions:{edit:{ngClick:"editCredential({{ credential.id }})", icon:"icon-edit",label:"Edit","class":"btn-small btn-success",awToolTip:"View/Edit credential"},"delete":{ngClick:"deleteCredential({{ credential.id }},'{{ credential.name }}')",icon:"icon-remove",label:"Delete","class":"btn-small btn-danger",awToolTip:"Delete credential"}}});angular.module("GroupListDefinition",[]).value("GroupList",{name:"groups",iterator:"group",selectTitle:"Add Group",editTitle:"Groups",index:!0,well:!1,fields:{name:{key:!0,label:"Name"},description:{label:"Description"}},actions:{add:{label:"Create New Group",icon:"icon-plus",mode:"all",ngClick:"createGroup()","class":"btn-success btn-small",awToolTip:"Create a new group"}},fieldActions:{edit:{label:"Edit",ngClick:"editGroup({{ group.id }})",icon:"icon-edit","class":"btn-small btn-success",awToolTip:"View/Edit group"}, "delete":{label:"Delete",ngClick:"deleteGroup({{ group.id }},'{{ group.name }}')",icon:"icon-remove","class":"btn-small btn-danger",awToolTip:"Delete group"}}});angular.module("HostListDefinition",[]).value("HostList",{name:"hosts",iterator:"host",selectTitle:"Select Host",editTitle:"Hosts",index:!0,well:!0,fields:{name:{key:!0,label:"Host Name",linkTo:"/inventories/{{ inventory_id }}/hosts/{{ host.id }}"},description:{label:"Description"}},actions:{},fieldActions:{edit:{label:"Edit",ngClick:"editHost({{ host.id }})",icon:"icon-edit","class":"btn-small btn-success",awToolTip:"View/Edit host"},"delete":{label:"Delete",ngClick:"deleteHost({{ host.id }},'{{ host.name }}')", diff --git a/awx/ui/static/js/controllers/JobEvents.js b/awx/ui/static/js/controllers/JobEvents.js index 5afbb7f17e..93ad25fa77 100644 --- a/awx/ui/static/js/controllers/JobEvents.js +++ b/awx/ui/static/js/controllers/JobEvents.js @@ -65,6 +65,21 @@ function JobEventsList ($scope, $rootScope, $location, $log, $routeParams, Rest, html += "\n"; found = true; } + if ( fld == "results" && Array.isArray(eventData.res[fld]) && eventData.res[fld].length > 0 ) { + html += "\n"; + //html += "\n"; + found = true; + } + if (fld == "rc" && eventData.res[fld] != 0) { + html += "\n"; + html += "\n"; + found = true; + } } } html = (found) ? "
\n" + html + "
\n" : '';