aurora git commit: Reload instance page when URL changes.

2017-10-25 Thread dmclaughlin
Repository: aurora
Updated Branches:
  refs/heads/master 2507e6f59 -> 5201cf16a


Reload instance page when URL changes.

Reviewed at https://reviews.apache.org/r/63221/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/5201cf16
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/5201cf16
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/5201cf16

Branch: refs/heads/master
Commit: 5201cf16a7a29799664e4baaf741233ff59edec7
Parents: 2507e6f
Author: Reza Motamedi 
Authored: Wed Oct 25 15:30:37 2017 -0700
Committer: David McLaughlin 
Committed: Wed Oct 25 15:30:37 2017 -0700

--
 ui/package.json |  2 +-
 ui/src/main/js/pages/Instance.js| 21 +++--
 ui/src/main/js/pages/__tests__/Instance-test.js | 47 
 3 files changed, 66 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/aurora/blob/5201cf16/ui/package.json
--
diff --git a/ui/package.json b/ui/package.json
index 0651fc7..634d0f7 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -5,6 +5,7 @@
   "main": "index.js",
   "dependencies": {
 "bootstrap": "^3.3.7",
+"deep-equal": "^1.0.1",
 "diff": "^3.4.0",
 "es6-shim": "^0.35.3",
 "moment": "^2.18.1",
@@ -23,7 +24,6 @@
 "babel-preset-es2015": "^6.24.1",
 "babel-preset-react": "^6.24.1",
 "css-loader": "^0.28.5",
-"deep-equal": "^1.0.1",
 "enzyme": "^3.0.0",
 "enzyme-adapter-react-16": "^1.0.0",
 "eslint": "^4.4.1",

http://git-wip-us.apache.org/repos/asf/aurora/blob/5201cf16/ui/src/main/js/pages/Instance.js
--
diff --git a/ui/src/main/js/pages/Instance.js b/ui/src/main/js/pages/Instance.js
index 4b85545..2979b3c 100644
--- a/ui/src/main/js/pages/Instance.js
+++ b/ui/src/main/js/pages/Instance.js
@@ -1,4 +1,5 @@
 import React from 'react';
+import deepEqual from 'deep-equal';
 
 import Breadcrumb from 'components/Breadcrumb';
 import InstanceHistory from 'components/InstanceHistory';
@@ -8,13 +9,16 @@ import TaskStatus from 'components/TaskStatus';
 import { isActive } from 'utils/Task';
 
 export default class Instance extends React.Component {
+  getInitialState() {
+return {cluster: '', tasks: [], loading: true};
+  }
+
   constructor(props) {
 super(props);
-this.state = {cluster: '', tasks: [], loading: true, loadingNeighbors: 
true};
+this.state = this.getInitialState();
   }
 
-  componentWillMount(props) {
-const { role, environment, name, instance } = this.props.match.params;
+  fetchTask(role, environment, name, instance) {
 const query = new TaskQuery();
 query.role = role;
 query.environment = environment;
@@ -31,6 +35,11 @@ export default class Instance extends React.Component {
 });
   }
 
+  componentWillMount(props) {
+const { role, environment, name, instance } = this.props.match.params;
+this.fetchTask(role, environment, name, instance);
+  }
+
   componentWillUpdate(nextProps, nextState) {
 if (this.state.loading && !nextState.loading) {
   const activeTask = nextState.tasks.find(isActive);
@@ -49,6 +58,12 @@ export default class Instance extends React.Component {
 });
   });
 }
+
+if (!deepEqual(this.props.match.params, nextProps.match.params)) {
+  const { role, environment, name, instance } = nextProps.match.params;
+  this.setState(this.getInitialState());
+  this.fetchTask(role, environment, name, instance);
+}
   }
 
   render() {

http://git-wip-us.apache.org/repos/asf/aurora/blob/5201cf16/ui/src/main/js/pages/__tests__/Instance-test.js
--
diff --git a/ui/src/main/js/pages/__tests__/Instance-test.js 
b/ui/src/main/js/pages/__tests__/Instance-test.js
index 2395e2e..1a8cd7b 100644
--- a/ui/src/main/js/pages/__tests__/Instance-test.js
+++ b/ui/src/main/js/pages/__tests__/Instance-test.js
@@ -17,6 +17,13 @@ const params = {
   instance: '1'
 };
 
+const differentParams = {
+  role: 'test-role',
+  environment: 'test-env',
+  name: 'test-job',
+  instance: '2'
+};
+
 function createMockApi(tasks) {
   const api = {};
   api.getTasksWithoutConfigs = (query, handler) => handler({
@@ -40,6 +47,16 @@ const tasks = [{
   status: ScheduleStatus.KILLED
 }];
 
+function apiSpy() {
+  return {
+getTasksWithoutConfigs: jest.fn(),
+getPendingReason: jest.fn(),
+getConfigSummary: jest.fn(),
+getJobUpdateDetails: jest.fn(),
+getJobSummary: jest.fn()
+  };
+}
+
 describe('Instance', () => {
   it('Should render Loading before data is fetched', () => {
 expect(shallow( {
 

[14/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/lib/angular/angular.min.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/lib/angular/angular.min.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/lib/angular/angular.min.js
deleted file mode 100644
index 07b6249..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/lib/angular/angular.min.js
+++ /dev/null
@@ -1,3772 +0,0 @@
-/*
- AngularJS v1.0.6
- (c) 2010-2012 Google, Inc. http://angularjs.org
- License: MIT
- */
-(function (N, Y, q) {
-'use strict';
-function n(b, a, c) {
-var d;
-if (b)if (H(b))for (d in b)d != "prototype" && d != "length" && d != 
"name" && b.hasOwnProperty(d) && a.call(c, b[d], d); else if (b.forEach && 
b.forEach !== n)b.forEach(a, c); else if (!b || typeof b.length !== "number" ? 
0 : typeof b.hasOwnProperty != "function" && typeof b.constructor != "function" 
|| b instanceof K || ca && b instanceof ca || xa.call(b) !== "[object Object]" 
|| typeof b.callee === "function")for (d = 0; d < b.length; d++)a.call(c, b[d], 
d); else for (d in b)b.hasOwnProperty(d) && a.call(c, b[d],
-d);
-return b
-}
-
-function nb(b) {
-var a = [], c;
-for (c in b)b.hasOwnProperty(c) && a.push(c);
-return a.sort()
-}
-
-function fc(b, a, c) {
-for (var d = nb(b), e = 0; e < d.length; e++)a.call(c, b[d[e]], d[e]);
-return d
-}
-
-function ob(b) {
-return function (a, c) {
-b(c, a)
-}
-}
-
-function ya() {
-for (var b = aa.length, a; b;) {
-b--;
-a = aa[b].charCodeAt(0);
-if (a == 57)return aa[b] = "A", aa.join("");
-if (a == 90)aa[b] = "0"; else return aa[b] = String.fromCharCode(a 
+ 1), aa.join("")
-}
-aa.unshift("0");
-return aa.join("")
-}
-
-function v(b) {
-n(arguments, function (a) {
-a !== b && n(a, function (a, d) {
-b[d] =
-a
-})
-});
-return b
-}
-
-function G(b) {
-return parseInt(b, 10)
-}
-
-function za(b, a) {
-return v(new (v(function () {
-}, {prototype: b})), a)
-}
-
-function w() {
-}
-
-function na(b) {
-return b
-}
-
-function I(b) {
-return function () {
-return b
-}
-}
-
-function x(b) {
-return typeof b == "undefined"
-}
-
-function y(b) {
-return typeof b != "undefined"
-}
-
-function L(b) {
-return b != null && typeof b == "object"
-}
-
-function B(b) {
-return typeof b == "string"
-}
-
-function Ra(b) {
-return typeof b == "number"
-}
-
-function oa(b) {
-return xa.apply(b) == "[object Date]"
-}
-
-function E(b) {
-return xa.apply(b) == "[object Array]"
-}
-
-function H(b) {
-return typeof b == "function"
-}
-
-function pa(b) {
-return b && b.document && b.location && b.alert && b.setInterval
-}
-
-function O(b) {
-return B(b) ? b.replace(/^\s*/, "").replace(/\s*$/, "") : b
-}
-
-function gc(b) {
-return b && (b.nodeName || b.bind && b.find)
-}
-
-function Sa(b, a, c) {
-var d = [];
-n(b, function (b, g, h) {
-d.push(a.call(c, b, g, h))
-});
-return d
-}
-
-function Aa(b, a) {
-if (b.indexOf)return b.indexOf(a);
-for (var c = 0; c < b.length; c++)if (a === b[c])return c;
-return-1
-}
-
-function Ta(b, a) {
-var c = Aa(b, a);
-c >= 0 && b.splice(c, 1);
-return a
-}
-
-function V(b, a) {
-if (pa(b) ||
-b && b.$evalAsync && b.$watch)throw Error("Can't copy Window or 
Scope");
-if (a) {
-if (b === a)throw Error("Can't copy equivalent objects or arrays");
-if (E(b))for (var c = a.length = 0; c < b.length; 
c++)a.push(V(b[c])); else for (c in n(a, function (b, c) {
-delete a[c]
-}), b)a[c] = V(b[c])
-} else(a = b) && (E(b) ? a = V(b, []) : oa(b) ? a = new 
Date(b.getTime()) : L(b) && (a = V(b, {})));
-return a
-}
-
-function hc(b, a) {
-var a = a || {}, c;
-for (c in b)b.hasOwnProperty(c) && c.substr(0, 2) !== "$$" && (a[c] = 
b[c]);
-return a
-}
-
-function ga(b, a) {
-if (b === a)return!0;
-if (b === null || a ===
-null)return!1;
-if (b !== b && a !== a)return!0;
-var c = typeof b, d;
-if (c == typeof a && c == "object")if (E(b)) {
-if ((c = b.length) == 

[16/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/css/bootstrap.css
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/css/bootstrap.css
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/css/bootstrap.css
deleted file mode 100644
index 080a293..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/css/bootstrap.css
+++ /dev/null
@@ -1,5776 +0,0 @@
-/*!
- * Bootstrap v2.3.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */
-
-.clearfix {
-*zoom: 1;
-}
-
-.clearfix:before,
-.clearfix:after {
-display: table;
-line-height: 0;
-content: "";
-}
-
-.clearfix:after {
-clear: both;
-}
-
-.hide-text {
-font: 0/0 a;
-color: transparent;
-text-shadow: none;
-background-color: transparent;
-border: 0;
-}
-
-.input-block-level {
-display: block;
-width: 100%;
-min-height: 30px;
--webkit-box-sizing: border-box;
--moz-box-sizing: border-box;
-box-sizing: border-box;
-}
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-nav,
-section {
-display: block;
-}
-
-audio,
-canvas,
-video {
-display: inline-block;
-*display: inline;
-*zoom: 1;
-}
-
-audio:not([controls]) {
-display: none;
-}
-
-html {
-font-size: 100%;
--webkit-text-size-adjust: 100%;
--ms-text-size-adjust: 100%;
-}
-
-a:focus {
-outline: thin dotted #333;
-outline: 5px auto -webkit-focus-ring-color;
-outline-offset: -2px;
-}
-
-a:hover,
-a:active {
-outline: 0;
-}
-
-sub,
-sup {
-position: relative;
-font-size: 75%;
-line-height: 0;
-vertical-align: baseline;
-}
-
-sup {
-top: -0.5em;
-}
-
-sub {
-bottom: -0.25em;
-}
-
-img {
-width: auto\9;
-height: auto;
-max-width: 100%;
-vertical-align: middle;
-border: 0;
--ms-interpolation-mode: bicubic;
-}
-
-#map_canvas img,
-.google-maps img {
-max-width: none;
-}
-
-button,
-input,
-select,
-textarea {
-margin: 0;
-font-size: 100%;
-vertical-align: middle;
-}
-
-button,
-input {
-*overflow: visible;
-line-height: normal;
-}
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-padding: 0;
-border: 0;
-}
-
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
-cursor: pointer;
--webkit-appearance: button;
-}
-
-label,
-select,
-button,
-input[type="button"],
-input[type="reset"],
-input[type="submit"],
-input[type="radio"],
-input[type="checkbox"] {
-cursor: pointer;
-}
-
-input[type="search"] {
--webkit-box-sizing: content-box;
--moz-box-sizing: content-box;
-box-sizing: content-box;
--webkit-appearance: textfield;
-}
-
-input[type="search"]::-webkit-search-decoration,
-input[type="search"]::-webkit-search-cancel-button {
--webkit-appearance: none;
-}
-
-textarea {
-overflow: auto;
-vertical-align: top;
-}
-
-@media print {
-* {
-color: #000 !important;
-text-shadow: none !important;
-background: transparent !important;
-box-shadow: none !important;
-}
-
-a,
-a:visited {
-text-decoration: underline;
-}
-
-a[href]:after {
-content: " (" attr(href) ")";
-}
-
-abbr[title]:after {
-content: " (" attr(title) ")";
-}
-
-.ir a:after,
-a[href^="javascript:"]:after,
-a[href^="#"]:after {
-content: "";
-}
-
-pre,
-blockquote {
-border: 1px solid #999;
-page-break-inside: avoid;
-}
-
-thead {
-display: table-header-group;
-}
-
-tr,
-img {
-page-break-inside: avoid;
-}
-
-img {
-max-width: 100% !important;
-}
-
-@page {
-margin: 0.5cm;
-}
-
-p,
-h2,
-h3 {
-orphans: 3;
-widows: 3;
-}
-
-h2,
-h3 {
-page-break-after: avoid;
-}
-}
-
-body {
-margin: 0;
-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-font-size: 14px;
-line-height: 20px;
-color: #33;
-background-color: #ff;
-}
-
-a {
-color: #0088cc;
-text-decoration: none;
-}
-
-a:hover,
-a:focus {
-color: #005580;
-text-decoration: underline;
-}
-
-.img-rounded {
--webkit-border-radius: 6px;
--moz-border-radius: 6px;
-border-radius: 6px;
-}
-
-.img-polaroid {
-padding: 4px;
-background-color: #fff;
-border: 1px solid #ccc;
-border: 1px solid rgba(0, 0, 0, 0.2);
--webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
--moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-}
-

[07/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular.js
deleted file mode 100644
index a1eabdf..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular.js
+++ /dev/null
@@ -1,15018 +0,0 @@
-/**
- * @license AngularJS v1.0.7
- * (c) 2010-2012 Google, Inc. http://angularjs.org
- * License: MIT
- */
-(function (window, document, undefined) {
-'use strict';
-
-
-
-/**
- * @ngdoc function
- * @name angular.lowercase
- * @function
- *
- * @description Converts the specified string to lowercase.
- * @param {string} string String to be converted to lowercase.
- * @returns {string} Lowercased string.
- */
-var lowercase = function (string) {
-return isString(string) ? string.toLowerCase() : string;
-};
-
-
-/**
- * @ngdoc function
- * @name angular.uppercase
- * @function
- *
- * @description Converts the specified string to uppercase.
- * @param {string} string String to be converted to uppercase.
- * @returns {string} Uppercased string.
- */
-var uppercase = function (string) {
-return isString(string) ? string.toUpperCase() : string;
-};
-
-
-var manualLowercase = function (s) {
-return isString(s)
-? s.replace(/[A-Z]/g, function (ch) {
-return String.fromCharCode(ch.charCodeAt(0) | 32);
-})
-: s;
-};
-var manualUppercase = function (s) {
-return isString(s)
-? s.replace(/[a-z]/g, function (ch) {
-return String.fromCharCode(ch.charCodeAt(0) & ~32);
-})
-: s;
-};
-
-
-// String#toLowerCase and String#toUpperCase don't produce correct results in 
browsers with Turkish
-// locale, for this reason we need to detect this case and redefine 
lowercase/uppercase methods
-// with correct but slower alternatives.
-if ('i' !== 'I'.toLowerCase()) {
-lowercase = manualLowercase;
-uppercase = manualUppercase;
-}
-
-
-var /** holds major version number for IE or NaN for real browsers */
-msie = int((/msie (\d+)/.exec(lowercase(navigator.userAgent)) || 
[])[1]),
-jqLite,   // delay binding since jQuery could be loaded after 
us.
-jQuery,   // delay binding
-slice = [].slice,
-push = [].push,
-toString = Object.prototype.toString,
-
-/** @name angular */
-angular = window.angular || (window.angular = {}),
-angularModule,
-nodeName_,
-uid = ['0', '0', '0'];
-
-
-/**
- * @private
- * @param {*} obj
- * @return {boolean} Returns true if `obj` is an array or array-like 
object (NodeList, Arguments, ...)
- */
-function isArrayLike(obj) {
-if (!obj || (typeof obj.length !== 'number')) return false;
-
-// We have on object which has length property. Should we treat it as 
array?
-if (typeof obj.hasOwnProperty != 'function' &&
-typeof obj.constructor != 'function') {
-// This is here for IE8: it is a bogus object treat it as array;
-return true;
-} else {
-return obj instanceof JQLite ||  // JQLite
-(jQuery && obj instanceof jQuery) ||  // jQuery
-toString.call(obj) !== '[object Object]' ||   // some browser 
native object
-typeof obj.callee === 'function';  // arguments 
(on IE8 looks like regular obj)
-}
-}
-
-
-/**
- * @ngdoc function
- * @name angular.forEach
- * @function
- *
- * @description
- * Invokes the `iterator` function once for each item in `obj` collection, 
which can be either an
- * object or an array. The `iterator` function is invoked with 
`iterator(value, key)`, where `value`
- * is the value of an object property or an array element and `key` is the 
object property key or
- * array element index. Specifying a `context` for the function is 
optional.
- *
- * Note: this function was previously known as `angular.foreach`.
- *
- 
- var values = {name: 'misko', gender: 'male'};
- var log = [];
- angular.forEach(values, function(value, key){
-   this.push(key + ': ' + value);
- }, log);
- expect(log).toEqual(['name: misko', 'gender:male']);
- 
- *
- * @param {Object|Array} obj Object to iterate over.
- * @param {Function} iterator Iterator function.
- * 

[02/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/src/main/resources/scheduler/assets/js/controllers.js
--
diff --git a/src/main/resources/scheduler/assets/js/controllers.js 
b/src/main/resources/scheduler/assets/js/controllers.js
deleted file mode 100644
index f7ebe6c..000
--- a/src/main/resources/scheduler/assets/js/controllers.js
+++ /dev/null
@@ -1,495 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-(function () {
-  /* global JobUpdateKey:false, JobUpdateQuery:false, JobKey:false */
-  'use strict';
-
-  /* Controllers */
-
-  var auroraUIControllers = angular.module('auroraUI.controllers', []);
-
-  var infoTableConfig = {
-isGlobalSearchActivated: true,
-isPaginationEnabled: true,
-itemsByPage: 25,
-maxSize: 8,
-selectionMode: 'single'
-  };
-
-  var summaryTableConfig = {
-isPaginationEnabled: false,
-isGlobalSearchActivated: false,
-selectionMode: 'none'
-  };
-
-  var REFRESH_RATES = {
-IN_PROGRESS_UPDATE_MS: 15000,
-COMPLETED_UPDATES_MS: 6
-  };
-
-  auroraUIControllers.controller('RoleSummaryController',
-function ($scope, auroraClient) {
-  $scope.error = '';
-
-  auroraClient.getRoleSummary().then(function (roleSummaries) {
-$scope.roleSummaries = parseResponse(roleSummaries);
-
-$scope.roleSummaryColumns = [
-  {label: 'Role', map: 'role', cellTemplateUrl: 
'/assets/roleLink.html'},
-  {label: 'Jobs', map: 'jobCount'},
-  {label: 'Cron Jobs', map: 'cronJobCount'}
-];
-
-function parseResponse(response) {
-  $scope.error = response.error ? 'Error requesting role summary: ' + 
response.error : '';
-
-  if ($scope.error) {
-return [];
-  }
-
-  // TODO(Suman Karumuri): Replace sort with defaultSortColumn once it 
lands
-  // https://github.com/lorenzofox3/Smart-Table/pull/61
-  return response.summaries.sort(function (a, b) {
-if (a.role.toLowerCase() > b.role.toLowerCase()) {
-  return 1;
-}
-if (a.role.toLowerCase() < b.role.toLowerCase()) {
-  return -1;
-}
-return 0;
-  });
-}
-
-$scope.roleSummaryTableConfig = infoTableConfig;
-$scope.roleSummaryTableConfig.columnSpan = 
$scope.roleSummaryColumns.length;
-  });
-});
-
-  auroraUIControllers.controller('JobSummaryController',
-function ($scope, $routeParams, auroraClient) {
-  $scope.role = $routeParams.role;
-  $scope.environment = $routeParams.environment;
-
-  $scope.error = '';
-
-  $scope.jobsTableColumns = [
-{label: 'Job Type', map: 'jobType'},
-{label: 'Environment', map: 'environment', cellTemplateUrl: 
'/assets/roleEnvLink.html'},
-{label: 'Job', map: 'jobName', cellTemplateUrl: 
'/assets/jobLink.html'},
-{label: 'production', map: 'isProduction'},
-{label: 'Pending Tasks', map: 'pendingTasks'},
-{label: 'Active Tasks', map: 'activeTasks'},
-{label: 'Finished Tasks', map: 'finishedTasks'},
-{label: 'Failed Tasks', map: 'failedTasks'}
-  ];
-
-  $scope.jobsTableConfig = infoTableConfig;
-  $scope.jobsTableConfig.columnSpan = $scope.jobsTableColumns.length;
-
-  function getJobType(job) {
-if (job.taskConfig.isService) {
-  return 'service';
-}
-
-if (job.cronSchedule !== null) {
-  return 'cron';
-}
-
-return 'adhoc';
-  }
-
-  function getJobs(summaries) {
-$scope.error = summaries.error ? 'Error fetching job summaries: ' + 
summaries.error : '';
-
-if ($scope.error) {
-  return [];
-}
-
-var jobSummaries = summaries.jobs;
-
-if ($scope.environment) {
-  jobSummaries = _.filter(jobSummaries, function (summary) {
-return summary.job.key.environment === $scope.environment;
-  });
-}
-
-var byJobName = function (summary) {
-  return summary.jobName;
-};
-
-return _.chain(jobSummaries)
-  .map(function (summary) {
-return {
-  role: $scope.role, // required for roleEnvLink directive
-  environment: summary.job.key.environment,
-  jobName: summary.job.key.name,
-  jobType: 

[30/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.js 
b/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.js
deleted file mode 100644
index 197110e..000
--- a/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.js
+++ /dev/null
@@ -1,20560 +0,0 @@
-/**
- * @license AngularJS v1.2.9
- * (c) 2010-2014 Google, Inc. http://angularjs.org
- * License: MIT
- */
-(function(window, document, undefined) {'use strict';
-
-/**
- * @description
- *
- * This object provides a utility for producing rich Error messages within
- * Angular. It can be called as follows:
- *
- * var exampleMinErr = minErr('example');
- * throw exampleMinErr('one', 'This {0} is {1}', foo, bar);
- *
- * The above creates an instance of minErr in the example namespace. The
- * resulting error will have a namespaced error code of example.one.  The
- * resulting error will replace {0} with the value of foo, and {1} with the
- * value of bar. The object is not restricted in the number of arguments it can
- * take.
- *
- * If fewer arguments are specified than necessary for interpolation, the extra
- * interpolation markers will be preserved in the final string.
- *
- * Since data will be parsed statically during a build step, some restrictions
- * are applied with respect to how minErr instances are created and called.
- * Instances should have names of the form namespaceMinErr for a minErr created
- * using minErr('namespace') . Error codes, namespaces and template strings
- * should all be static strings, not variables or general expressions.
- *
- * @param {string} module The namespace to use for the new minErr instance.
- * @returns {function(string, string, ...): Error} instance
- */
-
-function minErr(module) {
-  return function () {
-var code = arguments[0],
-  prefix = '[' + (module ? module + ':' : '') + code + '] ',
-  template = arguments[1],
-  templateArgs = arguments,
-  stringify = function (obj) {
-if (typeof obj === 'function') {
-  return obj.toString().replace(/ \{[\s\S]*$/, '');
-} else if (typeof obj === 'undefined') {
-  return 'undefined';
-} else if (typeof obj !== 'string') {
-  return JSON.stringify(obj);
-}
-return obj;
-  },
-  message, i;
-
-message = prefix + template.replace(/\{\d+\}/g, function (match) {
-  var index = +match.slice(1, -1), arg;
-
-  if (index + 2 < templateArgs.length) {
-arg = templateArgs[index + 2];
-if (typeof arg === 'function') {
-  return arg.toString().replace(/ ?\{[\s\S]*$/, '');
-} else if (typeof arg === 'undefined') {
-  return 'undefined';
-} else if (typeof arg !== 'string') {
-  return toJson(arg);
-}
-return arg;
-  }
-  return match;
-});
-
-message = message + '\nhttp://errors.angularjs.org/1.2.9/' +
-  (module ? module + '/' : '') + code;
-for (i = 2; i < arguments.length; i++) {
-  message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
-encodeURIComponent(stringify(arguments[i]));
-}
-
-return new Error(message);
-  };
-}
-
-/* We need to tell jshint what variables are being exported */
-/* global
--angular,
--msie,
--jqLite,
--jQuery,
--slice,
--push,
--toString,
--ngMinErr,
--_angular,
--angularModule,
--nodeName_,
--uid,
-
--lowercase,
--uppercase,
--manualLowercase,
--manualUppercase,
--nodeName_,
--isArrayLike,
--forEach,
--sortedKeys,
--forEachSorted,
--reverseParams,
--nextUid,
--setHashKey,
--extend,
--int,
--inherit,
--noop,
--identity,
--valueFn,
--isUndefined,
--isDefined,
--isObject,
--isString,
--isNumber,
--isDate,
--isArray,
--isFunction,
--isRegExp,
--isWindow,
--isScope,
--isFile,
--isBoolean,
--trim,
--isElement,
--makeMap,
--map,
--size,
--includes,
--indexOf,
--arrayRemove,
--isLeafNode,
--copy,
--shallowCopy,
--equals,
--csp,
--concat,
--sliceArgs,
--bind,
--toJsonReplacer,
--toJson,
--fromJson,
--toBoolean,
--startingTag,
--tryDecodeURIComponent,
--parseKeyValue,
--toKeyValue,
--encodeUriSegment,
--encodeUriQuery,
--angularInit,
--bootstrap,
--snake_case,
--bindJQuery,
--assertArg,
--assertArgFn,
--assertNotHasOwnProperty,
--getter,
--getBlockElements,
-
-*/
-
-
-
-/**
- * @ngdoc function
- * @name angular.lowercase
- * @function
- *
- * @description Converts the specified string to lowercase.
- * @param {string} 

[05/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/lib/angular/angular-scenario.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/lib/angular/angular-scenario.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/lib/angular/angular-scenario.js
deleted file mode 100644
index c19b3de..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/lib/angular/angular-scenario.js
+++ /dev/null
@@ -1,26223 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.7.2
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Wed Mar 21 12:46:34 2012 -0700
- */
-(function( window, undefined ) {
-'use strict';
-
-// Use the correct document accordingly with window argument (sandbox)
-var document = window.document,
-   navigator = window.navigator,
-   location = window.location;
-var jQuery = (function() {
-
-// Define a local copy of jQuery
-var jQuery = function( selector, context ) {
-   // The jQuery object is actually just the init constructor 
'enhanced'
-   return new jQuery.fn.init( selector, context, rootjQuery );
-   },
-
-   // Map over jQuery in case of overwrite
-   _jQuery = window.jQuery,
-
-   // Map over the $ in case of overwrite
-   _$ = window.$,
-
-   // A central reference to the root jQuery(document)
-   rootjQuery,
-
-   // A simple way to check for HTML strings or ID strings
-   // Prioritize #id over  to avoid XSS via location.hash (#9521)
-   quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
-
-   // Check if a string has a non-whitespace character in it
-   rnotwhite = /\S/,
-
-   // Used for trimming whitespace
-   trimLeft = /^\s+/,
-   trimRight = /\s+$/,
-
-   // Match a standalone tag
-   rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
-
-   // JSON RegExp
-   rvalidchars = /^[\],:{}\s]*$/,
-   rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
-   rvalidtokens = 
/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
-   rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
-
-   // Useragent RegExp
-   rwebkit = /(webkit)[ \/]([\w.]+)/,
-   ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
-   rmsie = /(msie) ([\w.]+)/,
-   rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
-
-   // Matches dashed string for camelizing
-   rdashAlpha = /-([a-z]|[0-9])/ig,
-   rmsPrefix = /^-ms-/,
-
-   // Used by jQuery.camelCase as callback to replace()
-   fcamelCase = function( all, letter ) {
-   return ( letter + "" ).toUpperCase();
-   },
-
-   // Keep a UserAgent string for use with jQuery.browser
-   userAgent = navigator.userAgent,
-
-   // For matching the engine and version of the browser
-   browserMatch,
-
-   // The deferred used on DOM ready
-   readyList,
-
-   // The ready event handler
-   DOMContentLoaded,
-
-   // Save a reference to some core methods
-   toString = Object.prototype.toString,
-   hasOwn = Object.prototype.hasOwnProperty,
-   push = Array.prototype.push,
-   slice = Array.prototype.slice,
-   trim = String.prototype.trim,
-   indexOf = Array.prototype.indexOf,
-
-   // [[Class]] -> type pairs
-   class2type = {};
-
-jQuery.fn = jQuery.prototype = {
-   constructor: jQuery,
-   init: function( selector, context, rootjQuery ) {
-   var match, elem, ret, doc;
-
-   // Handle $(""), $(null), or $(undefined)
-   if ( !selector ) {
-   return this;
-   }
-
-   // Handle $(DOMElement)
-   if ( selector.nodeType ) {
-   this.context = this[0] = selector;
-   this.length = 1;
-   return this;
-   }
-
-   // The body element only exists once, optimize finding it
-   if ( selector === "body" && !context && document.body ) {
-   this.context = document;
-   this[0] = document.body;
-   this.selector = selector;
-   this.length = 1;
-   return this;
-   }
-
-   // Handle HTML strings
-   if ( typeof selector === "string" ) {
-   // Are we dealing with HTML string or an ID?
-   if ( selector.charAt(0) === "<" && selector.charAt( 
selector.length - 1 ) === ">" && selector.length >= 3 ) {
-

[18/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/momentjs/moment.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/moment.js 
b/3rdparty/javascript/scheduler/assets/bower_components/momentjs/moment.js
deleted file mode 100644
index b79da7f..000
--- a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/moment.js
+++ /dev/null
@@ -1,2400 +0,0 @@
-//! moment.js
-//! version : 2.5.1
-//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
-//! license : MIT
-//! momentjs.com
-
-(function (undefined) {
-
-/
-Constants
-/
-
-var moment,
-VERSION = "2.5.1",
-global = this,
-round = Math.round,
-i,
-
-YEAR = 0,
-MONTH = 1,
-DATE = 2,
-HOUR = 3,
-MINUTE = 4,
-SECOND = 5,
-MILLISECOND = 6,
-
-// internal storage for language config files
-languages = {},
-
-// moment internal properties
-momentProperties = {
-_isAMomentObject: null,
-_i : null,
-_f : null,
-_l : null,
-_strict : null,
-_isUTC : null,
-_offset : null,  // optional. Combine with _isUTC
-_pf : null,
-_lang : null  // optional
-},
-
-// check for nodeJS
-hasModule = (typeof module !== 'undefined' && module.exports && typeof 
require !== 'undefined'),
-
-// ASP.NET json date format regex
-aspNetJsonRegex = /^\/?Date\((\-?\d+)/i,
-aspNetTimeSpanJsonRegex = 
/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,
-
-// from 
http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
-// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal 
anywhere
-isoDurationRegex = 
/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,
-
-// format tokens
-formattingTokens = 
/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YY|Y||YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,
-localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,
-
-// parsing token regexes
-parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99
-parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999
-parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 
-parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999
-parseTokenDigits = /\d+/, // nonzero number of digits
-parseTokenWord = 
/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,
 // any word (or two) characters or numbers including two/three word month in 
arabic.
-parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 + 
- or Z
-parseTokenT = /T/i, // T (ISO separator)
-parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 
123456789.123
-
-//strict parsing regexes
-parseTokenOneDigit = /\d/, // 0 - 9
-parseTokenTwoDigits = /\d\d/, // 00 - 99
-parseTokenThreeDigits = /\d{3}/, // 000 - 999
-parseTokenFourDigits = /\d{4}/, //  - 
-parseTokenSixDigits = /[+-]?\d{6}/, // -999,999 - 999,999
-parseTokenSignedNumber = /[+-]?\d+/, // -inf - inf
-
-// iso 8601 regex
-// -00-00 -W00 or -W00-0 + T + 00 or 00:00 or 00:00:00 or 
00:00:00.000 + +00:00 or + or +00)
-isoRegex = 
/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| 
)(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
-
-isoFormat = '-MM-DDTHH:mm:ssZ',
-
-isoDates = [
-['YY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/],
-['-MM-DD', /\d{4}-\d{2}-\d{2}/],
-['-[W]WW-E', /\d{4}-W\d{2}-\d/],
-['-[W]WW', /\d{4}-W\d{2}/],
-['-DDD', /\d{4}-\d{3}/]
-],
-
-// iso time formats and regexes
-isoTimes = [
-['HH:mm:ss.', /(T| )\d\d:\d\d:\d\d\.\d{1,3}/],
-['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/],
-['HH:mm', /(T| )\d\d:\d\d/],
-['HH', /(T| )\d\d/]
-],
-
-// timezone chunker "+10:00" > ["10", "00"] or "-1530" > ["-15", "30"]
-parseTimezoneChunker = /([\+\-]|\d\d)/gi,
-
-// getter and setter names
-proxyGettersAndSetters = 
'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'),
-unitMillisecondFactors = {
-'Milliseconds' : 1,
-'Seconds' : 1e3,
-'Minutes' : 6e4,
-'Hours' : 36e5,
-'Days' 

[03/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/underscore/underscore.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/underscore/underscore.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/underscore/underscore.js
deleted file mode 100644
index 9a4cabe..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/underscore/underscore.js
+++ /dev/null
@@ -1,1343 +0,0 @@
-// Underscore.js 1.6.0
-// http://underscorejs.org
-// (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative 
Reporters & Editors
-// Underscore may be freely distributed under the MIT license.
-
-(function() {
-
-  // Baseline setup
-  // --
-
-  // Establish the root object, `window` in the browser, or `exports` on the 
server.
-  var root = this;
-
-  // Save the previous value of the `_` variable.
-  var previousUnderscore = root._;
-
-  // Establish the object that gets returned to break out of a loop iteration.
-  var breaker = {};
-
-  // Save bytes in the minified (but not gzipped) version:
-  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = 
Function.prototype;
-
-  // Create quick reference variables for speed access to core prototypes.
-  var
-push = ArrayProto.push,
-slice= ArrayProto.slice,
-concat   = ArrayProto.concat,
-toString = ObjProto.toString,
-hasOwnProperty   = ObjProto.hasOwnProperty;
-
-  // All **ECMAScript 5** native function implementations that we hope to use
-  // are declared here.
-  var
-nativeForEach  = ArrayProto.forEach,
-nativeMap  = ArrayProto.map,
-nativeReduce   = ArrayProto.reduce,
-nativeReduceRight  = ArrayProto.reduceRight,
-nativeFilter   = ArrayProto.filter,
-nativeEvery= ArrayProto.every,
-nativeSome = ArrayProto.some,
-nativeIndexOf  = ArrayProto.indexOf,
-nativeLastIndexOf  = ArrayProto.lastIndexOf,
-nativeIsArray  = Array.isArray,
-nativeKeys = Object.keys,
-nativeBind = FuncProto.bind;
-
-  // Create a safe reference to the Underscore object for use below.
-  var _ = function(obj) {
-if (obj instanceof _) return obj;
-if (!(this instanceof _)) return new _(obj);
-this._wrapped = obj;
-  };
-
-  // Export the Underscore object for **Node.js**, with
-  // backwards-compatibility for the old `require()` API. If we're in
-  // the browser, add `_` as a global object via a string identifier,
-  // for Closure Compiler "advanced" mode.
-  if (typeof exports !== 'undefined') {
-if (typeof module !== 'undefined' && module.exports) {
-  exports = module.exports = _;
-}
-exports._ = _;
-  } else {
-root._ = _;
-  }
-
-  // Current version.
-  _.VERSION = '1.6.0';
-
-  // Collection Functions
-  // 
-
-  // The cornerstone, an `each` implementation, aka `forEach`.
-  // Handles objects with the built-in `forEach`, arrays, and raw objects.
-  // Delegates to **ECMAScript 5**'s native `forEach` if available.
-  var each = _.each = _.forEach = function(obj, iterator, context) {
-if (obj == null) return obj;
-if (nativeForEach && obj.forEach === nativeForEach) {
-  obj.forEach(iterator, context);
-} else if (obj.length === +obj.length) {
-  for (var i = 0, length = obj.length; i < length; i++) {
-if (iterator.call(context, obj[i], i, obj) === breaker) return;
-  }
-} else {
-  var keys = _.keys(obj);
-  for (var i = 0, length = keys.length; i < length; i++) {
-if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) 
return;
-  }
-}
-return obj;
-  };
-
-  // Return the results of applying the iterator to each element.
-  // Delegates to **ECMAScript 5**'s native `map` if available.
-  _.map = _.collect = function(obj, iterator, context) {
-var results = [];
-if (obj == null) return results;
-if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
-each(obj, function(value, index, list) {
-  results.push(iterator.call(context, value, index, list));
-});
-return results;
-  };
-
-  var reduceError = 'Reduce of empty array with no initial value';
-
-  // **Reduce** builds up a single result from a list of values, aka `inject`,
-  // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
-  _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
-var initial = arguments.length > 2;
-if (obj == null) obj = [];
-if (nativeReduce && obj.reduce === nativeReduce) {
-  if (context) iterator = _.bind(iterator, context);
-  return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
-}
-each(obj, function(value, index, list) {
-  if (!initial) {
-memo = 

[22/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/langs.min.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/langs.min.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/langs.min.js
deleted file mode 100644
index 98acb48..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/langs.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-!function(a){"function"==typeof 
define&?define(["moment"],a):"object"==typeof 
exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return
 a.lang("ar-ma",{months:"يناير_فبراير_مارس_أبريل_م
اي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_Ù
…ارس_أبريل_م
اي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخÙ
…يس_الجم
عة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_Ø®Ù
…يس_جم
عة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/",LL:"D
  ",LLL:"D   LT",:" D   
LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا 
على الساعة] LT",nextWeek:" [على الساعة] LT"
 ,lastDay:"[أمس على الساعة] LT",lastWeek:" [على 
الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ 
%s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d 
ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d 
أشهر",y:"سنة",yy:"%d 
سنوات"},week:{dow:6,doy:12}})}),function(a){"function"==typeof 
define&?define(["moment"],a):"object"==typeof 
exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return
 a.lang("ar",{months:"يناير/ كانون الثاني_فبراير/ 
شباط_مارس/ آذار_أبريل/ نيسان_مايو/ 
أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتم
بر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين 
الثاني_ديسمبر/ كانون 
الأول".split("_"),monthsShort:"يناير/ كانون 
الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_م
ايو/ أيار_يوÙ
 †ÙŠÙˆ/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ 
أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين 
الثاني_ديسمبر/ كانون 
الأول".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخÙ
…يس_الجم
عة_السبت".split("_"),weekdaysShort:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخÙ
…يس_الجم
عة_السبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/",LL:"D
  ",LLL:"D   LT",:" D   
LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا 
على الساعة] LT",nextWeek:" [على الساعة] LT",lastDay:"[أم
س على الساعة] LT",lastWeek:" [على الساعة] 
LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ 
%s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d 
ساعات",d:"يوم",dd:"%d أيام",M:"Ø
 ´Ù‡Ø±",MM:"%d أشهر",y:"سنة",yy:"%d 
سنوات"},week:{dow:6,doy:12}})}),function(a){"function"==typeof 
define&?define(["moment"],a):"object"==typeof 
exports?module.exports=a(require("../moment")):a(window.moment)}(function(a){return
 
a.lang("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",L:"D.MM.",LL:"D
  ",LLL:"D   LT",:", D   
LT"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] 
LT",nextWeek:" [в] 
 LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 
0:case 3:case 6:return"[В изминалата]  [в] LT";case 1:case 
2:case 4:case 5:return"[В изминалия]  [в] 
LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди 
%s",s:"няколко секунди",m:"минута",mm:"%d 
минути",h:"час",hh:"%d часа",d:"ден",dd:"%d 

[31/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/angular-route/angular-route.min.js.map
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/angular-route/angular-route.min.js.map
 
b/3rdparty/javascript/scheduler/assets/bower_components/angular-route/angular-route.min.js.map
deleted file mode 100644
index e6573ea..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/angular-route/angular-route.min.js.map
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-"version":3,
-"file":"angular-route.min.js",
-"lineCount":13,
-"mappings":"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
 

[09/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-sanitize.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-sanitize.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-sanitize.js
deleted file mode 100644
index f6d8ee6..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-sanitize.js
+++ /dev/null
@@ -1,540 +0,0 @@
-/**
- * @license AngularJS v1.0.7
- * (c) 2010-2012 Google, Inc. http://angularjs.org
- * License: MIT
- */
-(function (window, angular, undefined) {
-'use strict';
-
-/**
- * @ngdoc overview
- * @name ngSanitize
- * @description
- */
-
-/*
- * HTML Parser By Misko Hevery (mi...@hevery.com)
- * based on:  HTML Parser By John Resig (ejohn.org)
- * Original code by Erik Arvidsson, Mozilla Public License
- * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js
- *
- * // Use like so:
- * htmlParser(htmlString, {
- * start: function(tag, attrs, unary) {},
- * end: function(tag) {},
- * chars: function(text) {},
- * comment: function(text) {}
- * });
- *
- */
-
-
-/**
- * @ngdoc service
- * @name ngSanitize.$sanitize
- * @function
- *
- * @description
- *   The input is sanitized by parsing the html into tokens. All safe 
tokens (from a whitelist) are
- *   then serialized back to properly escaped html string. This means that 
no unsafe input can make
- *   it into the returned string, however, since our parser is more strict 
than a typical browser
- *   parser, it's possible that some obscure input, which would be 
recognized as valid HTML by a
- *   browser, won't make it through the sanitizer.
- *
- * @param {string} html Html input.
- * @returns {string} Sanitized html.
- *
- * @example
- 
- 
- 
- function Ctrl($scope) {
-   $scope.snippet =
- '

an html\n' + - 'click here\n' + - 'snippet

'; - } - - - Snippet: - - - Filter - Source - Rendered - - - html filter - - div ng-bind-html="snippet"/div - - - - - - - no filter - div ng-bind="snippet"/div - - - - unsafe html filter - div ng-bind-html-unsafe="snippet"/div - - - - - - - it('should sanitize the html snippet ', function() { - expect(using('#html-filter').element('div').html()). - toBe('an html\nclick here\nsnippet'); - }); - - it('should escape snippet without any filter', function() { - expect(using('#escaped-html').element('div').html()). - toBe("p style=\"color:blue\"an html\n" + -"em onmouseover=\"this.textContent='PWN3D!'\"click here/em\n" + -"snippet/p"); - }); - - it('should inline raw snippet if filtered as unsafe', function() { - expect(using('#html-unsafe-filter').element("div").html()). - toBe("an html\n" + -"click here\n" + -"snippet"); - }); - - it('should update', function() { - input('snippet').enter('new text'); - expect(using('#html-filter').binding('snippet')).toBe('new text'); - expect(using('#escaped-html').element('div').html()).toBe("new btext/b"); - expect(using('#html-unsafe-filter').binding("snippet")).toBe('new text'); - }); - - - */ -var $sanitize = function (html) { -var buf = []; -htmlParser(html, htmlSanitizeWriter(buf)); -return buf.join(''); -}; - - -// Regular Expressions for parsing tags and attributes -var START_TAG_REGEXP = /^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/, -END_TAG_REGEXP = /^<\s*\/\s*([\w:-]+)[^>]*>/, -ATTR_REGEXP = /([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g, -BEGIN_TAG_REGEXP = /^/g, -CDATA_REGEXP = //g, -URI_REGEXP = /^((ftp|https?):\/\/|mailto:|#)/, -NON_ALPHANUMERIC_REGEXP = /([^\#-~| |!])/g; // Match everything outside of normal chars and " (quote character) - - -// Good source of info about elements and attributes -// http://dev.w3.org/html5/spec/Overview.html#semantics -// http://simon.html5.org/html-elements - -// Safe Void Elements - HTML5 -// http://dev.w3.org/html5/spec/Overview.html#void-elements -var voidElements = makeMap("area,br,col,hr,img,wbr"); - -// Elements that you

[21/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment-with-langs.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment-with-langs.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment-with-langs.js
deleted file mode 100644
index 0a0d0ee..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment-with-langs.js
+++ /dev/null
@@ -1,7768 +0,0 @@
-//! moment.js
-//! version : 2.5.1
-//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
-//! license : MIT
-//! momentjs.com
-
-(function (undefined) {
-
-/
-Constants
-/
-
-var moment,
-VERSION = "2.5.1",
-global = this,
-round = Math.round,
-i,
-
-YEAR = 0,
-MONTH = 1,
-DATE = 2,
-HOUR = 3,
-MINUTE = 4,
-SECOND = 5,
-MILLISECOND = 6,
-
-// internal storage for language config files
-languages = {},
-
-// moment internal properties
-momentProperties = {
-_isAMomentObject: null,
-_i : null,
-_f : null,
-_l : null,
-_strict : null,
-_isUTC : null,
-_offset : null,  // optional. Combine with _isUTC
-_pf : null,
-_lang : null  // optional
-},
-
-// check for nodeJS
-hasModule = (typeof module !== 'undefined' && module.exports && typeof 
require !== 'undefined'),
-
-// ASP.NET json date format regex
-aspNetJsonRegex = /^\/?Date\((\-?\d+)/i,
-aspNetTimeSpanJsonRegex = 
/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,
-
-// from 
http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
-// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal 
anywhere
-isoDurationRegex = 
/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,
-
-// format tokens
-formattingTokens = 
/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YY|Y||YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,
-localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,
-
-// parsing token regexes
-parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99
-parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999
-parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 
-parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999
-parseTokenDigits = /\d+/, // nonzero number of digits
-parseTokenWord = 
/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,
 // any word (or two) characters or numbers including two/three word month in 
arabic.
-parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 + 
- or Z
-parseTokenT = /T/i, // T (ISO separator)
-parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 
123456789.123
-
-//strict parsing regexes
-parseTokenOneDigit = /\d/, // 0 - 9
-parseTokenTwoDigits = /\d\d/, // 00 - 99
-parseTokenThreeDigits = /\d{3}/, // 000 - 999
-parseTokenFourDigits = /\d{4}/, //  - 
-parseTokenSixDigits = /[+-]?\d{6}/, // -999,999 - 999,999
-parseTokenSignedNumber = /[+-]?\d+/, // -inf - inf
-
-// iso 8601 regex
-// -00-00 -W00 or -W00-0 + T + 00 or 00:00 or 00:00:00 or 
00:00:00.000 + +00:00 or + or +00)
-isoRegex = 
/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| 
)(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
-
-isoFormat = '-MM-DDTHH:mm:ssZ',
-
-isoDates = [
-['YY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/],
-['-MM-DD', /\d{4}-\d{2}-\d{2}/],
-['-[W]WW-E', /\d{4}-W\d{2}-\d/],
-['-[W]WW', /\d{4}-W\d{2}/],
-['-DDD', /\d{4}-\d{3}/]
-],
-
-// iso time formats and regexes
-isoTimes = [
-['HH:mm:ss.', /(T| )\d\d:\d\d:\d\d\.\d{1,3}/],
-['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/],
-['HH:mm', /(T| )\d\d:\d\d/],
-['HH', /(T| )\d\d/]
-],
-
-// timezone chunker "+10:00" > ["10", "00"] or "-1530" > ["-15", "30"]
-parseTimezoneChunker = /([\+\-]|\d\d)/gi,
-
-// getter and setter names
-proxyGettersAndSetters = 
'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'),
-unitMillisecondFactors = {
-'Milliseconds' : 1,
-'Seconds' : 1e3,
-

[32/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap.min.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap.min.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap.min.js
deleted file mode 100644
index 53fd24e..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * angular-ui-bootstrap
- * http://angular-ui.github.io/bootstrap/
-
- * Version: 0.11.0 - 2014-05-01
- * License: MIT
- */
-angular.module("ui.bootstrap",["ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(a,b,c){function
 d(a){for(var b in a)if(void 0!==f.style[b])return a[b]}var 
e=function(d,f,g){g=g||{};var 
h=a.defer(),i=e[g.animation?"animationEndEventName":"transitionEndEventName"],j=function(){c.$apply(function(){d.unbind(i,j),h.resolve(d)})};return
 
i&(i,j),b(function(){angular.isString(f)?d.addClass(f):angular.isFunction(f)?f(d):angular.isObject(f)&(f),i||h.r
 esolve(d)}),h.promise.cancel=function(){i&(i,j),h.reject("Transition 
cancelled")},h.promise},f=document.createElement("trans"),g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},h={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return
 
e.transitionEndEventName=d(g),e.animationEndEventName=d(h),e}]),angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(a){return{link:function(b,c,d){function
 e(b){function d(){j===e&&(j=void 0)}var e=a(c,b);return 
j&(),j=e,e.then(d,d),e}function 
f(){k?(k=!1,g()):(c.removeClass("collapse").addClass("collapsing"),e({height:c[0].scrollHeight+"px"}).then(g))}function
 g(){c.removeClass("collapsing"),c.addClass("collapse 
in"),c.css({height:"auto"})}function 
h(){if(k)k=!1,i(),c.css({height:0});else{c.css({height:c[0].scrollHeight+"px
 "});{c[0].offsetWidth}c.removeClass("collapse 
in").addClass("collapsing"),e({height:0}).then(i)}}function 
i(){c.removeClass("collapsing"),c.addClass("collapse")}var 
j,k=!0;b.$watch(d.collapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var
 
e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var
 
b=this;this.groups.push(a),a.$on("$destroy",function(){b.removeGroup(a)})},this.removeGroup=function(a){var
 
b=this.groups.indexOf(a);-1!==b&(b,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",fu
 
nction(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.$watch("isOpen",function(b){b&(a)}),a.toggleOpen=function(){a.isDisabled||(a.isOpen=!a.isOpen)).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(a,b,c,d,e){d.setHeading(e(a,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(a,b,c,d){a.$watch(function(){return
 
d[c.accordionTransclude]},function(a){a&&(b.html(""),b.append(a))})}}}),angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(a,b){a.closeable="close"in
 
b}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",template
 
Url:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return
 

[10/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-mocks.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-mocks.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-mocks.js
deleted file mode 100644
index 85e709b..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-mocks.js
+++ /dev/null
@@ -1,1798 +0,0 @@
-/**
- * @license AngularJS v1.0.7
- * (c) 2010-2012 Google, Inc. http://angularjs.org
- * License: MIT
- *
- * TODO(vojta): wrap whole file into closure during build
- */
-
-/**
- * @ngdoc overview
- * @name angular.mock
- * @description
- *
- * Namespace from 'angular-mocks.js' which contains testing related code.
- */
-angular.mock = {};
-
-/**
- * ! This is a private undocumented service !
- *
- * @name ngMock.$browser
- *
- * @description
- * This service is a mock implementation of {@link ng.$browser}. It provides 
fake
- * implementation for commonly used browser apis that are hard to test, e.g. 
setTimeout, xhr,
- * cookies, etc...
- *
- * The api of this service is the same as that of the real {@link ng.$browser 
$browser}, except
- * that there are several helper methods available which can be used in tests.
- */
-angular.mock.$BrowserProvider = function () {
-this.$get = function () {
-return new angular.mock.$Browser();
-};
-};
-
-angular.mock.$Browser = function () {
-var self = this;
-
-this.isMock = true;
-self.$$url = "http://server/;;
-self.$$lastUrl = self.$$url; // used by url polling fn
-self.pollFns = [];
-
-// TODO(vojta): remove this temporary api
-self.$$completeOutstandingRequest = angular.noop;
-self.$$incOutstandingRequestCount = angular.noop;
-
-
-// register url polling fn
-
-self.onUrlChange = function (listener) {
-self.pollFns.push(
-function () {
-if (self.$$lastUrl != self.$$url) {
-self.$$lastUrl = self.$$url;
-listener(self.$$url);
-}
-}
-);
-
-return listener;
-};
-
-self.cookieHash = {};
-self.lastCookieHash = {};
-self.deferredFns = [];
-self.deferredNextId = 0;
-
-self.defer = function (fn, delay) {
-delay = delay || 0;
-self.deferredFns.push({time: (self.defer.now + delay), fn: fn, id: 
self.deferredNextId});
-self.deferredFns.sort(function (a, b) {
-return a.time - b.time;
-});
-return self.deferredNextId++;
-};
-
-
-self.defer.now = 0;
-
-
-self.defer.cancel = function (deferId) {
-var fnIndex;
-
-angular.forEach(self.deferredFns, function (fn, index) {
-if (fn.id === deferId) fnIndex = index;
-});
-
-if (fnIndex !== undefined) {
-self.deferredFns.splice(fnIndex, 1);
-return true;
-}
-
-return false;
-};
-
-
-/**
- * @name ngMock.$browser#defer.flush
- * @methodOf ngMock.$browser
- *
- * @description
- * Flushes all pending requests and executes the defer callbacks.
- *
- * @param {number=} number of milliseconds to flush. See {@link #defer.now}
- */
-self.defer.flush = function (delay) {
-if (angular.isDefined(delay)) {
-self.defer.now += delay;
-} else {
-if (self.deferredFns.length) {
-self.defer.now = self.deferredFns[self.deferredFns.length - 
1].time;
-} else {
-throw Error('No deferred tasks to be flushed');
-}
-}
-
-while (self.deferredFns.length && self.deferredFns[0].time <= 
self.defer.now) {
-self.deferredFns.shift().fn();
-}
-};
-/**
- * @name ngMock.$browser#defer.now
- * @propertyOf ngMock.$browser
- *
- * @description
- * Current milliseconds mock time.
- */
-
-self.$$baseHref = '';
-self.baseHref = function () {
-return this.$$baseHref;
-};
-};
-angular.mock.$Browser.prototype = {
-
-/**
- * @name ngMock.$browser#poll
- * @methodOf ngMock.$browser
- *
- * @description
- * run all fns in pollFns
- */
-poll: function poll() {
-angular.forEach(this.pollFns, function (pollFn) {
-pollFn();
-});
-},
-
-addPollFn: function (pollFn) {
-this.pollFns.push(pollFn);
-return pollFn;
-},
-
-url: function (url, replace) {
-if (url) {
-this.$$url = url;
-return this;
-}
-
-return this.$$url;
-},
-
-cookies: function (name, value) {
-if (name) {
-if 

[08/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-scenario.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-scenario.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-scenario.js
deleted file mode 100644
index 7fa75e9..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-scenario.js
+++ /dev/null
@@ -1,26487 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.7.2
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Wed Mar 21 12:46:34 2012 -0700
- */
-(function (window, undefined) {
-'use strict';
-
-// Use the correct document accordingly with window argument (sandbox)
-var document = window.document,
-navigator = window.navigator,
-location = window.location;
-var jQuery = (function () {
-
-// Define a local copy of jQuery
-var jQuery = function (selector, context) {
-// The jQuery object is actually just the init constructor 
'enhanced'
-return new jQuery.fn.init(selector, context, rootjQuery);
-},
-
-// Map over jQuery in case of overwrite
-_jQuery = window.jQuery,
-
-// Map over the $ in case of overwrite
-_$ = window.$,
-
-// A central reference to the root jQuery(document)
-rootjQuery,
-
-// A simple way to check for HTML strings or ID strings
-// Prioritize #id over  to avoid XSS via location.hash (#9521)
-quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
-
-// Check if a string has a non-whitespace character in it
-rnotwhite = /\S/,
-
-// Used for trimming whitespace
-trimLeft = /^\s+/,
-trimRight = /\s+$/,
-
-// Match a standalone tag
-rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
-
-// JSON RegExp
-rvalidchars = /^[\],:{}\s]*$/,
-rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
-rvalidtokens = 
/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
-rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
-
-// Useragent RegExp
-rwebkit = /(webkit)[ \/]([\w.]+)/,
-ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
-rmsie = /(msie) ([\w.]+)/,
-rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
-
-// Matches dashed string for camelizing
-rdashAlpha = /-([a-z]|[0-9])/ig,
-rmsPrefix = /^-ms-/,
-
-// Used by jQuery.camelCase as callback to replace()
-fcamelCase = function (all, letter) {
-return ( letter + "" ).toUpperCase();
-},
-
-// Keep a UserAgent string for use with jQuery.browser
-userAgent = navigator.userAgent,
-
-// For matching the engine and version of the browser
-browserMatch,
-
-// The deferred used on DOM ready
-readyList,
-
-// The ready event handler
-DOMContentLoaded,
-
-// Save a reference to some core methods
-toString = Object.prototype.toString,
-hasOwn = Object.prototype.hasOwnProperty,
-push = Array.prototype.push,
-slice = Array.prototype.slice,
-trim = String.prototype.trim,
-indexOf = Array.prototype.indexOf,
-
-// [[Class]] -> type pairs
-class2type = {};
-
-jQuery.fn = jQuery.prototype = {
-constructor: jQuery,
-init: function (selector, context, rootjQuery) {
-var match, elem, ret, doc;
-
-// Handle $(""), $(null), or $(undefined)
-if (!selector) {
-return this;
-}
-
-// Handle $(DOMElement)
-if (selector.nodeType) {
-this.context = this[0] = selector;
-this.length = 1;
-return this;
-}
-
-// The body element only exists once, optimize finding it
-if (selector === "body" && !context && document.body) {
-this.context = document;
-this[0] = document.body;
-this.selector = selector;
-this.length = 1;
-return this;
-}
-
-// Handle HTML strings
-if (typeof selector 

[36/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
Remove the old UI and serve the new UI instead

Reviewed at https://reviews.apache.org/r/63282/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/96c834a2
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/96c834a2
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/96c834a2

Branch: refs/heads/master
Commit: 96c834a2481eeb146a141afc8c0b2b3dda07c435
Parents: f2755e1
Author: David McLaughlin 
Authored: Wed Oct 25 10:04:47 2017 -0700
Committer: David McLaughlin 
Committed: Wed Oct 25 10:04:47 2017 -0700

--
 .../angular-bootstrap/.bower.json   |24 -
 .../angular-bootstrap/bower.json|11 -
 .../angular-bootstrap/ui-bootstrap-tpls.js  |  4116 ---
 .../angular-bootstrap/ui-bootstrap-tpls.min.js  |10 -
 .../angular-bootstrap/ui-bootstrap.js   |  3799 ---
 .../angular-bootstrap/ui-bootstrap.min.js   | 9 -
 .../bower_components/angular-route/.bower.json  |19 -
 .../bower_components/angular-route/README.md|54 -
 .../angular-route/angular-route.js  |   920 -
 .../angular-route/angular-route.min.js  |14 -
 .../angular-route/angular-route.min.js.map  | 8 -
 .../bower_components/angular-route/bower.json   | 8 -
 .../assets/bower_components/angular/.bower.json |16 -
 .../assets/bower_components/angular/README.md   |48 -
 .../bower_components/angular/angular-csp.css|13 -
 .../assets/bower_components/angular/angular.js  | 20560 -
 .../bower_components/angular/angular.min.js |   202 -
 .../angular/angular.min.js.gzip |   Bin 36880 -> 0 bytes
 .../bower_components/angular/angular.min.js.map | 8 -
 .../assets/bower_components/angular/bower.json  | 7 -
 .../bower_components/momentjs/.bower.json   |31 -
 .../assets/bower_components/momentjs/LICENSE|22 -
 .../assets/bower_components/momentjs/bower.json |20 -
 .../bower_components/momentjs/lang/ar-ma.js |56 -
 .../assets/bower_components/momentjs/lang/ar.js |56 -
 .../assets/bower_components/momentjs/lang/bg.js |86 -
 .../assets/bower_components/momentjs/lang/br.js |   107 -
 .../assets/bower_components/momentjs/lang/bs.js |   139 -
 .../assets/bower_components/momentjs/lang/ca.js |66 -
 .../assets/bower_components/momentjs/lang/cs.js |   155 -
 .../assets/bower_components/momentjs/lang/cv.js |59 -
 .../assets/bower_components/momentjs/lang/cy.js |77 -
 .../assets/bower_components/momentjs/lang/da.js |56 -
 .../assets/bower_components/momentjs/lang/de.js |71 -
 .../assets/bower_components/momentjs/lang/el.js |79 -
 .../bower_components/momentjs/lang/en-au.js |62 -
 .../bower_components/momentjs/lang/en-ca.js |59 -
 .../bower_components/momentjs/lang/en-gb.js |63 -
 .../assets/bower_components/momentjs/lang/eo.js |65 -
 .../assets/bower_components/momentjs/lang/es.js |66 -
 .../assets/bower_components/momentjs/lang/et.js |76 -
 .../assets/bower_components/momentjs/lang/eu.js |60 -
 .../assets/bower_components/momentjs/lang/fa.js |97 -
 .../assets/bower_components/momentjs/lang/fi.js |   103 -
 .../assets/bower_components/momentjs/lang/fo.js |56 -
 .../bower_components/momentjs/lang/fr-ca.js |54 -
 .../assets/bower_components/momentjs/lang/fr.js |58 -
 .../assets/bower_components/momentjs/lang/gl.js |71 -
 .../assets/bower_components/momentjs/lang/he.js |77 -
 .../assets/bower_components/momentjs/lang/hi.js |   105 -
 .../assets/bower_components/momentjs/lang/hr.js |   140 -
 .../assets/bower_components/momentjs/lang/hu.js |98 -
 .../bower_components/momentjs/lang/hy-am.js |   113 -
 .../assets/bower_components/momentjs/lang/id.js |67 -
 .../assets/bower_components/momentjs/lang/is.js |   124 -
 .../assets/bower_components/momentjs/lang/it.js |59 -
 .../assets/bower_components/momentjs/lang/ja.js |58 -
 .../assets/bower_components/momentjs/lang/ka.js |   108 -
 .../assets/bower_components/momentjs/lang/ko.js |63 -
 .../assets/bower_components/momentjs/lang/lb.js |   160 -
 .../assets/bower_components/momentjs/lang/lt.js |   118 -
 .../assets/bower_components/momentjs/lang/lv.js |77 -
 .../assets/bower_components/momentjs/lang/mk.js |86 -
 .../assets/bower_components/momentjs/lang/ml.js |64 -
 .../assets/bower_components/momentjs/lang/mr.js |   104 -
 .../bower_components/momentjs/lang/ms-my.js |66 -
 .../assets/bower_components/momentjs/lang/nb.js |57 -
 .../assets/bower_components/momentjs/lang/ne.js |   105 -
 .../assets/bower_components/momentjs/lang/nl.js |67 -
 .../assets/bower_components/momentjs/lang/nn.js |56 -
 .../assets/bower_components/momentjs/lang/pl.js |98 -
 .../bower_components/momentjs/lang/pt-br.js |56 -
 

[01/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
Repository: aurora
Updated Branches:
  refs/heads/master f2755e1cd -> 96c834a24


http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/ui/src/main/js/components/Breadcrumb.js
--
diff --git a/ui/src/main/js/components/Breadcrumb.js 
b/ui/src/main/js/components/Breadcrumb.js
index 4cd7506..76c6270 100644
--- a/ui/src/main/js/components/Breadcrumb.js
+++ b/ui/src/main/js/components/Breadcrumb.js
@@ -6,28 +6,28 @@ function url(...args) {
 }
 
 export default function Breadcrumb({ cluster, role, env, name, instance, 
update }) {
-  const crumbs = [{cluster}];
+  const crumbs = [{cluster}];
   if (role) {
 crumbs.push(/);
-crumbs.push({role});
+crumbs.push({role});
   }
   if (env) {
 crumbs.push(/);
-crumbs.push({env});
+crumbs.push({env});
   }
   if (name) {
 crumbs.push(/);
-crumbs.push({name});
+crumbs.push({name});
   }
   if (instance) {
 crumbs.push(/);
-crumbs.push(
+crumbs.push(
   {instance}
 );
   }
   if (update) {
 crumbs.push(/);
-crumbs.push(
+crumbs.push(
   {update}
 );
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/ui/src/main/js/components/InstanceViz.js
--
diff --git a/ui/src/main/js/components/InstanceViz.js 
b/ui/src/main/js/components/InstanceViz.js
index c8402e1..467ad5b 100644
--- a/ui/src/main/js/components/InstanceViz.js
+++ b/ui/src/main/js/components/InstanceViz.js
@@ -11,7 +11,7 @@ export default function InstanceViz({ instances, jobKey }) {
 {instances.map((i) => {
   return (
+to={`/scheduler/${role}/${environment}/${name}/${i.instanceId}`}>
 
   );
 })}

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/ui/src/main/js/components/JobListItem.js
--
diff --git a/ui/src/main/js/components/JobListItem.js 
b/ui/src/main/js/components/JobListItem.js
index eccd227..c9228f0 100644
--- a/ui/src/main/js/components/JobListItem.js
+++ b/ui/src/main/js/components/JobListItem.js
@@ -20,7 +20,7 @@ export default function JobListItem(props) {
   const {job: {job: { cronSchedule, key: {role, name, environment}, taskConfig 
}, stats}} = props;
 
   const envLink = (props.env) ? null : (
-{environment}
+{environment}
   );
 
   return (
@@ -30,7 +30,7 @@ export default function JobListItem(props) {
 {envLink}
 
   
-
+
   {name}
   {taskConfig.production ?  : ''}
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/ui/src/main/js/components/Navigation.js
--
diff --git a/ui/src/main/js/components/Navigation.js 
b/ui/src/main/js/components/Navigation.js
index f9f3694..50881a9 100644
--- a/ui/src/main/js/components/Navigation.js
+++ b/ui/src/main/js/components/Navigation.js
@@ -6,12 +6,12 @@ export default function Navigation({ fluid }) {
 
   
 
-  
+  
 
   
 
 
-  updates
+  updates
 
   
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/ui/src/main/js/components/RoleList.js
--
diff --git a/ui/src/main/js/components/RoleList.js 
b/ui/src/main/js/components/RoleList.js
index 177640a..2bdae8e 100644
--- a/ui/src/main/js/components/RoleList.js
+++ b/ui/src/main/js/components/RoleList.js
@@ -26,7 +26,7 @@ export default class RoleList extends React.Component {
 
   _renderRow(r) {
 return (
-  {r.role}
+  {r.role}
   {r.jobCount}
   {r.cronJobCount}
 );

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/ui/src/main/js/components/TaskList.js
--
diff --git a/ui/src/main/js/components/TaskList.js 
b/ui/src/main/js/components/TaskList.js
index 4a4b8d3..e1685ce 100644
--- a/ui/src/main/js/components/TaskList.js
+++ b/ui/src/main/js/components/TaskList.js
@@ -30,7 +30,7 @@ export class TaskListItem extends React.Component {
   
 
   
+
to={`/scheduler/${role}/${environment}/${name}/${task.assignedTask.instanceId}`}>
 {task.assignedTask.instanceId}
   
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/ui/src/main/js/components/TaskNeighbors.js
--
diff --git a/ui/src/main/js/components/TaskNeighbors.js 
b/ui/src/main/js/components/TaskNeighbors.js
index 72d49bb..4722c89 100644
--- a/ui/src/main/js/components/TaskNeighbors.js
+++ b/ui/src/main/js/components/TaskNeighbors.js
@@ -9,7 +9,7 @@ export function NeighborTaskItem({ assignedTask }) {
   return (
 
   
-
+
   {taskKey}
 
 

[35/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.js
deleted file mode 100644
index bcca1cd..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.js
+++ /dev/null
@@ -1,4116 +0,0 @@
-/*
- * angular-ui-bootstrap
- * http://angular-ui.github.io/bootstrap/
-
- * Version: 0.11.0 - 2014-05-01
- * License: MIT
- */
-angular.module("ui.bootstrap", ["ui.bootstrap.tpls", 
"ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);
-angular.module("ui.bootstrap.tpls", 
["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);
-angular.module('ui.bootstrap.transition', [])
-
-/**
- * $transition service provides a consistent interface to trigger CSS 3 
transitions and to be informed when they complete.
- * @param  {DOMElement} element  The DOMElement that will be animated.
- * @param  {string|object|function} trigger  The thing that will cause the 
transition to start:
- *   - As a string, it represents the css class to be added to the element.
- *   - As an object, it represents a hash of style attributes to be applied to 
the element.
- *   - As a function, it represents a function to be called that will cause 
the transition to occur.
- * @return {Promise}  A promise that is resolved when the transition finishes.
- */
-.factory('$transition', ['$q', '$timeout', '$rootScope', function($q, 
$timeout, $rootScope) {
-
-  var $transition = function(element, trigger, options) {
-options = options || {};
-var deferred = $q.defer();
-var endEventName = $transition[options.animation ? 'animationEndEventName' 
: 'transitionEndEventName'];
-
-var transitionEndHandler = function(event) {
-  $rootScope.$apply(function() {
-element.unbind(endEventName, transitionEndHandler);
-deferred.resolve(element);
-  });
-};
-
-if (endEventName) {
-  element.bind(endEventName, transitionEndHandler);
-}
-
-// Wrap in a timeout to allow the browser time to update the DOM before 
the transition is to occur
-$timeout(function() {
-  if ( angular.isString(trigger) ) {
-element.addClass(trigger);
-  } else if ( angular.isFunction(trigger) ) {
-trigger(element);
-  } else if ( angular.isObject(trigger) ) {
-element.css(trigger);
-  }
-  //If browser does not support transitions, instantly resolve
-  if ( !endEventName ) {
-deferred.resolve(element);
-  }
-});
-
-// Add our custom cancel function to the promise that is returned
-// We can call this if we are about to run a new transition, which we know 
will prevent this transition from ending,
-// i.e. it will therefore never raise a transitionEnd event for that 
transition
-deferred.promise.cancel = function() {
-  if ( endEventName ) {
-element.unbind(endEventName, transitionEndHandler);
-  }
-  deferred.reject('Transition cancelled');
-};
-
-return deferred.promise;
-  };
-
-  // Work out the name of the transitionEnd event
-  var transElement = document.createElement('trans');
-  var transitionEndEventNames = {
-'WebkitTransition': 'webkitTransitionEnd',
-'MozTransition': 'transitionend',
-'OTransition': 'oTransitionEnd',
-'transition': 'transitionend'
-  };
-  var animationEndEventNames = {
-'WebkitTransition': 'webkitAnimationEnd',
-   

[23/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/langs.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/langs.js 
b/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/langs.js
deleted file mode 100644
index 8296814..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/langs.js
+++ /dev/null
@@ -1,5841 +0,0 @@
-// moment.js language configuration
-// language : Moroccan Arabic (ar-ma)
-// author : ElFadili Yassine : https://github.com/ElFadiliY
-// author : Abdel Said : https://github.com/abdelsaid
-
-(function (factory) {
-if (typeof define === 'function' && define.amd) {
-define(['moment'], factory); // AMD
-} else if (typeof exports === 'object') {
-module.exports = factory(require('../moment')); // Node
-} else {
-factory(window.moment); // Browser global
-}
-}(function (moment) {
-return moment.lang('ar-ma', {
-months : "يناير_فبراير_مارس_أبريل_م
اي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
-monthsShort : "يناير_فبراير_مارس_أبريل_م
اي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
-weekdays : 
"الأحد_الإتنين_الثلاثاء_الأربعاء_الخم
يس_الجمعة_السبت".split("_"),
-weekdaysShort : "احد_اتنين_ثلاثاء_اربعاء_خم
يس_جمعة_سبت".split("_"),
-weekdaysMin : "ح_ن_ث_ر_خ_ج_س".split("_"),
-longDateFormat : {
-LT : "HH:mm",
-L : "DD/MM/",
-LL : "D  ",
-LLL : "D   LT",
- : " D   LT"
-},
-calendar : {
-sameDay: "[اليوم على الساعة] LT",
-nextDay: '[غدا على الساعة] LT',
-nextWeek: ' [على الساعة] LT',
-lastDay: '[أمس على الساعة] LT',
-lastWeek: ' [على الساعة] LT',
-sameElse: 'L'
-},
-relativeTime : {
-future : "في %s",
-past : "منذ %s",
-s : "ثوان",
-m : "دقيقة",
-mm : "%d دقائق",
-h : "ساعة",
-hh : "%d ساعات",
-d : "يوم",
-dd : "%d أيام",
-M : "شهر",
-MM : "%d أشهر",
-y : "سنة",
-yy : "%d سنوات"
-},
-week : {
-dow : 6, // Saturday is the first day of the week.
-doy : 12  // The week that contains Jan 1st is the first week of 
the year.
-}
-});
-}));
-
-// moment.js language configuration
-// language : Arabic (ar)
-// author : Abdel Said : https://github.com/abdelsaid
-// changes in months, weekdays : Ahmed Elkhatib
-
-(function (factory) {
-if (typeof define === 'function' && define.amd) {
-define(['moment'], factory); // AMD
-} else if (typeof exports === 'object') {
-module.exports = factory(require('../moment')); // Node
-} else {
-factory(window.moment); // Browser global
-}
-}(function (moment) {
-return moment.lang('ar', {
-months : "يناير/ كانون الثاني_فبراير/ شباط_م
ارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ 
حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ 
أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين 
الثاني_ديسمبر/ كانون الأول".split("_"),
-monthsShort : "يناير/ كانون الثاني_فبراير/ 
شباط_مارس/ آذار_أبريل/ نيسان_مايو/ 
أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتم
بر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين 
الثاني_ديسمبر/ كانون الأول".split("_"),
-weekdays : 
"الأحد_الإثنين_الثلاثاء_الأربعاء_الخم
يس_الجمعة_السبت".split("_"),
-weekdaysShort : 
"الأحد_الإثنين_الثلاثاء_الأربعاء_الخم
يس_الجمعة_السبت".split("_"),
-weekdaysMin : "ح_ن_ث_ر_خ_ج_س".split("_"),
-longDateFormat : {
-LT : "HH:mm",
-L : "DD/MM/",
-LL : "D  ",
-LLL : "D   LT",
- : " D   LT"
-},
-calendar : {
-sameDay: "[اليوم على الساعة] LT",
-nextDay: '[غدا على الساعة] LT',
-nextWeek: ' [على الساعة] LT',
-lastDay: '[أمس على الساعة] LT',
-lastWeek: ' 

[19/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment.min.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment.min.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment.min.js
deleted file mode 100644
index 29e1cef..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//! moment.js
-//! version : 2.5.1
-//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
-//! license : MIT
-//! momentjs.com
-(function(a){function 
b(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function
 c(a,b){return function(c){return k(a.call(this,c),b)}}function d(a,b){return 
function(c){return this.lang().ordinal(a.call(this,c),b)}}function 
e(){}function f(a){w(a),h(this,a)}function g(a){var 
b=q(a),c=b.year||0,d=b.month||0,e=b.week||0,f=b.day||0,g=b.hour||0,h=b.minute||0,i=b.second||0,j=b.millisecond||0;this._milliseconds=+j+1e3*i+6e4*h+36e5*g,this._days=+f+7*e,this._months=+d+12*c,this._data={},this._bubble()}function
 h(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return 
b.hasOwnProperty("toString")&&(a.toString=b.toString),b.hasOwnProperty("valueOf")&&(a.valueOf=b.valueOf),a}function
 i(a){var b,c={};for(b in 
a)a.hasOwnProperty(b)&(b)&&(c[b]=a[b]);return c}function 
j(a){return 0>a?Math.ceil(a):Math.floor(a)}function k(a,b,c){for(var 
d=""+Math.abs(a),e=a>=0;d.lengthd;d++)(c&[d]!==b[d]||!c&(a[d])!==s(b[d]))&++;return
 g+f}function p(a){if(a){var 
b=a.toLowerCase().replace(/(.)s$/,"$1");a=Tb[a]||Ub[b]||b}return a}function 
q(a){var b,c,d={};for(c in 
a)a.hasOwnProperty(c)&&(b=p(c),b&&(d[b]=a[c]));return d}function r(b){var 
c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}db[b]=function(e,f){var
 g,h,i=db.fn._lang[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var 
b=db().u
 tc().set(d,a);return i.call(db.fn._lang,b,e||"")},null!=f)return 
h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function s(a){var b=+a,c=0;return 
0!==b&(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function 
t(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function u(a){return 
v(a)?366:365}function v(a){return a%4===0&%100!==0||a%400===0}function 
w(a){var 
b;a._a&&-2===a._pf.overflow&&(b=a._a[jb]<0||a._a[jb]>11?jb:a._a[kb]<1||a._a[kb]>t(a._a[ib],a._a[jb])?kb:a._a[lb]<0||a._a[lb]>23?lb:a._a[mb]<0||a._a[mb]>59?mb:a._a[nb]<0||a._a[nb]>59?nb:a._a[ob]<0||a._a[ob]>999?ob:-1,a._pf._overflowDayOfYear&&(ib>b||b>kb)&&(b=kb),a._pf.overflow=b)}function
 x(a){return 
null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&_pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function
 y(a){return a?a.toLowerCase().replace("_","-"
 ):a}function z(a,b){return 
b._isUTC?db(a).zone(b._offset||0):db(a).local()}function A(a,b){return 
b.abbr=a,pb[a]||(pb[a]=new e),pb[a].set(b),pb[a]}function B(a){delete 
pb[a]}function C(a){var 
b,c,d,e,f=0,g=function(a){if(!pb[a]&)try{require("./lang/"+a)}catch(b){}return
 pb[a]};if(!a)return db.fn._lang;if(!m(a)){if(c=g(a))return 
c;a=[a]}for(;f0;){if(c=g(e.slice(0,b).join("-")))return
 c;if(d&>=b&(e,d,!0)>=b-1)break;b--}f++}return db.fn._lang}function 
D(a){return 
a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function 
E(a){var 
b,c,d=a.match(vb);for(b=0,c=d.length;c>b;b++)d[b]=Yb[d[b]]?Yb[d[b]]:D(d[b]);return
 function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof 
Function?d[b].call(e,a):d[b];return f}}function F(a,b){return 
a.isValid()?(b=G(b,a.lang()),Vb[b]||(Vb[b]=E(b)),Vb[b](a)):a.lang().invalidDate()}function
 G(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;f
 
or(wb.lastIndex=0;d>=0&(a);)a=a.replace(wb,c),wb.lastIndex=0,d-=1;return
 a}function H(a,b){var c,d=b._strict;switch(a){case"":return 
Ib;case"":case"":case"":return 
d?Jb:zb;case"Y":case"G":case"g":return 
Lb;case"YY":case"Y":case"G":case"g":return 
d?Kb:Ab;case"S":if(d)return Gb;case"SS":if(d)return 

[11/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-bootstrap.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-bootstrap.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-bootstrap.js
deleted file mode 100644
index ac18347..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-bootstrap.js
+++ /dev/null
@@ -1,180 +0,0 @@
-/**
- * @license AngularJS v1.0.7
- * (c) 2010-2012 Google, Inc. http://angularjs.org
- * License: MIT
- */
-(function (window, angular, undefined) {
-'use strict';
-
-var directive = {};
-
-directive.dropdownToggle =
-['$document', '$location', '$window',
-function ($document, $location, $window) {
-var openElement = null, close;
-return {
-restrict: 'C',
-link: function (scope, element, attrs) {
-scope.$watch(function dropdownTogglePathWatch() {
-return $location.path();
-}, function dropdownTogglePathWatchAction() {
-close && close();
-});
-
-element.parent().bind('click', function (event) {
-close && close();
-});
-
-element.bind('click', function (event) {
-event.preventDefault();
-event.stopPropagation();
-
-var iWasOpen = false;
-
-if (openElement) {
-iWasOpen = openElement === element;
-close();
-}
-
-if (!iWasOpen) {
-element.parent().addClass('open');
-openElement = element;
-
-close = function (event) {
-event && event.preventDefault();
-event && event.stopPropagation();
-$document.unbind('click', close);
-element.parent().removeClass('open');
-close = null;
-openElement = null;
-}
-
-$document.bind('click', close);
-}
-});
-}
-};
-}];
-
-
-directive.tabbable = function () {
-return {
-restrict: 'C',
-compile: function (element) {
-var navTabs = angular.element(''),
-tabContent = angular.element('');
-
-tabContent.append(element.contents());
-element.append(navTabs).append(tabContent);
-},
-controller: ['$scope', '$element', function ($scope, $element) {
-var navTabs = $element.contents().eq(0),
-ngModel = $element.controller('ngModel') || {},
-tabs = [],
-selectedTab;
-
-ngModel.$render = function () {
-var $viewValue = this.$viewValue;
-
-if (selectedTab ? (selectedTab.value != $viewValue) : 
$viewValue) {
-if (selectedTab) {
-selectedTab.paneElement.removeClass('active');
-selectedTab.tabElement.removeClass('active');
-selectedTab = null;
-}
-if ($viewValue) {
-for (var i = 0, ii = tabs.length; i < ii; i++) {
-if ($viewValue == tabs[i].value) {
-selectedTab = tabs[i];
-break;
-}
-}
-if (selectedTab) {
-selectedTab.paneElement.addClass('active');
-selectedTab.tabElement.addClass('active');
-}
-}
-
-}
-};
-
-this.addPane = function (element, attr) {
-var li = angular.element(''),
-a = li.find('a'),
-tab = {
-paneElement: element,
-paneAttrs: attr,
- 

aurora git commit: Add release notes for new UI

2017-10-25 Thread dmclaughlin
Repository: aurora
Updated Branches:
  refs/heads/master 2aa968624 -> 2507e6f59


Add release notes for new UI

Reviewed at https://reviews.apache.org/r/63306/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/2507e6f5
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/2507e6f5
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/2507e6f5

Branch: refs/heads/master
Commit: 2507e6f59958af74e1e9ead720ece92b4ab2f12c
Parents: 2aa9686
Author: David McLaughlin 
Authored: Wed Oct 25 14:51:46 2017 -0700
Committer: David McLaughlin 
Committed: Wed Oct 25 14:51:46 2017 -0700

--
 RELEASE-NOTES.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/aurora/blob/2507e6f5/RELEASE-NOTES.md
--
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index bc11e3b..51c60c7 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -20,7 +20,9 @@
 - Added scheduler command line argument `-hold_offers_forever`, suitable for 
use in clusters where
   Aurora is the only framework.  This setting disables other options such as 
`-min_offer_hold_time`,
   and allows the scheduler to more efficiently cache scheduling attempts.
-- The schduler no longer uses an internal H2 database for storage.
+- The scheduler no longer uses an internal H2 database for storage.
+- There is a new Scheduler UI which, in addition to the facelift, provides the 
ability to inject your
+  own custom UI components.
 
 ### Deprecations and removals:
 



[34/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js
deleted file mode 100644
index fa6a861..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * angular-ui-bootstrap
- * http://angular-ui.github.io/bootstrap/
-
- * Version: 0.11.0 - 2014-05-01
- * License: MIT
- */
-angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.htm
 
l","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(a,b,c){function
 d(a){for(var b in a)if(void 0!==f.style[b])return a[b]}var 
e=function(d,f,g){g=g||{};var 
h=a.defer(),i=e[g.animation?"animationEndEventName":"transitionEndEventName"],j=function(){c.$apply(function(){d.unbind(i,j),h.resolve(d)})};return
 
i&(i,j),b(function(){angular.isString(f)?d.addClass(f):angular.isFunction(f)?f(d):angular.isObject(f)&(f),i||h.resolve(d)}),h.promise.cancel=functio
 n(){i&(i,j),h.reject("Transition 
cancelled")},h.promise},f=document.createElement("trans"),g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},h={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return
 
e.transitionEndEventName=d(g),e.animationEndEventName=d(h),e}]),angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(a){return{link:function(b,c,d){function
 e(b){function d(){j===e&&(j=void 0)}var e=a(c,b);return 
j&(),j=e,e.then(d,d),e}function 
f(){k?(k=!1,g()):(c.removeClass("collapse").addClass("collapsing"),e({height:c[0].scrollHeight+"px"}).then(g))}function
 g(){c.removeClass("collapsing"),c.addClass("collapse 
in"),c.css({height:"auto"})}function 
h(){if(k)k=!1,i(),c.css({height:0});else{c.css({height:c[0].scrollHeight+"px"});{c[0].offsetWidth}c.removeClass(
 "collapse in").addClass("collapsing"),e({height:0}).then(i)}}function 
i(){c.removeClass("collapsing"),c.addClass("collapse")}var 
j,k=!0;b.$watch(d.collapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var
 
e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var
 
b=this;this.groups.push(a),a.$on("$destroy",function(){b.removeGroup(a)})},this.removeGroup=function(a){var
 
b=this.groups.indexOf(a);-1!==b&(b,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion"
 

[27/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js.map
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js.map
 
b/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js.map
deleted file mode 100644
index 84daa2a..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js.map
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-"version":3,
-"file":"angular.min.js",
-"lineCount":201,
-"mappings":"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
 

[33/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap.js
deleted file mode 100644
index c93f0de..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/angular-bootstrap/ui-bootstrap.js
+++ /dev/null
@@ -1,3799 +0,0 @@
-/*
- * angular-ui-bootstrap
- * http://angular-ui.github.io/bootstrap/
-
- * Version: 0.11.0 - 2014-05-01
- * License: MIT
- */
-angular.module("ui.bootstrap", 
["ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);
-angular.module('ui.bootstrap.transition', [])
-
-/**
- * $transition service provides a consistent interface to trigger CSS 3 
transitions and to be informed when they complete.
- * @param  {DOMElement} element  The DOMElement that will be animated.
- * @param  {string|object|function} trigger  The thing that will cause the 
transition to start:
- *   - As a string, it represents the css class to be added to the element.
- *   - As an object, it represents a hash of style attributes to be applied to 
the element.
- *   - As a function, it represents a function to be called that will cause 
the transition to occur.
- * @return {Promise}  A promise that is resolved when the transition finishes.
- */
-.factory('$transition', ['$q', '$timeout', '$rootScope', function($q, 
$timeout, $rootScope) {
-
-  var $transition = function(element, trigger, options) {
-options = options || {};
-var deferred = $q.defer();
-var endEventName = $transition[options.animation ? 'animationEndEventName' 
: 'transitionEndEventName'];
-
-var transitionEndHandler = function(event) {
-  $rootScope.$apply(function() {
-element.unbind(endEventName, transitionEndHandler);
-deferred.resolve(element);
-  });
-};
-
-if (endEventName) {
-  element.bind(endEventName, transitionEndHandler);
-}
-
-// Wrap in a timeout to allow the browser time to update the DOM before 
the transition is to occur
-$timeout(function() {
-  if ( angular.isString(trigger) ) {
-element.addClass(trigger);
-  } else if ( angular.isFunction(trigger) ) {
-trigger(element);
-  } else if ( angular.isObject(trigger) ) {
-element.css(trigger);
-  }
-  //If browser does not support transitions, instantly resolve
-  if ( !endEventName ) {
-deferred.resolve(element);
-  }
-});
-
-// Add our custom cancel function to the promise that is returned
-// We can call this if we are about to run a new transition, which we know 
will prevent this transition from ending,
-// i.e. it will therefore never raise a transitionEnd event for that 
transition
-deferred.promise.cancel = function() {
-  if ( endEventName ) {
-element.unbind(endEventName, transitionEndHandler);
-  }
-  deferred.reject('Transition cancelled');
-};
-
-return deferred.promise;
-  };
-
-  // Work out the name of the transitionEnd event
-  var transElement = document.createElement('trans');
-  var transitionEndEventNames = {
-'WebkitTransition': 'webkitTransitionEnd',
-'MozTransition': 'transitionend',
-'OTransition': 'oTransitionEnd',
-'transition': 'transitionend'
-  };
-  var animationEndEventNames = {
-'WebkitTransition': 'webkitAnimationEnd',
-'MozTransition': 'animationend',
-'OTransition': 'oAnimationEnd',
-'transition': 'animationend'
-  };
-  function findEndEventName(endEventNames) {
-for (var name in endEventNames){
-  if (transElement.style[name] !== undefined) {
-return endEventNames[name];
-  }
-}
-  }
-  $transition.transitionEndEventName = 
findEndEventName(transitionEndEventNames);
-  $transition.animationEndEventName = findEndEventName(animationEndEventNames);
-  return $transition;
-}]);
-
-angular.module('ui.bootstrap.collapse', ['ui.bootstrap.transition'])
-
-  .directive('collapse', ['$transition', function ($transition) {
-
-return {
-  link: function (scope, element, attrs) {
-
-var initialAnimSkip = true;
-var currentTransition;
-
-function doTransition(change) {
-  var newTransition = $transition(element, change);
-  if (currentTransition) {
-currentTransition.cancel();
-  }
-  

[20/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment-with-langs.min.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment-with-langs.min.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment-with-langs.min.js
deleted file mode 100644
index c200447..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/min/moment-with-langs.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-//! moment.js
-//! version : 2.5.1
-//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
-//! license : MIT
-//! momentjs.com
-(function(a){function 
b(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function
 c(a,b){return function(c){return k(a.call(this,c),b)}}function d(a,b){return 
function(c){return this.lang().ordinal(a.call(this,c),b)}}function 
e(){}function f(a){w(a),h(this,a)}function g(a){var 
b=q(a),c=b.year||0,d=b.month||0,e=b.week||0,f=b.day||0,g=b.hour||0,h=b.minute||0,i=b.second||0,j=b.millisecond||0;this._milliseconds=+j+1e3*i+6e4*h+36e5*g,this._days=+f+7*e,this._months=+d+12*c,this._data={},this._bubble()}function
 h(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return 
b.hasOwnProperty("toString")&&(a.toString=b.toString),b.hasOwnProperty("valueOf")&&(a.valueOf=b.valueOf),a}function
 i(a){var b,c={};for(b in 
a)a.hasOwnProperty(b)&(b)&&(c[b]=a[b]);return c}function 
j(a){return 0>a?Math.ceil(a):Math.floor(a)}function k(a,b,c){for(var 
d=""+Math.abs(a),e=a>=0;d.lengthd;d++)(c&[d]!==b[d]||!c&(a[d])!==s(b[d]))&++;return
 g+f}function p(a){if(a){var 
b=a.toLowerCase().replace(/(.)s$/,"$1");a=Tb[a]||Ub[b]||b}return a}function 
q(a){var b,c,d={};for(c in 
a)a.hasOwnProperty(c)&&(b=p(c),b&&(d[b]=a[c]));return d}function r(b){var 
c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}db[b]=function(e,f){var
 g,h,i=db.fn._lang[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var 
b=db().u
 tc().set(d,a);return i.call(db.fn._lang,b,e||"")},null!=f)return 
h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function s(a){var b=+a,c=0;return 
0!==b&(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function 
t(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function u(a){return 
v(a)?366:365}function v(a){return a%4===0&%100!==0||a%400===0}function 
w(a){var 
b;a._a&&-2===a._pf.overflow&&(b=a._a[jb]<0||a._a[jb]>11?jb:a._a[kb]<1||a._a[kb]>t(a._a[ib],a._a[jb])?kb:a._a[lb]<0||a._a[lb]>23?lb:a._a[mb]<0||a._a[mb]>59?mb:a._a[nb]<0||a._a[nb]>59?nb:a._a[ob]<0||a._a[ob]>999?ob:-1,a._pf._overflowDayOfYear&&(ib>b||b>kb)&&(b=kb),a._pf.overflow=b)}function
 x(a){return 
null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&_pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function
 y(a){return a?a.toLowerCase().replace("_","-"
 ):a}function z(a,b){return 
b._isUTC?db(a).zone(b._offset||0):db(a).local()}function A(a,b){return 
b.abbr=a,pb[a]||(pb[a]=new e),pb[a].set(b),pb[a]}function B(a){delete 
pb[a]}function C(a){var 
b,c,d,e,f=0,g=function(a){if(!pb[a]&)try{require("./lang/"+a)}catch(b){}return
 pb[a]};if(!a)return db.fn._lang;if(!m(a)){if(c=g(a))return 
c;a=[a]}for(;f0;){if(c=g(e.slice(0,b).join("-")))return
 c;if(d&>=b&(e,d,!0)>=b-1)break;b--}f++}return db.fn._lang}function 
D(a){return 
a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function 
E(a){var 
b,c,d=a.match(vb);for(b=0,c=d.length;c>b;b++)d[b]=Yb[d[b]]?Yb[d[b]]:D(d[b]);return
 function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof 
Function?d[b].call(e,a):d[b];return f}}function F(a,b){return 
a.isValid()?(b=G(b,a.lang()),Vb[b]||(Vb[b]=E(b)),Vb[b](a)):a.lang().invalidDate()}function
 G(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;f
 
or(wb.lastIndex=0;d>=0&(a);)a=a.replace(wb,c),wb.lastIndex=0,d-=1;return
 a}function H(a,b){var c,d=b._strict;switch(a){case"":return 
Ib;case"":case"":case"":return 
d?Jb:zb;case"Y":case"G":case"g":return 
Lb;case"YY":case"Y":case"G":case"g":return 

[28/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js.gzip
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js.gzip
 
b/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js.gzip
deleted file mode 100644
index e9a5d9e..000
Binary files 
a/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js.gzip
 and /dev/null differ



[29/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js 
b/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js
deleted file mode 100644
index 0ba64ea..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/angular/angular.min.js
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- AngularJS v1.2.9
- (c) 2010-2014 Google, Inc. http://angularjs.org
- License: MIT
-*/
-(function(Z,Q,r){'use strict';function F(b){return function(){var 
a=arguments[0],c,a="["+(b?b+":":"")+a+"] 
http://errors.angularjs.org/1.2.9/"+(b?b+"/":"")+a;for(c=1;c

[25/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/momentjs/lang/gl.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/lang/gl.js 
b/3rdparty/javascript/scheduler/assets/bower_components/momentjs/lang/gl.js
deleted file mode 100644
index 8b14127..000
--- a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/lang/gl.js
+++ /dev/null
@@ -1,71 +0,0 @@
-// moment.js language configuration
-// language : galician (gl)
-// author : Juan G. Hurtado : https://github.com/juanghurtado
-
-(function (factory) {
-if (typeof define === 'function' && define.amd) {
-define(['moment'], factory); // AMD
-} else if (typeof exports === 'object') {
-module.exports = factory(require('../moment')); // Node
-} else {
-factory(window.moment); // Browser global
-}
-}(function (moment) {
-return moment.lang('gl', {
-months : 
"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),
-monthsShort : 
"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),
-weekdays : 
"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),
-weekdaysShort : "Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),
-weekdaysMin : "Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),
-longDateFormat : {
-LT : "H:mm",
-L : "DD/MM/",
-LL : "D  ",
-LLL : "D   LT",
- : " D   LT"
-},
-calendar : {
-sameDay : function () {
-return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] 
LT';
-},
-nextDay : function () {
-return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] 
LT';
-},
-nextWeek : function () {
-return ' [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] 
LT';
-},
-lastDay : function () {
-return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
-},
-lastWeek : function () {
-return '[o]  [pasado ' + ((this.hours() !== 1) ? 'ás' : 
'a') + '] LT';
-},
-sameElse : 'L'
-},
-relativeTime : {
-future : function (str) {
-if (str === "uns segundos") {
-return "nuns segundos";
-}
-return "en " + str;
-},
-past : "hai %s",
-s : "uns segundos",
-m : "un minuto",
-mm : "%d minutos",
-h : "unha hora",
-hh : "%d horas",
-d : "un día",
-dd : "%d días",
-M : "un mes",
-MM : "%d meses",
-y : "un ano",
-yy : "%d anos"
-},
-ordinal : '%dº',
-week : {
-dow : 1, // Monday is the first day of the week.
-doy : 7  // The week that contains Jan 1st is the first week of 
the year.
-}
-});
-}));

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/momentjs/lang/he.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/lang/he.js 
b/3rdparty/javascript/scheduler/assets/bower_components/momentjs/lang/he.js
deleted file mode 100644
index b85dbe8..000
--- a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/lang/he.js
+++ /dev/null
@@ -1,77 +0,0 @@
-// moment.js language configuration
-// language : Hebrew (he)
-// author : Tomer Cohen : https://github.com/tomer
-// author : Moshe Simantov : https://github.com/DevelopmentIL
-// author : Tal Ater : https://github.com/TalAter
-
-(function (factory) {
-if (typeof define === 'function' && define.amd) {
-define(['moment'], factory); // AMD
-} else if (typeof exports === 'object') {
-module.exports = factory(require('../moment')); // Node
-} else {
-factory(window.moment); // Browser global
-}
-}(function (moment) {
-return moment.lang('he', {
-months : "ינואר_פברואר_מרץ_אפריל_מאי_יונ
י_יולי_אוגוסט_ספטמבר_אוקטובר_נ
ובמבר_דצמבר".split("_"),
-monthsShort : "ינו׳_פבר׳_מרץ_אפר׳_מאי_יונ
י_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),
-weekdays : "ראשון_שנ
י_שלישי_רביעי_חמישי_שישי_שבת".split("_"),
-weekdaysShort : "א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),
-weekdaysMin : "א_ב_ג_ד_ה_ו_ש".split("_"),
-longDateFormat : {
-LT : "HH:mm",
-L : "DD/MM/",

[13/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/logs/.gitignore
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/logs/.gitignore
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/logs/.gitignore
deleted file mode 100644
index d6b7ef3..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/logs/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/package.json
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/package.json
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/package.json
deleted file mode 100644
index 4417067..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "name": "Smart-Table",
-  "version": "0.2.1",
-  "description": "a table/grid for AngularJS",
-  "main": "smart-table-module",
-  "directories": {
-"test": "test",
-"example": "example-app"
-  },
-  "scripts": {
-"webServer": "scripts/web-server.js"
-  },
-  "repository": {
-"type": "git",
-"url": "https://github.com/lorenzofox3/Smart-Table.git;
-  },
-  "keywords": [
-"table",
-"grid",
-"angularjs"
-  ],
-  "author": "Laurent Renard",
-  "license": "MIT",
-  "readmeFilename": "README.md",
-  "devDependencies": {
-"grunt": "~0.4.1",
-"grunt-contrib-concat": "~0.3.0",
-"grunt-contrib-clean": "~0.4.1",
-"grunt-html2js": "~0.1.3",
-"grunt-contrib-copy": "~0.4.1",
-"grunt-contrib-uglify": "~0.2.1",
-"grunt-regex-replace": "~0.2.5",
-"grunt-karma": "~0.6.2",
-"karma-complexity-preprocessor": "~0.1.0"
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/e2e-test.bat
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/e2e-test.bat
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/e2e-test.bat
deleted file mode 100644
index 0b2aee6..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/e2e-test.bat
+++ /dev/null
@@ -1,11 +0,0 @@
-@echo off
-
-REM Windows script for running e2e tests
-REM You have to run server and capture some browser first
-REM
-REM Requirements:
-REM - NodeJS (http://nodejs.org/)
-REM - Karma (npm install -g karma)
-
-set BASE_DIR=%~dp0
-karma start "%BASE_DIR%\..\config\karma-e2e.conf.js" %*

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/e2e-test.sh
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/e2e-test.sh
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/e2e-test.sh
deleted file mode 100755
index 175c108..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/e2e-test.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-BASE_DIR=`dirname $0`
-
-echo ""
-echo "Starting Karma Server (http://vojtajina.github.com/testacular)"
-echo "---"
-
-karma start $BASE_DIR/../config/karma-e2e.conf.js $*

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/test.bat
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/test.bat
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/test.bat
deleted file mode 100644
index 192fa03..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/test.bat
+++ /dev/null
@@ -1,11 +0,0 @@
-@echo off
-
-REM Windows script for running unit tests
-REM You have to run server and capture some browser first
-REM
-REM Requirements:
-REM - NodeJS (http://nodejs.org/)
-REM - Karma (npm install -g karma)
-
-set BASE_DIR=%~dp0
-karma start "%BASE_DIR%\..\config\karma.conf.js" %*

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/test.sh
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/test.sh
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/scripts/test.sh
deleted file mode 100755

[15/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/index.html
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/index.html
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/index.html
deleted file mode 100644
index 7da224f..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/index.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-My AngularJS App
-
-
-
-
-
-
-
-
-
-
-
-

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/js/Smart-Table.debug.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/js/Smart-Table.debug.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/js/Smart-Table.debug.js
deleted file mode 100644
index e453e7d..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/example-app/js/Smart-Table.debug.js
+++ /dev/null
@@ -1,953 +0,0 @@
-/* Column module */
-
-(function (global, angular) {
-"use strict";
-var smartTableColumnModule = angular.module('smartTable.column', 
['smartTable.templateUrlList']).constant('DefaultColumnConfiguration', {
-isSortable: true,
-isEditable: false,
-type: 'text',
-
-
-//it is useless to have that empty strings, but it reminds what is 
available
-headerTemplateUrl: '',
-map: '',
-label: '',
-sortPredicate: '',
-formatFunction: '',
-formatParameter: '',
-filterPredicate: '',
-cellTemplateUrl: '',
-headerClass: '',
-cellClass: ''
-});
-
-function ColumnProvider(DefaultColumnConfiguration, templateUrlList) {
-
-function Column(config) {
-if (!(this instanceof Column)) {
-return new Column(config);
-}
-angular.extend(this, config);
-}
-
-this.setDefaultOption = function (option) {
-angular.extend(Column.prototype, option);
-};
-
-DefaultColumnConfiguration.headerTemplateUrl = 
templateUrlList.defaultHeader;
-this.setDefaultOption(DefaultColumnConfiguration);
-
-this.$get = function () {
-return Column;
-};
-}
-
-ColumnProvider.$inject = ['DefaultColumnConfiguration', 'templateUrlList'];
-smartTableColumnModule.provider('Column', ColumnProvider);
-
-//make it global so it can be tested
-global.ColumnProvider = ColumnProvider;
-})(window, angular);
-
-
-
-/* Directives */
-(function (angular) {
-"use strict";
-angular.module('smartTable.directives', ['smartTable.templateUrlList', 
'smartTable.templates'])
-.directive('smartTable', ['templateUrlList', 
'DefaultTableConfiguration', function (templateList, defaultConfig) {
-return {
-restrict: 'EA',
-scope: {
-columnCollection: '=columns',
-dataCollection: '=rows',
-config: '='
-},
-replace: 'true',
-templateUrl: templateList.smartTable,
-controller: 'TableCtrl',
-link: function (scope, element, attr, ctrl) {
-
-var templateObject;
-
-scope.$watch('config', function (config) {
-var newConfig = angular.extend({}, defaultConfig, 
config),
-length = scope.columns !== undefined ? 
scope.columns.length : 0;
-
-ctrl.setGlobalConfig(newConfig);
-
-//remove the checkbox column if needed
-if (newConfig.selectionMode !== 'multiple' || 
newConfig.displaySelectionCheckbox !== true) {
-for (var i = length - 1; i >= 0; i--) {
-if (scope.columns[i].isSelectionColumn === 
true) {
-ctrl.removeColumn(i);
-}
-}
-} else {
-//add selection box column if required
-ctrl.insertColumn({cellTemplateUrl: 
templateList.selectionCheckbox, headerTemplateUrl: 
templateList.selectAllCheckbox, isSelectionColumn: true}, 0);
-}
-}, true);
-
-//insert columns from column config
-scope.$watch('columnCollection', function (oldValue, 
newValue) {
-
-ctrl.clearColumns();
-
-if (scope.columnCollection) {
- 

[17/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/momentjs/readme.md
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/readme.md 
b/3rdparty/javascript/scheduler/assets/bower_components/momentjs/readme.md
deleted file mode 100644
index ae685ba..000
--- a/3rdparty/javascript/scheduler/assets/bower_components/momentjs/readme.md
+++ /dev/null
@@ -1,349 +0,0 @@
-A lightweight javascript date library for parsing, validating, manipulating, 
and formatting dates.
-
-# [Documentation](http://momentjs.com/docs/)
-
-Upgrading to 2.0.0
-==
-
-There are a number of small backwards incompatible changes with version 2.0.0.
-
-[See them and their descriptions 
here](https://gist.github.com/timrwood/e72f2eef320ed9e37c51#backwards-incompatible-changes)
-
-Changed language ordinal method to return the number + ordinal instead of just 
the ordinal.
-
-Changed two digit year parsing cutoff to match strptime.
-
-Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and 
`moment#endOf`.
-
-Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`.
-
-Removed the lang data objects from the top level namespace.
-
-Duplicate `Date` passed to `moment()` instead of referencing it.
-
-Travis Build Status
-===
-
-Develop [![Build 
Status](https://travis-ci.org/moment/moment.png?branch=develop)](https://travis-ci.org/moment/moment)
-
-Master [![Build 
Status](https://travis-ci.org/moment/moment.png?branch=master)](https://travis-ci.org/moment/moment)
-
-For developers
-==
-
-You need [node](http://nodejs.org/), use 
[nvm](https://github.com/creationix/nvm) or 
[nenv](https://github.com/ryuone/nenv) to install it.
-
-Then, in your shell
-
-```bash
-git clone https://github.com/moment/moment.git
-cd moment
-npm install -g grunt-cli
-npm install
-git checkout develop  # all patches against develop branch, please!
-grunt # this runs tests and jshint
-```
-
-Changelog
-=
-
-### 2.5.1
-
-* languages
-  * [#1392](https://github.com/moment/moment/issues/1392) Armenian (hy-am)
-
-* bugfixes
-  * [#1429](https://github.com/moment/moment/issues/1429) fixes 
[#1423](https://github.com/moment/moment/issues/1423) weird chrome-32 bug with 
js object creation
-  * [#1421](https://github.com/moment/moment/issues/1421) remove html entities 
from Welsh
-  * [#1418](https://github.com/moment/moment/issues/1418) fixes 
[#1401](https://github.com/moment/moment/issues/1401) improved non-padded 
tokens in strict matching
-  * [#1417](https://github.com/moment/moment/issues/1417) fixes 
[#1404](https://github.com/moment/moment/issues/1404) handle buggy moment 
object created by property cloning
-  * [#1398](https://github.com/moment/moment/issues/1398) fixes 
[#1397](https://github.com/moment/moment/issues/1397) fix Arabic-like week 
number parsing
-  * [#1396](https://github.com/moment/moment/issues/1396) add leftZeroFill(4) 
to  and  formats
-  * [#1373](https://github.com/moment/moment/issues/1373) use lowercase for 
months and days in Catalan
-
-* testing
-  * [#1374](https://github.com/moment/moment/issues/1374) run tests on 
multiple browser/os combos via SauceLabs and Travis
-
-### 2.5.0 [See changelog](https://gist.github.com/ichernev/8104451)
-
-* New languages
-  * Luxemburish (lb) [1247](https://github.com/moment/moment/issues/1247)
-  * Serbian (rs) [1319](https://github.com/moment/moment/issues/1319)
-  * Tamil (ta) [1324](https://github.com/moment/moment/issues/1324)
-  * Macedonian (mk) [1337](https://github.com/moment/moment/issues/1337)
-
-* Features
-  * [1311](https://github.com/moment/moment/issues/1311) Add quarter getter 
and format token `Q`
-  * [1303](https://github.com/moment/moment/issues/1303) strict parsing now 
respects number of digits per token (fix 
[1196](https://github.com/moment/moment/issues/1196))
-  * 0d30bb7 add jspm support
-  * [1347](https://github.com/moment/moment/issues/1347) improve zone parsing
-  * [1362](https://github.com/moment/moment/issues/1362) support merideam 
parsing in Korean
-
-* 22 bugfixes
-
-### 2.4.0
-
-* **Deprecate** globally exported moment, will be removed in next major
-* New languages
-  * Farose (fo) [#1206](https://github.com/moment/moment/issues/1206)
-  * Tagalog/Filipino (tl-ph) 
[#1197](https://github.com/moment/moment/issues/1197)
-  * Welsh (cy) [#1215](https://github.com/moment/moment/issues/1215)
-* Bugfixes
-  * properly handle Z at the end of iso RegExp 
[#1187](https://github.com/moment/moment/issues/1187)
-  * chinese meridian time improvements 
[#1076](https://github.com/moment/moment/issues/1076)
-  * fix language tests [#1177](https://github.com/moment/moment/issues/1177)
-  * remove some failing tests (that should have never existed :))
-[#1185](https://github.com/moment/moment/issues/1185)
-

[12/36] aurora git commit: Remove the old UI and serve the new UI instead

2017-10-25 Thread dmclaughlin
http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-bootstrap-prettify.js
--
diff --git 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-bootstrap-prettify.js
 
b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-bootstrap-prettify.js
deleted file mode 100644
index 0ea38fa..000
--- 
a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/smart-table-module/lib/angular/angular-bootstrap-prettify.js
+++ /dev/null
@@ -1,1872 +0,0 @@
-/**
- * @license AngularJS v1.0.7
- * (c) 2010-2012 Google, Inc. http://angularjs.org
- * License: MIT
- */
-(function (window, angular, undefined) {
-'use strict';
-
-var directive = {};
-var service = { value: {} };
-
-var DEPENDENCIES = {
-'angular.js': 'http://code.angularjs.org/' + angular.version.full + 
'/angular.min.js',
-'angular-resource.js': 'http://code.angularjs.org/' + 
angular.version.full + '/angular-resource.min.js',
-'angular-sanitize.js': 'http://code.angularjs.org/' + 
angular.version.full + '/angular-sanitize.min.js',
-'angular-cookies.js': 'http://code.angularjs.org/' + 
angular.version.full + '/angular-cookies.min.js'
-};
-
-
-function escape(text) {
-return text.
-replace(/\&/g, '').
-replace(/\/g, '').
-replace(/"/g, '');
-}
-
-/**
- * 
http://stackoverflow.com/questions/451486/pre-tag-loses-line-breaks-when-setting-innerhtml-in-ie
- * 
http://stackoverflow.com/questions/195363/inserting-a-newline-into-a-pre-tag-ie-javascript
- */
-function setHtmlIe8SafeWay(element, html) {
-var newElement = angular.element('' + html + '');
-
-element.html('');
-element.append(newElement.contents());
-return element;
-}
-
-
-directive.jsFiddle = function (getEmbeddedTemplate, escape, script) {
-return {
-terminal: true,
-link: function (scope, element, attr) {
-var name = '',
-stylesheet = 'http://twitter.github.com/bootstrap/assets/css/bootstrap.css;>\n',
-fields = {
-html: '',
-css: '',
-js: ''
-};
-
-angular.forEach(attr.jsFiddle.split(' '), function (file, 
index) {
-var fileType = file.split('.')[1];
-
-if (fileType == 'html') {
-if (index == 0) {
-fields[fileType] +=
-'\n' +
-getEmbeddedTemplate(file, 2);
-} else {
-fields[fileType] += '\n\n\n  \n' +
-'  \n' +
-getEmbeddedTemplate(file, 4) +
-'  \n';
-}
-} else {
-fields[fileType] += getEmbeddedTemplate(file) + '\n';
-}
-});
-
-fields.html += '\n';
-
-setHtmlIe8SafeWay(element,
-'http://jsfiddle.net/api/post/library/pure/; target="_blank">' +
-hiddenField('title', 'AngularJS Example: ' + name) +
-hiddenField('css', '  \n' +
-stylesheet +
-script.angular +
-(attr.resource ? script.resource : '') +
-'\n' +
-fields.css) +
-hiddenField('html', fields.html) +
-hiddenField('js', fields.js) +
-'' +
-'');
-
-function hiddenField(name, value) {
-return '';
-}
-}
-}
-};
-
-
-directive.code = function () {
-return {restrict: 'E', terminal: true};
-};
-
-
-directive.prettyprint = ['reindentCode', function (reindentCode) {
-return {
-restrict: 'C',
-terminal: true,
-compile: function (element) {
-
element.html(window.prettyPrintOne(reindentCode(element.html()), undefined, 
true));
-}
-};
-}];
-
-
-directive.ngSetText = ['getEmbeddedTemplate', function 
(getEmbeddedTemplate) {
-return {
-restrict: 'CA',
-priority: 10,
-compile: function (element, 

aurora git commit: Refactor veto logic to use direct method calls as opposed to pubsub events.

2017-10-25 Thread dmclaughlin
Repository: aurora
Updated Branches:
  refs/heads/master 96c834a24 -> 418813cf1


Refactor veto logic to use direct method calls as opposed to pubsub events.

SchedulingFilterNotifier currently publishes veto events to be consumed by 
various metadata classes (NearestFit and TaskVars). These veto events cause a 
lot object allocations/async tasks. We can reduce the number of objects made by 
directly calling methods and not using pubsub events.

Reviewed at https://reviews.apache.org/r/63236/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/418813cf
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/418813cf
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/418813cf

Branch: refs/heads/master
Commit: 418813cf128503836429bbf2bdf0b90221e97e1c
Parents: 96c834a
Author: Jordan Ly 
Authored: Wed Oct 25 10:21:55 2017 -0700
Committer: David McLaughlin 
Committed: Wed Oct 25 10:21:55 2017 -0700

--
 .../org/apache/aurora/scheduler/TaskVars.java   | 11 +++--
 .../apache/aurora/scheduler/app/AppModule.java  | 10 -
 .../events/NotifyingSchedulingFilter.java   | 22 ++---
 .../aurora/scheduler/events/PubsubEvent.java| 47 
 .../scheduler/events/PubsubEventModule.java | 16 ---
 .../aurora/scheduler/metadata/NearestFit.java   | 19 
 .../apache/aurora/scheduler/TaskVarsTest.java   | 17 +++
 .../events/NotifyingSchedulingFilterTest.java   | 17 ---
 .../scheduler/events/PubsubEventModuleTest.java |  4 --
 .../aurora/scheduler/http/PendingTasksTest.java |  6 +--
 .../scheduler/metadata/NearestFitTest.java  |  5 +--
 11 files changed, 57 insertions(+), 117 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/aurora/blob/418813cf/src/main/java/org/apache/aurora/scheduler/TaskVars.java
--
diff --git a/src/main/java/org/apache/aurora/scheduler/TaskVars.java 
b/src/main/java/org/apache/aurora/scheduler/TaskVars.java
index 676dfd9..3911626 100644
--- a/src/main/java/org/apache/aurora/scheduler/TaskVars.java
+++ b/src/main/java/org/apache/aurora/scheduler/TaskVars.java
@@ -14,6 +14,7 @@
 package org.apache.aurora.scheduler;
 
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
 import javax.inject.Inject;
@@ -40,7 +41,6 @@ import org.apache.aurora.scheduler.base.JobKeys;
 import org.apache.aurora.scheduler.events.PubsubEvent.EventSubscriber;
 import org.apache.aurora.scheduler.events.PubsubEvent.TaskStateChange;
 import org.apache.aurora.scheduler.events.PubsubEvent.TasksDeleted;
-import org.apache.aurora.scheduler.events.PubsubEvent.Vetoed;
 import org.apache.aurora.scheduler.filter.SchedulingFilter.Veto;
 import org.apache.aurora.scheduler.filter.SchedulingFilter.VetoGroup;
 import org.apache.aurora.scheduler.filter.SchedulingFilter.VetoType;
@@ -56,7 +56,7 @@ import static java.util.Objects.requireNonNull;
 /**
  * A container that tracks and exports stat counters for tasks.
  */
-class TaskVars extends AbstractIdleService implements EventSubscriber {
+public class TaskVars extends AbstractIdleService implements EventSubscriber {
   private static final Logger LOG = LoggerFactory.getLogger(TaskVars.class);
   private static final ImmutableSet TRACKED_JOB_STATES =
   ImmutableSet.of(ScheduleStatus.LOST, ScheduleStatus.FAILED);
@@ -221,13 +221,12 @@ class TaskVars extends AbstractIdleService implements 
EventSubscriber {
 }
   }
 
-  @Subscribe
-  public void taskVetoed(Vetoed event) {
-VetoGroup vetoGroup = Veto.identifyGroup(event.getVetoes());
+  public void taskVetoed(Set vetoes) {
+VetoGroup vetoGroup = Veto.identifyGroup(vetoes);
 if (vetoGroup != VetoGroup.EMPTY) {
   
counters.getUnchecked(VETO_GROUPS_TO_COUNTERS.get(vetoGroup)).increment();
 }
-for (Veto veto : event.getVetoes()) {
+for (Veto veto : vetoes) {
   
counters.getUnchecked(VETO_TYPE_TO_COUNTERS.get(veto.getVetoType())).increment();
 }
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/418813cf/src/main/java/org/apache/aurora/scheduler/app/AppModule.java
--
diff --git a/src/main/java/org/apache/aurora/scheduler/app/AppModule.java 
b/src/main/java/org/apache/aurora/scheduler/app/AppModule.java
index 40579db..3204cca 100644
--- a/src/main/java/org/apache/aurora/scheduler/app/AppModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/app/AppModule.java
@@ -40,7 +40,9 @@ import org.apache.aurora.scheduler.config.CliOptions;
 import org.apache.aurora.scheduler.config.validators.PositiveNumber;
 import org.apache.aurora.scheduler.configuration.ConfigurationManager;
 import 

aurora git commit: Add a package.json file in the plugin directory to allow custom dependencies

2017-10-25 Thread dmclaughlin
Repository: aurora
Updated Branches:
  refs/heads/master 418813cf1 -> 2aa968624


Add a package.json file in the plugin directory to allow custom dependencies

Problem: if you're using the plugin mechanism of the new UI, you cannot add 
your own custom dependencies without a fork of the package.json file. This adds 
a package.json file into the plugin diretory that is used to install 
dependencies into the main node_modules directory. With this separate 
package.json file, we remove the burden of upstream merge conflicts.

Reviewed at https://reviews.apache.org/r/63262/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/2aa96862
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/2aa96862
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/2aa96862

Branch: refs/heads/master
Commit: 2aa968624d5e5b9bc457f19d7550efd10c818367
Parents: 418813c
Author: David McLaughlin 
Authored: Wed Oct 25 13:00:04 2017 -0700
Committer: David McLaughlin 
Committed: Wed Oct 25 13:00:04 2017 -0700

--
 build.gradle   | 9 -
 ui/plugin/package.json | 9 +
 ui/webpack.config.js   | 2 +-
 3 files changed, 18 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/aurora/blob/2aa96862/build.gradle
--
diff --git a/build.gradle b/build.gradle
index d110d4a..1c1d381 100644
--- a/build.gradle
+++ b/build.gradle
@@ -145,7 +145,14 @@ project(':ui') {
 args = ['test']
   }
 
-  task install(type: NpmTask) {
+  task pluginInstall(type: NpmTask) {
+inputs.files(file('plugin/package.json'))
+outputs.files(fileTree('node_modules'))
+
+args = ['install', 'plugin/']
+  }
+
+  task install(type: NpmTask, dependsOn: 'pluginInstall') {
 inputs.files(file('package.json'))
 outputs.files(fileTree('node_modules'))
 // Install into the project dir to sandbox everything under ui/

http://git-wip-us.apache.org/repos/asf/aurora/blob/2aa96862/ui/plugin/package.json
--
diff --git a/ui/plugin/package.json b/ui/plugin/package.json
new file mode 100644
index 000..ea7c834
--- /dev/null
+++ b/ui/plugin/package.json
@@ -0,0 +1,9 @@
+{
+  "name": "aurora-ui-plugin",
+  "version": "1.0.0",
+  "description": "Use this package.json to enter your own custom npm 
dependencies (for custom UIs)",
+  "scripts": {
+"test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "dependencies": {}
+}

http://git-wip-us.apache.org/repos/asf/aurora/blob/2aa96862/ui/webpack.config.js
--
diff --git a/ui/webpack.config.js b/ui/webpack.config.js
index 60e611c..363abdd 100644
--- a/ui/webpack.config.js
+++ b/ui/webpack.config.js
@@ -2,7 +2,7 @@ var path = require('path');
 var webpack = require('webpack');
 
 var SOURCE_PATH = path.resolve(__dirname, 'src/main/js');
-var EXTENSION_PATH = path.resolve(__dirname, 'plugin/js')
+var EXTENSION_PATH = path.resolve(__dirname, 'plugin/js');
 
 module.exports = {
   devtool: 'source-map',



[5/5] aurora git commit: Exclusively use Map-based in-memory stores for primary storage

2017-10-25 Thread wfarner
Exclusively use Map-based in-memory stores for primary storage

This patch introduces map-based volatile stores, most of which were revived
from git history with minimal changes.  The DB storage system is now only
used in a temporary storage when replaying a snapshot containing the `dbScript`
field.

Note that this change removes the transactional nature of in-memory storage
operations as well as the `READ COMMITTED` transaction isolation previously
available to some stores (proven in necessary changes to
`StorageTransactionTest`).  This means some stores will permit dirty reads
when they previously did not.  `TaskStore` has always had this non-transactional
behavior by default, as the DB task store was never deemed suitable for
production.  Nonetheless, this non-transactional behavior should be considered
safe as the scheduler fails over on a storage operation failure, and relies on
the persistent log storage for transaction atomicity.

Reviewed at https://reviews.apache.org/r/62869/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/f2755e1c
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/f2755e1c
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/f2755e1c

Branch: refs/heads/master
Commit: f2755e1cdd67f3c1516726c21d6e8f13059a5a01
Parents: 38476ab
Author: Bill Farner 
Authored: Tue Oct 24 23:34:09 2017 -0700
Committer: Bill Farner 
Committed: Tue Oct 24 23:34:09 2017 -0700

--
 RELEASE-NOTES.md|   12 +
 .../thrift/org/apache/aurora/gen/storage.thrift |3 +-
 docs/reference/scheduler-configuration.md   |   20 -
 .../upstart/aurora-scheduler-kerberos.conf  |1 -
 examples/vagrant/upstart/aurora-scheduler.conf  |2 -
 .../aurora/benchmark/SchedulingBenchmarks.java  |4 +-
 .../aurora/benchmark/SnapshotBenchmarks.java|   13 +-
 .../benchmark/StateManagerBenchmarks.java   |5 +-
 .../aurora/benchmark/StatusUpdateBenchmark.java |4 +-
 .../aurora/benchmark/TaskStoreBenchmarks.java   |   23 +-
 .../aurora/benchmark/ThriftApiBenchmarks.java   |5 +-
 .../aurora/benchmark/UpdateStoreBenchmarks.java |8 +-
 .../aurora/scheduler/app/SchedulerMain.java |   10 +-
 .../aurora/scheduler/config/CliOptions.java |4 -
 .../scheduler/http/JettyServerModule.java   |1 -
 .../scheduler/storage/JobUpdateStore.java   |   16 +
 .../aurora/scheduler/storage/Storage.java   |   21 +-
 .../apache/aurora/scheduler/storage/Util.java   |   45 +
 .../storage/backup/TemporaryStorage.java|   22 +-
 .../scheduler/storage/db/DbJobUpdateStore.java  |   16 +-
 .../aurora/scheduler/storage/db/DbModule.java   |   72 +-
 .../aurora/scheduler/storage/db/DbStorage.java  |   13 +-
 .../aurora/scheduler/storage/db/DbUtil.java |   12 -
 .../scheduler/storage/log/LogStorageModule.java |   20 +-
 .../storage/log/SnapshotStoreImpl.java  |  208 +---
 .../storage/log/WriteAheadStorage.java  |6 -
 .../storage/mem/InMemStoresModule.java  |   65 --
 .../storage/mem/MemAttributeStore.java  |   82 ++
 .../storage/mem/MemJobUpdateStore.java  |  396 +++
 .../scheduler/storage/mem/MemLockStore.java |   72 ++
 .../scheduler/storage/mem/MemQuotaStore.java|   56 +
 .../storage/mem/MemSchedulerStore.java  |   38 +
 .../scheduler/storage/mem/MemStorage.java   |  103 ++
 .../scheduler/storage/mem/MemStorageModule.java |  107 ++
 .../aurora/scheduler/storage/mem/Util.java  |   47 -
 .../updater/JobUpdateControllerImpl.java|   12 +-
 .../aurora/scheduler/app/SchedulerIT.java   |2 +-
 .../scheduler/app/local/LocalSchedulerMain.java |   11 -
 .../scheduler/config/CommandLineTest.java   |   19 -
 .../cron/quartz/AuroraCronJobTest.java  |8 +-
 .../aurora/scheduler/cron/quartz/CronIT.java|4 +-
 .../cron/quartz/CronJobManagerImplTest.java |4 +-
 .../aurora/scheduler/http/MaintenanceTest.java  |4 +-
 .../scheduling/TaskSchedulerImplTest.java   |4 +-
 .../scheduler/state/LockManagerImplTest.java|4 +-
 .../scheduler/state/StateManagerImplTest.java   |4 +-
 .../scheduler/stats/ResourceCounterTest.java|4 +-
 .../storage/AbstractAttributeStoreTest.java |  176 +++
 .../storage/AbstractJobUpdateStoreTest.java | 1046 ++
 .../storage/AbstractLockStoreTest.java  |  200 
 .../storage/AbstractQuotaStoreTest.java |  111 ++
 .../storage/AbstractSchedulerStoreTest.java |   54 +
 .../scheduler/storage/backup/RecoveryTest.java  |8 +-
 .../storage/db/AttributeStoreTest.java  |   24 +
 .../scheduler/storage/db/CronJobStoreTest.java  |   39 +
 .../storage/db/DbAttributeStoreTest.java|  175 ---
 .../storage/db/DbCronJobStoreTest.java  |   39 -
 

[4/5] aurora git commit: Exclusively use Map-based in-memory stores for primary storage

2017-10-25 Thread wfarner
http://git-wip-us.apache.org/repos/asf/aurora/blob/f2755e1c/src/main/java/org/apache/aurora/scheduler/storage/mem/MemJobUpdateStore.java
--
diff --git 
a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemJobUpdateStore.java 
b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemJobUpdateStore.java
new file mode 100644
index 000..d190add
--- /dev/null
+++ 
b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemJobUpdateStore.java
@@ -0,0 +1,396 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.aurora.scheduler.storage.mem;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.function.Predicate;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Multimap;
+import com.google.common.collect.Multimaps;
+import com.google.common.collect.Ordering;
+import com.google.common.primitives.Longs;
+
+import org.apache.aurora.common.base.MorePreconditions;
+import org.apache.aurora.common.inject.TimedInterceptor.Timed;
+import org.apache.aurora.common.stats.StatsProvider;
+import org.apache.aurora.gen.JobInstanceUpdateEvent;
+import org.apache.aurora.gen.JobUpdateAction;
+import org.apache.aurora.gen.JobUpdateDetails;
+import org.apache.aurora.gen.JobUpdateEvent;
+import org.apache.aurora.gen.JobUpdateState;
+import org.apache.aurora.gen.JobUpdateStatus;
+import org.apache.aurora.gen.LockKey;
+import org.apache.aurora.gen.storage.StoredJobUpdateDetails;
+import org.apache.aurora.scheduler.storage.JobUpdateStore;
+import org.apache.aurora.scheduler.storage.LockStore;
+import org.apache.aurora.scheduler.storage.Storage.StorageException;
+import org.apache.aurora.scheduler.storage.entities.IJobInstanceUpdateEvent;
+import org.apache.aurora.scheduler.storage.entities.IJobKey;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdate;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateDetails;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateEvent;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateInstructions;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateKey;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateQuery;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateSummary;
+import org.apache.aurora.scheduler.storage.entities.ILock;
+import org.apache.aurora.scheduler.storage.entities.ILockKey;
+
+import static java.util.Objects.requireNonNull;
+
+import static org.apache.aurora.scheduler.storage.Util.jobUpdateActionStatName;
+import static org.apache.aurora.scheduler.storage.Util.jobUpdateStatusStatName;
+
+public class MemJobUpdateStore implements JobUpdateStore.Mutable {
+
+  private static final Ordering REVERSE_LAST_MODIFIED_ORDER 
= Ordering.natural()
+  .reverse()
+  .onResultOf(u -> 
u.getUpdate().getSummary().getState().getLastModifiedTimestampMs());
+
+  private final Map updates = 
Maps.newConcurrentMap();
+  private final LockStore lockStore;
+  private final LoadingCache jobUpdateEventStats;
+  private final LoadingCache jobUpdateActionStats;
+
+  @Inject
+  public MemJobUpdateStore(LockStore.Mutable lockStore, StatsProvider 
statsProvider) {
+this.lockStore = lockStore;
+this.jobUpdateEventStats = CacheBuilder.newBuilder()
+.build(new CacheLoader() {
+  @Override
+  public AtomicLong load(JobUpdateStatus status) {
+return statsProvider.makeCounter(jobUpdateStatusStatName(status));
+  }
+});
+for (JobUpdateStatus status : JobUpdateStatus.values()) {
+  jobUpdateEventStats.getUnchecked(status).get();
+}
+

[3/5] aurora git commit: Exclusively use Map-based in-memory stores for primary storage

2017-10-25 Thread wfarner
http://git-wip-us.apache.org/repos/asf/aurora/blob/f2755e1c/src/test/java/org/apache/aurora/scheduler/storage/AbstractJobUpdateStoreTest.java
--
diff --git 
a/src/test/java/org/apache/aurora/scheduler/storage/AbstractJobUpdateStoreTest.java
 
b/src/test/java/org/apache/aurora/scheduler/storage/AbstractJobUpdateStoreTest.java
new file mode 100644
index 000..5c82bcf
--- /dev/null
+++ 
b/src/test/java/org/apache/aurora/scheduler/storage/AbstractJobUpdateStoreTest.java
@@ -0,0 +1,1046 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.aurora.scheduler.storage;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import com.google.common.base.Optional;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.inject.Injector;
+
+import org.apache.aurora.gen.InstanceTaskConfig;
+import org.apache.aurora.gen.JobInstanceUpdateEvent;
+import org.apache.aurora.gen.JobUpdate;
+import org.apache.aurora.gen.JobUpdateAction;
+import org.apache.aurora.gen.JobUpdateDetails;
+import org.apache.aurora.gen.JobUpdateEvent;
+import org.apache.aurora.gen.JobUpdateInstructions;
+import org.apache.aurora.gen.JobUpdateKey;
+import org.apache.aurora.gen.JobUpdateQuery;
+import org.apache.aurora.gen.JobUpdateSettings;
+import org.apache.aurora.gen.JobUpdateState;
+import org.apache.aurora.gen.JobUpdateStatus;
+import org.apache.aurora.gen.JobUpdateSummary;
+import org.apache.aurora.gen.Lock;
+import org.apache.aurora.gen.LockKey;
+import org.apache.aurora.gen.Metadata;
+import org.apache.aurora.gen.Range;
+import org.apache.aurora.gen.TaskConfig;
+import org.apache.aurora.gen.storage.StoredJobUpdateDetails;
+import org.apache.aurora.scheduler.base.JobKeys;
+import org.apache.aurora.scheduler.base.TaskTestUtil;
+import org.apache.aurora.scheduler.storage.Storage.MutateWork.NoResult;
+import org.apache.aurora.scheduler.storage.Storage.StorageException;
+import org.apache.aurora.scheduler.storage.entities.IJobInstanceUpdateEvent;
+import org.apache.aurora.scheduler.storage.entities.IJobKey;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdate;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateDetails;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateEvent;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateInstructions;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateKey;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateQuery;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateState;
+import org.apache.aurora.scheduler.storage.entities.IJobUpdateSummary;
+import org.apache.aurora.scheduler.storage.entities.ILock;
+import org.apache.aurora.scheduler.storage.entities.ILockKey;
+import org.apache.aurora.scheduler.storage.testing.StorageEntityUtil;
+import org.apache.aurora.scheduler.testing.FakeStatsProvider;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.apache.aurora.gen.JobUpdateAction.INSTANCE_ROLLBACK_FAILED;
+import static org.apache.aurora.gen.JobUpdateAction.INSTANCE_ROLLED_BACK;
+import static org.apache.aurora.gen.JobUpdateAction.INSTANCE_ROLLING_BACK;
+import static org.apache.aurora.gen.JobUpdateAction.INSTANCE_UPDATED;
+import static org.apache.aurora.gen.JobUpdateAction.INSTANCE_UPDATING;
+import static org.apache.aurora.gen.JobUpdateStatus.ABORTED;
+import static org.apache.aurora.gen.JobUpdateStatus.ERROR;
+import static org.apache.aurora.gen.JobUpdateStatus.FAILED;
+import static org.apache.aurora.gen.JobUpdateStatus.ROLLED_BACK;
+import static org.apache.aurora.gen.JobUpdateStatus.ROLLING_BACK;
+import static org.apache.aurora.gen.JobUpdateStatus.ROLLING_FORWARD;
+import static org.apache.aurora.gen.JobUpdateStatus.ROLL_BACK_PAUSED;
+import static org.apache.aurora.gen.JobUpdateStatus.ROLL_FORWARD_PAUSED;
+import static org.apache.aurora.gen.Resource.diskMb;
+import static org.apache.aurora.gen.Resource.numCpus;
+import static org.apache.aurora.gen.Resource.ramMb;
+import static org.apache.aurora.scheduler.storage.Util.jobUpdateActionStatName;
+import static 

[2/5] aurora git commit: Exclusively use Map-based in-memory stores for primary storage

2017-10-25 Thread wfarner
http://git-wip-us.apache.org/repos/asf/aurora/blob/f2755e1c/src/test/java/org/apache/aurora/scheduler/storage/db/DbJobUpdateStoreTest.java
--
diff --git 
a/src/test/java/org/apache/aurora/scheduler/storage/db/DbJobUpdateStoreTest.java
 
b/src/test/java/org/apache/aurora/scheduler/storage/db/DbJobUpdateStoreTest.java
deleted file mode 100644
index 453c039..000
--- 
a/src/test/java/org/apache/aurora/scheduler/storage/db/DbJobUpdateStoreTest.java
+++ /dev/null
@@ -1,1046 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.aurora.scheduler.storage.db;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-import com.google.inject.Injector;
-
-import org.apache.aurora.gen.InstanceTaskConfig;
-import org.apache.aurora.gen.JobInstanceUpdateEvent;
-import org.apache.aurora.gen.JobUpdate;
-import org.apache.aurora.gen.JobUpdateAction;
-import org.apache.aurora.gen.JobUpdateDetails;
-import org.apache.aurora.gen.JobUpdateEvent;
-import org.apache.aurora.gen.JobUpdateInstructions;
-import org.apache.aurora.gen.JobUpdateKey;
-import org.apache.aurora.gen.JobUpdateQuery;
-import org.apache.aurora.gen.JobUpdateSettings;
-import org.apache.aurora.gen.JobUpdateState;
-import org.apache.aurora.gen.JobUpdateStatus;
-import org.apache.aurora.gen.JobUpdateSummary;
-import org.apache.aurora.gen.Lock;
-import org.apache.aurora.gen.LockKey;
-import org.apache.aurora.gen.Metadata;
-import org.apache.aurora.gen.Range;
-import org.apache.aurora.gen.TaskConfig;
-import org.apache.aurora.gen.storage.StoredJobUpdateDetails;
-import org.apache.aurora.scheduler.base.JobKeys;
-import org.apache.aurora.scheduler.base.TaskTestUtil;
-import org.apache.aurora.scheduler.storage.Storage;
-import org.apache.aurora.scheduler.storage.Storage.MutateWork.NoResult;
-import org.apache.aurora.scheduler.storage.Storage.StorageException;
-import org.apache.aurora.scheduler.storage.entities.IJobInstanceUpdateEvent;
-import org.apache.aurora.scheduler.storage.entities.IJobKey;
-import org.apache.aurora.scheduler.storage.entities.IJobUpdate;
-import org.apache.aurora.scheduler.storage.entities.IJobUpdateDetails;
-import org.apache.aurora.scheduler.storage.entities.IJobUpdateEvent;
-import org.apache.aurora.scheduler.storage.entities.IJobUpdateInstructions;
-import org.apache.aurora.scheduler.storage.entities.IJobUpdateKey;
-import org.apache.aurora.scheduler.storage.entities.IJobUpdateQuery;
-import org.apache.aurora.scheduler.storage.entities.IJobUpdateSummary;
-import org.apache.aurora.scheduler.storage.entities.ILock;
-import org.apache.aurora.scheduler.storage.testing.StorageEntityUtil;
-import org.apache.aurora.scheduler.testing.FakeStatsProvider;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.apache.aurora.gen.JobUpdateAction.INSTANCE_ROLLBACK_FAILED;
-import static org.apache.aurora.gen.JobUpdateAction.INSTANCE_ROLLED_BACK;
-import static org.apache.aurora.gen.JobUpdateAction.INSTANCE_ROLLING_BACK;
-import static org.apache.aurora.gen.JobUpdateAction.INSTANCE_UPDATED;
-import static org.apache.aurora.gen.JobUpdateAction.INSTANCE_UPDATING;
-import static org.apache.aurora.gen.JobUpdateStatus.ABORTED;
-import static org.apache.aurora.gen.JobUpdateStatus.ERROR;
-import static org.apache.aurora.gen.JobUpdateStatus.FAILED;
-import static org.apache.aurora.gen.JobUpdateStatus.ROLLED_BACK;
-import static org.apache.aurora.gen.JobUpdateStatus.ROLLING_BACK;
-import static org.apache.aurora.gen.JobUpdateStatus.ROLLING_FORWARD;
-import static org.apache.aurora.gen.JobUpdateStatus.ROLL_BACK_PAUSED;
-import static org.apache.aurora.gen.JobUpdateStatus.ROLL_FORWARD_PAUSED;
-import static org.apache.aurora.gen.Resource.diskMb;
-import static org.apache.aurora.gen.Resource.numCpus;
-import static org.apache.aurora.gen.Resource.ramMb;
-import static 
org.apache.aurora.scheduler.storage.db.DbJobUpdateStore.jobUpdateActionStatName;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-public class DbJobUpdateStoreTest {
-
-  private static final IJobKey JOB