Skip to content

Commit

Permalink
Fixed some bugs.
Browse files Browse the repository at this point in the history
  • Loading branch information
jonricaurte committed Nov 27, 2012
1 parent 26fece1 commit f0a8be6
Show file tree
Hide file tree
Showing 8 changed files with 89 additions and 163 deletions.
81 changes: 28 additions & 53 deletions build/ng-grid.debug.js
Expand Up @@ -2,7 +2,7 @@
* ng-grid JavaScript Library
* Authors: https://github.com/Crash8308/ng-grid/blob/master/README.md
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
* Compiled At: 11/26/2012 17:08:29
* Compiled At: 11/26/2012 17:33:31
***********************************************/

(function(window, undefined){
Expand Down Expand Up @@ -687,7 +687,7 @@ ng.defaultRowTemplate = function(){ return '<div ng-repeat="col in visibleColumn
/***********************************************
* FILE: ..\src\templates\cellTemplate.html
***********************************************/
ng.defaultCellTemplate = function(){ return '\'<div class="ngCellText colt{{$index}}">{{row.getProperty(col.field) CUSTOM_FILTERS}}</div>\'';};
ng.defaultCellTemplate = function(){ return '<div class="ngCellText colt{{$index}}">{{row.getProperty(col.field) CUSTOM_FILTERS}}</div>';};

/***********************************************
* FILE: ..\src\templates\aggregateTemplate.html
Expand All @@ -702,7 +702,7 @@ ng.defaultHeaderRowTemplate = function(){ return '<div ng-repeat="col in visible
/***********************************************
* FILE: ..\src\templates\headerCellTemplate.html
***********************************************/
ng.defaultHeaderCellTemplate = function(){ return '<div ng-click="col.sort()" class="ngHeaderSortColumn" ng-class="{ \'ngSorted\': !noSortVisible }"><div class="ngHeaderText colt{{$index}}">{{col.displayName}}</div><div class="ngSortButtonDown" ng-show="col.showSortButtonDown()"></div><div class="ngSortButtonUp" ng-show="col.showSortButtonUp()"></div></div><div ng-show="col.allowResize" class="ngHeaderGrip" ng-click="col.gripClick($event)" ng-mousedown="col.gripOnMouseDown($event)"></div>';};
ng.defaultHeaderCellTemplate = function(){ return '<div ng-click="col.sort()" class="ngHeaderSortColumn" ng-class="{ \'ngSorted\': !noSortVisible }"><div class="ngHeaderText colt{{$index}}">{{col.displayName}}</div><div class="ngSortButtonDown" ng-show="col.showSortButtonDown()"></div><div class="ngSortButtonUp" ng-show="col.showSortButtonUp()"></div></div><div ng-show="col.resizable" class="ngHeaderGrip" ng-click="col.gripClick($event)" ng-mousedown="col.gripOnMouseDown($event)"></div>';};

/***********************************************
* FILE: ..\src\classes\aggregate.js
Expand Down Expand Up @@ -995,80 +995,56 @@ ng.AggregateProvider = function (grid, $scope, gridService,domUtilityService) {
***********************************************/
ng.Column = function (config, $scope, grid, domUtilityService) {
var self = this,
colDef = config.colDef;
colDef = config.colDef,
delay = 500,
clicks = 0,
timer = null;
self.width = colDef.width;
self.widthIsConfigured = false;
self.minWidth = !colDef.minWidth ? 50 : colDef.minWidth;
self.maxWidth = !colDef.maxWidth ? 9000 : colDef.maxWidth;
self.headerRowHeight = config.headerRowHeight;
self.widthWatcher = null;
self.displayName = colDef.displayName || colDef.field;
self.index = config.index;
self.isAggCol = config.isAggCol;
self.cellClass = colDef.cellClass;
self.cellFilter = colDef.cellFilter ? "|" + colDef.cellFilter : "";
self.field = colDef.field;
self.aggLabelFilter = colDef.cellFilter || colDef.aggLabelFilter;
self.defaultCellTemplate = ng.defaultCellTemplate().replace(CUSTOM_FILTERS, self.cellFilter);
self.visible = colDef.visible == undefined ? true : colDef.visible;
self.visible = ng.utils.isNullOrUndefined(colDef.visible) || colDef.visible;
self.sortable = ng.utils.isNullOrUndefined(colDef.sortable) || colDef.sortable;
self.resizable = ng.utils.isNullOrUndefined(colDef.resizable) || colDef.resizable;
self.sortDirection = undefined;
self.sortingAlgorithm = colDef.sortFn;
self.headerClass = colDef.headerClass;
self.toggleVisible = function() {
self.visible = !self.visible;
};
if (!colDef.displayName) {
// Allow empty column names -- do not check for empty string
colDef.displayName = colDef.field;
}
self.displayName = colDef.displayName;
self.index = config.index;

//sorting
if (colDef.sortable === undefined || colDef.sortable === null) {
colDef.sortable = true;
}

//resizing
if (colDef.resizable === undefined || colDef.resizable === null) {
colDef.resizable = true;
}

self.allowSort = colDef.sortable;
self.allowResize = config.enableResize ? colDef.resizable : false;

self.sortDirection = undefined;
self.sortingAlgorithm = colDef.sortFn;
//cell Template
self.cellTemplate = function() {
return colDef.cellTemplate || self.defaultCellTemplate;
};
self.hasCellTemplate = (self.cellTemplate ? true : false);

self.cellClass = colDef.cellClass;
self.cellFilter = colDef.cellFilter ? "|" + colDef.cellFilter : "";
self.headerClass = colDef.headerClass;

self.headerCellTemplate = function() {
return colDef.headerCellTemplate || ng.defaultHeaderCellTemplate();
};

};
self.showSortButtonUp = function () {
return self.allowSort ? self.sortDirection === DESC : self.allowSort;
return self.sortable ? self.sortDirection === DESC : self.sortable;
};
self.showSortButtonDown = function () {
return self.allowSort ? self.sortDirection === ASC : self.allowSort;
};

return self.sortable ? self.sortDirection === ASC : self.sortable;
};
self.noSortVisible = function () {
return !self.sortDirection;
};

self.sort = function () {
if (!self.allowSort) {
if (!self.sortable) {
return; // column sorting is disabled, do nothing
}
var dir = self.sortDirection === ASC ? DESC : ASC;
self.sortDirection = dir;
config.sortCallback(self, dir);
};
var delay = 500,
clicks = 0,
timer = null;

};
self.gripClick = function () {
clicks++; //count clicks
if (clicks === 1) {
Expand All @@ -1082,7 +1058,6 @@ ng.Column = function (config, $scope, grid, domUtilityService) {
clicks = 0; //after action performed, reset counter
}
};

self.gripOnMouseDown = function (event) {
if (event.ctrlKey) {
self.toggleVisible();
Expand Down Expand Up @@ -2090,11 +2065,11 @@ ngGridDirectives.directive('ngGrid', ['$compile', 'GridService', 'SortService',
var $element = $(iElement);
var options = $scope.$eval(iAttrs.ngGrid);
var gridDim = new ng.Dimension({ outerHeight: $($element).height(), outerWidth: $($element).width() });
var grid = new ng.Grid($scope, options, gridDim, SortService, DomUtilityService);
var grid = new ng.Grid($scope, options, gridDim, sortService, domUtilityService);
var htmlText = ng.defaultGridTemplate(grid.config);
GridService.StoreGrid($element, grid);
gridService.StoreGrid($element, grid);
grid.footerController = new ng.Footer($scope, grid);
DomUtilityService.MeasureGrid($element, grid, true);
domUtilityService.MeasureGrid($element, grid, true);
// if it is a string we can watch for data changes. otherwise you won't be able to update the grid data
if (typeof options.data == "string") {
$scope.$parent.$watch(options.data, function (a) {
Expand All @@ -2112,9 +2087,9 @@ ngGridDirectives.directive('ngGrid', ['$compile', 'GridService', 'SortService',
grid.initPhase = 1;
iElement.append($compile(htmlText)($scope));// make sure that if any of these change, we re-fire the calc logic
//walk the element's graph and the correct properties on the grid
DomUtilityService.AssignGridContainers($element, grid);
domUtilityService.AssignGridContainers($element, grid);
//now use the manager to assign the event handlers
GridService.AssignGridEventHandlers($scope, grid);
gridService.AssignGridEventHandlers($scope, grid);
grid.aggregateProvider = new ng.AggregateProvider(grid, $scope.$new(), gridService, domUtilityService);
//initialize plugins.
angular.forEach(options.plugins, function (p) {
Expand Down
81 changes: 28 additions & 53 deletions ng-grid-1.3.0.debug.js
Expand Up @@ -2,7 +2,7 @@
* ng-grid JavaScript Library
* Authors: https://github.com/Crash8308/ng-grid/blob/master/README.md
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
* Compiled At: 11/26/2012 17:08:29
* Compiled At: 11/26/2012 17:33:31
***********************************************/

(function(window, undefined){
Expand Down Expand Up @@ -687,7 +687,7 @@ ng.defaultRowTemplate = function(){ return '<div ng-repeat="col in visibleColumn
/***********************************************
* FILE: ..\src\templates\cellTemplate.html
***********************************************/
ng.defaultCellTemplate = function(){ return '\'<div class="ngCellText colt{{$index}}">{{row.getProperty(col.field) CUSTOM_FILTERS}}</div>\'';};
ng.defaultCellTemplate = function(){ return '<div class="ngCellText colt{{$index}}">{{row.getProperty(col.field) CUSTOM_FILTERS}}</div>';};

/***********************************************
* FILE: ..\src\templates\aggregateTemplate.html
Expand All @@ -702,7 +702,7 @@ ng.defaultHeaderRowTemplate = function(){ return '<div ng-repeat="col in visible
/***********************************************
* FILE: ..\src\templates\headerCellTemplate.html
***********************************************/
ng.defaultHeaderCellTemplate = function(){ return '<div ng-click="col.sort()" class="ngHeaderSortColumn" ng-class="{ \'ngSorted\': !noSortVisible }"><div class="ngHeaderText colt{{$index}}">{{col.displayName}}</div><div class="ngSortButtonDown" ng-show="col.showSortButtonDown()"></div><div class="ngSortButtonUp" ng-show="col.showSortButtonUp()"></div></div><div ng-show="col.allowResize" class="ngHeaderGrip" ng-click="col.gripClick($event)" ng-mousedown="col.gripOnMouseDown($event)"></div>';};
ng.defaultHeaderCellTemplate = function(){ return '<div ng-click="col.sort()" class="ngHeaderSortColumn" ng-class="{ \'ngSorted\': !noSortVisible }"><div class="ngHeaderText colt{{$index}}">{{col.displayName}}</div><div class="ngSortButtonDown" ng-show="col.showSortButtonDown()"></div><div class="ngSortButtonUp" ng-show="col.showSortButtonUp()"></div></div><div ng-show="col.resizable" class="ngHeaderGrip" ng-click="col.gripClick($event)" ng-mousedown="col.gripOnMouseDown($event)"></div>';};

/***********************************************
* FILE: ..\src\classes\aggregate.js
Expand Down Expand Up @@ -995,80 +995,56 @@ ng.AggregateProvider = function (grid, $scope, gridService,domUtilityService) {
***********************************************/
ng.Column = function (config, $scope, grid, domUtilityService) {
var self = this,
colDef = config.colDef;
colDef = config.colDef,
delay = 500,
clicks = 0,
timer = null;
self.width = colDef.width;
self.widthIsConfigured = false;
self.minWidth = !colDef.minWidth ? 50 : colDef.minWidth;
self.maxWidth = !colDef.maxWidth ? 9000 : colDef.maxWidth;
self.headerRowHeight = config.headerRowHeight;
self.widthWatcher = null;
self.displayName = colDef.displayName || colDef.field;
self.index = config.index;
self.isAggCol = config.isAggCol;
self.cellClass = colDef.cellClass;
self.cellFilter = colDef.cellFilter ? "|" + colDef.cellFilter : "";
self.field = colDef.field;
self.aggLabelFilter = colDef.cellFilter || colDef.aggLabelFilter;
self.defaultCellTemplate = ng.defaultCellTemplate().replace(CUSTOM_FILTERS, self.cellFilter);
self.visible = colDef.visible == undefined ? true : colDef.visible;
self.visible = ng.utils.isNullOrUndefined(colDef.visible) || colDef.visible;
self.sortable = ng.utils.isNullOrUndefined(colDef.sortable) || colDef.sortable;
self.resizable = ng.utils.isNullOrUndefined(colDef.resizable) || colDef.resizable;
self.sortDirection = undefined;
self.sortingAlgorithm = colDef.sortFn;
self.headerClass = colDef.headerClass;
self.toggleVisible = function() {
self.visible = !self.visible;
};
if (!colDef.displayName) {
// Allow empty column names -- do not check for empty string
colDef.displayName = colDef.field;
}
self.displayName = colDef.displayName;
self.index = config.index;

//sorting
if (colDef.sortable === undefined || colDef.sortable === null) {
colDef.sortable = true;
}

//resizing
if (colDef.resizable === undefined || colDef.resizable === null) {
colDef.resizable = true;
}

self.allowSort = colDef.sortable;
self.allowResize = config.enableResize ? colDef.resizable : false;

self.sortDirection = undefined;
self.sortingAlgorithm = colDef.sortFn;
//cell Template
self.cellTemplate = function() {
return colDef.cellTemplate || self.defaultCellTemplate;
};
self.hasCellTemplate = (self.cellTemplate ? true : false);

self.cellClass = colDef.cellClass;
self.cellFilter = colDef.cellFilter ? "|" + colDef.cellFilter : "";
self.headerClass = colDef.headerClass;

self.headerCellTemplate = function() {
return colDef.headerCellTemplate || ng.defaultHeaderCellTemplate();
};

};
self.showSortButtonUp = function () {
return self.allowSort ? self.sortDirection === DESC : self.allowSort;
return self.sortable ? self.sortDirection === DESC : self.sortable;
};
self.showSortButtonDown = function () {
return self.allowSort ? self.sortDirection === ASC : self.allowSort;
};

return self.sortable ? self.sortDirection === ASC : self.sortable;
};
self.noSortVisible = function () {
return !self.sortDirection;
};

self.sort = function () {
if (!self.allowSort) {
if (!self.sortable) {
return; // column sorting is disabled, do nothing
}
var dir = self.sortDirection === ASC ? DESC : ASC;
self.sortDirection = dir;
config.sortCallback(self, dir);
};
var delay = 500,
clicks = 0,
timer = null;

};
self.gripClick = function () {
clicks++; //count clicks
if (clicks === 1) {
Expand All @@ -1082,7 +1058,6 @@ ng.Column = function (config, $scope, grid, domUtilityService) {
clicks = 0; //after action performed, reset counter
}
};

self.gripOnMouseDown = function (event) {
if (event.ctrlKey) {
self.toggleVisible();
Expand Down Expand Up @@ -2090,11 +2065,11 @@ ngGridDirectives.directive('ngGrid', ['$compile', 'GridService', 'SortService',
var $element = $(iElement);
var options = $scope.$eval(iAttrs.ngGrid);
var gridDim = new ng.Dimension({ outerHeight: $($element).height(), outerWidth: $($element).width() });
var grid = new ng.Grid($scope, options, gridDim, SortService, DomUtilityService);
var grid = new ng.Grid($scope, options, gridDim, sortService, domUtilityService);
var htmlText = ng.defaultGridTemplate(grid.config);
GridService.StoreGrid($element, grid);
gridService.StoreGrid($element, grid);
grid.footerController = new ng.Footer($scope, grid);
DomUtilityService.MeasureGrid($element, grid, true);
domUtilityService.MeasureGrid($element, grid, true);
// if it is a string we can watch for data changes. otherwise you won't be able to update the grid data
if (typeof options.data == "string") {
$scope.$parent.$watch(options.data, function (a) {
Expand All @@ -2112,9 +2087,9 @@ ngGridDirectives.directive('ngGrid', ['$compile', 'GridService', 'SortService',
grid.initPhase = 1;
iElement.append($compile(htmlText)($scope));// make sure that if any of these change, we re-fire the calc logic
//walk the element's graph and the correct properties on the grid
DomUtilityService.AssignGridContainers($element, grid);
domUtilityService.AssignGridContainers($element, grid);
//now use the manager to assign the event handlers
GridService.AssignGridEventHandlers($scope, grid);
gridService.AssignGridEventHandlers($scope, grid);
grid.aggregateProvider = new ng.AggregateProvider(grid, $scope.$new(), gridService, domUtilityService);
//initialize plugins.
angular.forEach(options.plugins, function (p) {
Expand Down

0 comments on commit f0a8be6

Please sign in to comment.