213 lines
11 KiB
Python
213 lines
11 KiB
Python
/// <reference path="../plugins/ng-grid-reorderable.js" />
|
|
/// <reference path="../ng-grid-1.0.0.debug.js" />
|
|
function userController($scope) {
|
|
var self = this;
|
|
$scope.mySelections = [];
|
|
$scope.mySelections2 = [];
|
|
$scope.myData = [];
|
|
$scope.filterOptions = {
|
|
filterText: "",
|
|
useExternalFilter: false,
|
|
};
|
|
$scope.pagingOptions = {
|
|
pageSizes: [250, 500, 1000], //page Sizes
|
|
pageSize: 250, //Size of Paging data
|
|
totalServerItems: 0, //how many items are on the server (for paging)
|
|
currentPage: 1 //what page they are currently on
|
|
};
|
|
var testData = [{ name: "Moroni", age: 50, id: 101 },
|
|
{ name: "Tiancum", age: 43, id: 102 },
|
|
{ name: "Jacob", age: 27, id: 103 },
|
|
{ name: "Nephi", age: 29, id: 104 },
|
|
{ name: "Enos", age: 34, id: 105 }];
|
|
self.getPagedDataAsync = function (pageSize, page, searchText) {
|
|
setTimeout(function () {
|
|
self.gettingData = true;
|
|
var data;
|
|
if (searchText) {
|
|
var ft = searchText.toLowerCase();
|
|
data = testData.filter(function (item) {
|
|
return JSON.stringify(item).toLowerCase().indexOf(ft) != -1;
|
|
});
|
|
} else {
|
|
data = testData;
|
|
}
|
|
var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
|
|
$scope.pagingOptions.totalServerItems = data.length;
|
|
$scope.myData = pagedData;
|
|
if (!$scope.$$phase) {
|
|
$scope.$apply();
|
|
}
|
|
self.gettingData = false;
|
|
}, 100);
|
|
};
|
|
$scope.$watch('pagingOptions', function () {
|
|
if (!self.poInit || self.gettingData) {
|
|
self.poInit = true;
|
|
return;
|
|
}
|
|
self.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
|
|
}, true);
|
|
$scope.$watch('filterOptions', function () {
|
|
if (!self.foInit || self.gettingData) {
|
|
self.foInit = true;
|
|
return;
|
|
}
|
|
self.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
|
|
}, true);
|
|
self.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage);
|
|
$scope.myDefs = [{ field: 'name', displayName: 'Very Long Name Title', headerClass: 'foo', editableCellTemplate: '<div ng-click="doStuff($event)" style="width:100%;height:100%;" ><select style="width:100%;height:100%;" class="ui-widget input" type="text" ng-model="row.entity.name"><option ng-repeat="opt in dropDownOpts">{{opt}}</option></select></div>' },
|
|
{ field: 'allowance', aggLabelFilter: 'currency' },
|
|
{ field: 'birthday', cellFilter: "date:'yyyy-MM-dd HH:mm:ss'", resizable: false },
|
|
{ field: 'paid', cellFilter: 'checkmark', },
|
|
{ field: 'sdaf', displayName: 'sadfasdfasdfasd', headerClass: 'foo', visible: false },
|
|
{ field: 'asdf', aggLabelFilter: 'currency', },
|
|
{ field: 'asdgasg', cellFilter: 'date', resizable: false, visible: false },
|
|
{ field: 'asgdasga', cellFilter: 'checkmark' },
|
|
{ field: 'asgasgadf', displayName: 'asgasgadf', headerClass: 'foo', visible: false },
|
|
{ field: 'asdgasgasgagsd', aggLabelFilter: 'currency', visible: false },
|
|
{ field: 'asdasdgasdg', cellFilter: 'date', resizable: false, visible: false },
|
|
{ field: 'sadfasdfasdfasd', cellFilter: 'checkmark', }];
|
|
var myplugin = {
|
|
init: function(scope, grid) {
|
|
myplugin.scope = scope;
|
|
myplugin.grid = grid;
|
|
$scope.$watch(function () {
|
|
var searchQuery = "";
|
|
angular.forEach(myplugin.scope.columns, function (col) {
|
|
if (col.filterText) {
|
|
searchQuery += col.field + ": " + col.filterText + "; ";
|
|
}
|
|
});
|
|
return searchQuery;
|
|
}, function (searchQuery) {
|
|
myplugin.scope.$parent.filterText = searchQuery;
|
|
myplugin.grid.searchProvider.evalFilter();
|
|
});
|
|
},
|
|
scope: undefined,
|
|
grid: undefined,
|
|
};
|
|
|
|
$scope.myDefs2 = [{ field: 'Sku', displayName: 'My Sku', enableCellEdit: true },
|
|
{ field: 'Vendor', displayName: 'Supplier', enableCellEdit: true },
|
|
{ field: 'SeasonCode', displayName: 'My SeasonCode', enableCellEdit: true },
|
|
{ field: 'Mfg_Id', displayName: 'Manufacturer ID', enableCellEdit: true },
|
|
{ field: 'UPC', displayName: 'Bar Code', enableCellEdit: true }];
|
|
self.selectionchanging = function (a, b) {
|
|
return true;
|
|
};
|
|
|
|
$scope.gridOptions = {
|
|
data: 'myData',
|
|
enableColumnResize: true,
|
|
enableColumnReordering: true,
|
|
selectedItems: $scope.mySelections,
|
|
headerRowHeight: 40,
|
|
pagingOptions: $scope.pagingOptions,
|
|
enablePaging: true,
|
|
enableRowSelection: true,
|
|
multiSelect: false,
|
|
enableRowReordering: false,
|
|
enablePinning: true,
|
|
showGroupPanel: true,
|
|
showFooter: false,
|
|
showFilter: true,
|
|
enableCellEdit: true,
|
|
enableCellSelection: true,
|
|
showSelectionCheckbox: true,
|
|
selectWithCheckboxOnly: true,
|
|
showColumnMenu: true,
|
|
maintainColumnRatios: true,
|
|
columnDefs: 'myDefs',
|
|
primaryKey: 'id',
|
|
sortInfo: {fields:['name'], directions:['asc'] },
|
|
};
|
|
$scope.doStuff = function (evt) {
|
|
var elm = angular.element(evt.currentTarget.parentNode);
|
|
elm.on('change', function() {
|
|
var scope = elm.scope();
|
|
scope.$parent.isFocused = false;
|
|
});
|
|
};
|
|
$scope.myData2 = [{ 'Sku': 'C-2820164', 'Vendor': 'NEWB', 'SeasonCode': null, 'Mfg_Id': '573-9880954', 'UPC': '822860449228' },
|
|
{ 'Sku': 'J-8555462', 'Vendor': 'NIKE', 'SeasonCode': '', 'Mfg_Id': '780-8855467', 'UPC': '043208523549' },
|
|
{ 'Sku': 'K-5312708', 'Vendor': 'REEB', 'SeasonCode': '1293', 'Mfg_Id': '355-6906843', 'UPC': '229487568922' },
|
|
{ 'Sku': 'W-4295255', 'Vendor': 'REEB', 'SeasonCode': '6283', 'Mfg_Id': '861-4929378', 'UPC': '644134774391' },
|
|
{ 'Sku': 'X-9829445', 'Vendor': 'DOCK', 'SeasonCode': '6670', 'Mfg_Id': '298-5235913', 'UPC': '872941679110' },
|
|
{ 'Sku': 'H-2415929', 'Vendor': 'REEB', 'SeasonCode': '3884', 'Mfg_Id': '615-8231520', 'UPC': '310547300561' },
|
|
{ 'Sku': 'X-2718366', 'Vendor': 'MERR', 'SeasonCode': '4054', 'Mfg_Id': '920-2961971', 'UPC': '157891269493' },
|
|
{ 'Sku': 'Q-1505237', 'Vendor': 'AX', 'SeasonCode': '9145', 'Mfg_Id': '371-6918101', 'UPC': '553657492213' },
|
|
{ 'Sku': 'M-1626429', 'Vendor': 'REEB', 'SeasonCode': '1846', 'Mfg_Id': '242-5856618', 'UPC': '029388467459' },
|
|
{ 'Sku': 'Y-1914652', 'Vendor': 'LEVI', 'SeasonCode': '5553', 'Mfg_Id': '80-9194110', 'UPC': '433360049369' }];
|
|
$scope.gridOptions2 = {
|
|
data: 'myData2',
|
|
selectedItems: $scope.mySelections2,
|
|
beforeSelectionChange: self.selectionchanging,
|
|
showGroupPanel: true,
|
|
showFilter: true,
|
|
multiSelect: true,
|
|
columnDefs: 'myDefs2',
|
|
enablePinning: true,
|
|
};
|
|
$scope.changeData = function () {
|
|
$scope.myData2.pop();
|
|
};
|
|
$scope.changeLang = function () {
|
|
$scope.gridOptions.i18n = 'ge';
|
|
};
|
|
$scope.spliceData = function () {
|
|
var temp = $scope.myData2;
|
|
temp.splice(0, 0, { 'Sku': 'Y-1914652', 'Vendor': 'LEVI', 'SeasonCode': '5553', 'Mfg_Id': '80-9194110', 'UPC': '433360049369' });
|
|
$scope.myData2 = temp;
|
|
};
|
|
$scope.resetData = function () {
|
|
$scope.myData2 = [{ 'Sku': 'C-2820164', 'Vendor': 'NEWB', 'SeasonCode': null, 'Mfg_Id': '573-9880954', 'UPC': '822860449228' },
|
|
{ 'Sku': 'J-8555462', 'Vendor': 'NIKE', 'SeasonCode': '', 'Mfg_Id': '780-8855467', 'UPC': '043208523549' },
|
|
{ 'Sku': 'K-5312708', 'Vendor': 'REEB', 'SeasonCode': '1293', 'Mfg_Id': '355-6906843', 'UPC': '229487568922' },
|
|
{ 'Sku': 'W-4295255', 'Vendor': 'REEB', 'SeasonCode': '6283', 'Mfg_Id': '861-4929378', 'UPC': '644134774391' },
|
|
{ 'Sku': 'X-9829445', 'Vendor': 'DOCK', 'SeasonCode': '6670', 'Mfg_Id': '298-5235913', 'UPC': '872941679110' },
|
|
{ 'Sku': 'H-2415929', 'Vendor': 'REEB', 'SeasonCode': '3884', 'Mfg_Id': '615-8231520', 'UPC': '310547300561' },
|
|
{ 'Sku': 'X-2718366', 'Vendor': 'MERR', 'SeasonCode': '4054', 'Mfg_Id': '920-2961971', 'UPC': '157891269493' },
|
|
{ 'Sku': 'Q-1505237', 'Vendor': 'AX', 'SeasonCode': '9145', 'Mfg_Id': '371-6918101', 'UPC': '553657492213' },
|
|
{ 'Sku': 'M-1626429', 'Vendor': 'REEB', 'SeasonCode': '1846', 'Mfg_Id': '242-5856618', 'UPC': '029388467459' },
|
|
{ 'Sku': 'Y-1914652', 'Vendor': 'LEVI', 'SeasonCode': '5553', 'Mfg_Id': '80-9194110', 'UPC': '433360049369' }];;
|
|
};
|
|
$scope.modifyData = function(){
|
|
$scope.myData2[0].Vendor = "HELLO";
|
|
};
|
|
|
|
|
|
$scope.myData3 = [{ 'Sku': 'C-2820164', 'Vendor': {'name':'NIKE'}, 'SeasonCode': null, 'Mfg_Id': '573-9880954', 'UPC': '822860449228' },
|
|
{ 'Sku': 'J-8555462', 'Vendor': {'name':'NIKE'}, 'SeasonCode': '', 'Mfg_Id': '780-8855467', 'UPC': '043208523549' },
|
|
{ 'Sku': 'K-5312708', 'Vendor': {'name':'NIKE'}, 'SeasonCode': '1293', 'Mfg_Id': '355-6906843', 'UPC': '229487568922' },
|
|
{ 'Sku': 'W-4295255', 'Vendor': {'name':'NIKE'}, 'SeasonCode': '6283', 'Mfg_Id': '861-4929378', 'UPC': '644134774391' },
|
|
{ 'Sku': 'X-9829445', 'Vendor': {'name':'NIKE'}, 'SeasonCode': '6670', 'Mfg_Id': '298-5235913', 'UPC': '872941679110' },
|
|
{ 'Sku': 'H-2415929', 'Vendor': {'name':'REEB'}, 'SeasonCode': '3884', 'Mfg_Id': '615-8231520', 'UPC': '310547300561' },
|
|
{ 'Sku': 'X-2718366', 'Vendor': {'name':'REEB'}, 'SeasonCode': '4054', 'Mfg_Id': '920-2961971', 'UPC': '157891269493' },
|
|
{ 'Sku': 'Q-1505237', 'Vendor': {'name':'REEB'}, 'SeasonCode': '9145', 'Mfg_Id': '371-6918101', 'UPC': '553657492213' },
|
|
{ 'Sku': 'M-1626429', 'Vendor': {'name':'REEB'}, 'SeasonCode': '1846', 'Mfg_Id': '242-5856618', 'UPC': '029388467459' },
|
|
{ 'Sku': 'Y-1914652', 'Vendor': {'name':'REEB'}, 'SeasonCode': '5553', 'Mfg_Id': '80-9194110', 'UPC': '433360049369' }];
|
|
|
|
$scope.myDefs3 = [{ field: 'Sku', displayName: 'My Sku' },
|
|
{ field: 'Vendor.name', displayName: 'Supplier', cellFilter: 'branding' },
|
|
{ field: 'SeasonCode', displayName: 'My SeasonCode', cellTemplate: '<input style="width:100%;height:100%;" class="ui-widget input" type="text" ng-readonly="!row.selected" ng-model="row.entity[col.field]"/>' },
|
|
{ field: 'Mfg_Id', displayName: 'Manufacturer ID' },
|
|
{ field: 'UPC', displayName: 'Bar Code' }];
|
|
|
|
$scope.filteringText = '';
|
|
$scope.gridOptions3 = {
|
|
data: 'myData3',
|
|
multiSelect: false,
|
|
filterOptions: {filterText:'filteringText', useExternalFilter: false},
|
|
columnDefs: 'myDefs3'
|
|
};
|
|
|
|
$scope.$on('filterChanged', function(evt, text){
|
|
$scope.filteringText = text;
|
|
});
|
|
$scope.setSelection = function() {
|
|
$scope.gridOptions2.selectRow(0, true);
|
|
};
|
|
$scope.dropDownOpts = ['editing', 'is', 'impossibru?'];
|
|
}; |