active_scaffold 4.0.0.rc1 → 4.0.0.rc2
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 +4 -4
- data/CHANGELOG.rdoc +6 -1
- data/README.md +5 -15
- data/app/assets/config/active_scaffold/manifest.js +3 -0
- data/app/assets/javascripts/jquery/active_scaffold.js +6 -0
- data/app/assets/stylesheets/active_scaffold.scss +2 -2
- data/app/assets/stylesheets/active_scaffold_colors.scss +7 -0
- data/app/assets/stylesheets/active_scaffold_layout.css +21 -0
- data/app/views/active_scaffold_overrides/_list.html.erb +1 -8
- data/app/views/active_scaffold_overrides/_list_messages.html.erb +1 -10
- data/app/views/active_scaffold_overrides/_list_messages_content.html.erb +8 -0
- data/app/views/active_scaffold_overrides/_new_record.js.erb +15 -0
- data/app/views/active_scaffold_overrides/_refresh_create_form.js.erb +12 -0
- data/app/views/active_scaffold_overrides/destroy.js.erb +6 -3
- data/app/views/active_scaffold_overrides/on_create.js.erb +2 -30
- data/lib/active_scaffold/bridges/date_picker/ext.rb +1 -1
- data/lib/active_scaffold/config/core.rb +5 -0
- data/lib/active_scaffold/data_structures/action_link_separator.rb +13 -0
- data/lib/active_scaffold/data_structures/action_links.rb +12 -6
- data/lib/active_scaffold/helpers/action_link_helpers.rb +29 -13
- data/lib/active_scaffold/version.rb +1 -1
- data/lib/generators/active_scaffold/install_generator.rb +93 -21
- data/vendor/assets/stylesheets/jquery-ui-theme.css.erb +0 -17
- metadata +35 -17
- data/app/assets/config/active_scaffold_manifest.js +0 -3
- /data/{app → vendor}/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
- /data/{app → vendor}/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4bccfcf8d4c225ac40c3065df81306ddd3dd481c730c8154ba9f3c739a5521c0
|
|
4
|
+
data.tar.gz: 52eeca24fb5823cb0be1c6e9996ea5cde658902956158177e9175623d018426e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 06a2c2bf3b3e7f1dc622ec0f7ddb678156d61e6ade22d60ba30bd33c1b9843e310b6e2424af1f016e8bb9b6099926986f7882ebec17190173e69f29372dcdbbc
|
|
7
|
+
data.tar.gz: 90641599e80840772a26f2249819474cca3153927c30d20c69980d95343ebfed3fca3c2c599ee935c67859440caf53d59b3c35a47d9cac43bae1156e01f3d8f6
|
data/CHANGELOG.rdoc
CHANGED
|
@@ -5,8 +5,13 @@
|
|
|
5
5
|
- Action links can't be changed, added or removed, add all links and use ignore_method to control when they are displayed
|
|
6
6
|
- Require using active_scaffold_config.override_columns to exclude or add columns
|
|
7
7
|
- Thread safety enabled by default, can't be disabled, deprecate ActiveScaffold.threadsafe!
|
|
8
|
+
- Support separators in action links
|
|
8
9
|
|
|
9
|
-
= 3.7.
|
|
10
|
+
= 3.7.10
|
|
11
|
+
- Move code from on_create.js.erb to partials, so it's easier to change parts, e.g. how new record is rendered
|
|
12
|
+
- Don't reload after deleting last record if pagination is disabled
|
|
13
|
+
|
|
14
|
+
= 3.7.9
|
|
10
15
|
- Add css_class to action links, to avoid changing name, it may result confusing, deprecate name setter.
|
|
11
16
|
- Add buttons to check all and uncheck all on :select form ui for collection associations, and draggable lists (active_scaffold_checkbox_list).
|
|
12
17
|
- Add hidden field with locking column in base_form partial for persisted records automatically, if model uses optimistic locking.
|
data/README.md
CHANGED
|
@@ -32,25 +32,17 @@ Added to Gemfile
|
|
|
32
32
|
gem 'active_scaffold'
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Add jquery-rails to Gemfile, or handle jquery with other tools like webpack or importmap. Also it's possible to load jquery in your layout before application.js using CDN (e.g. jquery-rails-cdn). You can replace @rails/ujs with jquery_ujs, although @rails/ujs should work (never load both).
|
|
36
36
|
|
|
37
37
|
```ruby
|
|
38
38
|
gem 'jquery-rails'
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
For rails
|
|
41
|
+
For rails 7.x, install generator will add active_scaffold to config/importmap.rb, app/javascript/application.js, and active_scaffold/manifest.js to app/assets/config/manifest.js. It will add jquery and jquery_ujs to all the 3 files if jquery-rails gem is available.
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
For rails 6.1, install generator will create app/assets/javascripts/application.js, add it, and active_scaffold/manifest.js, to app/assets/config/manifest.js and add javascript_include_tag in layout, as ActiveScaffold doesn't work with webpack. It will add jquery to app/assets/javascripts/application.js too if query-rails gem is available, although Jquery may be loaded by packs too and it will work, it won't add jquery_ujs or @rails/ujs as it's added to app/javascript/packs/application.js by default.
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
bundle install
|
|
47
|
-
rails g active_scaffold:install
|
|
48
|
-
bundle exec rake db:create
|
|
49
|
-
rails g active_scaffold:resource Model [attrs]
|
|
50
|
-
bundle exec rake db:migrate
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Or run the following commands, for rails >= 5
|
|
45
|
+
Run the following commands
|
|
54
46
|
|
|
55
47
|
```console
|
|
56
48
|
bundle install
|
|
@@ -67,9 +59,7 @@ It's recommended to call `clear_helpers` in ApplicationController, as some helpe
|
|
|
67
59
|
Threadsafe
|
|
68
60
|
----------
|
|
69
61
|
|
|
70
|
-
Threadsafe
|
|
71
|
-
It should be enabled on app start and it can't be disabled. Threadsafety is a
|
|
72
|
-
new feature and not well tested yet.
|
|
62
|
+
Threadsafe is enabled always since 4.0, and it can't be disabled.
|
|
73
63
|
|
|
74
64
|
Configuration
|
|
75
65
|
-------------
|
|
@@ -647,6 +647,11 @@
|
|
|
647
647
|
jQuery(tbody).parent().find('tbody.messages p.empty-message').hide();
|
|
648
648
|
}
|
|
649
649
|
},
|
|
650
|
+
show_empty_message: function(tbody) {
|
|
651
|
+
if (this.records_for(tbody).length != 0) {
|
|
652
|
+
jQuery(tbody).parent().find('tbody.messages p.empty-message').hide();
|
|
653
|
+
}
|
|
654
|
+
},
|
|
650
655
|
reload_if_empty: function(tbody, url) {
|
|
651
656
|
if (this.records_for(tbody).length == 0) {
|
|
652
657
|
this.reload(url);
|
|
@@ -849,6 +854,7 @@
|
|
|
849
854
|
ActiveScaffold.stripe(tbody);
|
|
850
855
|
ActiveScaffold.decrement_record_count(tbody.closest('div.active-scaffold'));
|
|
851
856
|
if (page_reload_url) ActiveScaffold.reload_if_empty(tbody, page_reload_url);
|
|
857
|
+
else ActiveScaffold.show_empty_message(tbody);
|
|
852
858
|
});
|
|
853
859
|
},
|
|
854
860
|
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
For details, see the ActiveScaffold web site: https://github.com/activescaffold/active_scaffold
|
|
8
8
|
*/
|
|
9
|
+
//= require "active_scaffold_jquery_ui"
|
|
10
|
+
//= require "active_scaffold_extensions"
|
|
9
11
|
|
|
10
12
|
@import 'active_scaffold_layout';
|
|
11
13
|
@import 'active_scaffold_images';
|
|
12
|
-
@import 'active_scaffold_jquery_ui';
|
|
13
|
-
@import 'active_scaffold_extensions';
|
|
14
14
|
@import 'active_scaffold_colors';
|
|
@@ -110,6 +110,9 @@ color: $column_color;
|
|
|
110
110
|
color: $header_color;
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
+
.active-scaffold div.actions a.separator {
|
|
114
|
+
border-color: $action_group_border_color;
|
|
115
|
+
}
|
|
113
116
|
.active-scaffold-header div.actions a.disabled {
|
|
114
117
|
color: $actions_disabled_color;
|
|
115
118
|
}
|
|
@@ -191,6 +194,10 @@ color: $column_empty_color;
|
|
|
191
194
|
border-color: $column_actions_border_color;
|
|
192
195
|
}
|
|
193
196
|
|
|
197
|
+
.active-scaffold tr.record td.actions table td.separator {
|
|
198
|
+
border-color: $column_actions_border_color;
|
|
199
|
+
}
|
|
200
|
+
|
|
194
201
|
.active-scaffold tr.record td.actions a.disabled {
|
|
195
202
|
color: $actions_disabled_color;
|
|
196
203
|
}
|
|
@@ -110,6 +110,12 @@ top: 14px;
|
|
|
110
110
|
top: -3px;
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
+
.active-scaffold div.actions a.separator {
|
|
114
|
+
border-right: 1px solid;
|
|
115
|
+
padding-right: 0;
|
|
116
|
+
padding-left: 0;
|
|
117
|
+
}
|
|
118
|
+
|
|
113
119
|
.active-scaffold div.actions a.disabled {
|
|
114
120
|
opacity: 0.5;
|
|
115
121
|
}
|
|
@@ -251,6 +257,11 @@ text-align: right;
|
|
|
251
257
|
padding: 0 2px;
|
|
252
258
|
}
|
|
253
259
|
|
|
260
|
+
.active-scaffold tr.record td.actions table td.separator {
|
|
261
|
+
border-right: solid 1px;
|
|
262
|
+
padding: 0;
|
|
263
|
+
}
|
|
264
|
+
|
|
254
265
|
.active-scaffold tr.record td.actions a,
|
|
255
266
|
.active-scaffold tr.record td.actions div {
|
|
256
267
|
font-weight: bold;
|
|
@@ -304,6 +315,16 @@ width: auto;
|
|
|
304
315
|
text-align: left;
|
|
305
316
|
}
|
|
306
317
|
|
|
318
|
+
.active-scaffold .actions .action_group ul li.separator {
|
|
319
|
+
border-top-width: 1px;
|
|
320
|
+
border-top-style: solid;
|
|
321
|
+
height: 0;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
.active-scaffold .actions .action_group ul li.separator + li {
|
|
325
|
+
border-top: none;
|
|
326
|
+
}
|
|
327
|
+
|
|
307
328
|
.active-scaffold .actions .action_group ul li div {
|
|
308
329
|
margin: 0;
|
|
309
330
|
padding: 5px 5px 5px 25px;
|
|
@@ -3,14 +3,7 @@
|
|
|
3
3
|
<tbody>
|
|
4
4
|
<tr>
|
|
5
5
|
<td class="messages-container">
|
|
6
|
-
|
|
7
|
-
<%= as_(:internal_error).html_safe %>
|
|
8
|
-
<span class="error-500"><%= as_(:error_500).html_safe %></span>
|
|
9
|
-
<a href="#" class="close" title="<%= as_(:close).html_safe %>"><%= as_(:close).html_safe %></a>
|
|
10
|
-
</p>
|
|
11
|
-
<div id="<%= active_scaffold_messages_id -%>" class="action-messages">
|
|
12
|
-
<%= render 'messages' %>
|
|
13
|
-
</div>
|
|
6
|
+
<%= render 'list_messages_content' %>
|
|
14
7
|
</td>
|
|
15
8
|
</tr>
|
|
16
9
|
</tbody>
|
|
@@ -2,16 +2,7 @@
|
|
|
2
2
|
<tbody class="messages">
|
|
3
3
|
<tr class="record even-record">
|
|
4
4
|
<td colspan="<%= column_count -%>" class="messages-container">
|
|
5
|
-
|
|
6
|
-
<p class="error-message message server-error" style="display:none;">
|
|
7
|
-
<%= as_(:internal_error).html_safe %>
|
|
8
|
-
<span class="error-500"><%= as_(:error_500).html_safe %></span>
|
|
9
|
-
<a href="#" class="close" title="<%= as_(:close).html_safe %>"><%= as_(:close).html_safe %></a>
|
|
10
|
-
</p>
|
|
11
|
-
<div id="<%= active_scaffold_messages_id -%>" class="action-messages">
|
|
12
|
-
<%= render 'messages' %>
|
|
13
|
-
</div>
|
|
14
|
-
<% end %>
|
|
5
|
+
<%= render 'list_messages_content' unless active_scaffold_config.list.messages_above_header %>
|
|
15
6
|
<%= content_tag :div, class: 'filtered-message',
|
|
16
7
|
style: ('display:none;' unless @filtered),
|
|
17
8
|
data: ({search: search_params || ''} if active_scaffold_config.store_user_settings && respond_to?(:search_params)) do %>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<p class="error-message message server-error" style="display:none;">
|
|
2
|
+
<%= as_(:internal_error).html_safe %>
|
|
3
|
+
<span class="error-500"><%= as_(:error_500).html_safe %></span>
|
|
4
|
+
<a href="#" class="close" title="<%= as_(:close).html_safe %>"><%= as_(:close).html_safe %></a>
|
|
5
|
+
</p>
|
|
6
|
+
<div id="<%= active_scaffold_messages_id -%>" class="action-messages">
|
|
7
|
+
<%= render 'messages' %>
|
|
8
|
+
</div>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<% if render_parent? %>
|
|
2
|
+
<% if nested_singular_association? %>
|
|
3
|
+
if (action_link) action_link.close(true);
|
|
4
|
+
<% elsif params[:parent_sti] && render_parent_action == :row %>
|
|
5
|
+
ActiveScaffold.create_record_row_from_url(action_link, '<%= url_for(render_parent_options) %>', <%= {insert_at: insert_at}.to_json.html_safe %>);
|
|
6
|
+
<% else %>
|
|
7
|
+
ActiveScaffold.reload('<%= url_for render_parent_options %>');
|
|
8
|
+
<% end %>
|
|
9
|
+
<% elsif active_scaffold_config.create.refresh_list %>
|
|
10
|
+
<%= render 'refresh_list', no_history: true %>
|
|
11
|
+
<% elsif params[:parent_controller].nil? %>
|
|
12
|
+
<% new_row = render 'list_record', record: @saved_record || @record %>
|
|
13
|
+
ActiveScaffold.create_record_row(action_link ? action_link.scaffold() : '<%= active_scaffold_id %>', '<%= escape_javascript(new_row) %>', <%= {insert_at: insert_at}.to_json.html_safe %>);
|
|
14
|
+
<%= render 'update_calculations' %>
|
|
15
|
+
<% end %>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<% if always_show_create %>
|
|
2
|
+
ActiveScaffold.reset_form('<%= form_selector %>');
|
|
3
|
+
<% elsif params[:dont_close] %>
|
|
4
|
+
ActiveScaffold.replace('<%= form_selector %>','<%= escape_javascript(render('create_form', xhr: true)) %>');
|
|
5
|
+
ActiveScaffold.focus_first_element_of_form('<%= form_selector %>');
|
|
6
|
+
<% else %>
|
|
7
|
+
if (action_link) action_link.close();
|
|
8
|
+
<% end %>
|
|
9
|
+
<% if active_scaffold_config.create.action_after_create %>
|
|
10
|
+
var link = ActiveScaffold.find_action_link('<%= action_link_id active_scaffold_config.create.action_after_create, @record.id || @saved_record.id %>');
|
|
11
|
+
if (link) link.open();
|
|
12
|
+
<% end %>
|
|
@@ -17,10 +17,13 @@
|
|
|
17
17
|
<%= render 'refresh_list', no_history: true %>
|
|
18
18
|
<% else %>
|
|
19
19
|
<%
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
if active_scaffold_config.actions.exclude?(:list) || active_scaffold_config.list.pagination
|
|
21
|
+
url = main_path_to_return
|
|
22
|
+
url[:page] = [active_scaffold_config.list.user.page.to_i - 1, 1].max if url.is_a?(Hash) && active_scaffold_config.actions.include?(:list)
|
|
23
|
+
url = url_for(url)
|
|
24
|
+
end
|
|
22
25
|
%>
|
|
23
|
-
ActiveScaffold.delete_record_row('<%= element_row_id(action: 'list', id: params[:id]) %>', '<%=
|
|
26
|
+
ActiveScaffold.delete_record_row('<%= element_row_id(action: 'list', id: params[:id]) %>', '<%= url %>');
|
|
24
27
|
<%= render 'update_calculations' %>
|
|
25
28
|
<% end %>
|
|
26
29
|
<% else %>
|
|
@@ -12,36 +12,8 @@ action_link = ActiveScaffold.find_action_link('<%= form_selector %>');
|
|
|
12
12
|
if (action_link) action_link.update_flash_messages('<%= escape_javascript(render('messages')) %>');
|
|
13
13
|
<% end -%>
|
|
14
14
|
<% if successful? -%>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (action_link) action_link.close(true);
|
|
18
|
-
<% elsif params[:parent_sti] && render_parent_action == :row %>
|
|
19
|
-
ActiveScaffold.create_record_row_from_url(action_link,'<%= url_for(render_parent_options) %>', <%= {insert_at: insert_at}.to_json.html_safe %>);
|
|
20
|
-
<% else %>
|
|
21
|
-
ActiveScaffold.reload('<%= url_for render_parent_options %>');
|
|
22
|
-
<% end %>
|
|
23
|
-
<% elsif active_scaffold_config.create.refresh_list %>
|
|
24
|
-
<%= render 'refresh_list', no_history: true %>
|
|
25
|
-
<% elsif params[:parent_controller].nil? %>
|
|
26
|
-
<% new_row = render 'list_record', record: @saved_record || @record %>
|
|
27
|
-
ActiveScaffold.create_record_row(action_link ? action_link.scaffold() : '<%= active_scaffold_id %>', '<%= escape_javascript(new_row) %>', <%= {insert_at: insert_at}.to_json.html_safe %>);
|
|
28
|
-
<%= render 'update_calculations' %>
|
|
29
|
-
<% end %>
|
|
30
|
-
|
|
31
|
-
<% unless render_parent? %>
|
|
32
|
-
<% if always_show_create %>
|
|
33
|
-
ActiveScaffold.reset_form('<%= form_selector %>');
|
|
34
|
-
<% elsif params[:dont_close] %>
|
|
35
|
-
ActiveScaffold.replace('<%= form_selector %>','<%= escape_javascript(render('create_form', xhr: true)) %>');
|
|
36
|
-
ActiveScaffold.focus_first_element_of_form('<%= form_selector %>');
|
|
37
|
-
<% else %>
|
|
38
|
-
if (action_link) action_link.close();
|
|
39
|
-
<% end %>
|
|
40
|
-
<% if active_scaffold_config.create.action_after_create %>
|
|
41
|
-
var link = ActiveScaffold.find_action_link('<%= action_link_id active_scaffold_config.create.action_after_create, @record.id || @saved_record.id %>');
|
|
42
|
-
if (link) link.open();
|
|
43
|
-
<% end %>
|
|
44
|
-
<% end %>
|
|
15
|
+
<%= render 'new_record', insert_at: insert_at %>
|
|
16
|
+
<%= render 'refresh_create_form', always_show_create: always_show_create, form_selector: form_selector unless render_parent? %>
|
|
45
17
|
<% else %>
|
|
46
18
|
ActiveScaffold.replace('<%= form_selector %>','<%= escape_javascript(render('create_form', xhr: true)) %>');
|
|
47
19
|
ActiveScaffold.scroll_to('<%= form_selector %>', true);
|
|
@@ -4,7 +4,7 @@ class ActiveScaffold::Bridges::DatePicker
|
|
|
4
4
|
super
|
|
5
5
|
return unless ActiveScaffold::Bridges::DatePicker.default_ui
|
|
6
6
|
|
|
7
|
-
types = %i[date datetime]
|
|
7
|
+
types = %i[date datetime timestamp timestamptz]
|
|
8
8
|
date_picker_fields = _columns.filter_map { |c| {name: c.name.to_sym, type: c.type} if types.include?(c.type) }
|
|
9
9
|
# check to see if file column was used on the model
|
|
10
10
|
return if date_picker_fields.empty?
|
|
@@ -305,6 +305,11 @@ module ActiveScaffold::Config
|
|
|
305
305
|
include ActiveScaffold::Configurable
|
|
306
306
|
user_attr :cache_action_link_urls, :cache_association_options, :conditional_get_support,
|
|
307
307
|
:timestamped_messages, :highlight_messages
|
|
308
|
+
attr_writer :label
|
|
309
|
+
|
|
310
|
+
def label(options = {})
|
|
311
|
+
@label ? as_(@label, options) : @conf.label(options)
|
|
312
|
+
end
|
|
308
313
|
|
|
309
314
|
def method_missing(name, *args)
|
|
310
315
|
value = @conf.actions.include?(name) ? @conf.send(name) : super
|
|
@@ -34,6 +34,12 @@ module ActiveScaffold::DataStructures
|
|
|
34
34
|
end
|
|
35
35
|
alias << add
|
|
36
36
|
|
|
37
|
+
def add_separator(weight = 0)
|
|
38
|
+
raise 'Call add_separator on a group' if name == :root
|
|
39
|
+
|
|
40
|
+
add_to_set ActionLinkSeparator.new(weight)
|
|
41
|
+
end
|
|
42
|
+
|
|
37
43
|
def add_to_set(link)
|
|
38
44
|
@set << link
|
|
39
45
|
end
|
|
@@ -51,6 +57,8 @@ module ActiveScaffold::DataStructures
|
|
|
51
57
|
def [](val)
|
|
52
58
|
links = []
|
|
53
59
|
@set.each do |item|
|
|
60
|
+
next if item == :separator
|
|
61
|
+
|
|
54
62
|
if item.is_a?(ActiveScaffold::DataStructures::ActionLinks)
|
|
55
63
|
collected = item[val]
|
|
56
64
|
links << collected unless collected.nil?
|
|
@@ -64,6 +72,8 @@ module ActiveScaffold::DataStructures
|
|
|
64
72
|
def find_duplicate(link)
|
|
65
73
|
links = []
|
|
66
74
|
@set.each do |item|
|
|
75
|
+
next if item == :separator
|
|
76
|
+
|
|
67
77
|
if item.is_a?(ActiveScaffold::DataStructures::ActionLinks)
|
|
68
78
|
collected = item.find_duplicate(link)
|
|
69
79
|
links << collected unless collected.nil?
|
|
@@ -76,6 +86,8 @@ module ActiveScaffold::DataStructures
|
|
|
76
86
|
|
|
77
87
|
def delete(val)
|
|
78
88
|
each(include_set: true) do |link, set|
|
|
89
|
+
next if link == :separator
|
|
90
|
+
|
|
79
91
|
if link.action.to_s == val.to_s
|
|
80
92
|
set.delete link
|
|
81
93
|
break
|
|
@@ -110,12 +122,6 @@ module ActiveScaffold::DataStructures
|
|
|
110
122
|
end
|
|
111
123
|
end
|
|
112
124
|
|
|
113
|
-
def collect_by_type(type = nil)
|
|
114
|
-
links = []
|
|
115
|
-
subgroup(type).each(type) { |link| links << link }
|
|
116
|
-
links
|
|
117
|
-
end
|
|
118
|
-
|
|
119
125
|
def collect
|
|
120
126
|
@set
|
|
121
127
|
end
|
|
@@ -35,33 +35,49 @@ module ActiveScaffold
|
|
|
35
35
|
options[:level] ||= 0
|
|
36
36
|
options[:first_action] = true
|
|
37
37
|
output = ActiveSupport::SafeBuffer.new
|
|
38
|
+
prev_link = separator = nil
|
|
38
39
|
|
|
39
40
|
action_links.each(reverse: options.delete(:reverse), groups: true) do |link|
|
|
41
|
+
if link == :separator
|
|
42
|
+
separator = true if prev_link
|
|
43
|
+
next
|
|
44
|
+
end
|
|
45
|
+
content = nil
|
|
40
46
|
if link.is_a? ActiveScaffold::DataStructures::ActionLinks
|
|
41
|
-
unless link.empty?
|
|
42
|
-
options[:level] += 1
|
|
43
|
-
content = display_action_links(link, record, options, &block)
|
|
44
|
-
options[:level] -= 1
|
|
45
|
-
if content.present?
|
|
46
|
-
output << display_action_link(link, content, record, options)
|
|
47
|
-
options[:first_action] = false
|
|
48
|
-
end
|
|
49
|
-
end
|
|
47
|
+
content = display_action_link_group(link, record, options, &block) unless link.empty?
|
|
50
48
|
elsif !skip_action_link?(link, *Array(options[:for]))
|
|
51
49
|
authorized, reason = action_link_authorized?(link, *Array(options[:for]))
|
|
52
50
|
next if !authorized && options[:skip_unauthorized]
|
|
53
51
|
|
|
54
|
-
|
|
52
|
+
content = display_action_link(link, nil, record, options.merge(authorized: authorized, not_authorized_reason: reason))
|
|
55
53
|
options[:first_action] = false
|
|
56
54
|
end
|
|
55
|
+
next if content.blank?
|
|
56
|
+
|
|
57
|
+
prev_link = true
|
|
58
|
+
output << display_action_link_separator(options) if separator
|
|
59
|
+
output << content
|
|
60
|
+
separator = false
|
|
57
61
|
end
|
|
58
62
|
output
|
|
59
63
|
end
|
|
60
64
|
|
|
65
|
+
def display_action_link_group(link, record, options, &block)
|
|
66
|
+
options[:level] += 1
|
|
67
|
+
content = display_action_links(link, record, options, &block)
|
|
68
|
+
options[:level] -= 1
|
|
69
|
+
display_action_link(link, content, record, options).tap { options[:first_action] = false } if content.present?
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def display_action_link_separator(options)
|
|
73
|
+
tag = options[:level_0_tag] || :a if options[:level].zero?
|
|
74
|
+
content_tag(tag || :li, ' '.html_safe, class: 'separator')
|
|
75
|
+
end
|
|
76
|
+
|
|
61
77
|
def display_action_link(link, content, record, options)
|
|
62
78
|
if content
|
|
63
79
|
html_classes = hover_via_click? ? 'hover_click ' : ''
|
|
64
|
-
if
|
|
80
|
+
if options[:level].zero?
|
|
65
81
|
html_classes << 'action_group'
|
|
66
82
|
group_tag = :div
|
|
67
83
|
else
|
|
@@ -73,9 +89,9 @@ module ActiveScaffold
|
|
|
73
89
|
end
|
|
74
90
|
else
|
|
75
91
|
content = render_action_link(link, record, options)
|
|
76
|
-
content = content_tag(:li, content, class: ('top' if options[:first_action])) unless
|
|
92
|
+
content = content_tag(:li, content, class: ('top' if options[:first_action])) unless options[:level].zero?
|
|
77
93
|
end
|
|
78
|
-
content = content_tag(options[:level_0_tag], content, options[:options_level_0_tag]) if
|
|
94
|
+
content = content_tag(options[:level_0_tag], content, options[:options_level_0_tag]) if options[:level].zero? && options[:level_0_tag]
|
|
79
95
|
content
|
|
80
96
|
end
|
|
81
97
|
|
|
@@ -11,21 +11,29 @@ module ActiveScaffold
|
|
|
11
11
|
route 'concern :active_scaffold_association, ActiveScaffold::Routing::Association.new'
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
IMPORTMAP = 'config/importmap.rb'.freeze
|
|
15
|
+
JS_ASSET = 'app/assets/javascripts/application.js'.freeze
|
|
16
|
+
JS_APP = 'app/javascript/application.js'.freeze
|
|
17
|
+
MANIFEST = 'app/assets/config/manifest.js'.freeze
|
|
18
|
+
|
|
19
|
+
def add_javascript
|
|
20
|
+
if File.exist?(IMPORTMAP)
|
|
21
|
+
add_to_importmap
|
|
22
|
+
add_to_js_app
|
|
23
|
+
elsif File.exist?(JS_ASSET) # rails 6.1
|
|
24
|
+
original_js = File.binread(JS_ASSET)
|
|
25
|
+
if original_js.include?('require active_scaffold')
|
|
26
|
+
say_status('skipped', "insert into #{JS_ASSET}", :yellow)
|
|
27
|
+
else
|
|
28
|
+
insert_into_file JS_ASSET, after: %r{//= require +.*ujs['"]?\n} do
|
|
29
|
+
"//= require active_scaffold\n"
|
|
30
|
+
end
|
|
31
|
+
add_to_manifest 'active_scaffold/manifest.js'
|
|
26
32
|
end
|
|
33
|
+
setup_jquery JS_ASSET, original_js
|
|
34
|
+
else
|
|
35
|
+
create_javascript_manifest JS_ASSET
|
|
27
36
|
end
|
|
28
|
-
setup_jquery file, original_js
|
|
29
37
|
end
|
|
30
38
|
|
|
31
39
|
def add_to_stylesheet_manifest
|
|
@@ -44,10 +52,70 @@ module ActiveScaffold
|
|
|
44
52
|
|
|
45
53
|
protected
|
|
46
54
|
|
|
55
|
+
def add_to_importmap
|
|
56
|
+
original_js = File.binread(IMPORTMAP)
|
|
57
|
+
if original_js.match?(/^pin +['"]active_scaffold['"](?=,|$)/)
|
|
58
|
+
say_status('skipped', "append active_scaffold to #{IMPORTMAP}", :yellow)
|
|
59
|
+
else
|
|
60
|
+
append_to_file IMPORTMAP do
|
|
61
|
+
"pin 'active_scaffold'\n"
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
if Object.const_defined?(:Jquery)
|
|
65
|
+
if original_js.match?(/^pin +['"]jquery['"](?=,|$)/)
|
|
66
|
+
say_status('skipped', "append jquery to #{IMPORTMAP}", :yellow)
|
|
67
|
+
else
|
|
68
|
+
append_to_file IMPORTMAP do
|
|
69
|
+
"pin 'jquery'\n"
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
if original_js.match?(%r{^pin +['"](jquery_ujs|@rails/ujs)['"](?=,|$)})
|
|
73
|
+
say_status('skipped', "append jquery_ujs to #{IMPORTMAP}", :yellow)
|
|
74
|
+
else
|
|
75
|
+
append_to_file IMPORTMAP do
|
|
76
|
+
"pin 'jquery_ujs'\n"
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
else
|
|
80
|
+
say_status('missing', 'no jquery-rails gem, load jquery, and jquery_ujs or @rails/ujs, in your layout, or add jquery-rails ' \
|
|
81
|
+
"to Gemfile and add pin \"jquery\" and pin \"jquery_ujs\" or pin \"@rails/ujs\", to #{IMPORTMAP}", :red)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def add_to_js_app
|
|
86
|
+
original_js = File.binread(JS_APP)
|
|
87
|
+
if original_js.match?(/^import +['"]active_scaffold['"]/)
|
|
88
|
+
say_status('skipped', "append active_scaffold to #{JS_APP}", :yellow)
|
|
89
|
+
else
|
|
90
|
+
append_to_file JS_APP do
|
|
91
|
+
"import 'active_scaffold'\n"
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
manifest = ['active_scaffold/manifest.js']
|
|
95
|
+
if Object.const_defined?(:Jquery)
|
|
96
|
+
if original_js.match?(/^import +['"]jquery['"]/)
|
|
97
|
+
say_status('skipped', "append jquery to #{JS_APP}", :yellow)
|
|
98
|
+
else
|
|
99
|
+
manifest << 'jquery.js'
|
|
100
|
+
insert_into_file JS_APP, before: /import +['"]active_scaffold['"]\n/ do
|
|
101
|
+
"import 'jquery'\n"
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
if original_js.match?(%r{^import +(['"]jquery_ujs['"]|Rails from ['"]@rails/ujs['"])})
|
|
105
|
+
say_status('skipped', "append jquery_ujs to #{JS_APP}", :yellow)
|
|
106
|
+
else
|
|
107
|
+
manifest << 'jquery_ujs.js'
|
|
108
|
+
insert_into_file JS_APP, before: /import +['"]active_scaffold['"]\n/ do
|
|
109
|
+
"import 'jquery_ujs'\n"
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
add_to_manifest(*manifest)
|
|
114
|
+
end
|
|
115
|
+
|
|
47
116
|
def create_javascript_manifest(file)
|
|
48
117
|
FileUtils.mkdir_p File.dirname(file)
|
|
49
|
-
|
|
50
|
-
f << "// This is a manifest file that'll be compiled into application.js, which will include all the files
|
|
118
|
+
js_content = "// This is a manifest file that'll be compiled into application.js, which will include all the files
|
|
51
119
|
// listed below.
|
|
52
120
|
//
|
|
53
121
|
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's
|
|
@@ -61,20 +129,24 @@ module ActiveScaffold
|
|
|
61
129
|
//
|
|
62
130
|
//= require active_scaffold
|
|
63
131
|
"
|
|
64
|
-
|
|
65
|
-
|
|
132
|
+
File.open(file, 'w') { |f| f << js_content } unless options[:pretend]
|
|
133
|
+
say_status('create', file)
|
|
66
134
|
insert_into_file 'app/views/layouts/application.html.erb', after: /javascript_pack_tag 'application'.*\n/ do
|
|
67
135
|
" <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload', 'data-turbo-track': 'reload' %>\n"
|
|
68
136
|
end
|
|
69
|
-
|
|
70
|
-
|
|
137
|
+
add_to_manifest 'application.js', 'active_scaffold/manifest.js'
|
|
138
|
+
setup_jquery file, js_content, where: 'active_scaffold'
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def add_to_manifest(*files)
|
|
142
|
+
append_to_file MANIFEST do
|
|
143
|
+
files.map { |file| "//= link #{file}\n" }.join
|
|
71
144
|
end
|
|
72
|
-
setup_jquery file, where: 'active_scaffold'
|
|
73
145
|
end
|
|
74
146
|
|
|
75
147
|
def setup_jquery(file, original_js = nil, where: 'ujs')
|
|
76
148
|
original_js ||= File.binread(file)
|
|
77
|
-
if
|
|
149
|
+
if Object.const_defined?(:Jquery)
|
|
78
150
|
unless original_js.include?('require jquery')
|
|
79
151
|
insert_into_file file, before: %r{//= require +.*#{where}['"]?\n} do
|
|
80
152
|
"//= require jquery\n"
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/*
|
|
2
|
-
*= depend_on_asset "jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png"
|
|
3
|
-
*= depend_on_asset "jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png"
|
|
4
|
-
*= depend_on_asset "jquery-ui/ui-bg_flat_10_000000_40x100.png"
|
|
5
|
-
*= depend_on_asset "jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png"
|
|
6
|
-
*= depend_on_asset "jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png"
|
|
7
|
-
*= depend_on_asset "jquery-ui/ui-bg_glass_65_ffffff_1x400.png"
|
|
8
|
-
*= depend_on_asset "jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png"
|
|
9
|
-
*= depend_on_asset "jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png"
|
|
10
|
-
*= depend_on_asset "jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png"
|
|
11
|
-
*= depend_on_asset "jquery-ui/ui-icons_222222_256x240.png"
|
|
12
|
-
*= depend_on_asset "jquery-ui/ui-icons_228ef1_256x240.png"
|
|
13
|
-
*= depend_on_asset "jquery-ui/ui-icons_ef8c08_256x240.png"
|
|
14
|
-
*= depend_on_asset "jquery-ui/ui-icons_ffd27a_256x240.png"
|
|
15
|
-
*= depend_on_asset "jquery-ui/ui-icons_ffffff_256x240.png"
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
1
|
/* Component containers
|
|
19
2
|
----------------------------------*/
|
|
20
3
|
.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(<%= image_path('jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png') %>) 50% top repeat-x; color: #333333; }
|
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: 4.0.0.
|
|
4
|
+
version: 4.0.0.rc2
|
|
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: 2024-12-
|
|
11
|
+
date: 2024-12-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -52,6 +52,20 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '1.3'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: sassc-rails
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '2.0'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '2.0'
|
|
55
69
|
description: Save time and headaches, and create a more easily maintainable set of
|
|
56
70
|
pages, with ActiveScaffold. ActiveScaffold handles all your CRUD (create, read,
|
|
57
71
|
update, delete) user interface needs, leaving you more time to focus on more challenging
|
|
@@ -65,7 +79,7 @@ files:
|
|
|
65
79
|
- CHANGELOG.rdoc
|
|
66
80
|
- LICENSE.md
|
|
67
81
|
- README.md
|
|
68
|
-
- app/assets/config/
|
|
82
|
+
- app/assets/config/active_scaffold/manifest.js
|
|
69
83
|
- app/assets/images/active_scaffold/add.png
|
|
70
84
|
- app/assets/images/active_scaffold/arrow_down.png
|
|
71
85
|
- app/assets/images/active_scaffold/arrow_up.png
|
|
@@ -80,20 +94,6 @@ files:
|
|
|
80
94
|
- app/assets/images/active_scaffold/indicator.gif
|
|
81
95
|
- app/assets/images/active_scaffold/magnifier.png
|
|
82
96
|
- app/assets/images/active_scaffold/refresh.png
|
|
83
|
-
- app/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png
|
|
84
|
-
- app/assets/images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png
|
|
85
|
-
- app/assets/images/jquery-ui/ui-bg_flat_10_000000_40x100.png
|
|
86
|
-
- app/assets/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png
|
|
87
|
-
- app/assets/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png
|
|
88
|
-
- app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png
|
|
89
|
-
- app/assets/images/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png
|
|
90
|
-
- app/assets/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png
|
|
91
|
-
- app/assets/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png
|
|
92
|
-
- app/assets/images/jquery-ui/ui-icons_222222_256x240.png
|
|
93
|
-
- app/assets/images/jquery-ui/ui-icons_228ef1_256x240.png
|
|
94
|
-
- app/assets/images/jquery-ui/ui-icons_ef8c08_256x240.png
|
|
95
|
-
- app/assets/images/jquery-ui/ui-icons_ffd27a_256x240.png
|
|
96
|
-
- app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png
|
|
97
97
|
- app/assets/javascripts/active_scaffold.js.erb
|
|
98
98
|
- app/assets/javascripts/jquery/active_scaffold.js
|
|
99
99
|
- app/assets/javascripts/jquery/active_scaffold_chosen.js
|
|
@@ -129,11 +129,14 @@ files:
|
|
|
129
129
|
- app/views/active_scaffold_overrides/_list_header.html.erb
|
|
130
130
|
- app/views/active_scaffold_overrides/_list_inline_adapter.html.erb
|
|
131
131
|
- app/views/active_scaffold_overrides/_list_messages.html.erb
|
|
132
|
+
- app/views/active_scaffold_overrides/_list_messages_content.html.erb
|
|
132
133
|
- app/views/active_scaffold_overrides/_list_pagination.html.erb
|
|
133
134
|
- app/views/active_scaffold_overrides/_list_pagination_links.html.erb
|
|
134
135
|
- app/views/active_scaffold_overrides/_list_record.html.erb
|
|
135
136
|
- app/views/active_scaffold_overrides/_list_with_header.html.erb
|
|
136
137
|
- app/views/active_scaffold_overrides/_messages.html.erb
|
|
138
|
+
- app/views/active_scaffold_overrides/_new_record.js.erb
|
|
139
|
+
- app/views/active_scaffold_overrides/_refresh_create_form.js.erb
|
|
137
140
|
- app/views/active_scaffold_overrides/_refresh_list.js.erb
|
|
138
141
|
- app/views/active_scaffold_overrides/_render_field.js.erb
|
|
139
142
|
- app/views/active_scaffold_overrides/_row.html.erb
|
|
@@ -269,6 +272,7 @@ files:
|
|
|
269
272
|
- lib/active_scaffold/core.rb
|
|
270
273
|
- lib/active_scaffold/data_structures/action_columns.rb
|
|
271
274
|
- lib/active_scaffold/data_structures/action_link.rb
|
|
275
|
+
- lib/active_scaffold/data_structures/action_link_separator.rb
|
|
272
276
|
- lib/active_scaffold/data_structures/action_links.rb
|
|
273
277
|
- lib/active_scaffold/data_structures/actions.rb
|
|
274
278
|
- lib/active_scaffold/data_structures/association.rb
|
|
@@ -324,6 +328,20 @@ files:
|
|
|
324
328
|
- lib/tasks/brakeman.rake
|
|
325
329
|
- public/blank.html
|
|
326
330
|
- shoulda_macros/macros.rb
|
|
331
|
+
- vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png
|
|
332
|
+
- vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png
|
|
333
|
+
- vendor/assets/images/jquery-ui/ui-bg_flat_10_000000_40x100.png
|
|
334
|
+
- vendor/assets/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png
|
|
335
|
+
- vendor/assets/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png
|
|
336
|
+
- vendor/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png
|
|
337
|
+
- vendor/assets/images/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png
|
|
338
|
+
- vendor/assets/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png
|
|
339
|
+
- vendor/assets/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png
|
|
340
|
+
- vendor/assets/images/jquery-ui/ui-icons_222222_256x240.png
|
|
341
|
+
- vendor/assets/images/jquery-ui/ui-icons_228ef1_256x240.png
|
|
342
|
+
- vendor/assets/images/jquery-ui/ui-icons_ef8c08_256x240.png
|
|
343
|
+
- vendor/assets/images/jquery-ui/ui-icons_ffd27a_256x240.png
|
|
344
|
+
- vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png
|
|
327
345
|
- vendor/assets/javascripts/jquery-ui-timepicker-addon.js
|
|
328
346
|
- vendor/assets/javascripts/jquery.ba-throttle-debounce.js
|
|
329
347
|
- vendor/assets/javascripts/jquery.visible.min.js
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|