mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-01-24 00:09:07 +01:00
merge with branch issue-268
This commit is contained in:
@@ -79,6 +79,7 @@
|
||||
<script type="text/javascript" src="resources/js/override/ext.data.store.js"></script>
|
||||
<script type="text/javascript" src="resources/js/override/ext.grid.columnmodel.js"></script>
|
||||
<script type="text/javascript" src="resources/js/override/ext.grid.gridpanel.js"></script>
|
||||
<script type="text/javascript" src="resources/js/override/ext.grid.groupingview.js"></script>
|
||||
|
||||
<!-- sonia.navigation -->
|
||||
<script type="text/javascript" src="resources/js/navigation/sonia.navigation.js"></script>
|
||||
|
||||
@@ -29,8 +29,13 @@
|
||||
*
|
||||
*/
|
||||
|
||||
Ext.grid.GridPanel.prototype.applyStateExt = Ext.grid.GridPanel.prototype.applyState;
|
||||
Ext.grid.GridPanel.prototype.getStateExt = Ext.grid.GridPanel.prototype.getState;
|
||||
|
||||
Ext.override(Ext.grid.GridPanel,{
|
||||
|
||||
stateEvents : ['columnmove', 'columnresize', 'sortchange', 'groupchange', 'toggleGroup'],
|
||||
|
||||
addColumn: function(field, column, colIndex){
|
||||
if(!column){
|
||||
if(field.dataIndex){
|
||||
@@ -52,6 +57,26 @@ Ext.override(Ext.grid.GridPanel,{
|
||||
if(colIndex >= 0){
|
||||
this.colModel.removeColumn(colIndex);
|
||||
}
|
||||
},
|
||||
|
||||
applyState: function(state){
|
||||
var view = this.getView();
|
||||
if (view && view.applyState){
|
||||
var groups = state.groups;
|
||||
if (groups){
|
||||
view.applyState(groups);
|
||||
}
|
||||
}
|
||||
this.applyStateExt(state);
|
||||
},
|
||||
|
||||
getState: function(){
|
||||
var state = this.getStateExt();
|
||||
var view = this.getView();
|
||||
if (view && view.getState){
|
||||
state.groups = view.getState();
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
/* *
|
||||
* Copyright (c) 2010, Sebastian Sdorra
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of SCM-Manager; nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from this
|
||||
* software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* http://bitbucket.org/sdorra/scm-manager
|
||||
*
|
||||
*/
|
||||
|
||||
Ext.grid.GroupingView.prototype.initTemplatesExt = Ext.grid.GroupingView.prototype.initTemplates;
|
||||
Ext.grid.GroupingView.prototype.toggleGroupExt = Ext.grid.GroupingView.prototype.toggleGroup;
|
||||
|
||||
Ext.override(Ext.grid.GroupingView,{
|
||||
|
||||
storedState: null,
|
||||
idPrefix: '{grid.el.id}',
|
||||
|
||||
initTemplates : function(){
|
||||
this.initTemplatesExt();
|
||||
if (this.storedState){
|
||||
this.state = this.storedState;
|
||||
}
|
||||
},
|
||||
|
||||
toggleGroup : function(group, expanded){
|
||||
this.toggleGroupExt(group, expanded);
|
||||
this.grid.fireEvent('toggleGroup', group, expanded);
|
||||
},
|
||||
|
||||
getState: function(){
|
||||
return this.state;
|
||||
},
|
||||
|
||||
applyState: function(state){
|
||||
this.storedState = state;
|
||||
},
|
||||
|
||||
getPrefix: function(field){
|
||||
var prefix;
|
||||
if ( this.idPrefix == '{grid.id}' ){
|
||||
prefix = this.grid.getId();
|
||||
} else if (this.idPrefix == '{grid.el.id}') {
|
||||
prefix = this.grid.getGridEl().id;
|
||||
} else {
|
||||
prefix = this.idPrefix;
|
||||
}
|
||||
prefix += '-gp-' + field + '-';
|
||||
return prefix;
|
||||
}
|
||||
|
||||
});
|
||||
@@ -200,6 +200,7 @@ Sonia.repository.Grid = Ext.extend(Sonia.rest.Grid, {
|
||||
}
|
||||
},
|
||||
view: new Ext.grid.GroupingView({
|
||||
idPrefix: '{grid.id}',
|
||||
enableGrouping: ! state.clientConfig.disableGroupingGrid,
|
||||
enableNoGroups: false,
|
||||
forceFit: true,
|
||||
|
||||
Reference in New Issue
Block a user