rails_com 1.2.9 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +20 -165
- data/README.md +45 -22
- data/Rakefile +2 -1
- data/app/apis/ali_dns.rb +66 -0
- data/app/assets/images/avatar.png +0 -0
- data/app/channels/com/session_channel.rb +16 -0
- data/app/channels/rails_com/connection.rb +31 -0
- data/app/controllers/admin_controller.rb +4 -0
- data/app/controllers/application_controller.rb +7 -0
- data/app/controllers/base_controller.rb +2 -0
- data/app/controllers/board/base_controller.rb +3 -0
- data/app/controllers/board/home_controller.rb +6 -0
- data/app/controllers/board_controller.rb +3 -0
- data/app/controllers/com/audios_controller.rb +27 -0
- data/app/controllers/com/base_controller.rb +4 -0
- data/app/controllers/com/common_controller.rb +69 -0
- data/app/controllers/com/controller/admin.rb +114 -0
- data/app/controllers/com/controller/err_handler.rb +13 -0
- data/app/controllers/com/direct_uploads_controller.rb +11 -0
- data/app/controllers/com/log_controller.rb +30 -0
- data/app/controllers/com/nodes_controller.rb +22 -0
- data/app/controllers/com/panel/acme_accounts_controller.rb +12 -0
- data/app/controllers/com/panel/acme_identifiers_controller.rb +31 -0
- data/app/controllers/com/panel/acme_orders_controller.rb +64 -0
- data/app/controllers/com/panel/attachments_controller.rb +31 -0
- data/app/controllers/com/panel/base_controller.rb +5 -0
- data/app/controllers/com/panel/blob_defaults_controller.rb +13 -0
- data/app/controllers/com/panel/blobs_controller.rb +52 -0
- data/app/controllers/com/panel/cache_lists_controller.rb +5 -0
- data/app/controllers/com/panel/csps_controller.rb +18 -0
- data/app/controllers/com/panel/errs_controller.rb +18 -0
- data/app/controllers/com/panel/inbound_emails_controller.rb +15 -0
- data/app/controllers/com/panel/infos_controller.rb +9 -0
- data/app/controllers/com/panel/meta_actions_controller.rb +46 -0
- data/app/controllers/com/panel/meta_businesses_controller.rb +21 -0
- data/app/controllers/com/panel/meta_columns_controller.rb +47 -0
- data/app/controllers/com/panel/meta_controllers_controller.rb +46 -0
- data/app/controllers/com/panel/meta_models_controller.rb +32 -0
- data/app/controllers/com/panel/meta_namespaces_controller.rb +29 -0
- data/app/controllers/com/pdfs_controller.rb +37 -0
- data/app/controllers/com/videos_controller.rb +28 -0
- data/app/controllers/home_controller.rb +6 -0
- data/app/controllers/my/base_controller.rb +4 -0
- data/app/controllers/my/home_controller.rb +8 -0
- data/app/controllers/my_controller.rb +3 -0
- data/app/controllers/panel/base_controller.rb +4 -0
- data/app/controllers/panel/home_controller.rb +8 -0
- data/app/controllers/panel_controller.rb +5 -0
- data/app/controllers/rails_com/application.rb +113 -0
- data/app/helpers/rails_com/active_helper.rb +35 -39
- data/app/helpers/rails_com/form_helper.rb +21 -0
- data/app/helpers/rails_com/format_helper.rb +13 -0
- data/app/helpers/rails_com/frame_helper.rb +13 -0
- data/app/helpers/rails_com/kaminari_helper.rb +9 -0
- data/app/helpers/rails_com/time_helper.rb +23 -0
- data/app/helpers/rails_com/url_helper.rb +12 -0
- data/app/jobs/active_storage/identify_job.rb +9 -0
- data/app/jobs/application_job.rb +2 -0
- data/app/jobs/com/acme_job.rb +9 -0
- data/app/jobs/com/err_job.rb +10 -0
- data/app/mailboxes/application_mailbox.rb +2 -0
- data/app/mailers/application_mailer.rb +3 -0
- data/app/models/com/acme_account.rb +5 -0
- data/app/models/com/acme_identifier.rb +5 -0
- data/app/models/com/acme_order.rb +5 -0
- data/app/models/com/application_record.rb +5 -0
- data/app/models/com/blob_default.rb +5 -0
- data/app/models/com/cache_list.rb +5 -0
- data/app/models/com/csp.rb +5 -0
- data/app/models/com/err.rb +5 -0
- data/app/models/com/ext/debug.rb +71 -0
- data/app/models/com/ext/extra.rb +20 -0
- data/app/models/com/ext/parameter.rb +19 -0
- data/app/models/com/ext/sequence.rb +36 -0
- data/app/models/com/ext/state_machine.rb +82 -0
- data/app/models/com/ext/taxon.rb +81 -0
- data/app/models/com/ext/taxon_prepend.rb +21 -0
- data/app/models/com/info.rb +5 -0
- data/app/models/com/meta_action.rb +5 -0
- data/app/models/com/meta_business.rb +5 -0
- data/app/models/com/meta_column.rb +5 -0
- data/app/models/com/meta_controller.rb +5 -0
- data/app/models/com/meta_model.rb +5 -0
- data/app/models/com/meta_namespace.rb +5 -0
- data/app/models/com/meta_operation.rb +5 -0
- data/app/models/com/meta_route.rb +5 -0
- data/app/models/com/model/acme_account.rb +70 -0
- data/app/models/com/model/acme_identifier.rb +132 -0
- data/app/models/com/model/acme_order.rb +139 -0
- data/app/models/com/model/blob_default.rb +36 -0
- data/app/models/com/model/cache_list.rb +15 -0
- data/app/models/com/model/csp.rb +23 -0
- data/app/models/com/model/err.rb +108 -0
- data/app/models/com/model/info.rb +31 -0
- data/app/models/com/model/meta_action.rb +70 -0
- data/app/models/com/model/meta_business.rb +66 -0
- data/app/models/com/model/meta_column.rb +36 -0
- data/app/models/com/model/meta_controller.rb +115 -0
- data/app/models/com/model/meta_model.rb +58 -0
- data/app/models/com/model/meta_namespace.rb +61 -0
- data/app/models/com/model/meta_operation.rb +18 -0
- data/app/models/com/model/meta_permission.rb +10 -0
- data/app/models/com/model/meta_relation.rb +6 -0
- data/app/models/com/model/meta_route.rb +10 -0
- data/app/models/com.rb +11 -0
- data/app/models/concerns/feishu_bot.rb +15 -0
- data/app/models/concerns/log_record_bot.rb +40 -0
- data/app/models/concerns/work_wechat_bot.rb +18 -0
- data/app/stores/com/env_yaml.rb +96 -0
- data/app/stores/com/yaml.rb +89 -0
- data/app/views/admin/_breadcrumb.html.erb +5 -0
- data/app/views/application/_actionsheet.html.erb +20 -0
- data/app/views/application/_alert.html+phone.erb +6 -0
- data/app/views/application/_alert.html.erb +9 -0
- data/app/views/application/_auth_navbar.html.erb +18 -0
- data/app/views/application/_breadcrumb.html.erb +0 -0
- data/app/views/application/_button.html+phone.erb +3 -0
- data/app/views/application/_button.html.erb +3 -0
- data/app/views/application/_edit_form.html+phone.erb +10 -0
- data/app/views/application/_edit_form.html.erb +4 -0
- data/app/views/application/_error_messages.html.erb +11 -0
- data/app/views/application/_filter_form.html+phone.erb +14 -0
- data/app/views/application/_filter_form.html.erb +9 -0
- data/app/views/application/_filter_table.html.erb +0 -0
- data/app/views/application/_footer.html.erb +8 -0
- data/app/views/application/_form.html.erb +4 -0
- data/app/views/application/_index_sortable_table.html.erb +22 -0
- data/app/views/application/_index_table.html+phone.erb +13 -0
- data/app/views/application/_index_table.html.erb +22 -0
- data/app/views/application/_index_tbody.html.erb +3 -0
- data/app/views/application/_index_thead.html.erb +4 -0
- data/app/views/application/_index_tr.html+phone.erb +4 -0
- data/app/views/application/_index_tr.html.erb +16 -0
- data/app/views/application/_index_tree_table.html.erb +18 -0
- data/app/views/application/_locales.html.erb +11 -0
- data/app/views/application/_modal.html+phone.erb +14 -0
- data/app/views/application/_modal.html.erb +14 -0
- data/app/views/application/_nav.html.erb +0 -0
- data/app/views/application/_nav_bar.html+phone.erb +0 -0
- data/app/views/application/_nav_bar.html.erb +25 -0
- data/app/views/application/_nav_brand.html.erb +3 -0
- data/app/views/application/_nav_with_login.html.erb +0 -0
- data/app/views/application/_nav_without_login.html.erb +0 -0
- data/app/views/application/_new_form.html+phone.erb +10 -0
- data/app/views/application/_new_form.html.erb +4 -0
- data/app/views/application/_pagination.json.jbuilder +7 -0
- data/app/views/application/_show.html+phone.erb +20 -0
- data/app/views/application/_show.html.erb +13 -0
- data/app/views/application/_show_table.html.erb +0 -0
- data/app/views/application/_tab_bar.html.erb +3 -0
- data/app/views/application/_tab_bar_item.erb +4 -0
- data/app/views/application/alert.turbo_stream.erb +1 -0
- data/app/views/application/controller_not_found.json.jbuilder +4 -0
- data/app/views/application/create.json.jbuilder +1 -0
- data/app/views/application/create.turbo_stream.erb +3 -0
- data/app/views/application/destroy.json.jbuilder +0 -0
- data/app/views/application/destroy.turbo_stream.erb +3 -0
- data/app/views/application/edit.html.erb +7 -0
- data/app/views/application/edit.json.jbuilder +2 -0
- data/app/views/{shared/_error_messages.html.erb → application/err.turbo_stream.erb} +4 -4
- data/app/views/application/index.html.erb +5 -0
- data/app/views/application/index.json.jbuilder +1 -0
- data/app/views/application/move_higher.turbo_stream.erb +3 -0
- data/app/views/application/move_lower.turbo_stream.erb +3 -0
- data/app/views/application/new.html.erb +7 -0
- data/app/views/application/new.json.jbuilder +2 -0
- data/app/views/application/show.html.erb +3 -0
- data/app/views/application/show.json.jbuilder +1 -0
- data/app/views/application/update.json.jbuilder +1 -0
- data/app/views/application/update.turbo_stream.erb +3 -0
- data/app/views/board/home/index.html.erb +0 -0
- data/app/views/com/attachments/_file_upload.html.erb +19 -0
- data/app/views/com/attachments/_image_preview.html.erb +9 -0
- data/app/views/com/attachments/_list.html.erb +31 -0
- data/app/views/com/attachments/_list_edit.html.erb +28 -0
- data/app/views/com/attachments/_list_field.html.erb +6 -0
- data/app/views/com/attachments/_list_many.html.erb +17 -0
- data/app/views/com/attachments/_video_item.html.erb +6 -0
- data/app/views/com/audios/show.html.erb +3 -0
- data/app/views/com/common/deploy.html.erb +0 -0
- data/app/views/com/common/info.json.jbuilder +1 -0
- data/app/views/com/extra/_extra_form.html.erb +5 -0
- data/app/views/com/extra/_item.html.erb +15 -0
- data/app/views/com/nodes/_children_options.html.erb +4 -0
- data/app/views/com/nodes/_children_select.html.erb +15 -0
- data/app/views/com/nodes/_outer_children_options.html.erb +4 -0
- data/app/views/com/nodes/_outer_options.html+phone.erb +2 -0
- data/app/views/com/nodes/_outer_options.html.erb +4 -0
- data/app/views/com/nodes/_outer_select.html.erb +12 -0
- data/app/views/com/nodes/_self_and_siblings_options.html.erb +4 -0
- data/app/views/com/nodes/_siblings_options.html.erb +4 -0
- data/app/views/com/nodes/_siblings_select.html.erb +14 -0
- data/app/views/com/nodes/children.turbo_stream.erb +3 -0
- data/app/views/com/nodes/outer.turbo_stream.erb +3 -0
- data/app/views/com/panel/acme_accounts/_filter_form.html.erb +9 -0
- data/app/views/com/panel/acme_accounts/_index_tbody.html.erb +7 -0
- data/app/views/com/panel/acme_accounts/_index_thead.html.erb +4 -0
- data/app/views/com/panel/acme_accounts/_index_tr.html.erb +16 -0
- data/app/views/com/panel/acme_identifiers/_breadcrumb.html.erb +7 -0
- data/app/views/com/panel/acme_identifiers/_button.html.erb +0 -0
- data/app/views/com/panel/acme_identifiers/_filter_form.html.erb +9 -0
- data/app/views/com/panel/acme_identifiers/_form.html.erb +2 -0
- data/app/views/com/panel/acme_identifiers/_index_tbody.html.erb +16 -0
- data/app/views/com/panel/acme_identifiers/_index_thead.html.erb +17 -0
- data/app/views/com/panel/acme_identifiers/_show_table.html.erb +24 -0
- data/app/views/com/panel/acme_identifiers/index.html.erb +3 -0
- data/app/views/com/panel/acme_orders/_breadcrumb.html.erb +6 -0
- data/app/views/com/panel/acme_orders/_filter_form.html.erb +9 -0
- data/app/views/com/panel/acme_orders/_form.html.erb +4 -0
- data/app/views/com/panel/acme_orders/_index_tbody.html.erb +11 -0
- data/app/views/com/panel/acme_orders/_index_thead.html.erb +8 -0
- data/app/views/com/panel/acme_orders/_index_tr.html.erb +25 -0
- data/app/views/com/panel/acme_orders/_item_form.html.erb +14 -0
- data/app/views/com/panel/acme_orders/_new_form.html.erb +7 -0
- data/app/views/com/panel/acme_orders/_show_table.html.erb +4 -0
- data/app/views/com/panel/attachments/_breadcrumb.html.erb +10 -0
- data/app/views/com/panel/attachments/_button.html.erb +0 -0
- data/app/views/com/panel/attachments/_filter_form.html.erb +13 -0
- data/app/views/com/panel/attachments/_index_tbody.html.erb +6 -0
- data/app/views/com/panel/attachments/_index_thead.html.erb +7 -0
- data/app/views/com/panel/attachments/_index_tr.html.erb +10 -0
- data/app/views/com/panel/attachments/index.html.erb +5 -0
- data/app/views/com/panel/base/_index_meta_action.html.erb +14 -0
- data/app/views/com/panel/base/_nav.html.erb +3 -0
- data/app/views/com/panel/blob_defaults/_add_form.html.erb +7 -0
- data/app/views/com/panel/blob_defaults/_filter_form.html.erb +10 -0
- data/app/views/com/panel/blob_defaults/_form.html.erb +4 -0
- data/app/views/com/panel/blob_defaults/_index_tbody.html.erb +7 -0
- data/app/views/com/panel/blob_defaults/_index_thead.html.erb +5 -0
- data/app/views/com/panel/blob_defaults/_index_tr.html.erb +13 -0
- data/app/views/com/panel/blob_defaults/add.turbo_stream.erb +1 -0
- data/app/views/com/panel/blobs/_breadcrumb.html.erb +6 -0
- data/app/views/com/panel/blobs/_filter_form.html.erb +13 -0
- data/app/views/com/panel/blobs/_index_tbody.html.erb +22 -0
- data/app/views/com/panel/blobs/_index_thead.html.erb +12 -0
- data/app/views/com/panel/blobs/_index_tr.html.erb +13 -0
- data/app/views/com/panel/blobs/_new_form.html.erb +5 -0
- data/app/views/com/panel/blobs/index.html.erb +5 -0
- data/app/views/com/panel/cache_lists/_index_tbody.html.erb +4 -0
- data/app/views/com/panel/cache_lists/_index_thead.html.erb +5 -0
- data/app/views/com/panel/cache_lists/_show_table.html.erb +8 -0
- data/app/views/com/panel/csps/_button.html.erb +0 -0
- data/app/views/com/panel/csps/_filter_form.html.erb +8 -0
- data/app/views/com/panel/csps/_index_tbody.html.erb +11 -0
- data/app/views/com/panel/csps/_index_thead.html.erb +12 -0
- data/app/views/com/panel/csps/_index_tr.html.erb +13 -0
- data/app/views/com/panel/csps/_show/_breadcrumb.html.erb +6 -0
- data/app/views/com/panel/csps/_show_table.html.erb +48 -0
- data/app/views/com/panel/csps/show.html.erb +7 -0
- data/app/views/com/panel/errs/_button.html.erb +0 -0
- data/app/views/com/panel/errs/_filter_form.html.erb +11 -0
- data/app/views/com/panel/errs/_index_tbody.html.erb +16 -0
- data/app/views/com/panel/errs/_index_thead.html.erb +11 -0
- data/app/views/com/panel/errs/_index_tr.html.erb +13 -0
- data/app/views/com/panel/errs/_show/_breadcrumb.html.erb +6 -0
- data/app/views/com/panel/errs/_show_table.html.erb +44 -0
- data/app/views/com/panel/errs/show.html.erb +7 -0
- data/app/views/com/panel/inbound_emails/_button.html.erb +0 -0
- data/app/views/com/panel/inbound_emails/_filter_form.html.erb +9 -0
- data/app/views/com/panel/inbound_emails/_index_tbody.html.erb +5 -0
- data/app/views/com/panel/inbound_emails/_index_thead.html.erb +6 -0
- data/app/views/com/panel/inbound_emails/_show_table.html.erb +10 -0
- data/app/views/com/panel/inbound_emails/index.html.erb +5 -0
- data/app/views/com/panel/infos/_filter_form.html.erb +9 -0
- data/app/views/com/panel/infos/_index_tbody.html.erb +4 -0
- data/app/views/com/panel/infos/_index_thead.html.erb +5 -0
- data/app/views/com/panel/infos/index.json.jbuilder +1 -0
- data/app/views/com/panel/meta_actions/_breadcrumb.html.erb +6 -0
- data/app/views/com/panel/meta_actions/_form.html.erb +1 -0
- data/app/views/com/panel/meta_actions/_index_tbody.html.erb +4 -0
- data/app/views/com/panel/meta_actions/_index_thead.html.erb +5 -0
- data/app/views/com/panel/meta_actions/_roles.html.erb +9 -0
- data/app/views/com/panel/meta_actions/index.html.erb +3 -0
- data/app/views/com/panel/meta_actions/roles.js.erb +6 -0
- data/app/views/com/panel/meta_actions/update.turbo_stream.erb +1 -0
- data/app/views/com/panel/meta_businesses/_breadcrumb.html.erb +10 -0
- data/app/views/com/panel/meta_businesses/_button.html.erb +3 -0
- data/app/views/com/panel/meta_businesses/_form.html.erb +3 -0
- data/app/views/com/panel/meta_businesses/_index_tbody.html.erb +12 -0
- data/app/views/com/panel/meta_businesses/_index_thead.html.erb +2 -0
- data/app/views/com/panel/meta_businesses/_index_tr.html.erb +16 -0
- data/app/views/com/panel/meta_businesses/_show_table.html.erb +8 -0
- data/app/views/com/panel/meta_businesses/sync.turbo_stream.erb +3 -0
- data/app/views/com/panel/meta_columns/_breadcrumb.html.erb +6 -0
- data/app/views/com/panel/meta_columns/_form.html.erb +6 -0
- data/app/views/com/panel/meta_columns/_index_tbody.html.erb +20 -0
- data/app/views/com/panel/meta_columns/_index_thead.html.erb +12 -0
- data/app/views/com/panel/meta_columns/_index_tr.html.erb +22 -0
- data/app/views/com/panel/meta_columns/_show_table.html.erb +20 -0
- data/app/views/com/panel/meta_columns/sync.turbo_stream.erb +3 -0
- data/app/views/com/panel/meta_columns/test.turbo_stream.erb +3 -0
- data/app/views/com/panel/meta_controllers/_button.html.erb +3 -0
- data/app/views/com/panel/meta_controllers/_filter_form.html.erb +8 -0
- data/app/views/com/panel/meta_controllers/_filter_tablex.html.erb +8 -0
- data/app/views/com/panel/meta_controllers/_form.html.erb +2 -0
- data/app/views/com/panel/meta_controllers/_index_meta_business.html.erb +10 -0
- data/app/views/com/panel/meta_controllers/_index_meta_controller.html.erb +15 -0
- data/app/views/com/panel/meta_controllers/_index_meta_namespace.html.erb +12 -0
- data/app/views/com/panel/meta_controllers/_index_tbody.html.erb +28 -0
- data/app/views/com/panel/meta_controllers/_index_thead.html.erb +2 -0
- data/app/views/com/panel/meta_controllers/index.html.erb +3 -0
- data/app/views/com/panel/meta_controllers/meta_actions.turbo_stream.erb +1 -0
- data/app/views/com/panel/meta_controllers/meta_controllers.turbo_stream.erb +1 -0
- data/app/views/com/panel/meta_controllers/meta_namespaces.turbo_stream.erb +1 -0
- data/app/views/com/panel/meta_controllers/sync.turbo_stream.erb +3 -0
- data/app/views/com/panel/meta_models/_button.html.erb +6 -0
- data/app/views/com/panel/meta_models/_form.html.erb +4 -0
- data/app/views/com/panel/meta_models/_index_tbody.html.erb +3 -0
- data/app/views/com/panel/meta_models/_index_thead.html.erb +4 -0
- data/app/views/com/panel/meta_models/_index_tr.html.erb +19 -0
- data/app/views/com/panel/meta_models/_show_table.html.erb +12 -0
- data/app/views/com/panel/meta_models/sync.turbo_stream.erb +3 -0
- data/app/views/com/panel/meta_namespaces/_breadcrumb.html.erb +10 -0
- data/app/views/com/panel/meta_namespaces/_button.html.erb +3 -0
- data/app/views/com/panel/meta_namespaces/_form.html.erb +5 -0
- data/app/views/com/panel/meta_namespaces/_index_tbody.html.erb +20 -0
- data/app/views/com/panel/meta_namespaces/_index_thead.html.erb +6 -0
- data/app/views/com/panel/meta_namespaces/_show_table.html.erb +20 -0
- data/app/views/com/panel/meta_namespaces/sync.turbo_stream.erb +3 -0
- data/app/views/com/videos/show.html.erb +9 -0
- data/app/{assets/javascripts/controllers/active_storage_ext/videos/show.ready.js → views/com/videos/show.js} +0 -0
- data/app/views/default_form/_date_field.html.erb +1 -0
- data/app/views/default_form/_datetime_field.html.erb +1 -0
- data/app/views/default_form/_number_field.html.erb +1 -0
- data/app/views/default_form/_outer_select.html.erb +14 -0
- data/app/views/default_form/_select_enum.html.erb +1 -0
- data/app/views/default_form/_text_field.html.erb +1 -0
- data/app/views/default_form/_time_field.html.erb +1 -0
- data/app/views/extra_form/_number_field.html.erb +1 -0
- data/app/views/extra_form/_outer_select.html.erb +14 -0
- data/app/views/extra_form/_text_field.html.erb +1 -0
- data/app/views/home/index.html.erb +0 -0
- data/app/views/kaminari/com/_first_page.html.erb +3 -0
- data/app/views/kaminari/{_gap.html.erb → com/_gap.html.erb} +1 -1
- data/app/views/kaminari/com/_last_page.html.erb +3 -0
- data/app/views/kaminari/com/_next_page.html.erb +3 -0
- data/app/views/kaminari/com/_page.html.erb +1 -0
- data/app/views/kaminari/{_paginator.html.erb → com/_paginator.html+phone.erb} +3 -3
- data/app/views/kaminari/com/_paginator.html.erb +17 -0
- data/app/views/kaminari/com/_prev_page.html.erb +3 -0
- data/app/views/layouts/_admin_head.html.erb +22 -0
- data/app/views/layouts/_application_head.html.erb +26 -0
- data/app/views/layouts/_phone_head.html.erb +28 -0
- data/app/views/layouts/admin.html.erb +12 -0
- data/app/views/layouts/application.html+phone.erb +12 -0
- data/app/views/layouts/application.html.erb +11 -0
- data/app/views/layouts/application.json.jbuilder +2 -0
- data/app/views/layouts/board.html+phone.erb +10 -0
- data/app/views/layouts/board.html.erb +12 -0
- data/app/views/layouts/mailer.html.erb +14 -0
- data/app/views/layouts/mailer.text.erb +1 -0
- data/app/views/layouts/my.html+phone.erb +11 -0
- data/app/views/layouts/my.html.erb +13 -0
- data/app/views/layouts/panel.html.erb +12 -0
- data/app/views/my/home/index.html.erb +0 -0
- data/app/views/panel/_breadcrumb.html.erb +0 -0
- data/app/views/panel/_com_nav.html.erb +19 -0
- data/app/views/panel/_nav.html.erb +6 -0
- data/app/views/panel/_nav_without_login.html.erb +3 -0
- data/app/views/panel/destroy.turbo_stream.erb +1 -0
- data/app/views/panel/home/index.html.erb +0 -0
- data/config/default_form.yml +74 -0
- data/config/locales/en.controller.yml +46 -0
- data/config/locales/en.yml +2 -2
- data/config/locales/zh.attributes.yml +9 -0
- data/config/locales/zh.controller.yml +65 -0
- data/config/locales/zh.enum.yml +11 -0
- data/config/locales/zh.helper.yml +10 -0
- data/config/locales/zh.rb +34 -0
- data/config/locales/zh.yml +66 -10
- data/config/routes.rb +140 -8
- data/lib/active_storage/service/disc_service.rb +41 -0
- data/lib/default_form/active_record/extend.rb +38 -0
- data/lib/default_form/builder/default.rb +88 -0
- data/lib/default_form/builder/helper.rb +212 -0
- data/lib/default_form/builder/wrap.rb +58 -0
- data/lib/default_form/config.rb +50 -0
- data/lib/default_form/controller_helper.rb +14 -0
- data/lib/default_form/form_builder.rb +61 -0
- data/lib/default_form/override/action_view/helpers/tags/collection_check_boxes.rb +23 -0
- data/lib/default_form/override/action_view/helpers/tags/collection_radio_buttons.rb +23 -0
- data/lib/default_form/view_helper.rb +39 -0
- data/lib/generators/jbuilder_generator.rb +22 -0
- data/lib/generators/scaffold_generator.rb +27 -0
- data/lib/generators/templates/jbuilder/_show.json.jbuilder.tt +1 -0
- data/lib/generators/templates/jbuilder/index.json.jbuilder.tt +1 -0
- data/lib/generators/templates/jbuilder/partial.json.jbuilder.tt +17 -0
- data/lib/generators/templates/scaffold_erb/_edit_form.html.erb.tt +4 -0
- data/lib/generators/templates/scaffold_erb/_filter_form.html.erb.tt +9 -0
- data/lib/generators/templates/scaffold_erb/_form.html.erb.tt +4 -0
- data/lib/generators/templates/scaffold_erb/_index_tbody.html.erb.tt +3 -0
- data/lib/generators/templates/scaffold_erb/_index_thead.html.erb.tt +4 -0
- data/lib/generators/templates/scaffold_erb/_new_form.html.erb.tt +4 -0
- data/lib/generators/templates/scaffold_erb/_show_table.html.erb.tt +6 -0
- data/lib/generators/templates/scaffold_erb/index.html.erb.tt +5 -0
- data/lib/rails_com/action_controller/errors.rb +9 -2
- data/lib/rails_com/action_controller/extend.rb +20 -0
- data/lib/rails_com/action_controller/include.rb +31 -0
- data/lib/rails_com/action_controller/parameters.rb +3 -0
- data/lib/rails_com/action_controller/public_exceptions.rb +31 -0
- data/lib/rails_com/action_controller/subscriber.rb +32 -0
- data/lib/rails_com/action_controller.rb +9 -3
- data/lib/rails_com/action_mailbox/inbound_email.rb +23 -0
- data/lib/rails_com/action_mailbox/mail_ext.rb +34 -0
- data/lib/rails_com/action_mailbox.rb +4 -0
- data/lib/rails_com/action_text/rich_text.rb +16 -0
- data/lib/rails_com/action_text.rb +3 -0
- data/lib/rails_com/action_view/partial_renderer.rb +22 -0
- data/lib/rails_com/action_view/template_renderer.rb +27 -28
- data/lib/rails_com/action_view/translation_helper.rb +7 -4
- data/lib/rails_com/action_view.rb +5 -2
- data/lib/rails_com/active_storage/activestorage_attached.rb +7 -4
- data/lib/rails_com/active_storage/attached_macros.rb +17 -5
- data/lib/rails_com/active_storage/attachment_prepend.rb +14 -0
- data/lib/rails_com/active_storage/attachment_transfer.rb +12 -5
- data/lib/rails_com/active_storage/video_response.rb +5 -1
- data/lib/rails_com/active_storage.rb +9 -4
- data/lib/rails_com/all.rb +23 -0
- data/lib/rails_com/api.rb +24 -0
- data/lib/rails_com/config.rb +22 -14
- data/lib/rails_com/engine.rb +41 -25
- data/lib/rails_com/utils/hex_helper.rb +12 -0
- data/lib/rails_com/utils/jobber.rb +3 -1
- data/lib/rails_com/utils/num_helper.rb +7 -5
- data/lib/rails_com/utils/qrcode_helper.rb +35 -0
- data/lib/rails_com/utils/setting.rb +5 -5
- data/lib/rails_com/utils/time_helper.rb +2 -0
- data/lib/rails_com/utils/uid_helper.rb +18 -15
- data/lib/rails_com.rb +25 -17
- data/lib/templates/rails/scaffold_controller/api_controller.rb.tt +20 -19
- data/lib/templates/rails/scaffold_controller/controller.rb.tt +1 -52
- data/lib/templates/test_unit/scaffold/functional_test.rb.tt +64 -0
- metadata +511 -120
- data/app/assets/config/rails_com_manifest.js +0 -6
- data/app/assets/images/image-square.png +0 -0
- data/app/assets/images/verification.jpg +0 -0
- data/app/assets/javascripts/rails_com/application.js +0 -29
- data/app/assets/javascripts/rails_com/attachment.js +0 -421
- data/app/assets/javascripts/rails_com/checkbox.js +0 -59
- data/app/assets/javascripts/rails_com/fetch_xhr_script.js +0 -31
- data/app/assets/javascripts/rails_com/footer.js +0 -9
- data/app/assets/javascripts/rails_com/picture.js +0 -18
- data/app/assets/javascripts/rails_com/sidebar.js +0 -40
- data/app/assets/javascripts/rails_com/time_local.js +0 -9
- data/app/assets/stylesheets/controllers/active_storage_ext/videos/show.css +0 -7
- data/app/assets/stylesheets/controllers/active_storage_ext/videos/transfer.css +0 -4
- data/app/assets/stylesheets/rails_com/application.css +0 -3
- data/app/controllers/active_storage_ext/admin/attachments_controller.rb +0 -13
- data/app/controllers/active_storage_ext/admin/base_controller.rb +0 -4
- data/app/controllers/active_storage_ext/admin/blob_defaults_controller.rb +0 -55
- data/app/controllers/active_storage_ext/admin/blobs_controller.rb +0 -48
- data/app/controllers/active_storage_ext/audios_controller.rb +0 -24
- data/app/controllers/active_storage_ext/videos_controller.rb +0 -25
- data/app/controllers/concerns/rails_common_api.rb +0 -60
- data/app/controllers/concerns/rails_common_controller.rb +0 -46
- data/app/controllers/concerns/rails_common_xhr.rb +0 -15
- data/app/helpers/rails_com/assets_helper.rb +0 -109
- data/app/models/active_storage/blob_default.rb +0 -24
- data/app/models/concerns/state_machine.rb +0 -79
- data/app/views/active_storage_ext/admin/attachments/destroy.js.erb +0 -1
- data/app/views/active_storage_ext/admin/blob_defaults/_form.html.erb +0 -8
- data/app/views/active_storage_ext/admin/blob_defaults/_search_form.html.erb +0 -7
- data/app/views/active_storage_ext/admin/blob_defaults/edit.html.erb +0 -9
- data/app/views/active_storage_ext/admin/blob_defaults/index.html.erb +0 -49
- data/app/views/active_storage_ext/admin/blob_defaults/new.html.erb +0 -9
- data/app/views/active_storage_ext/admin/blob_defaults/show.html.erb +0 -10
- data/app/views/active_storage_ext/admin/blobs/_search_form.html.erb +0 -9
- data/app/views/active_storage_ext/admin/blobs/destroy.js.erb +0 -1
- data/app/views/active_storage_ext/admin/blobs/index.html.erb +0 -51
- data/app/views/active_storage_ext/admin/blobs/new.html.erb +0 -13
- data/app/views/active_storage_ext/admin/blobs/show.html.erb +0 -10
- data/app/views/active_storage_ext/attachments/_default_image_item.html.erb +0 -14
- data/app/views/active_storage_ext/attachments/_image_item.html.erb +0 -6
- data/app/views/active_storage_ext/attachments/_list.html.erb +0 -25
- data/app/views/active_storage_ext/attachments/_list_edit.html.erb +0 -27
- data/app/views/active_storage_ext/attachments/_list_field.html.erb +0 -6
- data/app/views/active_storage_ext/attachments/_video_item.html.erb +0 -6
- data/app/views/active_storage_ext/audios/show.html.erb +0 -5
- data/app/views/active_storage_ext/videos/show.html.erb +0 -6
- data/app/views/kaminari/_first_page.html.erb +0 -3
- data/app/views/kaminari/_last_page.html.erb +0 -3
- data/app/views/kaminari/_next_page.html.erb +0 -3
- data/app/views/kaminari/_page.html.erb +0 -1
- data/app/views/kaminari/_prev_page.html.erb +0 -3
- data/app/views/layouts/rails_com/application.html.erb +0 -17
- data/app/views/shared/_alert.html.erb +0 -8
- data/app/views/shared/_locales.html.erb +0 -8
- data/config/locales/zh.datetime.yml +0 -44
- data/db/migrate/20181012025833_rails_com_init.rb +0 -14
- data/lib/active_record/type/i18n.rb +0 -19
- data/lib/generators/doc_model_generator.rb +0 -37
- data/lib/generators/doc_models_generator.rb +0 -11
- data/lib/generators/templates/model.erb +0 -6
- data/lib/mina/git2.rb +0 -59
- data/lib/mina/puma.rb +0 -64
- data/lib/mina/sidekiq.rb +0 -67
- data/lib/mina/whenever.rb +0 -27
- data/lib/rails_com/action_controller/controller_helper.rb +0 -29
- data/lib/rails_com/active_record/model_helper.rb +0 -107
- data/lib/rails_com/active_record/persistence_sneakily.rb +0 -11
- data/lib/rails_com/active_record/translation.rb +0 -66
- data/lib/rails_com/active_record.rb +0 -3
- data/lib/rails_com/active_storage/blob_ext.rb +0 -34
- data/lib/rails_com/core/array.rb +0 -72
- data/lib/rails_com/core/date.rb +0 -25
- data/lib/rails_com/core/hash.rb +0 -38
- data/lib/rails_com/core/nil.rb +0 -7
- data/lib/rails_com/core/numeric.rb +0 -11
- data/lib/rails_com/core/string.rb +0 -15
- data/lib/rails_com/core.rb +0 -7
- data/lib/rails_com/generators/named_base.rb +0 -10
- data/lib/rails_com/generators/scaffold_generator.rb +0 -15
- data/lib/rails_com/meta/controllers.rb +0 -8
- data/lib/rails_com/meta/models.rb +0 -21
- data/lib/rails_com/meta/routes.rb +0 -53
- data/lib/rails_com/sprockets/non_digest_assets.rb +0 -16
- data/lib/rails_com/utils/babel.rb +0 -38
- data/lib/rails_com/version.rb +0 -3
- data/lib/tasks/rails_com_tasks.rake +0 -4
- data/lib/templates/erb/scaffold/_filter.html.erb.tt +0 -10
- data/lib/templates/erb/scaffold/_form.html.erb.tt +0 -12
- data/lib/templates/erb/scaffold/edit.html.erb.tt +0 -9
- data/lib/templates/erb/scaffold/index.html.erb.tt +0 -45
- data/lib/templates/erb/scaffold/new.html.erb.tt +0 -9
- data/lib/templates/erb/scaffold/show.html.erb.tt +0 -16
@@ -0,0 +1,113 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsCom::Application
|
4
|
+
LOCALE_MAP = {
|
5
|
+
'zh-CN' => 'zh',
|
6
|
+
'zh-TW' => 'zh',
|
7
|
+
'en-US' => 'en'
|
8
|
+
}.freeze
|
9
|
+
extend ActiveSupport::Concern
|
10
|
+
|
11
|
+
included do
|
12
|
+
before_action :set_locale, :set_timezone, :set_variant
|
13
|
+
helper_method :current_title, :default_params
|
14
|
+
end
|
15
|
+
|
16
|
+
def current_title
|
17
|
+
t('.title', default: :site_name)
|
18
|
+
end
|
19
|
+
|
20
|
+
def set_variant
|
21
|
+
variant = []
|
22
|
+
if request.user_agent =~ /iPad|iPhone|iPod|Android/
|
23
|
+
variant << :phone
|
24
|
+
end
|
25
|
+
|
26
|
+
if request.user_agent =~ /MicroMessenger/
|
27
|
+
variant << :wechat
|
28
|
+
end
|
29
|
+
|
30
|
+
request.variant = variant
|
31
|
+
logger.debug "\e[35m Variant: #{request.variant} \e[0m"
|
32
|
+
end
|
33
|
+
|
34
|
+
def set_timezone
|
35
|
+
if session[:zone]
|
36
|
+
Time.zone = session[:zone]
|
37
|
+
elsif request.headers['HTTP_UTC_OFFSET'].present?
|
38
|
+
zone = -(request.headers['HTTP_UTC_OFFSET'].to_i / 60)
|
39
|
+
Time.zone = zone
|
40
|
+
session[:zone] = zone
|
41
|
+
end
|
42
|
+
|
43
|
+
if defined?(current_user) && current_user&.timezone.blank?
|
44
|
+
current_user&.update timezone: Time.zone.name
|
45
|
+
end
|
46
|
+
logger.debug "\e[35m Zone: #{Time.zone} \e[0m"
|
47
|
+
end
|
48
|
+
|
49
|
+
# Accept-Language: "en,zh-CN;q=0.9,zh;q=0.8,en-US;q=0.7,zh-TW;q=0.6"
|
50
|
+
def set_locale
|
51
|
+
request_locales = request.headers['Accept-Language'].to_s.split(',')
|
52
|
+
request_locales = request_locales.map do |i|
|
53
|
+
l, q = i.split(';')
|
54
|
+
q ||= '1'
|
55
|
+
[l, q.sub('q=', '').to_f]
|
56
|
+
end
|
57
|
+
request_locales.sort_by! { |i| i[-1] }
|
58
|
+
request_locales.map! do |i|
|
59
|
+
r = LOCALE_MAP[i[0]]
|
60
|
+
r ? r : i[0]
|
61
|
+
end.uniq!
|
62
|
+
locales = I18n.available_locales.map(&:to_s) & request_locales
|
63
|
+
|
64
|
+
if locales.include?(I18n.default_locale.to_s)
|
65
|
+
q_locale = I18n.default_locale
|
66
|
+
else
|
67
|
+
q_locale = locales[-1]
|
68
|
+
end
|
69
|
+
|
70
|
+
locales = [params[:locale].presence, session[:locale].presence, q_locale].compact
|
71
|
+
locale = locales[0]
|
72
|
+
|
73
|
+
I18n.locale = locale
|
74
|
+
session[:locale] = locale
|
75
|
+
|
76
|
+
if defined?(current_user) && current_user&.locale.to_s != I18n.locale.to_s
|
77
|
+
current_user&.update locale: I18n.locale
|
78
|
+
end
|
79
|
+
|
80
|
+
logger.debug "\e[35m Locale: #{I18n.locale} \e[0m"
|
81
|
+
end
|
82
|
+
|
83
|
+
def set_country
|
84
|
+
if params[:country]
|
85
|
+
session[:country] = params[:country]
|
86
|
+
elsif current_user
|
87
|
+
session[:country] = current_user.country
|
88
|
+
end
|
89
|
+
|
90
|
+
logger.debug "\e[35m Country: #{session[:country]} \e[0m"
|
91
|
+
end
|
92
|
+
|
93
|
+
def set_flash
|
94
|
+
if response.successful?
|
95
|
+
flash[:notice] = '操作成功!'
|
96
|
+
elsif response.client_error?
|
97
|
+
flash[:alert] = '请检查参数!'
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def default_params
|
102
|
+
{}
|
103
|
+
end
|
104
|
+
|
105
|
+
def default_form_params
|
106
|
+
{}
|
107
|
+
end
|
108
|
+
|
109
|
+
def json_format?
|
110
|
+
self.request.format.json?
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
@@ -1,18 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
module RailsCom::ActiveHelper
|
3
3
|
|
4
|
-
#
|
5
|
-
# return by assert return
|
6
|
-
# active_assert('notice' == 'notice', expected: 'ui info message', unexpected: 'ui negative message')
|
7
|
-
# #=> 'ui info message'
|
8
|
-
def active_assert(assert, expected: 'item active', unexpected: 'item')
|
9
|
-
if assert
|
10
|
-
expected
|
11
|
-
else
|
12
|
-
unexpected
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
4
|
# return value by each keys which is true
|
17
5
|
# active_asserts(active: true, item: false)
|
18
6
|
# #=> 'active'
|
@@ -37,65 +25,73 @@ module RailsCom::ActiveHelper
|
|
37
25
|
# active_helper 'work/employee': ['index', 'show']
|
38
26
|
# params:
|
39
27
|
# active_helper controller: 'users', action: 'show', id: 371
|
40
|
-
def active_helper(paths: [], controllers: [], modules: [],
|
28
|
+
def active_helper(paths: [], controllers: [], modules: [], active: nil, item: nil, **options)
|
41
29
|
check_parameters = options.delete(:check_parameters)
|
42
30
|
|
43
31
|
if paths.present?
|
44
32
|
Array(paths).each do |path|
|
45
|
-
return
|
33
|
+
return active if current_page?(path, check_parameters: check_parameters)
|
46
34
|
end
|
47
35
|
end
|
48
36
|
|
49
37
|
if controllers.present?
|
50
|
-
return
|
38
|
+
return active if (Array(controllers) & [controller_name, controller_path]).size > 0
|
51
39
|
end
|
52
40
|
|
53
41
|
if modules.present?
|
54
42
|
this_modules = controller_path.split('/')
|
55
43
|
this_modules.pop
|
56
|
-
_this_modules =
|
57
|
-
|
44
|
+
_this_modules = []
|
45
|
+
while this_modules.size >= 1
|
46
|
+
this_modules.each.with_index do |_, index|
|
47
|
+
_this_modules << this_modules[0, index + 1].join('/')
|
48
|
+
end
|
49
|
+
this_modules.shift
|
50
|
+
end
|
51
|
+
return active if (Array(modules) & _this_modules).size > 0
|
58
52
|
end
|
59
53
|
|
60
|
-
return
|
61
|
-
|
62
|
-
options.select { |k, _| [controller_name, controller_path].include?(k.to_s) }.each do |_, value|
|
63
|
-
return active_class if Array(value).include?(action_name)
|
64
|
-
end
|
54
|
+
return active if options.present? && current_page?(options)
|
55
|
+
return active if options.find { |key, value| [controller_name, controller_path].include?(key.to_s) && Array(value).include?(action_name) }
|
65
56
|
|
66
|
-
|
57
|
+
item
|
67
58
|
end
|
68
59
|
|
69
60
|
# return value by params
|
70
|
-
# active_params state: 'xxx'
|
71
|
-
def active_params(
|
72
|
-
options.
|
61
|
+
# active_params state: 'xxx', organ_id: 1
|
62
|
+
def active_params(active: nil, item: nil, **options)
|
63
|
+
options.compact.each do |k, v|
|
73
64
|
if params[k].to_s == v.to_s
|
74
|
-
return
|
65
|
+
return active
|
66
|
+
end
|
67
|
+
|
68
|
+
if !params.key?(k) && session[k].to_s == v.to_s
|
69
|
+
return active
|
75
70
|
end
|
76
71
|
end
|
77
72
|
|
78
|
-
|
73
|
+
item
|
79
74
|
end
|
80
75
|
|
81
76
|
def filter_params(options = {})
|
82
|
-
|
83
|
-
|
84
|
-
query =
|
77
|
+
only = Array(options.delete(:only)).presence
|
78
|
+
except = Array(options.delete(:except))
|
79
|
+
query = request.GET.dup
|
85
80
|
query.merge!(options)
|
86
81
|
|
87
82
|
if only
|
88
|
-
query = query.
|
83
|
+
query = query.extract!(*only)
|
89
84
|
else
|
90
|
-
excepts = []
|
91
|
-
|
92
|
-
excepts += ['commit', 'utf8', 'page']
|
93
|
-
|
94
|
-
query = query.permit!.except(*excepts)
|
85
|
+
excepts = except.map(&:to_s) + ['commit', 'utf8', 'page']
|
86
|
+
query.except!(*excepts)
|
95
87
|
end
|
96
88
|
|
97
|
-
query.
|
89
|
+
if query.length > 1
|
90
|
+
query.reject! { |_, value| value.blank? }
|
91
|
+
else
|
92
|
+
query.reject! { |_, value| value.nil? }
|
93
|
+
end
|
98
94
|
query
|
99
95
|
end
|
100
96
|
|
101
|
-
end
|
97
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module RailsCom::FormHelper
|
2
|
+
|
3
|
+
def text_field_tag(name, value = nil, options = {})
|
4
|
+
if options[:as]
|
5
|
+
type = DefaultForm.config.mapping[options[:as]][:input]
|
6
|
+
|
7
|
+
if type == 'textarea'
|
8
|
+
return text_area_tag(name, value, options)
|
9
|
+
end
|
10
|
+
|
11
|
+
if type == 'select'
|
12
|
+
opts = DefaultForm.config.mapping[options[:as]][:options]
|
13
|
+
selected = DefaultForm.config.mapping[options[:as]][:selected]
|
14
|
+
return select_tag name, options_for_select(opts, selected), options
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -15,9 +15,22 @@ module RailsCom::FormatHelper
|
|
15
15
|
end.join("\n\n").html_safe
|
16
16
|
end
|
17
17
|
|
18
|
+
def ex_simple_format(text, html_options={}, options={})
|
19
|
+
text = '' if text.nil?
|
20
|
+
text = text.dup
|
21
|
+
start_tag = tag('p', html_options, true)
|
22
|
+
text = sanitize(text) unless options[:sanitize] == false
|
23
|
+
text = text.to_str
|
24
|
+
text.gsub!(/\n?/, "</p>\n#{start_tag}")
|
25
|
+
text.insert 0, start_tag
|
26
|
+
text.html_safe.safe_concat("</p>")
|
27
|
+
end
|
28
|
+
|
18
29
|
def simple_format(text, html_options = {}, options = {})
|
19
30
|
if text.is_a?(Hash)
|
20
31
|
return simple_format_hash(text, html_options, options)
|
32
|
+
#elsif text.is_a?(String)
|
33
|
+
#return ex_simple_format(text, html_options, options)
|
21
34
|
end
|
22
35
|
|
23
36
|
if text.is_a?(Array)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module RailsCom
|
2
|
+
module FrameHelper
|
3
|
+
|
4
|
+
def turbo_frame_tagged(id, src: nil, target: nil, **attributes, &block)
|
5
|
+
if request.headers['Turbo-Frame'].blank? && block_given?
|
6
|
+
yield block
|
7
|
+
else
|
8
|
+
turbo_frame_tag(id, src: src, target: target, **attributes, &block)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
@@ -20,4 +20,27 @@ module RailsCom::TimeHelper
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
+
def extra_distance_date(from, to, options = {})
|
24
|
+
result = (to - from).to_i
|
25
|
+
|
26
|
+
options = {
|
27
|
+
scope: :'date.distance_in_words'
|
28
|
+
}.merge!(options)
|
29
|
+
|
30
|
+
I18n.with_options locale: options[:locale], scope: options[:scope] do |locale|
|
31
|
+
case result
|
32
|
+
when 0
|
33
|
+
locale.t :zero
|
34
|
+
when 1
|
35
|
+
locale.t :one
|
36
|
+
when 2
|
37
|
+
locale.t :two
|
38
|
+
when 3
|
39
|
+
locale.t :three
|
40
|
+
else
|
41
|
+
locale.t :other, count: result
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
23
46
|
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module Com
|
2
|
+
module Ext::Debug
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
before_validation :debug_before_validation
|
7
|
+
after_validation :debug_after_validation
|
8
|
+
before_save :debug_before_save
|
9
|
+
#around_save :debug_around_save
|
10
|
+
|
11
|
+
before_create :debug_before_create
|
12
|
+
before_update :debug_before_update
|
13
|
+
#around_create :debug_around_create
|
14
|
+
#around_update :debug_around_update
|
15
|
+
after_create :debug_after_create
|
16
|
+
after_update :debug_after_update
|
17
|
+
|
18
|
+
after_save :debug_after_save
|
19
|
+
after_commit :debug_after_commit
|
20
|
+
end
|
21
|
+
|
22
|
+
def debug_before_validation
|
23
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} before_validation ~~~~~~~~~~\e[0m"
|
24
|
+
end
|
25
|
+
|
26
|
+
def debug_after_validation
|
27
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} after_validation ~~~~~~~~~~\e[0m"
|
28
|
+
end
|
29
|
+
|
30
|
+
def debug_before_save
|
31
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} before_save ~~~~~~~~~~\e[0m"
|
32
|
+
end
|
33
|
+
|
34
|
+
def debug_around_save
|
35
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} around_save ~~~~~~~~~~\e[0m"
|
36
|
+
end
|
37
|
+
|
38
|
+
def debug_before_create
|
39
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} before_create ~~~~~~~~~~\e[0m"
|
40
|
+
end
|
41
|
+
|
42
|
+
def debug_before_update
|
43
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} before_update ~~~~~~~~~~\e[0m"
|
44
|
+
end
|
45
|
+
|
46
|
+
def debug_around_create
|
47
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} around_create ~~~~~~~~~~\e[0m"
|
48
|
+
end
|
49
|
+
|
50
|
+
def debug_around_update
|
51
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} around_update ~~~~~~~~~~\e[0m"
|
52
|
+
end
|
53
|
+
|
54
|
+
def debug_after_create
|
55
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} after_create ~~~~~~~~~~\e[0m"
|
56
|
+
end
|
57
|
+
|
58
|
+
def debug_after_update
|
59
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} after_update ~~~~~~~~~~\e[0m"
|
60
|
+
end
|
61
|
+
|
62
|
+
def debug_after_save
|
63
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} after_save ~~~~~~~~~~\e[0m"
|
64
|
+
end
|
65
|
+
|
66
|
+
def debug_after_commit
|
67
|
+
logger.debug " \e[35m~~~~~~~~~~ #{self.class.name}/#{self.object_id} after_commit ~~~~~~~~~~\e[0m"
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_com/utils/setting'
|
2
|
+
module Com
|
3
|
+
module Ext::Extra
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
attribute :extra, :json, default: {}
|
8
|
+
end
|
9
|
+
|
10
|
+
def form_extra
|
11
|
+
r = {}
|
12
|
+
extra.each do |k, v|
|
13
|
+
r.merge! k => v.send(DefaultForm.config.mapping.dig(taxon.parameters[k].to_sym, :output))
|
14
|
+
end
|
15
|
+
|
16
|
+
RailsCom::Setting.new(r)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rails_com/utils/setting'
|
2
|
+
module Com
|
3
|
+
module Ext::Parameter
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
attribute :parameters, :json, default: {}
|
8
|
+
end
|
9
|
+
|
10
|
+
def form_parameters
|
11
|
+
r = Hash(parameters).map { |k, v| { key: k, value: v } }
|
12
|
+
if r.blank?
|
13
|
+
r = [{ key: nil, value: nil }]
|
14
|
+
end
|
15
|
+
RailsCom::Settings.new(r)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Com
|
2
|
+
module Ext::Sequence
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
attribute :sequence, :integer, default: 1
|
7
|
+
|
8
|
+
after_commit :delete_cache, on: [:create, :destroy]
|
9
|
+
after_update_commit :delete_cache, if: -> { saved_change_to_sequence? }
|
10
|
+
|
11
|
+
private
|
12
|
+
def delete_cache
|
13
|
+
["sequence/#{self.class.name}"].each do |c|
|
14
|
+
Rails.cache.delete(c)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class_methods do
|
20
|
+
def sequences
|
21
|
+
Rails.cache.fetch("sequence/#{self.name}") do
|
22
|
+
self.select(:sequence).distinct.pluck(:sequence).compact.sort
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def max_sequence
|
27
|
+
sequences[-1] || 1
|
28
|
+
end
|
29
|
+
|
30
|
+
def min_sequence
|
31
|
+
sequences[0] || 1
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|