diff --git a/awx/ui/client/src/app.js b/awx/ui/client/src/app.js index c04a867661..03934afedd 100644 --- a/awx/ui/client/src/app.js +++ b/awx/ui/client/src/app.js @@ -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', diff --git a/awx/ui/client/src/filters.js b/awx/ui/client/src/filters.js deleted file mode 100644 index e6549bb779..0000000000 --- a/awx/ui/client/src/filters.js +++ /dev/null @@ -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 -}; diff --git a/awx/ui/client/src/inventories/list/inventory-list.controller.js b/awx/ui/client/src/inventories/list/inventory-list.controller.js index 6b8a75f0cc..59f36574ff 100644 --- a/awx/ui/client/src/inventories/list/inventory-list.controller.js +++ b/awx/ui/client/src/inventories/list/inventory-list.controller.js @@ -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 ]; diff --git a/awx/ui/client/src/lists/AllJobs.js b/awx/ui/client/src/lists/AllJobs.js index b3ac5c5b71..77b8955b7b 100644 --- a/awx/ui/client/src/lists/AllJobs.js +++ b/awx/ui/client/src/lists/AllJobs.js @@ -6,7 +6,7 @@ export default - angular.module('AllJobsDefinition', ['sanitizeFilter', 'capitalizeFilter']) + angular.module('AllJobsDefinition', []) .factory('AllJobsList', ['i18n', function(i18n) { return { diff --git a/awx/ui/client/src/lists/CompletedJobs.js b/awx/ui/client/src/lists/CompletedJobs.js index a83281cbd3..d78b1042b7 100644 --- a/awx/ui/client/src/lists/CompletedJobs.js +++ b/awx/ui/client/src/lists/CompletedJobs.js @@ -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 diff --git a/awx/ui/client/src/lists/ScheduledJobs.js b/awx/ui/client/src/lists/ScheduledJobs.js index 8c016cfb9f..3688cf7058 100644 --- a/awx/ui/client/src/lists/ScheduledJobs.js +++ b/awx/ui/client/src/lists/ScheduledJobs.js @@ -6,7 +6,7 @@ export default - angular.module('ScheduledJobsDefinition', ['sanitizeFilter']) + angular.module('ScheduledJobsDefinition', []) .factory('ScheduledJobsList', ['i18n', function(i18n) { return { diff --git a/awx/ui/client/src/organizations/linkout/controllers/organizations-inventories.controller.js b/awx/ui/client/src/organizations/linkout/controllers/organizations-inventories.controller.js index ae92d23058..6d171f98c2 100644 --- a/awx/ui/client/src/organizations/linkout/controllers/organizations-inventories.controller.js +++ b/awx/ui/client/src/organizations/linkout/controllers/organizations-inventories.controller.js @@ -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) { diff --git a/awx/ui/client/src/shared/Utilities.js b/awx/ui/client/src/shared/Utilities.js index b4e5b31dc8..e344f9cc33 100644 --- a/awx/ui/client/src/shared/Utilities.js +++ b/awx/ui/client/src/shared/Utilities.js @@ -18,7 +18,7 @@ export default -angular.module('Utilities', ['RestServices', 'Utilities', 'sanitizeFilter']) +angular.module('Utilities', ['RestServices', 'Utilities']) /** * @ngdoc method diff --git a/awx/ui/client/src/shared/capitalize.filter.js b/awx/ui/client/src/shared/capitalize.filter.js deleted file mode 100644 index 598be4218c..0000000000 --- a/awx/ui/client/src/shared/capitalize.filter.js +++ /dev/null @@ -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; - }; - }); diff --git a/awx/ui/client/src/shared/filters.js b/awx/ui/client/src/shared/filters.js deleted file mode 100644 index 50014c06ce..0000000000 --- a/awx/ui/client/src/shared/filters.js +++ /dev/null @@ -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; - }; - }]); diff --git a/awx/ui/client/src/shared/string-filters/append.filter.js b/awx/ui/client/src/shared/filters/append.filter.js similarity index 100% rename from awx/ui/client/src/shared/string-filters/append.filter.js rename to awx/ui/client/src/shared/filters/append.filter.js diff --git a/awx/ui/client/src/shared/filters/capitalize.filter.js b/awx/ui/client/src/shared/filters/capitalize.filter.js new file mode 100644 index 0000000000..7b5db1de0e --- /dev/null +++ b/awx/ui/client/src/shared/filters/capitalize.filter.js @@ -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; +// }; +// }); diff --git a/awx/ui/client/src/shared/format-epoch/format-epoch.filter.js b/awx/ui/client/src/shared/filters/format-epoch.filter.js similarity index 100% rename from awx/ui/client/src/shared/format-epoch/format-epoch.filter.js rename to awx/ui/client/src/shared/filters/format-epoch.filter.js diff --git a/awx/ui/client/src/shared/filters/is-empty.filter.js b/awx/ui/client/src/shared/filters/is-empty.filter.js new file mode 100644 index 0000000000..a0ece767f1 --- /dev/null +++ b/awx/ui/client/src/shared/filters/is-empty.filter.js @@ -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; + }; + } diff --git a/awx/ui/client/src/shared/filters/long-date.filter.js b/awx/ui/client/src/shared/filters/long-date.filter.js new file mode 100644 index 0000000000..03f1dd8725 --- /dev/null +++ b/awx/ui/client/src/shared/filters/long-date.filter.js @@ -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); +// } +// ]); diff --git a/awx/ui/client/src/shared/filters/main.js b/awx/ui/client/src/shared/filters/main.js new file mode 100644 index 0000000000..2298bb0723 --- /dev/null +++ b/awx/ui/client/src/shared/filters/main.js @@ -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); diff --git a/awx/ui/client/src/shared/string-filters/prepend.filter.js b/awx/ui/client/src/shared/filters/prepend.filter.js similarity index 100% rename from awx/ui/client/src/shared/string-filters/prepend.filter.js rename to awx/ui/client/src/shared/filters/prepend.filter.js diff --git a/awx/ui/client/src/shared/filters/xss-sanitizer.filter.js b/awx/ui/client/src/shared/filters/xss-sanitizer.filter.js new file mode 100644 index 0000000000..8382505725 --- /dev/null +++ b/awx/ui/client/src/shared/filters/xss-sanitizer.filter.js @@ -0,0 +1,20 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + + export default [function() { + return function(input) { + input = $("").text(input)[0].innerHTML; + return input; + }; + }]; + +// export default +// angular.module('sanitizeFilter', []).filter('sanitize', function() { +// return function(input) { +// input = $("").text(input)[0].innerHTML; +// return input; +// }; +// }); diff --git a/awx/ui/client/src/shared/format-epoch/main.js b/awx/ui/client/src/shared/format-epoch/main.js deleted file mode 100644 index df93378aff..0000000000 --- a/awx/ui/client/src/shared/format-epoch/main.js +++ /dev/null @@ -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); - diff --git a/awx/ui/client/src/shared/long-date.filter.js b/awx/ui/client/src/shared/long-date.filter.js deleted file mode 100644 index f48b014f56..0000000000 --- a/awx/ui/client/src/shared/long-date.filter.js +++ /dev/null @@ -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); - } - ]); - diff --git a/awx/ui/client/src/shared/main.js b/awx/ui/client/src/shared/main.js index 2410efb05c..82daaf238d 100644 --- a/awx/ui/client/src/shared/main.js +++ b/awx/ui/client/src/shared/main.js @@ -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, diff --git a/awx/ui/client/src/shared/prompt-dialog.js b/awx/ui/client/src/shared/prompt-dialog.js index f0c7794e47..96152c0b89 100644 --- a/awx/ui/client/src/shared/prompt-dialog.js +++ b/awx/ui/client/src/shared/prompt-dialog.js @@ -30,7 +30,7 @@ */ export default -angular.module('PromptDialog', ['Utilities', 'sanitizeFilter']) +angular.module('PromptDialog', ['Utilities']) .factory('Prompt', [ function () { return function (params) { diff --git a/awx/ui/client/src/shared/string-filters/main.js b/awx/ui/client/src/shared/string-filters/main.js deleted file mode 100644 index 3c51d184d2..0000000000 --- a/awx/ui/client/src/shared/string-filters/main.js +++ /dev/null @@ -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); diff --git a/awx/ui/client/src/shared/xss-sanitizer.filter.js b/awx/ui/client/src/shared/xss-sanitizer.filter.js deleted file mode 100644 index daa9a71d68..0000000000 --- a/awx/ui/client/src/shared/xss-sanitizer.filter.js +++ /dev/null @@ -1,13 +0,0 @@ -/************************************************* - * Copyright (c) 2015 Ansible, Inc. - * - * All Rights Reserved - *************************************************/ - -export default - angular.module('sanitizeFilter', []).filter('sanitize', function() { - return function(input) { - input = $("").text(input)[0].innerHTML; - return input; - }; - }); diff --git a/awx/ui/client/src/system-tracking/compare-facts/fact-template.js b/awx/ui/client/src/system-tracking/compare-facts/fact-template.js index 3dcc29a92a..506e893f2c 100644 --- a/awx/ui/client/src/system-tracking/compare-facts/fact-template.js +++ b/awx/ui/client/src/system-tracking/compare-facts/fact-template.js @@ -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) {