active_scaffold 3.4.43 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +39 -0
- data/{LICENSE → LICENSE.md} +1 -1
- data/README.md +27 -19
- data/app/assets/javascripts/active_scaffold.js.erb +1 -1
- data/app/assets/javascripts/jquery/active_scaffold.js +95 -43
- data/app/assets/javascripts/jquery/tiny_mce_bridge.js +30 -6
- data/app/assets/javascripts/prototype/tiny_mce_bridge.js +11 -1
- data/app/assets/stylesheets/active_scaffold_colors.scss +2 -2
- data/app/assets/stylesheets/active_scaffold_layout.css +36 -28
- data/app/views/active_scaffold_overrides/_base_form.html.erb +2 -3
- data/app/views/active_scaffold_overrides/_field_search.html.erb +8 -7
- data/app/views/active_scaffold_overrides/_form_association.html.erb +9 -9
- data/app/views/active_scaffold_overrides/_form_association_footer.html.erb +6 -6
- data/app/views/active_scaffold_overrides/_form_association_record.html.erb +52 -50
- data/app/views/active_scaffold_overrides/_horizontal_subform.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_horizontal_subform_header.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_human_conditions.html.erb +3 -1
- data/app/views/active_scaffold_overrides/_list_calculations.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_list_column_headings.html.erb +2 -0
- data/app/views/active_scaffold_overrides/_list_messages.html.erb +5 -3
- data/app/views/active_scaffold_overrides/_list_record.html.erb +3 -1
- data/app/views/active_scaffold_overrides/_list_with_header.html.erb +9 -9
- data/app/views/active_scaffold_overrides/_messages.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_refresh_list.js.erb +18 -10
- data/app/views/active_scaffold_overrides/_render_field.js.erb +3 -3
- data/app/views/active_scaffold_overrides/_search.html.erb +7 -6
- data/app/views/active_scaffold_overrides/_show_actions.html.erb +14 -0
- data/app/views/active_scaffold_overrides/_show_association.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_update_actions.html.erb +6 -2
- data/app/views/active_scaffold_overrides/_update_column.js.erb +1 -1
- data/app/views/active_scaffold_overrides/_update_form.html.erb +1 -1
- data/app/views/active_scaffold_overrides/destroy.js.erb +2 -3
- data/app/views/active_scaffold_overrides/edit_associated.js.erb +4 -3
- data/app/views/active_scaffold_overrides/on_action_update.js.erb +5 -3
- data/app/views/active_scaffold_overrides/on_create.js.erb +4 -4
- data/app/views/active_scaffold_overrides/on_update.js.erb +6 -6
- data/app/views/active_scaffold_overrides/show.html.erb +6 -0
- data/app/views/active_scaffold_overrides/update.html.erb +1 -1
- data/app/views/active_scaffold_overrides/update_column.js.erb +1 -1
- data/config/brakeman.ignore +26 -0
- data/config/brakeman.yml +3 -0
- data/config/i18n-tasks.yml +121 -0
- data/config/locales/de.yml +81 -70
- data/config/locales/en.yml +83 -74
- data/config/locales/es.yml +82 -73
- data/config/locales/fr.yml +86 -75
- data/config/locales/hu.yml +81 -70
- data/config/locales/ja.yml +71 -60
- data/config/locales/ru.yml +85 -74
- data/lib/active_scaffold.rb +3 -0
- data/lib/active_scaffold/actions/common_search.rb +11 -7
- data/lib/active_scaffold/actions/core.rb +119 -47
- data/lib/active_scaffold/actions/create.rb +1 -1
- data/lib/active_scaffold/actions/delete.rb +11 -8
- data/lib/active_scaffold/actions/field_search.rb +104 -6
- data/lib/active_scaffold/actions/list.rb +25 -21
- data/lib/active_scaffold/actions/mark.rb +12 -4
- data/lib/active_scaffold/actions/nested.rb +26 -26
- data/lib/active_scaffold/actions/search.rb +2 -2
- data/lib/active_scaffold/actions/show.rb +4 -5
- data/lib/active_scaffold/actions/subform.rb +9 -7
- data/lib/active_scaffold/actions/update.rb +20 -13
- data/lib/active_scaffold/active_record_permissions.rb +24 -5
- data/lib/active_scaffold/attribute_params.rb +68 -49
- data/lib/active_scaffold/bridges.rb +1 -1
- data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +15 -19
- data/lib/active_scaffold/bridges/bitfields.rb +1 -1
- data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +10 -14
- data/lib/active_scaffold/bridges/calendar_date_select.rb +0 -7
- data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +19 -22
- data/lib/active_scaffold/bridges/cancan.rb +4 -3
- data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +11 -21
- data/lib/active_scaffold/bridges/carrierwave.rb +2 -1
- data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +2 -6
- data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +6 -39
- data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/chosen.rb +4 -1
- data/lib/active_scaffold/bridges/chosen/helpers.rb +3 -2
- data/lib/active_scaffold/bridges/country_select/country_select_bridge_helper.rb +2 -2
- data/lib/active_scaffold/bridges/date_picker.rb +3 -0
- data/lib/active_scaffold/bridges/date_picker/ext.rb +43 -38
- data/lib/active_scaffold/bridges/date_picker/helper.rb +24 -23
- data/lib/active_scaffold/bridges/dragonfly.rb +1 -1
- data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +3 -7
- data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +3 -25
- data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +2 -2
- data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +6 -8
- data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/form_ui.rb +0 -2
- data/lib/active_scaffold/bridges/file_column/list_ui.rb +2 -1
- data/lib/active_scaffold/bridges/file_column/test/test_helper.rb +1 -1
- data/lib/active_scaffold/bridges/paper_trail/actions.rb +1 -1
- data/lib/active_scaffold/bridges/paper_trail/helper.rb +1 -2
- data/lib/active_scaffold/bridges/paper_trail/paper_trail_bridge.rb +3 -7
- data/lib/active_scaffold/bridges/paperclip.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/form_ui.rb +3 -28
- data/lib/active_scaffold/bridges/paperclip/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +3 -7
- data/lib/active_scaffold/bridges/record_select.rb +2 -0
- data/lib/active_scaffold/bridges/record_select/helpers.rb +14 -18
- data/lib/active_scaffold/bridges/semantic_attributes/column.rb +4 -8
- data/lib/active_scaffold/bridges/shared/date_bridge.rb +20 -20
- data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +7 -22
- data/lib/active_scaffold/bridges/usa_state_select/usa_state_select_helper.rb +14 -14
- data/lib/active_scaffold/config/base.rb +9 -6
- data/lib/active_scaffold/config/core.rb +30 -21
- data/lib/active_scaffold/config/create.rb +2 -1
- data/lib/active_scaffold/config/delete.rb +2 -2
- data/lib/active_scaffold/config/field_search.rb +9 -3
- data/lib/active_scaffold/config/form.rb +4 -4
- data/lib/active_scaffold/config/list.rb +27 -23
- data/lib/active_scaffold/config/nested.rb +4 -4
- data/lib/active_scaffold/config/search.rb +6 -6
- data/lib/active_scaffold/config/show.rb +11 -1
- data/lib/active_scaffold/config/subform.rb +1 -1
- data/lib/active_scaffold/config/update.rb +4 -2
- data/lib/active_scaffold/constraints.rb +39 -36
- data/lib/active_scaffold/core.rb +36 -15
- data/lib/active_scaffold/data_structures/action_columns.rb +14 -9
- data/lib/active_scaffold/data_structures/action_link.rb +4 -5
- data/lib/active_scaffold/data_structures/action_links.rb +5 -4
- data/lib/active_scaffold/data_structures/actions.rb +2 -2
- data/lib/active_scaffold/data_structures/association.rb +8 -0
- data/lib/active_scaffold/data_structures/association/abstract.rb +147 -0
- data/lib/active_scaffold/data_structures/association/active_mongoid.rb +42 -0
- data/lib/active_scaffold/data_structures/association/active_record.rb +94 -0
- data/lib/active_scaffold/data_structures/association/mongoid.rb +45 -0
- data/lib/active_scaffold/data_structures/bridge.rb +3 -6
- data/lib/active_scaffold/data_structures/column.rb +100 -82
- data/lib/active_scaffold/data_structures/columns.rb +21 -3
- data/lib/active_scaffold/data_structures/nested_info.rb +22 -37
- data/lib/active_scaffold/data_structures/set.rb +4 -4
- data/lib/active_scaffold/data_structures/sorting.rb +29 -15
- data/lib/active_scaffold/engine.rb +3 -1
- data/lib/active_scaffold/extensions/action_controller_rendering.rb +10 -5
- data/lib/active_scaffold/extensions/action_view_rendering.rb +65 -59
- data/lib/active_scaffold/extensions/left_outer_joins.rb +48 -53
- data/lib/active_scaffold/extensions/localize.rb +3 -4
- data/lib/active_scaffold/extensions/name_option_for_datetime.rb +7 -11
- data/lib/active_scaffold/extensions/paginator_extensions.rb +20 -18
- data/lib/active_scaffold/extensions/routing_mapper.rb +104 -40
- data/lib/active_scaffold/extensions/to_label.rb +1 -1
- data/lib/active_scaffold/extensions/unsaved_associated.rb +4 -13
- data/lib/active_scaffold/extensions/unsaved_record.rb +12 -1
- data/lib/active_scaffold/finder.rb +200 -134
- data/lib/active_scaffold/helpers/action_link_helpers.rb +398 -0
- data/lib/active_scaffold/helpers/association_helpers.rb +12 -30
- data/lib/active_scaffold/helpers/controller_helpers.rb +74 -24
- data/lib/active_scaffold/helpers/form_column_helpers.rb +205 -112
- data/lib/active_scaffold/helpers/human_condition_helpers.rb +21 -11
- data/lib/active_scaffold/helpers/id_helpers.rb +1 -1
- data/lib/active_scaffold/helpers/list_column_helpers.rb +117 -39
- data/lib/active_scaffold/helpers/pagination_helpers.rb +11 -14
- data/lib/active_scaffold/helpers/search_column_helpers.rb +69 -32
- data/lib/active_scaffold/helpers/show_column_helpers.rb +9 -3
- data/lib/active_scaffold/helpers/view_helpers.rb +41 -426
- data/lib/active_scaffold/orm_checks.rb +109 -0
- data/lib/active_scaffold/paginator.rb +1 -1
- data/lib/active_scaffold/responds_to_parent.rb +12 -10
- data/lib/active_scaffold/tableless.rb +81 -43
- data/lib/active_scaffold/version.rb +2 -2
- data/lib/generators/active_scaffold/controller_generator.rb +49 -0
- data/lib/generators/active_scaffold/install_generator.rb +45 -0
- data/lib/generators/active_scaffold/resource_generator.rb +56 -0
- data/lib/generators/{active_scaffold_controller/templates → templates}/controller.rb +0 -0
- data/lib/generators/{active_scaffold_controller/templates → templates}/helper.rb +0 -0
- data/shoulda_macros/macros.rb +3 -3
- data/test/active_scaffold_config_mock.rb +33 -0
- data/test/bridges/bridge_test.rb +9 -9
- data/test/bridges/date_picker_test.rb +3 -1
- data/test/bridges/paper_trail_test.rb +2 -3
- data/test/bridges/paperclip_test.rb +21 -10
- data/test/bridges/tiny_mce_test.rb +20 -21
- data/test/class_with_finder.rb +42 -0
- data/test/company.rb +6 -4
- data/test/config/core_test.rb +1 -1
- data/test/config/create_test.rb +1 -1
- data/test/config/list_test.rb +3 -3
- data/test/config/update_test.rb +3 -3
- data/test/data_structures/action_columns_test.rb +3 -3
- data/test/data_structures/association_column_test.rb +5 -5
- data/test/data_structures/column_test.rb +14 -14
- data/test/data_structures/columns_test.rb +2 -2
- data/test/data_structures/set_test.rb +2 -2
- data/test/data_structures/sorting_test.rb +6 -4
- data/test/extensions/active_record_test.rb +1 -1
- data/test/extensions/routing_mapper_test.rb +64 -13
- data/test/helpers/form_column_helpers_test.rb +6 -6
- data/test/helpers/list_column_helpers_test.rb +9 -5
- data/test/helpers/pagination_helpers_test.rb +1 -0
- data/test/misc/active_record_permissions_test.rb +18 -1
- data/test/misc/attribute_params_test.rb +26 -17
- data/test/misc/calculation_test.rb +8 -31
- data/test/misc/configurable_test.rb +3 -2
- data/test/misc/constraints_test.rb +33 -22
- data/test/misc/convert_numbers_format_test.rb +28 -10
- data/test/misc/finder_test.rb +6 -29
- data/test/misc/parse_datetime_test.rb +160 -0
- data/test/misc/render_test.rb +1 -1
- data/test/misc/tableless_test.rb +24 -0
- data/test/mock_app/app/models/building.rb +2 -1
- data/test/mock_app/config.ru +1 -1
- data/test/mock_app/config/environments/test.rb +1 -1
- data/test/mock_app/config/routes.rb +11 -3
- data/test/model_stub.rb +11 -6
- data/test/run_all.rb +1 -1
- data/test/test_helper.rb +19 -4
- metadata +42 -23
- data/lib/active_scaffold/data_structures/error_message.rb +0 -22
- data/lib/active_scaffold/extensions/reverse_associations.rb +0 -119
- data/lib/generators/active_scaffold/USAGE +0 -29
- data/lib/generators/active_scaffold/active_scaffold_generator.rb +0 -21
- data/lib/generators/active_scaffold_controller/USAGE +0 -19
- data/lib/generators/active_scaffold_controller/active_scaffold_controller_generator.rb +0 -29
- data/test/data_structures/error_message_test.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a7eb8fad2b071936f60422993e7edd163d60f7b
|
4
|
+
data.tar.gz: b2ed33ac963964127a633ec19547874e350d1c9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81f8a0cb3b77d49ed1771b02993a02a470a8bbf697d54c27e70649661148b461b4155c89533728305e738ca1dfe227470709590f46e63a76cd7a8280214f4a3c
|
7
|
+
data.tar.gz: 3b6b906a0db4738963ff2bf63504928d2348cc42cbe1d9a3227b3d31d4deb7754fb64f5690b8da044fb408514cac196fb41d6fae93d94f144057126fccf55190
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,42 @@
|
|
1
|
+
= 3.5.0
|
2
|
+
- add basic support for Mongoid
|
3
|
+
- add support for associations between Mongoid and ActiveRecord with ActiveMongoid
|
4
|
+
- use concerns for routes, deprecate as_routes method
|
5
|
+
- add install generator
|
6
|
+
- rails 5.0 support and turbolinks 5.0 support, without jquery.turbolinks
|
7
|
+
- rename active_scaffold generator as active_scaffold:resource
|
8
|
+
- rename active_scaffold_controller generator as active_scaffold:controller
|
9
|
+
- remove deprecations from 3.4.x (active_scaffold_includes and using @record in helpers)
|
10
|
+
- check create authorized for create on list (config.list.always_show_create)
|
11
|
+
- allow to disable inplace_edit for column when update form is enabled
|
12
|
+
- add support for aggregated lists to field_search (config.field_search.group_options)
|
13
|
+
- add support for range conditions in url params for date and datetime columns
|
14
|
+
- add :color form_ui with "No color" checkbox to disable if column may be null
|
15
|
+
- add inline_links config to show action, display member links in show action loaded in page
|
16
|
+
- add :telephone list_ui displaying formatted phone number with tel: link
|
17
|
+
- add global config option to display reason for disabled action, authorized methods must return string with reason, and string is interpreted as not authorized
|
18
|
+
- stop saving embedded scaffolds info into session, so no more CookieOverflow errors caused by loading many embedded scaffolds
|
19
|
+
- add add_association_columns method to config.columns, so columns from has_one or belongs_to association can be added as delegated columns (for list, show, field_search and update_column only)
|
20
|
+
- support has_many through singular associations (belongs_to or has_one) in forms
|
21
|
+
- remove onsubmit tag in forms and move tinymce related JS to assets
|
22
|
+
- use html5 history api when listing is refreshed
|
23
|
+
- use date, datetime-local and time html5 inputs for date, datetime and time columns without form_ui
|
24
|
+
- add month and week form_ui using html5 inputs
|
25
|
+
- avoid browser mixes html and xhr cache for listing requests, using vary header
|
26
|
+
- improve in_subform? check for subforms, so only reverse association is hidden (needed when subform class has multiple associations to main form's class)
|
27
|
+
- fix select of existing record for nested subform
|
28
|
+
- fix apply constraints to parent (fix update columns on subform on embedded scaffold)
|
29
|
+
- fix for override form field and subform partials on AS controllers which are parent class for AS controllers, so they are shared by children classes
|
30
|
+
- fix translation for ActiveRecord enums
|
31
|
+
- fix do_refresh_list on actions with GET route, it used :id and :action from request for sorting and pagination links
|
32
|
+
- fix enabling draggable lists and sliders on new subform records
|
33
|
+
- fix updating column and changing from :hidden form_ui to different one
|
34
|
+
- fix searching with :multi_chosen search_ui
|
35
|
+
- fix human conditions for :chosen and :multi_chosen search_ui
|
36
|
+
- fix display of association in list when association_limit is nil
|
37
|
+
- fix conversion of i18n date and datetime value, some abbr day and month may be equal in some languages
|
38
|
+
- fix hidden form_ui for collection associations (has_many, habtm)
|
39
|
+
|
1
40
|
= 3.4.43
|
2
41
|
- Fix human conditions for date and datetime columns, not using date picker
|
3
42
|
|
data/{LICENSE → LICENSE.md}
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright © 2006—
|
1
|
+
Copyright © 2006—2017 Richard White, Sergio Cambra and contributors
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
a copy of this software and associated documentation files (the
|
data/README.md
CHANGED
@@ -8,11 +8,13 @@ Overview
|
|
8
8
|
[![Inline docs](https://inch-ci.org/github/activescaffold/active_scaffold.svg?branch=master)](https://inch-ci.org/github/activescaffold/active_scaffold)
|
9
9
|
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
|
10
10
|
|
11
|
-
ActiveScaffold provides a quick and powerful user interfaces for CRUD (create, read, update, delete) operations for Rails applications. It offers additonal features including searching, pagination & layout control. Rails
|
11
|
+
ActiveScaffold provides a quick and powerful user interfaces for CRUD (create, read, update, delete) operations for Rails applications. It offers additonal features including searching, pagination & layout control. Rails >= 4.0.5 is supported, ruby >= 2.1 supported, although it should work with ruby >= 2.0.0, it's too old and not tested. Ruby < 2.0.0 won't work.
|
12
12
|
|
13
13
|
Branch Details
|
14
14
|
--------------
|
15
|
-
|
15
|
+
3-4-stable supports rails >= 3.2.x and ruby >= 1.9.3
|
16
|
+
3-3-stable supports rails >= 3.2.x and ruby >= 1.8
|
17
|
+
rails-3.2 supports Rails 3.1 & 3.2, and is the current source of the 3.2.x line of gems.
|
16
18
|
|
17
19
|
Quick Start
|
18
20
|
-----------
|
@@ -25,32 +27,26 @@ Added to Gemfile
|
|
25
27
|
Run the following commands
|
26
28
|
|
27
29
|
bundle install
|
30
|
+
rails g active_scaffold:install
|
28
31
|
bundle exec rake db:create
|
29
|
-
rails g active_scaffold User name:string
|
32
|
+
rails g active_scaffold:resource User name:string
|
30
33
|
bundle exec rake db:migrate
|
34
|
+
|
35
|
+
Commands for Rails 5
|
31
36
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
*= require active_scaffold
|
37
|
+
bundle install
|
38
|
+
rails g active_scaffold:install
|
39
|
+
rails db:create
|
40
|
+
rails g active_scaffold:resource User name:string
|
41
|
+
rails db:migrate
|
42
|
+
|
39
43
|
|
40
|
-
Run the app and visit localhost:3000/users
|
44
|
+
Run the app and visit localhost:3000/users
|
41
45
|
|
42
46
|
Configuration
|
43
47
|
-------------
|
44
48
|
See Wiki for instructions on customising ActiveScaffold and to find the full API details.
|
45
49
|
|
46
|
-
Compatibility Issues
|
47
|
-
--------------------
|
48
|
-
jQuery 1.9 deprecates some methods that rails-3.2 branch still uses (NB: jQuery 1.9 is supported in 3.3.x, the master branch). You'll therefore need to ensure you use jQuery 1.8. You can do this by fixing version in your Gemfile:
|
49
|
-
|
50
|
-
gem 'jquery-rails', '2.1.4'
|
51
|
-
|
52
|
-
active_scaffold_batch plugin gem (versions 3.2.x) require 3.3.x (master branch). Therefore if you wish to try using active_scaffold_batch with this branch, you'll need to fork the project and edit the runtime dependency in the gemspec file (use at your own discretion)
|
53
|
-
|
54
50
|
Credits
|
55
51
|
-------
|
56
52
|
ActiveScaffold grew out of a project named Ajaxscaffold dating back to 2006. It has had numerous contributors including:
|
@@ -73,3 +69,15 @@ http://github.com/scambra/recordselect/
|
|
73
69
|
License
|
74
70
|
=======
|
75
71
|
Released under the MIT license (included)
|
72
|
+
|
73
|
+
---
|
74
|
+
|
75
|
+
A ruby translation project managed on [Locale](http://www.localeapp.com/) that's open to all!
|
76
|
+
|
77
|
+
## Contributing to active_scaffold
|
78
|
+
|
79
|
+
- Edit the translations directly on the [active_scaffold](http://www.localeapp.com/projects/public?search=active_scaffold) project on Locale.
|
80
|
+
- **That's it!**
|
81
|
+
- The maintainer will then pull translations from the Locale project and push to Github.
|
82
|
+
|
83
|
+
Happy translating!
|
@@ -7,7 +7,7 @@
|
|
7
7
|
require_asset "jquery-ui"
|
8
8
|
elsif Jquery.const_defined? 'Ui'
|
9
9
|
jquery_ui_prefix = Jquery::Ui::Rails::VERSION < '5.0.0' ? 'jquery.ui.' : 'jquery-ui/'
|
10
|
-
jquery_ui_widgets_prefix = Jquery::Ui::Rails::VERSION >= '6.0.0' ? '
|
10
|
+
jquery_ui_widgets_prefix = Jquery::Ui::Rails::VERSION >= '6.0.0' ? 'widgets/' : ''
|
11
11
|
require_asset "#{jquery_ui_prefix}core"
|
12
12
|
require_asset "#{jquery_ui_prefix}effect"
|
13
13
|
require_asset "#{jquery_ui_prefix}effects/effect-highlight" if Jquery::Ui::Rails::VERSION >= '6.0.0'
|
@@ -57,6 +57,9 @@ jQuery(document).ready(function($) {
|
|
57
57
|
jQuery(document).on('ajax:complete', 'form.live', function(event) {
|
58
58
|
ActiveScaffold.focus_first_element_of_form(jQuery(this).closest("form"));
|
59
59
|
});
|
60
|
+
jQuery(document).on('keyup keypress', 'form.search.live input', function(e) {
|
61
|
+
if (e.keyCode == 13) e.preventDefault();
|
62
|
+
});
|
60
63
|
jQuery(document).on('ajax:error', 'form.as_form', function(event, xhr, status, error) {
|
61
64
|
var as_div = jQuery(this).closest("div.active-scaffold");
|
62
65
|
if (as_div.length) {
|
@@ -88,6 +91,7 @@ jQuery(document).ready(function($) {
|
|
88
91
|
if (action_link.position) {
|
89
92
|
action_link.insert(response);
|
90
93
|
if (action_link.hide_target) action_link.target.hide();
|
94
|
+
if (action_link.hide_content) action_link.content.hide();
|
91
95
|
} else {
|
92
96
|
if (action_link.tag.hasClass('toggle')) {
|
93
97
|
action_link.tag.closest('.action_group,.actions').find('.toggle.active').removeClass('active');
|
@@ -143,8 +147,6 @@ jQuery(document).ready(function($) {
|
|
143
147
|
});
|
144
148
|
jQuery(document).on('ajax:before', 'a.as_sort', function(event) {
|
145
149
|
var as_sort = jQuery(this);
|
146
|
-
var history_controller_id = as_sort.data('page-history');
|
147
|
-
if (history_controller_id) addActiveScaffoldPageToHistory(as_sort.attr('href'), history_controller_id);
|
148
150
|
as_sort.closest('th').addClass('loading');
|
149
151
|
return true;
|
150
152
|
});
|
@@ -173,8 +175,6 @@ jQuery(document).ready(function($) {
|
|
173
175
|
});
|
174
176
|
jQuery(document).on('ajax:before', 'a.as_paginate',function(event) {
|
175
177
|
var as_paginate = jQuery(this);
|
176
|
-
var history_controller_id = as_paginate.data('page-history');
|
177
|
-
if (history_controller_id) addActiveScaffoldPageToHistory(as_paginate.attr('href'), history_controller_id);
|
178
178
|
as_paginate.prevAll('img.loading-indicator').css('visibility','visible');
|
179
179
|
return true;
|
180
180
|
});
|
@@ -205,9 +205,10 @@ jQuery(document).ready(function($) {
|
|
205
205
|
|
206
206
|
jQuery(document).on('change', 'input.update_form:not(.recordselect), textarea.update_form, select.update_form, .checkbox-list.update_form input:checkbox', function(event) {
|
207
207
|
var element = jQuery(this);
|
208
|
-
var form_element
|
208
|
+
var form_element;
|
209
209
|
var value, additional_params;
|
210
|
-
if (
|
210
|
+
if (element.is(".checkbox-list input:checkbox")) {
|
211
|
+
form_element = element.closest('.checkbox-list')
|
211
212
|
value = form_element.find(':checked').map(function(item){return $(this).val();}).toArray();
|
212
213
|
additional_params = (element.is(':checked') ? '_added=' : '_removed=') + element.val();
|
213
214
|
} else {
|
@@ -290,34 +291,51 @@ jQuery(document).ready(function($) {
|
|
290
291
|
e.preventDefault();
|
291
292
|
});
|
292
293
|
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
294
|
+
jQuery(document).on('click', 'form.as_form .no-color', function() {
|
295
|
+
var color_field = jQuery(this).parent().next(':input');
|
296
|
+
color_field.attr('type', jQuery(this).prop('checked') ? 'hidden' : 'color');
|
297
|
+
if (jQuery(this).prop('checked')) color_field.val('');
|
298
|
+
});
|
299
|
+
|
300
|
+
jQuery(document).on('turbolinks:before-visit', function() {
|
301
|
+
if (history.state.active_scaffold) {
|
302
|
+
history.replaceState({turbolinks: true, url: document.location.href}, '', document.location.href);
|
303
|
+
}
|
304
|
+
});
|
305
|
+
|
306
|
+
jQuery(window).on('popstate', function(e) {
|
307
|
+
var state = e.originalEvent.state;
|
308
|
+
if (!state || !state.active_scaffold) return;
|
309
|
+
jQuery.ajax({
|
310
|
+
url: document.location.href,
|
311
|
+
data: jQuery.extend({'_popstate': true}, state.active_scaffold),
|
312
|
+
dataType: 'script',
|
313
|
+
cache: true
|
314
|
+
});
|
315
|
+
jQuery('.active-scaffold:first th .as_sort:first').closest('th').addClass('loading');
|
316
|
+
});
|
317
|
+
|
318
|
+
// call setup on document.ready if Turbolinks not enabled
|
319
|
+
if (typeof(Turbolinks) == 'undefined' || !Turbolinks.supported) {
|
320
|
+
ActiveScaffold.setup_history_state();
|
321
|
+
ActiveScaffold.setup(document);
|
322
|
+
}
|
300
323
|
if (ActiveScaffold.config.warn_changes) ActiveScaffold.setup_warn_changes();
|
301
|
-
jQuery(document).on('as:element_updated', function(e) {
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
ActiveScaffold.
|
306
|
-
ActiveScaffold.sliders(e.target);
|
324
|
+
jQuery(document).on('as:element_updated as:element_created', function(e, action_link) {
|
325
|
+
ActiveScaffold.setup(e.target);
|
326
|
+
});
|
327
|
+
jQuery(document).on('as:action_success', 'a.as_action', function(e, action_link) {
|
328
|
+
ActiveScaffold.setup(action_link.adapter);
|
307
329
|
});
|
308
330
|
jQuery(document).on('as:element_updated', '.active-scaffold', function(e) {
|
309
331
|
if (e.target != this) return;
|
310
332
|
var search = $(this).find('form.search');
|
311
333
|
if (search.length) ActiveScaffold.focus_first_element_of_form(search);
|
312
334
|
});
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
ActiveScaffold.auto_paginate(action_link.adapter);
|
318
|
-
ActiveScaffold.draggable_lists('.draggable-lists', action_link.adapter);
|
319
|
-
ActiveScaffold.sliders(action_link.adapter);
|
320
|
-
});
|
335
|
+
});
|
336
|
+
|
337
|
+
jQuery(document).on('turbolinks:load', function($) {
|
338
|
+
ActiveScaffold.setup(document);
|
321
339
|
});
|
322
340
|
|
323
341
|
|
@@ -401,7 +419,7 @@ if (typeof(jQuery.fn.delayedObserver) === 'undefined') {
|
|
401
419
|
var el = $(this);
|
402
420
|
var op = options || {};
|
403
421
|
el.data('oldval', el.val())
|
404
|
-
.data('delay', delay || 0.5)
|
422
|
+
.data('delay', delay === 0 ? delay : (delay || 0.5))
|
405
423
|
.data('condition', op.condition || function() { return ($(this).data('oldval') == $(this).val()); })
|
406
424
|
.data('callback', callback)
|
407
425
|
[(op.event||'keyup')](function(){
|
@@ -428,6 +446,31 @@ if (typeof(jQuery.fn.delayedObserver) === 'undefined') {
|
|
428
446
|
|
429
447
|
var ActiveScaffold = {
|
430
448
|
last_focus: null,
|
449
|
+
setup: function(container) {
|
450
|
+
/* setup some elements on page/form load */
|
451
|
+
ActiveScaffold.load_embedded(container);
|
452
|
+
ActiveScaffold.enable_js_form_buttons(container);
|
453
|
+
ActiveScaffold.live_search(container);
|
454
|
+
ActiveScaffold.auto_paginate(container);
|
455
|
+
ActiveScaffold.draggable_lists('.draggable-lists', container);
|
456
|
+
ActiveScaffold.sliders(container);
|
457
|
+
},
|
458
|
+
setup_history_state: function() {
|
459
|
+
var data = {}, current_search_item = jQuery('.active-scaffold .filtered-message[data-search]');
|
460
|
+
if (current_search_item.length) {
|
461
|
+
// store user settings enabled, update state with current page, search and sorting
|
462
|
+
var sorted_columns = jQuery('th.sorted');
|
463
|
+
data.page = jQuery('.active-scaffold-pagination .current').text();
|
464
|
+
data.search = current_search_item.data('search');
|
465
|
+
if (sorted_columns.length == 1) {
|
466
|
+
data.sort = sorted_columns.attr('class').match(/(.+)-column/)[1];
|
467
|
+
data.sort_direction = sorted_columns.hasClass('asc') ? 'asc' : 'desc';
|
468
|
+
} else { // default search
|
469
|
+
jQuery.extend(data, {sort: '', sort_direction: ''});
|
470
|
+
}
|
471
|
+
}
|
472
|
+
ActiveScaffold.add_to_history(document.location.href, data, true);
|
473
|
+
},
|
431
474
|
live_search: function(element) {
|
432
475
|
jQuery('form.search.live input[type=search]', element).delayedObserver(function() {
|
433
476
|
jQuery(this).parent().trigger("submit");
|
@@ -449,7 +492,7 @@ var ActiveScaffold = {
|
|
449
492
|
sliders: function(element) {
|
450
493
|
jQuery('.as-slider', element).each(function() {
|
451
494
|
var opts = $(this).data('slider');
|
452
|
-
jQuery(this).slider(opts);
|
495
|
+
jQuery(this).slider(opts);
|
453
496
|
if (opts.disabled) jQuery(this).find('.ui-slider-handle').hide();
|
454
497
|
});
|
455
498
|
},
|
@@ -517,6 +560,12 @@ var ActiveScaffold = {
|
|
517
560
|
element.removeClass("desc");
|
518
561
|
});
|
519
562
|
},
|
563
|
+
add_to_history: function(url, data, replace) {
|
564
|
+
if (!history || !history.pushState) return;
|
565
|
+
data = {active_scaffold: data};
|
566
|
+
if (replace) history.replaceState(data, null, url);
|
567
|
+
else history.pushState(data, null, url);
|
568
|
+
},
|
520
569
|
decrement_record_count: function(scaffold) {
|
521
570
|
// decrement the last record count, firsts record count are in nested lists
|
522
571
|
if (typeof(scaffold) == 'string') scaffold = '#' + scaffold;
|
@@ -821,6 +870,10 @@ var ActiveScaffold = {
|
|
821
870
|
|
822
871
|
if (element.length) {
|
823
872
|
if (options.is_subform == false) {
|
873
|
+
if (typeof(options.hidden) != 'undefined') {
|
874
|
+
var li = element.closest('li');
|
875
|
+
li[options.hidden ? 'addClass' : 'removeClass'].call(li, 'hidden')
|
876
|
+
}
|
824
877
|
this.replace(element.closest('dl'), content);
|
825
878
|
} else {
|
826
879
|
this.replace_html(element, content);
|
@@ -1029,23 +1082,15 @@ var ActiveScaffold = {
|
|
1029
1082
|
});
|
1030
1083
|
window.onbeforeunload = function() {
|
1031
1084
|
if (jQuery('form.need-confirm').length) return unload_message;
|
1032
|
-
}
|
1085
|
+
};
|
1086
|
+
jQuery(document).on('turbolinks:before-visit', function(e) {
|
1087
|
+
if (jQuery('form.need-confirm').length) {
|
1088
|
+
if (!window.confirm(unload_message)) e.preventDefault();
|
1089
|
+
}
|
1090
|
+
});
|
1033
1091
|
}
|
1034
1092
|
}
|
1035
1093
|
|
1036
|
-
/*
|
1037
|
-
* DHTML history tie-in
|
1038
|
-
*/
|
1039
|
-
function addActiveScaffoldPageToHistory(url, active_scaffold_id) {
|
1040
|
-
if (typeof dhtmlHistory == 'undefined') return; // it may not be loaded
|
1041
|
-
|
1042
|
-
var array = url.split('?');
|
1043
|
-
var qs = new Querystring(array[1]);
|
1044
|
-
var sort = qs.get('sort')
|
1045
|
-
var dir = qs.get('sort_direction')
|
1046
|
-
var page = qs.get('page')
|
1047
|
-
if (sort || dir || page) dhtmlHistory.add(active_scaffold_id+":"+page+":"+sort+":"+dir, url);
|
1048
|
-
}
|
1049
1094
|
|
1050
1095
|
/*
|
1051
1096
|
* URL modification support. Incomplete functionality.
|
@@ -1126,6 +1171,7 @@ ActiveScaffold.ActionLink.Abstract = Class.extend({
|
|
1126
1171
|
this.url = this.tag.attr('href');
|
1127
1172
|
this.method = this.tag.data('method') || 'get';
|
1128
1173
|
this.target = target;
|
1174
|
+
this.content = target.closest('.active-scaffold').find('.as_content:first');
|
1129
1175
|
this.loading_indicator = loading_indicator;
|
1130
1176
|
this.hide_target = false;
|
1131
1177
|
this.position = this.tag.data('position');
|
@@ -1149,6 +1195,7 @@ ActiveScaffold.ActionLink.Abstract = Class.extend({
|
|
1149
1195
|
ActiveScaffold.remove(this.adapter, function() {
|
1150
1196
|
link.enable();
|
1151
1197
|
if (link.hide_target) link.target.show();
|
1198
|
+
if (link.hide_content) link.content.show();
|
1152
1199
|
if (ActiveScaffold.config.scroll_on_close) ActiveScaffold.scroll_to(link.target.attr('id'), ActiveScaffold.config.scroll_on_close == 'checkInViewport');
|
1153
1200
|
});
|
1154
1201
|
}
|
@@ -1314,6 +1361,11 @@ ActiveScaffold.Actions.Table = ActiveScaffold.Actions.Abstract.extend({
|
|
1314
1361
|
|
1315
1362
|
ActiveScaffold.ActionLink.Table = ActiveScaffold.ActionLink.Abstract.extend({
|
1316
1363
|
insert: function(content) {
|
1364
|
+
if (this.position == 'replace') {
|
1365
|
+
this.position = 'top';
|
1366
|
+
this.hide_content = true;
|
1367
|
+
}
|
1368
|
+
|
1317
1369
|
if (this.position == 'top') {
|
1318
1370
|
this.target.prepend(content);
|
1319
1371
|
this.set_adapter(this.target.children().first());
|
@@ -1,7 +1,31 @@
|
|
1
|
-
|
2
|
-
ActiveScaffold.ActionLink.Abstract.prototype.close
|
3
|
-
|
4
|
-
|
1
|
+
(function() {
|
2
|
+
var action_link_close = ActiveScaffold.ActionLink.Abstract.prototype.close;
|
3
|
+
ActiveScaffold.ActionLink.Abstract.prototype.close = function() {
|
4
|
+
jQuery(this.adapter).find('textarea.mceEditor').each(function(index, elem) {
|
5
|
+
tinyMCE.remove('#' + jQuery(elem).attr('id'));
|
6
|
+
});
|
7
|
+
action_link_close.apply(this);
|
8
|
+
};
|
9
|
+
|
10
|
+
function loadTinyMCE() {
|
11
|
+
var settings = jQuery(this).data('tinymce');
|
12
|
+
if (settings) tinyMCE.settings = settings;
|
13
|
+
tinyMCE.execCommand('mceAddEditor', false, jQuery(this).attr('id'));
|
14
|
+
}
|
15
|
+
|
16
|
+
jQuery(document).on('submit', 'form.as_form', function() {
|
17
|
+
tinymce.triggerSave();
|
18
|
+
jQuery('textarea.mceEditor', this).each(function() { tinymce.remove('#'+jQuery(this).attr('id')); });
|
5
19
|
});
|
6
|
-
|
7
|
-
|
20
|
+
/* for persistent update forms */
|
21
|
+
jQuery(document).on('ajax:complete', 'form.as_form', function() {
|
22
|
+
jQuery('textarea.mceEditor', this).each(loadTinyMCE);
|
23
|
+
});
|
24
|
+
/* enable tinymce textarea after form open */
|
25
|
+
jQuery(document).on('as:action_success', 'a.as_action', function(event) {
|
26
|
+
var action_link = ActiveScaffold.ActionLink.get(jQuery(this));
|
27
|
+
if (action_link && action_link.adapter) {
|
28
|
+
jQuery(action_link.adapter).find('textarea.mceEditor').each(loadTinyMCE);
|
29
|
+
}
|
30
|
+
});
|
31
|
+
})();
|
@@ -1,7 +1,17 @@
|
|
1
1
|
var action_link_close = ActiveScaffold.ActionLink.Abstract.prototype.close;
|
2
2
|
ActiveScaffold.ActionLink.Abstract.prototype.close = function() {
|
3
3
|
this.adapter.select('textarea.mceEditor').each(function(elem) {
|
4
|
-
|
4
|
+
tinymce.remove('#'+elem.id);
|
5
5
|
});
|
6
6
|
action_link_close.apply(this);
|
7
7
|
};
|
8
|
+
document.on('submit', 'form.as_form', function() {
|
9
|
+
tinymce.triggerSave();
|
10
|
+
this.select('textarea.mceEditor').each(function(elem) { tinymce.remove('#'+elem.id); });
|
11
|
+
});
|
12
|
+
/* for persistent update forms */
|
13
|
+
document.on('ajax:complete', 'form.as_form', function(event) {
|
14
|
+
this.select('textarea.mceEditor').each(function(elem) {
|
15
|
+
tinyMCE.execCommand('mceAddEditor', false, elem.id);
|
16
|
+
});
|
17
|
+
});
|