active_scaffold 3.0.12 → 3.0.21
Sign up to get free protection for your applications and to get access to all the features.
- data/README +21 -11
- data/frontends/default/images/close_touch.png +0 -0
- data/frontends/default/javascripts/jquery/active_scaffold.js +187 -99
- data/frontends/default/javascripts/prototype/active_scaffold.js +105 -33
- data/frontends/default/javascripts/prototype/dhtml_history.js +80 -77
- data/frontends/default/stylesheets/stylesheet.css +121 -2
- data/frontends/default/views/_action_group.html.erb +6 -2
- data/frontends/default/views/_base_form.html.erb +11 -5
- data/frontends/default/views/_base_form.html.erb~ +42 -0
- data/frontends/default/views/_field_search.html.erb +1 -1
- data/frontends/default/views/_form.html.erb +9 -7
- data/frontends/default/views/_form_association.html.erb +8 -3
- data/frontends/default/views/_form_association_footer.html.erb +10 -3
- data/frontends/default/views/_form_attribute.html.erb +8 -3
- data/frontends/default/views/_horizontal_subform.html.erb +12 -2
- data/frontends/default/views/_horizontal_subform_header.html.erb +1 -1
- data/frontends/default/views/_horizontal_subform_record.html.erb +5 -4
- data/frontends/default/views/_list_messages.html.erb +1 -1
- data/frontends/default/views/_list_with_header.html.erb +1 -1
- data/frontends/default/views/_render_field.js.rjs +4 -6
- data/frontends/default/views/_vertical_subform.html.erb +1 -1
- data/frontends/default/views/_vertical_subform_record.html.erb +2 -2
- data/frontends/default/views/on_action_update.js.rjs +3 -1
- data/frontends/default/views/on_mark_all.js.rjs +12 -0
- data/frontends/default/views/on_update.js.rjs +1 -1
- data/frontends/default/views/render_field.js.rjs +1 -0
- data/frontends/default/views/update_column.js.rjs +1 -1
- data/lib/active_scaffold.rb +60 -21
- data/lib/active_scaffold/actions/common_search.rb +2 -2
- data/lib/active_scaffold/actions/core.rb +30 -9
- data/lib/active_scaffold/actions/create.rb +14 -10
- data/lib/active_scaffold/actions/field_search.rb +6 -6
- data/lib/active_scaffold/actions/list.rb +22 -12
- data/lib/active_scaffold/actions/mark.rb +34 -9
- data/lib/active_scaffold/actions/nested.rb +12 -16
- data/lib/active_scaffold/actions/show.rb +2 -2
- data/lib/active_scaffold/actions/subform.rb +15 -8
- data/lib/active_scaffold/actions/update.rb +14 -4
- data/lib/active_scaffold/attribute_params.rb +15 -10
- data/lib/active_scaffold/bridges/bridge.rb +21 -12
- data/lib/active_scaffold/bridges/calendar_date_select/bridge.rb +3 -3
- data/lib/active_scaffold/bridges/cancan/bridge.rb +12 -0
- data/lib/active_scaffold/bridges/cancan/lib/cancan_bridge.rb +107 -0
- data/lib/active_scaffold/bridges/carrierwave/bridge.rb +1 -1
- data/lib/active_scaffold/bridges/carrierwave/lib/carrierwave_bridge.rb +3 -8
- data/lib/active_scaffold/bridges/carrierwave/lib/carrierwave_bridge_helpers.rb +1 -15
- data/lib/active_scaffold/bridges/carrierwave/lib/form_ui.rb +23 -13
- data/lib/active_scaffold/bridges/carrierwave/lib/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/country_helper/bridge.rb +9 -0
- data/lib/active_scaffold/bridges/country_helper/lib/country_helper_bridge.rb +358 -0
- data/lib/active_scaffold/bridges/date_picker/bridge.rb +5 -3
- data/lib/active_scaffold/bridges/date_picker/lib/datepicker_bridge.rb +9 -0
- data/lib/active_scaffold/bridges/dragonfly/bridge.rb +9 -0
- data/lib/active_scaffold/bridges/dragonfly/bridge.rb~ +12 -0
- data/lib/active_scaffold/bridges/dragonfly/lib/dragonfly_bridge.rb +36 -0
- data/lib/active_scaffold/bridges/dragonfly/lib/dragonfly_bridge.rb~ +36 -0
- data/lib/active_scaffold/bridges/dragonfly/lib/dragonfly_bridge_helpers.rb +12 -0
- data/lib/active_scaffold/bridges/dragonfly/lib/dragonfly_bridge_helpers.rb~ +12 -0
- data/lib/active_scaffold/bridges/dragonfly/lib/form_ui.rb +27 -0
- data/lib/active_scaffold/bridges/dragonfly/lib/form_ui.rb~ +27 -0
- data/lib/active_scaffold/bridges/dragonfly/lib/list_ui.rb +16 -0
- data/lib/active_scaffold/bridges/dragonfly/lib/list_ui.rb~ +16 -0
- data/lib/active_scaffold/bridges/paperclip/bridge.rb +1 -1
- data/lib/active_scaffold/bridges/record_select/bridge.rb +5 -0
- data/lib/active_scaffold/bridges/record_select/lib/record_select_bridge.rb +87 -0
- data/lib/active_scaffold/bridges/record_select/lib/record_select_bridge.rb~ +84 -0
- data/lib/active_scaffold/bridges/shared/date_bridge.rb +56 -34
- data/lib/active_scaffold/bridges/tiny_mce/lib/tiny_mce_bridge.rb +19 -3
- data/lib/active_scaffold/config/base.rb +4 -4
- data/lib/active_scaffold/config/core.rb +4 -0
- data/lib/active_scaffold/config/create.rb +1 -1
- data/lib/active_scaffold/config/field_search.rb +7 -7
- data/lib/active_scaffold/config/form.rb +8 -2
- data/lib/active_scaffold/config/list.rb +22 -8
- data/lib/active_scaffold/config/mark.rb +18 -5
- data/lib/active_scaffold/config/nested.rb +3 -3
- data/lib/active_scaffold/config/search.rb +1 -1
- data/lib/active_scaffold/config/show.rb +1 -1
- data/lib/active_scaffold/data_structures/action_columns.rb +10 -6
- data/lib/active_scaffold/data_structures/action_link.rb +14 -10
- data/lib/active_scaffold/data_structures/action_links.rb +2 -2
- data/lib/active_scaffold/data_structures/column.rb +25 -11
- data/lib/active_scaffold/data_structures/nested_info.rb +21 -21
- data/lib/active_scaffold/data_structures/set.rb +2 -3
- data/lib/active_scaffold/data_structures/sorting.rb +8 -8
- data/lib/{extensions → active_scaffold/extensions}/action_controller_rendering.rb +3 -1
- data/lib/{extensions → active_scaffold/extensions}/action_view_rendering.rb +31 -33
- data/lib/{extensions → active_scaffold/extensions}/action_view_resolver.rb +0 -0
- data/lib/{extensions → active_scaffold/extensions}/active_association_reflection.rb +0 -0
- data/lib/active_scaffold/extensions/active_record_offset.rb +12 -0
- data/lib/{extensions → active_scaffold/extensions}/array.rb +0 -0
- data/lib/{extensions → active_scaffold/extensions}/localize.rb +1 -1
- data/lib/{extensions → active_scaffold/extensions}/name_option_for_datetime.rb +1 -1
- data/lib/{extensions → active_scaffold/extensions}/nil_id_in_url_params.rb +0 -0
- data/lib/{extensions → active_scaffold/extensions}/paginator_extensions.rb +2 -2
- data/lib/{extensions → active_scaffold/extensions}/reverse_associations.rb +1 -1
- data/lib/{extensions → active_scaffold/extensions}/routing_mapper.rb +2 -2
- data/lib/{extensions → active_scaffold/extensions}/to_label.rb +0 -0
- data/lib/{extensions → active_scaffold/extensions}/unsaved_associated.rb +0 -0
- data/lib/{extensions → active_scaffold/extensions}/unsaved_record.rb +0 -0
- data/lib/active_scaffold/extensions/usa_state.rb +46 -0
- data/lib/active_scaffold/finder.rb +30 -19
- data/lib/active_scaffold/helpers/controller_helpers.rb +3 -5
- data/lib/active_scaffold/helpers/form_column_helpers.rb +19 -45
- data/lib/active_scaffold/helpers/human_condition_helpers.rb +1 -1
- data/lib/active_scaffold/helpers/id_helpers.rb +2 -2
- data/lib/active_scaffold/helpers/list_column_helpers.rb +28 -17
- data/lib/active_scaffold/helpers/search_column_helpers.rb +51 -40
- data/lib/active_scaffold/helpers/search_column_helpers.rb~ +215 -0
- data/lib/active_scaffold/helpers/show_column_helpers.rb +8 -4
- data/lib/active_scaffold/helpers/view_helpers.rb +50 -27
- data/lib/active_scaffold/locale/de.yml +111 -0
- data/lib/active_scaffold/locale/en.yml +115 -0
- data/lib/active_scaffold/locale/es.yml +32 -32
- data/lib/active_scaffold/locale/fr.yml +118 -0
- data/lib/active_scaffold/marked_model.rb +6 -6
- data/lib/active_scaffold/version.rb +1 -1
- data/lib/active_scaffold_assets.rb +1 -3
- data/lib/active_scaffold_env.rb +1 -2
- data/lib/generators/active_scaffold/active_scaffold_generator.rb +5 -5
- data/lib/generators/active_scaffold_controller/active_scaffold_controller_generator.rb +3 -2
- data/lib/generators/active_scaffold_controller/templates/helper.rb +2 -0
- data/lib/generators/active_scaffold_setup/active_scaffold_setup_generator.rb +17 -19
- data/shoulda_macros/macros.rb +4 -4
- data/test/misc/finder_test.rb +2 -2
- data/test/mock_app/public/stylesheets/active_scaffold/default/stylesheet.css +4 -1
- metadata +144 -126
- data/.autotest +0 -27
- data/.document +0 -5
- data/Gemfile +0 -13
- data/Gemfile.lock +0 -20
- data/Rakefile +0 -53
- data/active_scaffold.gemspec +0 -385
- data/init.rb +0 -2
- data/lib/active_scaffold/helpers/country_helpers.rb +0 -358
- data/lib/active_scaffold/locale/de.rb +0 -120
- data/lib/active_scaffold/locale/en.rb +0 -119
- data/lib/active_scaffold/locale/fr.rb +0 -116
- data/lib/extensions/active_record_offset.rb +0 -12
- data/lib/extensions/usa_state.rb +0 -50
- data/test/mock_app/.gitignore +0 -2
- data/uninstall.rb +0 -13
data/README
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
** For all documentation see the project website: http://github.com/vhochstein/active_scaffold/wiki **
|
3
3
|
******************************************************************************************************
|
4
4
|
|
5
|
-
ActiveScaffold
|
5
|
+
ActiveScaffold Gem/Plugin by Scott Rutherford (scott@caronsoftware.com), Richard White (rrwhite@gmail.com), Lance Ivy (lance@cainlevy.net), Ed Moss, Tim Harper and Sergio Cambra (sergio@entrecables.com)
|
6
6
|
|
7
7
|
Uses DhtmlHistory by Brad Neuberg (bkn3@columbia.edu)
|
8
8
|
http://codinginparadise.org
|
@@ -18,30 +18,32 @@ http://code.google.com/p/recordselect/
|
|
18
18
|
|
19
19
|
== Version Information
|
20
20
|
|
21
|
-
Please note the following list of Active Scaffold branches and Rails versions. Master will not work with Rails <
|
21
|
+
Please note the following list of Active Scaffold branches and Rails versions. Master will not work with Rails < 3.1
|
22
22
|
|
23
|
-
Active Scaffold master currently supports rails-
|
24
|
-
Rails
|
23
|
+
Active Scaffold master currently supports rails-3.1, but incompatible changes can be introduced, if you want an stable version, use rails-3.0
|
24
|
+
Rails 3.0.*: Active Scaffold rails-3.0
|
25
|
+
Rails 2.3.*: Active Scaffold rails-2.3 and v2.4
|
25
26
|
Rails 2.2.*: Active Scaffold rails-2.2
|
26
27
|
Rails 2.1.*: Active Scaffold rails-2.1
|
27
28
|
Rails < 2.1: Active Scaffold 1-1-stable (no guarantees)
|
28
29
|
|
29
|
-
Since Rails 2.3, render_component plugin is needed for nested and
|
30
|
+
Since Rails 2.3, render_component plugin is needed for nested and embedded scaffolds. It works with rails-2.3 branch from ewildgoose repository:
|
30
31
|
script/plugin install git://github.com/ewildgoose/render_component.git -r rails-2.3
|
31
32
|
|
32
|
-
== Rails 3.0 compatible fork of activesaffold by Volker Hochstein:
|
33
|
-
|
34
33
|
Since Rails 3.0 render_component is not used for nesting, but is optional for embedded scaffolds.
|
35
34
|
Since Rails 3.0, https://github.com/rails/verification.git is also needed.
|
36
35
|
|
37
36
|
If you want to install as plugins under vendor/plugins, install these versions:
|
38
37
|
rails plugin install git://github.com/vhochstein/render_component.git
|
39
38
|
rails plugin install git://github.com/rails/verification.git
|
40
|
-
rails plugin install git://github.com/
|
39
|
+
rails plugin install git://github.com/activescaffold/active_scaffold.git -r 'rails-3.0'
|
41
40
|
|
42
41
|
If you want to use the gem, add to your Gemfile:
|
43
42
|
gem "active_scaffold"
|
44
43
|
|
44
|
+
In case you would like to use most recent commit:
|
45
|
+
gem 'active_scaffold', :git => 'git://github.com/activescaffold/active_scaffold.git', :branch => 'rails-3.0'
|
46
|
+
|
45
47
|
== Pick your own javascript framework
|
46
48
|
|
47
49
|
The Rails 3.0 version uses unobtrusive Javascript, so you are free to pick your javascript framework.
|
@@ -50,14 +52,22 @@ Out of the box Prototype or JQuery are supported:
|
|
50
52
|
Prototype 1.7 (default js framework)
|
51
53
|
rails.js in git://github.com/vhochstein/prototype-ujs.git
|
52
54
|
|
53
|
-
JQuery 1.4.1
|
54
|
-
|
55
|
+
JQuery 1.4.1, 1.4.2
|
56
|
+
https://github.com/vhochstein/jquery-ujs/raw/jquery1_4_2/src/rails.js
|
57
|
+
|
58
|
+
JQuery > 1.4.2
|
59
|
+
https://github.com/vhochstein/jquery-ujs/raw/master/src/rails.js
|
55
60
|
|
56
61
|
To configure the javascript framework when installed under vendor/plugins/
|
57
|
-
uncomment last line in
|
62
|
+
uncomment last line in config/initializers/active_scaffold.rb in order to use jquery instead of prototype.
|
63
|
+
That file is created when you install ActiveScaffold as a plugin.
|
58
64
|
|
59
65
|
To configure the javascript framework when installed as a gem:
|
60
66
|
Add a config/initializers/active_scaffold.rb containing:
|
61
67
|
ActiveScaffold.js_framework = :jquery # :prototype is the default
|
62
68
|
|
69
|
+
== Rails 3.1 compatible branch:
|
70
|
+
under construction
|
71
|
+
|
72
|
+
|
63
73
|
Released under the MIT license (included)
|
Binary file
|
@@ -34,7 +34,14 @@ $(document).ready(function() {
|
|
34
34
|
} else {
|
35
35
|
// hack: jquery requires if you request for javascript that javascript
|
36
36
|
// is coming back, however rails has a different mantra
|
37
|
-
if (action_link.position)
|
37
|
+
if (action_link.position) {
|
38
|
+
if (parseFloat($.fn.jquery) >= 1.5) {
|
39
|
+
event.data_type = 'text';
|
40
|
+
} else {
|
41
|
+
event.data_type = 'rails';
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
38
45
|
if (action_link.loading_indicator) action_link.loading_indicator.css('visibility','visible');
|
39
46
|
action_link.disable();
|
40
47
|
}
|
@@ -50,7 +57,7 @@ $(document).ready(function() {
|
|
50
57
|
} else {
|
51
58
|
action_link.enable();
|
52
59
|
}
|
53
|
-
|
60
|
+
$(this).trigger('as:action_success', action_link);
|
54
61
|
}
|
55
62
|
return true;
|
56
63
|
});
|
@@ -128,65 +135,7 @@ $(document).ready(function() {
|
|
128
135
|
return true;
|
129
136
|
});
|
130
137
|
$('span.in_place_editor_field').live('click', function(event) {
|
131
|
-
|
132
|
-
span.data(); // jquery 1.4.2 workaround
|
133
|
-
if (typeof(span.data('editInPlace')) === 'undefined') {
|
134
|
-
var options = {show_buttons: true,
|
135
|
-
hover_class: 'hover',
|
136
|
-
element_id: 'editor_id',
|
137
|
-
ajax_data_type: "script",
|
138
|
-
update_value: 'value'},
|
139
|
-
csrf_param = $('meta[name=csrf-param]').first(),
|
140
|
-
csrf_token = $('meta[name=csrf-token]').first(),
|
141
|
-
my_parent = span.parent(),
|
142
|
-
column_heading = null;
|
143
|
-
|
144
|
-
if (my_parent.is('td')) {
|
145
|
-
var column_no = my_parent.prevAll('td').length;
|
146
|
-
column_heading = my_parent.closest('.active-scaffold').find('th:eq(' + column_no + ')');
|
147
|
-
} else if (my_parent.is('th')) {
|
148
|
-
column_heading = my_parent;
|
149
|
-
}
|
150
|
-
|
151
|
-
var render_url = column_heading.attr('data-ie_render_url'),
|
152
|
-
mode = column_heading.attr('data-ie_mode'),
|
153
|
-
record_id = span.attr('data-ie_id');
|
154
|
-
|
155
|
-
ActiveScaffold.read_inplace_edit_heading_attributes(column_heading, options);
|
156
|
-
|
157
|
-
if (span.attr('data-ie_url')) {
|
158
|
-
options.url = span.attr('data-ie_url').replace(/__id__/, record_id);
|
159
|
-
} else {
|
160
|
-
options.url = column_heading.attr('data-ie_url').replace(/__id__/, record_id);
|
161
|
-
}
|
162
|
-
|
163
|
-
if (csrf_param) options['params'] = csrf_param.attr('content') + '=' + csrf_token.attr('content');
|
164
|
-
|
165
|
-
if (span.closest('div.active-scaffold').attr('data-eid')) {
|
166
|
-
if (options['params'].length > 0) {
|
167
|
-
options['params'] += ";";
|
168
|
-
}
|
169
|
-
options['params'] += ("eid=" + span.closest('div.active-scaffold').attr('data-eid'));
|
170
|
-
}
|
171
|
-
|
172
|
-
if (mode === 'clone') {
|
173
|
-
options.clone_id_suffix = record_id;
|
174
|
-
options.clone_selector = '#' + column_heading.attr('id') + ' .as_inplace_pattern';
|
175
|
-
options.field_type = 'clone';
|
176
|
-
}
|
177
|
-
|
178
|
-
if (render_url) {
|
179
|
-
var plural = false;
|
180
|
-
if (column_heading.attr('data-ie_plural')) plural = true;
|
181
|
-
options.field_type = 'remote';
|
182
|
-
options.editor_url = render_url.replace(/__id__/, record_id)
|
183
|
-
}
|
184
|
-
if (mode === 'inline_checkbox') {
|
185
|
-
ActiveScaffold.process_checkbox_inplace_edit(span.find('input:checkbox'), options);
|
186
|
-
} else {
|
187
|
-
ActiveScaffold.create_inplace_editor(span, options);
|
188
|
-
}
|
189
|
-
}
|
138
|
+
ActiveScaffold.in_place_editor_field_clicked($(this));
|
190
139
|
});
|
191
140
|
$('a.as_paginate').live('ajax:before',function(event) {
|
192
141
|
var as_paginate = $(this);
|
@@ -204,34 +153,15 @@ $(document).ready(function() {
|
|
204
153
|
$(this).prevAll('img.loading-indicator').css('visibility','hidden');
|
205
154
|
return true;
|
206
155
|
});
|
207
|
-
$('input[type=button].as_add_existing').live('ajax:before', function(event) {
|
156
|
+
$('input[type=button].as_add_existing, input[type=button].as_replace_existing').live('ajax:before', function(event) {
|
208
157
|
var url = $(this).attr('href').replace('--ID--', $(this).prev().val());
|
209
158
|
event.data_url = url;
|
210
159
|
return true;
|
211
160
|
});
|
212
161
|
$('input.update_form, select.update_form').live('change', function(event) {
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
url: element.attr('data-update_url'),
|
217
|
-
data: {value: element.val()},
|
218
|
-
beforeSend: function(event) {
|
219
|
-
element.nextAll('img.loading-indicator').css('visibility','visible');
|
220
|
-
$('input[type=submit]', as_form).attr('disabled', 'disabled');
|
221
|
-
$("input:enabled,select:enabled", as_form).attr('disabled', 'disabled');
|
222
|
-
},
|
223
|
-
complete: function(event) {
|
224
|
-
element.nextAll('img.loading-indicator').css('visibility','hidden');
|
225
|
-
$('input[type=submit]', as_form).attr('disabled', '');
|
226
|
-
$("input:disabled,select:disabled", as_form).attr('disabled', '');
|
227
|
-
},
|
228
|
-
error: function (xhr, status, error) {
|
229
|
-
var as_div = element.closest("div.active-scaffold");
|
230
|
-
if (as_div) {
|
231
|
-
ActiveScaffold.report_500_response(as_div)
|
232
|
-
}
|
233
|
-
}
|
234
|
-
});
|
162
|
+
var element = $(this);
|
163
|
+
var value = element.is("input:checkbox") ? element.is(":checked") : element.val();
|
164
|
+
ActiveScaffold.update_column(element, element.attr('data-update_url'), element.attr('data-update_send_form'), element.attr('id'), value);
|
235
165
|
return true;
|
236
166
|
});
|
237
167
|
|
@@ -255,10 +185,27 @@ $(document).ready(function() {
|
|
255
185
|
});
|
256
186
|
|
257
187
|
$('a[data-popup]').live('click', function(e) {
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
188
|
+
window.open($(this).attr('href'));
|
189
|
+
e.preventDefault();
|
190
|
+
});
|
191
|
+
|
192
|
+
$('.hover_click').live("click", function(event) {
|
193
|
+
var element = $(this);
|
194
|
+
var ul_element = element.children('ul').first();
|
195
|
+
if (ul_element.is(':visible')) {
|
196
|
+
element.find('ul').hide();
|
197
|
+
} else {
|
198
|
+
ul_element.show();
|
199
|
+
}
|
200
|
+
return false;
|
201
|
+
});
|
202
|
+
$('.hover_click a.as_action').live('click', function(event) {
|
203
|
+
var element = $(this).closest('.hover_click');
|
204
|
+
if (element) {
|
205
|
+
element.find('ul').hide();
|
206
|
+
}
|
207
|
+
return true;
|
208
|
+
});
|
262
209
|
});
|
263
210
|
|
264
211
|
/* Simple Inheritance
|
@@ -504,7 +451,7 @@ var ActiveScaffold = {
|
|
504
451
|
var loading_indicator = $('#' + as_form.attr('id').replace(/-form$/, '-loading-indicator'));
|
505
452
|
if (loading_indicator) loading_indicator.css('visibility','visible');
|
506
453
|
$('input[type=submit]', as_form).attr('disabled', 'disabled');
|
507
|
-
$("input:enabled,select:enabled", as_form).attr('disabled', 'disabled');
|
454
|
+
$("input:enabled,select:enabled,textarea:enabled", as_form).attr('disabled', 'disabled');
|
508
455
|
},
|
509
456
|
|
510
457
|
enable_form: function(as_form) {
|
@@ -513,7 +460,7 @@ var ActiveScaffold = {
|
|
513
460
|
var loading_indicator = $('#' + as_form.attr('id').replace(/-form$/, '-loading-indicator'));
|
514
461
|
if (loading_indicator) loading_indicator.css('visibility','hidden');
|
515
462
|
$('input[type=submit]', as_form).attr('disabled', '');
|
516
|
-
$("input:disabled,select:disabled", as_form).attr('disabled', '');
|
463
|
+
$("input:disabled,select:disabled,textarea:disabled", as_form).attr('disabled', '');
|
517
464
|
},
|
518
465
|
|
519
466
|
focus_first_element_of_form: function(form_element) {
|
@@ -562,6 +509,16 @@ var ActiveScaffold = {
|
|
562
509
|
this.reload_if_empty(tbody, page_reload_url);
|
563
510
|
},
|
564
511
|
|
512
|
+
delete_subform_record: function(record) {
|
513
|
+
if (typeof(record) == 'string') record = '#' + record;
|
514
|
+
record = $(record);
|
515
|
+
var errors = record.prev();
|
516
|
+
if (errors.hasClass('association-record-errors')) {
|
517
|
+
this.replace_html(errors, '');
|
518
|
+
}
|
519
|
+
this.remove(record);
|
520
|
+
},
|
521
|
+
|
565
522
|
report_500_response: function(active_scaffold_id) {
|
566
523
|
server_error = $(active_scaffold_id).find('td.messages-container p.server-error');
|
567
524
|
if (!$(server_error).is(':visible')) {
|
@@ -616,7 +573,7 @@ var ActiveScaffold = {
|
|
616
573
|
},
|
617
574
|
|
618
575
|
highlight: function(element) {
|
619
|
-
if (typeof(element) == 'string') element = '#' + element;
|
576
|
+
if (typeof(element) == 'string') element = $('#' + element);
|
620
577
|
if (typeof(element.effect) == 'function') {
|
621
578
|
element.effect("highlight", {}, 3000);
|
622
579
|
}
|
@@ -644,7 +601,7 @@ var ActiveScaffold = {
|
|
644
601
|
element.append(content);
|
645
602
|
}
|
646
603
|
} else {
|
647
|
-
var current = $('#' + element.attr('id') + '
|
604
|
+
var current = $('#' + element.attr('id') + ' .association-record')
|
648
605
|
if (current[0]) {
|
649
606
|
this.replace(current[0], content);
|
650
607
|
} else {
|
@@ -653,13 +610,21 @@ var ActiveScaffold = {
|
|
653
610
|
}
|
654
611
|
},
|
655
612
|
|
656
|
-
render_form_field: function(
|
657
|
-
if (typeof(
|
658
|
-
var
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
613
|
+
render_form_field: function(source, content, options) {
|
614
|
+
if (typeof(source) == 'string') source = '#' + source;
|
615
|
+
var source = $(source);
|
616
|
+
var element = source.closest('.association-record');
|
617
|
+
if (element.length == 0) {
|
618
|
+
element = source.closest('ol.form');
|
619
|
+
}
|
620
|
+
element = element.find('.' + options.field_class + ":first");
|
621
|
+
|
622
|
+
if (element) {
|
623
|
+
if (options.is_subform == false) {
|
624
|
+
this.replace(element.closest('dl'), content);
|
625
|
+
} else {
|
626
|
+
this.replace_html(element, content);
|
627
|
+
}
|
663
628
|
}
|
664
629
|
},
|
665
630
|
|
@@ -685,6 +650,128 @@ var ActiveScaffold = {
|
|
685
650
|
ActiveScaffold.report_500_response(active_scaffold_id)
|
686
651
|
}
|
687
652
|
});
|
653
|
+
},
|
654
|
+
|
655
|
+
// element is tbody id
|
656
|
+
mark_records: function(element, options) {
|
657
|
+
if (typeof(element) == 'string') element = '#' + element;
|
658
|
+
var element = $(element);
|
659
|
+
var mark_checkboxes = $('#' + element.attr('id') + ' > tr.record td.marked-column input[type="checkbox"]');
|
660
|
+
mark_checkboxes.each(function (index) {
|
661
|
+
var item = $(this);
|
662
|
+
if(options.checked === true) {
|
663
|
+
item.attr('checked', 'checked');
|
664
|
+
} else {
|
665
|
+
item.removeAttr('checked');
|
666
|
+
}
|
667
|
+
item.attr('value', ('' + !options.checked));
|
668
|
+
});
|
669
|
+
if(options.include_mark_all === true) {
|
670
|
+
var mark_all_checkbox = element.prev('thead').find('th.marked-column_heading span input[type="checkbox"]');
|
671
|
+
if(options.checked === true) {
|
672
|
+
mark_all_checkbox.attr('checked', 'checked');
|
673
|
+
} else {
|
674
|
+
mark_all_checkbox.removeAttr('checked');
|
675
|
+
}
|
676
|
+
mark_all_checkbox.attr('value', ('' + !options.checked));
|
677
|
+
}
|
678
|
+
},
|
679
|
+
|
680
|
+
in_place_editor_field_clicked: function(span) {
|
681
|
+
span.data(); // jquery 1.4.2 workaround
|
682
|
+
if (typeof(span.data('editInPlace')) === 'undefined') {
|
683
|
+
var options = {show_buttons: true,
|
684
|
+
hover_class: 'hover',
|
685
|
+
element_id: 'editor_id',
|
686
|
+
ajax_data_type: "script",
|
687
|
+
update_value: 'value'},
|
688
|
+
csrf_param = $('meta[name=csrf-param]').first(),
|
689
|
+
csrf_token = $('meta[name=csrf-token]').first(),
|
690
|
+
my_parent = span.parent(),
|
691
|
+
column_heading = null;
|
692
|
+
|
693
|
+
if(!(my_parent.is('td') || my_parent.is('th'))){
|
694
|
+
my_parent = span.parents('td').eq(0);
|
695
|
+
}
|
696
|
+
|
697
|
+
if (my_parent.is('td')) {
|
698
|
+
var column_no = my_parent.prevAll('td').length;
|
699
|
+
column_heading = my_parent.closest('.active-scaffold').find('th:eq(' + column_no + ')');
|
700
|
+
} else if (my_parent.is('th')) {
|
701
|
+
column_heading = my_parent;
|
702
|
+
}
|
703
|
+
|
704
|
+
var render_url = column_heading.attr('data-ie_render_url'),
|
705
|
+
mode = column_heading.attr('data-ie_mode'),
|
706
|
+
record_id = span.attr('data-ie_id');
|
707
|
+
|
708
|
+
ActiveScaffold.read_inplace_edit_heading_attributes(column_heading, options);
|
709
|
+
|
710
|
+
if (span.attr('data-ie_url')) {
|
711
|
+
options.url = span.attr('data-ie_url').replace(/__id__/, record_id);
|
712
|
+
} else {
|
713
|
+
options.url = column_heading.attr('data-ie_url').replace(/__id__/, record_id);
|
714
|
+
}
|
715
|
+
|
716
|
+
if (csrf_param) options['params'] = csrf_param.attr('content') + '=' + csrf_token.attr('content');
|
717
|
+
|
718
|
+
if (span.closest('div.active-scaffold').attr('data-eid')) {
|
719
|
+
if (options['params'].length > 0) {
|
720
|
+
options['params'] += "&";
|
721
|
+
}
|
722
|
+
options['params'] += ("eid=" + span.closest('div.active-scaffold').attr('data-eid'));
|
723
|
+
}
|
724
|
+
|
725
|
+
if (mode === 'clone') {
|
726
|
+
options.clone_id_suffix = record_id;
|
727
|
+
options.clone_selector = '#' + column_heading.attr('id') + ' .as_inplace_pattern';
|
728
|
+
options.field_type = 'clone';
|
729
|
+
}
|
730
|
+
|
731
|
+
if (render_url) {
|
732
|
+
var plural = false;
|
733
|
+
if (column_heading.attr('data-ie_plural')) plural = true;
|
734
|
+
options.field_type = 'remote';
|
735
|
+
options.editor_url = render_url.replace(/__id__/, record_id)
|
736
|
+
}
|
737
|
+
if (mode === 'inline_checkbox') {
|
738
|
+
ActiveScaffold.process_checkbox_inplace_edit(span.find('input:checkbox'), options);
|
739
|
+
} else {
|
740
|
+
ActiveScaffold.create_inplace_editor(span, options);
|
741
|
+
}
|
742
|
+
}
|
743
|
+
},
|
744
|
+
|
745
|
+
update_column: function(element, url, send_form, source_id, val) {
|
746
|
+
var as_form = element.closest('form.as_form');
|
747
|
+
var params = null;
|
748
|
+
|
749
|
+
if (send_form) {
|
750
|
+
params = as_form.serialize();
|
751
|
+
params += '&' + $.param({"source_id": source_id});
|
752
|
+
} else {
|
753
|
+
params = {value: val};
|
754
|
+
params.source_id = source_id;
|
755
|
+
}
|
756
|
+
|
757
|
+
$.ajax({
|
758
|
+
url: url,
|
759
|
+
data: params,
|
760
|
+
beforeSend: function(event) {
|
761
|
+
element.nextAll('img.loading-indicator').css('visibility','visible');
|
762
|
+
ActiveScaffold.disable_form(as_form);
|
763
|
+
},
|
764
|
+
complete: function(event) {
|
765
|
+
element.nextAll('img.loading-indicator').css('visibility','hidden');
|
766
|
+
ActiveScaffold.enable_form(as_form);
|
767
|
+
},
|
768
|
+
error: function (xhr, status, error) {
|
769
|
+
var as_div = element.closest("div.active-scaffold");
|
770
|
+
if (as_div) {
|
771
|
+
ActiveScaffold.report_500_response(as_div);
|
772
|
+
}
|
773
|
+
}
|
774
|
+
});
|
688
775
|
}
|
689
776
|
}
|
690
777
|
|
@@ -784,6 +871,7 @@ ActiveScaffold.ActionLink.Abstract = Class.extend({
|
|
784
871
|
this.loading_indicator = loading_indicator;
|
785
872
|
this.hide_target = false;
|
786
873
|
this.position = this.tag.attr('data-position');
|
874
|
+
this.action = this.tag.attr('data-action');
|
787
875
|
|
788
876
|
this.tag.data('action_link', this);
|
789
877
|
return this;
|