obitum-rails_admin 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +1 -8
- data/README.md +6 -2
- data/app/assets/javascripts/rails_admin/custom/ui.js +5 -5
- data/app/assets/javascripts/rails_admin/jquery-ui-1.8.16.custom.js +4727 -4727
- data/app/assets/javascripts/rails_admin/jquery.colorpicker.js +484 -484
- data/app/assets/javascripts/rails_admin/jquery.pjax.js +250 -85
- data/app/assets/javascripts/rails_admin/jquery.ui.timepicker.js +1371 -1219
- data/app/assets/javascripts/rails_admin/ra.filter-box.js +30 -30
- data/app/assets/javascripts/rails_admin/ra.filtering-select.js +11 -11
- data/app/assets/javascripts/rails_admin/ra.nested-form-hooks.coffee +40 -0
- data/app/assets/javascripts/rails_admin/ra.remote-form.js +41 -39
- data/app/assets/javascripts/rails_admin/rails_admin.js.erb +4 -3
- data/app/assets/javascripts/rails_admin/themes/default/ui.js +6 -6
- data/app/assets/javascripts/rails_admin/ui.js.coffee +44 -16
- data/app/assets/stylesheets/rails_admin/base/README +2 -2
- data/app/assets/stylesheets/rails_admin/base/theming.css.scss +226 -113
- data/app/assets/stylesheets/rails_admin/custom/mixins.css.scss +1 -1
- data/app/assets/stylesheets/rails_admin/custom/theming.css.scss +2 -2
- data/app/assets/stylesheets/rails_admin/custom/variables.css.scss +3 -3
- data/app/assets/stylesheets/rails_admin/imports.css.scss.erb +36 -1
- data/app/assets/stylesheets/rails_admin/jquery.ui.timepicker.css.scss +16 -0
- data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.css.scss +2 -2
- data/app/assets/stylesheets/rails_admin/themes/default/mixins.css.scss +1 -1
- data/app/assets/stylesheets/rails_admin/themes/default/theming.css.scss +2 -2
- data/app/assets/stylesheets/rails_admin/themes/default/variables.css.scss +3 -3
- data/app/controllers/rails_admin/application_controller.rb +13 -18
- data/app/controllers/rails_admin/main_controller.rb +15 -16
- data/app/helpers/rails_admin/application_helper.rb +67 -41
- data/app/helpers/rails_admin/form_builder.rb +31 -29
- data/app/helpers/rails_admin/main_helper.rb +4 -4
- data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +12 -11
- data/app/views/layouts/rails_admin/application.html.haml +29 -29
- data/app/views/rails_admin/main/_dashboard_history.html.haml +1 -1
- data/app/views/rails_admin/main/_delete_notice.html.haml +4 -5
- data/app/views/rails_admin/main/_form_colorpicker.html.haml +2 -1
- data/app/views/rails_admin/main/_form_datetime.html.haml +1 -1
- data/app/views/rails_admin/main/_form_enumeration.html.haml +1 -1
- data/app/views/rails_admin/main/_form_field.html.haml +1 -1
- data/app/views/rails_admin/main/_form_file_upload.html.haml +3 -2
- data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +6 -4
- data/app/views/rails_admin/main/_form_filtering_select.html.haml +6 -5
- data/app/views/rails_admin/main/_form_nested_many.html.haml +41 -6
- data/app/views/rails_admin/main/_form_nested_one.html.haml +34 -5
- data/app/views/rails_admin/main/_form_text.html.haml +3 -3
- data/app/views/rails_admin/main/_submit_buttons.html.haml +6 -4
- data/app/views/rails_admin/main/bulk_delete.html.haml +7 -3
- data/app/views/rails_admin/main/dashboard.html.haml +4 -4
- data/app/views/rails_admin/main/delete.html.haml +7 -3
- data/app/views/rails_admin/main/edit.html.haml +1 -1
- data/app/views/rails_admin/main/export.html.haml +57 -53
- data/app/views/rails_admin/main/history.html.haml +8 -8
- data/app/views/rails_admin/main/index.html.haml +22 -21
- data/app/views/rails_admin/main/new.html.haml +1 -1
- data/app/views/rails_admin/main/show.html.haml +2 -2
- data/config/initializers/active_record_extensions.rb +2 -2
- data/config/initializers/haml.rb +0 -1
- data/config/locales/rails_admin.en.yml +5 -5
- data/lib/generators/rails_admin/templates/initializer.erb +7 -7
- data/lib/rails_admin/abstract_model.rb +36 -53
- data/lib/rails_admin/adapters/active_record/abstract_object.rb +32 -0
- data/lib/rails_admin/adapters/active_record.rb +56 -137
- data/lib/rails_admin/config/actions/base.rb +40 -28
- data/lib/rails_admin/config/actions/bulk_delete.rb +10 -11
- data/lib/rails_admin/config/actions/dashboard.rb +9 -5
- data/lib/rails_admin/config/actions/delete.rb +12 -9
- data/lib/rails_admin/config/actions/edit.rb +13 -9
- data/lib/rails_admin/config/actions/export.rb +9 -6
- data/lib/rails_admin/config/actions/history_index.rb +9 -5
- data/lib/rails_admin/config/actions/history_show.rb +9 -5
- data/lib/rails_admin/config/actions/index.rb +23 -13
- data/lib/rails_admin/config/actions/new.rb +14 -10
- data/lib/rails_admin/config/actions/show.rb +10 -5
- data/lib/rails_admin/config/actions/show_in_app.rb +9 -4
- data/lib/rails_admin/config/actions.rb +16 -16
- data/lib/rails_admin/config/configurable.rb +92 -0
- data/lib/rails_admin/config/fields/association.rb +6 -23
- data/lib/rails_admin/config/fields/base.rb +58 -40
- data/lib/rails_admin/config/fields/factories/belongs_to_association.rb +26 -0
- data/lib/rails_admin/config/fields/factories/carrierwave.rb +21 -2
- data/lib/rails_admin/config/fields/factories/devise.rb +9 -12
- data/lib/rails_admin/config/fields/factories/dragonfly.rb +13 -7
- data/lib/rails_admin/config/fields/factories/paperclip.rb +14 -15
- data/lib/rails_admin/config/fields/group.rb +16 -3
- data/lib/rails_admin/config/fields/types/belongs_to_association.rb +2 -2
- data/lib/rails_admin/config/fields/types/carrierwave.rb +0 -9
- data/lib/rails_admin/config/fields/types/color.rb +3 -3
- data/lib/rails_admin/config/fields/types/dragonfly.rb +1 -19
- data/lib/rails_admin/config/fields/types/file_upload.rb +7 -11
- data/lib/rails_admin/config/fields/types/has_many_association.rb +1 -6
- data/lib/rails_admin/config/fields/types/has_one_association.rb +4 -4
- data/lib/rails_admin/config/fields/types/paperclip.rb +0 -18
- data/lib/rails_admin/config/fields/types/password.rb +2 -2
- data/lib/rails_admin/config/fields/types/polymorphic_association.rb +2 -2
- data/lib/rails_admin/config/fields/types/text.rb +2 -2
- data/lib/rails_admin/config/fields.rb +7 -17
- data/lib/rails_admin/config/has_fields.rb +9 -9
- data/lib/rails_admin/config/has_groups.rb +2 -2
- data/lib/rails_admin/config/hideable.rb +2 -2
- data/lib/rails_admin/config/model.rb +23 -17
- data/lib/rails_admin/config/proxyable/proxy.rb +43 -0
- data/lib/rails_admin/config/proxyable.rb +12 -0
- data/lib/rails_admin/config/sections/base.rb +14 -4
- data/lib/rails_admin/config.rb +38 -9
- data/lib/rails_admin/extension.rb +1 -1
- data/lib/rails_admin/extensions/history/auditing_adapter.rb +6 -6
- data/lib/rails_admin/extensions/history/history.rb +2 -1
- data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +13 -13
- data/lib/rails_admin/support/csv_converter.rb +6 -6
- data/lib/rails_admin/version.rb +1 -1
- data/lib/rails_admin.rb +0 -5
- data/spec/controllers/main_controller_spec.rb +7 -7
- data/spec/dummy_app/Gemfile +10 -7
- data/spec/dummy_app/Rakefile +1 -1
- data/spec/dummy_app/app/assets/images/rails.png +0 -0
- data/spec/dummy_app/app/assets/javascripts/application.js +15 -0
- data/spec/dummy_app/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy_app/app/controllers/players_controller.rb +1 -1
- data/spec/dummy_app/app/models/cms/basic_page.rb +1 -1
- data/spec/dummy_app/app/models/division.rb +5 -1
- data/spec/dummy_app/app/models/field_test.rb +4 -4
- data/spec/dummy_app/app/models/nested_field_test.rb +3 -0
- data/spec/dummy_app/app/models/player.rb +3 -3
- data/spec/dummy_app/app/views/layouts/application.html.erb +3 -2
- data/spec/dummy_app/app/views/players/show.html.haml +1 -1
- data/spec/dummy_app/config/application.rb +20 -5
- data/spec/dummy_app/config/database.yml +5 -2
- data/spec/dummy_app/config/environments/development.rb +11 -1
- data/spec/dummy_app/config/environments/production.rb +19 -3
- data/spec/dummy_app/config/environments/test.rb +5 -7
- data/spec/dummy_app/config/initializers/devise.rb +6 -0
- data/spec/dummy_app/config/initializers/inflections.rb +5 -0
- data/spec/dummy_app/config/initializers/secret_token.rb +1 -1
- data/spec/dummy_app/{foo/test/dummy/config → config}/initializers/wrap_parameters.rb +1 -1
- data/spec/dummy_app/config/routes.rb +1 -1
- data/spec/dummy_app/db/migrate/00000000000006_devise_create_users.rb +35 -5
- data/spec/dummy_app/db/migrate/20120118122004_add_categories.rb +1 -1
- data/spec/dummy_app/doc/README_FOR_APP +2 -0
- data/spec/dummy_app/public/404.html +26 -0
- data/spec/dummy_app/{foo/test/dummy/public → public}/422.html +0 -0
- data/spec/dummy_app/{foo/test/dummy/public → public}/500.html +0 -1
- data/spec/dummy_app/public/favicon.ico +0 -0
- data/spec/dummy_app/public/robots.txt +5 -0
- data/spec/helpers/application_helper_spec.rb +107 -42
- data/spec/{requests → integration}/authorization/cancan_spec.rb +4 -5
- data/spec/{requests → integration}/basic/bulk_action/rails_admin_basic_bulk_action_spec.rb +0 -0
- data/spec/{requests → integration}/basic/bulk_destroy/rails_admin_basic_bulk_destroy_spec.rb +3 -16
- data/spec/{requests → integration}/basic/create/rails_admin_basic_create_spec.rb +0 -2
- data/spec/{requests → integration}/basic/create/rails_admin_namespaced_model_create_spec.rb +0 -16
- data/spec/{requests → integration}/basic/delete/rails_admin_basic_delete_spec.rb +0 -0
- data/spec/{requests → integration}/basic/destroy/rails_admin_basic_destroy_spec.rb +0 -0
- data/spec/{requests → integration}/basic/edit/rails_admin_basic_edit_spec.rb +2 -2
- data/spec/{requests → integration}/basic/export/rails_admin_basic_export_spec.rb +1 -1
- data/spec/{requests → integration}/basic/list/rails_admin_basic_list_spec.rb +12 -38
- data/spec/{requests → integration}/basic/new/rails_admin_basic_new_spec.rb +0 -0
- data/spec/{requests → integration}/basic/new/rails_admin_namespaced_model_new_spec.rb +0 -0
- data/spec/{requests → integration}/basic/show/rails_admin_basic_show_spec.rb +1 -2
- data/spec/{requests → integration}/basic/update/rails_admin_basic_update_spec.rb +2 -2
- data/spec/{requests → integration}/config/edit/rails_admin_config_edit_spec.rb +65 -24
- data/spec/{requests → integration}/config/list/rails_admin_config_list_spec.rb +2 -2
- data/spec/{requests → integration}/config/show/rails_admin_config_show_spec.rb +20 -0
- data/spec/{requests → integration}/history/rails_admin_history_spec.rb +3 -3
- data/spec/{requests → integration}/rails_admin_spec.rb +8 -41
- data/spec/{requests → integration}/relation_spec.rb +0 -0
- data/spec/spec_helper.rb +13 -31
- data/spec/{lib → unit/adapters/active_record}/abstract_object_spec.rb +17 -5
- data/spec/unit/adapters/active_record_spec.rb +53 -0
- data/spec/{requests/actions.rb → unit/config/actions_spec.rb} +47 -31
- data/spec/unit/config/fields/base_spec.rb +291 -0
- data/spec/unit/config/model_spec.rb +75 -0
- data/spec/unit/config/sections_spec.rb +123 -0
- data/spec/{lib/rails_admin_spec.rb → unit/config_spec.rb} +65 -93
- metadata +127 -223
- data/app/assets/javascripts/rails_admin/jquery_nested_form.js +0 -58
- data/app/views/layouts/rails_admin/_navigation.html.haml +0 -17
- data/lib/rails_admin/abstract_object.rb +0 -28
- data/lib/rails_admin/config/base.rb +0 -111
- data/lib/rails_admin/config/proxy.rb +0 -40
- data/lib/rails_admin/generic_support.rb +0 -18
- data/spec/dummy_app/config/initializers/quiet_assets.rb +0 -10
- data/spec/dummy_app/foo/Gemfile +0 -17
- data/spec/dummy_app/foo/MIT-LICENSE +0 -20
- data/spec/dummy_app/foo/README.rdoc +0 -3
- data/spec/dummy_app/foo/Rakefile +0 -39
- data/spec/dummy_app/foo/app/assets/javascripts/foo/application.js +0 -9
- data/spec/dummy_app/foo/app/assets/stylesheets/foo/application.css +0 -7
- data/spec/dummy_app/foo/app/controllers/foo/application_controller.rb +0 -4
- data/spec/dummy_app/foo/app/helpers/foo/application_helper.rb +0 -4
- data/spec/dummy_app/foo/app/models/foo/bar.rb +0 -4
- data/spec/dummy_app/foo/app/views/layouts/foo/application.html.erb +0 -14
- data/spec/dummy_app/foo/config/routes.rb +0 -2
- data/spec/dummy_app/foo/foo.gemspec +0 -23
- data/spec/dummy_app/foo/lib/foo/engine.rb +0 -5
- data/spec/dummy_app/foo/lib/foo/version.rb +0 -3
- data/spec/dummy_app/foo/lib/foo.rb +0 -4
- data/spec/dummy_app/foo/lib/tasks/foo_tasks.rake +0 -4
- data/spec/dummy_app/foo/script/rails +0 -6
- data/spec/dummy_app/foo/test/dummy/Rakefile +0 -7
- data/spec/dummy_app/foo/test/dummy/app/assets/javascripts/application.js +0 -9
- data/spec/dummy_app/foo/test/dummy/app/assets/stylesheets/application.css +0 -7
- data/spec/dummy_app/foo/test/dummy/app/controllers/application_controller.rb +0 -3
- data/spec/dummy_app/foo/test/dummy/app/helpers/application_helper.rb +0 -2
- data/spec/dummy_app/foo/test/dummy/app/views/layouts/application.html.erb +0 -14
- data/spec/dummy_app/foo/test/dummy/config/application.rb +0 -45
- data/spec/dummy_app/foo/test/dummy/config/boot.rb +0 -10
- data/spec/dummy_app/foo/test/dummy/config/database.yml +0 -25
- data/spec/dummy_app/foo/test/dummy/config/environment.rb +0 -5
- data/spec/dummy_app/foo/test/dummy/config/environments/development.rb +0 -30
- data/spec/dummy_app/foo/test/dummy/config/environments/production.rb +0 -60
- data/spec/dummy_app/foo/test/dummy/config/environments/test.rb +0 -39
- data/spec/dummy_app/foo/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/dummy_app/foo/test/dummy/config/initializers/inflections.rb +0 -10
- data/spec/dummy_app/foo/test/dummy/config/initializers/mime_types.rb +0 -5
- data/spec/dummy_app/foo/test/dummy/config/initializers/secret_token.rb +0 -7
- data/spec/dummy_app/foo/test/dummy/config/initializers/session_store.rb +0 -8
- data/spec/dummy_app/foo/test/dummy/config/locales/en.yml +0 -5
- data/spec/dummy_app/foo/test/dummy/config/routes.rb +0 -4
- data/spec/dummy_app/foo/test/dummy/config.ru +0 -4
- data/spec/dummy_app/foo/test/dummy/db/schema.rb +0 -21
- data/spec/dummy_app/foo/test/dummy/public/404.html +0 -26
- data/spec/dummy_app/foo/test/dummy/public/favicon.ico +0 -0
- data/spec/dummy_app/foo/test/dummy/script/rails +0 -6
- data/spec/dummy_app/foo/test/fixtures/foo/bars.yml +0 -11
- data/spec/dummy_app/foo/test/foo_test.rb +0 -7
- data/spec/dummy_app/foo/test/integration/navigation_test.rb +0 -10
- data/spec/dummy_app/foo/test/test_helper.rb +0 -10
- data/spec/dummy_app/foo/test/unit/foo/bar_test.rb +0 -9
- data/spec/generator_helpers.rb +0 -30
- data/spec/generators/install_generator_spec.rb +0 -85
- data/spec/generators/uninstall_generator_spec.rb +0 -35
- data/spec/lib/custom_field.rb +0 -7
- data/spec/requests/config/navigation/rails_admin_config_navigation_spec.rb +0 -107
- data/spec/requests/config/rails_admin_config_spec.rb +0 -227
@@ -8,7 +8,7 @@
|
|
8
8
|
var operator_name = 'f[' + field_name + '][' + index + '][o]';
|
9
9
|
switch(field_type) {
|
10
10
|
case 'boolean':
|
11
|
-
var control = '<select class="
|
11
|
+
var control = '<select class="input-small" name="' + value_name + '">' +
|
12
12
|
'<option value="_discard">...</option>' +
|
13
13
|
'<option value="true"' + (field_value == "true" ? 'selected="selected"' : '') + '>True</option>' +
|
14
14
|
'<option value="false"' + (field_value == "false" ? 'selected="selected"' : '') + '>False</option>' +
|
@@ -20,7 +20,7 @@
|
|
20
20
|
case 'date':
|
21
21
|
case 'datetime':
|
22
22
|
case 'timestamp':
|
23
|
-
var control = '<select class="switch-additionnal-fieldsets
|
23
|
+
var control = '<select class="switch-additionnal-fieldsets input-small" name="' + operator_name + '">' +
|
24
24
|
'<option data-additional-fieldset="false" value="_discard">...</option>' +
|
25
25
|
'<option data-additional-fieldset="false"' + (field_operator == "today" ? 'selected="selected"' : '') + ' value="today">Today</option>' +
|
26
26
|
'<option data-additional-fieldset="false"' + (field_operator == "yesterday" ? 'selected="selected"' : '') + ' value="yesterday">Yesterday</option>' +
|
@@ -28,32 +28,31 @@
|
|
28
28
|
'<option data-additional-fieldset="false"' + (field_operator == "last_week" ? 'selected="selected"' : '') + ' value="last_week">Last week</option>' +
|
29
29
|
'<option data-additional-fieldset="true" ' + (field_operator == "less_than" ? 'selected="selected"' : '') + ' value="less_than">Less than ... days ago</option>' +
|
30
30
|
'<option data-additional-fieldset="true" ' + (field_operator == "more_than" ? 'selected="selected"' : '') + ' value="more_than">More than ... days ago</option>' +
|
31
|
-
'<option data-additional-fieldset="true" ' + (field_operator == "mmddyyyy"
|
31
|
+
'<option data-additional-fieldset="true" ' + (field_operator == "mmddyyyy" ? 'selected="selected"' : '') + ' value="mmddyyyy">On specific date (mmddyyyy)</option>' +
|
32
32
|
'<option disabled="disabled">---------</option>' +
|
33
33
|
'<option data-additional-fieldset="false"' + (field_operator == "_not_null" ? 'selected="selected"' : '') + ' value="_not_null">Is present</option>' +
|
34
34
|
'<option data-additional-fieldset="false"' + (field_operator == "_null" ? 'selected="selected"' : '') + ' value="_null" >Is blank</option>' +
|
35
35
|
'</select>'
|
36
|
-
var additional_control = '<input class="additional-fieldset
|
36
|
+
var additional_control = '<input class="additional-fieldset input-small" style="display:' + (field_operator == "less_than" || field_operator == "more_than" || field_operator == "mmddyyyy" ? 'inline-block' : 'none') + ';" type="text" name="' + value_name + '" value="' + field_value + '" /> ';
|
37
37
|
break;
|
38
38
|
case 'enum':
|
39
39
|
var field_options = $('<div/>').html(field_options).text(); // entities decode
|
40
|
-
var control = '<
|
41
|
-
'<select style="display:' + (multiple_values ? 'none' : 'block') + '" ' + (multiple_values ? '' : 'name="' + value_name + '"') + ' data-name="' + value_name + '" class="span3 select-single">' +
|
40
|
+
var control = '<select style="display:' + (multiple_values ? 'none' : 'inline-block') + '" ' + (multiple_values ? '' : 'name="' + value_name + '"') + ' data-name="' + value_name + '" class="select-single input-small">' +
|
42
41
|
'<option value="_discard">...</option>' +
|
43
42
|
'<option ' + (field_value == "_present" ? 'selected="selected"' : '') + ' value="_present">Is present</option>' +
|
44
43
|
'<option ' + (field_value == "_blank" ? 'selected="selected"' : '') + ' value="_blank">Is blank</option>' +
|
45
44
|
'<option disabled="disabled">---------</option>' +
|
46
45
|
field_options +
|
47
|
-
'</select>' +
|
48
|
-
'<select multiple="multiple" style="display:' + (multiple_values ? 'block' : 'none') + '" ' + (multiple_values ? 'name="' + value_name + '[]"' : '') + ' data-name="' + value_name + '[]" class="span3 select-multiple">' +
|
49
|
-
field_options +
|
50
46
|
'</select>' +
|
51
|
-
|
47
|
+
'<select multiple="multiple" style="display:' + (multiple_values ? 'inline-block' : 'none') + '" ' + (multiple_values ? 'name="' + value_name + '[]"' : '') + ' data-name="' + value_name + '[]" class="select-multiple input-small">' +
|
48
|
+
field_options +
|
49
|
+
'</select> ' +
|
50
|
+
'<a href="#" class="switch-select"><i class="icon-' + (multiple_values ? 'minus' : 'plus') + '"></i></a>';
|
52
51
|
break;
|
53
52
|
case 'string':
|
54
53
|
case 'text':
|
55
54
|
case 'belongs_to_association':
|
56
|
-
var control = '<select class="switch-additionnal-fieldsets
|
55
|
+
var control = '<select class="switch-additionnal-fieldsets input-small" value="' + field_operator + '" name="' + operator_name + '">' +
|
57
56
|
'<option data-additional-fieldset="true"' + (field_operator == "like" ? 'selected="selected"' : '') + ' value="like">Contains</option>' +
|
58
57
|
'<option data-additional-fieldset="true"' + (field_operator == "is" ? 'selected="selected"' : '') + ' value="is">Is exactly</option>' +
|
59
58
|
'<option data-additional-fieldset="true"' + (field_operator == "starts_with" ? 'selected="selected"' : '') + ' value="starts_with">Starts with</option>' +
|
@@ -62,28 +61,25 @@
|
|
62
61
|
'<option data-additional-fieldset="false"' + (field_operator == "_present" ? 'selected="selected"' : '') + ' value="_present">Is present</option>' +
|
63
62
|
'<option data-additional-fieldset="false"' + (field_operator == "_blank" ? 'selected="selected"' : '') + ' value="_blank">Is blank</option>' +
|
64
63
|
'</select>'
|
65
|
-
var additional_control = '<input class="additional-fieldset
|
64
|
+
var additional_control = '<input class="additional-fieldset input-small" style="display:' + (field_operator == "_blank" || field_operator == "_present" ? 'none' : 'inline-block') + ';" type="text" name="' + value_name + '" value="' + field_value + '" /> ';
|
66
65
|
break;
|
67
66
|
default:
|
68
|
-
var control = '<input
|
67
|
+
var control = '<input type="text" class="input-small" name="' + value_name + '" value="' + field_value + '"/> ';
|
69
68
|
break;
|
70
69
|
}
|
71
70
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
'<span class="span3">'+
|
78
|
-
control +
|
79
|
-
'</span>'+
|
80
|
-
(additional_control ? '<span class="span2">' + additional_control + '</span>' : '') +
|
81
|
-
'</div>'
|
71
|
+
var content = '<p class="filter form-search">' +
|
72
|
+
'<span class="label label-info form-label"><a href="#" class="delete"><i class="icon-trash icon-white"></i></a> ' + field_label + '</span> ' +
|
73
|
+
control + " " +
|
74
|
+
(additional_control || '') +
|
75
|
+
'</div> ';
|
82
76
|
$('#filters_box').append(content);
|
77
|
+
$("hr.filters_box:hidden").show('slow');
|
83
78
|
}
|
84
79
|
}
|
85
80
|
|
86
|
-
$("#filters a").live('click', function() {
|
81
|
+
$("#filters a").live('click', function(e) {
|
82
|
+
e.preventDefault();
|
87
83
|
$.filters.append(
|
88
84
|
$(this).data('field-label'),
|
89
85
|
$(this).data('field-name'),
|
@@ -96,25 +92,29 @@
|
|
96
92
|
);
|
97
93
|
});
|
98
94
|
|
99
|
-
$('#filters_box .delete').live('click', function() {
|
95
|
+
$('#filters_box .delete').live('click', function(e) {
|
96
|
+
e.preventDefault();
|
100
97
|
form = $(this).parents('form');
|
101
98
|
$(this).parents('.filter').remove();
|
99
|
+
!$("#filters_box").children().length && $("hr.filters_box:visible").hide('slow');
|
102
100
|
form.submit();
|
103
101
|
});
|
104
102
|
|
105
|
-
$('#filters_box .switch-select').live('
|
106
|
-
|
107
|
-
var
|
103
|
+
$('#filters_box .switch-select').live('click', function(e) {
|
104
|
+
e.preventDefault();
|
105
|
+
var selected_select = $(this).siblings('select:visible');
|
106
|
+
var not_selected_select = $(this).siblings('select:hidden');
|
108
107
|
not_selected_select.attr('name', not_selected_select.data('name')).show('slow');
|
109
108
|
selected_select.attr('name', null).hide('slow');
|
109
|
+
$(this).find('i').toggleClass("icon-plus icon-minus")
|
110
110
|
});
|
111
111
|
|
112
112
|
$('#filters_box .switch-additionnal-fieldsets').live('change', function() {
|
113
113
|
var selected_option = $(this).find('option:selected');
|
114
114
|
if($(selected_option).data('additional-fieldset')) {
|
115
|
-
$(this).
|
115
|
+
$(this).siblings('.additional-fieldset').show('slow');
|
116
116
|
} else {
|
117
|
-
$(this).
|
117
|
+
$(this).siblings('.additional-fieldset').hide('slow');
|
118
118
|
}
|
119
119
|
});
|
120
120
|
})( jQuery );
|
@@ -55,7 +55,7 @@
|
|
55
55
|
self._trigger("selected", event, {
|
56
56
|
item: option
|
57
57
|
});
|
58
|
-
$(self.element.parents('.
|
58
|
+
$(self.element.parents('.controls')[0]).find('.update').removeClass('disabled');
|
59
59
|
},
|
60
60
|
change: function(event, ui) {
|
61
61
|
if (!ui.item) {
|
@@ -72,23 +72,23 @@
|
|
72
72
|
$(this).val(null);
|
73
73
|
select.html($('<option value="" selected="selected"></option>'));
|
74
74
|
input.data("autocomplete").term = "";
|
75
|
-
$(self.element.parents('.
|
75
|
+
$(self.element.parents('.controls')[0]).find('.update').addClass('disabled');
|
76
76
|
return false;
|
77
77
|
}
|
78
|
-
|
78
|
+
|
79
79
|
}
|
80
80
|
}
|
81
81
|
})
|
82
|
-
if(select.attr('placeholder'))
|
82
|
+
if(select.attr('placeholder'))
|
83
83
|
input.attr('placeholder', select.attr('placeholder'))
|
84
|
-
|
84
|
+
|
85
85
|
input.data("autocomplete")._renderItem = function(ul, item) {
|
86
86
|
return $("<li></li>")
|
87
87
|
.data("item.autocomplete", item)
|
88
88
|
.append( $( "<a></a>" ).html( item.label || item.id ) )
|
89
89
|
.appendTo(ul);
|
90
90
|
};
|
91
|
-
|
91
|
+
|
92
92
|
// replace with dropdown button once ready in twitter-bootstrap
|
93
93
|
var button = this.button = $('<label class="add-on ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only" title="Show All Items" role="button"><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-s"></span><span class="ui-button-text"> </span></label>')
|
94
94
|
.click(function() {
|
@@ -102,17 +102,17 @@
|
|
102
102
|
input.autocomplete("search", "");
|
103
103
|
input.focus();
|
104
104
|
});
|
105
|
-
|
105
|
+
|
106
106
|
filtering_select.append(input).append(button).insertAfter(select);
|
107
|
-
|
108
|
-
|
107
|
+
|
108
|
+
|
109
109
|
},
|
110
110
|
|
111
111
|
_getResultSet: function(request, data, xhr) {
|
112
|
-
|
112
|
+
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
|
113
113
|
|
114
114
|
return $.map(data, function(el, i) {
|
115
|
-
|
115
|
+
// match regexp only for local requests, remote ones are already filtered, and label may not contain filtered term.
|
116
116
|
if ((el.id || el.value) && (xhr || matcher.test(el.label))) {
|
117
117
|
return {
|
118
118
|
label: el.label ? el.label.replace(
|
@@ -0,0 +1,40 @@
|
|
1
|
+
$ = jQuery
|
2
|
+
|
3
|
+
$(document).ready ->
|
4
|
+
window.nestedFormEvents.insertFields = (content, assoc, link) ->
|
5
|
+
tab_content = $(link).closest(".controls").siblings(".tab-content")
|
6
|
+
tab_content.append content
|
7
|
+
tab_content.children().last()
|
8
|
+
|
9
|
+
$('form').live 'nested:fieldAdded', (content) ->
|
10
|
+
field = content.field.addClass('tab-pane');
|
11
|
+
new_tab = $('<li><a data-toggle="tab" href="#' + field.attr('id') + '">' + field.children('.object-infos').data('object-label') + '</a></li>')
|
12
|
+
parent_group = field.closest('.control-group')
|
13
|
+
controls = parent_group.children('.controls')
|
14
|
+
nav = controls.children('.nav')
|
15
|
+
content = parent_group.children('.tab-content')
|
16
|
+
toggler = controls.find('.toggler')
|
17
|
+
nav.append(new_tab)
|
18
|
+
new_tab.children('a').tab('show') # activate added tab
|
19
|
+
nav.select(':hidden').show('slow') # show nav if hidden
|
20
|
+
content.select(':hidden').show('slow') # show tabs content if hidden
|
21
|
+
# toggler 'on' if inactive
|
22
|
+
toggler.addClass('active').removeClass('disabled').children('i').addClass('icon-chevron-down').removeClass('icon-chevron-right')
|
23
|
+
|
24
|
+
$('form').live 'nested:fieldRemoved', (content) ->
|
25
|
+
field = content.field
|
26
|
+
nav = field.closest(".control-group").children('.controls').children('.nav')
|
27
|
+
current_li = nav.children('li').has('a[href=#' + field.attr('id') + ']')
|
28
|
+
parent_group = field.closest(".control-group")
|
29
|
+
controls = parent_group.children('.controls')
|
30
|
+
toggler = controls.find('.toggler')
|
31
|
+
|
32
|
+
# try to activate another tab
|
33
|
+
(if current_li.next().length then current_li.next() else current_li.prev()).children('a:first').tab('show')
|
34
|
+
|
35
|
+
current_li.remove()
|
36
|
+
|
37
|
+
if nav.children().length == 0 # removed last tab
|
38
|
+
nav.select(':visible').hide('slow') # hide nav. No use anymore.
|
39
|
+
# toggler 'off' if active
|
40
|
+
toggler.removeClass('active').addClass('disabled').children('i').removeClass('icon-chevron-down').addClass('icon-chevron-right')
|
@@ -16,7 +16,7 @@
|
|
16
16
|
_create: function() {
|
17
17
|
var widget = this
|
18
18
|
var dom_widget = widget.element;
|
19
|
-
|
19
|
+
|
20
20
|
var edit_url = dom_widget.find('select').data('edit-url');
|
21
21
|
if(typeof(edit_url) != 'undefined' && edit_url.length) {
|
22
22
|
dom_widget.find('.ra-multiselect option').live('dblclick', function(e){
|
@@ -27,7 +27,7 @@
|
|
27
27
|
dom_widget.find('.create').unbind().bind("click", function(e){
|
28
28
|
widget._bindModalOpening(e, $(this).data('link'))
|
29
29
|
});
|
30
|
-
|
30
|
+
|
31
31
|
dom_widget.find('.update').unbind().bind("click", function(e){
|
32
32
|
if(value = dom_widget.find('select').val()) {
|
33
33
|
widget._bindModalOpening(e, $(this).data('link').replace('__ID__', value))
|
@@ -36,7 +36,7 @@
|
|
36
36
|
}
|
37
37
|
});
|
38
38
|
},
|
39
|
-
|
39
|
+
|
40
40
|
_bindModalOpening: function(e, url) {
|
41
41
|
e.preventDefault();
|
42
42
|
widget = this;
|
@@ -44,61 +44,63 @@
|
|
44
44
|
return false;
|
45
45
|
|
46
46
|
var dialog = this._getModal();
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
47
|
+
|
48
|
+
setTimeout(function(){ // fix race condition with modal insertion in the dom (Chrome => Team/add a new fan => #modal not found when it should have). Somehow .on('show') is too early, tried it too.
|
49
|
+
$.ajax({
|
50
|
+
url: url,
|
51
|
+
beforeSend: function(xhr) {
|
52
|
+
xhr.setRequestHeader("Accept", "text/javascript");
|
53
|
+
},
|
54
|
+
success: function(data, status, xhr) {
|
55
|
+
dialog.find('.modal-body').html(data);
|
56
|
+
widget._bindFormEvents();
|
57
|
+
},
|
58
|
+
error: function(xhr, status, error) {
|
59
|
+
dialog.find('.modal-body').html(xhr.responseText);
|
60
|
+
},
|
61
|
+
dataType: 'text'
|
62
|
+
});
|
63
|
+
},100);
|
64
|
+
|
61
65
|
},
|
62
|
-
|
66
|
+
|
63
67
|
_bindFormEvents: function() {
|
64
68
|
var widget = this,
|
65
69
|
dialog = this._getModal(),
|
66
70
|
form = dialog.find("form"),
|
67
|
-
saveButtonText = dialog.find(":submit[name=_save]").
|
68
|
-
cancelButtonText = dialog.find(":submit[name=_continue]").
|
69
|
-
dialog.find('.actions').remove();
|
70
|
-
|
71
|
+
saveButtonText = dialog.find(":submit[name=_save]").html(),
|
72
|
+
cancelButtonText = dialog.find(":submit[name=_continue]").html();
|
73
|
+
dialog.find('.form-actions').remove();
|
74
|
+
|
71
75
|
form.attr("data-remote", true);
|
72
|
-
dialog.find('.modal-header-title').text(form.data('title'));
|
76
|
+
dialog.find('.modal-header-title').text(form.data('title'));
|
73
77
|
dialog.find('.cancel-action').unbind().click(function(){
|
74
78
|
dialog.modal('hide');
|
75
79
|
return false;
|
76
|
-
}).
|
77
|
-
|
80
|
+
}).html(cancelButtonText);
|
81
|
+
|
78
82
|
dialog.find('.save-action').unbind().click(function(){
|
79
83
|
form.submit();
|
80
84
|
return false;
|
81
|
-
}).
|
82
|
-
|
85
|
+
}).html(saveButtonText);
|
86
|
+
|
83
87
|
form.bind("ajax:complete", function(xhr, data, status) {
|
84
88
|
if (status == 'error') {
|
85
89
|
dialog.find('.modal-body').html(data.responseText);
|
86
90
|
widget._bindFormEvents();
|
87
|
-
|
88
91
|
} else {
|
89
|
-
|
90
92
|
var json = $.parseJSON(data.responseText);
|
91
93
|
var option = '<option value="' + json.id + '" selected>' + json.label + '</option>';
|
92
94
|
var select = widget.element.find('select').filter(":hidden");
|
93
|
-
|
95
|
+
|
94
96
|
if(widget.element.find('.filtering-select').length) { // select input
|
95
97
|
var input = widget.element.find('.filtering-select').children('.ra-filtering-select-input');
|
96
98
|
input.val(json.label);
|
97
|
-
if (!select.find('option[value=' + json.id + ']').length) // replace
|
99
|
+
if (!select.find('option[value=' + json.id + ']').length) { // not a replace
|
98
100
|
select.html(option).val(json.id);
|
99
|
-
|
101
|
+
widget.element.find('.update').removeClass('disabled');
|
102
|
+
}
|
100
103
|
} else { // multi-select input
|
101
|
-
|
102
104
|
var input = widget.element.find('.ra-filtering-select-input');
|
103
105
|
var multiselect = widget.element.find('.ra-multiselect');
|
104
106
|
if (multiselect.find('option[value=' + json.id + ']').length) { // replace
|
@@ -114,22 +116,22 @@
|
|
114
116
|
}
|
115
117
|
});
|
116
118
|
},
|
117
|
-
|
119
|
+
|
118
120
|
_getModal: function() {
|
119
121
|
var widget = this;
|
120
122
|
if (!widget.dialog) {
|
121
123
|
widget.dialog = $('\
|
122
|
-
<div id="modal" class="modal">\
|
124
|
+
<div id="modal" class="modal fade">\
|
123
125
|
<div class="modal-header">\
|
124
|
-
<a href="#" class="close">×</a>\
|
126
|
+
<a href="#" class="close" data-dismiss="modal">×</a>\
|
125
127
|
<h3 class="modal-header-title">...</h3>\
|
126
128
|
</div>\
|
127
129
|
<div class="modal-body">\
|
128
130
|
...\
|
129
131
|
</div>\
|
130
132
|
<div class="modal-footer">\
|
131
|
-
<a href="#" class="btn
|
132
|
-
<a href="#" class="btn primary save-action">...</a>\
|
133
|
+
<a href="#" class="btn cancel-action">...</a>\
|
134
|
+
<a href="#" class="btn btn-primary save-action">...</a>\
|
133
135
|
</div>\
|
134
136
|
</div>')
|
135
137
|
.modal({
|
@@ -137,7 +139,7 @@
|
|
137
139
|
backdrop: true,
|
138
140
|
show: true
|
139
141
|
})
|
140
|
-
.
|
142
|
+
.on('hidden', function(){
|
141
143
|
widget.dialog.remove(); // We don't want to reuse closed modals
|
142
144
|
widget.dialog = null;
|
143
145
|
});
|
@@ -1,8 +1,9 @@
|
|
1
|
-
<%
|
1
|
+
<%
|
2
2
|
theme = ENV['RAILS_ADMIN_THEME'] || :default
|
3
3
|
require_asset 'jquery'
|
4
4
|
require_asset 'jquery_ujs'
|
5
|
-
require_asset '
|
5
|
+
require_asset 'jquery_nested_form'
|
6
|
+
require_asset 'rails_admin/ra.nested-form-hooks'
|
6
7
|
require_asset 'jquery.remotipart'
|
7
8
|
require_asset 'rails_admin/jquery.pjax'
|
8
9
|
require_asset 'rails_admin/jquery-ui-1.8.16.custom.js'
|
@@ -16,4 +17,4 @@
|
|
16
17
|
require_asset 'rails_admin/ui'
|
17
18
|
require_asset "rails_admin/themes/#{theme}/ui"
|
18
19
|
require_asset 'rails_admin/custom/ui'
|
19
|
-
%>
|
20
|
+
%>
|
@@ -1,12 +1,12 @@
|
|
1
|
-
/*
|
2
|
-
Theme's JS behaviour
|
3
|
-
|
1
|
+
/*
|
2
|
+
Theme's JS behaviour
|
3
|
+
|
4
4
|
Available resources:
|
5
|
-
|
5
|
+
|
6
6
|
http://twitter.github.com/bootstrap/javascript.html
|
7
7
|
https://github.com/twitter/bootstrap/tree/master/js
|
8
8
|
http://jquery.com/
|
9
9
|
http://jqueryui.com/ (parts of it)
|
10
|
-
|
10
|
+
|
11
11
|
rename to ui.js.coffee if needed.
|
12
|
-
*/
|
12
|
+
*/
|
@@ -1,33 +1,61 @@
|
|
1
1
|
$ = jQuery
|
2
2
|
|
3
|
-
$("#list input.
|
4
|
-
|
5
|
-
$("td.action.select input.checkbox[name='bulk_ids[]']").each ->
|
6
|
-
$(this).attr "checked", checked_status
|
7
|
-
if checked_status
|
8
|
-
$(this).parent().addClass "checked"
|
9
|
-
else
|
10
|
-
$(this).parent().removeClass "checked"
|
3
|
+
$("#list input.toggle").live "click", ->
|
4
|
+
$("#list [name='bulk_ids[]']").attr "checked", $(this).is(":checked")
|
11
5
|
|
12
6
|
$("#list a, #list form").live "ajax:complete", (xhr, data, status) ->
|
13
7
|
$("#list").replaceWith data.responseText
|
14
8
|
|
15
|
-
$("table#history th.header").live "click", ->
|
16
|
-
|
17
|
-
window.location = $(this).data("link")
|
9
|
+
$("table#history th.header[data-href]").live "click", ->
|
10
|
+
window.location = $(this).data('href')
|
18
11
|
|
19
|
-
$(
|
20
|
-
|
21
|
-
|
12
|
+
$('.pjax').live 'click', (event) ->
|
13
|
+
if $.support.pjax
|
14
|
+
event.preventDefault()
|
15
|
+
$.pjax
|
16
|
+
container: '[data-pjax-container]'
|
17
|
+
url: $(this).data('href') || $(this).attr('href')
|
18
|
+
timeout: 2000
|
19
|
+
else if $(this).data('href') # not a native #href, need some help
|
20
|
+
window.location = $(this).data('href')
|
21
|
+
|
22
|
+
$('.pjax-form').live 'submit', (event) ->
|
23
|
+
if $.support.pjax
|
22
24
|
event.preventDefault()
|
23
25
|
$.pjax
|
24
26
|
container: '[data-pjax-container]'
|
25
27
|
url: this.action + (if (this.action.indexOf('?') != -1) then '&' else '?') + $(this).serialize()
|
26
|
-
|
27
|
-
|
28
|
+
timeout: 2000
|
29
|
+
|
30
|
+
$('[data-target]').live 'click', ->
|
31
|
+
if !$(this).hasClass('disabled')
|
32
|
+
if $(this).has('i.icon-chevron-down').length
|
33
|
+
$(this).removeClass('active').children('i').toggleClass('icon-chevron-down icon-chevron-right')
|
34
|
+
$($(this).data('target')).select(':visible').hide('slow')
|
35
|
+
else
|
36
|
+
if $(this).has('i.icon-chevron-right').length
|
37
|
+
$(this).addClass('active').children('i').toggleClass('icon-chevron-down icon-chevron-right')
|
38
|
+
$($(this).data('target')).select(':hidden').show('slow')
|
39
|
+
|
40
|
+
$('.form-horizontal legend').live 'click', ->
|
41
|
+
if $(this).has('i.icon-chevron-down').length
|
42
|
+
$(this).siblings('.control-group:visible').hide('slow')
|
43
|
+
$(this).children('i').toggleClass('icon-chevron-down icon-chevron-right')
|
44
|
+
else
|
45
|
+
if $(this).has('i.icon-chevron-right').length
|
46
|
+
$(this).siblings('.control-group:hidden').show('slow')
|
47
|
+
$(this).children('i').toggleClass('icon-chevron-down icon-chevron-right')
|
48
|
+
|
49
|
+
$(document).ready ->
|
50
|
+
|
28
51
|
$('.animate-width-to').each ->
|
29
52
|
length = $(this).data("animate-length")
|
30
53
|
width = $(this).data("animate-width-to")
|
31
54
|
$(this).animate(width: width, length, 'easeOutQuad')
|
32
55
|
|
56
|
+
$('.form-horizontal legend').has('i.icon-chevron-right').each ->
|
57
|
+
$(this).siblings('.control-group').hide()
|
58
|
+
|
59
|
+
$('[rel=tooltip]').tooltip(delay: { show: 200, hide: 500 });
|
60
|
+
|
33
61
|
|
@@ -1,2 +1,2 @@
|
|
1
|
-
For RailsAdmin developpers;
|
2
|
-
We should use sass variables & mixins as much as possible so that themers/users can override them cleanly
|
1
|
+
For RailsAdmin developpers;
|
2
|
+
We should use sass variables & mixins as much as possible so that themers/users can override them cleanly
|