tramway-admin 2.1.3.2 → 3.0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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