widget_list 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +10 -0
- data/.idea/workspace.xml +116 -62
- data/README.md +250 -108
- data/lib/widget_list.rb +706 -403
- data/lib/widget_list/railtie.rb +11 -1
- data/lib/widget_list/sequel.rb +95 -35
- data/lib/widget_list/version.rb +1 -1
- data/publish_gem.sh +1 -1
- data/vendor/assets/javascripts/widget_list.js +69 -4
- data/vendor/assets/stylesheets/widget_list.css +4 -4
- data/widget_list.gemspec +1 -1
- metadata +2 -2
data/.gitignore
CHANGED
data/.idea/workspace.xml
CHANGED
@@ -2,18 +2,16 @@
|
|
2
2
|
<project version="4">
|
3
3
|
<component name="ChangeListManager">
|
4
4
|
<list default="true" id="0bede1c9-1aed-4d82-8d14-4184b67697c4" name="Default" comment="">
|
5
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.gitignore" afterPath="$PROJECT_DIR$/.gitignore" />
|
5
6
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/.rakeTasks" afterPath="$PROJECT_DIR$/.idea/.rakeTasks" />
|
6
|
-
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/vendor/assets/images/gobblecons/README.rtf" afterPath="$PROJECT_DIR$/vendor/assets/images/gobblecons/README.rtf" />
|
7
7
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
8
8
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
|
9
|
-
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/extensions/action_controller_base.rb" afterPath="$PROJECT_DIR$/lib/extensions/action_controller_base.rb" />
|
10
9
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/widget_list.rb" afterPath="$PROJECT_DIR$/lib/widget_list.rb" />
|
11
|
-
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/widget_list/engine.rb" afterPath="$PROJECT_DIR$/lib/widget_list/engine.rb" />
|
12
10
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/widget_list/railtie.rb" afterPath="$PROJECT_DIR$/lib/widget_list/railtie.rb" />
|
13
11
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/widget_list/sequel.rb" afterPath="$PROJECT_DIR$/lib/widget_list/sequel.rb" />
|
14
|
-
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/widget_list/utils.rb" afterPath="$PROJECT_DIR$/lib/widget_list/utils.rb" />
|
15
12
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/widget_list/version.rb" afterPath="$PROJECT_DIR$/lib/widget_list/version.rb" />
|
16
|
-
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/
|
13
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/publish_gem.sh" afterPath="$PROJECT_DIR$/publish_gem.sh" />
|
14
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/vendor/assets/images/gobblecons/README.rtf" afterPath="$PROJECT_DIR$/vendor/assets/images/gobblecons/README.rtf" />
|
17
15
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/vendor/assets/javascripts/widget_list.js" afterPath="$PROJECT_DIR$/vendor/assets/javascripts/widget_list.js" />
|
18
16
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/vendor/assets/stylesheets/widget_list.css" afterPath="$PROJECT_DIR$/vendor/assets/stylesheets/widget_list.css" />
|
19
17
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/vendor/assets/stylesheets/widgets.css" afterPath="$PROJECT_DIR$/vendor/assets/stylesheets/widgets.css" />
|
@@ -48,23 +46,23 @@
|
|
48
46
|
<file leaf-file-name="widget_list.css" pinned="false" current="false" current-in-tab="false">
|
49
47
|
<entry file="file://$PROJECT_DIR$/vendor/assets/stylesheets/widget_list.css">
|
50
48
|
<provider selected="true" editor-type-id="text-editor">
|
51
|
-
<state line="
|
49
|
+
<state line="17" column="25" selection-start="220" selection-end="220" vertical-scroll-proportion="0.0">
|
52
50
|
<folding />
|
53
51
|
</state>
|
54
52
|
</provider>
|
55
53
|
</entry>
|
56
54
|
</file>
|
57
|
-
<file leaf-file-name="
|
58
|
-
<entry file="file://$PROJECT_DIR$/lib/widget_list/
|
55
|
+
<file leaf-file-name="engine.rb" pinned="false" current="false" current-in-tab="false">
|
56
|
+
<entry file="file://$PROJECT_DIR$/lib/widget_list/engine.rb">
|
59
57
|
<provider selected="true" editor-type-id="text-editor">
|
60
|
-
<state line="
|
58
|
+
<state line="8" column="74" selection-start="209" selection-end="209" vertical-scroll-proportion="0.0">
|
61
59
|
<folding />
|
62
60
|
</state>
|
63
61
|
</provider>
|
64
62
|
</entry>
|
65
63
|
</file>
|
66
|
-
<file leaf-file-name="
|
67
|
-
<entry file="file://$PROJECT_DIR$/
|
64
|
+
<file leaf-file-name="widget_list.js" pinned="false" current="false" current-in-tab="false">
|
65
|
+
<entry file="file://$PROJECT_DIR$/vendor/assets/javascripts/widget_list.js">
|
68
66
|
<provider selected="true" editor-type-id="text-editor">
|
69
67
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
70
68
|
<folding />
|
@@ -72,40 +70,40 @@
|
|
72
70
|
</provider>
|
73
71
|
</entry>
|
74
72
|
</file>
|
75
|
-
<file leaf-file-name="
|
76
|
-
<entry file="file://$PROJECT_DIR$/lib/widget_list
|
73
|
+
<file leaf-file-name="widget_list.rb" pinned="false" current="true" current-in-tab="true">
|
74
|
+
<entry file="file://$PROJECT_DIR$/lib/widget_list.rb">
|
77
75
|
<provider selected="true" editor-type-id="text-editor">
|
78
|
-
<state line="
|
76
|
+
<state line="513" column="208" selection-start="20683" selection-end="20683" vertical-scroll-proportion="0.72">
|
79
77
|
<folding />
|
80
78
|
</state>
|
81
79
|
</provider>
|
82
80
|
</entry>
|
83
81
|
</file>
|
84
|
-
<file leaf-file-name="
|
85
|
-
<entry file="file://$PROJECT_DIR$/
|
82
|
+
<file leaf-file-name="widget_list.gemspec" pinned="false" current="false" current-in-tab="false">
|
83
|
+
<entry file="file://$PROJECT_DIR$/widget_list.gemspec">
|
86
84
|
<provider selected="true" editor-type-id="text-editor">
|
87
|
-
<state line="
|
85
|
+
<state line="12" column="39" selection-start="696" selection-end="696" vertical-scroll-proportion="0.0">
|
88
86
|
<folding />
|
89
87
|
</state>
|
90
88
|
</provider>
|
91
89
|
</entry>
|
92
90
|
</file>
|
93
|
-
<file leaf-file-name="
|
94
|
-
<entry file="file://$PROJECT_DIR$/
|
91
|
+
<file leaf-file-name="railtie.rb" pinned="false" current="false" current-in-tab="false">
|
92
|
+
<entry file="file://$PROJECT_DIR$/lib/widget_list/railtie.rb">
|
95
93
|
<provider selected="true" editor-type-id="text-editor">
|
96
|
-
<state line="
|
97
|
-
<folding
|
98
|
-
<marker date="1357512344000" expanded="false" signature="2988:3014" placeholder="..." />
|
99
|
-
</folding>
|
94
|
+
<state line="32" column="0" selection-start="1326" selection-end="1326" vertical-scroll-proportion="0.0">
|
95
|
+
<folding />
|
100
96
|
</state>
|
101
97
|
</provider>
|
102
98
|
</entry>
|
103
99
|
</file>
|
104
|
-
<file leaf-file-name="
|
105
|
-
<entry file="file://$PROJECT_DIR$/lib/widget_list.rb">
|
100
|
+
<file leaf-file-name="sequel.rb" pinned="false" current="false" current-in-tab="false">
|
101
|
+
<entry file="file://$PROJECT_DIR$/lib/widget_list/sequel.rb">
|
106
102
|
<provider selected="true" editor-type-id="text-editor">
|
107
|
-
<state line="
|
108
|
-
<folding
|
103
|
+
<state line="88" column="32" selection-start="1965" selection-end="1965" vertical-scroll-proportion="0.0">
|
104
|
+
<folding>
|
105
|
+
<marker date="1360188109000" expanded="true" signature="13:700" placeholder=" ... end" />
|
106
|
+
</folding>
|
109
107
|
</state>
|
110
108
|
</provider>
|
111
109
|
</entry>
|
@@ -142,29 +140,28 @@
|
|
142
140
|
<option name="changedFiles">
|
143
141
|
<list>
|
144
142
|
<option value="$PROJECT_DIR$/lib/widget_list/md5.rb" />
|
145
|
-
<option value="$PROJECT_DIR$/widget_list.gemspec" />
|
146
143
|
<option value="$PROJECT_DIR$/lib/widget_list/tpl.rb" />
|
147
144
|
<option value="$PROJECT_DIR$/lib/extensions/action_controller_base.rb" />
|
148
145
|
<option value="$PROJECT_DIR$/vendor/assets/javascripts/widget_list.js" />
|
149
146
|
<option value="$PROJECT_DIR$/lib/widget_list/widgets.rb" />
|
150
147
|
<option value="$PROJECT_DIR$/lib/widget_list/utils.rb" />
|
151
148
|
<option value="$PROJECT_DIR$/lib/widget_list/string.rb" />
|
152
|
-
<option value="$PROJECT_DIR$/lib/widget_list/railtie.rb" />
|
153
|
-
<option value="$PROJECT_DIR$/lib/widget_list/sequel.rb" />
|
154
149
|
<option value="$PROJECT_DIR$/lib/widget_list/version.rb" />
|
155
150
|
<option value="$PROJECT_DIR$/README.md" />
|
156
151
|
<option value="$PROJECT_DIR$/lib/widget_list/engine.rb" />
|
157
|
-
<option value="$PROJECT_DIR$/vendor/assets/stylesheets/widget_list.css" />
|
158
152
|
<option value="$PROJECT_DIR$/vendor/assets/stylesheets/widgets.css" />
|
153
|
+
<option value="$PROJECT_DIR$/vendor/assets/stylesheets/widget_list.css" />
|
154
|
+
<option value="$PROJECT_DIR$/lib/widget_list/sequel.rb" />
|
155
|
+
<option value="$PROJECT_DIR$/lib/widget_list/railtie.rb" />
|
156
|
+
<option value="$PROJECT_DIR$/widget_list.gemspec" />
|
159
157
|
<option value="$PROJECT_DIR$/lib/widget_list.rb" />
|
160
158
|
</list>
|
161
159
|
</option>
|
162
160
|
</component>
|
163
161
|
<component name="ProjectFrameBounds">
|
164
|
-
<option name="x" value="-5" />
|
165
162
|
<option name="y" value="25" />
|
166
|
-
<option name="width" value="
|
167
|
-
<option name="height" value="
|
163
|
+
<option name="width" value="1680" />
|
164
|
+
<option name="height" value="897" />
|
168
165
|
</component>
|
169
166
|
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
170
167
|
<OptionsSetting value="true" id="Add" />
|
@@ -223,8 +220,54 @@
|
|
223
220
|
<option name="myItemId" value="vendor" />
|
224
221
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
225
222
|
</PATH_ELEMENT>
|
223
|
+
</PATH>
|
224
|
+
<PATH>
|
225
|
+
<PATH_ELEMENT>
|
226
|
+
<option name="myItemId" value="widget_list" />
|
227
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
228
|
+
</PATH_ELEMENT>
|
229
|
+
<PATH_ELEMENT>
|
230
|
+
<option name="myItemId" value="widget_list" />
|
231
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
232
|
+
</PATH_ELEMENT>
|
233
|
+
<PATH_ELEMENT>
|
234
|
+
<option name="myItemId" value="lib" />
|
235
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
236
|
+
</PATH_ELEMENT>
|
237
|
+
</PATH>
|
238
|
+
<PATH>
|
239
|
+
<PATH_ELEMENT>
|
240
|
+
<option name="myItemId" value="widget_list" />
|
241
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
242
|
+
</PATH_ELEMENT>
|
243
|
+
<PATH_ELEMENT>
|
244
|
+
<option name="myItemId" value="widget_list" />
|
245
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
246
|
+
</PATH_ELEMENT>
|
226
247
|
<PATH_ELEMENT>
|
227
|
-
<option name="myItemId" value="
|
248
|
+
<option name="myItemId" value="lib" />
|
249
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
250
|
+
</PATH_ELEMENT>
|
251
|
+
<PATH_ELEMENT>
|
252
|
+
<option name="myItemId" value="widget_list" />
|
253
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
254
|
+
</PATH_ELEMENT>
|
255
|
+
</PATH>
|
256
|
+
<PATH>
|
257
|
+
<PATH_ELEMENT>
|
258
|
+
<option name="myItemId" value="widget_list" />
|
259
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
260
|
+
</PATH_ELEMENT>
|
261
|
+
<PATH_ELEMENT>
|
262
|
+
<option name="myItemId" value="widget_list" />
|
263
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
264
|
+
</PATH_ELEMENT>
|
265
|
+
<PATH_ELEMENT>
|
266
|
+
<option name="myItemId" value="lib" />
|
267
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
268
|
+
</PATH_ELEMENT>
|
269
|
+
<PATH_ELEMENT>
|
270
|
+
<option name="myItemId" value="extensions" />
|
228
271
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
229
272
|
</PATH_ELEMENT>
|
230
273
|
</PATH>
|
@@ -348,14 +391,15 @@
|
|
348
391
|
<servers />
|
349
392
|
</component>
|
350
393
|
<component name="ToolWindowManager">
|
351
|
-
<frame x="
|
394
|
+
<frame x="0" y="25" width="1680" height="897" extended-state="0" />
|
352
395
|
<editor active="true" />
|
353
396
|
<layout>
|
354
397
|
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
355
398
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
399
|
+
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3277202" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
356
400
|
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
357
401
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
|
358
|
-
<window_info id="Project" active="
|
402
|
+
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.21182266" sideWeight="0.6722798" order="0" side_tool="false" content_ui="combo" />
|
359
403
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.56913185" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
360
404
|
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
361
405
|
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
@@ -364,7 +408,6 @@
|
|
364
408
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
365
409
|
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
366
410
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
367
|
-
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3279703" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
368
411
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
369
412
|
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
370
413
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
@@ -420,7 +463,14 @@
|
|
420
463
|
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
|
421
464
|
</component>
|
422
465
|
<component name="XDebuggerManager">
|
423
|
-
<breakpoint-manager
|
466
|
+
<breakpoint-manager>
|
467
|
+
<breakpoints>
|
468
|
+
<line-breakpoint enabled="true" type="ruby-line">
|
469
|
+
<url>file://$PROJECT_DIR$/lib/widget_list.rb</url>
|
470
|
+
<line>2292</line>
|
471
|
+
</line-breakpoint>
|
472
|
+
</breakpoints>
|
473
|
+
</breakpoint-manager>
|
424
474
|
</component>
|
425
475
|
<component name="editorHistoryManager">
|
426
476
|
<entry file="file://$PROJECT_DIR$/lib/widget_list/widgets.rb">
|
@@ -433,21 +483,11 @@
|
|
433
483
|
<state line="88" column="3" selection-start="1904" selection-end="1904" vertical-scroll-proportion="0.0" />
|
434
484
|
</provider>
|
435
485
|
</entry>
|
436
|
-
<entry file="file://$PROJECT_DIR$/lib/widget_list/sequel.rb">
|
437
|
-
<provider selected="true" editor-type-id="text-editor">
|
438
|
-
<state line="127" column="29" selection-start="3617" selection-end="3617" vertical-scroll-proportion="0.0" />
|
439
|
-
</provider>
|
440
|
-
</entry>
|
441
486
|
<entry file="file://$PROJECT_DIR$/lib/widget_list/version.rb">
|
442
487
|
<provider selected="true" editor-type-id="text-editor">
|
443
488
|
<state line="3" column="51" selection-start="42" selection-end="42" vertical-scroll-proportion="0.0" />
|
444
489
|
</provider>
|
445
490
|
</entry>
|
446
|
-
<entry file="file://$PROJECT_DIR$/widget_list.gemspec">
|
447
|
-
<provider selected="true" editor-type-id="text-editor">
|
448
|
-
<state line="13" column="49" selection-start="763" selection-end="763" vertical-scroll-proportion="0.4183267" />
|
449
|
-
</provider>
|
450
|
-
</entry>
|
451
491
|
<entry file="file://$PROJECT_DIR$/README.md">
|
452
492
|
<provider selected="true" editor-type-id="text-editor">
|
453
493
|
<state line="290" column="41" selection-start="11319" selection-end="11319" vertical-scroll-proportion="0.058252428" />
|
@@ -467,13 +507,6 @@
|
|
467
507
|
</state>
|
468
508
|
</provider>
|
469
509
|
</entry>
|
470
|
-
<entry file="file://$PROJECT_DIR$/lib/widget_list/railtie.rb">
|
471
|
-
<provider selected="true" editor-type-id="text-editor">
|
472
|
-
<state line="17" column="46" selection-start="867" selection-end="867" vertical-scroll-proportion="0.0">
|
473
|
-
<folding />
|
474
|
-
</state>
|
475
|
-
</provider>
|
476
|
-
</entry>
|
477
510
|
<entry file="file://$PROJECT_DIR$/lib/widget_list/md5.rb">
|
478
511
|
<provider selected="true" editor-type-id="text-editor">
|
479
512
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
@@ -498,29 +531,50 @@
|
|
498
531
|
<entry file="file://$PROJECT_DIR$/vendor/assets/javascripts/widget_list.js">
|
499
532
|
<provider selected="true" editor-type-id="text-editor">
|
500
533
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
534
|
+
<folding />
|
535
|
+
</state>
|
536
|
+
</provider>
|
537
|
+
</entry>
|
538
|
+
<entry file="file://$PROJECT_DIR$/vendor/assets/stylesheets/widgets.css">
|
539
|
+
<provider selected="true" editor-type-id="text-editor">
|
540
|
+
<state line="64" column="47" selection-start="1068" selection-end="1068" vertical-scroll-proportion="0.0">
|
541
|
+
<folding />
|
542
|
+
</state>
|
543
|
+
</provider>
|
544
|
+
</entry>
|
545
|
+
<entry file="file://$PROJECT_DIR$/vendor/assets/stylesheets/widget_list.css">
|
546
|
+
<provider selected="true" editor-type-id="text-editor">
|
547
|
+
<state line="17" column="25" selection-start="220" selection-end="220" vertical-scroll-proportion="0.0">
|
548
|
+
<folding />
|
549
|
+
</state>
|
550
|
+
</provider>
|
551
|
+
</entry>
|
552
|
+
<entry file="file://$PROJECT_DIR$/lib/widget_list/sequel.rb">
|
553
|
+
<provider selected="true" editor-type-id="text-editor">
|
554
|
+
<state line="88" column="32" selection-start="1965" selection-end="1965" vertical-scroll-proportion="0.0">
|
501
555
|
<folding>
|
502
|
-
<marker date="
|
556
|
+
<marker date="1360188109000" expanded="true" signature="13:700" placeholder=" ... end" />
|
503
557
|
</folding>
|
504
558
|
</state>
|
505
559
|
</provider>
|
506
560
|
</entry>
|
507
|
-
<entry file="file://$PROJECT_DIR$/
|
561
|
+
<entry file="file://$PROJECT_DIR$/lib/widget_list/railtie.rb">
|
508
562
|
<provider selected="true" editor-type-id="text-editor">
|
509
|
-
<state line="
|
563
|
+
<state line="32" column="0" selection-start="1326" selection-end="1326" vertical-scroll-proportion="0.0">
|
510
564
|
<folding />
|
511
565
|
</state>
|
512
566
|
</provider>
|
513
567
|
</entry>
|
514
|
-
<entry file="file://$PROJECT_DIR$/
|
568
|
+
<entry file="file://$PROJECT_DIR$/widget_list.gemspec">
|
515
569
|
<provider selected="true" editor-type-id="text-editor">
|
516
|
-
<state line="
|
570
|
+
<state line="12" column="39" selection-start="696" selection-end="696" vertical-scroll-proportion="0.0">
|
517
571
|
<folding />
|
518
572
|
</state>
|
519
573
|
</provider>
|
520
574
|
</entry>
|
521
575
|
<entry file="file://$PROJECT_DIR$/lib/widget_list.rb">
|
522
576
|
<provider selected="true" editor-type-id="text-editor">
|
523
|
-
<state line="
|
577
|
+
<state line="513" column="208" selection-start="20683" selection-end="20683" vertical-scroll-proportion="0.72">
|
524
578
|
<folding />
|
525
579
|
</state>
|
526
580
|
</provider>
|
data/README.md
CHANGED
@@ -54,6 +54,158 @@ You can either follow the below instructions or take a look at the changes here
|
|
54
54
|
|
55
55
|
I recommend if you use widget_list in production that you use config.consider_all_requests_local = true as errors will be handled but the base lists will still draw.
|
56
56
|
|
57
|
+
|
58
|
+
## Feature Configurations
|
59
|
+
|
60
|
+
widget_list features and configurations primarily work by a single large hash passed to the constructor with the features you need for the given request which changes how the list is displayed or filtered.
|
61
|
+
|
62
|
+
`name` - The unique name/id's of all the pieces that make up your widget list `default=([*('A'..'Z'),*('0'..'9')]-%w(0 1 I O)).sample(16).join`
|
63
|
+
|
64
|
+
`database` - You can pass which DB connection you would like to use for each list. Only two values/db connections are supported ('primary' or 'secondary') `default='primary'`
|
65
|
+
|
66
|
+
`title` - This adds an H1 title and horizontal rule on top of your list `default=''`
|
67
|
+
|
68
|
+
`listDescription` - This adds a grey header box. It is useful for describing the main query `default=''`
|
69
|
+
|
70
|
+
`pageId` - Base path for requests (typically you never need to change this) `default=$_SERVER['PATH_INFO']`
|
71
|
+
|
72
|
+
`view` - A sub-select query to your database (ALWAYS ALIASED) `default=''`
|
73
|
+
|
74
|
+
`data` - A "sequel" formatted resultset like would be returned from _select() method. Instead of running a SQL query, you can pass an array to populate the list `default={}`
|
75
|
+
|
76
|
+
`collClass` - Your custom <td> class for all <td>'s `default=''`
|
77
|
+
|
78
|
+
`align` - <td> align attribute for all <td>'s `default=''`
|
79
|
+
|
80
|
+
`fields` - The visible fields shown in the current list. KEY=column name VALUE= displayed column header `default={}`
|
81
|
+
|
82
|
+
`fieldsHidden` - The non-visible fields in the current list. Typically used when you wish to search on this column, but the main column is a drilldown or some HTML value that isnt easily searchable. VALUE=column name `default=[]`
|
83
|
+
|
84
|
+
`bindVars` - bindVars that are passed to _select() sequel extension I wrote. Which will replace "?" in your query with the associated bindVar `default=[]`
|
85
|
+
|
86
|
+
`bindVarsLegacy` - A Hash whose KEYS ARE CAPITALIZED and whose value is the replacement string. Inside the "view" you would use :MY_KEY as the template to be replaced `default={}`
|
87
|
+
|
88
|
+
`links` - Turn text based record value into a link. KEY=column name VALUE=hash of link Config. Links should most likely pass ['tags']['field_name'] = 'get_var_name' (would yeild get_var_name=1234 for that field value 1234). You can pass ['tags']['onclick'] if you dont want to call ButtonLinkPost which will redirect to the URL built. If you pass ['onclick']['tags'], each field passed will be passed as a parameter for the function you designate `default={}`
|
89
|
+
|
90
|
+
`buttons` - Buttons to generate for each row. KEY=column name VALUE=Hash of widget_button attributes `default={}`
|
91
|
+
|
92
|
+
`inputs` - widget_check is the only one supported so far. (See examples) `default={}`
|
93
|
+
|
94
|
+
`filter` - << "xxx = 123" would be the syntax to add a new filter array. (See examples) `default=[]`
|
95
|
+
|
96
|
+
`groupBy` - The column name or CSV of names to group by. (See examples) `default=[]`
|
97
|
+
|
98
|
+
`rowStart` - Which page the list should start at `default=0`
|
99
|
+
|
100
|
+
`rowLimit` - How many rows per page? `default=10`
|
101
|
+
|
102
|
+
`orderBy` - Default order by "column_name DIRECTION" `default=''`
|
103
|
+
|
104
|
+
`allowHTML` - Strip HTML from view or not `default=true`
|
105
|
+
|
106
|
+
`strlength` - Strip HTML from view or not `default=true`
|
107
|
+
|
108
|
+
`searchClear` - Clear the list's search session `default=false`
|
109
|
+
|
110
|
+
`searchClearAll` - Clear all search session for all lists `default=false`
|
111
|
+
|
112
|
+
`showPagination` - Show pagination HTML `default=true`
|
113
|
+
|
114
|
+
`searchSession` - Remember and restore the last search performed `default=true`
|
115
|
+
|
116
|
+
`carryOverRequests` - will allow you to post custom things from request to all sort/paging URLS for each ajax. Takes an array of GETVARS which will be passed to each request `default=['switch_grouping']`
|
117
|
+
|
118
|
+
`customFooter` - Add buttons or HTML at bottom area of list inside the grey box `default=''`
|
119
|
+
|
120
|
+
`customHeader` - Add buttons or HTML at top area of list above all headers (such as TABS to delineate Summary/Details) `default=''`
|
121
|
+
|
122
|
+
`ajaxFunctionAll` - Custom javascript called asychronously during each click of each event someone interacts with on the list `default=''`
|
123
|
+
|
124
|
+
`ajaxFunction` - Mostly an internal setting `default='ListJumpMin'`
|
125
|
+
|
126
|
+
`showSearch` - Show top search bar `default=true`
|
127
|
+
|
128
|
+
`searchOnkeyup` - Search on key up event `default=''`
|
129
|
+
|
130
|
+
`searchOnclick` - Search on click event `default=''`
|
131
|
+
|
132
|
+
`searchIdCol` - By default `id` column is here because typically if you call your PK's id and are auto-increment and numeric. This can also take in an array of numeric fields so that users can search CSV's of numbers and get back matches `default='id'`
|
133
|
+
|
134
|
+
`searchTitle` - Set a title for the search input `default= 'Search by Id or a list of Ids and more'`
|
135
|
+
|
136
|
+
`searchFieldsIn` - White list of fields to include in a alpha-numeric based like '%%' search `default={}`
|
137
|
+
|
138
|
+
`searchFieldsOut` - Black list of fields to exclude in a alpha-numeric based search `default={'id'=>true}`
|
139
|
+
|
140
|
+
`showExport` - Allow users to export current list view as CSV `default=true`
|
141
|
+
|
142
|
+
`exportButtonTitle` - Title of button `default='Export CSV'`
|
143
|
+
|
144
|
+
`groupByItems` - Custom drop down's created by passing an array of modes. Best suited to group by the data `default=[]`
|
145
|
+
|
146
|
+
`groupBySelected` - Initially selected grouping - defaults to first in list if not. Please pass the string value of the "groupByItem" `default=false`
|
147
|
+
|
148
|
+
`groupByLabel` - Label describing select box `default='Group By'`
|
149
|
+
|
150
|
+
`groupByClick` - Function to call as a custom function for each click on an item `default=''`
|
151
|
+
|
152
|
+
`groupByClickDefault` - Default group by handler inside widget_list.js `default="ListChangeGrouping('<!--NAME-->', this);"`
|
153
|
+
|
154
|
+
`listSearchForm` - Allows you to pass a custom form for the ARROW drop down for advanced searching `default=''`
|
155
|
+
|
156
|
+
`columnStyle` - Column styles. KEY=column name VALUE= the inline style applied `default={}`
|
157
|
+
|
158
|
+
`columnClass` - Column class. KEY=column name VALUE= the class name `default={}`
|
159
|
+
|
160
|
+
`columnPopupTitle` - Column title as you hover over. KEY=column name VALUE=Popup text `default={}`
|
161
|
+
|
162
|
+
`columnWidth` - Column widths. KEY=column name VALUE= '100px' `default={}`
|
163
|
+
|
164
|
+
`columnNoSort` - Dont allow sorting on these columns (By default all visible columns have a sort link built). KEY=column name VALUE=column name `default={}`
|
165
|
+
|
166
|
+
`borderedColumns` - Add a right border to each column. `default=false`
|
167
|
+
|
168
|
+
`borderColumnStyle` - Style of row if you use this above feature. `default='1px solid #CCCCCC'`
|
169
|
+
|
170
|
+
`rowClass` - Class added to all rows `default=''`
|
171
|
+
|
172
|
+
`rowColorByStatus` - {'rowColorByStatus' =>
|
173
|
+
{'active'=>
|
174
|
+
{'No' => '#EBEBEB' }
|
175
|
+
}
|
176
|
+
}
|
177
|
+
Color a row based on the value of the column.
|
178
|
+
`default={}`
|
179
|
+
|
180
|
+
`rowStylesByStatus` - {'rowStylesByStatus' =>
|
181
|
+
{'active'=>
|
182
|
+
{'No' => 'font-style:italic;color:red;' }
|
183
|
+
}
|
184
|
+
}
|
185
|
+
Style a row based on the value of the column.
|
186
|
+
`default={}`
|
187
|
+
|
188
|
+
`rowOffsets` - Color for each row and offset `default=['FFFFFF','FFFFFF']`
|
189
|
+
|
190
|
+
`noDataMessage` - Message to show when no data is found `default='Currently no data.'`
|
191
|
+
|
192
|
+
`useSort` - Allow sorting on list `default=true`
|
193
|
+
|
194
|
+
`headerClass` - Class of each individual header column `default={}`
|
195
|
+
|
196
|
+
`fieldFunction` - A way to wrap or inject columns or SQL formatting in place of your columns `default={}`
|
197
|
+
|
198
|
+
`template` - Pass in a custom template for outer shell `default=''`
|
199
|
+
|
200
|
+
`templateFilter` - Instead of widget list building your search box. Pass your own HTML `default=''`
|
201
|
+
|
202
|
+
`storeSessionChecks` - See http://stackoverflow.com/questions/1928204/marshal-data-too-short for configuring larger session storage which checkboxes would eat up if you had this set to true `default=false`
|
203
|
+
|
204
|
+
`columnHooks` - Todo `default={}`
|
205
|
+
|
206
|
+
`rowHooks` - Todo `default={}`
|
207
|
+
|
208
|
+
|
57
209
|
### #1 - Add widget_list CSS and JS to your application css and js
|
58
210
|
|
59
211
|
Change application.css to:
|
@@ -97,22 +249,22 @@ I recommend if you use widget_list in production that you use config.consider_al
|
|
97
249
|
# Load Sample "items" Data. Comment out in your first time executing a widgetlist to create the items table
|
98
250
|
#
|
99
251
|
begin
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
252
|
+
WidgetList::List.get_database.create_table :items do
|
253
|
+
primary_key :id
|
254
|
+
String :name
|
255
|
+
Float :price
|
256
|
+
Fixnum :sku
|
257
|
+
String :active
|
258
|
+
Date :date_added
|
259
|
+
end
|
260
|
+
items = WidgetList::List.get_database[:items]
|
261
|
+
100.times {
|
262
|
+
items.insert(:name => 'ab\'c_quoted_' + rand(35).to_s, :price => rand * 100, :date_added => '2008-02-01', :sku => rand(9999), :active => 'Yes')
|
263
|
+
items.insert(:name => '12"3_' + rand(35).to_s, :price => rand * 100, :date_added => '2008-02-02', :sku => rand(9999), :active => 'Yes')
|
264
|
+
items.insert(:name => 'asdf_' + rand(35).to_s, :price => rand * 100, :date_added => '2008-02-03', :sku => rand(9999), :active => 'Yes')
|
265
|
+
items.insert(:name => 'qwerty_' + rand(35).to_s, :price => rand * 100, :date_added => '2008-02-04', :sku => rand(9999), :active => 'No')
|
266
|
+
items.insert(:name => 'meow_' + rand(35).to_s, :price => rand * 100, :date_added => '2008-02-05', :sku => rand(9999), :active => 'No')
|
267
|
+
}
|
116
268
|
rescue Exception => e
|
117
269
|
#
|
118
270
|
# Table already exists
|
@@ -168,8 +320,7 @@ I recommend if you use widget_list in production that you use config.consider_al
|
|
168
320
|
list_parms['listDescription'] += 'Showing All Ruby Items' + groupByDesc
|
169
321
|
end
|
170
322
|
|
171
|
-
|
172
|
-
|
323
|
+
# put <%= @output %> inside your view for initial load nothing to do here other than any custom concatenation of multiple lists
|
173
324
|
#
|
174
325
|
# Setup your first widget_list
|
175
326
|
#
|
@@ -177,21 +328,30 @@ I recommend if you use widget_list in production that you use config.consider_al
|
|
177
328
|
button_column_name = 'actions'
|
178
329
|
|
179
330
|
#
|
180
|
-
#
|
331
|
+
# customFooter will add buttons to the bottom of the list.
|
181
332
|
#
|
182
333
|
|
183
|
-
|
334
|
+
list_parms['customFooter'] = WidgetList::Widgets::widget_button('Add New Item', {'page' => '/add/'} ) + WidgetList::Widgets::widget_button('Do something else', {'page' => '/else/'} )
|
184
335
|
|
185
336
|
#
|
186
337
|
# Give some SQL to feed widget_list and set a noDataMessage
|
187
338
|
#
|
188
339
|
list_parms['searchIdCol'] = ['id','sku']
|
340
|
+
|
341
|
+
#
|
342
|
+
# Because sku_linked column is being used and the raw SKU is hidden, we need to make this available for searching via fields_hidden
|
343
|
+
#
|
344
|
+
list_parms['fieldsHidden'] = ['sku']
|
345
|
+
|
346
|
+
drill_downs = []
|
347
|
+
drill_downs << WidgetList::List::build_drill_down_link(list_parms['name'],'filter_by_name','a.name','a.name','name_linked')
|
348
|
+
drill_downs << WidgetList::List::build_drill_down_link(list_parms['name'],'filter_by_sku','a.sku','a.sku','sku_linked')
|
349
|
+
|
189
350
|
list_parms['view'] = '(
|
190
351
|
SELECT
|
191
352
|
' + countSQL + '
|
353
|
+
' + drill_downs.join(' , ') + ',
|
192
354
|
\'\' AS checkbox,
|
193
|
-
' + WidgetList::List::build_drill_down_link(list_parms['name'],'filter_by_name','a.name','a.name','name_linked') + '
|
194
|
-
' + WidgetList::List::build_drill_down_link(list_parms['name'],'filter_by_sku','a.sku','a.sku','sku_linked') + '
|
195
355
|
a.id AS id,
|
196
356
|
a.active AS active,
|
197
357
|
a.name AS name,
|
@@ -202,6 +362,22 @@ I recommend if you use widget_list in production that you use config.consider_al
|
|
202
362
|
items a
|
203
363
|
' + groupBySQL + '
|
204
364
|
) a'
|
365
|
+
|
366
|
+
#
|
367
|
+
# Map out the visible fields
|
368
|
+
#
|
369
|
+
list_parms['fields'] = {}
|
370
|
+
list_parms['fields']['checkbox'] = 'checkbox_header'
|
371
|
+
list_parms['fields']['cnt'] = 'Total Items In Group' if groupByFilter != 'none'
|
372
|
+
list_parms['fields']['id'] = 'Item Id' if groupByFilter == 'none'
|
373
|
+
list_parms['fields']['name_linked'] = 'Name' if groupByFilter == 'none' or groupByFilter == 'item'
|
374
|
+
list_parms['fields']['price'] = 'Price of Item' if groupByFilter == 'none'
|
375
|
+
list_parms['fields']['sku_linked'] = 'Sku #' if groupByFilter == 'none' or groupByFilter == 'sku'
|
376
|
+
list_parms['fields']['date_added'] = 'Date Added' if groupByFilter == 'none'
|
377
|
+
list_parms['fields']['active'] = 'Active Item' if groupByFilter == 'none'
|
378
|
+
list_parms['fields'][button_column_name] = button_column_name.capitalize if groupByFilter == 'none'
|
379
|
+
|
380
|
+
|
205
381
|
list_parms['noDataMessage'] = 'No Ruby Items Found'
|
206
382
|
list_parms['title'] = 'Ruby Items!!!'
|
207
383
|
|
@@ -228,6 +404,12 @@ I recommend if you use widget_list in production that you use config.consider_al
|
|
228
404
|
|
229
405
|
list_parms['groupByItems'] = ['All Records', 'Item Name', 'Sku Number']
|
230
406
|
|
407
|
+
|
408
|
+
#
|
409
|
+
# Setup a custom field for checkboxes stored into the session and reloaded when refresh occurs
|
410
|
+
#
|
411
|
+
list_parms = WidgetList::List.checkbox_helper(list_parms,'id')
|
412
|
+
|
231
413
|
#
|
232
414
|
# Generate a template for the DOWN ARROW for CUSTOM FILTER
|
233
415
|
#
|
@@ -243,7 +425,7 @@ I recommend if you use widget_list in production that you use config.consider_al
|
|
243
425
|
button_search = {}
|
244
426
|
button_search['onclick'] = "alert('This would search, but is not coded. That is for you to do')"
|
245
427
|
|
246
|
-
list_parms['
|
428
|
+
list_parms['listSearchForm'] = WidgetList::Utils::fill( {
|
247
429
|
'<!--BUTTON_SEARCH-->' => WidgetList::Widgets::widget_button('Search', button_search),
|
248
430
|
'<!--COMMENTS-->' => WidgetList::Widgets::widget_input(input),
|
249
431
|
'<!--BUTTON_CLOSE-->' => "HideAdvancedSearch(this)" } ,
|
@@ -258,45 +440,44 @@ I recommend if you use widget_list in production that you use config.consider_al
|
|
258
440
|
</ul>
|
259
441
|
<br/>
|
260
442
|
<div style="text-align:right;width:100%;height:30px;" class="advanced-search-container-buttons"><!--BUTTON_RESET--><!--BUTTON_SEARCH--></div>
|
261
|
-
</div>'
|
443
|
+
</div>'
|
444
|
+
# or to keep HTML out of controller render_to_string(:partial => 'partials/form_xxx')
|
445
|
+
)
|
262
446
|
|
263
447
|
#
|
264
448
|
# Control widths of special fields
|
265
449
|
#
|
266
450
|
|
267
451
|
list_parms['columnWidth'] = {
|
268
|
-
|
269
|
-
|
270
|
-
|
452
|
+
'date_added'=>'200px',
|
453
|
+
'sku_linked'=>'20px',
|
454
|
+
}
|
271
455
|
|
272
456
|
#
|
273
457
|
# If certain statuses of records are shown, visualize
|
274
458
|
#
|
275
459
|
|
276
460
|
list_parms.deep_merge!({'rowStylesByStatus' =>
|
277
|
-
|
278
|
-
|
279
|
-
|
461
|
+
{'active'=>
|
462
|
+
{'Yes' => '' }
|
463
|
+
}
|
280
464
|
})
|
281
465
|
list_parms.deep_merge!({'rowStylesByStatus' =>
|
282
|
-
|
283
|
-
|
284
|
-
|
466
|
+
{'active'=>
|
467
|
+
{'No' => 'font-style:italic;color:red;' }
|
468
|
+
}
|
285
469
|
})
|
286
470
|
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
list_parms
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
list_parms['fields']['date_added'] = 'Date Added' if groupByFilter == 'none'
|
298
|
-
list_parms['fields']['active'] = 'Active Item' if groupByFilter == 'none'
|
299
|
-
list_parms['fields'][button_column_name] = button_column_name.capitalize if groupByFilter == 'none'
|
471
|
+
list_parms.deep_merge!({'rowColorByStatus' =>
|
472
|
+
{'active'=>
|
473
|
+
{'Yes' => '' }
|
474
|
+
}
|
475
|
+
})
|
476
|
+
list_parms.deep_merge!({'rowColorByStatus' =>
|
477
|
+
{'active'=>
|
478
|
+
{'No' => '#EBEBEB' }
|
479
|
+
}
|
480
|
+
})
|
300
481
|
|
301
482
|
|
302
483
|
list_parms['columnPopupTitle'] = {}
|
@@ -308,79 +489,40 @@ I recommend if you use widget_list in production that you use config.consider_al
|
|
308
489
|
list_parms['columnPopupTitle']['sku_linked'] = 'Sku # (Click to drill down)'
|
309
490
|
list_parms['columnPopupTitle']['date_added'] = 'The date the item was added to the database'
|
310
491
|
list_parms['columnPopupTitle']['active'] = 'Is the item active?'
|
311
|
-
#
|
312
|
-
# Setup a custom field for checkboxes stored into the session and reloaded when refresh occurs
|
313
|
-
#
|
314
492
|
|
315
|
-
|
316
|
-
{'checkbox'=>
|
317
|
-
{'type' => 'checkbox'
|
318
|
-
}
|
319
|
-
}
|
320
|
-
})
|
493
|
+
output_type, output = WidgetList::List.build_list(list_parms)
|
321
494
|
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
})
|
495
|
+
case output_type
|
496
|
+
when 'html'
|
497
|
+
# put <%= @output %> inside your view for initial load nothing to do here other than any custom concatenation of multiple lists
|
498
|
+
@output = output
|
499
|
+
when 'json'
|
500
|
+
return render :inline => output
|
501
|
+
when 'export'
|
502
|
+
send_data(output, :filename => list_parms['name'] + '.csv')
|
503
|
+
return
|
504
|
+
end
|
333
505
|
|
334
|
-
|
335
|
-
{'checkbox_header'=>
|
336
|
-
{'type' => 'checkbox'
|
337
|
-
}
|
338
|
-
}
|
339
|
-
})
|
506
|
+
rescue Exception => e
|
340
507
|
|
341
|
-
|
342
|
-
{'checkbox_header'=>
|
343
|
-
{'items' =>
|
344
|
-
{
|
345
|
-
'check_all' => true,
|
346
|
-
'id' => 'info_tables_check_all',
|
347
|
-
'class_handle' => 'info_tables',
|
348
|
-
}
|
349
|
-
}
|
350
|
-
}
|
351
|
-
})
|
352
|
-
list = WidgetList::List.new(list_parms)
|
508
|
+
Rails.logger.info e.to_s + "\n\n" + $!.backtrace.join("\n\n")
|
353
509
|
|
354
|
-
#
|
355
|
-
#
|
356
|
-
|
357
|
-
if $_REQUEST.key?('BUTTON_VALUE') && $_REQUEST['LIST_NAME'] == list_parms['name']
|
510
|
+
#really this block is just to catch initial ruby errors in setting up your list_parms
|
511
|
+
#I suggest taking out this rescue when going to production
|
512
|
+
output_type, output = WidgetList::List.build_list(list_parms)
|
358
513
|
|
359
|
-
|
360
|
-
|
514
|
+
case output_type
|
515
|
+
when 'html'
|
516
|
+
@output = output
|
517
|
+
when 'json'
|
518
|
+
return render :inline => output
|
519
|
+
when 'export'
|
520
|
+
send_data(output, :filename => list_parms['name'] + '.csv')
|
361
521
|
return
|
362
|
-
end
|
363
|
-
|
364
|
-
ret = {}
|
365
|
-
ret['list'] = WidgetList::Utils::fill({ '<!--CUSTOM_CONTENT-->' => action_buttons } , list.render() )
|
366
|
-
ret['list_id'] = list_parms['name']
|
367
|
-
ret['callback'] = 'ListSearchAheadResponse'
|
368
|
-
return render :inline => WidgetList::Utils::json_encode(ret)
|
369
|
-
else
|
370
|
-
#
|
371
|
-
# Else assign to variable for view
|
372
|
-
#
|
373
|
-
@output = WidgetList::Utils::fill({ '<!--CUSTOM_CONTENT-->' => action_buttons } , list.render() )
|
374
522
|
end
|
375
523
|
|
376
|
-
rescue Exception => e
|
377
|
-
|
378
|
-
list = WidgetList::List.new(list_parms)
|
379
|
-
@output = WidgetList::Utils::fill({ '<!--CUSTOM_CONTENT-->' => action_buttons } , list.render() )
|
380
|
-
|
381
524
|
end
|
382
525
|
|
383
|
-
|
384
526
|
## Contributing
|
385
527
|
|
386
528
|
1. Fork it
|