isc.defineClass("GeListGrid", "ListGrid"); isc.GeListGrid.addProperties({ autoDraw: false, /** * Ein Objekt, welches einen getter und setter für ConfigValues implementiert. (siehe isc.PublicationFilterForm) * Es wird lediglich genutzt, um dessen Filtereinstellungen in der table_config zu speichern. */ externFilter: null, debugMode: true, // Override initWidget to populate a special sort normalizer on a field when its type is "langtext" initWidget : function () { this.Super("initWidget", arguments); // Add special behaviour to all fields of type "langtext" var fields = this.getAllFields(); if (isc.isAn.Array(fields)) { for (var i = 0; i < fields.length; i++) { var field = fields[i]; if(isc.isAn.String(field.type)){ if (field.type == "langtext") { field.formatCellValue = isc.LangTextItem.DEFAULT_FORMAT_CELL_VALUE; field.getGroupValue = isc.LangTextItem.DEFAULT_GET_GROUP_VALUE; if ((field.sortNormalizer == undefined) || (field.sortNormalizer == null)) { field.sortNormalizer = isc.LangTextItem.DEFAULT_SORT_NORMALIZER; } } } field.indexId = i; } } if(this.debugMode) isc.logWarn("##### init table config for: "+this.tableId); if(isc.isA.String(this.tableId) && this.tableId.length > 0){ this.setTableConfiguration(fields); } return true; }, draw: function() { this.Super("draw", arguments); if(this.debugMode) isc.logWarn("##### table drawn. set column order for: "+this.tableId); this.setColumnOrder(); // order of columns can only changed after they are drawn return true; }, dataArrived: function() { this.Super("dataArrived", arguments); this.setColumnSort(); }, groupBy: function() { this.Super("groupBy", arguments); if(isc.isA.Boolean(this.columnsConfigured) && this.columnsConfigured && isc.isA.Boolean(this.columnsOrdered) && this.columnsOrdered){ this.saveTableConfig(); } return true; }, sort: function() { this.Super("sort", arguments); if(isc.isA.Boolean(this.columnsConfigured) && this.columnsConfigured && isc.isA.Boolean(this.columnsOrdered) && this.columnsOrdered){ this.saveTableConfig(); } return true; }, fieldStateChanged: function() { this.Super("fieldStateChanged", arguments); if(isc.isA.Boolean(this.columnsConfigured) && this.columnsConfigured && isc.isA.Boolean(this.columnsOrdered) && this.columnsOrdered){ this.saveTableConfig(); } return true; }, /** * Setzt das Objekt, welches einen getter und setter für ConfigValues implementiert. (siehe isc.PublicationFilterForm) * Es wird lediglich genutzt, um dessen Filtereinstellungen in der table_config zu speichern. */ setExternFilter: function (externFilter) { if (isc.isA.Object(externFilter)) { this.externFilter = externFilter; this.externFilter.onConfigValueChanged = { target: this, methodName: 'saveTableConfig' }; } }, setTableConfiguration: function(fields) { if(this.debugMode) isc.logWarn("##### set table config: "+this.columnsConfigured+" // "+this.columnsOrdered); if(isc.isA.Boolean(this.columnsConfigured) && this.columnsConfigured) return true; var tableConfig = userTableConfigs[this.tableId]; if(isc.isAn.Object(tableConfig) && isc.isAn.Array(fields)){ var i; var fieldSize = fields.length; //column filter if(isc.isA.String(tableConfig.columnFilter)) { var filter = tableConfig.columnFilter.split(","); if(isc.isAn.Array(filter)){ for(i=0;i 0 && fields[i].canFilter){ fields[i].defaultFilterValue = filter[i]; } } } } //column width if(isc.isA.String(tableConfig.columnWidth)) { var width = tableConfig.columnWidth.split(","); if(isc.isAn.Array(width)) { for(i=0;i 0){ this.groupBy(group); } } this.columnsConfigured = true; return true; }, setColumnOrder: function(){ if(this.debugMode) isc.logWarn("##### columns order for "+this.tableId+" : "+this.columnsOrdered); if(isc.isA.Boolean(this.columnsOrdered) && this.columnsOrdered) return true; var fields = this.getAllFields(); var tableConfig = userTableConfigs[this.tableId]; if(isc.isAn.Object(tableConfig)){ if(this.debugMode) isc.logWarn("##### start to order columns"); var i; var j; // column order for(i=0;i