cm-admin 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +21 -20
- data/README.md +24 -1
- data/app/assets/stylesheets/cm_admin/base/auth.scss +0 -12
- data/app/assets/stylesheets/cm_admin/base/filters.scss +8 -7
- data/app/assets/stylesheets/cm_admin/base/form.scss +7 -72
- data/app/assets/stylesheets/cm_admin/base/navbar.scss +1 -3
- data/app/assets/stylesheets/cm_admin/base/quicksearch.scss +7 -0
- data/app/assets/stylesheets/cm_admin/base/scaffold.scss +38 -3
- data/app/assets/stylesheets/cm_admin/base/show.scss +24 -2
- data/app/assets/stylesheets/cm_admin/base/table.scss +270 -253
- data/app/assets/stylesheets/cm_admin/components/_dropdown-popup.scss +22 -10
- data/app/assets/stylesheets/cm_admin/components/_range.scss +13 -2
- data/app/assets/stylesheets/cm_admin/components/_status-tag.scss +2 -1
- data/app/assets/stylesheets/cm_admin/helpers/_variable.scss +1 -0
- data/app/controllers/cm_admin/application_controller.rb +5 -0
- data/app/controllers/cm_admin/exports_controller.rb +1 -1
- data/app/controllers/cm_admin/static_controller.rb +12 -0
- data/app/helpers/cm_admin/custom_helper.rb +4 -0
- data/app/javascript/packs/cm_admin/application.js +14 -1
- data/app/javascript/packs/cm_admin/filters.js +331 -16
- data/app/javascript/packs/cm_admin/quick_search.js +67 -0
- data/app/javascript/packs/cm_admin/scaffolds.js +30 -1
- data/app/javascript/stylesheets/cm_admin/application.scss +3 -0
- data/app/views/cm_admin/main/_associated_table.html.slim +60 -0
- data/app/views/cm_admin/main/_cm_pagy_nav.html.slim +6 -6
- data/app/views/cm_admin/main/_filters.html.slim +1 -10
- data/app/views/cm_admin/main/_nested_fields.html.slim +7 -0
- data/app/views/cm_admin/main/_nested_table_form.html.slim +6 -0
- data/app/views/cm_admin/main/_table.html.slim +5 -4
- data/app/views/cm_admin/main/_tabs.html.slim +5 -0
- data/app/views/cm_admin/main/_top_navbar.html.slim +4 -4
- data/app/views/cm_admin/main/associated_index.html.slim +6 -0
- data/app/views/cm_admin/main/associated_show.html.slim +6 -0
- data/app/views/cm_admin/main/index.html.slim +11 -8
- data/app/views/cm_admin/main/show.html.slim +12 -13
- data/app/views/cm_admin/static/error_401.html.slim +4 -0
- data/app/views/layouts/_left_sidebar_nav.html.slim +7 -3
- data/app/views/layouts/_quick_links.html.slim +25 -0
- data/app/views/layouts/cm_admin.html.slim +24 -1
- data/app/views/layouts/static.html.slim +18 -0
- data/bin/console +0 -1
- data/cm_admin.gemspec +1 -0
- data/config/routes.rb +2 -1
- data/config/webpack/environment.js +3 -2
- data/lib/.DS_Store +0 -0
- data/lib/cm_admin/model.rb +57 -167
- data/lib/cm_admin/models/action.rb +15 -1
- data/lib/cm_admin/models/cm_show_section.rb +20 -0
- data/lib/cm_admin/models/column.rb +49 -4
- data/lib/cm_admin/models/controller_method.rb +75 -0
- data/lib/cm_admin/models/dsl_method.rb +122 -0
- data/lib/cm_admin/models/export.rb +16 -5
- data/lib/cm_admin/models/field.rb +2 -1
- data/lib/cm_admin/models/filter.rb +67 -2
- data/lib/cm_admin/models/form_field.rb +21 -0
- data/lib/cm_admin/models/tab.rb +13 -0
- data/lib/cm_admin/version.rb +1 -1
- data/lib/cm_admin/view_helpers/column_field_helper.rb +29 -0
- data/lib/cm_admin/view_helpers/field_display_helper.rb +65 -0
- data/lib/cm_admin/view_helpers/filter_helper.rb +190 -0
- data/lib/cm_admin/view_helpers/form_field_helper.rb +21 -4
- data/lib/cm_admin/view_helpers/form_helper.rb +22 -12
- data/lib/cm_admin/view_helpers/manage_column_popup_helper.rb +75 -0
- data/lib/cm_admin/view_helpers/navigation_helper.rb +22 -6
- data/lib/cm_admin/view_helpers/page_info_helper.rb +36 -0
- data/lib/cm_admin/view_helpers.rb +3 -1
- data/lib/cm_admin.rb +3 -1
- data/lib/generators/cm_admin/install_generator.rb +20 -8
- data/package.json +6 -1
- data/tmp/cache/webpacker/last-compilation-digest-development +1 -0
- data/yarn.lock +35 -5
- metadata +41 -7
- data/app/controllers/cm_admin/main_controller.rb +0 -8
- data/lib/c.png +0 -0
- data/lib/cm_admin/view_helpers/field_column_helper.rb +0 -23
- data/lib/generators/cm_admin/templates/cm_admin_initializer.rb +0 -4
- data/yarn-error.log +0 -44
@@ -0,0 +1,67 @@
|
|
1
|
+
$(document).on("keydown", function(e) {
|
2
|
+
if (e.keyCode == 75 && e.metaKey) {
|
3
|
+
$('#quickSearchModal').modal('show')
|
4
|
+
}
|
5
|
+
});
|
6
|
+
|
7
|
+
var liSelected;
|
8
|
+
$(document).on('keydown', function(e){
|
9
|
+
var sel_item = $('.search-results-container > a.visible');
|
10
|
+
if ($('#quickSearchModal').hasClass('show')) {
|
11
|
+
var selected;
|
12
|
+
if(e.which === 40){
|
13
|
+
if(liSelected){
|
14
|
+
liSelected.removeClass('active-item');
|
15
|
+
next = liSelected.next();
|
16
|
+
if(next.length > 0){
|
17
|
+
liSelected = next.addClass('active-item');
|
18
|
+
selected = next.text();
|
19
|
+
|
20
|
+
}else{
|
21
|
+
liSelected = sel_item.eq(0).addClass('active-item');
|
22
|
+
selected = sel_item.eq(0).text();
|
23
|
+
}
|
24
|
+
}else{
|
25
|
+
liSelected = sel_item.eq(0).addClass('active-item');
|
26
|
+
selected = sel_item.eq(0).text();
|
27
|
+
}
|
28
|
+
}else if(e.which === 38){
|
29
|
+
if(liSelected){
|
30
|
+
liSelected.removeClass('active-item');
|
31
|
+
next = liSelected.prev();
|
32
|
+
if(next.length > 0){
|
33
|
+
liSelected = next.addClass('active-item');
|
34
|
+
selected = next.text();
|
35
|
+
|
36
|
+
}else{
|
37
|
+
|
38
|
+
liSelected = sel_item.last().addClass('active-item');
|
39
|
+
selected = sel_item.last().text()
|
40
|
+
}
|
41
|
+
}else{
|
42
|
+
liSelected = sel_item.last().addClass('active-item');
|
43
|
+
selected = sel_item.last().text()
|
44
|
+
}
|
45
|
+
}
|
46
|
+
if(liSelected && e.which === 13) {
|
47
|
+
console.log("Selected item id ", liSelected)
|
48
|
+
href = liSelected.attr('href')
|
49
|
+
window.location = href
|
50
|
+
}
|
51
|
+
}
|
52
|
+
});
|
53
|
+
|
54
|
+
$(document).on('keyup', '[data-behaviour="quick-input-search"]', function(e) {
|
55
|
+
if ($(this).val().length > 0) {
|
56
|
+
$('.clear-search').removeClass('hidden')
|
57
|
+
} else {
|
58
|
+
$('.clear-search').addClass('hidden')
|
59
|
+
}
|
60
|
+
CmFilter.quick_input_search($(this))
|
61
|
+
});
|
62
|
+
|
63
|
+
$(document).on('click', '.clear-search', function(){
|
64
|
+
$('#quick-search-input').val('')
|
65
|
+
$('.clear-search').addClass('hidden')
|
66
|
+
CmFilter.quick_input_search($('#quick-search-input'))
|
67
|
+
});
|
@@ -1,3 +1,32 @@
|
|
1
|
+
$(document).ready(function(e) {
|
2
|
+
$('.select-2').select2();
|
3
|
+
flatpickr("[data-behaviour='date-only']", {})
|
4
|
+
flatpickr("[data-behaviour='date-time']", {
|
5
|
+
enableTime: true
|
6
|
+
})
|
7
|
+
flatpickr("[data-behaviour='filter'][data-filter-type='date']", {
|
8
|
+
mode: 'range'
|
9
|
+
})
|
10
|
+
Sortable.create($('.columns-list')[0],{
|
11
|
+
handle: '.dragger',
|
12
|
+
animation: 150
|
13
|
+
});
|
14
|
+
});
|
15
|
+
|
16
|
+
$(document).on("keypress keyup blur", "[data-behaviour='decimal-only'], [data-behaviour='filter'][data-filter-type='range']", function (e) {
|
17
|
+
var charCode = (e.which) ? e.which : e.keyCode
|
18
|
+
if (charCode > 31 && (charCode != 46 &&(charCode < 48 || charCode > 57)))
|
19
|
+
return false;
|
20
|
+
return true;
|
21
|
+
});
|
22
|
+
|
23
|
+
$(document).on("keypress keyup blur", "[data-behaviour='integer-only']", function (event) {
|
24
|
+
$(this).val($(this).val().replace(/[^\d].+/, ""));
|
25
|
+
if ((event.which < 48 || event.which > 57)) {
|
26
|
+
event.preventDefault();
|
27
|
+
}
|
28
|
+
});
|
29
|
+
|
1
30
|
$(document).on('click', '.row-action-cell', function(e) {
|
2
31
|
e.stopPropagation();
|
3
32
|
if ($(this).hasClass('opacity-1')) {
|
@@ -11,4 +40,4 @@ $(document).on('click', '.row-action-cell', function(e) {
|
|
11
40
|
} else {
|
12
41
|
return $(this).find('.table-export-popup').addClass('hidden');
|
13
42
|
}
|
14
|
-
});
|
43
|
+
});
|
@@ -0,0 +1,60 @@
|
|
1
|
+
.admin-table-index
|
2
|
+
.table-top
|
3
|
+
p.table-top__total-count = "#{@associated_ar_object.pagy.count} #{@associated_model.ar_model.table_name} found"
|
4
|
+
.table-top__column-action
|
5
|
+
button.secondary-btn.column-btn data-target="#columnActionModal" data-toggle="modal" type="button"
|
6
|
+
span
|
7
|
+
i.fa.fa-columns.bolder
|
8
|
+
span
|
9
|
+
i.fa.fa-angle-down
|
10
|
+
|
11
|
+
.new-admin-table.scrollable
|
12
|
+
table.cm-table
|
13
|
+
thead.cm-table__header
|
14
|
+
tr.header-row
|
15
|
+
th.check-box-space
|
16
|
+
span
|
17
|
+
input.cm-checkbox type="checkbox"
|
18
|
+
- @model.available_fields[@action.name.to_sym].each do |column|
|
19
|
+
th = column.header
|
20
|
+
tbody.cm-table__body
|
21
|
+
- @associated_ar_object.data.each do |ar_object|
|
22
|
+
tr.body-row
|
23
|
+
td.check-box-space
|
24
|
+
span
|
25
|
+
input.cm-checkbox type="checkbox"
|
26
|
+
- @model.available_fields[@action.name.to_sym].each do |column|
|
27
|
+
td
|
28
|
+
span class="#{column.cm_css_class}" = show_field_value(ar_object, column)
|
29
|
+
td.row-action-cell
|
30
|
+
.row-action-tool
|
31
|
+
button.secondary-btn.tool-btn type="button"
|
32
|
+
span
|
33
|
+
i.fa.fa-bars.bolder
|
34
|
+
span
|
35
|
+
i.fa.fa-angle-down
|
36
|
+
.popup-card.table-export-popup.hidden
|
37
|
+
.popup-option
|
38
|
+
a href="#{page_url('edit', ar_object)}"
|
39
|
+
| Edit
|
40
|
+
/ .cm-pagination
|
41
|
+
/ .cm-pagination__lhs Showing 1 to 15 out of 104
|
42
|
+
/ .cm-pagination__rhs
|
43
|
+
/ span.page-move-btn.disabled
|
44
|
+
/ i.fa.fa-angle-double-left.bolder.f14
|
45
|
+
/ span.page-move-btn.disabled
|
46
|
+
/ i.fa.fa-chevron-left.bolder
|
47
|
+
/ span.page-num-btn.active 1
|
48
|
+
/ span.page-num-btn 2
|
49
|
+
/ span.page-num-btn 3
|
50
|
+
/ span.page-num-btn 4
|
51
|
+
/ span.page-num-btn 5
|
52
|
+
/ span.page-move-btn
|
53
|
+
/ i.fa.fa-chevron-right.bolder
|
54
|
+
/ span.page-move-btn
|
55
|
+
/ i.fa.fa-angle-double-right.bolder.f14
|
56
|
+
|
57
|
+
.cm-pagination
|
58
|
+
.cm-pagination__lhs Showing #{@associated_ar_object.pagy.from} to #{@associated_ar_object.pagy.to} out of #{@associated_ar_object.pagy.count}
|
59
|
+
.cm-pagination__rhs
|
60
|
+
== render partial: 'cm_admin/main/cm_pagy_nav', locals: { pagy: @associated_ar_object.pagy }
|
@@ -3,21 +3,21 @@
|
|
3
3
|
nav.pagy_nav.pagination role="navigation" aria-label="pager"
|
4
4
|
|
5
5
|
- if pagy.prev
|
6
|
-
span
|
6
|
+
span ==> link.call(pagy.prev, '<', 'aria-label="previous" class="page-move-btn"')
|
7
7
|
- else
|
8
|
-
span.page-move-btn
|
8
|
+
span ==> link.call('#', '<', 'class="page-move-btn disabled"')
|
9
9
|
|
10
10
|
- pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
11
11
|
- if item.is_a?(Integer) # page link
|
12
|
-
span
|
12
|
+
span ==> link.call(item, item, 'class="page-num-btn"')
|
13
13
|
|
14
14
|
- elsif item.is_a?(String) # current page
|
15
|
-
span.page-num-btn
|
15
|
+
span ==> link.call(item, item, 'class="page-num-btn active"')
|
16
16
|
|
17
17
|
- elsif item == :gap # page gap
|
18
18
|
span.page.gap ==> pagy_t('pagy.nav.gap')
|
19
19
|
|
20
20
|
- if pagy.next
|
21
|
-
span
|
21
|
+
span == link.call(pagy.next, '>', 'aria-label="next" class="page-move-btn"')
|
22
22
|
- else
|
23
|
-
span.page-move-btn
|
23
|
+
span ==> link.call('#', '>', 'class="page-move-btn disabled"')
|
@@ -1,10 +1 @@
|
|
1
|
-
|
2
|
-
.cm-filters-v2__inner
|
3
|
-
.filter-search
|
4
|
-
.form-field
|
5
|
-
.field-input-wrapper
|
6
|
-
- filters.each do |filter|
|
7
|
-
- if filter.filter_type.eql?(:search)
|
8
|
-
input.search-input value="#{params.dig(:filters, :search)}" placeholder="#{filter.placeholder}"
|
9
|
-
span.search-input-icon
|
10
|
-
i.fa.fa-search
|
1
|
+
= generate_filters(filters)
|
@@ -0,0 +1,7 @@
|
|
1
|
+
.nested-fields
|
2
|
+
- @model.available_fields[action_name.to_sym][assoc_name].each do |field|
|
3
|
+
= f.label field.field_name, class: 'field-label'
|
4
|
+
br
|
5
|
+
= input_field_for_column(f, field)
|
6
|
+
- if @reflections.select {|x| x if x.name == assoc_name}.first.macro == :has_many
|
7
|
+
= link_to_remove_association "remove #{assoc_name}", f
|
@@ -0,0 +1,6 @@
|
|
1
|
+
#tasks
|
2
|
+
= f.fields_for table_name do |record|
|
3
|
+
= render partial: '/cm_admin/main/nested_fields', locals: { f: record, assoc_name: table_name }
|
4
|
+
- if @reflections.select {|x| x if x.name == table_name}.first.macro == :has_many
|
5
|
+
.links
|
6
|
+
= link_to_add_association "add #{table_name}", f, table_name, partial: '/cm_admin/main/nested_fields', render_options: {locals: { assoc_name: table_name }}
|
@@ -2,13 +2,13 @@
|
|
2
2
|
.table-top
|
3
3
|
p.table-top__total-count = "#{@ar_object.pagy.count} #{@model.ar_model.table_name} found"
|
4
4
|
.table-top__column-action
|
5
|
-
button.secondary-btn.column-btn data-target="#columnActionModal" data-toggle="modal"
|
5
|
+
button.secondary-btn.column-btn data-bs-target="#columnActionModal" data-bs-toggle="modal"
|
6
6
|
span
|
7
7
|
i.fa.fa-columns.bolder
|
8
8
|
span
|
9
9
|
i.fa.fa-angle-down
|
10
10
|
|
11
|
-
.new-admin-table
|
11
|
+
.new-admin-table.scrollable
|
12
12
|
table.cm-table
|
13
13
|
thead.cm-table__header
|
14
14
|
tr.header-row
|
@@ -16,7 +16,7 @@
|
|
16
16
|
span
|
17
17
|
input.cm-checkbox type="checkbox"
|
18
18
|
- @model.available_fields[:index].each do |column|
|
19
|
-
th = column.header
|
19
|
+
th = column.header
|
20
20
|
tbody.cm-table__body
|
21
21
|
- @ar_object.data.each do |ar_object|
|
22
22
|
tr.body-row
|
@@ -24,7 +24,8 @@
|
|
24
24
|
span
|
25
25
|
input.cm-checkbox type="checkbox"
|
26
26
|
- @model.available_fields[:index].each do |column|
|
27
|
-
td
|
27
|
+
td
|
28
|
+
span class="#{column.cm_css_class}" = show_field_value(ar_object, column)
|
28
29
|
td.row-action-cell
|
29
30
|
.row-action-tool
|
30
31
|
button.secondary-btn.tool-btn type="button"
|
@@ -0,0 +1,5 @@
|
|
1
|
+
ul.nav.nav-pills
|
2
|
+
- @model.available_tabs.each do |nav_item|
|
3
|
+
li.nav-item
|
4
|
+
- nav_item_action_name = nav_item.custom_action.present? ? nav_item.custom_action : 'show'
|
5
|
+
= link_to nav_item.nav_item_name.to_s.titleize, "/cm_admin/#{@model.name.underscore.pluralize}/#{@ar_object.id}/#{nav_item.custom_action}", class: "nav-link #{ nav_item_action_name == action_name ? 'active' : ''}"
|
@@ -3,13 +3,13 @@
|
|
3
3
|
.bread-crumb-area
|
4
4
|
= yield :bread_crumb
|
5
5
|
.nav-title-area
|
6
|
-
p.title-text =
|
7
|
-
p.title-sub-text =
|
6
|
+
p.title-text = action_title
|
7
|
+
p.title-sub-text = action_description
|
8
8
|
- if @model.current_action.name == 'index'
|
9
9
|
.cm-navbar__rhs
|
10
10
|
.export-container
|
11
11
|
.dropdown
|
12
|
-
button.secondary-btn
|
12
|
+
button.secondary-btn data-bs-toggle='dropdown'
|
13
13
|
span
|
14
14
|
i.fa.fa-arrow-down
|
15
15
|
span
|
@@ -18,7 +18,7 @@
|
|
18
18
|
i.fa.fa-angle-down
|
19
19
|
ul.dropdown-menu.export-popup
|
20
20
|
li
|
21
|
-
.popup-option.pointer data-toggle=
|
21
|
+
.popup-option.pointer data-bs-toggle='modal' data-bs-target='#exportmodal'
|
22
22
|
span Export
|
23
23
|
|
24
24
|
a.primary-btn.ml-2 href="#{page_url('new')}"
|
@@ -1,9 +1,12 @@
|
|
1
|
-
|
2
|
-
.index-page
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
.cm-index-page
|
2
|
+
.index-page.page-container
|
3
|
+
.sticky-container
|
4
|
+
== render 'cm_admin/main/top_navbar'
|
5
|
+
- if @model.filters.present?
|
6
|
+
.index-page__filters
|
7
|
+
== render partial: 'cm_admin/main/filters', locals: { filters: @model.filters }
|
8
|
+
.index-page__table-container
|
9
|
+
== render 'cm_admin/main/table'
|
8
10
|
|
9
|
-
= column_pop_up(@model)
|
11
|
+
= column_pop_up(@model)
|
12
|
+
= manage_column_pop_up(@model)
|
@@ -1,13 +1,12 @@
|
|
1
|
-
|
2
|
-
.show-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
p = @ar_object.send(field.field_name)
|
1
|
+
.show-page.page-container
|
2
|
+
.show-page__tabs.sticky-container
|
3
|
+
.cm-tabs-bar
|
4
|
+
== render 'cm_admin/main/top_navbar'
|
5
|
+
== render 'cm_admin/main/tabs'
|
6
|
+
.show-page__inner.scrollable
|
7
|
+
- @model.available_fields[:show].each do |section|
|
8
|
+
.info-section
|
9
|
+
p.section-heading = section.section_name
|
10
|
+
.paper
|
11
|
+
- section.available_section_fields.each do |field|
|
12
|
+
= show_field(@ar_object, field)
|
@@ -5,12 +5,15 @@
|
|
5
5
|
.cm-sidebar__quick-search
|
6
6
|
span
|
7
7
|
i.fa.fa-search
|
8
|
-
input type="text" placeholder="Quick Links"
|
8
|
+
input data-bs-target="#quickSearchModal" data-bs-toggle="modal" type="text" placeholder="Quick Links"
|
9
9
|
|
10
10
|
.cm-sidebar__menu-wrapper
|
11
|
-
=
|
11
|
+
= navigation_links('sidebar')
|
12
12
|
|
13
|
-
|
13
|
+
.sidebar-menu__tabs-wrapper
|
14
|
+
|
15
|
+
|
16
|
+
.sidebar__footer
|
14
17
|
.profile-name
|
15
18
|
span.profile-avatar J
|
16
19
|
| John Doe
|
@@ -28,3 +31,4 @@
|
|
28
31
|
.auth-option
|
29
32
|
= link_to '/sign-out', method: :delete, class: 'auth-link'
|
30
33
|
| Logout
|
34
|
+
= render 'layouts/quick_links'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#quickSearchModal.modal.fade.quick-search-modal aria-hidden="true" aria-labelledby="exampleModalLabel" role="dialog" tabindex="-1"
|
2
|
+
.modal-dialog role="document"
|
3
|
+
.modal-content
|
4
|
+
.modal-body
|
5
|
+
.quick-search-field
|
6
|
+
.form-field
|
7
|
+
.field-input-wrapper
|
8
|
+
input#quick-search-input.search-input placeholder="Search" data-behaviour="quick-input-search" autocomplete="off"
|
9
|
+
span.search-input-icon
|
10
|
+
i.fa.fa-search
|
11
|
+
span.clear-search.hidden
|
12
|
+
i.fa.fa-times
|
13
|
+
.search-results-container.list-area
|
14
|
+
= navigation_links('quick_links')
|
15
|
+
.results-action
|
16
|
+
.select
|
17
|
+
span.move-arrow
|
18
|
+
i.fa.fa-long-arrow-up
|
19
|
+
span.move-arrow
|
20
|
+
i.fa.fa-long-arrow-down
|
21
|
+
span Select
|
22
|
+
button.text-btn.enter-btn
|
23
|
+
| ENTER
|
24
|
+
button.text-btn.open-btn
|
25
|
+
| open
|
@@ -7,7 +7,11 @@ html
|
|
7
7
|
= csrf_meta_tags
|
8
8
|
= csp_meta_tag
|
9
9
|
= stylesheet_link_tag 'cm_admin/cm_admin', media: 'all', 'data-turbolinks-track': 'reload'
|
10
|
+
= stylesheet_pack_tag 'cm_admin/application', 'data-turbolinks-track': 'reload'
|
11
|
+
link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" /
|
10
12
|
= javascript_pack_tag 'cm_admin/application', 'data-turbolinks-track': 'reload'
|
13
|
+
script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"
|
14
|
+
script src="https://raw.githack.com/SortableJS/Sortable/master/Sortable.js"
|
11
15
|
body
|
12
16
|
- flash.each do |type, msg|
|
13
17
|
.alert class="alert-#{type}"
|
@@ -15,4 +19,23 @@ html
|
|
15
19
|
.cm-admin
|
16
20
|
= render 'layouts/left_sidebar_nav'
|
17
21
|
.panel-area
|
18
|
-
|
22
|
+
- if defined?(@action) && @action&.layout_type.to_s == 'cm_association_show'
|
23
|
+
.show-page.page-container
|
24
|
+
.show-page__tabs.sticky-container
|
25
|
+
.cm-tabs-bar
|
26
|
+
== render 'cm_admin/main/top_navbar'
|
27
|
+
== render 'cm_admin/main/tabs'
|
28
|
+
.show-page__inner.scrollable
|
29
|
+
= yield
|
30
|
+
- elsif defined?(@action) && @action&.layout_type.to_s == 'cm_association_index'
|
31
|
+
.show-page.page-container
|
32
|
+
.show-page__tabs.sticky-container
|
33
|
+
.cm-tabs-bar
|
34
|
+
== render 'cm_admin/main/top_navbar'
|
35
|
+
== render 'cm_admin/main/tabs'
|
36
|
+
- if @associated_model.filters.present?
|
37
|
+
.index-page__filters
|
38
|
+
== render partial: 'cm_admin/main/filters', locals: { filters: @associated_model.filters }
|
39
|
+
= yield
|
40
|
+
- else
|
41
|
+
= yield
|