netzke-basepack 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -4,3 +4,5 @@ pkg
4
4
  doc
5
5
  Manifest
6
6
  test/app_root/vendor/plugins/netzke-core
7
+ rdoc
8
+ netzke-basepack.gemspec
data/CHANGELOG.rdoc CHANGED
@@ -1,183 +1,197 @@
1
- v0.5.2 - 2009-09-24
2
- Fix: combobox options for association columns didn't work properly.
3
- Fix: GridPanel's multi-edit functionality didn't work.
4
- Fix: gem dependencies are now correct.
5
-
6
- v0.5.1 - 2009-09-11
7
- Fix: crash when FormPanel has no data_class_name specified.
8
- New: DataAccessor widgets (Form/GridPanel) now let the underlying model know which widget (i.e. which instance) accesses its data. Can be useful in virtual attributes for generating widget-specific HTML.
9
- Fix: DataAccessor widgets (Form/GridPanel) now don't crash when calculating default columns/fields for the underlying model that has polymorphic columns.
10
- Fix: TabPanel was sending redundant "tabchange" event to server when initially instantiated.
11
- Fix: column filters were making GridPanel crash when the column editor was set to "textarea".
12
- Fix: dongling comma and "delete" object properties caused problems in IE and Safari.
13
- Fix: a stand-alone TabPanel would not render the active item.
14
- New: BasicApp: masquerading as "World". In this mode all the "touched" persistent preferences will be overwritten for all roles and users.
15
- Impr: configuration panel's header now shows the underlying model's name for convenience.
16
- Fix: MasqueradeSelector widget added.
17
-
18
- v0.5.0
19
- 2009-09-06
20
- Major refactoring and code reorganization.
21
- Compatibility with netzke-core v0.4.0.
22
- New: GridPanel now supports adding/editing records in a form and extended configurable search.
23
- New: GridPanel now can be loaded along with initial data (saves a request to the server).
24
- New: context menu in GridPanel
25
- New: "scopes" configuration option added to GridPanel to specify the searchlogic-compatible scope for the data.
26
- New: "strong_default_attrs" config option added to GridPanel to specify the attributes that will be assigned to each record that is created or modified by the grid.
27
- Usability: GridPanel's actions now get enabled/disabled according to the current selection.
28
- Configuration panel for grids and forms now works more consistently.
29
- New: some smart defaults for column/fields in Grid/FormPanel.
30
- New: BasicApp supports masquerading and application-wide AJAX activity indicator.
31
-
32
- v0.4.2
33
- 2009-05-07
34
- Fix: afterlayout event bind removed completely because of some tricky inconsistent behavior of Ext. BasicApp initializing code put directly into js_after_constructor.
35
-
36
- v0.4.1
37
- 2009-05-07
38
- Fix: afterlayout call moved to js_after_constructor in BasicApp
39
- Fix: cleaner persistent_config handling
40
- New: default's configuration enabled for FormPanel on class-level
41
- Fix: differently configured forms on the same page were showing the same columns
42
- Fix: TableEditor was showing config-tool by default (must be hidden)
43
-
44
- v0.4.0
45
- 2009-05-07
46
- Refactor: got rid of NetzkeFormPanelField and NetzkeGridPanelColumn classes along with their tables. The layout is now stored in netzke_preferences.
47
- New: dynamic hiding of columns from column menu in GridPanel.
48
- New: FormPanel now supports combo boxes.
49
- Fix: config[:bbar] set to 'false' now works in grids with pagination
50
- New: you can specify :preloaded => true in a tab config in TabPanel to preload the widget in that tab along with the TabPanel itself
51
- New: hideBusy added to Ext.StatusBar
52
- Fix: assigning association (a Boss to a Clerk) by virtual column (like boss__name) works now
53
- Fix: an old bug that made GridPanel misbehave after reordering the columns
54
-
55
- v0.3.10
56
- BasicApp-based widgets can now introduce arbitrary layout, following the convention of defining "main-panel" and "main-toolbar" panels with layout 'fit'.
57
-
58
- v0.3.9.1
59
- Bug fix: (regression) appLoaded() in BasicApp gets executed again
60
-
61
- v0.3.9
62
- AccordionPanel tests added
63
- TabPanel works now
64
- AccordionPanel replaced with more intuitive TabPanel in the configuration window
65
- Code clean-up by using "single" option to call appLoaded() on "afterlayout"
66
- Table editor bug fix
67
-
68
- v0.3.8
69
- Fixing Ext's EditableItem render problem.
70
- Filters by default enabled again in GridPanel.
71
- GridPanel enhancement: base_params get sent along with post_data.
72
-
73
- v0.3.7
74
- Netzke-core version sync.
75
- Rails 2.3.2 compatibility.
76
-
77
- v0.3.6
78
- Netzke-core v0.2.9 compatibility.
79
- Cleaner handling of custom renderers in GridPanel.
80
- New FormPanel-based PropertyEditor replaces PropertyGrid.
81
- Xcheckbox and check-column introduced.
82
- TODO file added.
83
- Bug fix: in TableEditor, the grid now responses on events also after being reconfigured.
84
- Bug fix: a couple of IE-related bugs.
85
- Significant code clean-up.
86
-
87
- v0.3.5
88
- Netzke-core v0.2.8 compatibility.
89
-
90
- v0.3.4
91
- Quick tips added to the "tools".
92
- Regression: the "General" configuration panel for GridPanel works again.
93
- GridPanel: rows_per_page configuration is now read from General config panel.
94
-
95
- v0.3.3.1
96
- Obviously using "new" as a property name in JavaScript isn't liked by Safari. Fixed.
97
-
98
- v0.3.3
99
- Bug fix: application not loading the widget specified in the URL (Ext.History-related).
100
- Some code refactoring and readability improvements.
101
- Ext.componentCache renamed into Ext.netzke.cache.
102
- New widget: TableEditor (a compound widget containing a grid and a form for editing table data).
103
- BorderLayoutPanel: a function getRegionWidget(region) added to access a widget in the specified region.
104
- Bug fix: BasicApp: FeedbackGhost now gets instantiated before BasicApp.
105
- Clearer handling of requests to non-existing aggregatees.
106
- Bug fix: now Ext 2.2.1 compatible.
107
- Column operations are now handled properly when :persistent_layout is set to false.
108
- Grid/Form fields configuration is extended with "ext_config" field which stores (in JSON-format) all the extra configuration, which gives extra flexibility to individual column/field configuration.
109
- :persistent_layout set to false now makes a widget ignore what's in the DB.
110
- Bug fix: AccordionPanel doesn't crash when no active item is specified.
111
- Bug fix: redundant flash messages for GridPanel.
112
- FeedbackGhost won't be showing anything if given an empty array.
113
- Cleaner handling of validations in GridPanel.
114
- FormPanel ready for the demo.
115
-
116
- v0.3.2
117
- Minor code restructuring.
118
- Working on FormPanel cont'd.
119
-
120
- v0.3.1
121
- Added the "conditions" configuration option to GridPanel to limit the search
122
- Basic column editor for grids has been replaced with FieldsConfigurator, which can do a bit more
123
- Added Checkbox column/form-field type for boolean fields
124
- "renderer" configuration option added for grid columns - any Ext.util.Format renderer can be specified there (thanks to Josh Holt for the initial idea)
125
-
126
- v0.3.0
127
- Added BasicApp widget - the base for a Ext.Viewport based ("application") widget with support for dynamic widget loading, browser history, authentification, and more. See the demo an http://netzke-demo.writelesscode.com
128
-
129
- v0.2.2
130
- Meta: updated netzke-core version (dependency)
131
-
132
- v0.2.1
133
- Regression: BorderLayoutPanel now restores the region sizes from the database
134
-
135
- v0.2.0.1
136
- Meta: updated netzke-core version (dependency)
137
-
138
- v0.2.0
139
- Some re-factoring and redesign along with netzke-core
140
- Panel widget added
141
- BorderLayoutPanel added
142
- AccordionPanel added
143
- Bug fix: column operations configuration misbehaving
144
- Renamed Grid into GridPanel
145
- Bug fix: exception was thrown at a column operation when no layout_manager was present
146
- Reworked permission handling in GridPanel.
147
-
148
- v0.1.4.1
149
- Meta: updated netzke-core version (dependency)
150
-
151
- v0.1.4
152
- Grid#get_columns provides default columns even if none of layout_manager_class & column_manager_class are available
153
-
154
- v0.1.3.1
155
- Meta: updated netzke-core version (dependency)
156
-
157
- v0.1.3
158
- Path to javascript for grid filters corrected
159
- Bug with creating new records in the grid fixed
160
- Optimized away redundant sql queries when calling Grid#get_columns (sort of memoization)
161
- README updated
162
-
163
- v0.1.2.1
164
- Meta: trying to succeed publishing on RubyForge
165
-
166
- v0.1.2
167
- Updated README with an example of stand-alone widget usage
168
- Meta: updated netzke-core version (dependency)
169
-
170
- v0.1.1.2
171
- Meta: updated netzke-core version (dependency)
172
-
173
- v0.1.1.1
174
- Meta: github gem naming convention
175
-
176
- v0.1.1
177
- Cleaner exception handling while loading data to grid
178
- Column resize & move functionality enabled by default
179
- Column filters added
180
-
181
- v0.1.0.1 Meta work: replacing underscore with dash in the name
182
-
183
- v0.1.0 Initial release
1
+ = v0.5.3 - 2009-10-12
2
+ * Compatibility with Ext 3.0 (and dropping compatibility with 2.x).
3
+ * Compatibility with netzke-core v0.4.4.
4
+ * Impr: Form/GridPanel-based widgets: more consistent Ext.Action-related functionality and code, like (context) menu, bbar, etc.
5
+ * Impr: GridPanel: <tt>rows_reordering_available</tt> is now true by default.
6
+ * Impr: TreePanel now sets "leaf" attribute to true if the node has no children.
7
+ * Impr: Grid/TreePanel now have persistent config enabled by default.
8
+ * Impr: if persistent_config is disabled, a widget won't be talking to the server in vain any more.
9
+ * Fix: GridPanel didn't fire row editing when the first column was a "checkbox" column.
10
+ * Fix: the GridPanel's <tt>:scopes</tt> parameter now correctly processes named scopes as strings inside the array, e.g.
11
+ :scopes => ["current", [:id_gt, 100]]
12
+ * Fix: on deleting records from GridPanel, <tt>destroy</tt> method is being called instead of <tt>delete</tt>.
13
+ * Fix: FieldsConfigurator made a little bit more stable.
14
+ * Fix: patching Ext's bug that caused double firing of "columnmove" in GridPanel.
15
+ * Fix: moving columns around in GridPanel was causing erroneous mapping of data to columns after data reload.
16
+
17
+ = v0.5.2 - 2009-09-24
18
+ * Fix: combobox options for association columns didn't work properly.
19
+ * Fix: GridPanel's multi-edit functionality didn't work.
20
+ * Fix: gem dependencies are now correct.
21
+
22
+ = v0.5.1 - 2009-09-11
23
+ * Fix: crash when FormPanel has no data_class_name specified.
24
+ * New: DataAccessor widgets (Form/GridPanel) now let the underlying model know which widget (i.e. which instance) accesses its data. Can be useful in virtual attributes for generating widget-specific HTML.
25
+ * Fix: DataAccessor widgets (Form/GridPanel) now don't crash when calculating default columns/fields for the underlying model that has polymorphic columns.
26
+ * Fix: TabPanel was sending redundant "tabchange" event to server when initially instantiated.
27
+ * Fix: column filters were making GridPanel crash when the column editor was set to "textarea".
28
+ * Fix: dongling comma and "delete" object properties caused problems in IE and Safari.
29
+ * Fix: a stand-alone TabPanel would not render the active item.
30
+ * New: BasicApp: masquerading as "World". In this mode all the "touched" persistent preferences will be overwritten for all roles and users.
31
+ * Impr: configuration panel's header now shows the underlying model's name for convenience.
32
+ * Fix: MasqueradeSelector widget added.
33
+
34
+ = v0.5.0 - 2009-09-06
35
+ * Major refactoring and code reorganization.
36
+ * Compatibility with netzke-core v0.4.0.
37
+ * New: GridPanel now supports adding/editing records in a form and extended configurable search.
38
+ * New: GridPanel now can be loaded along with initial data (saves a request to the server).
39
+ * New: context menu in GridPanel
40
+ * New: "scopes" configuration option added to GridPanel to specify the searchlogic-compatible scope for the data.
41
+ * New: "strong_default_attrs" config option added to GridPanel to specify the attributes that will be assigned to each record that is created or modified by the grid.
42
+ * Usability: GridPanel's actions now get enabled/disabled according to the current selection.
43
+ * Configuration panel for grids and forms now works more consistently.
44
+ * New: some smart defaults for column/fields in Grid/FormPanel.
45
+ * New: BasicApp supports masquerading and application-wide AJAX activity indicator.
46
+
47
+ = v0.4.2 - 2009-05-07
48
+ * Fix: afterlayout event bind removed completely because of some tricky inconsistent behavior of Ext. BasicApp initializing code put directly into js_after_constructor.
49
+
50
+ = v0.4.1 - 2009-05-07
51
+ * Fix: afterlayout call moved to js_after_constructor in BasicApp
52
+ * Fix: cleaner persistent_config handling
53
+ * New: default's configuration enabled for FormPanel on class-level
54
+ * Fix: differently configured forms on the same page were showing the same columns
55
+ * Fix: TableEditor was showing config-tool by default (must be hidden)
56
+
57
+ = v0.4.0 - 2009-05-07
58
+ * Refactor: got rid of NetzkeFormPanelField and NetzkeGridPanelColumn classes along with their tables. The layout is now stored in netzke_preferences.
59
+ * New: dynamic hiding of columns from column menu in GridPanel.
60
+ * New: FormPanel now supports combo boxes.
61
+ * Fix: config[:bbar] set to 'false' now works in grids with pagination
62
+ * New: you can specify :preloaded => true in a tab config in TabPanel to preload the widget in that tab along with the TabPanel itself
63
+ * New: hideBusy added to Ext.StatusBar
64
+ * Fix: assigning association (a Boss to a Clerk) by virtual column (like boss__name) works now
65
+ * Fix: an old bug that made GridPanel misbehave after reordering the columns
66
+
67
+ = v0.3.10
68
+ * BasicApp-based widgets can now introduce arbitrary layout, following the convention of defining "main-panel" and "main-toolbar" panels with layout 'fit'.
69
+
70
+ = v0.3.9.1
71
+ * Bug fix: (regression) appLoaded() in BasicApp gets executed again
72
+
73
+ = v0.3.9
74
+ * AccordionPanel tests added
75
+ * TabPanel works now
76
+ * AccordionPanel replaced with more intuitive TabPanel in the configuration window
77
+ * Code clean-up by using "single" option to call appLoaded() on "afterlayout"
78
+ * Table editor bug fix
79
+
80
+ = v0.3.8
81
+ * Fixing Ext's EditableItem render problem.
82
+ * Filters by default enabled again in GridPanel.
83
+ * GridPanel enhancement: base_params get sent along with post_data.
84
+
85
+ = v0.3.7
86
+ * Netzke-core version sync.
87
+ * Rails 2.3.2 compatibility.
88
+
89
+ = v0.3.6
90
+ * Netzke-core v0.2.9 compatibility.
91
+ * Cleaner handling of custom renderers in GridPanel.
92
+ * New FormPanel-based PropertyEditor replaces PropertyGrid.
93
+ * Xcheckbox and check-column introduced.
94
+ * TODO file added.
95
+ * Bug fix: in TableEditor, the grid now responses on events also after being reconfigured.
96
+ * Bug fix: a couple of IE-related bugs.
97
+ * Significant code clean-up.
98
+
99
+ = v0.3.5
100
+ * Netzke-core v0.2.8 compatibility.
101
+
102
+ = v0.3.4
103
+ * Quick tips added to the "tools".
104
+ * Regression: the "General" configuration panel for GridPanel works again.
105
+ * GridPanel: rows_per_page configuration is now read from General config panel.
106
+
107
+ = v0.3.3.1
108
+ * Obviously using "new" as a property name in JavaScript isn't liked by Safari. Fixed.
109
+
110
+ = v0.3.3
111
+ * Bug fix: application not loading the widget specified in the URL (Ext.History-related).
112
+ * Some code refactoring and readability improvements.
113
+ * Ext.componentCache renamed into Ext.netzke.cache.
114
+ * New widget: TableEditor (a compound widget containing a grid and a form for editing table data).
115
+ * BorderLayoutPanel: a function getRegionWidget(region) added to access a widget in the specified region.
116
+ * Bug fix: BasicApp: FeedbackGhost now gets instantiated before BasicApp.
117
+ * Clearer handling of requests to non-existing aggregatees.
118
+ * Bug fix: now Ext 2.2.1 compatible.
119
+ * Column operations are now handled properly when :persistent_layout is set to false.
120
+ * Grid/Form fields configuration is extended with "ext_config" field which stores (in JSON-format) all the extra configuration, which gives extra flexibility to individual column/field configuration.
121
+ * :persistent_layout set to false now makes a widget ignore what's in the DB.
122
+ * Bug fix: AccordionPanel doesn't crash when no active item is specified.
123
+ * Bug fix: redundant flash messages for GridPanel.
124
+ * FeedbackGhost won't be showing anything if given an empty array.
125
+ * Cleaner handling of validations in GridPanel.
126
+ * FormPanel ready for the demo.
127
+
128
+ = v0.3.2
129
+ * Minor code restructuring.
130
+ * Working on FormPanel cont'd.
131
+
132
+ = v0.3.1
133
+ * Added the "conditions" configuration option to GridPanel to limit the search
134
+ * Basic column editor for grids has been replaced with FieldsConfigurator, which can do a bit more
135
+ * Added Checkbox column/form-field type for boolean fields
136
+ * "renderer" configuration option added for grid columns - any Ext.util.Format renderer can be specified there (thanks to Josh Holt for the initial idea)
137
+
138
+ = v0.3.0
139
+ * Added BasicApp widget - the base for a Ext.Viewport based ("application") widget with support for dynamic widget loading, browser history, authentification, and more. See the demo an http://netzke-demo.writelesscode.com
140
+
141
+ = v0.2.2
142
+ * Meta: updated netzke-core version (dependency)
143
+
144
+ = v0.2.1
145
+ * Regression: BorderLayoutPanel now restores the region sizes from the database
146
+
147
+ = v0.2.0.1
148
+ * Meta: updated netzke-core version (dependency)
149
+
150
+ = v0.2.0
151
+ * Some re-factoring and redesign along with netzke-core
152
+ * Panel widget added
153
+ * BorderLayoutPanel added
154
+ * AccordionPanel added
155
+ * Bug fix: column operations configuration misbehaving
156
+ * Renamed Grid into GridPanel
157
+ * Bug fix: exception was thrown at a column operation when no layout_manager was present
158
+ * Reworked permission handling in GridPanel.
159
+
160
+ = v0.1.4.1
161
+ * Meta: updated netzke-core version (dependency)
162
+
163
+ = v0.1.4
164
+ * Grid#get_columns provides default columns even if none of layout_manager_class & column_manager_class are available
165
+
166
+ = v0.1.3.1
167
+ * Meta: updated netzke-core version (dependency)
168
+
169
+ = v0.1.3
170
+ * Path to javascript for grid filters corrected
171
+ * Bug with creating new records in the grid fixed
172
+ * Optimized away redundant sql queries when calling Grid#get_columns (sort of memoization)
173
+ * README updated
174
+
175
+ = v0.1.2.1
176
+ * Meta: trying to succeed publishing on RubyForge
177
+
178
+ = v0.1.2
179
+ * Updated README with an example of stand-alone widget usage
180
+ * Meta: updated netzke-core version (dependency)
181
+
182
+ = v0.1.1.2
183
+ * Meta: updated netzke-core version (dependency)
184
+
185
+ = v0.1.1.1
186
+ * Meta: github gem naming convention
187
+
188
+ = v0.1.1
189
+ * Cleaner exception handling while loading data to grid
190
+ * Column resize & move functionality enabled by default
191
+ * Column filters added
192
+
193
+ = v0.1.0.1
194
+ * Meta work: replacing underscore with dash in the name
195
+
196
+ = v0.1.0 - 2008-12-20
197
+ * Initial release
data/LICENSE CHANGED
@@ -1,3 +1 @@
1
- Copyright (c) 2008-2009 Sergei Kozlov
2
-
3
- GNU GPL license v3
1
+ Copyright (c) 2008-2009 Sergei Kozlov, released under the MIT license
data/README.rdoc CHANGED
@@ -1,22 +1,26 @@
1
1
  = netzke-basepack
2
- A pack of basic Rails/ExtJS widgets as a part of the Netzke framework. Live demo/tutorials on http://blog.writelesscode.com. Introduction to the Netzke framework: http://github.com/skozlov/netzke/tree/master
2
+ A pack of basic Rails/ExtJS widgets as a part of the Netzke framework. Live demo/tutorials on http://blog.writelesscode.com. Introduction to the Netzke framework and the Wiki: http://github.com/skozlov/netzke
3
3
 
4
4
  Note that if you would like to modify this code or experiment with it, you may be better off cloning this project into your app's vendor/plugin directory - it will then behave as a Rails plugin.
5
5
 
6
6
  = Prerequisites
7
7
  1. Rails >= 2.2
8
- 2. Ext JS >= 2.0: its root *must* be accessible as RAILS_ROOT/public/extjs. You may symlink your Ext JS library here like this (from your app folder):
9
- cd public && ln -s ~/Developer/extjs/ext-2.2 extjs
8
+ 2. Ext JS >= 3.0: its root *must* be accessible as RAILS_ROOT/public/extjs. You may symlink your Ext JS library here like this (from your app folder):
9
+ cd public && ln -s ~/Developer/extjs/ext-3.0 extjs
10
10
 
11
11
  3. acts_as_list plugin must be installed:
12
12
  ./script/plugin install git://github.com/rails/acts_as_list.git
13
13
 
14
+ 4. mislav-will_paginate >= 2.3.0
15
+ gem sources -a http://gems.github.com/
16
+ sudo gem install mislav-will_paginate
17
+
14
18
  = Installation
15
- Install the gem:
16
- gem install skozlov-netzke-basepack
19
+ Install Netzke gems:
20
+ gem install netzke-basepack
17
21
 
18
22
  Include it into environment.rb:
19
- config.gem "skozlov-netzke-basepack"
23
+ config.gem "netzke-basepack"
20
24
 
21
25
  Include mapping for Netzke controller providing *.js and *.css (in routes.rb):
22
26
  map.netzke
data/TODO.rdoc CHANGED
@@ -2,7 +2,10 @@
2
2
  * Make column/fields configuration fool-proof
3
3
  * Introduce three-state checkbox for SearchPanel
4
4
  * Add icons to buttons to actions (toolbars/menus)
5
+ * On grid refresh, reset the dirty fields, so that the "Apply" button doesn't do anything
6
+
7
+ == Optimizations
8
+ * Add indexes into tables
5
9
 
6
10
  == One day
7
- * Add status bar to BasicApp
8
- * Replace xcheckbox with checkbox in FormPanel
11
+ * Replace xcheckbox with checkbox in FormPanel
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.2
1
+ 0.5.3
@@ -96,15 +96,6 @@ Ext.netzke.filterMap = {
96
96
  datefield:'Date'
97
97
  };
98
98
 
99
- Ext.override(Ext.StatusBar, {
100
- hideBusy : function(){
101
- return this.setStatus({
102
- text: this.defaultText,
103
- iconCls: this.defaultIconCls
104
- });
105
- }
106
- });
107
-
108
99
  Ext.data.RecordArrayReader = Ext.extend(Ext.data.JsonReader, {
109
100
  /**
110
101
  * Create a data block containing Ext.data.Records from an Array.
@@ -784,4 +775,23 @@ Ext.ux.form.DateTime = Ext.extend(Ext.form.Field, {
784
775
  Ext.reg('xdatetime', Ext.ux.form.DateTime);
785
776
 
786
777
  // eof
787
-
778
+ Ext.grid.HeaderDropZone.prototype.onNodeDrop = function(n, dd, e, data){
779
+ var h = data.header;
780
+ if(h != n){
781
+ var cm = this.grid.colModel;
782
+ var x = Ext.lib.Event.getPageX(e);
783
+ var r = Ext.lib.Dom.getRegion(n.firstChild);
784
+ var pt = (r.right - x) <= ((r.right-r.left)/2) ? "after" : "before";
785
+ var oldIndex = this.view.getCellIndex(h);
786
+ var newIndex = this.view.getCellIndex(n);
787
+ if(pt == "after"){
788
+ newIndex++;
789
+ }
790
+ if(oldIndex < newIndex){
791
+ newIndex--;
792
+ }
793
+ cm.moveColumn(oldIndex, newIndex);
794
+ return true;
795
+ }
796
+ return false;
797
+ }