You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by dm...@apache.org on 2017/10/25 17:15:33 UTC

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

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/lib/angular/version.txt
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/lib/angular/version.txt b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/lib/angular/version.txt
deleted file mode 100644
index 8b13789..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/lib/angular/version.txt
+++ /dev/null
@@ -1 +0,0 @@
-

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/ColumnSpec.js
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/ColumnSpec.js b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/ColumnSpec.js
deleted file mode 100644
index 7b92569..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/ColumnSpec.js
+++ /dev/null
@@ -1,27 +0,0 @@
-describe('Column Module', function () {
-    beforeEach(module('smartTable.column', function ($provide) {
-        $provide.constant('DefaultColumnConfiguration', {defaultValue: 'default', value: 'defaultValue'});
-        $provide.provider('Column', ColumnProvider);
-    }));
-
-
-    describe('Column factory', function () {
-        it('should always return an instance of Column', inject(function (Column) {
-            expect(typeof Column()).toBe('object');
-            expect(Column() instanceof Column).toBe(true);
-            expect(typeof new Column()).toBe('object');
-            expect(new Column() instanceof Column).toBe(true);
-        }));
-
-        it('should overwrite default parameters if provided in config', inject(function (Column) {
-            var column = new Column();
-            expect(column.defaultValue).toEqual('default');
-            expect(column.value).toEqual('defaultValue');
-
-            column = new Column({value: 'value', otherValue: 'otherValue'});
-            expect(column.defaultValue).toEqual('default');
-            expect(column.value).toEqual('value');
-            expect(column.otherValue).toEqual('otherValue');
-        }));
-    });
-});

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/TableSpec.js
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/TableSpec.js b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/TableSpec.js
deleted file mode 100644
index 7a1384e..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/TableSpec.js
+++ /dev/null
@@ -1,641 +0,0 @@
-describe('Table module', function () {
-
-    var
-        scope,
-        Column,
-        DefaultConfig,
-        filter,
-        ctrl,
-        defaultDisplayedCollection = [
-            {prop: 'defaultValue'}
-        ],
-        ctrlMock = {
-            pipe: function () {
-                return defaultDisplayedCollection;
-            }
-        };
-
-    beforeEach(module('smartTable.table', function ($provide) {
-        $provide.constant('DefaultTableConfiguration', {defaultValue: 'defaultValue', value: 'defaultValue'});
-    }));
-
-    describe('Table Controller', function () {
-
-        beforeEach(inject(function ($controller, $rootScope, $filter, $injector) {
-            scope = $rootScope.$new();
-            Column = $injector.get('Column');
-            DefaultConfig = $injector.get('DefaultTableConfiguration');
-            filter = $filter;
-            ctrl = $controller('TableCtrl', {$scope: scope, Column: Column, DefaultTableConfig: DefaultConfig, $filter: filter
-            });
-        }));
-
-        it('should init the config', function () {
-
-            expect(angular.isArray(scope.columns)).toBe(true);
-            expect(angular.isArray(scope.displayedCollection)).toBe(true);
-            expect(angular.isArray(scope.dataCollection)).toBe(true);
-
-            ctrl.setGlobalConfig({value: 'overwritten'});
-            expect(scope.defaultValue).toEqual('defaultValue');
-            expect(scope.value).toEqual('overwritten');
-        });
-
-        it('should set and override the config', function () {
-            ctrl.setGlobalConfig({value: 'overwritten'});
-            expect(scope.defaultValue).toEqual('defaultValue');
-            expect(scope.value).toEqual('overwritten');
-        });
-
-        describe('change page', function () {
-
-            beforeEach(function () {
-                var changePage = ctrl.changePage;
-                ctrl = ctrlMock;
-                ctrl.changePage = changePage;
-            });
-
-            it('should change the page and refresh the displayed items', function () {
-                spyOn(ctrlMock, 'pipe').andCallThrough();
-                scope.currentPage = 1;
-                ctrl.changePage({page: 2});
-                expect(scope.currentPage).toEqual(2);
-                expect(ctrlMock.pipe).toHaveBeenCalledWith(scope.dataCollection);
-                expect(scope.displayedCollection).toBe(defaultDisplayedCollection);
-            });
-
-            it('should not change the page if provided page parameter is not correct', function () {
-                scope.currentPage = 3;
-                spyOn(ctrlMock, 'pipe').andCallThrough();
-                ctrl.changePage('whatever');
-                expect(scope.currentPage).toEqual(3);
-                expect(ctrlMock.pipe).not.toHaveBeenCalled();
-            });
-
-            it('should emit an event', inject(function ($rootScope) {
-                scope.currentPage = 3;
-                var eventHandler = {
-                    listener: function (event, args) {
-                        expect(args.oldValue).toEqual(3);
-                        expect(args.newValue).toEqual(1);
-                    }
-                };
-                spyOn(eventHandler, 'listener');
-                $rootScope.$on('changePage', eventHandler.listener);
-                ctrl.changePage({page: 1});
-                expect(eventHandler.listener).toHaveBeenCalled();
-            }));
-        });
-
-        describe('Column API', function () {
-
-            beforeEach(function () {
-                scope.columns = [new Column({id: 0}), new Column({id: 1})];
-            });
-
-            it('should add column at proper index or put it at the end', function () {
-
-                expect(scope.columns.length).toEqual(2);
-                //insert at a given index
-                ctrl.insertColumn({id: 3}, 1);
-                expect(scope.columns.length).toBe(3);
-                expect(scope.columns[1].id).toBe(3);
-            });
-
-            it('should add Column at the end', function () {
-                expect(scope.columns.length).toEqual(2);
-
-                ctrl.insertColumn({id: 666}, -1);
-                expect(scope.columns.length).toBe(3);
-                expect(scope.columns[2].id).toBe(666);
-                ctrl.insertColumn({id: 99}, 99);
-                expect(scope.columns.length).toBe(4);
-                expect(scope.columns[3].id).toBe(99);
-            });
-
-            it('should remove column at proper index or do nothing', function () {
-
-                expect(scope.columns.length).toEqual(2);
-
-                ctrl.removeColumn(0);
-                expect(scope.columns.length).toBe(1);
-                expect(scope.columns[0].id).toBe(1);
-
-                ctrl.removeColumn(666);
-                expect(scope.columns.length).toBe(1);
-                ctrl.removeColumn(-1);
-                expect(scope.columns.length).toBe(1);
-            });
-
-            describe('move column', function () {
-
-                beforeEach(function () {
-                    //insert few columns
-                    scope.columns = [];
-
-                    ctrl.insertColumn({id: 0});
-                    ctrl.insertColumn({id: 1});
-                    ctrl.insertColumn({id: 2});
-                    ctrl.insertColumn({id: 3});
-                    ctrl.insertColumn({id: 4});
-                });
-
-                it('should move a column from a lower index to an higher one', function () {
-                    ctrl.moveColumn(0, 3);
-                    expect(scope.columns[0].id).toBe(1);
-                    expect(scope.columns[3].id).toBe(0);
-                });
-
-                it('should move a column from a higher index to a lower one', function () {
-                    ctrl.moveColumn(4, 1);
-                    expect(scope.columns[4].id).toBe(3);
-                    expect(scope.columns[1].id).toBe(4)
-                });
-
-                it('should not move any column', function () {
-                    ctrl.moveColumn(-1, 3);
-                    expect(scope.columns[3].id).toBe(3);
-                    ctrl.moveColumn(3, 666);
-                    expect(scope.columns[3].id).toBe(3);
-                });
-            });
-
-            describe('clear columns', function () {
-
-                beforeEach(function () {
-                    //insert few columns
-                    scope.columns = [];
-
-                    ctrl.insertColumn({id: 0});
-                    ctrl.insertColumn({id: 1});
-                    ctrl.insertColumn({id: 2});
-                    ctrl.insertColumn({id: 3});
-                    ctrl.insertColumn({id: 4});
-                });
-
-                it('should remove all columns', function () {
-                    expect(scope.columns.length).toBe(5);
-                    ctrl.clearColumns();
-                    expect(scope.columns.length).toBe(0);
-                });
-
-                it('should have columns when adding after clear', function () {
-                    ctrl.clearColumns();
-                    ctrl.insertColumn({id: 7});
-                    ctrl.insertColumn({id: 8});
-                    ctrl.insertColumn({id: 9});
-                    expect(scope.columns[0].id).toBe(7);
-                    expect(scope.columns[1].id).toBe(8);
-                    expect(scope.columns[2].id).toBe(9);
-                });
-
-            });
-        });
-
-        describe('Row API', function () {
-            var refArray = [
-                {id: 0},
-                {id: 1},
-                {id: 2}
-            ];
-            beforeEach(function () {
-                scope.displayedCollection = scope.dataCollection = [
-                    {id: 0},
-                    {id: 1},
-                    {id: 2}
-                ];
-            });
-
-            describe('Select dataRows', function () {
-
-                describe('in single selection Mode', function () {
-
-                    beforeEach(function () {
-                        scope.selectionMode = 'single';
-                        scope.displayedCollection = scope.dataCollection = [
-                            {id: 0, secondProperty: true, thirdProperty: 1},
-                            {id: 1, secondProperty: true, thirdProperty: 2},
-                            {id: 2, secondProperty: true, thirdProperty: 1}
-                        ];
-                    });
-
-                    it('should only set isSelected=true to only one item at the time', function () {
-                        ctrl.toggleSelection(scope.displayedCollection[0]);
-                        expect(scope.dataCollection[0].isSelected).toBe(true);
-                        expect(scope.dataCollection[1].isSelected).not.toBe(true);
-                        expect(scope.dataCollection[2].isSelected).not.toBe(true);
-
-                        ctrl.toggleSelection(scope.displayedCollection[1]);
-                        expect(scope.dataCollection[0].isSelected).not.toBe(true);
-                        expect(scope.dataCollection[1].isSelected).toBe(true);
-                        expect(scope.dataCollection[2].isSelected).not.toBe(true);
-                    });
-
-                    it('should emit event when being selected', inject(function ($rootScope) {
-                        var eventHanlder = {
-                            listener: function (event, args) {
-                                expect(args.item).toEqual(scope.displayedCollection[0]);
-                                expect(args.item.isSelected).toBe(true);
-                            }
-                        };
-                        spyOn(eventHanlder, 'listener').andCallThrough();
-                        $rootScope.$on('selectionChange', eventHanlder.listener);
-                        ctrl.toggleSelection(scope.displayedCollection[0]);
-                        expect(eventHanlder.listener).toHaveBeenCalled();
-                    }));
-
-                    it('should emit event when being unselected', inject(function ($rootScope) {
-                        ctrl.toggleSelection(scope.displayedCollection[0]);
-                        expect(scope.displayedCollection[0].isSelected).toBe(true);
-
-                        var callCounter = 0;
-                        var eventHanlder = {
-                            listener: function (event, args) {
-
-                                //first time call : unselect the previously selected
-                                if (callCounter === 0) {
-                                    expect(args.item).toEqual(scope.displayedCollection[0]);
-                                    expect(args.item.isSelected).toBe(false);
-                                    callCounter++;
-                                } else {
-                                    expect(args.item).toEqual(scope.displayedCollection[1]);
-                                    expect(args.item.isSelected).toBe(true);
-                                }
-                            }
-                        };
-                        spyOn(eventHanlder, 'listener').andCallThrough();
-                        $rootScope.$on('selectionChange', eventHanlder.listener);
-                        ctrl.toggleSelection(scope.displayedCollection[1]);
-                        expect(eventHanlder.listener.callCount).toBe(2);
-                    }));
-
-                    it('should unselect', function () {
-                        ctrl.toggleSelection(scope.displayedCollection[0]);
-                        expect(scope.dataCollection[0].isSelected).toBe(true);
-                        ctrl.toggleSelection(scope.displayedCollection[0]);
-                        expect(scope.dataCollection[0].isSelected).not.toBe(true);
-                    });
-
-                    it('should not select any row when calling toggleSelectAll', function () {
-                        ctrl.toggleSelectionAll(true);
-                        expect(scope.dataCollection[0].isSelected).not.toBe(true);
-                        expect(scope.dataCollection[1].isSelected).not.toBe(true);
-                        expect(scope.dataCollection[2].isSelected).not.toBe(true);
-                    });
-                });
-
-                describe('selection in selection mode multiple', function () {
-
-                    beforeEach(function () {
-                        scope.selectionMode = 'multiple';
-
-                        scope.displayedCollection = scope.dataCollection = [
-                            {id: 0, secondProperty: true, thirdProperty: 1},
-                            {id: 1, secondProperty: true, thirdProperty: 2},
-                            {id: 2, secondProperty: true, thirdProperty: 1}
-                        ];
-                    });
-
-                    it('should set isSelected=true to any row', function () {
-                        ctrl.toggleSelection(scope.displayedCollection[0]);
-                        expect(scope.dataCollection[0].isSelected).toBe(true);
-                        expect(scope.dataCollection[1].isSelected).not.toBe(true);
-                        expect(scope.dataCollection[2].isSelected).not.toBe(true);
-
-                        ctrl.toggleSelection(scope.displayedCollection[1]);
-                        expect(scope.dataCollection[0].isSelected).toBe(true);
-                        expect(scope.dataCollection[1].isSelected).toBe(true);
-                        expect(scope.dataCollection[2].isSelected).not.toBe(true);
-                    });
-
-                    it('should unselect any row', function () {
-                        ctrl.toggleSelection(scope.displayedCollection[0]);
-                        expect(scope.dataCollection[0].isSelected).toBe(true);
-                        expect(scope.dataCollection[1].isSelected).not.toBe(true);
-                        expect(scope.dataCollection[2].isSelected).not.toBe(true);
-
-                        ctrl.toggleSelection(scope.displayedCollection[0]);
-                        expect(scope.dataCollection[0].isSelected).not.toBe(true);
-                        expect(scope.dataCollection[1].isSelected).not.toBe(true);
-                        expect(scope.dataCollection[2].isSelected).not.toBe(true);
-                    });
-
-                    it('should select all the displayed row when calling toggleSelectAll with true', function () {
-                        ctrl.toggleSelectionAll(true);
-                        expect(scope.displayedCollection[0].isSelected).toBe(true);
-                        expect(scope.displayedCollection[1].isSelected).toBe(true);
-                        expect(scope.displayedCollection[2].isSelected).toBe(true);
-
-                        scope.displayedCollection[0].isSelected = false;
-                        ctrl.toggleSelectionAll(true);
-                        expect(scope.displayedCollection[0].isSelected).toBe(true);
-                        expect(scope.displayedCollection[1].isSelected).toBe(true);
-                        expect(scope.displayedCollection[2].isSelected).toBe(true);
-                    });
-
-                    it('should unselect all the displayed row when calling toggleSelectAll with anything but true', function () {
-                        scope.displayedCollection[0].isSelected = true;
-                        scope.displayedCollection[1].isSelected = true;
-                        ctrl.toggleSelectionAll('whatever');
-                        expect(scope.displayedCollection[0].isSelected).not.toBe(true);
-                        expect(scope.displayedCollection[1].isSelected).not.toBe(true);
-                        expect(scope.displayedCollection[2].isSelected).not.toBe(true);
-
-                        scope.displayedCollection[0].isSelected = true;
-                        scope.displayedCollection[1].isSelected = true;
-                        ctrl.toggleSelectionAll(false);
-                        expect(scope.displayedCollection[0].isSelected).not.toBe(true);
-                        expect(scope.displayedCollection[1].isSelected).not.toBe(true);
-                        expect(scope.displayedCollection[2].isSelected).not.toBe(true);
-                    });
-
-                    it('should always emit an event', inject(function ($rootScope) {
-                        var eventHanlder = {
-                            listener: function (event, args) {
-                                expect(args.item).toEqual(scope.displayedCollection[0]);
-                                expect(args.item.isSelected).toEqual(scope.displayedCollection[0].isSelected);
-                            }
-                        };
-                        spyOn(eventHanlder, 'listener').andCallThrough();
-                        $rootScope.$on('selectionChange', eventHanlder.listener);
-                        ctrl.toggleSelection(scope.displayedCollection[0]);
-                        expect(eventHanlder.listener).toHaveBeenCalled();
-                        ctrl.toggleSelection(scope.displayedCollection[0]);
-                        expect(eventHanlder.listener).toHaveBeenCalled();
-                    }));
-                });
-            });
-
-            it('should delete a row from displayed collection and from data collection', function () {
-
-                ctrl.removeDataRow(0);
-                expect(scope.displayedCollection.length).toBe(2);
-                expect(scope.dataCollection.length).toBe(2);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 1},
-                    {id: 2}
-                ]);
-                expect(scope.dataCollection).toEqual([
-                    {id: 1},
-                    {id: 2}
-                ]);
-            });
-
-            it('should not remove any dataRow as the index is wrong', function () {
-                ctrl.removeDataRow(-1);
-                expect(scope.displayedCollection.length).toBe(3);
-                expect(scope.dataCollection.length).toBe(3);
-                ctrl.removeDataRow(5);
-                expect(scope.displayedCollection.length).toBe(3);
-                expect(scope.dataCollection.length).toBe(3);
-                ctrl.removeDataRow('whatever');
-                expect(scope.displayedCollection.length).toBe(3);
-                expect(scope.dataCollection.length).toBe(3);
-            });
-
-            it('should move a row from a higher valid index to a lower valid index in the displayed Collection', function () {
-                ctrl.moveDataRow(2, 0);
-                expect(scope.displayedCollection.length).toBe(3);
-                expect(scope.displayedCollection[0].id).toBe(2);
-                expect(scope.displayedCollection[2].id).toBe(1);
-            });
-
-            it('should move a row from a lower valid index to a higher valid index in the displayed Collection', function () {
-                ctrl.moveDataRow(0, 1);
-                expect(scope.displayedCollection.length).toBe(3);
-                expect(scope.displayedCollection[1].id).toBe(0);
-                expect(scope.displayedCollection[0].id).toBe(1);
-            });
-
-            it('should not move any row with invalid index', function () {
-                ctrl.moveDataRow(-1, 1);
-                expect(scope.displayedCollection.length).toBe(3);
-                expect(scope.displayedCollection).toEqual(refArray);
-
-                ctrl.moveDataRow(1, 4);
-                expect(scope.displayedCollection.length).toBe(3);
-                expect(scope.displayedCollection).toEqual(refArray);
-
-                ctrl.moveDataRow(-666, 'whatever');
-                expect(scope.displayedCollection.length).toBe(3);
-                expect(scope.displayedCollection).toEqual(refArray);
-            });
-        });
-
-        describe('sort data rows', function () {
-
-            var refArray = [
-                {id: 0, secondProperty: true, thirdProperty: 2},
-                {id: 1, secondProperty: true, thirdProperty: 3},
-                {id: 2, secondProperty: true, thirdProperty: 1}
-            ];
-
-            beforeEach(function () {
-                scope.displayedCollection = scope.dataCollection = [
-                    {id: 0, secondProperty: true, thirdProperty: 2},
-                    {id: 1, secondProperty: true, thirdProperty: 3},
-                    {id: 2, secondProperty: true, thirdProperty: 1}
-                ];
-                ctrl.insertColumn({map: 'id', isSortable: true});
-                ctrl.insertColumn({map: 'secondProperty', isSortable: false});
-                ctrl.insertColumn({map: 'thirdProperty', isSortable: true});
-            });
-
-            it('should not sort the displayed collection when isSortable is false', function () {
-                ctrl.sortBy(scope.columns[1]);
-                expect(scope.displayedCollection).toEqual(refArray);
-            });
-
-            //not really unit test but more relevant here...
-            it('should sort by "map", first ascending then descending finally back to natural order', function () {
-
-                ctrl.sortBy(scope.columns[2]);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 2, secondProperty: true, thirdProperty: 1},
-                    {id: 0, secondProperty: true, thirdProperty: 2},
-                    {id: 1, secondProperty: true, thirdProperty: 3}
-                ]);
-
-                //switch to another column sortable
-                //by id
-                ctrl.sortBy(scope.columns[0]);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 0, secondProperty: true, thirdProperty: 2},
-                    {id: 1, secondProperty: true, thirdProperty: 3},
-                    {id: 2, secondProperty: true, thirdProperty: 1}
-                ]);
-
-                //back to thirdProperty
-                ctrl.sortBy(scope.columns[2]);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 2, secondProperty: true, thirdProperty: 1},
-                    {id: 0, secondProperty: true, thirdProperty: 2},
-                    {id: 1, secondProperty: true, thirdProperty: 3}
-                ]);
-
-                //descent
-                ctrl.sortBy(scope.columns[2]);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 1, secondProperty: true, thirdProperty: 3},
-                    {id: 0, secondProperty: true, thirdProperty: 2},
-                    {id: 2, secondProperty: true, thirdProperty: 1}
-                ]);
-
-                //natural order
-                ctrl.sortBy(scope.columns[2]);
-                expect(scope.displayedCollection).toEqual(refArray);
-            });
-        });
-
-        describe('search data rows', function () {
-
-            beforeEach(function () {
-                scope.itemsByPage = 10;
-                scope.displayedCollection = scope.dataCollection = [
-                    {id: 0, secondProperty: true, thirdProperty: 2},
-                    {id: 1, secondProperty: true, thirdProperty: 3},
-                    {id: 2, secondProperty: true, thirdProperty: 1}
-                ];
-                ctrl.insertColumn({map: 'id', isSortable: true});
-                ctrl.insertColumn({map: 'secondProperty', isSortable: false});
-                ctrl.insertColumn({map: 'thirdProperty', isSortable: true});
-            });
-
-            it('should not filter items with a null property by default', function () {
-                scope.dataCollection.push({id: 4, secondProperty: true, thirdProperty: null});
-                ctrl.search('');
-                expect(scope.displayedCollection.length).toBe(4);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 0, secondProperty: true, thirdProperty: 2},
-                    {id: 1, secondProperty: true, thirdProperty: 3},
-                    {id: 2, secondProperty: true, thirdProperty: 1},
-                    {id: 4, secondProperty: true, thirdProperty: null}
-                ]);
-            });
-
-            it('should search globally if we dont specify a proper cololumn', function () {
-                ctrl.search('1');
-                expect(scope.displayedCollection.length).toBe(2);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 1, secondProperty: true, thirdProperty: 3},
-                    {id: 2, secondProperty: true, thirdProperty: 1}
-                ]);
-            });
-
-            it('should search for only a given column if we provide proper column', function () {
-                ctrl.search('1', scope.columns[0]);
-                expect(scope.displayedCollection.length).toBe(1);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 1, secondProperty: true, thirdProperty: 3}
-                ]);
-            });
-
-            it('should switch form one mode to another without any problem', function () {
-                ctrl.search('1');
-                expect(scope.displayedCollection.length).toBe(2);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 1, secondProperty: true, thirdProperty: 3},
-                    {id: 2, secondProperty: true, thirdProperty: 1}
-                ]);
-
-                ctrl.search('1', scope.columns[0]);
-                expect(scope.displayedCollection.length).toBe(1);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 1, secondProperty: true, thirdProperty: 3}
-                ]);
-
-                ctrl.search('1');
-                expect(scope.displayedCollection.length).toBe(2);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 1, secondProperty: true, thirdProperty: 3},
-                    {id: 2, secondProperty: true, thirdProperty: 1}
-                ]);
-            });
-        });
-
-        describe('update data row', function () {
-            beforeEach(function () {
-                scope.displayedCollection = scope.dataCollection = [
-                    {id: 0, secondProperty: true, thirdProperty: 2, more: {another: 'test'}},
-                    {id: 1, secondProperty: true, thirdProperty: 3, more: {another: 'test'}},
-                    {id: 2, secondProperty: true, thirdProperty: 1, more: {another: 'test'}}
-                ];
-            });
-
-            it('should update the proper data row with the proper value', function () {
-                ctrl.updateDataRow(scope.displayedCollection[0], 'id', 34);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 34, secondProperty: true, thirdProperty: 2, more: {another: 'test'}},
-                    {id: 1, secondProperty: true, thirdProperty: 3, more: {another: 'test'}},
-                    {id: 2, secondProperty: true, thirdProperty: 1, more: {another: 'test'}}
-                ]);
-
-                expect(scope.dataCollection).toEqual([
-                    {id: 34, secondProperty: true, thirdProperty: 2, more: {another: 'test'}},
-                    {id: 1, secondProperty: true, thirdProperty: 3, more: {another: 'test'}},
-                    {id: 2, secondProperty: true, thirdProperty: 1, more: {another: 'test'}}
-                ]);
-            });
-
-            it('should not update any data Row', function () {
-                ctrl.updateDataRow({id: 1, secondProperty: true, thirdProperty: 2}, 'id', 34);
-                expect(scope.displayedCollection).toEqual([
-                    {id: 0, secondProperty: true, thirdProperty: 2, more: {another: 'test'}},
-                    {id: 1, secondProperty: true, thirdProperty: 3, more: {another: 'test'}},
-                    {id: 2, secondProperty: true, thirdProperty: 1, more: {another: 'test'}}
-                ]);
-
-                expect(scope.dataCollection).toEqual([
-                    {id: 0, secondProperty: true, thirdProperty: 2, more: {another: 'test'}},
-                    {id: 1, secondProperty: true, thirdProperty: 3, more: {another: 'test'}},
-                    {id: 2, secondProperty: true, thirdProperty: 1, more: {another: 'test'}}
-                ]);
-            });
-
-            it('should "create" a new property on the proper dataRow ', function () {
-                ctrl.updateDataRow(scope.displayedCollection[0], 'newProp', 'value');
-                expect(scope.displayedCollection).toEqual([
-                    {id: 0, secondProperty: true, thirdProperty: 2, more: {another: 'test'}, newProp: 'value'},
-                    {id: 1, secondProperty: true, thirdProperty: 3, more: {another: 'test'}},
-                    {id: 2, secondProperty: true, thirdProperty: 1, more: {another: 'test'}}
-                ]);
-
-                expect(scope.dataCollection).toEqual([
-                    {id: 0, secondProperty: true, thirdProperty: 2, more: {another: 'test'}, newProp: 'value'},
-                    {id: 1, secondProperty: true, thirdProperty: 3, more: {another: 'test'}},
-                    {id: 2, secondProperty: true, thirdProperty: 1, more: {another: 'test'}}
-                ]);
-            });
-
-            it('should work on multilevel object', function () {
-                ctrl.updateDataRow(scope.displayedCollection[0], 'more.another', 'validateTest');
-                expect(scope.displayedCollection).toEqual([
-                    {id: 0, secondProperty: true, thirdProperty: 2, more: {another: 'validateTest'}},
-                    {id: 1, secondProperty: true, thirdProperty: 3, more: {another: 'test'}},
-                    {id: 2, secondProperty: true, thirdProperty: 1, more: {another: 'test'}}
-                ]);
-
-                expect(scope.dataCollection).toEqual([
-                    {id: 0, secondProperty: true, thirdProperty: 2, more: {another: 'validateTest'}},
-                    {id: 1, secondProperty: true, thirdProperty: 3, more: {another: 'test'}},
-                    {id: 2, secondProperty: true, thirdProperty: 1, more: {another: 'test'}}
-                ]);
-            });
-
-            it('should emit an event', inject(function ($rootScope) {
-                var eventHandler = {
-                    listener: function (event, args) {
-                        expect(args.item).toEqual(scope.displayedCollection[0]);
-                    }
-                };
-                spyOn(eventHandler, 'listener');
-                $rootScope.$on('updateDataRow', eventHandler.listener);
-                ctrl.updateDataRow(scope.displayedCollection[0], 'id', 2);
-                expect(eventHandler.listener).toHaveBeenCalled();
-            }));
-        });
-    });
-});
-
-
-

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/UtilitiesSpec.js
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/UtilitiesSpec.js b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/UtilitiesSpec.js
deleted file mode 100644
index b4cc66d..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/UtilitiesSpec.js
+++ /dev/null
@@ -1,219 +0,0 @@
-describe('utilityModule Module', function () {
-
-    var array;
-
-    beforeEach(module('smartTable.utilities', function () {
-
-    }));
-
-
-    describe('Array utilities', function () {
-
-        beforeEach(function () {
-            array = [
-                {id: 0},
-                {id: 1},
-                {id: 2}
-            ];
-        });
-
-        it('should add item at proper index or put it at the end', inject(function (ArrayUtility) {
-
-            var toInsert = {};
-            //insert at index
-            ArrayUtility.insertAt(array, 1, toInsert);
-            expect(array.length).toBe(4);
-            expect(array[1]).toBe(toInsert);
-
-            //at the end
-            ArrayUtility.insertAt(array, -4, toInsert);
-            expect(array.length).toBe(5);
-            expect(array[4]).toBe(toInsert);
-
-            ArrayUtility.insertAt(array, 666, toInsert);
-            expect(array.length).toBe(6);
-            expect(array[5]).toBe(toInsert);
-
-            ArrayUtility.insertAt(array, 'sfdsf', toInsert);
-            expect(array.length).toBe(7);
-            expect(array[6]).toBe(toInsert);
-        }));
-
-        it('should remove item at proper index or do nothing', inject(function (ArrayUtility) {
-
-            var removedElement = ArrayUtility.removeAt(array, 1);
-            expect(array.length).toBe(2);
-            expect(removedElement).toEqual({id: 1});
-
-            ArrayUtility.removeAt(array, -1);
-            expect(array.length).toBe(2);
-
-            ArrayUtility.removeAt(array, 666);
-            expect(array.length).toBe(2);
-
-            ArrayUtility.removeAt(array, '2323');
-            expect(array.length).toBe(2);
-        }));
-
-        it('should move an item from a lower index to an higher one', inject(function (ArrayUtility) {
-            ArrayUtility.moveAt(array, 0, 2);
-            expect(array.length).toBe(3);
-            expect(array[0].id).toBe(1);
-            expect(array[2].id).toBe(0);
-        }));
-
-        it('should move an item from a higher index to an lower one', inject(function (ArrayUtility) {
-            ArrayUtility.moveAt(array, 2, 1);
-            expect(array.length).toBe(3);
-            expect(array[1].id).toBe(2);
-            expect(array[2].id).toBe(1);
-        }));
-
-        it('should not move any item', inject(function (ArrayUtility) {
-            ArrayUtility.moveAt(array, -1, 2);
-            expect(array).toEqual([
-                {id: 0},
-                {id: 1},
-                {id: 2}
-            ]);
-            ArrayUtility.moveAt(array, 1, 666);
-            expect(array).toEqual([
-                {id: 0},
-                {id: 1},
-                {id: 2}
-            ]);
-        }));
-
-        describe('sort array', function () {
-            var
-                predicate,
-                reverse;
-
-            beforeEach(function () {
-                predicate = '';
-                reverse = '';
-                array = [
-                    {id: 0, name: 'laurent'},
-                    {id: 2, name: 'blandine'},
-                    {id: 1, name: 'francoise'}
-                ];
-            });
-
-
-            it('should return the array as it was if now algorithm is provided', inject(function (ArrayUtility) {
-                expect(ArrayUtility.sort(array, 'whaterver', predicate, reverse)).toEqual(array);
-            }));
-
-            it('should sort array with provided algorithm', inject(function ($filter, ArrayUtility) {
-                expect(ArrayUtility.sort(array, $filter('orderBy'), predicate, reverse)).toEqual($filter('orderBy')(array, predicate, false));
-                expect(ArrayUtility.sort(array), $filter('orderBy'), predicate, reverse).toEqual(array); //(no predicate has been provided
-
-                predicate = 'id';
-                expect(ArrayUtility.sort(array, $filter('orderBy'), predicate, reverse)).toEqual($filter('orderBy')(array, 'id', false));
-                expect(ArrayUtility.sort(array, $filter('orderBy'), predicate, reverse)).toEqual([
-                    {id: 0, name: 'laurent'},
-                    {id: 1, name: 'francoise'},
-                    {id: 2, name: 'blandine'}
-                ]);
-
-                var sortMock = {
-                    sortAlgo: function (array, predicate, reverse) {
-                        return array;
-                    }
-                };
-                predicate = 'id';
-                reverse = true;
-                spyOn(sortMock, 'sortAlgo');
-                ArrayUtility.sort(array, sortMock.sortAlgo, predicate, reverse);
-                expect(sortMock.sortAlgo).toHaveBeenCalledWith(array, 'id', true);
-
-            }));
-
-            it('should sort with reverse =true only if it is explicit set', inject(function ($filter, ArrayUtility) {
-                predicate = 'id';
-                expect(ArrayUtility.sort(array, $filter('orderBy'), predicate, reverse)).toEqual($filter('orderBy')(array, 'id', false));
-                expect(ArrayUtility.sort(array, $filter('orderBy'), predicate, reverse)).toEqual([
-                    {id: 0, name: 'laurent'},
-                    {id: 1, name: 'francoise'},
-                    {id: 2, name: 'blandine'}
-                ]);
-                reverse = 'whatever';
-                expect(ArrayUtility.sort(array, $filter('orderBy'), predicate, reverse)).toEqual($filter('orderBy')(array, 'id', false));
-                expect(ArrayUtility.sort(array, $filter('orderBy'), predicate, reverse)).toEqual([
-                    {id: 0, name: 'laurent'},
-                    {id: 1, name: 'francoise'},
-                    {id: 2, name: 'blandine'}
-                ]);
-                reverse = true;
-                expect(ArrayUtility.sort(array, $filter('orderBy'), predicate, reverse)).toEqual($filter('orderBy')(array, 'id', true));
-                expect(ArrayUtility.sort(array, $filter('orderBy'), predicate, reverse)).toEqual([
-                    {id: 2, name: 'blandine'},
-                    {id: 1, name: 'francoise'},
-                    {id: 0, name: 'laurent'}
-                ]);
-            }));
-        });
-        describe('filter utility', function () {
-            var predicate;
-            beforeEach(function () {
-                predicate = '';
-                array = [
-                    {id: 0, name: 'laurent'},
-                    {id: 2, name: 'blandine'},
-                    {id: 1, name: 'francoise'}
-                ];
-            });
-
-            it('should use provided algorithm or return input array', inject(function ($filter, ArrayUtility) {
-                expect(ArrayUtility.filter(array, 'whatever', predicate)).toEqual(array);
-                var filterMock = {
-                    filterAlgo: function (array, predicate) {
-                        return [array[0]];
-                    }
-                };
-                spyOn(filterMock, 'filterAlgo').andCallThrough();
-                predicate = 'whatever';
-                var returnedArray = ArrayUtility.filter(array, filterMock.filterAlgo, predicate);
-                expect(filterMock.filterAlgo).toHaveBeenCalledWith(array, 'whatever');
-                expect(returnedArray.length).toBe(1);
-                expect(returnedArray).toEqual([
-                    {id: 0, name: 'laurent'}
-                ]);
-            }));
-        });
-
-        describe('from/To', function () {
-            beforeEach(function () {
-                array = [
-                    {id: 0},
-                    {id: 1},
-                    {id: 2},
-                    {id: 3},
-                    {id: 4}
-                ];
-            });
-
-            it('should return a part of the array', inject(function (ArrayUtility) {
-                var part = ArrayUtility.fromTo(array, 1, 3);
-                expect(part.length).toBe(3);
-                expect(part[0].id).toBe(1);
-                expect(part[1].id).toBe(2);
-                expect(part[2].id).toBe(3);
-
-                part = ArrayUtility.fromTo(array, 3, 4);
-                expect(part.length).toBe(2);
-                expect(part[0].id).toBe(3);
-                expect(part[1].id).toBe(4);
-
-                part = ArrayUtility.fromTo(array, -2, 2);
-                expect(part.length).toBe(2);
-                expect(part[0].id).toBe(0);
-                expect(part[1].id).toBe(1);
-
-                part = ArrayUtility.fromTo(array, 1, -1);
-                expect(part.length).toBe(0);
-            }));
-        });
-
-    });
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/directivesSpec.js
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/directivesSpec.js b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/directivesSpec.js
deleted file mode 100644
index d5db5c2..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/directivesSpec.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-/* jasmine specs for directives go here */
-
-describe('directives', function () {
-
-});

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/filtersSpec.js
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/filtersSpec.js b/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/filtersSpec.js
deleted file mode 100644
index 8e9c271..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/smart-table/test/unit/filtersSpec.js
+++ /dev/null
@@ -1,78 +0,0 @@
-describe('filter', function () {
-
-    beforeEach(module('smartTable.filters'));
-
-    describe('format filter', function () {
-
-        var
-            filter,
-            format,
-            input,
-            parameter;
-
-        beforeEach(inject(function ($injector) {
-            filter = $injector.get('$filter');
-            format = filter('format');
-        }));
-
-        afterEach(function () {
-            input = '';
-            parameter = '';
-        });
-
-        it('should define format', function () {
-            expect(format).toBeDefined();
-        });
-
-        it('should return the input value', function () {
-            input = 'input';
-            expect(format(input)).toEqual(input);
-        });
-
-        it('should behave like date filter', function () {
-            input = new Date('2013/04/20');
-            expect(format(input, 'date', parameter)).toEqual(filter('date')(input, parameter));
-            parameter = 'MMMM';
-            expect(format(input, 'date', parameter)).toEqual(filter('date')(input, parameter));
-        });
-
-        it('should behave like currency filter', function () {
-            input = 2000;
-            expect(format(input, 'currency', parameter)).toEqual(filter('currency')(input, parameter));
-            parameter = '$';
-            expect(format(input, 'currency', parameter)).toEqual(filter('currency')(input), parameter);
-        });
-
-        it('should behave like json filter', function () {
-            input = {prop: 'value'};
-            expect(format(input, 'json')).toEqual(filter('json')(input));
-        });
-
-        it('should behave like lowercase filter', function () {
-            input = 'SldsrRS';
-            expect(format(input, 'lowercase', parameter)).toEqual(filter('lowercase')(input, parameter));
-        });
-
-        it('should behave like uppercase filter', function () {
-            input = 'SldsrRS';
-            expect(format(input, 'uppercase', parameter)).toEqual(filter('uppercase')(input, parameter));
-        });
-
-        it('should behave like number filter', function () {
-            input = 3434.34343;
-            expect(format(input, 'number', parameter)).toEqual(filter('number')(input, parameter));
-            parameter = 2;
-            expect(format(input, 'number', parameter)).toEqual(filter('number')(input, parameter));
-        });
-
-        it('should use the provided function', function () {
-            //will return the nth letter for example (dummy impl : no check on parameters etc)
-            var customFunction = function (value, parameter) {
-                return value[parameter - 1];
-            };
-            input = 'abcdefghij';
-            expect(format(input, customFunction, 2)).toEqual('b');
-            expect(format(input, customFunction, 3)).toEqual('c');
-        })
-    });
-});

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/underscore/.bower.json
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/underscore/.bower.json b/3rdparty/javascript/scheduler/assets/bower_components/underscore/.bower.json
deleted file mode 100644
index 827f875..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/underscore/.bower.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "name": "underscore",
-  "version": "1.6.0",
-  "main": "underscore.js",
-  "keywords": [
-    "util",
-    "functional",
-    "server",
-    "client",
-    "browser"
-  ],
-  "ignore": [
-    "underscore-min.js",
-    "docs",
-    "test",
-    "*.yml",
-    "*.map",
-    "CNAME",
-    "index.html",
-    "favicon.ico",
-    "CONTRIBUTING.md"
-  ],
-  "homepage": "https://github.com/jashkenas/underscore",
-  "_release": "1.6.0",
-  "_resolution": {
-    "type": "version",
-    "tag": "1.6.0",
-    "commit": "1f4bf626f23a99f7a676f5076dc1b1475554c8f7"
-  },
-  "_source": "git://github.com/jashkenas/underscore.git",
-  "_target": "~1.6.0",
-  "_originalSource": "underscore",
-  "_direct": true
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/underscore/.editorconfig
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/underscore/.editorconfig b/3rdparty/javascript/scheduler/assets/bower_components/underscore/.editorconfig
deleted file mode 100644
index 8e92071..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/underscore/.editorconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-# This file is for unifying the coding style for different editors and IDEs
-# editorconfig.org
-
-root = true
-
-[*]
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[**.{js,json,html}]
-indent_style = space
-indent_size = 2

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/underscore/.gitignore
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/underscore/.gitignore b/3rdparty/javascript/scheduler/assets/bower_components/underscore/.gitignore
deleted file mode 100644
index 029616c..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/underscore/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-raw
-node_modules

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/underscore/LICENSE
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/underscore/LICENSE b/3rdparty/javascript/scheduler/assets/bower_components/underscore/LICENSE
deleted file mode 100644
index 0d6b873..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/underscore/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative
-Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/underscore/README.md
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/underscore/README.md b/3rdparty/javascript/scheduler/assets/bower_components/underscore/README.md
deleted file mode 100644
index c2ba259..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/underscore/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-                       __
-                      /\ \                                                         __
-     __  __    ___    \_\ \     __   _ __   ____    ___    ___   _ __    __       /\_\    ____
-    /\ \/\ \ /' _ `\  /'_  \  /'__`\/\  __\/ ,__\  / ___\ / __`\/\  __\/'__`\     \/\ \  /',__\
-    \ \ \_\ \/\ \/\ \/\ \ \ \/\  __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\  __/  __  \ \ \/\__, `\
-     \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/
-      \/___/  \/_/\/_/\/__,_ /\/____/ \/_/ \/___/  \/____/\/___/  \/_/ \/____/\/_//\ \_\ \/___/
-                                                                                  \ \____/
-                                                                                   \/___/
-
-Underscore.js is a utility-belt library for JavaScript that provides
-support for the usual functional suspects (each, map, reduce, filter...)
-without extending any core JavaScript objects.
-
-For Docs, License, Tests, and pre-packed downloads, see:
-http://underscorejs.org
-
-Underscore is an open-sourced component of DocumentCloud:
-https://github.com/documentcloud
-
-Many thanks to our contributors:
-https://github.com/jashkenas/underscore/contributors

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/underscore/bower.json
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/underscore/bower.json b/3rdparty/javascript/scheduler/assets/bower_components/underscore/bower.json
deleted file mode 100644
index 6c6bbda..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/underscore/bower.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "underscore",
-  "version": "1.6.0",
-  "main": "underscore.js",
-  "keywords": ["util", "functional", "server", "client", "browser"],
-  "ignore" : ["underscore-min.js", "docs", "test", "*.yml", "*.map",
-              "CNAME", "index.html", "favicon.ico", "CONTRIBUTING.md"]
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/underscore/component.json
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/underscore/component.json b/3rdparty/javascript/scheduler/assets/bower_components/underscore/component.json
deleted file mode 100644
index bb1775e..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/underscore/component.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "name"          : "underscore",
-  "description"   : "JavaScript's functional programming helper library.",
-  "keywords"      : ["util", "functional", "server", "client", "browser"],
-  "repo"          : "jashkenas/underscore",
-  "main"          : "underscore.js",
-  "scripts"       : ["underscore.js"],
-  "version"       : "1.6.0",
-  "license"       : "MIT"
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/96c834a2/3rdparty/javascript/scheduler/assets/bower_components/underscore/package.json
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/scheduler/assets/bower_components/underscore/package.json b/3rdparty/javascript/scheduler/assets/bower_components/underscore/package.json
deleted file mode 100644
index 86423ed..0000000
--- a/3rdparty/javascript/scheduler/assets/bower_components/underscore/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-  "name"          : "underscore",
-  "description"   : "JavaScript's functional programming helper library.",
-  "homepage"      : "http://underscorejs.org",
-  "keywords"      : ["util", "functional", "server", "client", "browser"],
-  "author"        : "Jeremy Ashkenas <je...@documentcloud.org>",
-  "repository"    : {"type": "git", "url": "git://github.com/jashkenas/underscore.git"},
-  "main"          : "underscore.js",
-  "version"       : "1.6.0",
-  "devDependencies": {
-    "docco": "0.6.x",
-    "phantomjs": "1.9.0-1",
-    "uglify-js": "2.4.x"
-  },
-  "scripts": {
-    "test": "phantomjs test/vendor/runner.js test/index.html?noglobals=true",
-    "build": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/    .*/\" -m --source-map underscore-min.map -o underscore-min.js",
-    "doc": "docco underscore.js"
-  },
-  "licenses": [
-    {
-      "type": "MIT",
-      "url": "https://raw.github.com/jashkenas/underscore/master/LICENSE"
-    }
-  ],
-  "files"         : ["underscore.js", "underscore-min.js", "LICENSE"]
-}