widget_list 1.3.5 → 1.3.6

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.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ODA4YTI4ZTkxNzFjZTdkZDJhNmRiNTBkYmFhMjk1MTY2ZWViZDI0NQ==
5
+ data.tar.gz: !binary |-
6
+ M2NkOTVmNzJlNGNmMzkwNDQ4MGYwMmNkMThhZDM1YTNhYjY2ZWYyMQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ YjcwNDliYWRiNTYyNTNlOWFlOTIyZGIxNWMzZDMzNDY3ZDljOWNjNjE1ZWI2
10
+ ZGM5M2U4NzBjNzk2YjBkZTRkM2ExNDFiZGZhZDViNThiNDRmMDdjMTg3NzUx
11
+ NzgwYTdkNjFiZGY5YjRmMzU0N2JkYzk3MzdjZjk5ZWZjYjYwYjk=
12
+ data.tar.gz: !binary |-
13
+ MTI3NDM5YmYzOTgyOTZkYzk5YTFhM2NkMTRiYjg3MWRmODIxNjBjYWNkMzUz
14
+ OGIxZGQyMjlmZTY5OWNhZGI0Nzk0ZjEyZDIzYjU4NTA4Y2E1MTAxNjllODMy
15
+ NDI3YWJlOTY0Y2VmMTYwOGM3NjAwYzE5M2MyNWQ2Y2Q4MzA1MGQ=
data/README.md CHANGED
@@ -9,6 +9,17 @@
9
9
  https://www.youtube.com/watch?v=A6mZa8Ge2Rk
10
10
 
11
11
 
12
+ ****
13
+
14
+ ## Slides and video from Barcamp 2013
15
+
16
+ ****
17
+
18
+ http://youtu.be/K4pe4ESIbc0
19
+
20
+ https://docs.google.com/presentation/d/1gnybf8f7afRM8w5UjTMoV82-0S5HftPewn4pAuIybk8/edit?usp=sharing
21
+
22
+
12
23
  ****
13
24
 
14
25
  ## Introduction
@@ -166,7 +177,7 @@ widget_list features and configurations primarily work by a single large hash pa
166
177
 
167
178
  `listDescription` - This adds a grey header box. It is useful for describing the main query `default=''`
168
179
 
169
- `pageId` - Base path for requests (typically you never need to change this) `default=$_SERVER['PATH_INFO']`
180
+ `pageId` - Base path for requests (typically you never need to change this) `default=$_SERVER['SCRIPT_NAME'] + $_SERVER['PATH_INFO']`
170
181
 
171
182
  `view` - A sub-select query to your database (ALWAYS ALIASED) `default=''`
172
183
 
@@ -356,11 +367,20 @@ Style a row based on the value of the column.
356
367
  *= require widget_list
357
368
  *= require widgets
358
369
  ```
359
- Change application.js to:
370
+
371
+ Change application.js to:
372
+
360
373
  ```ruby
361
374
  //= require widget_list
362
375
  ```
363
- ### #2 - Run `bundle exec rails s` to have widget_list create config/widget-list.yml (by default a sqlite3 memory database is created)
376
+
377
+ Compile the new assets:
378
+
379
+ ```
380
+ rake assets:precompile
381
+ ```
382
+
383
+ ### #2 - Run `bundle exec rails s` to have widget_list create config/widget-list.yml which will point to your active record database.yml
364
384
 
365
385
  Configure your connection settings for your primary or secondary widget_list connections.
366
386
 
@@ -734,4 +754,4 @@ See the License for the specific language governing permissions and
734
754
  limitations under the License.
735
755
 
736
756
  [1]: https://github.com/davidrenne/widget_list_example/blob/master/app/helpers/widget_list_helper.rb
737
- [2]: https://github.com/davidrenne/widget_list_theme_blue_sky_basin
757
+ [2]: https://github.com/davidrenne/widget_list_theme_blue_sky_basin
@@ -498,7 +498,7 @@
498
498
  if(jQuery(obj).val() != '') {
499
499
  jQuery.post(jQuery('#widget_list_administration').attr('action'), 'ajax=1&model=' + jQuery(obj).val(), function(response)
500
500
  {
501
- jQuery('#name').val(jQuery(obj).val().toLowerCase() + '_listing');
501
+ jQuery('#name,#desiredAction').val(jQuery(obj).val().toLowerCase() + '_listing');
502
502
  jQuery('#field_table').html(response['fields']);
503
503
  jQuery('#hidden_field_table').html(response['fields_hidden']);
504
504
  jQuery('#checkboxField').html(response['checked_fields']);
@@ -1,4 +1,4 @@
1
- <div style='font-family:<!--FONT-->;'>
1
+ <div style='<!--FONT-->'>
2
2
  <!--WRAP_START-->
3
3
  <!--HEADER-->
4
4
  <!--CUSTOM_CONTENT_TOP-->
@@ -1 +1 @@
1
- <li><span id="<!--LIST_NAME-->_next" onclick="<!--FUNCTION-->('<!--NEXT_URL-->','<!--LIST_NAME-->');<!--FUNCTION_ALL-->" style="cursor:pointer;background: transparent url(/assets/images/page-next.gif) no-repeat">&nbsp;</span></li>
1
+ <li><span id="<!--LIST_NAME-->_next" onclick="<!--FUNCTION-->('<!--NEXT_URL-->','<!--LIST_NAME-->');<!--FUNCTION_ALL-->" class="next-active">&nbsp;</span></li>
@@ -1 +1 @@
1
- <li><span id="<!--LIST_NAME-->_next" style="opacity:0.4;filter:alpha(opacity=40);background: transparent url(/assets/images/page-next.gif) no-repeat">&nbsp;</span></li>
1
+ <li><span id="<!--LIST_NAME-->_next" class="next-disabled">&nbsp;</span></li>
@@ -1 +1 @@
1
- <li><span id="<!--LIST_NAME-->_previous" onclick="<!--FUNCTION-->('<!--PREVIOUS_URL-->','<!--LIST_NAME-->');<!--FUNCTION_ALL-->" style="cursor:pointer;background: transparent url(/assets/images/page-back.gif) no-repeat">&nbsp;</span></li>
1
+ <li><span id="<!--LIST_NAME-->_previous" onclick="<!--FUNCTION-->('<!--PREVIOUS_URL-->','<!--LIST_NAME-->');<!--FUNCTION_ALL-->" class="previous-active">&nbsp;</span></li>
@@ -1 +1 @@
1
- <li><span id="<!--LIST_NAME-->_previous" style="opacity:0.4;filter:alpha(opacity=40);background: transparent url(/assets/images/page-back.gif) no-repeat">&nbsp;</span></li>
1
+ <li><span id="<!--LIST_NAME-->_previous" class="previous-disabled">&nbsp;</span></li>
data/lib/widget_list.rb CHANGED
@@ -99,7 +99,7 @@ module WidgetList
99
99
  #
100
100
  # BASE
101
101
  #
102
- @fill['<!--POST_URL-->'] = $_SERVER['PATH_INFO']
102
+ @fill['<!--POST_URL-->'] = $_SERVER['SCRIPT_NAME'] + $_SERVER['PATH_INFO']
103
103
  @fill['<!--BUTTONS-->'] = WidgetList::Widgets::widget_button('Step One - Start ->', {'id' => 'start' , 'onclick' => "ShowStart();" , 'innerClass' => "primary" } ) +
104
104
  WidgetList::Widgets::widget_button('Step Two - Fields ->', {'id' => 'fields' , 'onclick' => "ShowFields();" , 'innerClass' => "primary disabled" } ) +
105
105
  WidgetList::Widgets::widget_button('Step Three - Rows ->', {'id' => 'rows' , 'onclick' => "ShowRows();" , 'innerClass' => "primary disabled" } ) +
@@ -1042,11 +1042,11 @@ module WidgetList
1042
1042
  controller = ($_REQUEST.key?('desiredController') ? $_REQUEST['desiredController'] : $_REQUEST['controller'] )
1043
1043
 
1044
1044
  if $_REQUEST.key?('ajax')
1045
- model = model_name.constantize.new
1046
- model.fields.keys.each { |field|
1047
- fields[field] = field.gsub(/_/,' _').camelize
1048
- all_fields[field] = field.gsub(/_/,' _').camelize
1049
- fields_function[field] = 'CNT(' + field + ') or NVL(' + field + ') or TO_DATE(' + field + ') etc...'
1045
+ model = model_name.constantize
1046
+ model.columns.each { |field|
1047
+ fields[field.name] = field.name.gsub(/_/,' _').camelize
1048
+ all_fields[field.name] = field.name.gsub(/_/,' _').camelize
1049
+ fields_function[field.name] = 'CNT(' + field.name + ') or NVL(' + field.name + ') or TO_DATE(' + field.name + ') etc...'
1050
1050
  }
1051
1051
  footer_buttons['Add New ' + model_name] = {}
1052
1052
  footer_buttons['Add New ' + model_name]['url'] = '/' + controller + '/add/'
@@ -1920,7 +1920,7 @@ module WidgetList
1920
1920
  'database' => 'primary', #
1921
1921
  'title' => '',
1922
1922
  'listDescription' => '',
1923
- 'pageId' => $_SERVER['PATH_INFO'],
1923
+ 'pageId' => $_SERVER['SCRIPT_NAME'] + $_SERVER['PATH_INFO'],
1924
1924
  'view' => '',
1925
1925
  'data' => {},
1926
1926
  'bindVars' => [],
@@ -2034,7 +2034,7 @@ module WidgetList
2034
2034
  #
2035
2035
  # Font
2036
2036
  #
2037
- 'fontFamily' => '"Times New Roman", Times, serif',
2037
+ 'fontFamily' => false, #'"Times New Roman", Times, serif',
2038
2038
  'headerFooterFontSize' => '14px',
2039
2039
  'dataFontSize' => '14px',
2040
2040
  'titleFontSize' => '24px',
@@ -2434,7 +2434,9 @@ module WidgetList
2434
2434
  @templateFill['<!--SHADOW_SPREAD-->'] = get_shadow_spread_value()
2435
2435
  @templateFill['<!--SHADOW_COLOR-->'] = @items['shadowColor']
2436
2436
  @templateFill['<!--BORDER_HEAD_FOOT_TOP-->'] = @items['borderHeadFoot'] ? 'border-top:' + @items['headFootBorderStyle'] + ';' : ''
2437
- @templateFill['<!--FONT-->'] = @items['fontFamily']
2437
+ if @items['fontFamily']
2438
+ @templateFill['<!--FONT-->'] = 'font-family:' + @items['fontFamily'] + ';'
2439
+ end
2438
2440
  @templateFill['<!--FONT_HEADER-->'] = @items['headerFooterFontSize']
2439
2441
 
2440
2442
 
@@ -2523,11 +2525,11 @@ module WidgetList
2523
2525
  list_search['name'] = 'list_search_name_' + @items['name']
2524
2526
  list_search['class'] = 'inputOuter widget-search-outer ' + @items['name'].downcase + '-search'
2525
2527
  list_search['search_ahead'] = {
2526
- 'url' => searchUrl,
2527
- 'skip_queue' => false,
2528
- 'target' => @items['name'],
2529
- 'search_form' => @items['listSearchForm'],
2530
- 'onkeyup' => (! @items['searchOnkeyup'].empty?) ? WidgetList::Utils::fill({'<!--URL-->'=>searchUrl, '<!--TARGET-->' => @items['name'], '<!--FUNCTION_ALL-->' => @items['ajaxFunctionAll']}, @items['searchOnkeyup'] + '<!--FUNCTION_ALL-->') : ''
2528
+ 'url' => searchUrl,
2529
+ 'skip_queue' => false,
2530
+ 'target' => @items['name'],
2531
+ 'search_form' => @items['listSearchForm'],
2532
+ 'onkeyup' => (! @items['searchOnkeyup'].empty?) ? WidgetList::Utils::fill({'<!--URL-->'=>searchUrl, '<!--TARGET-->' => @items['name'], '<!--FUNCTION_ALL-->' => @items['ajaxFunctionAll']}, @items['searchOnkeyup'] + '<!--FUNCTION_ALL-->') : ''
2531
2533
  }
2532
2534
 
2533
2535
  fillRansack = {}
@@ -3483,8 +3485,10 @@ module WidgetList
3483
3485
  function = @items['linkFunction']
3484
3486
  parameters = ''
3485
3487
  renderButton = true
3486
-
3487
- page = buttonAttribs['page'].dup
3488
+ page = ''
3489
+ if buttonAttribs.key?('page')
3490
+ page = buttonAttribs['page'].dup
3491
+ end
3488
3492
  if buttonAttribs.key?('tags')
3489
3493
  tags = buttonAttribs['tags'].dup
3490
3494
  all_wildcard = false
@@ -3508,7 +3512,7 @@ module WidgetList
3508
3512
  #
3509
3513
  # Will build ?tagname=XXXX based on your hash passed to your page
3510
3514
  #
3511
- buttonAttribs.deep_merge!({ 'args' => { tagName => @results[tag.upcase][j] } }) unless all_wildcard
3515
+ buttonAttribs.deep_merge!({ 'args' => { tagName => @results[tag.upcase][j] } })
3512
3516
  end
3513
3517
  else
3514
3518
 
@@ -146,7 +146,7 @@ $G_TEMPLATE.deep_merge!({'widget' =>
146
146
  {'default' =>
147
147
  '
148
148
  <!--FRM_SUBMIT-->
149
- <a class="<!--BUTTON_CLASS-->" style="<!--BUTTON_STYLE-->" onclick="<!--BUTTON_ONCLICK-->" onmouseover="<!--MOUSEOVER-->" onmouseout="<!--MOUSEOUT-->" name="<!--NAME-->" id="<!--ID-->">
149
+ <a class="<!--BUTTON_CLASS-->" style="<!--BUTTON_STYLE-->" onclick="<!--BUTTON_ONCLICK-->" onmouseover="<!--MOUSEOVER-->" onmouseout="<!--MOUSEOUT-->" name="<!--NAME-->" id="<!--ID-->" <!--ATTRS-->>
150
150
  <!--BUTTON_LABEL-->
151
151
  </a>'
152
152
  }
@@ -1,3 +1,5 @@
1
+ require 'cgi'
2
+
1
3
  module WidgetList
2
4
 
3
5
  class Utils
@@ -26,7 +28,7 @@ module WidgetList
26
28
  if v.class.name == 'Hash'
27
29
  q << {k => v}.to_params
28
30
  else
29
- q << k.to_s + '=' + URI.encode(URI.decode(v.to_s))
31
+ q << k.to_s + '=' + CGI.escape(URI.decode(v.to_s))
30
32
  end
31
33
  }
32
34
  q.join('&')
@@ -1,3 +1,3 @@
1
1
  module WidgetList
2
- VERSION = "1.3.5"
2
+ VERSION = "1.3.6"
3
3
  end
@@ -107,7 +107,7 @@ module WidgetList
107
107
  #
108
108
  # Select box attributes
109
109
  #
110
- items['attribs'] = {}
110
+ items['attribs'] = []
111
111
  items['size'] = 1
112
112
  items['disabled'] = false
113
113
  items['noDataMsg'] = 'No Data'
@@ -616,6 +616,7 @@ module WidgetList
616
616
  'name' => '',
617
617
  'id' => '',
618
618
  'url' => '',
619
+ 'attribs' => [],
619
620
  'link' => '', #alias of url
620
621
  'href' => '', #alias of url
621
622
  'page' => '',
@@ -624,7 +625,7 @@ module WidgetList
624
625
  'frmSubmit' => '', #this option adds hidden frmbutton
625
626
  'submit' => '',
626
627
  'args' => {},
627
- 'class' => 'btn', #Always stays the same
628
+ 'class' => 'wl-btn', #Always stays the same
628
629
  'innerClass' => 'info', #.primary(blue) .info(light-blue) .success(green) .danger(red) .disabled(light grey) .default(grey)
629
630
  'passive' => false,
630
631
  'function' => 'ButtonLinkPost',
@@ -653,7 +654,7 @@ module WidgetList
653
654
  end
654
655
 
655
656
  if items['url'].empty? && !items['page'].empty?
656
- items['url'] = WidgetList::Utils::build_url(items['page'], items['args'])
657
+ items['url'] = items['page']
657
658
  end
658
659
 
659
660
  if !items['href'].empty? && items['onclick'].empty?
@@ -690,6 +691,7 @@ module WidgetList
690
691
  '<!--BUTTON_ONCLICK-->' => items['onclick'].gsub(/\"/,"'"),
691
692
  '<!--BUTTON_LABEL-->' => items['label'],
692
693
  '<!--NAME-->' => items['name'],
694
+ '<!--ATTRS-->' => items['attribs'].join(' '),
693
695
  '<!--ID-->' => items['id'],
694
696
  '<!--BUTTON_STYLE-->' => items['style'],
695
697
  '<!--BUTTON_CLASS_INNER-->' => items['innerClass'],
@@ -754,4 +756,9 @@ module WidgetList
754
756
  output_final
755
757
  end
756
758
  end
757
- end
759
+ end
760
+
761
+ # require 'widget_list/utils'
762
+ # require 'widget_list/hash'
763
+ # require 'widget_list/tpl'
764
+ # puts WidgetList::Widgets.test_all
@@ -341,7 +341,10 @@ function ListJumpMin(url, id, callback, post)
341
341
  {
342
342
  (callback)();
343
343
  }
344
- }, "json");
344
+ }, "json").fail(function() {
345
+ alert('An error occurred. No new results were fetched.');
346
+ ajaxStatus(id, 0);
347
+ });
345
348
  }
346
349
  catch(e)
347
350
  {
@@ -12,12 +12,10 @@
12
12
  height:3px;
13
13
  }
14
14
 
15
- table.widget_list
16
- {
17
- border: 1px solid #CCCCCC;
15
+ input.info-input:focus {
16
+ outline-width: 0;
18
17
  }
19
18
 
20
-
21
19
  table.widget_list tbody tr td span
22
20
  {
23
21
  width:auto;
@@ -392,29 +390,29 @@ table.searchBox td.label
392
390
  padding:0px;
393
391
  }
394
392
 
395
- .btn.danger,
393
+ .wl-btn.danger,
396
394
  .alert-message.danger,
397
- .btn.danger:hover,
395
+ .wl-btn.danger:hover,
398
396
  .alert-message.danger:hover,
399
- .btn.error,
397
+ .wl-btn.error,
400
398
  .alert-message.error,
401
- .btn.error:hover,
399
+ .wl-btn.error:hover,
402
400
  .alert-message.error:hover,
403
- .btn.success,
401
+ .wl-btn.success,
404
402
  .alert-message.success,
405
- .btn.success:hover,
403
+ .wl-btn.success:hover,
406
404
  .alert-message.success:hover,
407
- .btn.info,
405
+ .wl-btn.info,
408
406
  .alert-message.info,
409
- .btn.info:hover,
407
+ .wl-btn.info:hover,
410
408
  .alert-message.info:hover
411
409
  {
412
410
  color: #ffffff;
413
411
  }
414
412
 
415
- .btn.danger,
413
+ .wl-btn.danger,
416
414
  .alert-message.danger,
417
- .btn.error,
415
+ .wl-btn.error,
418
416
  .alert-message.error
419
417
  {
420
418
  background-color: #c43c35;
@@ -432,7 +430,7 @@ table.searchBox td.label
432
430
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
433
431
  }
434
432
 
435
- .btn.success, .alert-message.success
433
+ .wl-btn.success, .alert-message.success
436
434
  {
437
435
  background-color: #91b32b;
438
436
  background-repeat: repeat-x;
@@ -450,7 +448,7 @@ table.searchBox td.label
450
448
  }
451
449
 
452
450
 
453
- .btn.info, .alert-message.info
451
+ .wl-btn.info, .alert-message.info
454
452
  {
455
453
  background-color: #339bb9;
456
454
  background-repeat: repeat-x;
@@ -467,7 +465,7 @@ table.searchBox td.label
467
465
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
468
466
  }
469
467
 
470
- a.btn
468
+ a.wl-btn
471
469
  {
472
470
  cursor: pointer;
473
471
  display: inline-block;
@@ -502,7 +500,7 @@ a.btn
502
500
  }
503
501
 
504
502
 
505
- .btn:hover
503
+ .wl-btn:hover
506
504
  {
507
505
  background-position: 0 -15px;
508
506
  color: #333;
@@ -510,7 +508,7 @@ a.btn
510
508
  }
511
509
 
512
510
 
513
- .btn.primary
511
+ .wl-btn.primary
514
512
  {
515
513
  color: #fff;
516
514
  background-color: #0064cd;
@@ -528,14 +526,14 @@ a.btn
528
526
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
529
527
  }
530
528
 
531
- .btn:active
529
+ .wl-btn:active
532
530
  {
533
531
  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
534
532
  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
535
533
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
536
534
  }
537
535
 
538
- .btn.disabled
536
+ .wl-btn.disabled
539
537
  {
540
538
  cursor: default;
541
539
  background-image: none;
@@ -550,7 +548,7 @@ a.btn
550
548
  }
551
549
 
552
550
 
553
- .btn[disabled]
551
+ .wl-btn[disabled]
554
552
  {
555
553
  cursor: default;
556
554
  background-image: none;
@@ -564,7 +562,7 @@ a.btn
564
562
  box-shadow: none;
565
563
  }
566
564
 
567
- .btn.large
565
+ .wl-btn.large
568
566
  {
569
567
  font-size: 16px;
570
568
  line-height: normal;
@@ -575,14 +573,14 @@ a.btn
575
573
  }
576
574
 
577
575
 
578
- .btn.small
576
+ .wl-btn.small
579
577
  {
580
578
  padding: 4px 9px 4px;
581
579
  font-size: 11px;
582
580
  font-weight: normal !important;
583
581
  }
584
582
 
585
- button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner
583
+ button.wl-btn::-moz-focus-inner, input[type=submit].wl-btn::-moz-focus-inner
586
584
  {
587
585
  padding: 0;
588
586
  border: 0;
@@ -606,7 +604,7 @@ div.inputOuter
606
604
 
607
605
 
608
606
  div.inputOuter .inputInner {position:relative;background: transparent url('../assets/images/input_text_left.png') no-repeat scroll top left;border: none;height: 27px;line-height: 27px;padding-left: 6px;width: auto;padding-right: 7px;}
609
- div.inputOuter .inputInner input {margin:6px 0 0 6px;border:none;background:transparent;width:100%}
607
+ div.inputOuter .inputInner input { border:none;background:transparent;width:100%}
610
608
  div.inputOuter .inputInner input.search-ahead {width:97%}
611
609
 
612
610
  /**
@@ -676,8 +674,6 @@ div.inputOuter .inputInner input.search-ahead-advanced {width: 90% !important;}
676
674
  float:left;
677
675
  text-align:left;
678
676
  width:100%;
679
- margin:0px;
680
- padding:0px;
681
677
  }
682
678
 
683
679
  .pagination div
@@ -811,3 +807,26 @@ div#advanced-search-container ul.advanced-search-container-inline input.info-inp
811
807
  *+html ul#pagination li div {display:inline}
812
808
  *+html ul#pagination li div.select-outer {background: url("../assets/images/input_text_right.png") no-repeat scroll right 2px transparent;}
813
809
  *+html ul#pagination li div.select-outer div.select-inner select {margin-top: -4px !important;}
810
+
811
+
812
+ .next-active {
813
+ cursor:pointer;
814
+ background: transparent url("../assets/images/page-next.gif") no-repeat;
815
+ }
816
+
817
+ .next-disabled {
818
+ opacity:0.4;
819
+ filter:alpha(opacity=40);
820
+ background: transparent url("../assets/images/page-next.gif") no-repeat;
821
+ }
822
+
823
+ .previous-active {
824
+ cursor:pointer;
825
+ background: transparent url("../assets/images/page-back.gif") no-repeat;
826
+ }
827
+
828
+ .previous-disabled {
829
+ opacity:0.4;
830
+ filter:alpha(opacity=40);
831
+ background: transparent url("../assets/images/page-back.gif") no-repeat;
832
+ }
data/widget_list.gemspec CHANGED
@@ -6,12 +6,14 @@ require 'widget_list/version'
6
6
  Gem::Specification.new do |gem|
7
7
 
8
8
  gem.name = "widget_list"
9
+
10
+ gem.licenses = ['MIT']
9
11
 
10
12
  gem.version = WidgetList::VERSION
11
13
 
12
14
  gem.authors = ["David Renne"]
13
15
 
14
- gem.email = ["message_me_on_github@dave.com"]
16
+ gem.email = ["widgetlist@davidrenne.com"]
15
17
 
16
18
  gem.description = %q{An Advanced and flexible ajax data grid. Supports several databases where data is pulled from either using Sequel ORM (optional even though is a dependency), Active Record Models or Raw SQL.}
17
19
 
metadata CHANGED
@@ -1,60 +1,52 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: widget_list
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 3
8
- - 5
9
- version: 1.3.5
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.6
10
5
  platform: ruby
11
- authors:
6
+ authors:
12
7
  - David Renne
13
8
  autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
-
17
- date: 2013-09-28 00:00:00 -04:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2014-10-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: sequel
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - "="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 3
29
- - 42
30
- - 0
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
31
19
  version: 3.42.0
32
20
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: ransack
36
21
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- - 7
44
- - 2
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.42.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: ransack
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
45
33
  version: 0.7.2
46
34
  type: :runtime
47
- version_requirements: *id002
48
- description: An Advanced and flexible ajax data grid. Supports several databases where data is pulled from either using Sequel ORM (optional even though is a dependency), Active Record Models or Raw SQL.
49
- email:
50
- - message_me_on_github@dave.com
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.7.2
41
+ description: An Advanced and flexible ajax data grid. Supports several databases where
42
+ data is pulled from either using Sequel ORM (optional even though is a dependency),
43
+ Active Record Models or Raw SQL.
44
+ email:
45
+ - widgetlist@davidrenne.com
51
46
  executables: []
52
-
53
47
  extensions: []
54
-
55
48
  extra_rdoc_files: []
56
-
57
- files:
49
+ files:
58
50
  - .gitignore
59
51
  - .idea/.name
60
52
  - .idea/encodings.xml
@@ -326,35 +318,29 @@ files:
326
318
  - vendor/assets/stylesheets/widget_list.css
327
319
  - vendor/assets/stylesheets/widgets.css
328
320
  - widget_list.gemspec
329
- has_rdoc: true
330
321
  homepage: https://github.com/davidrenne/widget_list
331
- licenses: []
332
-
322
+ licenses:
323
+ - MIT
324
+ metadata: {}
333
325
  post_install_message:
334
326
  rdoc_options: []
335
-
336
- require_paths:
327
+ require_paths:
337
328
  - lib
338
- required_ruby_version: !ruby/object:Gem::Requirement
339
- requirements:
340
- - - ">="
341
- - !ruby/object:Gem::Version
342
- segments:
343
- - 0
344
- version: "0"
345
- required_rubygems_version: !ruby/object:Gem::Requirement
346
- requirements:
347
- - - ">="
348
- - !ruby/object:Gem::Version
349
- segments:
350
- - 0
351
- version: "0"
329
+ required_ruby_version: !ruby/object:Gem::Requirement
330
+ requirements:
331
+ - - ! '>='
332
+ - !ruby/object:Gem::Version
333
+ version: '0'
334
+ required_rubygems_version: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ - - ! '>='
337
+ - !ruby/object:Gem::Version
338
+ version: '0'
352
339
  requirements: []
353
-
354
340
  rubyforge_project:
355
- rubygems_version: 1.3.6
341
+ rubygems_version: 2.2.2
356
342
  signing_key:
357
- specification_version: 3
358
- summary: In rails you have will_paginate and other gems like it using the ActiveRecord approach, but widget_list adds some awesome treats to standard boring pagers
343
+ specification_version: 4
344
+ summary: In rails you have will_paginate and other gems like it using the ActiveRecord
345
+ approach, but widget_list adds some awesome treats to standard boring pagers
359
346
  test_files: []
360
-