tramway-admin 4.0.0.1 → 4.1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/helpers/tramway/admin/actions_helper.rb +10 -0
- data/app/helpers/tramway/admin/application_helper.rb +1 -0
- data/app/helpers/tramway/admin/frontend_helper.rb +21 -0
- data/app/views/layouts/tramway/admin/application.html.haml +5 -1
- data/app/views/tramway/admin/records/_form.html.haml +9 -6
- data/app/views/tramway/admin/records/_search.html.haml +2 -3
- data/app/views/tramway/admin/records/index.html.haml +1 -1
- data/app/views/tramway/admin/shared/show/associations/_row.html.haml +1 -1
- data/lib/tramway/admin/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b44fe24bffc41f9e73369d01d70066b3454fae31e483ba3b83b13a81efd0fbf
|
4
|
+
data.tar.gz: 21f8c5c22448dc3ac1df74ad91cfc8a1fa4ce82f684bcaf990cc1478549ccb87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31923f43c6a572341ef1c5561630bae7358a6c943651ed044e45a2a03bdb53e1fe6d85d2cda346829219d14b7fb98c060b8266fa05dc6a84707721fca8621e4e
|
7
|
+
data.tar.gz: 5873f1f00d1eb3f989d42ac9a3767c38a211ca3b456072ddd6e2c5fed9bd4bf3d1eae7109801ae2902821d397ede0dfb9ad722f37d5e4e319a089ff0cebe4676
|
@@ -21,6 +21,16 @@ module Tramway::Admin::ActionsHelper
|
|
21
21
|
)
|
22
22
|
end
|
23
23
|
|
24
|
+
def create_is_available?(association_class)
|
25
|
+
::Tramway::Admin.action_is_available?(
|
26
|
+
nil,
|
27
|
+
project: (@application_engine || @application.name),
|
28
|
+
model_name: association_class,
|
29
|
+
role: current_admin.role,
|
30
|
+
action: :create
|
31
|
+
)
|
32
|
+
end
|
33
|
+
|
24
34
|
# delete_button is in smart-buttons gem
|
25
35
|
|
26
36
|
def edit_button(url:, button_options:)
|
@@ -17,6 +17,7 @@ module Tramway
|
|
17
17
|
include ::Tramway::Collections::Helper
|
18
18
|
include ::Tramway::Core::CopyToClipboardHelper
|
19
19
|
include ::Tramway::Admin::TramwayModelHelper
|
20
|
+
include ::Tramway::Admin::FrontendHelper
|
20
21
|
|
21
22
|
def object_type(object)
|
22
23
|
object_class_name = if object.class.ancestors.include? ::Tramway::Core::ApplicationDecorator
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Tramway::Admin::FrontendHelper
|
2
|
+
def react_params(form, action, method)
|
3
|
+
url = case action
|
4
|
+
when :create
|
5
|
+
Tramway::Admin::Engine.routes.url_helpers.records_path(model: form.model.class)
|
6
|
+
else
|
7
|
+
Tramway::Admin::Engine.routes.url_helpers.record_path(form.model.id, model: form.model.class)
|
8
|
+
end
|
9
|
+
form.properties.reduce({ action: url, method: method, authenticity_token: form_authenticity_token }) do |hash, property|
|
10
|
+
case property[1]
|
11
|
+
when :association
|
12
|
+
hash.merge!(
|
13
|
+
property[0] => {
|
14
|
+
collection: build_collection_for_association(form, property[0])
|
15
|
+
}
|
16
|
+
)
|
17
|
+
end
|
18
|
+
hash
|
19
|
+
end.merge model: form.model.attributes
|
20
|
+
end
|
21
|
+
end
|
@@ -4,10 +4,14 @@
|
|
4
4
|
%meta{ content: "width=device-width, initial-scale=1, maximum-scale=0.8", name: "viewport" }
|
5
5
|
%title
|
6
6
|
= yield :title
|
7
|
-
= stylesheet_link_tag 'tramway/admin/application', media:
|
7
|
+
= stylesheet_link_tag 'tramway/admin/application', media: :all
|
8
8
|
= javascript_include_tag 'tramway/admin/application'
|
9
9
|
- if File.exists?("#{Rails.root}/app/assets/javascripts/admin/application.js") || File.exists?("#{Rails.root}/app/assets/javascripts/admin/application.js.coffee")
|
10
10
|
= javascript_include_tag 'admin/application'
|
11
|
+
- if File.exists?("#{Rails.root}/app/assets/stylesheets/admin/application.css") || File.exists?("#{Rails.root}/app/assets/stylesheets/admin/application.scss")
|
12
|
+
= stylesheet_link_tag 'admin/application'
|
13
|
+
- if File.exists?("#{Rails.root}/app/javascript/packs/admin/application.js")
|
14
|
+
= javascript_pack_tag 'admin/application'
|
11
15
|
= csrf_meta_tags
|
12
16
|
- if @application.favicon.present?
|
13
17
|
= favicon_link_tag @application.favicon
|
@@ -8,12 +8,15 @@
|
|
8
8
|
= render 'tramway/core/shared/messages', object: @record_form
|
9
9
|
.row
|
10
10
|
.col-lg-12
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
=
|
15
|
-
|
16
|
-
|
11
|
+
- if @record_form.class.is_react_component?
|
12
|
+
= react_component "#{@record_form.class.name.gsub('::', '/')}", react_params(@record_form, action, method)
|
13
|
+
- else
|
14
|
+
= simple_form_for @record_form, url: { controller: :records, action: action, model: @record_form.model.class }, method: method, input_html: { class: 'form-horizontal' } do |f|
|
15
|
+
- @record_form.properties.each do |property, type|
|
16
|
+
= render 'tramway/core/shared/input', property: property, object: :record, type: type, form: f, destination: :admin, value: value_from_params(model_class: model_class, property: property, type: type)
|
17
|
+
= hidden_field_tag :redirect, params[:redirect]
|
18
|
+
= f.button :submit, t('helpers.links.save'), class: 'btn btn-success'
|
19
|
+
= link_to t('helpers.links.back'), current_model_records_path, class: 'btn btn-secondary'
|
17
20
|
|
18
21
|
-# NOTES
|
19
22
|
-# * value_from_params helper is in tramway-core gem app/helpers/inputs_helpers.rb
|
@@ -3,8 +3,9 @@
|
|
3
3
|
.d-flex.flex-row-reverse.filters
|
4
4
|
= form_tag records_path, class: 'form-inline', method: :get do |f|
|
5
5
|
- if searchable_model?(model_class)
|
6
|
-
.
|
6
|
+
.input-group
|
7
7
|
= text_field_tag :search, params[:search], class: 'text form-control'
|
8
|
+
= submit_tag t('helpers.actions.search'), class: 'btn btn-primary'
|
8
9
|
= hidden_field_tag :model, params[:model]
|
9
10
|
= hidden_field_tag :scope, params[:scope]
|
10
11
|
= hidden_field_tag :filter, (params[:filter].is_a?(ActionController::Parameters) ? params[:filter].permit!.to_h.to_json : params[:filter])
|
@@ -31,5 +32,3 @@
|
|
31
32
|
$('#filter_datepicker_begin_date').datepicker();
|
32
33
|
$('#filter_datepicker_end_date').datepicker();
|
33
34
|
});
|
34
|
-
.col-md-4.submit
|
35
|
-
= submit_tag t('helpers.actions.search'), class: 'btn btn-primary'
|
@@ -7,7 +7,7 @@
|
|
7
7
|
%td
|
8
8
|
= model_class.human_attribute_name association.name
|
9
9
|
%hr
|
10
|
-
- if association_type != :has_one || !object.send(association.name).present?
|
10
|
+
- if create_is_available?(association.class_name) && (association_type != :has_one || !object.send(association.name).present?)
|
11
11
|
= link_to "#{I18n.t('helpers.actions.add')} #{model_class.human_attribute_name(association.name).singularize.downcase}", new_associated_record_path(association: association, object: object, as: object.send("#{association.name}_as")), class: 'btn btn-primary'
|
12
12
|
%td{ colspan: 2 }
|
13
13
|
- if association_type.in? [ :has_one, :belongs_to ]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tramway-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kalashnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tramway-core
|
@@ -256,6 +256,7 @@ files:
|
|
256
256
|
- app/helpers/tramway/admin/application_helper.rb
|
257
257
|
- app/helpers/tramway/admin/cases_helper.rb
|
258
258
|
- app/helpers/tramway/admin/focus_generator_helper.rb
|
259
|
+
- app/helpers/tramway/admin/frontend_helper.rb
|
259
260
|
- app/helpers/tramway/admin/navbar_helper.rb
|
260
261
|
- app/helpers/tramway/admin/records_helper.rb
|
261
262
|
- app/helpers/tramway/admin/russian_cases_helper.rb
|