### Eclipse Workspace Patch 1.0 #P fluid-infusion Index: src/webapp/components/pager/js/Pager.js =================================================================== --- src/webapp/components/pager/js/Pager.js (revision 7226) +++ src/webapp/components/pager/js/Pager.js (working copy) @@ -283,8 +283,12 @@ return fluid.model.getBeanValue(dataModel, path); }; + function isSortable(columnDefs, model) { + var columnDef = fluid.pager.findColumnDef(columnDefs, model.sortKey); + return columnDef ? columnDef.sortable : columnDef; + }; - fluid.pager.basicSorter = function (overallThat, model) { + fluid.pager.basicSorter = function (overallThat, model) { var dataModel = overallThat.options.dataModel; var roots = {}; var columnDefs = getColumnDefs(overallThat); @@ -438,7 +442,8 @@ function setModelSortHeaderClass(newModel, opts) { var styles = opts.overallOptions.styles; - setSortHeaderClass(styles, bigHeaderForKey(newModel.sortKey, opts), newModel.sortDir); + var sort = isSortable(opts.columnDefs, newModel) ? newModel.sortDir : 0; + setSortHeaderClass(styles, bigHeaderForKey(newModel.sortKey, opts), sort); } function fireModelChange(that, newModel, forceUpdate) { @@ -448,7 +453,8 @@ } if (forceUpdate || newModel.pageIndex !== that.model.pageIndex || newModel.pageSize !== that.model.pageSize || newModel.sortKey !== that.model.sortKey || newModel.sortDir !== that.model.sortDir) { - var sorted = newModel.sortKey? that.options.sorter(that, newModel) : null; + var sorted = (newModel.sortKey && isSortable(getColumnDefs(that), newModel)) ? + that.options.sorter(that, newModel) : null; that.permutation = sorted; that.events.onModelChange.fire(newModel, that.model, that); fluid.model.copyModel(that.model, newModel);