AC-983 long group names, AC-970 don't hightlight required fields in red, AC-966 fixed ansibleworks links to point to ansible, AC-733 new pagination widget, page and total rows.

This commit is contained in:
Chris Houseknecht
2014-01-28 01:02:34 -05:00
parent 27fb54b2a7
commit cb8ec978de
30 changed files with 397 additions and 426 deletions

View File

@@ -10,7 +10,7 @@
'use strict';
angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', 'GroupListDefinition',
'SearchHelper', 'PaginateHelper', 'ListGenerator', 'AuthService', 'GroupsHelper',
'SearchHelper', 'PaginationHelpers', 'ListGenerator', 'AuthService', 'GroupsHelper',
'InventoryHelper', 'SelectionHelper', 'JobSubmissionHelper', 'RefreshHelper',
'PromptDialog', 'InventorySummaryHelpDefinition', 'CredentialsListDefinition',
'InventoryTree'

View File

@@ -8,9 +8,9 @@
*/
angular.module('HostsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', 'HostListDefinition',
'SearchHelper', 'PaginateHelper', 'ListGenerator', 'AuthService', 'HostsHelper',
'InventoryHelper', 'RelatedSearchHelper','RelatedPaginateHelper',
'InventoryFormDefinition', 'SelectionHelper', 'HostGroupsFormDefinition'
'SearchHelper', 'PaginationHelpers', 'ListGenerator', 'AuthService', 'HostsHelper',
'InventoryHelper', 'RelatedSearchHelper', 'InventoryFormDefinition', 'SelectionHelper',
'HostGroupsFormDefinition'
])

View File

@@ -14,7 +14,7 @@
* })
*/
angular.module('LookUpHelper', [ 'RestServices', 'Utilities', 'SearchHelper', 'PaginateHelper', 'ListGenerator', 'ApiLoader' ])
angular.module('LookUpHelper', [ 'RestServices', 'Utilities', 'SearchHelper', 'PaginationHelpers', 'ListGenerator', 'ApiLoader' ])
.factory('LookUpInit', ['Alert', 'Rest', 'GenerateList', 'SearchInit', 'PaginateInit', 'GetBasePath', 'FormatDate', 'Empty',
function(Alert, Rest, GenerateList, SearchInit, PaginateInit, GetBasePath, FormatDate, Empty) {
return function(params) {

View File

@@ -0,0 +1,169 @@
/*********************************************
* Copyright (c) 2014 AnsibleWorks, Inc.
*
* PaginationHelpers.js
*
*/
angular.module('PaginationHelpers', ['Utilities', 'RefreshHelper', 'RefreshRelatedHelper'])
.factory('PageRangeSetup', ['Empty', function(Empty) {
return function(params) {
var scope = params.scope;
var count = params.count;
var next = params.next;
var previous = params.previous;
var iterator = params.iterator;
scope[iterator + '_page'] = 1;
scope[iterator + '_num_pages'] = Math.ceil((count / scope[iterator + '_page_size']));
scope[iterator + '_num_pages'] = (scope[iterator + '_num_pages'] <= 0) ? 1 : scope[iterator + '_num_pages'];
scope[iterator + '_total_rows'] = count;
// Which page are we on?
if ( Empty(next) && previous ) {
// no next page, but there is a previous page
scope[iterator + '_page'] = parseInt(previous.match(/page=\d+/)[0].replace(/page=/,'')) + 1;
}
else if ( next && Empty(previous) ) {
// next page available, but no previous page
scope[iterator + '_page'] = 1;
}
else if ( next && previous ) {
// we're in between next and previous
scope[iterator + '_page'] = parseInt(previous.match(/page=\d+/)[0].replace(/page=/,'')) + 1;
}
// Calc the range of up to 10 pages to show
scope[iterator + '_page_range'] = new Array();
var first = (scope[iterator + '_page'] > 5) ? scope[iterator + '_page'] - 5 : 1;
if (scope[iterator + '_page'] < 6) {
var last = (10 <= scope[iterator + '_num_pages']) ? 10 : scope[iterator + '_num_pages'];
}
else {
var last = (scope[iterator + '_page'] + 4 < scope[iterator + '_num_pages']) ?
scope[iterator + '_page'] + 4 : scope[iterator + '_num_pages'];
}
for (var i=first; i <= last; i++) {
scope[iterator + '_page_range'].push(i);
}
}
}])
.factory('RelatedPaginateInit', [ 'RefreshRelated', '$cookieStore',
function(RefreshRelated, $cookieStore) {
return function(params) {
var scope = params.scope;
var relatedSets = params.relatedSets;
var pageSize = (params.pageSize) ? params.pageSize : 10;
for (var key in relatedSets){
cookieSize = $cookieStore.get(relatedSets[key].iterator + '_page_size');
scope[relatedSets[key].iterator + '_url'] = relatedSets[key].url;
if (cookieSize) {
// use the size found in session cookie, when available
scope[relatedSets[key].iterator + '_page_size'] = cookieSize;
}
else {
scope[relatedSets[key].iterator + '_page'] = 0;
scope[relatedSets[key].iterator + '_page_size'] = pageSize;
}
}
scope.getPage = function(page, set, iterator) {
var new_url = scope[iterator + '_url'].replace(/.page\=\d+/,'');
var connect = (/\/$/.test(new_url)) ? '?' : '&';
new_url += connect + 'page=' + page;
new_url += (scope[iterator + 'SearchParams']) ? '&' + scope[iterator + 'SearchParams'] +
'&page_size=' + scope[iterator + '_page_size' ] : 'page_size=' + scope[iterator + 'PageSize' ];
Wait('start');
RefreshRefresh({ scope: scope, set: set, iterator: iterator, url: new_url });
}
scope.pageIsActive = function(page, iterator) {
return (page == scope[iterator + '_page']) ? 'active' : '';
}
scope.changePageSize = function(set, iterator) {
// Called when a new page size is selected
scope[iterator + '_page'] = 1;
var url = scope[iterator + '_url'];
// Using the session cookie, keep track of user rows per page selection
$cookieStore.put(iterator + '_page_size', scope[iterator + '_page_size']);
url = url.replace(/\/\?.*$/,'/');
url += (scope[iterator + 'SearchParams']) ? '?' + scope[iterator + 'SearchParams'] + '&page_size=' + scope[iterator + '_page_size' ] :
'?page_size=' + scope[iterator + '_page_size' ];
RefreshRelated({ scope: scope, set: set, iterator: iterator, url: url });
}
}
}])
.factory('PaginateInit', [ 'Refresh', '$cookieStore', 'Wait',
function(Refresh, $cookieStore, Wait) {
return function(params) {
var scope = params.scope;
var list = params.list;
var iterator = (params.iterator) ? params.iterator : list.iterator;
var mode = (params.mode) ? params.mode : null;
var cookieSize = $cookieStore.get(iterator + '_page_size');
scope[iterator + '_page'] = (params.page) ? params.page : 1;
scope[iterator + '_url'] = params.url;
scope[iterator + '_mode'] = mode;
// Set the default page size
if (cookieSize && mode != 'lookup') {
// use the size found in session cookie, when available
scope[iterator + '_page_size'] = cookieSize;
}
else {
if (params.pageSize) {
scope[iterator + '_page_size'] = params.pageSize;
}
else if (mode == 'lookup') {
scope[iterator + '_page_size'] = 5;
}
else {
scope[iterator + '_page_size'] = 20;
}
}
scope.getPage = function(page, set, iterator) {
var new_url = scope[iterator + '_url'].replace(/.page\=\d+/,'');
var connect = (/\/$/.test(new_url)) ? '?' : '&';
new_url += connect + 'page=' + page;
new_url += (scope[iterator + 'SearchParams']) ? '&' + scope[iterator + 'SearchParams'] +
'&page_size=' + scope[iterator + '_page_size' ] : 'page_size=' + scope[iterator + 'PageSize' ];
Wait('start');
Refresh({ scope: scope, set: set, iterator: iterator, url: new_url });
}
scope.pageIsActive = function(page, iterator) {
return (page == scope[iterator + '_page']) ? 'active' : '';
}
scope.changePageSize = function(set, iterator) {
// Called whenever a new page size is selected
// Using the session cookie, keep track of user rows per page selection
$cookieStore.put(iterator + '_page_size', scope[iterator + '_page_size']);
scope[iterator + '_page'] = 0;
var new_url = scope[iterator + '_url'].replace(/\?page_size\=\d+/,'');
var connect = (/\/$/.test(new_url)) ? '?' : '&';
new_url += (scope[iterator + 'SearchParams']) ? connect + scope[iterator + 'SearchParams'] + '&page_size=' + scope[iterator + '_page_size' ] :
connect + 'page_size=' + scope[iterator + '_page_size' ];
Wait('start');
Refresh({ scope: scope, set: set, iterator: iterator, url: new_url });
}
}
}]);

View File

@@ -8,10 +8,8 @@
*
*/
angular.module('InventoryHelper', [ 'RestServices', 'Utilities', 'OrganizationListDefinition',
'SearchHelper', 'PaginateHelper', 'ListGenerator', 'AuthService',
'InventoryHelper', 'RelatedSearchHelper', 'RelatedPaginateHelper',
'InventoryFormDefinition', 'ParseHelper'
angular.module('InventoryHelper', [ 'RestServices', 'Utilities', 'OrganizationListDefinition', 'ListGenerator', 'AuthService',
'InventoryHelper', 'InventoryFormDefinition', 'ParseHelper'
])
.factory('SaveInventory', ['InventoryForm', 'Rest', 'Alert', 'ProcessErrors', 'LookUpInit', 'OrganizationList',

View File

@@ -1,82 +0,0 @@
/*********************************************
* Copyright (c) 2014 AnsibleWorks, Inc.
*
* PaginateHelper
*
* All the parts for controlling the search widget on
* related collections.
*
* PaginateInit({
* scope: <scope>,
* list: <form object used by FormGenerator>
* url: <
* });
*
*/
angular.module('PaginateHelper', ['RefreshHelper', 'ngCookies', 'Utilities'])
.factory('PaginateInit', [ 'Refresh', '$cookieStore', 'Wait', function(Refresh, $cookieStore, Wait) {
return function(params) {
var scope = params.scope;
var list = params.list;
var iterator = (params.iterator) ? params.iterator : list.iterator;
var url = params.url;
var mode = (params.mode) ? params.mode : null;
var cookieSize = $cookieStore.get(iterator + 'PageSize');
if (params.page) {
scope[iterator + 'Page'] = params.page;
}
else {
scope[iterator + 'Page'] = 0;
}
if (cookieSize && mode != 'lookup') {
// use the size found in session cookie, when available
scope[iterator + 'PageSize'] = cookieSize;
}
else {
if (params.pageSize) {
scope[iterator + 'PageSize'] = params.pageSize;
}
else if (mode == 'lookup') {
scope[iterator + 'PageSize'] = 5;
}
else {
scope[iterator + 'PageSize'] = 20;
}
}
scope.nextSet = function(set, iterator) {
if (scope[iterator + 'NextUrl']) {
scope[iterator + 'Page']++;
Wait('start');
Refresh({ scope: scope, set: set, iterator: iterator, url: scope[iterator + 'NextUrl'] });
}
};
scope.prevSet = function(set, iterator) {
if (scope[iterator + 'PrevUrl']) {
scope[iterator + 'Page']--;
Wait('start');
Refresh({ scope: scope, set: set, iterator: iterator, url: scope[iterator + 'PrevUrl'] });
}
};
scope.changePageSize = function(set, iterator) {
// Called whenever a new page size is selected
// Using the session cookie, keep track of user rows per page selection
$cookieStore.put(iterator + 'PageSize', scope[iterator + 'PageSize']);
scope[iterator + 'Page'] = 0;
var new_url = url.replace(/\?page_size\=\d+/,'');
var connect = (/\/$/.test(new_url)) ? '?' : '&';
new_url += (scope[iterator + 'SearchParams']) ? connect + scope[iterator + 'SearchParams'] + '&page_size=' + scope[iterator + 'PageSize' ] :
connect + 'page_size=' + scope[iterator + 'PageSize' ];
Wait('start');
Refresh({ scope: scope, set: set, iterator: iterator, url: new_url });
}
}
}]);

View File

@@ -14,8 +14,9 @@
*
*/
angular.module('RefreshRelatedHelper', ['RestServices', 'Utilities'])
.factory('RefreshRelated', ['ProcessErrors', 'Rest', 'Wait', function(ProcessErrors, Rest, Wait) {
angular.module('RefreshRelatedHelper', ['RestServices', 'Utilities', 'PaginationHelpers'])
.factory('RefreshRelated', ['ProcessErrors', 'Rest', 'Wait', 'PageRangeSetup',
function(ProcessErrors, Rest, Wait, PageRangeSetup) {
return function(params) {
var scope = params.scope;
@@ -26,22 +27,15 @@ angular.module('RefreshRelatedHelper', ['RestServices', 'Utilities'])
Rest.setUrl(url);
Rest.get()
.success( function(data, status, headers, config) {
Wait('stop');
PageRangeSetup({ scope: scope, count: data.count, next: data.next, previous: data.previous, iterator: iterator });
scope[set] = data['results'];
scope[iterator + 'NextUrl'] = data.next;
scope[iterator + 'PrevUrl'] = data.previous;
scope[iterator + 'Count'] = data.count;
scope[iterator + 'PageCount'] = Math.ceil((data.count / scope[iterator + 'PageSize']));
//scope[iterator + 'SearchSpin'] = false;
scope[iterator + 'Loading'] = false;
scope[iterator + 'HoldInput'] = false;
Wait('stop');
scope.$emit('related' + set);
if (!params.scope.$$phase) {
params.scope.$digest();
}
})
.error ( function(data, status, headers, config) {
//scope[iterator + 'SearchSpin'] = true;
ProcessErrors(scope, data, status, null,
{ hdr: 'Error!', msg: 'Failed to retrieve ' + set + '. GET returned status: ' + status });
});

View File

@@ -14,34 +14,32 @@
*
*/
angular.module('RefreshHelper', ['RestServices', 'Utilities'])
.factory('Refresh', ['ProcessErrors', 'Rest', 'Wait', function(ProcessErrors, Rest, Wait) {
angular.module('RefreshHelper', ['RestServices', 'Utilities', 'PaginationHelpers'])
.factory('Refresh', ['ProcessErrors', 'Rest', 'Wait', 'Empty', 'PageRangeSetup',
function(ProcessErrors, Rest, Wait, Empty, PageRangeSetup) {
return function(params) {
var scope = params.scope;
var set = params.set;
var iterator = params.iterator;
var url = params.url;
scope.current_url = url;
Rest.setUrl(url);
Rest.get()
.success( function(data, status, headers, config) {
Wait('stop');
scope[iterator + 'NextUrl'] = data.next;
scope[iterator + 'PrevUrl'] = data.previous;
scope[iterator + 'Count'] = data.count;
scope[iterator + 'PageCount'] = Math.ceil((data.count / scope[iterator + 'PageSize']));
//scope[iterator + 'SearchSpin'] = false;
PageRangeSetup({ scope: scope, count: data.count, next: data.next, previous: data.previous, iterator: iterator });
scope[iterator + 'Loading'] = false;
for (var i=1; i <= 3; i++) {
var modifier = (i == 1) ? '' : i;
scope[iterator + 'HoldInput' + modifier] = false;
}
scope[set] = data['results'];
window.scrollTo(0,0);
Wait('stop');
scope.$emit('PostRefresh');
})
.error ( function(data, status, headers, config) {
//scope[iterator + 'SearchSpin'] = false;
scope[iterator + 'HoldInput'] = false;
ProcessErrors(scope, data, status, null,
{ hdr: 'Error!', msg: 'Failed to retrieve ' + set + '. GET returned status: ' + status });

View File

@@ -1,67 +0,0 @@
/*********************************************
* Copyright (c) 2014 AnsibleWorks, Inc.
*
* RelatedPaginateHelper
*
* All the parts for controlling the search widget on
* related collections.
*
* RelatedPaginateInit({
* scope: <scope>,
* relatedSets: <array of related collections {model_name, url, iterator}>,
* form: <form object used by FormGenerator>
* });
*
*/
angular.module('RelatedPaginateHelper', ['RefreshRelatedHelper', 'ngCookies'])
.factory('RelatedPaginateInit', [ 'RefreshRelated', '$cookieStore', function(RefreshRelated, $cookieStore) {
return function(params) {
var scope = params.scope;
var relatedSets = params.relatedSets;
var pageSize = (params.pageSize) ? params.pageSize : 10;
for (var key in relatedSets){
cookieSize = $cookieStore.get(relatedSets[key].iterator + 'PageSize');
if (cookieSize) {
// use the size found in session cookie, when available
scope[relatedSets[key].iterator + 'PageSize'] = cookieSize;
}
else {
scope[relatedSets[key].iterator + 'Page'] = 0;
scope[relatedSets[key].iterator + 'PageSize'] = pageSize;
}
}
scope.nextSet = function(set, iterator) {
scope[iterator + 'Page']++;
RefreshRelated({ scope: scope, set: set, iterator: iterator, url: scope[iterator + 'NextUrl'] });
};
scope.prevSet = function(set, iterator) {
scope[iterator + 'Page']--;
RefreshRelated({ scope: scope, set: set, iterator: iterator, url: scope[iterator + 'PrevUrl'] });
};
scope.changePageSize = function(set, iterator) {
// Called when a new page size is selected
var url;
scope[iterator + 'Page'] = 0;
for (var key in relatedSets) {
if (key == set) {
url = relatedSets[key].url;
break;
}
}
// Using the session cookie, keep track of user rows per page selection
$cookieStore.put(iterator + 'PageSize', scope[iterator + 'PageSize']);
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

@@ -16,8 +16,9 @@
*/
angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
.factory('SearchInit', ['Alert', 'Rest', 'Refresh', '$location', 'GetBasePath', 'Empty', '$timeout', 'Wait',
function(Alert, Rest, Refresh, $location, GetBasePath, Empty, $timeout, Wait) {
.factory('SearchInit', ['Alert', 'Rest', 'Refresh', '$location', 'GetBasePath', 'Empty', '$timeout', 'Wait', 'Store',
function(Alert, Rest, Refresh, $location, GetBasePath, Empty, $timeout, Wait, Store) {
return function(params) {
var scope = params.scope;
@@ -25,14 +26,19 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
var defaultUrl = params.url;
var list = params.list;
var iterator = (params.iterator) ? params.iterator : list.iterator;
var sort_order;
var expected_objects=0;
var found_objects=0;
if (scope.searchTimer) {
$timeout.cancel(scope.searchTimer);
}
var setWidgets = (params.setWidgets == false) ? false : true;
var sort_order, expected_objects=0, found_objects=0;
var params = {
set: set,
defaultUrl: defaultUrl,
list: list,
iterator: iterator
};
Store('CurrentSearchParams', params); // Save in case Activity Stream widget needs to restore
function setDefaults(widget) {
// Set default values
var modifier = (widget == undefined || widget == 1) ? '' : widget;
@@ -119,15 +125,17 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
}
}
// Set default values for each search widget on the page
var widgets = (list.searchWidgets) ? list.searchWidgets : 1;
for (var i=1; i <= widgets; i++) {
var modifier = (i == 1) ? '' : i;
if ( $('#search-widget-container' + modifier) ) {
setDefaults(i);
if (setWidgets) {
// Set default values for each search widget on the page
var widgets = (list.searchWidgets) ? list.searchWidgets : 1;
for (var i=1; i <= widgets; i++) {
var modifier = (i == 1) ? '' : i;
if ( $('#search-widget-container' + modifier) ) {
setDefaults(i);
}
}
}
// Functions to handle search widget changes
scope.setSearchField = function(iterator, fld, label, widget) {
@@ -223,14 +231,13 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
if (scope.removeDoSearch) {
scope.removeDoSearch();
}
scope.removeDoSearch = scope.$on('doSearch', function(e, iterator, page, load, spin) {
scope.removeDoSearch = scope.$on('doSearch', function(e, iterator, page, load) {
//
// Execute the search
//
//scope[iterator + 'SearchSpin'] = (spin == undefined || spin == true) ? true : false;
scope[iterator + 'Loading'] = (load == undefined || load == true) ? true : false;
var url = defaultUrl;
//finalize and execute the query
scope[iterator + 'Page'] = (page) ? parseInt(page) - 1 : 0;
if (scope[iterator + 'SearchParams']) {
@@ -242,7 +249,7 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
}
}
url = url.replace(/\&\&/,'&');
url += (scope[iterator + 'PageSize']) ? '&page_size=' + scope[iterator + 'PageSize'] : "";
url += (scope[iterator + '_page_size']) ? '&page_size=' + scope[iterator + '_page_size'] : "";
if (page) {
url += '&page=' + page;
}
@@ -252,38 +259,7 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
Refresh({ scope: scope, set: set, iterator: iterator, url: url });
});
/*
if (scope.removeFoundObject) {
scope.removeFoundObject();
}
scope.removeFoundObject = scope.$on('foundObject', function(e, iterator, page, load, spin, widget, pk) {
found_objects++;
// Add new criteria to search params
var modifier = (widget == 1) ? '' : widget;
var objs = list.fields[scope[iterator + 'SearchField' + modifier]].searchObject;
var o = (objs == 'inventories') ? 'inventory' : objs.replace(/s$/,'');
var searchFld = list.fields[scope[iterator + 'SearchField' + modifier]].searchField;
scope[iterator + 'SearchParams'] += '&' + searchFld + '__icontains=' + o;
if (!Empty(pk)) {
scope[iterator + 'SearchParams'] += '&' + searchFld + '_id__in=' + pk;
}
// Move to the next phase once all object types are processed
if (found_objects == expected_objects) {
scope.$emit('prepareSearch2', iterator, page, load, spin);
}
});
*/
/*if (scope.removeResultWarning) {
scope.removeResultWarning();
}
scope.removeResultWarning = scope.$on('resultWarning', function(e, objs, length) {
// Alert the user that the # of objects was greater than 30
var label = (objs == 'inventory') ? 'inventories' : objs.replace(/s$/,'');
Alert('Warning', 'The number of matching ' + label + ' was too large. We limited your search to the first 30.', 'alert-info');
});
*/
if (scope.removePrepareSearch) {
scope.removePrepareSearch();
}
@@ -297,22 +273,6 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
var widgets = (list.searchWidgets) ? list.searchWidgets : 1;
var modifier;
// Determine how many object values we're dealing with.
/*
expected_objects = 0;
found_objects = 0;
for (var i=1; i <= widgets; i++) {
modifier = (i == 1) ? '' : i;
scope[iterator + 'HoldInput' + modifier] = true; //Block any input until we're done. Refresh.js will flip this back.
if ($('#search-widget-container' + modifier) &&
list.fields[scope[iterator + 'SearchField' + modifier]] &&
list.fields[scope[iterator + 'SearchField' + modifier]].searchObject &&
list.fields[scope[iterator + 'SearchField' + modifier]].searchObject !== 'all') {
expected_objects++;
}
}
*/
for (var i=1; i <= widgets; i++) {
var modifier = (i == 1) ? '' : i;
if ( $('#search-widget-container' + modifier) ) {
@@ -329,33 +289,6 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
list.fields[scope[iterator + 'SearchField' + modifier]].searchObject +
'__name__icontains=' +
scope[iterator + 'SearchValue' + modifier];
//var objUrl = GetBasePath('base') + objs + '/?name__icontains=' + scope[iterator + 'SearchValue' + modifier];
/*
Rest.setUrl(objUrl);
Rest.setHeader({ widget: i });
Rest.setHeader({ object: objs });
Rest.get()
.success( function(data, status, headers, config) {
var pk='';
//limit result set to 30
var len = (data.results.length > 30) ? 30 : data.results.length;
for (var j=0; j < len; j++) {
pk += "," + data.results[j].id;
}
pk = pk.replace(/^\,/,'');
scope.$emit('foundObject', iterator, page, load, spin, config.headers['widget'], pk);
if (data.results.length > 30) {
scope.$emit('resultWarning', config.headers['object'], data.results.length);
}
})
.error( function(data, status, headers, config) {
Wait('stop');
ProcessErrors(scope, data, status, null,
{ hdr: 'Error!', msg: 'Retrieving list of ' + objs + ' where name contains: ' + scope[iterator + 'SearchValue' + modifier] +
' GET returned status: ' + status });
});
*/
}
else {
// Search value is empty
@@ -363,7 +296,6 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
scope[iterator + 'SearchParams'] += '&' +
list.fields[scope[iterator + 'SearchField' + modifier]].searchField +
'=' + list.fields[scope[iterator + 'SearchField' + modifier]].searchObject;
//scope.$emit('foundObject', iterator, page, load, spin, i, null);
}
}
else {
@@ -374,10 +306,6 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
}
}
scope.$emit('prepareSearch2', iterator, page, load, spin);
//if (expected_objects == 0) {
// No search widgets contain objects
// scope.$emit('prepareSearch2', iterator, page, load, spin);
//}
});
if (scope.removePrepareSearch2) {
@@ -437,17 +365,6 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
scope[iterator + 'SearchSelectValue' + modifier].value == null) ) {
scope[iterator + 'SearchParams'] += 'iexact=';
}
/*else if ( (list.fields[scope[iterator + 'SearchField' + modifier]].searchType &&
(list.fields[scope[iterator + 'SearchField' + modifier]].searchType == 'or')) ) {
scope[iterator + 'SearchParams'] = ''; //start over
var val = scope[iterator + 'SearchValue' + modifier];
for (var k=0; k < list.fields[scope[iterator + 'SearchField' + modifier]].searchFields.length; k++) {
scope[iterator + 'SearchParams'] += '&or__' +
list.fields[scope[iterator + 'SearchField' + modifier]].searchFields[k] +
'__icontains=' + escape(val);
}
scope[iterator + 'SearchParams'].replace(/^\&/,'');
}*/
else {
scope[iterator + 'SearchParams'] += scope[iterator + 'SearchType' + modifier] + '=';
}
@@ -491,12 +408,16 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
}
}
scope.search = function(iterator, page, load, spin) {
scope.search = function(iterator, page, load) {
// Called to initiate a searh.
// Page is optional. Added to accomodate back function on Job Events detail.
// Spin optional -set to false if spin not desired.
// Load optional -set to false if loading message not desired
scope.$emit('prepareSearch', iterator, page, load, spin);
var load = (load === undefined) ? true : false;
if (load) {
scope[set] = [];
}
scope.$emit('prepareSearch', iterator, page, load);
}

View File

@@ -6,7 +6,7 @@
*/
angular.module('TeamHelper', [ 'RestServices', 'Utilities', 'OrganizationListDefinition',
'SearchHelper', 'PaginateHelper', 'ListGenerator' ])
'SearchHelper', 'PaginationHelpers', 'ListGenerator' ])
.factory('SetTeamListeners', ['Alert', 'Rest', function(Alert, Rest) {
return function(params) {