widget_list 1.0.3 → 1.0.4

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/.idea/workspace.xml CHANGED
@@ -4,6 +4,7 @@
4
4
  <list default="true" id="0bede1c9-1aed-4d82-8d14-4184b67697c4" name="Default" comment="">
5
5
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/.rakeTasks" afterPath="$PROJECT_DIR$/.idea/.rakeTasks" />
6
6
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/vendor/assets/images/gobblecons/README.rtf" afterPath="$PROJECT_DIR$/vendor/assets/images/gobblecons/README.rtf" />
7
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
7
8
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
8
9
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/widget_list.rb" afterPath="$PROJECT_DIR$/lib/widget_list.rb" />
9
10
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/widget_list/sequel.rb" afterPath="$PROJECT_DIR$/lib/widget_list/sequel.rb" />
@@ -44,7 +45,7 @@
44
45
  <file leaf-file-name="README.md" pinned="false" current="true" current-in-tab="true">
45
46
  <entry file="file://$PROJECT_DIR$/README.md">
46
47
  <provider selected="true" editor-type-id="text-editor">
47
- <state line="327" column="0" selection-start="11641" selection-end="11641" vertical-scroll-proportion="0.9592391">
48
+ <state line="289" column="0" selection-start="10689" selection-end="11027" vertical-scroll-proportion="0.0">
48
49
  <folding />
49
50
  </state>
50
51
  </provider>
@@ -116,7 +117,7 @@
116
117
  <file leaf-file-name="widget_list.rb" pinned="false" current="false" current-in-tab="false">
117
118
  <entry file="file://$PROJECT_DIR$/lib/widget_list.rb">
118
119
  <provider selected="true" editor-type-id="text-editor">
119
- <state line="2082" column="3" selection-start="75983" selection-end="75983" vertical-scroll-proportion="-13.033334">
120
+ <state line="2082" column="3" selection-start="75983" selection-end="75983" vertical-scroll-proportion="0.0">
120
121
  <folding />
121
122
  </state>
122
123
  </provider>
@@ -158,7 +159,7 @@
158
159
  <option name="x" value="-5" />
159
160
  <option name="y" value="25" />
160
161
  <option name="width" value="1690" />
161
- <option name="height" value="889" />
162
+ <option name="height" value="937" />
162
163
  </component>
163
164
  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
164
165
  <OptionsSetting value="true" id="Add" />
@@ -205,56 +206,6 @@
205
206
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
206
207
  </PATH_ELEMENT>
207
208
  </PATH>
208
- <PATH>
209
- <PATH_ELEMENT>
210
- <option name="myItemId" value="widget_list" />
211
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
212
- </PATH_ELEMENT>
213
- <PATH_ELEMENT>
214
- <option name="myItemId" value="widget_list" />
215
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
216
- </PATH_ELEMENT>
217
- <PATH_ELEMENT>
218
- <option name="myItemId" value="lib" />
219
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
220
- </PATH_ELEMENT>
221
- </PATH>
222
- <PATH>
223
- <PATH_ELEMENT>
224
- <option name="myItemId" value="widget_list" />
225
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
226
- </PATH_ELEMENT>
227
- <PATH_ELEMENT>
228
- <option name="myItemId" value="widget_list" />
229
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
230
- </PATH_ELEMENT>
231
- <PATH_ELEMENT>
232
- <option name="myItemId" value="lib" />
233
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
234
- </PATH_ELEMENT>
235
- <PATH_ELEMENT>
236
- <option name="myItemId" value="widget_list" />
237
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
238
- </PATH_ELEMENT>
239
- </PATH>
240
- <PATH>
241
- <PATH_ELEMENT>
242
- <option name="myItemId" value="widget_list" />
243
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
244
- </PATH_ELEMENT>
245
- <PATH_ELEMENT>
246
- <option name="myItemId" value="widget_list" />
247
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
248
- </PATH_ELEMENT>
249
- <PATH_ELEMENT>
250
- <option name="myItemId" value="lib" />
251
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
252
- </PATH_ELEMENT>
253
- <PATH_ELEMENT>
254
- <option name="myItemId" value="extensions" />
255
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
256
- </PATH_ELEMENT>
257
- </PATH>
258
209
  </subPane>
259
210
  </pane>
260
211
  </panes>
@@ -374,14 +325,14 @@
374
325
  <servers />
375
326
  </component>
376
327
  <component name="ToolWindowManager">
377
- <frame x="-5" y="25" width="1690" height="889" extended-state="6" />
378
- <editor active="true" />
328
+ <frame x="-5" y="25" width="1690" height="937" extended-state="6" />
329
+ <editor active="false" />
379
330
  <layout>
380
331
  <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" />
381
332
  <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" />
382
333
  <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" />
383
334
  <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" />
384
- <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.1988984" sideWeight="0.5763547" order="0" side_tool="false" content_ui="combo" />
335
+ <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.1988984" sideWeight="0.5763547" order="0" side_tool="false" content_ui="combo" />
385
336
  <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" />
386
337
  <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" />
387
338
  <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" />
@@ -530,7 +481,7 @@
530
481
  </entry>
531
482
  <entry file="file://$PROJECT_DIR$/lib/widget_list.rb">
532
483
  <provider selected="true" editor-type-id="text-editor">
533
- <state line="2082" column="3" selection-start="75983" selection-end="75983" vertical-scroll-proportion="-13.033334">
484
+ <state line="2082" column="3" selection-start="75983" selection-end="75983" vertical-scroll-proportion="0.0">
534
485
  <folding />
535
486
  </state>
536
487
  </provider>
@@ -544,7 +495,7 @@
544
495
  </entry>
545
496
  <entry file="file://$PROJECT_DIR$/README.md">
546
497
  <provider selected="true" editor-type-id="text-editor">
547
- <state line="327" column="0" selection-start="11641" selection-end="11641" vertical-scroll-proportion="0.9592391">
498
+ <state line="289" column="0" selection-start="10689" selection-end="11027" vertical-scroll-proportion="0.0">
548
499
  <folding />
549
500
  </state>
550
501
  </provider>
@@ -13,7 +13,7 @@ ActionController::Base.class_eval {
13
13
  def store_session
14
14
  # Store pre-defined widget_list session items to the actual session
15
15
 
16
- %w(pageDisplayLimit DRILL_DOWNS DRILL_DOWNS ROW_LIMIT list_checks SEARCH_FILTER LIST_SEQUENCE LIST_COL_SORT list_count DRILL_DOWNS DRILL_DOWN_FILTERS).each { |key|
16
+ %w(pageDisplayLimit DRILL_DOWNS ROW_LIMIT list_checks SEARCH_FILTER LIST_SEQUENCE LIST_COL_SORT list_count DRILL_DOWN_FILTERS).each { |key|
17
17
  self.session[key] = $_SESSION[key]
18
18
  }
19
19
 
@@ -1,3 +1,3 @@
1
1
  module WidgetList
2
- VERSION = "1.0.3"
2
+ VERSION = "1.0.4"
3
3
  end
data/lib/widget_list.rb CHANGED
@@ -28,6 +28,9 @@ module WidgetList
28
28
 
29
29
  def self.determine_db_type(db_type)
30
30
  the_type, void = db_type.split("://")
31
+ if the_type == 'sqlite:/'
32
+ the_type = 'sqlite'
33
+ end
31
34
  return the_type.downcase
32
35
  end
33
36
 
@@ -416,46 +419,6 @@ module WidgetList
416
419
 
417
420
  @items['groupByClick'] = "ListChangeGrouping('" + @items['name'] + "')"
418
421
 
419
- =begin
420
- #todo
421
- @items['fieldNames'] = {};
422
- if (empty(@items['fields']) && empty(@items['data']))
423
- {
424
- #Lazy mode where new columns added to view show up in list (unless you name the column "HIDE_xxxxx")
425
- #
426
- if (@items['sql'])
427
- {
428
- #tick_field()....
429
- preg_match("/\s+from\s+`?([a-z\d_]+)`?/i", @items['sql'], $match);
430
- $viewName = $match[1];
431
- }
432
- elseif (@items['view'])
433
- {
434
- $viewName = @items['view'];
435
- }
436
-
437
- if ($this->DATABASE->Select("SHOW FULL COLUMNS IN ".$viewName))
438
- {
439
- foreach($this->DATABASE->results['FIELD'] as $col)
440
- {
441
- @items['fieldNames'][] = $col;
442
- $columnUpper = strtoupper($col);
443
- $columnLower = strtolower($col);
444
- if (substr($columnUpper,0,5) != 'HIDE_')
445
- {
446
- #any columns named HIDE_ will not show
447
- #
448
- @items['fields'][$columnLower] = $this->autoColumnName($columnUpper);
449
- if ($columnLower != 'features')
450
- {
451
- @items['columnSort'][$columnLower] = $columnLower;
452
- }
453
- }
454
- }
455
- }
456
- }
457
- =end
458
-
459
422
  if $_REQUEST.key?('searchClear')
460
423
  clear_search_session()
461
424
  end
@@ -629,7 +592,7 @@ module WidgetList
629
592
 
630
593
  #Initialize page load/Session stuff whe list first loads
631
594
  #
632
- clear_check_box_session(@items['name'])
595
+ WidgetList::List::clear_check_box_session(@items['name'])
633
596
  end
634
597
 
635
598
 
@@ -773,7 +736,7 @@ module WidgetList
773
736
  end
774
737
  end
775
738
 
776
- def clear_check_box_session(name='')
739
+ def self.clear_check_box_session(name='')
777
740
 
778
741
  if $_SESSION.key?('DRILL_DOWN_FILTERS')
779
742
  $_SESSION.delete('DRILL_DOWN_FILTERS')
@@ -825,6 +788,33 @@ module WidgetList
825
788
 
826
789
  end
827
790
 
791
+ def self.get_filter_and_drilldown(listId)
792
+ filter = ''
793
+ drillDown = ''
794
+ if !$_REQUEST.key?('BUTTON_VALUE')
795
+ # Initialize page load/Session stuff whe list first loads
796
+ #
797
+ WidgetList::List::clear_check_box_session(listId)
798
+ end
799
+
800
+ if $_REQUEST.key?('drill_down')
801
+ drillDown = $_REQUEST['drill_down']
802
+ $_SESSION.deep_merge!({'DRILL_DOWNS' => { listId => drillDown} })
803
+ elsif $_SESSION.key?('DRILL_DOWNS') && $_SESSION['DRILL_DOWNS'].key?(listId)
804
+ drillDown = $_SESSION['DRILL_DOWNS'][listId]
805
+ else
806
+ drillDown = 'default'
807
+ end
808
+
809
+ if $_REQUEST.key?('filter')
810
+ filter = $_REQUEST['filter']
811
+ $_SESSION.deep_merge!({'DRILL_DOWN_FILTERS' => { listId => filter} })
812
+ elsif $_SESSION.key?('DRILL_DOWN_FILTERS') && $_SESSION['DRILL_DOWN_FILTERS'].key?(listId)
813
+ filter = $_SESSION['DRILL_DOWN_FILTERS'][listId]
814
+ end
815
+ return drillDown, filter
816
+ end
817
+
828
818
  def clear_sort_get_vars()
829
819
  $_REQUEST.delete('LIST_FILTER_ALL')
830
820
  $_REQUEST.delete('ROW_LIMIT')
@@ -1531,6 +1521,60 @@ module WidgetList
1531
1521
  return content
1532
1522
  end
1533
1523
 
1524
+ def self.build_drill_down_link(listId,drillDownName,dataToPassFromView,columnToShow,columnAlias='',functionName='ListDrillDown',columnClass='')
1525
+ if columnAlias.empty?
1526
+ columnAlias = columnToShow
1527
+ end
1528
+
1529
+ if !columnClass.empty?
1530
+ columnClass = ' "' + WidgetList::List::concat_string() + columnClass + WidgetList::List::concat_string() + '"'
1531
+ end
1532
+
1533
+ return %[#{WidgetList::List::concat_inner()}"<a style='cursor:pointer;color:blue;' class='#{columnAlias}_drill#{columnClass}' onclick='#{functionName}(#{WidgetList::List::double_quote()}#{drillDownName}#{WidgetList::List::double_quote()},#{WidgetList::List::double_quote()}"#{WidgetList::List::concat_string()} #{dataToPassFromView} #{WidgetList::List::concat_string()} "#{WidgetList::List::double_quote()},#{WidgetList::List::double_quote()}#{listId}#{WidgetList::List::double_quote()})'>"#{WidgetList::List::concat_string()}#{columnToShow}#{WidgetList::List::concat_string()}"</a>"#{WidgetList::List::concat_outer()} as #{columnAlias},]
1534
+ end
1535
+
1536
+ def self.concat_string
1537
+ case WidgetList::List.get_database.db_type
1538
+ when 'mysql'
1539
+ ' , '
1540
+ when 'oracle'
1541
+ when 'sqlite'
1542
+ ' || '
1543
+ else
1544
+ ','
1545
+ end
1546
+ end
1547
+
1548
+ def self.double_quote
1549
+ case WidgetList::List.get_database.db_type
1550
+ when 'mysql'
1551
+ '\\"'
1552
+ when 'oracle'
1553
+ when 'sqlite'
1554
+ '""'
1555
+ else
1556
+ '"'
1557
+ end
1558
+ end
1559
+
1560
+ def self.concat_outer
1561
+ case WidgetList::List.get_database.db_type
1562
+ when 'mysql'
1563
+ ')'
1564
+ else
1565
+ ''
1566
+ end
1567
+ end
1568
+
1569
+ def self.concat_inner
1570
+ case WidgetList::List.get_database.db_type
1571
+ when 'mysql'
1572
+ 'CONCAT('
1573
+ else
1574
+ ''
1575
+ end
1576
+ end
1577
+
1534
1578
  def build_column_button(column,j)
1535
1579
  buttons = @items['buttons'][column]
1536
1580
  columnValue = @results[column.upcase][j]
@@ -1720,64 +1764,18 @@ module WidgetList
1720
1764
  else
1721
1765
  cleanData = strip_tags(@results[column.upcase][j].to_s)
1722
1766
 
1723
- if cleanData.length > @items['strlength']
1724
- =begin
1725
- $contentTitle = $cleanData;
1726
-
1727
- $possibleMatches = array("/(.*)(\(<a.*?>.*?<\/a>\)\s)(.*)/i" => array(3), #<a>(id)</a> Text
1728
- "/(.*)(<a.*?>)(.*)(<\/a>)(.*)/i" => array(3) #<a>Text</a> other text
1729
- );
1730
-
1731
- foreach($possibleMatches as $regex => $toFix)
1732
- {
1733
- $matched = preg_match_all($regex, @results[strtoupper($column)][$j], $matches, PREG_PATTERN_ORDER);
1734
-
1735
- if(! empty($matched))
1736
- {
1737
- $pieces = {};
1738
-
1739
- unset($matches[0]);
1740
-
1741
- foreach($matches as $key => $theText)
1742
- {
1743
- $fixedText = '';
1744
-
1745
- if(in_array($key, $toFix))
1746
- {
1747
- $fixedText = substr($theText[0], 0, @items['strlength']) . '...';
1748
- }
1749
- else
1750
- {
1751
- $fixedText = $theText[0];
1752
- }
1753
-
1754
- $pieces[] = $fixedText;
1755
- }
1756
-
1757
- $content = implode('', $pieces);
1758
-
1759
- break;
1760
- }
1761
- }
1767
+ #
1768
+ # For now disable length parser
1769
+ #
1770
+ if false && cleanData.length > @items['strlength']
1762
1771
 
1763
- if(empty($matched))
1764
- {
1765
- if ((strpos(@results[strtoupper($column)][$j],'&#') !== false && strpos(@results[strtoupper($column)][$j],';') !== false))
1766
- {
1767
- $content = @results[strtoupper($column)][$j];
1768
- }
1769
- else
1770
- {
1771
- $content = substr(@results[strtoupper($column)][$j], 0, @items['strlength']) . '...';
1772
- }
1773
- }
1774
- =end
1775
1772
  content = @results[column.upcase][j].to_s[ 0, @items['strlength'] ] + '...'
1776
1773
 
1777
1774
  else
1778
1775
  content = @results[column.upcase][j].to_s
1779
1776
  end
1780
1777
 
1778
+ #
1781
1779
  #Strip HTML
1782
1780
  #
1783
1781
  if !@items['allowHTML']
@@ -2080,4 +2078,4 @@ module WidgetList
2080
2078
 
2081
2079
  end
2082
2080
 
2083
- end
2081
+ endx
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: widget_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-30 00:00:00.000000000 Z
12
+ date: 2013-01-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sequel