You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by ke...@apache.org on 2014/10/08 21:58:34 UTC
[12/51] [partial] Serve HTTP assets out of a standard classpath root.
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/05129ed5/3rdparty/javascript/bower_components/smart-table/example-app/index.html
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/bower_components/smart-table/example-app/index.html b/3rdparty/javascript/bower_components/smart-table/example-app/index.html
deleted file mode 100644
index 7da224f..0000000
--- a/3rdparty/javascript/bower_components/smart-table/example-app/index.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!doctype html>
-<html lang="en" ng-app="myApp">
-<head>
- <meta charset="utf-8">
- <title>My AngularJS App</title>
- <link rel="stylesheet" href="css/app.css"/>
- <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
-</head>
-<body ng-controller="mainCtrl">
-<smart-table class="table table-striped" table-title="Smart Table example" columns="columnCollection"
- rows="rowCollection" config="globalConfig"></smart-table>
-
-<!-- In production use:
-<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.4/angular.min.js"></script>
--->
-<script src="lib/angular/angular.min.js"></script>
-<script src="js/Smart-Table.debug.js"></script>
-<script src="js/app.js"></script>
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/05129ed5/3rdparty/javascript/bower_components/smart-table/example-app/js/Smart-Table.debug.js
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/bower_components/smart-table/example-app/js/Smart-Table.debug.js b/3rdparty/javascript/bower_components/smart-table/example-app/js/Smart-Table.debug.js
deleted file mode 100644
index e453e7d..0000000
--- a/3rdparty/javascript/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) {
- for (var i = 0, l = scope.columnCollection.length; i < l; i++) {
- ctrl.insertColumn(scope.columnCollection[i]);
- }
- } else {
- //or guess data Structure
- if (scope.dataCollection && scope.dataCollection.length > 0) {
- templateObject = scope.dataCollection[0];
- angular.forEach(templateObject, function (value, key) {
- if (key[0] != '$') {
- ctrl.insertColumn({label: key, map: key});
- }
- });
- }
- }
- }, true);
-
- //if item are added or removed into the data model from outside the grid
- scope.$watch('dataCollection.length', function (oldValue, newValue) {
- if (oldValue !== newValue) {
- ctrl.sortBy();//it will trigger the refresh... some hack ?
- }
- });
- }
- };
- }])
- //just to be able to select the row
- .directive('smartTableDataRow', function () {
-
- return {
- require: '^smartTable',
- restrict: 'C',
- link: function (scope, element, attr, ctrl) {
-
- var _config;
- if ((_config = scope.config) != null) {
- if (typeof _config.rowFunction === "function") {
- _config.rowFunction(scope, element, attr, ctrl);
- }
- }
-
- element.bind('click', function () {
- scope.$apply(function () {
- ctrl.toggleSelection(scope.dataRow);
- })
- });
- }
- };
- })
- //header cell with sorting functionality or put a checkbox if this column is a selection column
- .directive('smartTableHeaderCell',function () {
- return {
- restrict: 'C',
- require: '^smartTable',
- link: function (scope, element, attr, ctrl) {
- element.bind('click', function () {
- scope.$apply(function () {
- ctrl.sortBy(scope.column);
- });
- })
- }
- };
- }).directive('smartTableSelectAll', function () {
- return {
- restrict: 'C',
- require: '^smartTable',
- link: function (scope, element, attr, ctrl) {
- element.bind('click', function (event) {
- ctrl.toggleSelectionAll(element[0].checked === true);
- })
- }
- };
- })
- //credit to Valentyn shybanov : http://stackoverflow.com/questions/14544741/angularjs-directive-to-stoppropagation
- .directive('stopEvent', function () {
- return {
- restrict: 'A',
- link: function (scope, element, attr) {
- element.bind(attr.stopEvent, function (e) {
- e.stopPropagation();
- });
- }
- }
- })
- //the global filter
- .directive('smartTableGlobalSearch', ['templateUrlList', function (templateList) {
- return {
- restrict: 'C',
- require: '^smartTable',
- scope: {
- columnSpan: '@'
- },
- templateUrl: templateList.smartTableGlobalSearch,
- replace: false,
- link: function (scope, element, attr, ctrl) {
-
- scope.searchValue = '';
-
- scope.$watch('searchValue', function (value) {
- //todo perf improvement only filter on blur ?
- ctrl.search(value);
- });
- }
- }
- }])
- //a customisable cell (see templateUrl) and editable
- //TODO check with the ng-include strategy
- .directive('smartTableDataCell', ['$filter', '$http', '$templateCache', '$compile', '$parse', function (filter, http, templateCache, compile, parse) {
- return {
- restrict: 'C',
- link: function (scope, element) {
- var
- column = scope.column,
- isSimpleCell = !column.isEditable,
- row = scope.dataRow,
- format = filter('format'),
- getter = parse(column.map),
- childScope;
-
- //can be useful for child directives
- scope.$watch('dataRow', function (value) {
- scope.formatedValue = format(getter(row), column.formatFunction, column.formatParameter);
- if (isSimpleCell === true) {
- element.html(scope.formatedValue);
- }
- }, true);
-
- function defaultContent() {
- if (column.isEditable) {
- element.html('<div editable-cell="" row="dataRow" column="column" type="column.type"></div>');
- compile(element.contents())(scope);
- } else {
- element.html(scope.formatedValue);
- }
- }
-
- scope.$watch('column.cellTemplateUrl', function (value) {
-
- if (value) {
- //we have to load the template (and cache it) : a kind of ngInclude
- http.get(value, {cache: templateCache}).success(function (response) {
-
- isSimpleCell = false;
-
- //create a scope
- childScope = scope.$new();
- //compile the element with its new content and new scope
- element.html(response);
- compile(element.contents())(childScope);
- }).error(defaultContent);
-
- } else {
- defaultContent();
- }
- });
- }
- };
- }])
- //directive that allows type to be bound in input
- .directive('inputType', function () {
- return {
- restrict: 'A',
- priority: 1,
- link: function (scope, ielement, iattr) {
- //force the type to be set before inputDirective is called
- var type = scope.$eval(iattr.type);
- iattr.$set('type', type);
- }
- };
- })
- //an editable content in the context of a cell (see row, column)
- .directive('editableCell', ['templateUrlList', '$parse', function (templateList, parse) {
- return {
- restrict: 'EA',
- require: '^smartTable',
- templateUrl: templateList.editableCell,
- scope: {
- row: '=',
- column: '=',
- type: '='
- },
- replace: true,
- link: function (scope, element, attrs, ctrl) {
- var form = angular.element(element.children()[1]),
- input = angular.element(form.children()[0]),
- getter = parse(scope.column.map);
-
- //init values
- scope.isEditMode = false;
- scope.$watch('row', function () {
- scope.value = getter(scope.row);
- }, true);
-
-
- scope.submit = function () {
- //update model if valid
- if (scope.myForm.$valid === true) {
- ctrl.updateDataRow(scope.row, scope.column.map, scope.value);
- ctrl.sortBy();//it will trigger the refresh... (ie it will sort, filter, etc with the new value)
- }
- scope.toggleEditMode();
- };
-
- scope.toggleEditMode = function () {
- scope.value = getter(scope.row);
- scope.isEditMode = scope.isEditMode !== true;
- };
-
- scope.$watch('isEditMode', function (newValue) {
- if (newValue === true) {
- input[0].select();
- input[0].focus();
- }
- });
-
- input.bind('blur', function () {
- scope.$apply(function () {
- scope.submit();
- });
- });
- }
- };
- }]);
-})(angular);
-
-/* Filters */
-(function (angular) {
- "use strict";
- angular.module('smartTable.filters', []).
- constant('DefaultFilters', ['currency', 'date', 'json', 'lowercase', 'number', 'uppercase']).
- filter('format', ['$filter', 'DefaultFilters', function (filter, defaultfilters) {
- return function (value, formatFunction, filterParameter) {
-
- var returnFunction;
-
- if (formatFunction && angular.isFunction(formatFunction)) {
- returnFunction = formatFunction;
- } else {
- returnFunction = defaultfilters.indexOf(formatFunction) !== -1 ? filter(formatFunction) : function (value) {
- return value;
- };
- }
- return returnFunction(value, filterParameter);
- };
- }]);
-})(angular);
-
-
-/*table module */
-
-(function (angular) {
- "use strict";
- angular.module('smartTable.table', ['smartTable.column', 'smartTable.utilities', 'smartTable.directives', 'smartTable.filters', 'ui.bootstrap.pagination.smartTable'])
- .constant('DefaultTableConfiguration', {
- selectionMode: 'none',
- isGlobalSearchActivated: false,
- displaySelectionCheckbox: false,
- isPaginationEnabled: true,
- itemsByPage: 10,
- maxSize: 5,
-
- //just to remind available option
- sortAlgorithm: '',
- filterAlgorithm: ''
- })
- .controller('TableCtrl', ['$scope', 'Column', '$filter', '$parse', 'ArrayUtility', 'DefaultTableConfiguration', function (scope, Column, filter, parse, arrayUtility, defaultConfig) {
-
- scope.columns = [];
- scope.dataCollection = scope.dataCollection || [];
- scope.displayedCollection = []; //init empty array so that if pagination is enabled, it does not spoil performances
- scope.numberOfPages = calculateNumberOfPages(scope.dataCollection);
- scope.currentPage = 1;
- scope.holder = {isAllSelected: false};
-
- var predicate = {},
- lastColumnSort;
-
- function isAllSelected() {
- var i,
- l = scope.displayedCollection.length;
- for (i = 0; i < l; i++) {
- if (scope.displayedCollection[i].isSelected !== true) {
- return false;
- }
- }
- return true;
- }
-
- function calculateNumberOfPages(array) {
-
- if (!angular.isArray(array) || array.length === 0 || scope.itemsByPage < 1) {
- return 1;
- }
- return Math.ceil(array.length / scope.itemsByPage);
- }
-
- function sortDataRow(array, column) {
- var sortAlgo = (scope.sortAlgorithm && angular.isFunction(scope.sortAlgorithm)) === true ? scope.sortAlgorithm : filter('orderBy');
- if (column && !(column.reverse === undefined)) {
- return arrayUtility.sort(array, sortAlgo, column.sortPredicate, column.reverse);
- } else {
- return array;
- }
- }
-
- function selectDataRow(array, selectionMode, index, select) {
-
- var dataRow, oldValue;
-
- if ((!angular.isArray(array)) || (selectionMode !== 'multiple' && selectionMode !== 'single')) {
- return;
- }
-
- if (index >= 0 && index < array.length) {
- dataRow = array[index];
- if (selectionMode === 'single') {
- //unselect all the others
- for (var i = 0, l = array.length; i < l; i++) {
- oldValue = array[i].isSelected;
- array[i].isSelected = false;
- if (oldValue === true) {
- scope.$emit('selectionChange', {item: array[i]});
- }
- }
- }
- dataRow.isSelected = select;
- scope.holder.isAllSelected = isAllSelected();
- scope.$emit('selectionChange', {item: dataRow});
- }
- }
-
- /**
- * set the config (config parameters will be available through scope
- * @param config
- */
- this.setGlobalConfig = function (config) {
- angular.extend(scope, defaultConfig, config);
- };
-
- /**
- * change the current page displayed
- * @param page
- */
- this.changePage = function (page) {
- var oldPage = scope.currentPage;
- if (angular.isNumber(page.page)) {
- scope.currentPage = page.page;
- scope.displayedCollection = this.pipe(scope.dataCollection);
- scope.holder.isAllSelected = isAllSelected();
- scope.$emit('changePage', {oldValue: oldPage, newValue: scope.currentPage});
- }
- };
-
- /**
- * set column as the column used to sort the data (if it is already the case, it will change the reverse value)
- * @method sortBy
- * @param column
- */
- this.sortBy = function (column) {
- var index = scope.columns.indexOf(column);
- if (index !== -1) {
- if (column.isSortable === true) {
- // reset the last column used
- if (lastColumnSort && lastColumnSort !== column) {
- lastColumnSort.reverse = undefined;
- }
- column.sortPredicate = column.sortPredicate || column.map;
-
- if (column.reverse === undefined) {
- column.reverse = false;
- }
- else if (column.reverse === false) {
- column.reverse = true;
- }
- else {
- column.reverse = undefined;
- }
-
- lastColumnSort = column;
- }
- }
-
- scope.displayedCollection = this.pipe(scope.dataCollection);
- };
-
- /**
- * set the filter predicate used for searching
- * @param input
- * @param column
- */
- this.search = function (input, column) {
-
- //update column and global predicate
- if (column && scope.columns.indexOf(column) !== -1) {
- predicate[column.map] = input;
- } else {
- predicate = {$: input};
- }
- scope.displayedCollection = this.pipe(scope.dataCollection);
- };
-
- /**
- * combine sort, search and limitTo operations on an array,
- * @param array
- * @returns Array, an array result of the operations on input array
- */
- this.pipe = function (array) {
- var filterAlgo = (scope.filterAlgorithm && angular.isFunction(scope.filterAlgorithm)) === true ? scope.filterAlgorithm : filter('filter'),
- output;
- //filter and sort are commutative
- output = sortDataRow(arrayUtility.filter(array, filterAlgo, predicate), lastColumnSort);
- scope.numberOfPages = calculateNumberOfPages(output);
- return scope.isPaginationEnabled ? arrayUtility.fromTo(output, (scope.currentPage - 1) * scope.itemsByPage, scope.itemsByPage) : output;
- };
-
- /*////////////
- Column API
- ///////////*/
-
-
- /**
- * insert a new column in scope.collection at index or push at the end if no index
- * @param columnConfig column configuration used to instantiate the new Column
- * @param index where to insert the column (at the end if not specified)
- */
- this.insertColumn = function (columnConfig, index) {
- var column = new Column(columnConfig);
- arrayUtility.insertAt(scope.columns, index, column);
- };
-
- /**
- * remove the column at columnIndex from scope.columns
- * @param columnIndex index of the column to be removed
- */
- this.removeColumn = function (columnIndex) {
- arrayUtility.removeAt(scope.columns, columnIndex);
- };
-
- /**
- * move column located at oldIndex to the newIndex in scope.columns
- * @param oldIndex index of the column before it is moved
- * @param newIndex index of the column after the column is moved
- */
- this.moveColumn = function (oldIndex, newIndex) {
- arrayUtility.moveAt(scope.columns, oldIndex, newIndex);
- };
-
- /**
- * remove all columns
- */
- this.clearColumns = function () {
- scope.columns.length = 0;
- };
-
- /*///////////
- ROW API
- */
-
- /**
- * select or unselect the item of the displayedCollection with the selection mode set in the scope
- * @param dataRow
- */
- this.toggleSelection = function (dataRow) {
- var index = scope.dataCollection.indexOf(dataRow);
- if (index !== -1) {
- selectDataRow(scope.dataCollection, scope.selectionMode, index, dataRow.isSelected !== true);
- }
- };
-
- /**
- * select/unselect all the currently displayed rows
- * @param value if true select, else unselect
- */
- this.toggleSelectionAll = function (value) {
- var i = 0,
- l = scope.displayedCollection.length;
-
- if (scope.selectionMode !== 'multiple') {
- return;
- }
- for (; i < l; i++) {
- selectDataRow(scope.displayedCollection, scope.selectionMode, i, value === true);
- }
- };
-
- /**
- * remove the item at index rowIndex from the displayed collection
- * @param rowIndex
- * @returns {*} item just removed or undefined
- */
- this.removeDataRow = function (rowIndex) {
- var toRemove = arrayUtility.removeAt(scope.displayedCollection, rowIndex);
- arrayUtility.removeAt(scope.dataCollection, scope.dataCollection.indexOf(toRemove));
- };
-
- /**
- * move an item from oldIndex to newIndex in displayedCollection
- * @param oldIndex
- * @param newIndex
- */
- this.moveDataRow = function (oldIndex, newIndex) {
- arrayUtility.moveAt(scope.displayedCollection, oldIndex, newIndex);
- };
-
- /**
- * update the model, it can be a non existing yet property
- * @param dataRow the dataRow to update
- * @param propertyName the property on the dataRow ojbect to update
- * @param newValue the value to set
- */
- this.updateDataRow = function (dataRow, propertyName, newValue) {
- var index = scope.displayedCollection.indexOf(dataRow),
- getter = parse(propertyName),
- setter = getter.assign,
- oldValue;
- if (index !== -1) {
- oldValue = getter(scope.displayedCollection[index]);
- if (oldValue !== newValue) {
- setter(scope.displayedCollection[index], newValue);
- scope.$emit('updateDataRow', {item: scope.displayedCollection[index]});
- }
- }
- };
- }]);
-})(angular);
-
-
-
-angular.module('smartTable.templates', ['partials/defaultCell.html', 'partials/defaultHeader.html', 'partials/editableCell.html', 'partials/globalSearchCell.html', 'partials/pagination.html', 'partials/selectAllCheckbox.html', 'partials/selectionCheckbox.html', 'partials/smartTable.html']);
-
-angular.module("partials/defaultCell.html", []).run(["$templateCache", function($templateCache) {
- $templateCache.put("partials/defaultCell.html",
- "{{formatedValue}}");
-}]);
-
-angular.module("partials/defaultHeader.html", []).run(["$templateCache", function($templateCache) {
- $templateCache.put("partials/defaultHeader.html",
- "<span class=\"header-content\" ng-class=\"{'sort-ascent':column.reverse==false,'sort-descent':column.reverse==true}\">{{column.label}}</span>");
-}]);
-
-angular.module("partials/editableCell.html", []).run(["$templateCache", function($templateCache) {
- $templateCache.put("partials/editableCell.html",
- "<div ng-dblclick=\"isEditMode || toggleEditMode($event)\">\n" +
- " <span ng-hide=\"isEditMode\">{{value | format:column.formatFunction:column.formatParameter}}</span>\n" +
- "\n" +
- " <form ng-submit=\"submit()\" ng-show=\"isEditMode\" name=\"myForm\">\n" +
- " <input name=\"myInput\" ng-model=\"value\" type=\"type\" input-type/>\n" +
- " </form>\n" +
- "</div>");
-}]);
-
-angular.module("partials/globalSearchCell.html", []).run(["$templateCache", function($templateCache) {
- $templateCache.put("partials/globalSearchCell.html",
- "<label>Search :</label>\n" +
- "<input type=\"text\" ng-model=\"searchValue\"/>");
-}]);
-
-angular.module("partials/pagination.html", []).run(["$templateCache", function($templateCache) {
- $templateCache.put("partials/pagination.html",
- "<div class=\"pagination\">\n" +
- " <ul class=\"pagination\">\n" +
- " <li ng-repeat=\"page in pages\" ng-class=\"{active: page.active, disabled: page.disabled}\"><a\n" +
- " ng-click=\"selectPage(page.number)\">{{page.text}}</a></li>\n" +
- " </ul>\n" +
- "</div> ");
-}]);
-
-angular.module("partials/selectAllCheckbox.html", []).run(["$templateCache", function($templateCache) {
- $templateCache.put("partials/selectAllCheckbox.html",
- "<input class=\"smart-table-select-all\" type=\"checkbox\" ng-model=\"holder.isAllSelected\"/>");
-}]);
-
-angular.module("partials/selectionCheckbox.html", []).run(["$templateCache", function($templateCache) {
- $templateCache.put("partials/selectionCheckbox.html",
- "<input type=\"checkbox\" ng-model=\"dataRow.isSelected\" stop-event=\"click\"/>");
-}]);
-
-angular.module("partials/smartTable.html", []).run(["$templateCache", function($templateCache) {
- $templateCache.put("partials/smartTable.html",
- "<table class=\"smart-table\">\n" +
- " <thead>\n" +
- " <tr class=\"smart-table-global-search-row\" ng-show=\"isGlobalSearchActivated\">\n" +
- " <td class=\"smart-table-global-search\" column-span=\"{{columns.length}}\" colspan=\"{{columnSpan}}\">\n" +
- " </td>\n" +
- " </tr>\n" +
- " <tr class=\"smart-table-header-row\">\n" +
- " <th ng-repeat=\"column in columns\" ng-include=\"column.headerTemplateUrl\"\n" +
- " class=\"smart-table-header-cell {{column.headerClass}}\" scope=\"col\">\n" +
- " </th>\n" +
- " </tr>\n" +
- " </thead>\n" +
- " <tbody>\n" +
- " <tr ng-repeat=\"dataRow in displayedCollection\" ng-class=\"{selected:dataRow.isSelected}\"\n" +
- " class=\"smart-table-data-row\">\n" +
- " <td ng-repeat=\"column in columns\" class=\"smart-table-data-cell {{column.cellClass}}\"></td>\n" +
- " </tr>\n" +
- " </tbody>\n" +
- " <tfoot ng-show=\"isPaginationEnabled\">\n" +
- " <tr class=\"smart-table-footer-row\">\n" +
- " <td colspan=\"{{columns.length}}\">\n" +
- " <div pagination-smart-table=\"\" num-pages=\"numberOfPages\" max-size=\"maxSize\" current-page=\"currentPage\"></div>\n" +
- " </td>\n" +
- " </tr>\n" +
- " </tfoot>\n" +
- "</table>\n" +
- "\n" +
- "\n" +
- "");
-}]);
-
-(function (angular) {
- "use strict";
- angular.module('smartTable.templateUrlList', [])
- .constant('templateUrlList', {
- smartTable: 'partials/smartTable.html',
- smartTableGlobalSearch: 'partials/globalSearchCell.html',
- editableCell: 'partials/editableCell.html',
- selectionCheckbox: 'partials/selectionCheckbox.html',
- selectAllCheckbox: 'partials/selectAllCheckbox.html',
- defaultHeader: 'partials/defaultHeader.html',
- pagination: 'partials/pagination.html'
- });
-})(angular);
-
-
-(function (angular) {
- "use strict";
- angular.module('smartTable.utilities', [])
-
- .factory('ArrayUtility', function () {
-
- /**
- * remove the item at index from arrayRef and return the removed item
- * @param arrayRef
- * @param index
- * @returns {*}
- */
- var removeAt = function (arrayRef, index) {
- if (index >= 0 && index < arrayRef.length) {
- return arrayRef.splice(index, 1)[0];
- }
- },
-
- /**
- * insert item in arrayRef at index or a the end if index is wrong
- * @param arrayRef
- * @param index
- * @param item
- */
- insertAt = function (arrayRef, index, item) {
- if (index >= 0 && index < arrayRef.length) {
- arrayRef.splice(index, 0, item);
- } else {
- arrayRef.push(item);
- }
- },
-
- /**
- * move the item at oldIndex to newIndex in arrayRef
- * @param arrayRef
- * @param oldIndex
- * @param newIndex
- */
- moveAt = function (arrayRef, oldIndex, newIndex) {
- var elementToMove;
- if (oldIndex >= 0 && oldIndex < arrayRef.length && newIndex >= 0 && newIndex < arrayRef.length) {
- elementToMove = arrayRef.splice(oldIndex, 1)[0];
- arrayRef.splice(newIndex, 0, elementToMove);
- }
- },
-
- /**
- * sort arrayRef according to sortAlgorithm following predicate and reverse
- * @param arrayRef
- * @param sortAlgorithm
- * @param predicate
- * @param reverse
- * @returns {*}
- */
- sort = function (arrayRef, sortAlgorithm, predicate, reverse) {
-
- if (!sortAlgorithm || !angular.isFunction(sortAlgorithm)) {
- return arrayRef;
- } else {
- return sortAlgorithm(arrayRef, predicate, reverse === true);//excpet if reverse is true it will take it as false
- }
- },
-
- /**
- * filter arrayRef according with filterAlgorithm and predicate
- * @param arrayRef
- * @param filterAlgorithm
- * @param predicate
- * @returns {*}
- */
- filter = function (arrayRef, filterAlgorithm, predicate) {
- if (!filterAlgorithm || !angular.isFunction(filterAlgorithm)) {
- return arrayRef;
- } else {
- return filterAlgorithm(arrayRef, predicate);
- }
- },
-
- /**
- * return an array, part of array ref starting at min and the size of length
- * @param arrayRef
- * @param min
- * @param length
- * @returns {*}
- */
- fromTo = function (arrayRef, min, length) {
-
- var out = [],
- limit,
- start;
-
- if (!angular.isArray(arrayRef)) {
- return arrayRef;
- }
-
- start = Math.max(min, 0);
- start = Math.min(start, (arrayRef.length - 1) > 0 ? arrayRef.length - 1 : 0);
-
- length = Math.max(0, length);
- limit = Math.min(start + length, arrayRef.length);
-
- for (var i = start; i < limit; i++) {
- out.push(arrayRef[i]);
- }
- return out;
- };
-
-
- return {
- removeAt: removeAt,
- insertAt: insertAt,
- moveAt: moveAt,
- sort: sort,
- filter: filter,
- fromTo: fromTo
- };
- });
-})(angular);
-
-
-
-(function (angular) {
- angular.module('ui.bootstrap.pagination.smartTable', ['smartTable.templateUrlList'])
-
- .constant('paginationConfig', {
- boundaryLinks: false,
- directionLinks: true,
- firstText: 'First',
- previousText: '<',
- nextText: '>',
- lastText: 'Last'
- })
-
- .directive('paginationSmartTable', ['paginationConfig', 'templateUrlList', function (paginationConfig, templateUrlList) {
- return {
- restrict: 'EA',
- require: '^smartTable',
- scope: {
- numPages: '=',
- currentPage: '=',
- maxSize: '='
- },
- templateUrl: templateUrlList.pagination,
- replace: true,
- link: function (scope, element, attrs, ctrl) {
-
- // Setup configuration parameters
- var boundaryLinks = angular.isDefined(attrs.boundaryLinks) ? scope.$eval(attrs.boundaryLinks) : paginationConfig.boundaryLinks;
- var directionLinks = angular.isDefined(attrs.directionLinks) ? scope.$eval(attrs.directionLinks) : paginationConfig.directionLinks;
- var firstText = angular.isDefined(attrs.firstText) ? attrs.firstText : paginationConfig.firstText;
- var previousText = angular.isDefined(attrs.previousText) ? attrs.previousText : paginationConfig.previousText;
- var nextText = angular.isDefined(attrs.nextText) ? attrs.nextText : paginationConfig.nextText;
- var lastText = angular.isDefined(attrs.lastText) ? attrs.lastText : paginationConfig.lastText;
-
- // Create page object used in template
- function makePage(number, text, isActive, isDisabled) {
- return {
- number: number,
- text: text,
- active: isActive,
- disabled: isDisabled
- };
- }
-
- scope.$watch('numPages + currentPage + maxSize', function () {
- scope.pages = [];
-
- // Default page limits
- var startPage = 1, endPage = scope.numPages;
-
- // recompute if maxSize
- if (scope.maxSize && scope.maxSize < scope.numPages) {
- startPage = Math.max(scope.currentPage - Math.floor(scope.maxSize / 2), 1);
- endPage = startPage + scope.maxSize - 1;
-
- // Adjust if limit is exceeded
- if (endPage > scope.numPages) {
- endPage = scope.numPages;
- startPage = endPage - scope.maxSize + 1;
- }
- }
-
- // Add page number links
- for (var number = startPage; number <= endPage; number++) {
- var page = makePage(number, number, scope.isActive(number), false);
- scope.pages.push(page);
- }
-
- // Add previous & next links
- if (directionLinks) {
- var previousPage = makePage(scope.currentPage - 1, previousText, false, scope.noPrevious());
- scope.pages.unshift(previousPage);
-
- var nextPage = makePage(scope.currentPage + 1, nextText, false, scope.noNext());
- scope.pages.push(nextPage);
- }
-
- // Add first & last links
- if (boundaryLinks) {
- var firstPage = makePage(1, firstText, false, scope.noPrevious());
- scope.pages.unshift(firstPage);
-
- var lastPage = makePage(scope.numPages, lastText, false, scope.noNext());
- scope.pages.push(lastPage);
- }
-
-
- if (scope.currentPage > scope.numPages) {
- scope.selectPage(scope.numPages);
- }
- });
- scope.noPrevious = function () {
- return scope.currentPage === 1;
- };
- scope.noNext = function () {
- return scope.currentPage === scope.numPages;
- };
- scope.isActive = function (page) {
- return scope.currentPage === page;
- };
-
- scope.selectPage = function (page) {
- if (!scope.isActive(page) && page > 0 && page <= scope.numPages) {
- scope.currentPage = page;
- ctrl.changePage({ page: page });
- }
- };
- }
- };
- }]);
-})(angular);
-
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/05129ed5/3rdparty/javascript/bower_components/smart-table/example-app/js/app.js
----------------------------------------------------------------------
diff --git a/3rdparty/javascript/bower_components/smart-table/example-app/js/app.js b/3rdparty/javascript/bower_components/smart-table/example-app/js/app.js
deleted file mode 100644
index 32b5784..0000000
--- a/3rdparty/javascript/bower_components/smart-table/example-app/js/app.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-// Declare app level module which depends on filters, and services
-var app = angular.module('myApp', ['smartTable.table']).
- controller('mainCtrl', ['$scope', function (scope) {
-
- var
- nameAsset = ['Pierre', 'Pol', 'Jacques', 'Laurent', 'Nicolas'],
- generateRandomItem = function (id) {
- var
- age = Math.floor(Math.random() * 100),
- balance = Math.random() * 10000,
- name = nameAsset[Math.floor(Math.random() * 5)],
- email = name + balance + '@' + name + '.com';
-
- return {
- id: id,
- name: name,
- email: email,
- age: age,
- balance: balance
- };
- };
-
- scope.rowCollection = [];
-
- for (var i = 0; i < 400; i++) {
- scope.rowCollection.push(generateRandomItem(i));
- }
-
- scope.columnCollection = [
- {label: 'id', map: 'id'},
- {label: 'Name', map: 'name'},
- {label: 'Age', map:'age'},
- {label: 'Balance', map: 'balance', isEditable: true, type: 'number', formatFunction: 'currency', formatParameter: '$'},
- {label: 'Email', map: 'email', type: 'email', isEditable: true}
- ];
-
- scope.globalConfig = {
- isPaginationEnabled: true,
- isGlobalSearchActivated: true,
- itemsByPage: 20,
- syncColumns: false
- };
-
-
- }]);
\ No newline at end of file