cm-admin 1.4.0 → 1.4.2

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: 680b8d7f174e764d9a17115f20014a8c02ff18a274bc4df022f5285671be343f
4
- data.tar.gz: b3278745964ecd7cfc13ea6a4c8381ba5b8ead0b19e086dcc125a6da6ab70fde
3
+ metadata.gz: c4b058ca1f32279400f2104a7f08d34530b85ef2626554c51ca4c9ef37a0751a
4
+ data.tar.gz: cdd8426486024c7cc1cac97cbc82301ba85fd89babaa5551dfcc67d84fdbc790
5
5
  SHA512:
6
- metadata.gz: f5ba67994c1f9746a5ccd57a02ea66ce0127cebfec936792f54ad655e8a7a5dc075bfa7c25d3294b234baf095cbf956ef70f65310d332b1271410d51b0728878
7
- data.tar.gz: 26c7185ff4ef0168e0ee16936a4518e84250836c10a3b549d21f0691816411d407b99e030c7d605524da04e58fabc4ff424a6de0069bc887b8e820320e622f63
6
+ metadata.gz: 3702d39e7faec73a45ab2ed4d890ede66c6260a5255d9401e326a1f08efd1d7b6ada253a97a3fbe5037a2f406aa26b1409acd55da0f5e3ba6d6eddfe9bbbb164
7
+ data.tar.gz: d87c2cbcd760bec066da60339ff88afbdff412a26508083c0d02a6eb5dc5ad630bf53f369506aa6e0adca730d45beaa8192f6fb316aad372ad1161e5eee5422a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cm-admin (1.4.0)
4
+ cm-admin (1.4.2)
5
5
  caxlsx_rails
6
6
  cocoon (~> 1.2.15)
7
7
  csv-importer (~> 0.8.2)
@@ -9,7 +9,7 @@
9
9
  width: 100%;
10
10
  height: 100%;
11
11
  z-index: 5;
12
- background-color: rgba(0, 0, 0, .7);
12
+ background-color: rgba(0, 0, 0, 0.7);
13
13
  &__container {
14
14
  position: relative;
15
15
  width: 360px;
@@ -52,32 +52,32 @@
52
52
  }
53
53
 
54
54
  .drawer-slide-in {
55
- animation: slideInLeft .3s ease-in forwards;
55
+ animation: slideInLeft 0.3s ease-in forwards;
56
56
  }
57
57
 
58
58
  .drawer-slide-out {
59
- animation: slideOutLeft .3s ease-in forwards;
59
+ animation: slideOutLeft 0.3s ease-in forwards;
60
60
  }
61
61
 
62
62
  @keyframes slideInLeft {
63
63
  0% {
64
- left: -400px;
65
- opacity: 0;
64
+ left: -400px;
65
+ opacity: 0;
66
66
  }
67
67
  100% {
68
- left: 0;
69
- opacity: 1;
68
+ left: 0;
69
+ opacity: 1;
70
70
  }
71
71
  }
72
72
 
73
73
  @keyframes slideOutLeft {
74
74
  0% {
75
- left: 0;
76
- opacity: 1;
75
+ left: 0;
76
+ opacity: 1;
77
77
  }
78
78
  100% {
79
- left: -400px;
80
- opacity: 0;
79
+ left: -400px;
80
+ opacity: 0;
81
81
  }
82
82
  }
83
83
 
@@ -86,3 +86,22 @@
86
86
  margin-left: 8px;
87
87
  @include font($size: $t4-text, $color: $brand-color);
88
88
  }
89
+
90
+ //Kanban drawer styles
91
+ .kanban-drawer {
92
+ .cm-drawer {
93
+ display: flex;
94
+ justify-content: flex-end;
95
+ &__actions {
96
+ display: flex;
97
+ flex-direction: column;
98
+ margin: 16px;
99
+ }
100
+ &__container {
101
+ width: 624px;
102
+ [class^="col-"] {
103
+ width: 100% !important;
104
+ }
105
+ }
106
+ }
107
+ }
@@ -10,7 +10,9 @@ module CmAdmin
10
10
  # Based on the params the filter and pagination object to be set
11
11
  records = "CmAdmin::#{@model.name}Policy::Scope".constantize.new(Current.user, @model.name.constantize).resolve
12
12
  records = apply_scopes(records)
13
- if (request.xhr? && params[:view_type] == 'kanban') || @current_action.view_type == :kanban
13
+ if (['table', 'card'].include?(params[:view_type]) || [:table, :card].include?(@current_action.view_type))
14
+ @ar_object = filter_by(params, records, @model.filter_params(params))
15
+ elsif (request.xhr? && params[:view_type] == 'kanban') || @current_action.view_type == :kanban
14
16
  @ar_object = kanban_filter_by(params, records, @model.filter_params(params))
15
17
  else
16
18
  @ar_object = filter_by(params, records, @model.filter_params(params))
@@ -32,7 +34,11 @@ module CmAdmin
32
34
  @ar_object = scoped_model.find(params[:id])
33
35
  resource_identifier
34
36
  respond_to do |format|
35
- format.html { render '/cm_admin/main/' + action_name }
37
+ if request.xhr?
38
+ format.html { render partial: '/cm_admin/main/show_content' }
39
+ else
40
+ format.html { render '/cm_admin/main/' + action_name }
41
+ end
36
42
  end
37
43
  end
38
44
 
@@ -278,14 +284,14 @@ module CmAdmin
278
284
  filtered_result.data = {}
279
285
  filtered_result.paging = {}
280
286
  filtered_result.paging['next_page'] = true
281
- group_record_count = final_data.group(@current_action.kanban_attr[:column_name]).count
287
+ group_record_count = final_data.group(params[:kanban_column_name] || @current_action.kanban_attr[:column_name]).count
282
288
  per_page = params[:per_page] || 20
283
289
  page = params[:page] || 1
284
290
  max_page = (group_record_count.values.max.to_i / per_page.to_f).ceil
285
291
  filtered_result.paging['next_page'] = (page.to_i < max_page)
286
292
  filtered_result.column_count = group_record_count.reject {|key, value| key.blank? }
287
293
 
288
- column_names = @model.ar_model.send(@current_action.kanban_attr[:column_name].pluralize).keys
294
+ column_names = @model.ar_model.send(params[:kanban_column_name]&.pluralize || @current_action.kanban_attr[:column_name].pluralize).keys
289
295
  if @current_action.kanban_attr[:only].present?
290
296
  column_names &= @current_action.kanban_attr[:only]
291
297
  elsif @current_action.kanban_attr[:exclude].present?
@@ -1,2 +1,11 @@
1
- .cm-drawer.batch-order-item.hidden
2
- .cm-drawer__container
1
+ .kanban-drawer
2
+ .cm-drawer.show-as-drawer.hidden
3
+ .cm-drawer__actions
4
+ a.btn-ghost.mb-2 data-behaviour="show-drawer-close"
5
+ span
6
+ i.fa.fa-xmark
7
+ a.btn-ghost data-behaviour="show-drawer-redirect"
8
+ span
9
+ i.fa.fa-up-right-and-down-left-from-center
10
+ .cm-drawer__container
11
+
@@ -0,0 +1,14 @@
1
+ .show-page__header.page-top-bar
2
+ == render 'cm_admin/main/top_navbar'
3
+ == render 'cm_admin/main/tabs'
4
+ .show-page__inner
5
+ - if @action.partial
6
+ == render @action.partial
7
+ - else
8
+ - @model.available_fields[:show].each do |entity|
9
+ .row
10
+ - if entity.class == CmAdmin::Models::Row
11
+ - entity.sections.each do |section|
12
+ = render partial: 'cm_admin/main/show_section', locals: { section: section }
13
+ - elsif entity.class == CmAdmin::Models::Section
14
+ = render partial: 'cm_admin/main/show_section', locals: { section: entity }
@@ -9,12 +9,12 @@
9
9
  .cm-index-page__table-container
10
10
  - if @action.partial
11
11
  == render @action.partial
12
- - elsif params[:view_type] == 'card' || @current_action.view_type == :card_view
13
- == render 'cm_admin/main/card'
12
+ - elsif params[:view_type] == 'table' || @current_action.view_type == :table
13
+ == render 'cm_admin/main/table'
14
+ - elsif params[:view_type] == 'card' || @current_action.view_type == :card
15
+ == render "cm_admin/#{@model.name.underscore}/card"
14
16
  - elsif params[:view_type] == 'kanban' || @current_action.view_type == :kanban
15
17
  == render 'cm_admin/main/kanban'
16
- - else
17
- == render 'cm_admin/main/table'
18
18
  = column_pop_up(@model)
19
19
  = manage_column_pop_up(@model)
20
20
 
@@ -1,15 +1,2 @@
1
1
  .show-page
2
- .show-page__header.page-top-bar
3
- == render 'cm_admin/main/top_navbar'
4
- == render 'cm_admin/main/tabs'
5
- .show-page__inner
6
- - if @action.partial
7
- == render @action.partial
8
- - else
9
- - @model.available_fields[:show].each do |entity|
10
- .row
11
- - if entity.class == CmAdmin::Models::Row
12
- - entity.sections.each do |section|
13
- = render partial: 'cm_admin/main/show_section', locals: { section: section }
14
- - elsif entity.class == CmAdmin::Models::Section
15
- = render partial: 'cm_admin/main/show_section', locals: { section: entity }
2
+ = render partial: 'cm_admin/main/show_content'
@@ -15,4 +15,10 @@
15
15
  - custom_action_with_modals.each do |custom_action|
16
16
  = render partial: '/layouts/custom_action_modal', locals: { custom_action: custom_action, ar_object: @ar_object }
17
17
  - if destroy_action
18
- = render partial: '/layouts/destroy_action_modal', locals: { ar_object: @ar_object }
18
+ = render partial: '/layouts/destroy_action_modal', locals: { ar_object: @ar_object }
19
+ - elsif @current_action&.action_type == :custom && @associated_ar_object&.data.present?
20
+ - @associated_ar_object.data.each do |ar_object|
21
+ - custom_action_with_modals.select{|custom_action| custom_action.model_name == @current_action.child_records.to_s.classify}.each do |custom_action|
22
+ = render partial: '/layouts/custom_action_modal', locals: { custom_action: custom_action, ar_object: ar_object }
23
+ - if destroy_action
24
+ = render partial: '/layouts/destroy_action_modal', locals: { ar_object: ar_object }
@@ -47,6 +47,6 @@ html
47
47
  - else
48
48
  = yield
49
49
  = render 'layouts/cm_flash_message'
50
- - unless (@current_action.view_type || params[:view_type])
50
+ - unless (@current_action.view_type == :kanban || params[:view_type] == 'kanban')
51
51
  = render 'layouts/custom_action_modals'
52
52
 
@@ -7,7 +7,7 @@ module CmAdmin
7
7
  attr_accessor :name, :display_name, :verb, :layout_type, :layout, :partial, :path, :page_title, :page_description,
8
8
  :child_records, :is_nested_field, :nested_table_name, :parent, :display_if, :route_type, :code_block,
9
9
  :display_type, :action_type, :redirection_url, :sort_direction, :sort_column, :icon_name, :scopes, :view_type,
10
- :kanban_attr
10
+ :kanban_attr, :model_name
11
11
 
12
12
  VALID_SORT_DIRECTION = Set[:asc, :desc].freeze
13
13
 
@@ -61,7 +61,7 @@ module CmAdmin
61
61
  else
62
62
  action = CmAdmin::Models::Action.new(name: custom_action.to_s, verb: :get, path: ':id/'+custom_action,
63
63
  layout_type: layout_type, layout: layout, partial: partial, child_records: associated_model,
64
- action_type: :custom, display_type: :page)
64
+ action_type: :custom, display_type: :page, model_name: self.name)
65
65
  @available_actions << action
66
66
  @current_action = action
67
67
  @available_tabs << CmAdmin::Models::Tab.new(tab_name, custom_action, display_if, &block)
@@ -137,7 +137,7 @@ module CmAdmin
137
137
  layout_type: layout_type, partial: partial, path: path,
138
138
  parent: self.current_action.name, display_type: display_type, display_if: display_if,
139
139
  action_type: :custom, route_type: route_type, icon_name: icon_name, modal_configuration: modal_configuration,
140
- url_params: url_params, &block)
140
+ model_name: self.name, url_params: url_params, &block)
141
141
  @available_actions << action
142
142
  # self.class.class_eval(&block)
143
143
  end
@@ -1,3 +1,3 @@
1
1
  module CmAdmin
2
- VERSION = '1.4.0'
2
+ VERSION = '1.4.2'
3
3
  end
@@ -27,7 +27,7 @@ module CmAdmin
27
27
  end
28
28
 
29
29
  def cm_decimal_field(form_obj, cm_field, value, required_class, _target_action)
30
- form_obj.number_field cm_field.field_name,
30
+ form_obj.text_field cm_field.field_name,
31
31
  class: "field-control #{required_class}",
32
32
  disabled: cm_field.disabled.call(form_obj.object),
33
33
  value: value,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cm-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - sajinmp
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2023-12-12 00:00:00.000000000 Z
13
+ date: 2023-12-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -363,6 +363,7 @@ files:
363
363
  - app/views/cm_admin/main/_nested_table_form.html.slim
364
364
  - app/views/cm_admin/main/_nested_table_section.html.slim
365
365
  - app/views/cm_admin/main/_show_as_drawer.html.slim
366
+ - app/views/cm_admin/main/_show_content.html.slim
366
367
  - app/views/cm_admin/main/_show_section.html.slim
367
368
  - app/views/cm_admin/main/_table.html.slim
368
369
  - app/views/cm_admin/main/_tabs.html.slim