diff --git a/awx/ui/client/src/job-results/duration.filter.js b/awx/ui/client/src/job-results/duration.filter.js deleted file mode 100644 index ba23374784..0000000000 --- a/awx/ui/client/src/job-results/duration.filter.js +++ /dev/null @@ -1,120 +0,0 @@ -// TODO: come back and get this library -export default function() { - var DURATION_FORMATS_SPLIT = /((?:[^ydhms']+)|(?:'(?:[^']|'')*')|(?:y+|d+|h+|m+|s+))(.*)/; - var DURATION_FORMATS = { - 'y': { // years - // "longer" years are not supported - value: 365 * 24 * 60 * 60 * 1000 - }, - 'yy': { - value: 'y', - pad: 2 - }, - 'd': { // days - value: 24 * 60 * 60 * 1000 - }, - 'dd': { - value: 'd', - pad: 2 - }, - 'h': { // hours - value: 60 * 60 * 1000 - }, - 'hh': { // padded hours - value: 'h', - pad: 2 - }, - 'm': { // minutes - value: 60 * 1000 - }, - 'mm': { // padded minutes - value: 'm', - pad: 2 - }, - 's': { // seconds - value: 1000 - }, - 'ss': { // padded seconds - value: 's', - pad: 2 - }, - 'sss': { // milliseconds - value: 1 - }, - 'ssss': { // padded milliseconds - value: 'sss', - pad: 4 - } - }; - - function _parseFormat(string) { - // @inspiration AngularJS date filter - var parts = []; - var format = string; - while(format) { - var match = DURATION_FORMATS_SPLIT.exec(format); - if (match) { - parts = parts.concat(match.slice(1)); - - format = parts.pop(); - } else { - parts.push(format); - format = null; - } - } - return parts; - } - function _formatDuration(timestamp, format) { - var text = ''; - var values = { }; - format.filter(function(format) { // filter only value parts of format - return DURATION_FORMATS.hasOwnProperty(format); - }).map(function(format) { // get formats with values only - var config = DURATION_FORMATS[format]; - if(config.hasOwnProperty('pad')) { - return config.value; - } else { - return format; - } - }).filter(function(format, index, arr) { // remove duplicates - return (arr.indexOf(format) === index); - }).map(function(format) { // get format configurations with values - return angular.extend({ - name: format, - }, DURATION_FORMATS[format]); - }).sort(function(a, b) { // sort formats descending by value - return b.value - a.value; - }).forEach(function(format) { // create values for format parts - var value = values[format.name] = Math.floor(timestamp / format.value); - timestamp = timestamp - (value * format.value); - }); - format.forEach(function(part) { - var format = DURATION_FORMATS[part]; - if(format) { - var value = values[format.value]; - text += (format.hasOwnProperty('pad') ? _padNumber(value, Math.max(format.pad, value.toString().length)) : values[part]); - } else { - text += part.replace(/(^'|'$)/g, '').replace(/''/g, '\''); - } - }); - return text; - } - function _padNumber(number, len) { - return ((new Array(len + 1)).join('0') + number).slice(-len); - } - return function(value, format) { - if (typeof value !== "number") { - return value; - } - - var timestamp = parseInt(value.valueOf(), 10); - if(isNaN(timestamp)) { - return value; - } else { - return _formatDuration( - timestamp, - _parseFormat(format) - ); - } - }; - }; diff --git a/awx/ui/client/src/job-results/main.js b/awx/ui/client/src/job-results/main.js index c367b26918..3747da4158 100644 --- a/awx/ui/client/src/job-results/main.js +++ b/awx/ui/client/src/job-results/main.js @@ -16,8 +16,6 @@ import jobResultsService from './job-results.service'; import eventQueueService from './event-queue.service'; import parseStdoutService from './parse-stdout.service'; -import durationFilter from './duration.filter'; - export default angular.module('jobResults', [hostStatusBar.name, jobResultsStdOut.name, hostEvent.name]) .run(['$stateExtender', function($stateExtender) { @@ -26,5 +24,4 @@ export default .controller('jobResultsController', jobResultsController) .service('jobResultsService', jobResultsService) .service('eventQueue', eventQueueService) - .service('parseStdoutService', parseStdoutService) - .filter('duration', durationFilter); + .service('parseStdoutService', parseStdoutService); diff --git a/awx/ui/client/src/shared/main.js b/awx/ui/client/src/shared/main.js index 8db9dd8172..5b68027dde 100644 --- a/awx/ui/client/src/shared/main.js +++ b/awx/ui/client/src/shared/main.js @@ -20,6 +20,7 @@ import templateUrl from './template-url/main'; import RestServices from '../rest/main'; import stateDefinitions from './stateDefinitions.factory'; import apiLoader from './api-loader'; +import 'angular-duration-format'; export default angular.module('shared', [listGenerator.name, @@ -36,6 +37,7 @@ angular.module('shared', [listGenerator.name, RestServices.name, apiLoader.name, require('angular-cookies'), + 'angular-duration-format' ]) .factory('stateDefinitions', stateDefinitions) .factory('lodashAsPromised', lodashAsPromised) diff --git a/awx/ui/npm-shrinkwrap.json b/awx/ui/npm-shrinkwrap.json index 882ba5a78e..240a18f337 100644 --- a/awx/ui/npm-shrinkwrap.json +++ b/awx/ui/npm-shrinkwrap.json @@ -86,6 +86,11 @@ "from": "leigh-johnson/angular-drag-and-drop-lists#1.4.0", "resolved": "git://github.com/leigh-johnson/angular-drag-and-drop-lists.git#4d32654ab7159689a7767b9be8fc85f9812ca5a8" }, + "angular-duration-format": { + "version": "1.0.1", + "from": "angular-duration-format@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/angular-duration-format/-/angular-duration-format-1.0.1.tgz" + }, "angular-filters": { "version": "1.1.2", "from": "angular-filters@>=1.1.2 <2.0.0", @@ -102,9 +107,9 @@ "resolved": "https://registry.npmjs.org/angular-gettext-tools/-/angular-gettext-tools-2.3.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -113,6 +118,11 @@ "from": "angular-md5@>=0.1.8 <0.2.0", "resolved": "https://registry.npmjs.org/angular-md5/-/angular-md5-0.1.10.tgz" }, + "angular-mocks": { + "version": "1.5.8", + "from": "angular-mocks@>=1.5.8 <2.0.0", + "resolved": "https://registry.npmjs.org/angular-mocks/-/angular-mocks-1.5.8.tgz" + }, "angular-moment": { "version": "0.10.3", "from": "angular-moment@>=0.10.1 <0.11.0", @@ -207,9 +217,9 @@ "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.1.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.8.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -219,9 +229,9 @@ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.8.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -311,9 +321,9 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.1.2.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.14.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -333,9 +343,9 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" }, "autoprefixer": { - "version": "6.5.1", + "version": "6.5.3", "from": "autoprefixer@>=6.0.0 <7.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.5.1.tgz" + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.5.3.tgz" }, "aws-sign2": { "version": "0.6.0", @@ -358,9 +368,9 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.18.2.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" }, "source-map": { "version": "0.5.6", @@ -375,9 +385,9 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.18.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" }, "source-map": { "version": "0.5.6", @@ -397,9 +407,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -429,9 +439,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -445,6 +455,60 @@ "from": "babel-helpers@>=6.16.0 <7.0.0", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.16.0.tgz" }, + "babel-istanbul": { + "version": "0.11.0", + "from": "babel-istanbul@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/babel-istanbul/-/babel-istanbul-0.11.0.tgz", + "dependencies": { + "async": { + "version": "1.5.2", + "from": "async@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + }, + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + }, + "source-map": { + "version": "0.4.4", + "from": "source-map@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" + }, + "supports-color": { + "version": "3.1.2", + "from": "supports-color@>=3.1.0 <3.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" + }, + "wordwrap": { + "version": "1.0.0", + "from": "wordwrap@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + } + } + }, + "babel-loader": { + "version": "6.2.7", + "from": "babel-loader@>=6.2.4 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.7.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + } + } + }, "babel-messages": { "version": "6.8.0", "from": "babel-messages@>=6.8.0 <7.0.0", @@ -455,6 +519,11 @@ "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz" }, + "babel-plugin-istanbul": { + "version": "2.0.3", + "from": "babel-plugin-istanbul@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-2.0.3.tgz" + }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.8.0", "from": "babel-plugin-transform-es2015-arrow-functions@>=6.3.13 <7.0.0", @@ -471,9 +540,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -582,15 +651,20 @@ "from": "babel-plugin-transform-strict-mode@>=6.18.0 <7.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz" }, + "babel-preset-es2015": { + "version": "6.18.0", + "from": "babel-preset-es2015@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz" + }, "babel-register": { "version": "6.18.0", "from": "babel-register@>=6.18.0 <7.0.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.18.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" }, "minimist": { "version": "0.0.8", @@ -615,9 +689,9 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.16.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -627,9 +701,9 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.18.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -639,9 +713,9 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.18.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -691,9 +765,9 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz" }, "beeper": { - "version": "1.1.0", + "version": "1.1.1", "from": "beeper@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.0.tgz" + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz" }, "benchmark": { "version": "1.0.0", @@ -795,9 +869,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz" }, "browser-sync": { - "version": "2.17.5", + "version": "2.17.6", "from": "browser-sync@>=2.14.0 <3.0.0", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.17.5.tgz" + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.17.6.tgz" }, "browser-sync-client": { "version": "2.4.3", @@ -820,9 +894,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.4.0.tgz" }, "bs-recipes": { - "version": "1.2.3", - "from": "bs-recipes@1.2.3", - "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.2.3.tgz" + "version": "1.3.2", + "from": "bs-recipes@1.3.2", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.2.tgz" }, "buffer": { "version": "4.9.1", @@ -872,9 +946,9 @@ } }, "caniuse-db": { - "version": "1.0.30000576", - "from": "caniuse-db@>=1.0.30000554 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000576.tgz" + "version": "1.0.30000581", + "from": "caniuse-db@>=1.0.30000578 <2.0.0", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000581.tgz" }, "caseless": { "version": "0.11.0", @@ -947,9 +1021,9 @@ "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.5.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -1483,6 +1557,11 @@ "from": "expand-range@>=1.8.1 <2.0.0", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz" }, + "expose-loader": { + "version": "0.7.1", + "from": "expose-loader@>=0.7.1 <0.8.0", + "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.1.tgz" + }, "express": { "version": "2.5.11", "from": "express@>=2.5.0 <2.6.0", @@ -2343,9 +2422,9 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz" }, "globals": { - "version": "9.12.0", + "version": "9.13.0", "from": "globals@>=9.0.0 <10.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.12.0.tgz" + "resolved": "https://registry.npmjs.org/globals/-/globals-9.13.0.tgz" }, "globule": { "version": "1.1.0", @@ -2369,6 +2448,33 @@ "from": "graceful-readlink@>=1.0.0", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" }, + "grunt": { + "version": "1.0.1", + "from": "grunt@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz", + "dependencies": { + "glob": { + "version": "7.0.6", + "from": "glob@>=7.0.0 <7.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz" + }, + "js-yaml": { + "version": "3.5.5", + "from": "js-yaml@>=3.5.2 <3.6.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz" + }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@>=2.2.8 <2.3.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + } + } + }, + "grunt-angular-gettext": { + "version": "2.3.0", + "from": "grunt-angular-gettext@>=2.2.3 <3.0.0", + "resolved": "https://registry.npmjs.org/grunt-angular-gettext/-/grunt-angular-gettext-2.3.0.tgz" + }, "grunt-browser-sync": { "version": "2.2.0", "from": "grunt-browser-sync@>=2.2.0 <3.0.0", @@ -2379,6 +2485,64 @@ "from": "grunt-cli@>=1.2.0 <2.0.0", "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz" }, + "grunt-concurrent": { + "version": "2.3.1", + "from": "grunt-concurrent@>=2.3.0 <3.0.0", + "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-2.3.1.tgz", + "dependencies": { + "async": { + "version": "1.5.2", + "from": "async@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + } + } + }, + "grunt-contrib-clean": { + "version": "1.0.0", + "from": "grunt-contrib-clean@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz", + "dependencies": { + "async": { + "version": "1.5.2", + "from": "async@>=1.5.2 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + } + } + }, + "grunt-contrib-concat": { + "version": "1.0.1", + "from": "grunt-contrib-concat@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", + "dependencies": { + "source-map": { + "version": "0.5.6", + "from": "source-map@>=0.5.3 <0.6.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + } + } + }, + "grunt-contrib-copy": { + "version": "1.0.0", + "from": "grunt-contrib-copy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz" + }, + "grunt-contrib-jshint": { + "version": "1.0.0", + "from": "grunt-contrib-jshint@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.0.0.tgz" + }, + "grunt-contrib-less": { + "version": "1.4.0", + "from": "grunt-contrib-less@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.4.0.tgz", + "dependencies": { + "lodash": { + "version": "4.17.1", + "from": "lodash@>=4.8.2 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" + } + } + }, "grunt-contrib-watch": { "version": "1.0.0", "from": "grunt-contrib-watch@>=1.0.0 <2.0.0", @@ -2391,6 +2555,11 @@ } } }, + "grunt-extract-sourcemap": { + "version": "0.1.19", + "from": "grunt-extract-sourcemap@>=0.1.18 <0.2.0", + "resolved": "https://registry.npmjs.org/grunt-extract-sourcemap/-/grunt-extract-sourcemap-0.1.19.tgz" + }, "grunt-known-options": { "version": "1.1.0", "from": "grunt-known-options@>=1.1.0 <1.2.0", @@ -2430,10 +2599,34 @@ } } }, + "grunt-newer": { + "version": "1.2.0", + "from": "grunt-newer@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/grunt-newer/-/grunt-newer-1.2.0.tgz", + "dependencies": { + "async": { + "version": "1.5.2", + "from": "async@>=1.5.2 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + } + } + }, + "grunt-webpack": { + "version": "1.0.18", + "from": "grunt-webpack@>=1.0.11 <2.0.0", + "resolved": "https://registry.npmjs.org/grunt-webpack/-/grunt-webpack-1.0.18.tgz", + "dependencies": { + "lodash": { + "version": "4.17.1", + "from": "lodash@>=4.7.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" + } + } + }, "handlebars": { - "version": "4.0.5", + "version": "4.0.6", "from": "handlebars@>=4.0.0 <4.1.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.5.tgz", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.6.tgz", "dependencies": { "async": { "version": "1.5.2", @@ -2579,9 +2772,9 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" }, "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.16.2 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } }, @@ -2620,6 +2813,18 @@ "from": "immutable@3.8.1", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz" }, + "imports-loader": { + "version": "0.6.5", + "from": "imports-loader@>=0.6.5 <0.7.0", + "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz", + "dependencies": { + "source-map": { + "version": "0.1.43", + "from": "source-map@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" + } + } + }, "indent-string": { "version": "2.1.0", "from": "indent-string@>=2.1.0 <3.0.0", @@ -2663,9 +2868,9 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz" }, "invariant": { - "version": "2.2.1", + "version": "2.2.2", "from": "invariant@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.1.tgz" + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz" }, "invert-kv": { "version": "1.0.0", @@ -2845,9 +3050,14 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.0.tgz" }, "istanbul-lib-instrument": { - "version": "1.2.0", + "version": "1.3.0", "from": "istanbul-lib-instrument@>=1.1.4 <2.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.2.0.tgz" + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.3.0.tgz" + }, + "jasmine-core": { + "version": "2.5.2", + "from": "jasmine-core@>=2.4.1 <3.0.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.5.2.tgz" }, "javascript-detect-element-resize": { "version": "0.5.3", @@ -2885,9 +3095,9 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-2.0.0.tgz" }, "js-yaml": { - "version": "3.6.1", + "version": "3.7.0", "from": "js-yaml@>=3.2.7 <4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz" + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz" }, "jsbn": { "version": "0.1.0", @@ -2904,6 +3114,35 @@ "from": "jsesc@>=1.3.0 <2.0.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz" }, + "jshint": { + "version": "2.9.4", + "from": "jshint@>=2.9.4 <3.0.0", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.4.tgz", + "dependencies": { + "lodash": { + "version": "3.7.0", + "from": "lodash@>=3.7.0 <3.8.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz" + } + } + }, + "jshint-loader": { + "version": "0.8.3", + "from": "jshint-loader@>=0.8.3 <0.9.0", + "resolved": "https://registry.npmjs.org/jshint-loader/-/jshint-loader-0.8.3.tgz", + "dependencies": { + "strip-json-comments": { + "version": "0.1.3", + "from": "strip-json-comments@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" + } + } + }, + "jshint-stylish": { + "version": "2.2.1", + "from": "jshint-stylish@>=2.2.0 <3.0.0", + "resolved": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-2.2.1.tgz" + }, "json-schema": { "version": "0.2.3", "from": "json-schema@0.2.3", @@ -2944,6 +3183,178 @@ "from": "jstimezonedetect@1.0.5", "resolved": "https://registry.npmjs.org/jstimezonedetect/-/jstimezonedetect-1.0.5.tgz" }, + "karma": { + "version": "1.3.0", + "from": "karma@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-1.3.0.tgz", + "dependencies": { + "accepts": { + "version": "1.1.4", + "from": "accepts@1.1.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz" + }, + "base64-arraybuffer": { + "version": "0.1.2", + "from": "base64-arraybuffer@0.1.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz" + }, + "component-emitter": { + "version": "1.2.0", + "from": "component-emitter@1.2.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz" + }, + "engine.io": { + "version": "1.6.10", + "from": "engine.io@1.6.10", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.6.10.tgz" + }, + "engine.io-client": { + "version": "1.6.9", + "from": "engine.io-client@1.6.9", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz", + "dependencies": { + "component-emitter": { + "version": "1.1.2", + "from": "component-emitter@1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz" + } + } + }, + "engine.io-parser": { + "version": "1.2.4", + "from": "engine.io-parser@1.2.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz", + "dependencies": { + "has-binary": { + "version": "0.1.6", + "from": "has-binary@0.1.6", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz" + } + } + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "mime": { + "version": "1.3.4", + "from": "mime@>=1.3.4 <2.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" + }, + "mime-db": { + "version": "1.12.0", + "from": "mime-db@>=1.12.0 <1.13.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz" + }, + "mime-types": { + "version": "2.0.14", + "from": "mime-types@>=2.0.4 <2.1.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz" + }, + "negotiator": { + "version": "0.4.9", + "from": "negotiator@0.4.9", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz" + }, + "socket.io": { + "version": "1.4.7", + "from": "socket.io@1.4.7", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.4.7.tgz" + }, + "socket.io-client": { + "version": "1.4.6", + "from": "socket.io-client@1.4.6", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.6.tgz" + }, + "source-map": { + "version": "0.5.6", + "from": "source-map@>=0.5.3 <0.6.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + }, + "ws": { + "version": "1.0.1", + "from": "ws@1.0.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.0.1.tgz" + } + } + }, + "karma-chrome-launcher": { + "version": "1.0.1", + "from": "karma-chrome-launcher@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-1.0.1.tgz" + }, + "karma-coverage": { + "version": "1.1.1", + "from": "karma-coverage@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.1.tgz", + "dependencies": { + "source-map": { + "version": "0.5.6", + "from": "source-map@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + } + } + }, + "karma-firefox-launcher": { + "version": "1.0.0", + "from": "karma-firefox-launcher@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.0.0.tgz" + }, + "karma-html2js-preprocessor": { + "version": "1.1.0", + "from": "karma-html2js-preprocessor@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/karma-html2js-preprocessor/-/karma-html2js-preprocessor-1.1.0.tgz" + }, + "karma-jasmine": { + "version": "1.0.2", + "from": "karma-jasmine@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.0.2.tgz" + }, + "karma-junit-reporter": { + "version": "1.1.0", + "from": "karma-junit-reporter@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-1.1.0.tgz" + }, + "karma-phantomjs-launcher": { + "version": "1.0.2", + "from": "karma-phantomjs-launcher@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.2.tgz", + "dependencies": { + "lodash": { + "version": "4.17.1", + "from": "lodash@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" + } + } + }, + "karma-sauce-launcher": { + "version": "1.1.0", + "from": "karma-sauce-launcher@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-1.1.0.tgz" + }, + "karma-sourcemap-loader": { + "version": "0.3.7", + "from": "karma-sourcemap-loader@>=0.3.7 <0.4.0", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz" + }, + "karma-webpack": { + "version": "1.8.0", + "from": "karma-webpack@>=1.8.0 <2.0.0", + "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-1.8.0.tgz", + "dependencies": { + "async": { + "version": "0.9.2", + "from": "async@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + }, + "source-map": { + "version": "0.1.43", + "from": "source-map@>=0.1.41 <0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" + } + } + }, "kew": { "version": "0.7.0", "from": "kew@>=0.7.0 <0.8.0", @@ -3011,6 +3422,11 @@ } } }, + "less-plugin-autoprefix": { + "version": "1.5.1", + "from": "less-plugin-autoprefix@>=1.4.2 <2.0.0", + "resolved": "https://registry.npmjs.org/less-plugin-autoprefix/-/less-plugin-autoprefix-1.5.1.tgz" + }, "levn": { "version": "0.3.0", "from": "levn@>=0.3.0 <0.4.0", @@ -3026,6 +3442,16 @@ "from": "livereload-js@>=2.2.0 <3.0.0", "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz" }, + "load-grunt-configs": { + "version": "1.0.0", + "from": "load-grunt-configs@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/load-grunt-configs/-/load-grunt-configs-1.0.0.tgz" + }, + "load-grunt-tasks": { + "version": "3.5.2", + "from": "load-grunt-tasks@>=3.5.0 <4.0.0", + "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz" + }, "load-json-file": { "version": "1.1.0", "from": "load-json-file@>=1.0.0 <2.0.0", @@ -3186,9 +3612,9 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" }, "moment": { - "version": "2.15.2", + "version": "2.16.0", "from": "moment@>=2.10.2 <3.0.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.15.2.tgz" + "resolved": "https://registry.npmjs.org/moment/-/moment-2.16.0.tgz" }, "ms": { "version": "0.7.1", @@ -3760,9 +4186,9 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" }, "readable-stream": { - "version": "2.1.5", + "version": "2.2.2", "from": "readable-stream@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz" + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz" }, "readdirp": { "version": "2.1.0", @@ -3797,9 +4223,9 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" }, "regenerate": { - "version": "1.3.1", + "version": "1.3.2", "from": "regenerate@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.1.tgz" + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz" }, "regenerator-runtime": { "version": "0.9.6", @@ -4174,9 +4600,9 @@ } }, "statuses": { - "version": "1.3.0", + "version": "1.3.1", "from": "statuses@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz" + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" }, "stream-browserify": { "version": "1.0.0", @@ -4302,6 +4728,11 @@ } } }, + "time-grunt": { + "version": "1.4.0", + "from": "time-grunt@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.4.0.tgz" + }, "time-zone": { "version": "0.1.0", "from": "time-zone@>=0.1.0 <0.2.0", @@ -4604,6 +5035,33 @@ } } }, + "webpack": { + "version": "1.13.3", + "from": "webpack@>=1.13.1 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.13.3.tgz", + "dependencies": { + "async": { + "version": "1.5.2", + "from": "async@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + }, + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + }, + "supports-color": { + "version": "3.1.2", + "from": "supports-color@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" + } + } + }, "webpack-core": { "version": "0.6.8", "from": "webpack-core@>=0.6.0 <0.7.0", @@ -4666,9 +5124,9 @@ "resolved": "https://registry.npmjs.org/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz" }, "which": { - "version": "1.2.11", + "version": "1.2.12", "from": "which@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.11.tgz" + "resolved": "https://registry.npmjs.org/which/-/which-1.2.12.tgz" }, "which-module": { "version": "1.0.0", @@ -4765,9 +5223,9 @@ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.1.0.tgz", "dependencies": { "lodash": { - "version": "4.16.6", + "version": "4.17.1", "from": "lodash@>=4.8.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz" } } } diff --git a/awx/ui/package.json b/awx/ui/package.json index 4cba5b9df9..737eaed35c 100644 --- a/awx/ui/package.json +++ b/awx/ui/package.json @@ -84,6 +84,7 @@ "angular-codemirror": "chouseknecht/angular-codemirror#1.0.4", "angular-cookies": "^1.4.3", "angular-drag-and-drop-lists": "leigh-johnson/angular-drag-and-drop-lists#1.4.0", + "angular-duration-format": "^1.0.1", "angular-gettext": "^2.3.5", "angular-md5": "^0.1.8", "angular-moment": "^0.10.1", diff --git a/awx/ui/webpack.config.js b/awx/ui/webpack.config.js index 067ba50dca..6c8a7b1ffe 100644 --- a/awx/ui/webpack.config.js +++ b/awx/ui/webpack.config.js @@ -18,6 +18,7 @@ var vendorPkgs = [ 'angular-codemirror', 'angular-cookies', 'angular-drag-and-drop-lists', + 'angular-duration-format', 'angular-gettext', 'angular-md5', 'angular-moment',