tramway-admin 2.1.3.2 → 3.0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80721c33dfdeba8fa169d9b695539daa6d60815a75108a1321c8942136e3a3ee
4
- data.tar.gz: d4f17bcedd4cfe6113e6ef600d657a7f6761f38e6c9a766047c627aa6238f4ca
3
+ metadata.gz: aa0b55e83ec3fc784c9d7ca0590c557d62ad24fee0da6ecf86b16bf0358dff4a
4
+ data.tar.gz: d3aaf7cf6a93420787e891c683dfe34cfe40c11cb8acfb9b160e8efc89155672
5
5
  SHA512:
6
- metadata.gz: f75e4b1819128e66cb47c93e103aabd9e829c1741004c79fdaf56db6f5bf0b959e63f7d93a665e854c82080047e40658dd5d2bc4474513f82d89eae2768b132e
7
- data.tar.gz: 7a88d91517c5d3ee316b110ff4c14b82811cc68efaaaca61623f4008c51928bf96c7249048007c332b9a1ebd4764659ba821bc9e5e8fd7034e9cf5f1234a8b7c
6
+ metadata.gz: bb05dcd52a0f0597a8e8c29b4e53f0c0cc11e15ab3112888e23f3cf487738817c3984e51092009dfb86ad56bf006dabdabae48e964c766229b5c2ab644dfdc76
7
+ data.tar.gz: 84a270fb558d455bb82238b3ef735e879b3e1ebe655f92b4ef033c467e290a59aa8dfabee5524bd682d00c051fcaa3bf334d613da2b813359f73b0fe450b77db
data/README.md CHANGED
@@ -192,6 +192,9 @@ en:
192
192
  class Admin::YourModelForm < Tramway::Core::ApplicationForm
193
193
  properties :title, :description, :text, :date, :logo
194
194
 
195
+ association :associated
196
+ association :another_polymorphic_associated
197
+
195
198
  def initialize(object)
196
199
  super(object).tap do
197
200
  form_properties title: :string,
@@ -199,6 +202,8 @@ class Admin::YourModelForm < Tramway::Core::ApplicationForm
199
202
  description: :ckeditor,
200
203
  date: :date_picker,
201
204
  text: :text,
205
+ associated: :association,
206
+ another_polymorphic_association: :polymorphic_association,
202
207
  birth_date: {
203
208
  type: :default,
204
209
  input_options: {
@@ -210,6 +215,22 @@ class Admin::YourModelForm < Tramway::Core::ApplicationForm
210
215
  end
211
216
  ```
212
217
 
218
+ **NOTE**
219
+ If you want fill inputs of this form, just send query params
220
+
221
+ ```
222
+ params = {
223
+ your_model: {
224
+ logo: '/file/url',
225
+ description: 'some text',
226
+ text: 'some another text',
227
+ associated_id: 5,
228
+ another_polymorphic_associated: 56,
229
+ another_polymorphic_associated_type: 'AnotherModel'
230
+ }
231
+ }
232
+ ```
233
+
213
234
  #### 10. Add inheritance to YourModel
214
235
 
215
236
  *app/models/your_model.rb*
@@ -465,7 +486,7 @@ To add notification to application, you need just set queries in initializers.
465
486
  # Example from tramway-event gem (you also can push context variables here)
466
487
 
467
488
  ::Tramway::Admin.set_notificable_queries new_participants: -> (current_user) do
468
- ::Tramway::Event::Participant.active.where(participation_state: :requested).send "#{current_user}_scope", current_user.id
489
+ ::Tramway::Event::Participant.where(participation_state: :requested).send "#{current_user}_scope", current_user.id
469
490
  end
470
491
  ```
471
492
 
@@ -541,7 +562,8 @@ class YourModelDecorator < Tramway::Core::ApplicationDecorator
541
562
  inner: lambda do # inner HTML you want to see in the button
542
563
  fa_icon 'file-excel'
543
564
  end,
544
- color: :success # bootstrap button color
565
+ color: :success, # bootstrap button color
566
+ method: :get # HTTP method. get method is a default. Available: :post, :patch: delete
545
567
  }
546
568
  ]
547
569
  }
@@ -30,7 +30,7 @@ module Tramway
30
30
 
31
31
  def collections_counts
32
32
  @counts = decorator_class.collections.reduce({}) do |hash, collection|
33
- records = model_class.active.send(collection)
33
+ records = model_class.send(collection)
34
34
  records = records.send "#{current_admin.role}_scope", current_admin.id
35
35
  records = records.ransack(params[:filter]).result if params[:filter].present?
36
36
  params[:list_filters]&.each do |filter, value|
@@ -3,7 +3,7 @@
3
3
  class Tramway::Admin::RecordsController < ::Tramway::Admin::ApplicationController
4
4
  def index
5
5
  scope = params[:scope].present? ? params[:scope] : :all
6
- records = model_class.active.order(id: :desc).send scope
6
+ records = model_class.order(id: :desc).send scope
7
7
  records = records.full_text_search params[:search] if params[:search].present?
8
8
  if params[:filter].present?
9
9
  if params[:filter].is_a? String
@@ -30,7 +30,7 @@ class Tramway::Admin::RecordsController < ::Tramway::Admin::ApplicationControlle
30
30
  end
31
31
 
32
32
  def show
33
- @record = decorator_class.decorate model_class.active.find params[:id]
33
+ @record = decorator_class.decorate model_class.find params[:id]
34
34
  end
35
35
 
36
36
  def new
@@ -47,11 +47,11 @@ class Tramway::Admin::RecordsController < ::Tramway::Admin::ApplicationControlle
47
47
  end
48
48
 
49
49
  def edit
50
- @record_form = admin_form_class.new model_class.active.find params[:id]
50
+ @record_form = admin_form_class.new model_class.find params[:id]
51
51
  end
52
52
 
53
53
  def update
54
- @record_form = admin_form_class.new model_class.active.find params[:id]
54
+ @record_form = admin_form_class.new model_class.find params[:id]
55
55
  if params[:record][:aasm_event].present?
56
56
  if @record_form.model.send("may_#{params[:record][:aasm_event]}?")
57
57
  @record_form.model.send("#{params[:record][:aasm_event]}!")
@@ -67,8 +67,8 @@ class Tramway::Admin::RecordsController < ::Tramway::Admin::ApplicationControlle
67
67
  end
68
68
 
69
69
  def destroy
70
- record = model_class.active.find params[:id]
71
- record.remove!
70
+ record = model_class.find params[:id]
71
+ record.destroy
72
72
  redirect_to params[:redirect].present? ? params[:redirect] : records_path
73
73
  end
74
74
  end
@@ -10,7 +10,7 @@ class Tramway::Admin::SessionsController < ::Tramway::Admin::ApplicationControll
10
10
  end
11
11
 
12
12
  def create
13
- @session_form = ::Tramway::Auth::SessionForm.new ::Tramway::User::User.active.find_or_initialize_by email: params[:user][:email]
13
+ @session_form = ::Tramway::Auth::SessionForm.new ::Tramway::User::User.find_or_initialize_by email: params[:user][:email]
14
14
  if @session_form.validate params[:user]
15
15
  admin_sign_in @session_form.model
16
16
  redirect_to Tramway::Admin::Engine.routes.url_helpers.root_path
@@ -3,8 +3,8 @@
3
3
  module Tramway::Admin
4
4
  class SingletonsController < ApplicationController
5
5
  def show
6
- if model_class.active.first.present?
7
- @singleton = decorator_class.decorate model_class.active.first
6
+ if model_class.first.present?
7
+ @singleton = decorator_class.decorate model_class.first
8
8
  else
9
9
  @singleton_form = admin_form_class.new model_class.new
10
10
  render :new
@@ -13,7 +13,7 @@ module Tramway::Admin
13
13
  end
14
14
 
15
15
  def edit
16
- @singleton_form = admin_form_class.new model_class.active.first
16
+ @singleton_form = admin_form_class.new model_class.first
17
17
  end
18
18
 
19
19
  def create
@@ -26,7 +26,7 @@ module Tramway::Admin
26
26
  end
27
27
 
28
28
  def update
29
- @singleton_form = admin_form_class.new model_class.active.first
29
+ @singleton_form = admin_form_class.new model_class.first
30
30
  if @singleton_form.submit params[:singleton]
31
31
  redirect_to params[:redirect] || singleton_path(model: params[:model])
32
32
  else
@@ -20,7 +20,7 @@
20
20
  %td.actions
21
21
  .row
22
22
  &nbsp;&nbsp;&nbsp;
23
- = link_to fa_icon('pencil-alt'), edit_current_model_record_path(record.id), class: 'btn btn-warning btn-xs'
23
+ = link_to fa_icon('pencil-alt'), edit_current_model_record_path(record.id, redirect: current_model_records_path(record.id)), class: 'btn btn-warning btn-xs'
24
24
  &nbsp;&nbsp;
25
25
  = delete_button url: current_model_record_path(record.id), form_options: { class: :smart_button }, button_options: { class: 'btn btn-xs btn-danger' } do
26
26
  = fa_icon 'trash-alt'
@@ -8,7 +8,7 @@
8
8
  = hidden_field_tag :model, params[:model]
9
9
  = hidden_field_tag :scope, params[:scope]
10
10
  = hidden_field_tag :filter, (params[:filter].is_a?(ActionController::Parameters) ? params[:filter].permit!.to_h.to_json : params[:filter])
11
- - decorator_class(model_class).list_filters.each_slice(3) do |slice|
11
+ - decorator_class(model_class).list_filters&.each_slice(3) do |slice|
12
12
  .row-fluid.filters
13
13
  - slice.each do |filter|
14
14
  - case filter[1][:type]
@@ -4,17 +4,19 @@
4
4
  = association_object.id
5
5
  %td
6
6
  = link_to association_object.name, record_path(association_object.id, model: association.options[:class_name])
7
+ - if association_object.model.class.state_machines_names.count > 1
8
+ %td
9
+ - association_object.model.class.state_machines_names.each do |state_method|
10
+ - unless state_method == 'default'
11
+ = state_events_buttons association_object, state_method: state_method, model_param_name: :record, controller: 'tramway/admin/records', action: :update, parameters: { redirect: current_model_record_path(object.id), model: association_object.class.model_name }, button_options: { class: :smart_button }
7
12
  %td
8
- - association_object.model.class.state_machines_names.each do |state_method|
9
- - unless state_method == 'default'
10
- = state_events_buttons association_object, state_method: state_method, model_param_name: :record, controller: 'tramway/admin/records', action: :update, parameters: { redirect: current_model_record_path(object.id), model: association_object.class.model_name }, button_options: { class: :smart_button }
11
- %td
12
- - if update_is_available? association_object, object
13
- = edit_button url: edit_record_path(association_object.id, model: association.options[:class_name], redirect: current_model_record_path(object.id)), button_options: { class: 'btn btn-xs btn-warning edit' } do
14
- = fa_icon 'pencil-alt'
15
- - if destroy_is_available? association_object, object
16
- = delete_button url: record_path(association_object.id, model: association.options[:class_name], redirect: current_model_record_path(object.id)), button_options: { class: 'btn btn-xs btn-danger delete' } do
17
- = fa_icon 'trash-alt'
18
- - if habtm_destroy_is_available? association_object, object
19
- = delete_button url: has_and_belongs_to_many_record_path(association_object.id, model_class: object.model.class, object_id: object.id, form: "Admin::#{object.model.class.to_s.pluralize}::Remove#{association_object.model.class.to_s}Form", redirect: current_model_record_path(object.id)), button_options: { class: 'btn btn-xs btn-danger delete' } do
20
- = fa_icon 'trash-alt'
13
+ .row{ style: 'justify-content: space-evenly' }
14
+ - if update_is_available? association_object, object
15
+ = edit_button url: edit_record_path(association_object.id, model: association.options[:class_name], redirect: current_model_record_path(object.id)), button_options: { class: 'btn btn-xs btn-warning edit', style: 'height: max-content' } do
16
+ = fa_icon 'pencil-alt'
17
+ - if destroy_is_available? association_object, object
18
+ = delete_button url: record_path(association_object.id, model: association.options[:class_name], redirect: current_model_record_path(object.id)), button_options: { class: 'btn btn-xs btn-danger delete' } do
19
+ = fa_icon 'trash-alt'
20
+ - if habtm_destroy_is_available? association_object, object
21
+ = delete_button url: has_and_belongs_to_many_record_path(association_object.id, model_class: object.model.class, object_id: object.id, form: "Admin::#{object.model.class.to_s.pluralize}::Remove#{association_object.model.class.to_s}Form", redirect: current_model_record_path(object.id)), button_options: { class: 'btn btn-xs btn-danger delete' } do
22
+ = fa_icon 'trash-alt'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Tramway
4
4
  module Admin
5
- VERSION = '2.1.3.2'
5
+ VERSION = '3.0.1.1'
6
6
  end
7
7
  end
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: 2.1.3.2
4
+ version: 3.0.1.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: 2021-10-03 00:00:00.000000000 Z
11
+ date: 2022-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tramway-core
@@ -70,20 +70,20 @@ dependencies:
70
70
  name: copyright_mafa
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.1.2
76
- - - ">="
76
+ - - "~>"
77
77
  - !ruby/object:Gem::Version
78
78
  version: 0.1.2
79
79
  type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - "~>"
83
+ - - ">="
84
84
  - !ruby/object:Gem::Version
85
85
  version: 0.1.2
86
- - - ">="
86
+ - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: 0.1.2
89
89
  - !ruby/object:Gem::Dependency
@@ -305,7 +305,6 @@ files:
305
305
  - lib/tramway/admin/generators/templates/form.rb.erb
306
306
  - lib/tramway/admin/navbar.rb
307
307
  - lib/tramway/admin/notifications.rb
308
- - lib/tramway/admin/preview.rb
309
308
  - lib/tramway/admin/record_routes_helper.rb
310
309
  - lib/tramway/admin/records_models.rb
311
310
  - lib/tramway/admin/singleton_models.rb
@@ -331,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
331
330
  - !ruby/object:Gem::Version
332
331
  version: '0'
333
332
  requirements: []
334
- rubygems_version: 3.1.6
333
+ rubygems_version: 3.0.3.1
335
334
  signing_key:
336
335
  specification_version: 4
337
336
  summary: Engine for admin
@@ -1,15 +0,0 @@
1
- module Tramway::Admin::Preview
2
- def set_previewable_models(*models)
3
- @previewable_models ||= []
4
- @previewable_models += models.map(&:to_s)
5
- end
6
-
7
- def previewable_models
8
- @previewable_models
9
- end
10
-
11
- def is_available_to_preview?(model_class)
12
- @previewable_models ||= []
13
- @previewable_models.include? model_class.to_s
14
- end
15
- end