Latest UI changes. Add button labels on all pages.

This commit is contained in:
chouseknecht
2013-05-24 07:43:06 -04:00
parent 8b919b666f
commit b4709c5138
33 changed files with 2351 additions and 518 deletions

View File

@@ -262,8 +262,8 @@ function InventoriesEdit ($scope, $rootScope, $compile, $location, $log, $routeP
TreeInit({ scope: scope, inventory: data });
// Initialize related search functions. Doing it here to make sure relatedSets object is populated.
RelatedSearchInit({ scope: scope, form: form, relatedSets: relatedSets });
RelatedPaginateInit({ scope: scope, relatedSets: relatedSets });
//RelatedSearchInit({ scope: scope, form: form, relatedSets: relatedSets });
//RelatedPaginateInit({ scope: scope, relatedSets: relatedSets });
scope.$emit('inventoryLoaded');
})
.error( function(data, status, headers, config) {

View File

@@ -469,7 +469,7 @@ function JobTemplatesEdit ($scope, $rootScope, $compile, $location, $log, $route
})
.error( function(data, status, headers, config) {
ProcessErrors(scope, data, status, form,
{ hdr: 'Error!', msg: 'Failed to retrieve job template: ' + $routeParams.id + '. GET status: ' + status });
{ hdr: 'Error!', msg: 'Failed to retrieve job template: ' + $routeParams.id + '. GET status: ' + status });
});
// Save changes to the parent
@@ -491,7 +491,7 @@ function JobTemplatesEdit ($scope, $rootScope, $compile, $location, $log, $route
})
.error( function(data, status, headers, config) {
ProcessErrors(scope, data, status, form,
{ hdr: 'Error!', msg: 'Failed to update team: ' + $routeParams.id + '. PUT status: ' + status });
{ hdr: 'Error!', msg: 'Failed to update team: ' + $routeParams.id + '. PUT status: ' + status });
});
};

View File

@@ -54,7 +54,7 @@ function JobsListCtrl ($scope, $rootScope, $location, $log, $routeParams, Rest,
var url, action_label, restcall, hdr;
if (data.status == 'pending') {
if (data.status == 'pending' || data.status == 'running') {
url = data.related.cancel;
action_label = 'cancel';
hdr = 'Cancel Job';
@@ -274,7 +274,7 @@ function JobsEdit ($scope, $rootScope, $compile, $location, $log, $routeParams,
// Save changes to the parent
scope.formSave = function() {
Rest.setUrl(defaultUrl + $routeParams.id);
Rest.setUrl(defaultUrl + $routeParams.id + '/');
var data = {}
for (var fld in form.fields) {
if (form.fields[fld].type == 'select' && fld != 'playbook') {
@@ -291,7 +291,7 @@ function JobsEdit ($scope, $rootScope, $compile, $location, $log, $routeParams,
})
.error( function(data, status, headers, config) {
ProcessErrors(scope, data, status, form,
{ hdr: 'Error!', msg: 'Failed to update team: ' + $routeParams.id + '. PUT status: ' + status });
{ hdr: 'Error!', msg: 'Failed to update job ' + $routeParams.id + '. PUT returned status: ' + status });
});
};

View File

@@ -276,7 +276,7 @@ function TeamsEdit ($scope, $rootScope, $compile, $location, $log, $routeParams,
// Save changes to the parent
scope.formSave = function() {
Rest.setUrl(defaultUrl + $routeParams.id);
Rest.setUrl(defaultUrl + $routeParams.id +'/');
var data = {}
for (var fld in form.fields) {
data[fld] = scope[fld];

View File

@@ -160,23 +160,26 @@ angular.module('JobFormDefinition', [])
statusActions: {
refresh: {
label: 'Refresh',
icon: 'icon-refresh',
ngClick: "refresh()",
class: 'btn-small',
class: 'btn-small btn-success',
awToolTip: 'Refresh job status & output',
mode: 'all'
},
summary: {
label: 'Hosts',
icon: 'icon-filter',
ngClick: "jobSummary()",
class: 'btn-success btn-small',
class: 'btn-info btn-small',
awToolTip: 'View host summary',
mode: 'all'
},
events: {
label: 'Events',
icon: 'icon-list-ul',
ngClick: "jobEvents()",
class: 'btn-success btn-small',
class: 'btn-info btn-small',
awToolTip: 'View job events',
mode: 'all',
}

View File

@@ -23,10 +23,8 @@ angular.module('RefreshRelatedHelper', ['RestServices', 'Utilities'])
var iterator = params.iterator;
var url = params.url;
url.replace(/page_size\=\d+/,''); //stop repeatedly appending page_size
Rest.setUrl(url);
Rest.get({ params: { page_size: scope[iterator + 'PageSize'] }})
Rest.get()
.success( function(data, status, headers, config) {
scope[set] = data['results'];
scope[iterator + 'NextUrl'] = data.next;

View File

@@ -23,7 +23,7 @@ angular.module('RelatedPaginateHelper', ['RefreshRelatedHelper'])
for (var key in relatedSets){
scope[relatedSets[key].iterator + 'Page'] = 0;
scope[relatedSets[key].iterator + 'PageSize'] = 20;
scope[relatedSets[key].iterator + 'PageSize'] = 10;
}
scope.nextSet = function(set, iterator) {
@@ -38,15 +38,18 @@ angular.module('RelatedPaginateHelper', ['RefreshRelatedHelper'])
scope.changePageSize = function(set, iterator) {
// Called when a new page size is selected
var defaultUrl;
var url;
scope[iterator + 'Page'] = 0;
for (var key in relatedSets) {
if (key == set) {
defaultUrl = relatedSets[key].url;
url = relatedSets[key].url;
break;
}
}
RefreshRelated({ scope: scope, set: set, iterator: iterator, url: defaultUrl });
url = url.replace(/\/\?.*$/,'/');
url += (scope[iterator + 'SearchParams']) ? scope[iterator + 'SearchParams'] + '&page_size=' + scope[iterator + 'PageSize' ] :
'?page_size=' + scope[iterator + 'PageSize' ];
RefreshRelated({ scope: scope, set: set, iterator: iterator, url: url });
}
}
}]);

View File

@@ -69,13 +69,15 @@ angular.module('RelatedSearchHelper', ['RestServices', 'Utilities','RefreshRelat
}
}
if (scope[model + 'SearchValue'] != '' && scope[model + 'SearchValue'] != undefined) {
url += '?' + scope[model + 'SearchField'] +
scope[model + 'SearchParams'] = '?' + scope[model + 'SearchField'] +
'__' + scope[model + 'SearchType'] + '=' + escape(scope[model + 'SearchValue']);
url += (default_order) ? '&order_by=' + escape(default_order) : '';
scope[model + 'SearchParams'] += (default_order) ? '&order_by=' + escape(default_order) : '';
}
else {
url += (default_order) ? '?order_by=' + escape(default_order) : '';
scope[model + 'SearchParams'] = (default_order) ? '?order_by=' + escape(default_order) : '';
}
url += scope[model + 'SearchParams'];
url += (scope[model + 'PageSize']) ? '&page_size=' + scope[iterator + 'PageSize'] : "";
RefreshRelated({ scope: scope, set: set, iterator: iterator, url: url });
}
}

View File

@@ -44,10 +44,11 @@ angular.module('CredentialsListDefinition', [])
actions: {
add: {
icon: 'icon-plus',
label: 'Add',
mode: 'all', // One of: edit, select, all
ngClick: 'addCredential()',
basePaths: ['teams','users'], // base path must be in list, or action not available
class: 'btn-success',
class: 'btn-success btn-small',
awToolTip: 'Create a new credential'
}
},
@@ -56,14 +57,16 @@ angular.module('CredentialsListDefinition', [])
edit: {
ngClick: "editCredential(\{\{ credential.id \}\})",
icon: 'icon-edit',
class: 'btn-mini',
label: 'Edit',
class: 'btn-small',
awToolTip: 'View/Edit credential'
},
delete: {
ngClick: "deleteCredential(\{\{ credential.id \}\},'\{\{ credential.name \}\}')",
icon: 'icon-remove',
class: 'btn-mini btn-danger',
label: 'Delete',
class: 'btn-small btn-danger',
awToolTip: 'Delete credential'
}
}

View File

@@ -29,26 +29,29 @@ angular.module('GroupListDefinition', [])
actions: {
add: {
label: 'Add',
icon: 'icon-plus',
mode: 'all', // One of: edit, select, all
ngClick: 'addGroup()',
class: 'btn-success',
class: 'btn-success btn-small',
awToolTip: 'Create a new group'
}
},
fieldActions: {
edit: {
label: 'Edit',
ngClick: "editGroup(\{\{ group.id \}\})",
icon: 'icon-edit',
class: 'btn-mini',
class: 'btn-small',
awToolTip: 'View/Edit group'
},
delete: {
label: 'Delete',
ngClick: "deleteGroup(\{\{ group.id \}\},'\{\{ group.name \}\}')",
icon: 'icon-remove',
class: 'btn-mini btn-danger',
class: 'btn-small btn-danger',
awToolTip: 'Delete group'
}
}

View File

@@ -30,25 +30,28 @@ angular.module('HostListDefinition', [])
actions: {
add: {
icon: 'icon-plus',
label: 'Add',
mode: 'all', // One of: edit, select, all
ngClick: 'addHost()',
class: 'btn-success',
class: 'btn-success btn-small',
awToolTip: 'Create a new host'
}
},
fieldActions: {
edit: {
label: 'Edit',
ngClick: "editHost(\{\{ host.id \}\})",
icon: 'icon-edit',
class: 'btn-mini',
class: 'btn-small',
awToolTip: 'View/Edit host'
},
delete: {
label: 'Delete',
ngClick: "deleteHost(\{\{ host.id \}\},'\{\{ host.name \}\}')",
icon: 'icon-remove',
class: 'btn-mini btn-danger',
class: 'btn-small btn-danger',
awToolTip: 'Delete host'
}
}

View File

@@ -35,26 +35,29 @@ angular.module('InventoriesListDefinition', [])
actions: {
add: {
label: 'Add',
icon: 'icon-plus',
mode: 'all', // One of: edit, select, all
ngClick: 'addInventory()',
class: 'btn-success',
class: 'btn-small btn-success',
awToolTip: 'Create a new row'
}
},
fieldActions: {
edit: {
label: 'Edit',
ngClick: "editInventory(\{\{ inventory.id \}\})",
icon: 'icon-edit',
class: 'btn-mini',
class: 'btn-small',
awToolTip: 'View/Edit inventory'
},
delete: {
label: 'Delete',
ngClick: "deleteInventory(\{\{ inventory.id \}\},'\{\{ inventory.name \}\}')",
icon: 'icon-remove',
class: 'btn-mini btn-danger',
class: 'btn-small btn-danger',
awToolTip: 'Delete'
}
}

View File

@@ -51,21 +51,24 @@ angular.module('JobEventsListDefinition', [])
refresh: {
ngClick: "refresh()",
icon: 'icon-refresh',
label: 'Refresh',
awToolTip: 'Refresh the page',
class: 'btn-small',
class: 'btn-small btn-success',
mode: 'all'
},
edit: {
label: 'View',
ngClick: "jobDetails()",
icon: 'icon-edit',
class: 'btn-small',
class: 'btn-small btn-success',
awToolTip: 'View/Edit detail',
mode: 'all'
},
summary: {
label: 'Hosts',
icon: 'icon-filter',
ngClick: "jobSummary()",
class: 'btn-success btn-small',
class: 'btn-info btn-small',
awToolTip: 'View host summary',
mode: 'all'
}
@@ -73,9 +76,10 @@ angular.module('JobEventsListDefinition', [])
fieldActions: {
edit: {
label: 'View',
ngClick: "editJobEvent(\{\{ jobevent.id \}\})",
icon: 'icon-edit',
class: 'btn-mini',
class: 'btn-small',
awToolTip: 'View event detail',
},
}

View File

@@ -54,23 +54,26 @@ angular.module('JobHostDefinition', [])
actions: {
refresh: {
label: 'Refresh',
icon: 'icon-refresh',
ngClick: "refresh()",
class: 'btn-small',
class: 'btn-success btn-small',
awToolTip: 'Refresh the page',
mode: 'all'
},
edit: {
label: 'View',
icon: 'icon-edit',
ngClick: "jobDetails()",
class: 'btn-small',
class: 'btn-success btn-small',
awToolTip: 'View job detail',
mode: 'all'
},
events: {
label: 'Events',
icon: 'icon-list-ul',
ngClick: "jobEvents()",
class: 'btn-success btn-small',
class: 'btn-info btn-small',
awToolTip: 'View job events',
mode: 'all',
}

View File

@@ -29,10 +29,11 @@ angular.module('JobTemplatesListDefinition', [])
actions: {
add: {
label: 'Add',
icon: 'icon-plus',
mode: 'all', // One of: edit, select, all
ngClick: 'addJobTemplate()',
class: 'btn-success',
class: 'btn-success btn-small',
basePaths: ['job_templates'],
awToolTip: 'Create a new template'
}
@@ -40,22 +41,25 @@ angular.module('JobTemplatesListDefinition', [])
fieldActions: {
edit: {
label: 'Edit',
ngClick: "editJobTemplate(\{\{ job_template.id \}\})",
icon: 'icon-edit',
awToolTip: 'View/Edit template',
class: 'btn-mini'
class: 'btn-small'
},
submit: {
icon: 'icon-play',
label: 'Launch',
icon: 'icon-rocket',
mode: 'all',
class: 'btn-mini btn-success',
class: 'btn-small btn-success',
ngClick: 'submitJob(\{\{ job_template.id \}\})',
awToolTip: 'Create and run a job using this template'
},
delete: {
label: 'Delete',
ngClick: "deleteJobTemplate(\{\{ job_template.id \}\},'\{\{ job_template.name \}\}')",
icon: 'icon-remove',
class: 'btn-danger btn-mini',
class: 'btn-danger btn-small',
awToolTip: 'Delete template'
}
}

View File

@@ -50,6 +50,8 @@ angular.module('JobsListDefinition', [])
actions: {
refresh: {
label: 'Refresh',
class: 'btn-success btn-small',
ngClick: "refreshJob(\{\{ job.id \}\})",
icon: 'icon-refresh',
awToolTip: 'Refresh the page',
@@ -59,36 +61,37 @@ angular.module('JobsListDefinition', [])
fieldActions: {
edit: {
ngClick: "editJob(\{\{ job.id \}\}, '\{\{ job.name \}\}')",
icon: 'icon-edit',
class: 'btn-mini',
label: 'View',
ngClick: "editJob(\{\{ job.id \}\}, '\{\{ job.name \}\}')",
class: 'btn-success btn-small',
awToolTip: 'View/Edit detail',
},
summary: {
title: 'Summary',
label: 'Hosts',
icon: 'icon-filter',
ngClick: "viewSummary(\{{ job.id \}\}, '\{\{ job.name \}\}')",
class: 'btn-success btn-mini',
class: 'btn-info btn-small',
awToolTip: 'View host summary',
ngDisabled: "job.status == 'new'"
},
events: {
title: 'Detail',
label: 'Events',
icon: 'icon-list-ul',
mode: 'all',
ngClick: "viewEvents(\{{ job.id \}\}, '\{\{ job.name \}\}')",
class: 'btn-success btn-mini',
class: 'btn-info btn-small',
awToolTip: 'View events',
ngDisabled: "job.status == 'new'"
},
cancel: {
title: 'Cancel',
icon: 'icon-minus-sign',
label: 'Cancel',
mode: 'all',
ngClick: 'deleteJob(\{\{ job.id \}\})',
class: 'btn-danger btn-mini',
class: 'btn-danger btn-small',
awToolTip: 'Cancel job',
ngDisabled: "job.status != 'new' && job.status != 'pending'"
ngDisabled: "job.status != 'new' && job.status != 'pending' && job.status != 'running'"
}
}
});

View File

@@ -28,26 +28,29 @@ angular.module('OrganizationListDefinition', [])
actions: {
add: {
label: 'Add',
icon: 'icon-plus',
mode: 'all', // One of: edit, select, all
ngClick: 'addOrganization()',
class: 'btn-success',
class: 'btn-success btn-small',
awToolTip: 'Create a new row'
}
},
fieldActions: {
edit: {
label: 'Edit',
ngClick: "editOrganization(\{\{ organization.id \}\})",
icon: 'icon-edit',
class: 'btn-mini',
class: 'btn-small',
awToolTip: 'View/Edit organization'
},
delete: {
label: 'Delete',
ngClick: "deleteOrganization(\{\{ organization.id \}\},'\{\{ organization.name \}\}')",
icon: 'icon-remove',
class: 'btn-mini btn-danger',
class: 'btn-small btn-danger',
awToolTip: 'Delete organization'
}
}

View File

@@ -29,26 +29,29 @@ angular.module('ProjectsListDefinition', [])
actions: {
add: {
label: 'Add',
icon: 'icon-plus',
mode: 'all', // One of: edit, select, all
ngClick: 'addProject()',
class: 'btn-success',
class: 'btn-success btn-small',
awToolTip: 'Create a new project'
}
},
fieldActions: {
edit: {
label: 'Edit',
ngClick: "editProject(\{\{ project.id \}\})",
icon: 'icon-edit',
class: 'btn-mini',
class: 'btn-small',
awToolTip: 'View/edit project'
},
delete: {
label: 'Delete',
ngClick: "deleteProject(\{\{ project.id \}\},'\{\{ project.name \}\}')",
icon: 'icon-remove',
class: 'btn-mini btn-danger',
class: 'btn-small btn-danger',
awToolTip: 'Delete project'
}
}

View File

@@ -35,26 +35,29 @@ angular.module('TeamsListDefinition', [])
actions: {
add: {
label: 'Add',
icon: 'icon-plus',
mode: 'all', // One of: edit, select, all
ngClick: 'addTeam()',
class: 'btn-success',
class: 'btn-success btn-small',
awToolTip: 'Create a new team'
}
},
fieldActions: {
edit: {
label: 'Edit',
ngClick: "editTeam(\{\{ team.id \}\})",
icon: 'icon-edit',
class: 'btn-mini',
class: 'btn-small',
awToolTip: 'View/Edit team'
},
delete: {
label: 'Delete',
ngClick: "deleteTeam(\{\{ team.id \}\},'\{\{ team.name \}\}')",
icon: 'icon-remove',
class: 'btn-mini btn-danger',
class: 'btn-small btn-danger',
awToolTip: 'Delete team'
}
}

View File

@@ -33,27 +33,30 @@ angular.module('UserListDefinition', [])
actions: {
add: {
label: 'Add',
icon: 'icon-plus',
mode: 'select', // One of: edit, select, all
ngClick: 'addUser()',
basePaths: ['organizations'], // base path must be in list, or action not available
class: 'btn-success',
class: 'btn-success btn-small',
awToolTip: 'Create a new user'
}
},
fieldActions: {
edit: {
label: 'Edit',
ngClick: "editUser(\{\{ user.id \}\})",
icon: 'icon-edit',
class: 'btn-mini',
class: 'btn-small',
awToolTip: 'View/Edit user'
},
delete: {
label: 'Delete',
ngClick: "deleteUser(\{\{ user.id \}\},'\{\{ user.username \}\}')",
icon: 'icon-remove',
class: 'btn-mini btn-danger',
class: 'btn-small btn-danger',
awToolTip: 'Delete user'
}
}