active_scaffold 3.4.2 → 3.4.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +5 -1
- data/app/assets/javascripts/jquery/active_scaffold.js +33 -22
- data/app/assets/javascripts/prototype/active_scaffold.js +67 -17
- data/app/views/active_scaffold_overrides/_field_search.html.erb +6 -3
- data/app/views/active_scaffold_overrides/_form.html.erb +4 -2
- data/app/views/active_scaffold_overrides/_form_association.html.erb +4 -2
- data/app/views/active_scaffold_overrides/_form_association_footer.html.erb +2 -4
- data/app/views/active_scaffold_overrides/_search.html.erb +0 -14
- data/lib/active_scaffold/config/search.rb +1 -1
- data/lib/active_scaffold/extensions/action_view_rendering.rb +1 -6
- data/lib/active_scaffold/helpers/form_column_helpers.rb +0 -1
- data/lib/active_scaffold/helpers/view_helpers.rb +1 -1
- data/lib/active_scaffold/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a8ff5ba84f3dc705d9828e90c74107b5d7956c0
|
4
|
+
data.tar.gz: 83d93e5cfce76fc8b5ffa04a72114e88a39ee6b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a1018479c9bab0ef13fbfe281c20a1fec953bb91403c06c69b38a9220b78b7e7d55d39cd28f9fb5bf36ae742e5947034415478ff0fd9157c560fe73cbb2a23e
|
7
|
+
data.tar.gz: d1b55a0ca9c756fd581aaaec5bdff972ad55942f8ea5d326e4e166dff35ea4c0ad4bebed3ff6df85275a7fb4872b1ebc4d7a2c8868b7bfb1954aa42ef7756dfb
|
data/CHANGELOG
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
-
= 3.4.
|
1
|
+
= 3.4.3
|
2
|
+
- default search columns doesn't include association columns (broken on 3.4.2), it slowing down search with no point (searching by association's primary key)
|
3
|
+
- More unobtrusive html views
|
4
|
+
|
5
|
+
= 3.4.2
|
2
6
|
- fix tableless on latest rails4 versions
|
3
7
|
- respond with 406 for html request on js only actions
|
4
8
|
- fix JS issue on IE8
|
@@ -224,6 +224,13 @@ jQuery(document).ready(function($) {
|
|
224
224
|
} else value = form_element.is("input:checkbox:not(:checked)") ? null : form_element.val();
|
225
225
|
ActiveScaffold.update_column(form_element, element.attr('href'), element.data('update_send_form'), form_element.attr('id'), value);
|
226
226
|
});
|
227
|
+
jQuery(document).on('click', 'a.visibility-toggle', function(e) {
|
228
|
+
var link = jQuery(this), toggable = jQuery('#' + link.data('toggable'));
|
229
|
+
e.preventDefault();
|
230
|
+
toggable.toggle();
|
231
|
+
link.html((toggable.is(':hidden')) ? link.data('show') : link.data('hide'));
|
232
|
+
return false;
|
233
|
+
});
|
227
234
|
jQuery(document).on('recordselect:change', 'input.recordselect.update_form', function(event, id, label) {
|
228
235
|
var element = jQuery(this);
|
229
236
|
ActiveScaffold.update_column(element, element.data('update_url'), element.data('update_send_form'), element.attr('id'), id);
|
@@ -279,14 +286,21 @@ jQuery(document).ready(function($) {
|
|
279
286
|
e.preventDefault();
|
280
287
|
});
|
281
288
|
|
289
|
+
/* setup some elements on page/form load */
|
290
|
+
ActiveScaffold.load_embedded(document);
|
291
|
+
ActiveScaffold.enable_js_form_buttons(document);
|
282
292
|
ActiveScaffold.live_search(document);
|
283
293
|
ActiveScaffold.auto_paginate(document);
|
284
|
-
ActiveScaffold.draggable_lists('.draggable-lists');
|
294
|
+
ActiveScaffold.draggable_lists('.draggable-lists', document);
|
285
295
|
jQuery(document).on('as:element_updated', function(e) {
|
296
|
+
ActiveScaffold.load_embedded(e.target);
|
297
|
+
ActiveScaffold.enable_js_form_buttons(e.target);
|
286
298
|
ActiveScaffold.live_search(e.target);
|
287
299
|
ActiveScaffold.draggable_lists('.draggable-lists', e.target);
|
288
300
|
});
|
289
301
|
jQuery(document).on('as:action_success', 'a.as_action', function(e, action_link) {
|
302
|
+
ActiveScaffold.load_embedded(action_link.adapter);
|
303
|
+
ActiveScaffold.enable_js_form_buttons(action_link.adapter);
|
290
304
|
ActiveScaffold.live_search(action_link.adapter);
|
291
305
|
ActiveScaffold.auto_paginate(action_link.adapter);
|
292
306
|
ActiveScaffold.draggable_lists('.draggable-lists', action_link.adapter);
|
@@ -415,6 +429,17 @@ var ActiveScaffold = {
|
|
415
429
|
auto_load_page: function(href, params) {
|
416
430
|
jQuery.get(href, params, null, 'script');
|
417
431
|
},
|
432
|
+
enable_js_form_buttons: function(element) {
|
433
|
+
jQuery('.as-js-button', element).show();
|
434
|
+
},
|
435
|
+
load_embedded: function(element) {
|
436
|
+
$('.active-scaffold-component .load-embedded', element).each(function(index, item) {
|
437
|
+
item = jQuery(item);
|
438
|
+
item.closest('.active-scaffold-component').load(item.attr('href'), function() {
|
439
|
+
jQuery(this).trigger('as:element_updated');
|
440
|
+
});
|
441
|
+
});
|
442
|
+
},
|
418
443
|
|
419
444
|
records_for: function(tbody_id) {
|
420
445
|
if (typeof(tbody_id) == 'string') tbody_id = '#' + tbody_id;
|
@@ -455,10 +480,11 @@ var ActiveScaffold = {
|
|
455
480
|
removeSortClasses: function(scaffold) {
|
456
481
|
if (typeof(scaffold) == 'string') scaffold = '#' + scaffold;
|
457
482
|
scaffold = jQuery(scaffold)
|
458
|
-
scaffold.find('td.sorted').each(function(element) {
|
459
|
-
element.removeClass("sorted");
|
483
|
+
scaffold.find('td.sorted').each(function(index, element) {
|
484
|
+
jQuery(element).removeClass("sorted");
|
460
485
|
});
|
461
|
-
scaffold.find('th.sorted').each(function(element) {
|
486
|
+
scaffold.find('th.sorted').each(function(index, element) {
|
487
|
+
element = jQuery(element);
|
462
488
|
element.removeClass("sorted");
|
463
489
|
element.removeClass("asc");
|
464
490
|
element.removeClass("desc");
|
@@ -735,21 +761,6 @@ var ActiveScaffold = {
|
|
735
761
|
}
|
736
762
|
},
|
737
763
|
|
738
|
-
create_visibility_toggle: function(element, options) {
|
739
|
-
if (typeof(element) == 'string') element = '#' + element;
|
740
|
-
var toggable = jQuery(element);
|
741
|
-
var toggler = toggable.prev();
|
742
|
-
var initial_label = (options.default_visible === true) ? options.hide_label : options.show_label;
|
743
|
-
|
744
|
-
toggler.append(' <a class="visibility-toggle" href="#">' + initial_label + '</a>');
|
745
|
-
toggler.children('a').click(function(e) {
|
746
|
-
e.preventDefault();
|
747
|
-
toggable.toggle();
|
748
|
-
jQuery(this).html((toggable.is(':hidden')) ? options.show_label : options.hide_label);
|
749
|
-
return false;
|
750
|
-
});
|
751
|
-
},
|
752
|
-
|
753
764
|
create_associated_record_form: function(element, content, options) {
|
754
765
|
if (typeof(element) == 'string') element = '#' + element;
|
755
766
|
var element = jQuery(element);
|
@@ -953,11 +964,11 @@ var ActiveScaffold = {
|
|
953
964
|
});
|
954
965
|
},
|
955
966
|
|
956
|
-
draggable_lists: function(
|
967
|
+
draggable_lists: function(selector_or_elements, parent) {
|
957
968
|
var elements;
|
958
969
|
if (!jQuery.fn.draggableLists) return;
|
959
|
-
if (typeof(
|
960
|
-
else elements = jQuery(
|
970
|
+
if (typeof(selector_or_elements) == 'string') elements = jQuery('ul' + selector_or_elements, parent);
|
971
|
+
else elements = jQuery(selector_or_elements);
|
961
972
|
elements.draggableLists();
|
962
973
|
}
|
963
974
|
}
|
@@ -284,6 +284,13 @@ document.observe("dom:loaded", function() {
|
|
284
284
|
} else value = form_element.getValue();
|
285
285
|
ActiveScaffold.update_column(form_element, element.readAttribute('href'), element.hasAttribute('data-update_send_form'), form_element.readAttribute('id'), value);
|
286
286
|
});
|
287
|
+
document.on('click', 'a.visibility-toggle', function(event) {
|
288
|
+
event.stop();
|
289
|
+
var link = event.findElement();
|
290
|
+
var toggable = $(link.readAttribute('data-toggable'));
|
291
|
+
toggable.toggle();
|
292
|
+
link.innerHTML = (toggable.style.display == 'none') ? link.readAttribute('data-show') : link.readAttribute('data-hide');
|
293
|
+
});
|
287
294
|
document.on('recordselect:change', 'input.recordselect.update_form', function(event) {
|
288
295
|
var element = event.findElement();
|
289
296
|
ActiveScaffold.update_column(element, element.readAttribute('data-update_url'), element.hasAttribute('data-update_send_form'), element.readAttribute('id'), element.memo.id);
|
@@ -330,6 +337,27 @@ document.observe("dom:loaded", function() {
|
|
330
337
|
ActiveScaffold.hide(element.up('.message'));
|
331
338
|
event.stop();
|
332
339
|
});
|
340
|
+
|
341
|
+
/* setup some elements on page/form load */
|
342
|
+
ActiveScaffold.load_embedded(document);
|
343
|
+
ActiveScaffold.enable_js_form_buttons(document);
|
344
|
+
ActiveScaffold.live_search(document);
|
345
|
+
ActiveScaffold.auto_paginate(document);
|
346
|
+
ActiveScaffold.draggable_lists('.draggable-lists', document);
|
347
|
+
document.on('as:element_updated', function(e) {
|
348
|
+
var target = event.findElement();
|
349
|
+
ActiveScaffold.load_embedded(target);
|
350
|
+
ActiveScaffold.enable_js_form_buttons(target);
|
351
|
+
ActiveScaffold.live_search(target);
|
352
|
+
ActiveScaffold.draggable_lists('.draggable-lists', target);
|
353
|
+
});
|
354
|
+
document.on('as:action_success', 'a.as_action', function(e, action_link) {
|
355
|
+
ActiveScaffold.load_embedded(action_link.adapter);
|
356
|
+
ActiveScaffold.enable_js_form_buttons(action_link.adapter);
|
357
|
+
ActiveScaffold.live_search(action_link.adapter);
|
358
|
+
ActiveScaffold.auto_paginate(action_link.adapter);
|
359
|
+
ActiveScaffold.draggable_lists('.draggable-lists', action_link.adapter);
|
360
|
+
});
|
333
361
|
});
|
334
362
|
|
335
363
|
|
@@ -338,6 +366,38 @@ document.observe("dom:loaded", function() {
|
|
338
366
|
*/
|
339
367
|
|
340
368
|
var ActiveScaffold = {
|
369
|
+
live_search: function(element) {
|
370
|
+
$$('form.search.live input[type=search]', element).each(function(item) {
|
371
|
+
new Form.Element.DelayedObserver(item, 0.5, function(element, value) {
|
372
|
+
if (!$(element.id)) return false; // because the element may have been destroyed
|
373
|
+
$(element).next().click();
|
374
|
+
});
|
375
|
+
});
|
376
|
+
},
|
377
|
+
auto_paginate: function(element) {
|
378
|
+
var paginate_link = $(element).select('.active-scaffold-pagination.auto-paginate a:first');
|
379
|
+
if (paginate_link.length) {
|
380
|
+
$(element).select('.active-scaffold-pagination.auto-paginate').invoke('hide');
|
381
|
+
ActiveScaffold.auto_load_page(paginate_link.readAttribute('href'), {auto_pagination: true});
|
382
|
+
}
|
383
|
+
},
|
384
|
+
auto_load_page: function(href, params) {
|
385
|
+
new Ajax.Request(href, {
|
386
|
+
method: 'get',
|
387
|
+
parameters: params,
|
388
|
+
asynchronous: true,
|
389
|
+
evalScripts: true
|
390
|
+
});
|
391
|
+
},
|
392
|
+
enable_js_form_buttons: function(element) {
|
393
|
+
$(element).select('.as-js-button').invoke('show');
|
394
|
+
},
|
395
|
+
load_embedded: function(element) {
|
396
|
+
$(element).select('.active-scaffold-component .load-embedded').each(function(item) {
|
397
|
+
new Ajax.Updater(item.up('.active-scaffold-component'), item.readAttribute('href'), {method: 'get', evalScripts: true});
|
398
|
+
});
|
399
|
+
},
|
400
|
+
|
341
401
|
records_for: function(tbody_id) {
|
342
402
|
var rows = [];
|
343
403
|
var child = $(tbody_id).down('.record');
|
@@ -627,21 +687,6 @@ var ActiveScaffold = {
|
|
627
687
|
span.inplace_edit.enterEditMode();
|
628
688
|
},
|
629
689
|
|
630
|
-
create_visibility_toggle: function(element, options) {
|
631
|
-
var toggable = $(element);
|
632
|
-
var toggler = toggable.previous();
|
633
|
-
var initial_label = (options.default_visible === true) ? options.hide_label : options.show_label;
|
634
|
-
|
635
|
-
toggler.insert(' <a class="visibility-toggle" href="#">' + initial_label + '</a>');
|
636
|
-
toggler.firstDescendant().observe('click', function(event) {
|
637
|
-
var element = event.element();
|
638
|
-
event.stop();
|
639
|
-
toggable.toggle();
|
640
|
-
element.innerHTML = (toggable.style.display == 'none') ? options.show_label : options.hide_label;
|
641
|
-
return false;
|
642
|
-
});
|
643
|
-
},
|
644
|
-
|
645
690
|
create_associated_record_form: function(element, content, options) {
|
646
691
|
var element = $(element);
|
647
692
|
if (options.singular == false) {
|
@@ -756,8 +801,13 @@ var ActiveScaffold = {
|
|
756
801
|
});
|
757
802
|
},
|
758
803
|
|
759
|
-
draggable_lists: function(
|
760
|
-
|
804
|
+
draggable_lists: function(selector_or_elements, parent) {
|
805
|
+
var elements;
|
806
|
+
if (typeof(selector_or_elements) == 'string') elements = $(parent).select('ul' + selector_or_elements);
|
807
|
+
else elements = $A($(selector_or_elements));
|
808
|
+
elements.each(function(item) {
|
809
|
+
new DraggableLists(item);
|
810
|
+
});
|
761
811
|
},
|
762
812
|
|
763
813
|
highlight: function(element) {
|
@@ -13,13 +13,16 @@ form_tag url_options, options %>
|
|
13
13
|
<% end -%>
|
14
14
|
<% unless hiddens.empty? -%>
|
15
15
|
<li class="sub-section">
|
16
|
-
|
17
|
-
<
|
16
|
+
<% further_options_id = sub_section_id(:sub_section => 'further_options') %>
|
17
|
+
<h5>
|
18
|
+
<%= as_(:optional_attributes) %>
|
19
|
+
<%= link_to_visibility_toggle(further_options_id, {:default_visible => false}) %>
|
20
|
+
</h5>
|
21
|
+
<ol id ="<%= further_options_id %>" class="form" style="display:none;">
|
18
22
|
<% hiddens.each do |column| -%>
|
19
23
|
<li class="form-element"><%= search_attribute(column, @record) %></li>
|
20
24
|
<% end -%>
|
21
25
|
</ol>
|
22
|
-
<%= link_to_visibility_toggle(sub_section_id(:sub_section => 'further_options'), {:default_visible => false}) %>
|
23
26
|
</li>
|
24
27
|
<% end -%>
|
25
28
|
</ol>
|
@@ -12,9 +12,11 @@
|
|
12
12
|
<% if authorized %>
|
13
13
|
<% subsection_id = sub_section_id(:sub_section => column.label) %>
|
14
14
|
<li class="sub-section <%= column_css_class %>">
|
15
|
-
<h5
|
15
|
+
<h5>
|
16
|
+
<%= column.label %>
|
17
|
+
<%= link_to_visibility_toggle(subsection_id, {:default_visible => !column.collapsed}) -%>
|
18
|
+
</h5>
|
16
19
|
<%= render :partial => 'form', :locals => { :columns => column, :subsection_id => subsection_id, :form_action => form_action, :scope => scope } %>
|
17
|
-
<%= link_to_visibility_toggle(subsection_id, {:default_visible => !column.collapsed}) -%>
|
18
20
|
</li>
|
19
21
|
<% end %>
|
20
22
|
<% elsif renders_as == :subform and authorized -%>
|
@@ -10,14 +10,16 @@ disable_required_for_new = @disable_required_for_new
|
|
10
10
|
@disable_required_for_new = !!show_blank_record unless (column.singular_association? && column.required?)
|
11
11
|
subform_div_id = "#{sub_form_id(:association => column.name, :id => parent_record.id || generated_id(parent_record) || 99999999999)}-div"
|
12
12
|
-%>
|
13
|
-
<h5
|
13
|
+
<h5>
|
14
|
+
<%= column.label -%>
|
15
|
+
<%= link_to_visibility_toggle(subform_div_id, {:default_visible => !column.collapsed}) -%>
|
16
|
+
</h5>
|
14
17
|
<div id ="<%= subform_div_id %>" <%= 'style="display: none;"'.html_safe if column.collapsed -%>>
|
15
18
|
<%# HACK to be able to delete all associated records %>
|
16
19
|
<%= hidden_field_tag "#{active_scaffold_input_options(column, scope, :object => parent_record)[:name]}[0]", '' if column.plural_association? %>
|
17
20
|
<%= render :partial => subform_partial_for_column(column), :locals => {:column => column, :parent_record => parent_record, :associated => associated, :show_blank_record => show_blank_record, :scope => scope} %>
|
18
21
|
<%= render :partial => 'form_association_footer', :locals => {:parent_record => parent_record, :column => column, :associated => associated, :scope => scope} -%>
|
19
22
|
</div>
|
20
|
-
<%= link_to_visibility_toggle(subform_div_id, {:default_visible => !column.collapsed}) -%>
|
21
23
|
<%
|
22
24
|
@record = parent_record # restore @record, some partials can change it TODO remove when changing @record is removed
|
23
25
|
@disable_required_for_new = disable_required_for_new
|
@@ -28,8 +28,7 @@ add_new_url = params_for(:controller => controller_path, :action => 'edit_associ
|
|
28
28
|
add_class = 'as_replace_with_new'
|
29
29
|
end
|
30
30
|
create_another_id = "#{sub_form_id(:association => column.name, :id => parent_record.id || temporary_id || 99999999999)}-create-another" %>
|
31
|
-
<%= link_to add_label, add_new_url, :id => create_another_id, :remote => true, :class => add_class, :style=> "display: none;" %>
|
32
|
-
<%= javascript_tag("ActiveScaffold.show('#{create_another_id}');") %>
|
31
|
+
<%= link_to add_label, add_new_url, :id => create_another_id, :remote => true, :class => "as-js-button #{add_class}", :style=> "display: none;" %>
|
33
32
|
<% end -%>
|
34
33
|
|
35
34
|
<%= '|' if show_add_new and show_add_existing %>
|
@@ -42,8 +41,7 @@ add_new_url = params_for(:controller => controller_path, :action => 'edit_associ
|
|
42
41
|
add_existing_id = "#{sub_form_id(:association => column.name, :id => parent_record.id || temporary_id || 99999999999)}-add-existing"
|
43
42
|
add_existing_label = column.plural_association? ? :add_existing : :replace_existing %>
|
44
43
|
<%= select_tag 'associated_id', '<option value="">'.html_safe + as_(:_select_) + '</option>'.html_safe + select_options %>
|
45
|
-
<%= link_to as_(add_existing_label), edit_associated_url, :id => add_existing_id, :remote => true, :class=> "as_#{add_existing_label}", :style => "display: none;" %>
|
46
|
-
<%= javascript_tag("ActiveScaffold.show('#{add_existing_id}');") %>
|
44
|
+
<%= link_to as_(add_existing_label), edit_associated_url, :id => add_existing_id, :remote => true, :class=> "subform-button as_#{add_existing_label}", :style => "display: none;" %>
|
47
45
|
<% end -%>
|
48
46
|
<% end -%>
|
49
47
|
</div>
|
@@ -12,17 +12,3 @@ options = {:id => element_form_id(:action => 'search'),
|
|
12
12
|
<%= link_to as_(:reset), url_for(url_options.merge(:search => '')), :class => 'as_cancel reset', :remote => true, :data => {:refresh => true} %>
|
13
13
|
<%= loading_indicator_tag(:action => :search) %>
|
14
14
|
</form>
|
15
|
-
|
16
|
-
<% if ActiveScaffold.js_framework == :prototype %>
|
17
|
-
<script type="text/javascript">
|
18
|
-
//<![CDATA[
|
19
|
-
new TextFieldWithExample('<%= search_input_id %>', '<%= as_(live_search ? :live_search : :search_terms) %>', {focus: true});
|
20
|
-
<% if live_search -%>
|
21
|
-
new Form.Element.DelayedObserver('<%= search_input_id %>', 0.5, function(element, value) {
|
22
|
-
if (!$(element.id)) return false; // because the element may have been destroyed
|
23
|
-
$(element).next().click();
|
24
|
-
});
|
25
|
-
<% end -%>
|
26
|
-
//]]>
|
27
|
-
</script>
|
28
|
-
<% end -%>
|
@@ -41,7 +41,7 @@ module ActiveScaffold::Config
|
|
41
41
|
def columns
|
42
42
|
# we want to delay initializing to the @core.columns set for as long as possible. Too soon and .search_sql will not be available to .searchable?
|
43
43
|
unless @columns
|
44
|
-
self.columns = @core.columns.collect{|c| c.name if @core.columns._inheritable.include?(c.name) and c.searchable? and c.text?}.compact
|
44
|
+
self.columns = @core.columns.collect{|c| c.name if @core.columns._inheritable.include?(c.name) and c.searchable? and c.association.nil? and c.text?}.compact
|
45
45
|
end
|
46
46
|
@columns
|
47
47
|
end
|
@@ -75,12 +75,7 @@ module ActionView::Helpers #:nodoc:
|
|
75
75
|
# might be a namespaced controller (e.g., 'admin/admins')
|
76
76
|
model = remote_controller.to_s.sub(/.*\//, '').singularize
|
77
77
|
content_tag(:div, :class => 'active-scaffold-header') do
|
78
|
-
content_tag :h2, link_to(args.first[:label] || active_scaffold_config_for(model).list.label, url, :remote => true)
|
79
|
-
end <<
|
80
|
-
if ActiveScaffold.js_framework == :prototype
|
81
|
-
javascript_tag("new Ajax.Updater('#{id}', '#{url}', {method: 'get', evalScripts: true});")
|
82
|
-
elsif ActiveScaffold.js_framework == :jquery
|
83
|
-
javascript_tag("jQuery('##{id}').load('#{url}', function() { jQuery(this).trigger('as:element_updated'); });")
|
78
|
+
content_tag :h2, link_to(args.first[:label] || active_scaffold_config_for(model).list.label, url, :remote => true, :class => 'load-embedded')
|
84
79
|
end
|
85
80
|
end
|
86
81
|
end
|
@@ -80,7 +80,7 @@ module ActiveScaffold
|
|
80
80
|
options[:default_visible] = true if options[:default_visible].nil?
|
81
81
|
options[:hide_label] ||= as_(:hide)
|
82
82
|
options[:show_label] ||= as_(:show_block)
|
83
|
-
|
83
|
+
link_to options[:default_visible] ? options[:hide_label] : options[:show_label], '#', :data => {:show => options[:show_label], :hide => options[:hide_label], :toggable => id}, :style => 'display: none;', :class => 'as-js-button visibility-toggle'
|
84
84
|
end
|
85
85
|
|
86
86
|
def skip_action_link?(link, *args)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_scaffold
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Many, see README
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: shoulda
|