Filters organization

This commit is contained in:
Michael Abashian 2017-03-02 16:59:55 -05:00
parent a4e60b711f
commit 4dfe85af7f
25 changed files with 123 additions and 212 deletions

View File

@ -39,7 +39,6 @@ if ($basePath) {
// Modules
import './forms';
import './lists';
import './filters';
import portalMode from './portal-mode/main';
import systemTracking from './system-tracking/main';
import inventories from './inventories/main';
@ -135,7 +134,6 @@ var tower = angular.module('Tower', [
'InventoryFormDefinition',
'InventoryGroupsDefinition',
'InventoryHostsDefinition',
'AWFilters',
'HostFormDefinition',
'HostListDefinition',
'GroupFormDefinition',
@ -166,7 +164,6 @@ var tower = angular.module('Tower', [
'lrInfiniteScroll',
'PortalJobsListDefinition',
'features',
'longDateFilter',
'pendolytics',
scheduler.name,
'WorkflowFormDefinition',

View File

@ -1,14 +0,0 @@
/*************************************************
* Copyright (c) 2015 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
import sanitizeFilter from './shared/xss-sanitizer.filter';
import capitalizeFilter from './shared/capitalize.filter';
import longDateFilter from './shared/long-date.filter';
export {
sanitizeFilter,
capitalizeFilter,
longDateFilter
};

View File

@ -11,7 +11,7 @@
*/
function InventoriesList($scope, $rootScope, $location, $log,
$stateParams, $compile, $filter, sanitizeFilter, Rest, Alert, InventoryList, Prompt,
$stateParams, $compile, $filter, Rest, Alert, InventoryList, Prompt,
ClearScope, ProcessErrors, GetBasePath, Wait, Find, Empty, $state, rbacUiControlService, Dataset) {
let list = InventoryList,
@ -304,6 +304,6 @@ function InventoriesList($scope, $rootScope, $location, $log,
}
export default ['$scope', '$rootScope', '$location', '$log',
'$stateParams', '$compile', '$filter', 'sanitizeFilter', 'Rest', 'Alert', 'InventoryList',
'$stateParams', '$compile', '$filter', 'Rest', 'Alert', 'InventoryList',
'Prompt', 'ClearScope', 'ProcessErrors', 'GetBasePath', 'Wait', 'Find', 'Empty', '$state', 'rbacUiControlService', 'Dataset', InventoriesList
];

View File

@ -6,7 +6,7 @@
export default
angular.module('AllJobsDefinition', ['sanitizeFilter', 'capitalizeFilter'])
angular.module('AllJobsDefinition', [])
.factory('AllJobsList', ['i18n', function(i18n) {
return {

View File

@ -6,7 +6,7 @@
export default
angular.module('CompletedJobsDefinition', ['sanitizeFilter'])
angular.module('CompletedJobsDefinition', [])
.factory('CompletedJobsList', ['i18n', function(i18n) {
return {
// These tooltip fields are consumed to build disabled related tabs tooltips in the form > add view

View File

@ -6,7 +6,7 @@
export default
angular.module('ScheduledJobsDefinition', ['sanitizeFilter'])
angular.module('ScheduledJobsDefinition', [])
.factory('ScheduledJobsList', ['i18n', function(i18n) {
return {

View File

@ -5,11 +5,11 @@
*************************************************/
export default ['$scope', '$rootScope', '$location', '$log',
'$stateParams', '$compile', '$filter', 'sanitizeFilter', 'Rest', 'Alert', 'InventoryList',
'$stateParams', '$compile', '$filter', 'Rest', 'Alert', 'InventoryList',
'generateList', 'Prompt', 'ReturnToCaller', 'OrgInventoryDataset', 'OrgInventoryList',
'ClearScope', 'ProcessErrors', 'GetBasePath', 'Wait', 'Find', 'Empty', '$state',
function($scope, $rootScope, $location, $log,
$stateParams, $compile, $filter, sanitizeFilter, Rest, Alert, InventoryList,
$stateParams, $compile, $filter, Rest, Alert, InventoryList,
generateList, Prompt, ReturnToCaller, Dataset, OrgInventoryList,
ClearScope, ProcessErrors, GetBasePath, Wait,
Find, Empty, $state) {

View File

@ -18,7 +18,7 @@
export default
angular.module('Utilities', ['RestServices', 'Utilities', 'sanitizeFilter'])
angular.module('Utilities', ['RestServices', 'Utilities'])
/**
* @ngdoc method

View File

@ -1,13 +0,0 @@
/*************************************************
* Copyright (c) 2015 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
export default
angular.module('capitalizeFilter', []).filter('capitalize', function() {
return function(input) {
input = input.charAt(0).toUpperCase() + input.substr(1).toLowerCase();
return input;
};
});

View File

@ -1,112 +0,0 @@
/*************************************************
* Copyright (c) 2015 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
/**
* @ngdoc function
* @name shared.function:filters
* @description
* Custom filters
*
*/
export default
angular.module('AWFilters', [])
// Object is empty / undefined / null
.filter('isEmpty', function () {
var key;
return function (obj) {
for (key in obj) {
if (obj.hasOwnProperty(key)) {
return false;
}
}
return true;
};
})
//
// capitalize -capitalize the first letter of each word
//
.filter('capitalize', [ function () {
return function (input) {
var values, result, i;
if (input) {
values = input.replace(/\_/g, ' ').split(" ");
result = "";
for (i = 0; i < values.length; i++) {
result += values[i].charAt(0).toUpperCase() + values[i].substr(1) + ' ';
}
return result.trim();
}
};
}])
//
// Filter an object of objects by id using an array of id values
// Created specifically for Filter Events on job detail page.
//
.filter('FilterById', [ function() {
return function(input, list) {
var results = [];
if (input && list.length > 0) {
list.forEach(function(itm) {
input.forEach(function(row) {
if (row.id === itm) {
results.push(row);
}
});
});
return results;
}
return input;
};
}])
.filter('FilterByField', [ function() {
return function(input, list) {
var fld, key, search = {}, results = {};
for (fld in list) {
if (list[fld]) {
search[fld] = list[fld];
}
}
if (Object.keys(search).length > 0) {
for (fld in search) {
for (key in input) {
if (input[key][fld] === search[fld]) {
results[key] = input[key];
}
}
}
return results;
}
return input;
};
}])
.filter('FilterFailedEvents', [ function() {
return function(input, liveEventProcessing, searchAllStatus) {
var results = [];
if (liveEventProcessing) {
// while live events are happening, we don't want angular to filter out anything
return input;
}
else if (searchAllStatus === 'failed') {
// filter by failed
input.forEach(function(row) {
if (row.status === 'failed') {
results.push(row);
}
});
return results;
}
return input;
};
}]);

View File

@ -0,0 +1,20 @@
/*************************************************
* Copyright (c) 2015 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
export default [function() {
return function(input) {
input = input.charAt(0).toUpperCase() + input.substr(1).toLowerCase();
return input;
};
}];
// export default
// angular.module('capitalizeFilter', []).filter('capitalize', function() {
// return function(input) {
// input = input.charAt(0).toUpperCase() + input.substr(1).toLowerCase();
// return input;
// };
// });

View File

@ -0,0 +1,17 @@
/*************************************************
* Copyright (c) 2017 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
export default function() {
return function (obj) {
var key;
for (key in obj) {
if (obj.hasOwnProperty(key)) {
return false;
}
}
return true;
};
}

View File

@ -0,0 +1,37 @@
/*************************************************
* Copyright (c) 2015 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
export default ['moment', function(moment) {
return function(input) {
var date;
if(input === null){
return "";
}else {
date = moment(input);
return date.format('l LTS');
}
};
}];
// function longDateFilter(moment, input) {
// var date;
// if(input === null){
// return "";
// }else {
// date = moment(input);
// return date.format('l LTS');
// }
// }
//
// export default
// angular.module('longDateFilter', [])
// .filter('longDate',
// [ 'moment',
// function(moment) {
// return _.partial(longDateFilter, moment);
// }
// ]);

View File

@ -0,0 +1,17 @@
import prepend from './prepend.filter';
import append from './append.filter';
import isEmpty from './is-empty.filter';
import capitalize from './capitalize.filter';
import longDate from './long-date.filter';
import sanitize from './xss-sanitizer.filter';
import formatEpoch from './format-epoch.filter';
export default
angular.module('stringFilters', [])
.filter('prepend', prepend)
.filter('append', append)
.filter('isEmpty', isEmpty)
.filter('capitalize', capitalize)
.filter('longDate', longDate)
.filter('sanitize', sanitize)
.filter('formatEpoch', formatEpoch);

View File

@ -0,0 +1,20 @@
/*************************************************
* Copyright (c) 2015 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
export default [function() {
return function(input) {
input = $("<span>").text(input)[0].innerHTML;
return input;
};
}];
// export default
// angular.module('sanitizeFilter', []).filter('sanitize', function() {
// return function(input) {
// input = $("<span>").text(input)[0].innerHTML;
// return input;
// };
// });

View File

@ -1,9 +0,0 @@
import formatEpoch from './format-epoch.filter';
import moment from '../moment/main';
export default
angular.module('formatEpoch',
[ moment.name
])
.filter('formatEpoch', formatEpoch);

View File

@ -1,25 +0,0 @@
/*************************************************
* Copyright (c) 2015 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
function longDateFilter(moment, input) {
var date;
if(input === null){
return "";
}else {
date = moment(input);
return date.format('l LTS');
}
}
export default
angular.module('longDateFilter', [])
.filter('longDate',
[ 'moment',
function(moment) {
return _.partial(longDateFilter, moment);
}
]);

View File

@ -11,7 +11,7 @@ import smartSearch from './smart-search/main';
import paginate from './paginate/main';
import columnSort from './column-sort/main';
import lodashAsPromised from './lodash-as-promised';
import stringFilters from './string-filters/main';
import filters from './filters/main';
import truncatedText from './truncated-text.directive';
import stateExtender from './stateExtender.provider';
import rbacUiControl from './rbacUiControl';
@ -28,7 +28,6 @@ import moment from './moment/main';
import config from './config/main';
import PromptDialog from './prompt-dialog';
import directives from './directives';
import filters from './filters';
import features from './features/main';
import 'angular-duration-format';
@ -39,7 +38,7 @@ angular.module('shared', [listGenerator.name,
smartSearch.name,
paginate.name,
columnSort.name,
stringFilters.name,
filters.name,
'ui.router',
rbacUiControl.name,
socket.name,

View File

@ -30,7 +30,7 @@
*/
export default
angular.module('PromptDialog', ['Utilities', 'sanitizeFilter'])
angular.module('PromptDialog', ['Utilities'])
.factory('Prompt', [
function () {
return function (params) {

View File

@ -1,7 +0,0 @@
import prepend from './prepend.filter';
import append from './append.filter';
export default
angular.module('stringFilters', [])
.filter('prepend', prepend)
.filter('append', append);

View File

@ -1,13 +0,0 @@
/*************************************************
* Copyright (c) 2015 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
export default
angular.module('sanitizeFilter', []).filter('sanitize', function() {
return function(input) {
input = $("<span>").text(input)[0].innerHTML;
return input;
};
});

View File

@ -1,7 +1,4 @@
import stringFilters from '../../shared/string-filters/main';
import formatEpoch from '../../shared/format-epoch/main';
var $injector = angular.injector(['ng', stringFilters.name, formatEpoch.name]);
var $injector = angular.injector(['ng']);
var $interpolate = $injector.get('$interpolate');
function FactTemplate(templateString) {