cm-admin 0.1.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.travis.yml +6 -0
- data/Gemfile +7 -1
- data/Gemfile.lock +121 -0
- data/LICENSE.txt +21 -0
- data/README.md +20 -21
- data/app/assets/images/logo.png +0 -0
- data/app/assets/stylesheets/cm_admin/base/auth.scss +73 -0
- data/app/assets/stylesheets/cm_admin/base/common.scss +237 -0
- data/app/assets/stylesheets/cm_admin/base/filters.scss +200 -0
- data/app/assets/stylesheets/cm_admin/base/form.scss +197 -0
- data/app/assets/stylesheets/cm_admin/base/main-nav.scss +47 -0
- data/app/assets/stylesheets/cm_admin/base/navbar.scss +65 -0
- data/app/assets/stylesheets/cm_admin/base/quicksearch.scss +76 -0
- data/app/assets/stylesheets/cm_admin/base/scaffold.scss +96 -0
- data/app/assets/stylesheets/cm_admin/base/show.scss +76 -0
- data/app/assets/stylesheets/cm_admin/base/sidebar.scss +225 -0
- data/app/assets/stylesheets/cm_admin/base/table.scss +320 -0
- data/app/assets/stylesheets/cm_admin/base/tabs.scss +26 -0
- data/{lib/generators/cm_admin/templates/assets/stylesheets/application.css.scss → app/assets/stylesheets/cm_admin/cm_admin.css.scss} +12 -16
- data/app/assets/stylesheets/cm_admin/components/_alerts.scss +101 -0
- data/app/assets/stylesheets/cm_admin/components/_buttons.scss +135 -0
- data/app/assets/stylesheets/cm_admin/components/_dropdown-popup.scss +153 -0
- data/app/assets/stylesheets/cm_admin/components/_input.scss +274 -0
- data/app/assets/stylesheets/cm_admin/components/_modal.scss +34 -0
- data/app/assets/stylesheets/cm_admin/components/_range.scss +31 -0
- data/app/assets/stylesheets/cm_admin/components/_status-tag.scss +68 -0
- data/app/assets/stylesheets/cm_admin/components/index.scss +7 -0
- data/app/assets/stylesheets/cm_admin/dependency/bootstrap.min.css +7 -0
- data/app/assets/stylesheets/cm_admin/helpers/_mixins.scss +20 -0
- data/app/assets/stylesheets/cm_admin/helpers/_variable.scss +87 -0
- data/app/assets/stylesheets/cm_admin/helpers/index.scss +2 -0
- data/app/controllers/cm_admin/application_controller.rb +11 -0
- data/app/controllers/cm_admin/exports_controller.rb +16 -0
- data/app/controllers/cm_admin/static_controller.rb +12 -0
- data/app/helpers/cm_admin/application_helper.rb +11 -0
- data/app/helpers/cm_admin/custom_helper.rb +4 -0
- data/app/javascript/packs/cm_admin/application.js +22 -0
- data/app/javascript/packs/cm_admin/filters.js +347 -0
- data/app/javascript/packs/cm_admin/quick_search.js +67 -0
- data/app/javascript/packs/cm_admin/scaffolds.js +43 -0
- 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 +23 -0
- data/app/views/cm_admin/main/_filters.html.slim +1 -0
- 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 +60 -0
- data/app/views/cm_admin/main/_tabs.html.slim +5 -0
- data/app/views/cm_admin/main/_top_navbar.html.slim +25 -0
- 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/dashboard.html.slim +1 -0
- data/app/views/cm_admin/main/edit.html.slim +19 -0
- data/app/views/cm_admin/main/index.html.slim +12 -0
- data/app/views/cm_admin/main/new.html.slim +22 -0
- data/app/views/cm_admin/main/show.html.slim +12 -0
- data/app/views/cm_admin/static/error_401.html.slim +4 -0
- data/app/views/layouts/_left_sidebar_nav.html.slim +34 -0
- data/app/views/layouts/_quick_links.html.slim +25 -0
- data/app/views/layouts/cm_admin.html.slim +41 -0
- data/app/views/layouts/static.html.slim +18 -0
- data/bin/webpack +18 -0
- data/bin/webpack-dev-server +18 -0
- data/cm_admin.gemspec +21 -31
- data/config/.DS_Store +0 -0
- data/config/initializers/active_record_extension.rb +9 -0
- data/config/routes.rb +19 -0
- data/config/webpack/development.js +5 -0
- data/config/webpack/environment.js +13 -0
- data/config/webpack/production.js +5 -0
- data/config/webpack/test.js +5 -0
- data/config/webpacker.yml +92 -0
- data/lib/cm_admin/constants.rb +33 -0
- data/lib/cm_admin/engine.rb +38 -0
- data/lib/cm_admin/model.rb +152 -0
- data/lib/cm_admin/models/action.rb +36 -0
- data/lib/cm_admin/models/actions/blocks.rb +25 -0
- data/lib/cm_admin/models/blocks.rb +19 -0
- data/lib/cm_admin/models/cm_show_section.rb +20 -0
- data/lib/cm_admin/models/column.rb +61 -0
- 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 +54 -0
- data/lib/cm_admin/models/field.rb +15 -0
- data/lib/cm_admin/models/filter.rb +95 -0
- data/lib/cm_admin/models/form_field.rb +21 -0
- data/lib/cm_admin/models/tab.rb +13 -0
- data/lib/cm_admin/utils.rb +67 -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 +33 -0
- data/lib/cm_admin/view_helpers/form_helper.rb +65 -0
- data/lib/cm_admin/view_helpers/manage_column_popup_helper.rb +75 -0
- data/lib/cm_admin/view_helpers/navigation_helper.rb +34 -0
- data/lib/cm_admin/view_helpers/page_info_helper.rb +57 -0
- data/lib/cm_admin/view_helpers.rb +74 -0
- data/lib/cm_admin.rb +33 -2
- data/lib/generators/cm_admin/install_generator.rb +11 -13
- data/lib/tasks/webpack_install.rake +63 -0
- data/package.json +23 -0
- data/postcss.config.js +12 -0
- data/tmp/cache/webpacker/last-compilation-digest-development +1 -0
- data/yarn.lock +6933 -0
- metadata +155 -42
- data/lib/generators/cm_admin/USAGE +0 -8
- data/lib/generators/cm_admin/templates/assets/images/same-logo.png +0 -0
- data/lib/generators/cm_admin/templates/assets/stylesheets/_variable.scss +0 -11
- data/lib/generators/cm_admin/templates/assets/stylesheets/alignment.scss +0 -111
- data/lib/generators/cm_admin/templates/assets/stylesheets/devise.scss +0 -98
- data/lib/generators/cm_admin/templates/assets/stylesheets/form.scss +0 -131
- data/lib/generators/cm_admin/templates/assets/stylesheets/products.scss +0 -21
- data/lib/generators/cm_admin/templates/assets/stylesheets/scaffold.scss +0 -241
- data/lib/generators/cm_admin/templates/assets/stylesheets/table.scss +0 -90
- data/lib/generators/cm_admin/templates/assets/stylesheets/user.scss +0 -25
- data/lib/generators/cm_admin/templates/layouts/_navbar.html.slim +0 -9
- data/lib/generators/cm_admin/templates/layouts/_side_navbar.html.slim +0 -16
- data/lib/generators/cm_admin/templates/layouts/application.html.slim +0 -25
- data/lib/generators/cm_admin/templates/layouts/initializer.rb +0 -2
- data/lib/generators/cm_admin/templates/views/_filters.html.slim +0 -0
- data/lib/generators/cm_admin/templates/views/_form.erb +0 -38
- data/lib/generators/cm_admin/templates/views/_table.erb +0 -14
- data/lib/generators/cm_admin/templates/views/index.erb +0 -11
- data/lib/generators/cm_admin/templates/views/show.erb +0 -8
- data/lib/generators/cm_admin/view_generator.rb +0 -57
@@ -1,241 +0,0 @@
|
|
1
|
-
@import '_variable.scss';
|
2
|
-
.layout-container{
|
3
|
-
height: 100%;
|
4
|
-
.side-navbar {
|
5
|
-
height: 100%;
|
6
|
-
width: 250px;
|
7
|
-
position: fixed;
|
8
|
-
z-index: 1;
|
9
|
-
top: 0;
|
10
|
-
left: 0;
|
11
|
-
background-color: $background;
|
12
|
-
overflow-x: hidden;
|
13
|
-
|
14
|
-
.logo-section{
|
15
|
-
background-color: $active-bg;
|
16
|
-
margin-bottom: 20px;
|
17
|
-
height: 60px;
|
18
|
-
display: flex;
|
19
|
-
justify-content: center;
|
20
|
-
align-items: center;
|
21
|
-
}
|
22
|
-
|
23
|
-
.nav-link {
|
24
|
-
padding: 0;
|
25
|
-
text-decoration: none;
|
26
|
-
color: $nav-text-color;
|
27
|
-
cursor: pointer;
|
28
|
-
.nav-item {
|
29
|
-
font-family: 'Lato', sans-serif;
|
30
|
-
padding-bottom: 10px;
|
31
|
-
padding-top: 10px;
|
32
|
-
position: relative;
|
33
|
-
.nav-heading {
|
34
|
-
color: $nav-text-color;
|
35
|
-
}
|
36
|
-
}
|
37
|
-
}
|
38
|
-
|
39
|
-
.nav-item.active {
|
40
|
-
background-color: $active-bg;
|
41
|
-
border-left: $nav-active-border;
|
42
|
-
.nav-heading {
|
43
|
-
color: $nav-text-color;
|
44
|
-
}
|
45
|
-
}
|
46
|
-
.nav-item:hover{
|
47
|
-
background-color: #4b4b4b;
|
48
|
-
.nav-heading {
|
49
|
-
color: $nav-text-color;
|
50
|
-
}
|
51
|
-
}
|
52
|
-
.arrow-right {
|
53
|
-
width: 0;
|
54
|
-
height: 0;
|
55
|
-
border-top: 8px solid transparent;
|
56
|
-
border-bottom: 8px solid transparent;
|
57
|
-
border-left: 10px solid #1A1D1F;
|
58
|
-
position: absolute;
|
59
|
-
left: 10px;
|
60
|
-
top: 17px;
|
61
|
-
}
|
62
|
-
}
|
63
|
-
.main {
|
64
|
-
margin-left: 250px;
|
65
|
-
overflow-y: auto;
|
66
|
-
overflow-x: hidden;
|
67
|
-
background-color: $main-background;
|
68
|
-
display: flex;
|
69
|
-
flex-direction: column;
|
70
|
-
|
71
|
-
.main-container {
|
72
|
-
}
|
73
|
-
|
74
|
-
.nav-link, .nav-link:hover, .nav-link:visited {
|
75
|
-
color: #188EFB;
|
76
|
-
text-decoration: none;
|
77
|
-
cursor: pointer;
|
78
|
-
}
|
79
|
-
}
|
80
|
-
}
|
81
|
-
|
82
|
-
body {
|
83
|
-
width: 100%;
|
84
|
-
margin: 0px;
|
85
|
-
padding: 0px;
|
86
|
-
font-family: 'Lato', sans-serif;
|
87
|
-
}
|
88
|
-
|
89
|
-
.btn-default, .btn.btn-default {
|
90
|
-
background-color: $nav-btn-color;
|
91
|
-
padding: 12px 30px;
|
92
|
-
color: black;
|
93
|
-
font-size: 16px;
|
94
|
-
width: fit-content;
|
95
|
-
text-transform: none;
|
96
|
-
display: block;
|
97
|
-
text-align: center;
|
98
|
-
font-weight: bold;
|
99
|
-
border-radius: 0.5rem;
|
100
|
-
border: none;
|
101
|
-
cursor: pointer;
|
102
|
-
}
|
103
|
-
|
104
|
-
.circular-border {
|
105
|
-
border-radius: 50%;
|
106
|
-
}
|
107
|
-
|
108
|
-
.f12 {
|
109
|
-
font-size: 12px;
|
110
|
-
}
|
111
|
-
|
112
|
-
.f14 {
|
113
|
-
font-size: 14px;
|
114
|
-
}
|
115
|
-
|
116
|
-
|
117
|
-
.f16 {
|
118
|
-
font-size: 16px;
|
119
|
-
}
|
120
|
-
|
121
|
-
.f20 {
|
122
|
-
font-size: 20px;
|
123
|
-
}
|
124
|
-
.f24 {
|
125
|
-
font-size: 24px;
|
126
|
-
}
|
127
|
-
|
128
|
-
//Line Height
|
129
|
-
.lh-32{
|
130
|
-
line-height: 32px;
|
131
|
-
}
|
132
|
-
|
133
|
-
a:hover, a {
|
134
|
-
text-decoration: none !important;
|
135
|
-
}
|
136
|
-
|
137
|
-
#notice {
|
138
|
-
color: #36B37E;
|
139
|
-
font-weight: bold;
|
140
|
-
font-size: 14px;
|
141
|
-
padding-left: 10px;
|
142
|
-
}
|
143
|
-
|
144
|
-
.error_message_div {
|
145
|
-
color: #ff6700;
|
146
|
-
padding-top: 5px;
|
147
|
-
font-weight: bold;
|
148
|
-
}
|
149
|
-
.border-top{
|
150
|
-
border-top: 1px solid #ccc;
|
151
|
-
|
152
|
-
}
|
153
|
-
.border-bottom{
|
154
|
-
border-bottom: 1px solid #ccc;
|
155
|
-
}
|
156
|
-
|
157
|
-
h6 a{
|
158
|
-
color: white !important;
|
159
|
-
}
|
160
|
-
a:hover{
|
161
|
-
color: lightgrey !important;
|
162
|
-
}
|
163
|
-
|
164
|
-
.breadcrumb-nav {
|
165
|
-
a {
|
166
|
-
color: lightgrey !important;
|
167
|
-
}
|
168
|
-
}
|
169
|
-
|
170
|
-
.active{
|
171
|
-
a{
|
172
|
-
color: white !important;
|
173
|
-
}
|
174
|
-
}
|
175
|
-
.add-new-btn{
|
176
|
-
background-color: $nav-btn-color;
|
177
|
-
height: 50px;
|
178
|
-
position: fixed;
|
179
|
-
right: 30px;
|
180
|
-
bottom: 30px;
|
181
|
-
box-shadow: -1px 4px 12px -3px rgba(0,0,0,0.75);
|
182
|
-
|
183
|
-
z-index: 3;
|
184
|
-
width: 50px;
|
185
|
-
display: flex;
|
186
|
-
justify-content: center;
|
187
|
-
align-items: center;
|
188
|
-
border-radius: 50%;
|
189
|
-
}
|
190
|
-
|
191
|
-
//Show page Tabs
|
192
|
-
|
193
|
-
|
194
|
-
#nav-tab{
|
195
|
-
padding-top: 10px;
|
196
|
-
padding-left: 30px;
|
197
|
-
background-color: #ffffff;
|
198
|
-
a{
|
199
|
-
color: #000000;
|
200
|
-
}
|
201
|
-
a:hover{
|
202
|
-
background-color: white !important;
|
203
|
-
color: black !important;
|
204
|
-
}
|
205
|
-
.active{
|
206
|
-
background-color: #ffffff;
|
207
|
-
border: none;
|
208
|
-
border-bottom: $nav-active-border !important;
|
209
|
-
}
|
210
|
-
}
|
211
|
-
.hidden {
|
212
|
-
display: none !important;
|
213
|
-
}
|
214
|
-
.parts-pagination {
|
215
|
-
display: flex;
|
216
|
-
flex-direction: row;
|
217
|
-
justify-content: space-between;
|
218
|
-
width: 100%;
|
219
|
-
}
|
220
|
-
.footer-section {
|
221
|
-
padding: 0px 24px;
|
222
|
-
display: flex;
|
223
|
-
justify-content: space-between;
|
224
|
-
align-items: center;
|
225
|
-
background-color: white;
|
226
|
-
font-size: 14px;
|
227
|
-
color: black;
|
228
|
-
box-shadow: inset 0px 1px 0px rgba(148, 151, 155, 0.3);
|
229
|
-
.next-page:hover, .previous-page:hover {
|
230
|
-
background-color: $nav-btn-color;
|
231
|
-
}
|
232
|
-
.previous-page {
|
233
|
-
.icon-Arrow {
|
234
|
-
transform: rotate(180deg);
|
235
|
-
display: inline-block;
|
236
|
-
}
|
237
|
-
}
|
238
|
-
}
|
239
|
-
.pointer {
|
240
|
-
cursor: pointer;
|
241
|
-
}
|
@@ -1,90 +0,0 @@
|
|
1
|
-
@import '_variable.scss';
|
2
|
-
|
3
|
-
.admin-table{
|
4
|
-
display: flex;
|
5
|
-
flex-flow: column;
|
6
|
-
width:95% !important;
|
7
|
-
background-color: $table-background;
|
8
|
-
margin: 0 auto;
|
9
|
-
margin-top: 20px;
|
10
|
-
border-radius: 10px;
|
11
|
-
margin-bottom: 20px;
|
12
|
-
}
|
13
|
-
.table-container{
|
14
|
-
position: relative;
|
15
|
-
height: 80%;
|
16
|
-
background-color: $table-background;
|
17
|
-
z-index: 1;
|
18
|
-
.table-hover{
|
19
|
-
width: 100%;
|
20
|
-
}
|
21
|
-
.table-div {
|
22
|
-
height: 100%;
|
23
|
-
overflow-y: auto;
|
24
|
-
}
|
25
|
-
.table-div::-webkit-scrollbar {
|
26
|
-
display: none;
|
27
|
-
}
|
28
|
-
.cm-pagination {
|
29
|
-
padding: 5px;
|
30
|
-
padding-bottom: 30px;
|
31
|
-
.footer-text {
|
32
|
-
font-size: 14px;
|
33
|
-
color: #000;
|
34
|
-
padding: 10px;
|
35
|
-
font-weight: bold;
|
36
|
-
border-radius: 0.3rem;
|
37
|
-
}
|
38
|
-
.next-page, .previous-page {
|
39
|
-
font-size: 20px;
|
40
|
-
padding: 10px 50px;
|
41
|
-
}
|
42
|
-
}
|
43
|
-
}
|
44
|
-
|
45
|
-
.heading-container, .container, .filter-container{
|
46
|
-
background-color: #fff;
|
47
|
-
width: 100% !important;
|
48
|
-
}
|
49
|
-
|
50
|
-
.filter-container {
|
51
|
-
.filters {
|
52
|
-
display: flex;
|
53
|
-
flex-direction: row;
|
54
|
-
overflow-x: visible;
|
55
|
-
margin-right: 20px;
|
56
|
-
padding-bottom: 10px;
|
57
|
-
.input-group {
|
58
|
-
margin: 10px 0px 0px 10px;
|
59
|
-
min-width: 300px;
|
60
|
-
.form-control:focus {
|
61
|
-
padding: 6px 12px;
|
62
|
-
background-image: none;
|
63
|
-
box-shadow: none;
|
64
|
-
border: 1px solid #d5d5d5;
|
65
|
-
}
|
66
|
-
.form-control {
|
67
|
-
box-shadow: none;
|
68
|
-
border: 1px solid #d5d5d5;
|
69
|
-
border-radius: 0;
|
70
|
-
color: #1A1D1F;
|
71
|
-
}
|
72
|
-
|
73
|
-
select.form-control {
|
74
|
-
border-radius: 0;
|
75
|
-
border: 1px solid #d5d5d5;
|
76
|
-
}
|
77
|
-
}
|
78
|
-
}
|
79
|
-
.filters::-webkit-scrollbar {
|
80
|
-
display: none;
|
81
|
-
}
|
82
|
-
}
|
83
|
-
|
84
|
-
.heading-container {
|
85
|
-
background-color: $background;
|
86
|
-
height: 60px;
|
87
|
-
.container-header {
|
88
|
-
padding: 20px 20px;
|
89
|
-
}
|
90
|
-
}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
// Place all the styles related to the user controller here.
|
2
|
-
// They will automatically be included in application.css.
|
3
|
-
// You can use Sass (SCSS) here: https://sass-lang.com/
|
4
|
-
@import '_variable.scss';
|
5
|
-
|
6
|
-
.user-foreground{
|
7
|
-
background-color: $table-background !important;
|
8
|
-
width: 95% !important;
|
9
|
-
z-index: 1;
|
10
|
-
border-radius: 7px;
|
11
|
-
margin: 20px auto;
|
12
|
-
height: 60vh;
|
13
|
-
box-shadow: -1px 4px 12px -3px rgba(0,0,0,0.18);
|
14
|
-
|
15
|
-
.user-details{
|
16
|
-
display: grid;
|
17
|
-
position: relative;
|
18
|
-
grid-template-columns: 1fr 1fr;
|
19
|
-
width: 40%;
|
20
|
-
margin-top: 65px;
|
21
|
-
|
22
|
-
}
|
23
|
-
|
24
|
-
}
|
25
|
-
|
@@ -1,16 +0,0 @@
|
|
1
|
-
.side-navbar
|
2
|
-
|
3
|
-
.logo-section
|
4
|
-
.tw-logo = image_tag('same-logo.png', alt: 'logo image', width: '24px', height: '24px')
|
5
|
-
|
6
|
-
|
7
|
-
.nav-tabs-section
|
8
|
-
= link_to '/', class: 'nav-link'
|
9
|
-
.nav-item class="#{(controller_name == 'users') ? 'active' : ''}"
|
10
|
-
span.p-4.nav-heading.f14 Users
|
11
|
-
|
12
|
-
|
13
|
-
.sidenav-footer-section
|
14
|
-
= link_to '/sign-out', method: :delete, class: 'nav-link'
|
15
|
-
.nav-item
|
16
|
-
span.p-4.nav-heading.f14 Logout
|
@@ -1,25 +0,0 @@
|
|
1
|
-
doctype html
|
2
|
-
html
|
3
|
-
head
|
4
|
-
title
|
5
|
-
| TishWish
|
6
|
-
= csrf_meta_tags
|
7
|
-
= csp_meta_tag
|
8
|
-
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
|
9
|
-
= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload'
|
10
|
-
|
11
|
-
body
|
12
|
-
- unless controller_path.include?('devise')
|
13
|
-
.layout-container
|
14
|
-
= render 'layouts/side_navbar'
|
15
|
-
.main
|
16
|
-
.main-container
|
17
|
-
= render 'layouts/navbar'
|
18
|
-
= yield
|
19
|
-
- else
|
20
|
-
.main
|
21
|
-
.heading
|
22
|
-
h3
|
23
|
-
span TishWish Admin Panel
|
24
|
-
.devise-form-container
|
25
|
-
= yield
|
File without changes
|
@@ -1,38 +0,0 @@
|
|
1
|
-
.form-container
|
2
|
-
= simple_form_for(@template,:url => admin_product_templates_path(@product), html: { class: "new product_template-form", autocomplete: "off" }) do |f|
|
3
|
-
= f.error_notification
|
4
|
-
.custom-validations.error-color
|
5
|
-
<% options[:column_names].each do |column_name| %>
|
6
|
-
<% column_name_arr = column_name.split(':') %>
|
7
|
-
<% case 'string'
|
8
|
-
when 'integer' %>
|
9
|
-
= f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
|
10
|
-
.<%= column_name_arr[0] %>.error-color.hidden
|
11
|
-
p Please fill height
|
12
|
-
<% when 'string' %>
|
13
|
-
= f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
|
14
|
-
.<%= column_name_arr[0] %>.error-color.hidden
|
15
|
-
p Please fill height
|
16
|
-
<% when 'select_multiple' %>
|
17
|
-
= f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
|
18
|
-
.<%= column_name_arr[0] %>.error-color.hidden
|
19
|
-
p Please fill height
|
20
|
-
<% when 'select_single' %>
|
21
|
-
= f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
|
22
|
-
.<%= column_name_arr[0] %>.error-color.hidden
|
23
|
-
p Please fill height
|
24
|
-
<% when 'checkbox' %>
|
25
|
-
= f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
|
26
|
-
.<%= column_name_arr[0] %>.error-color.hidden
|
27
|
-
p Please fill height
|
28
|
-
<% when 'datetime' %>
|
29
|
-
= f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
|
30
|
-
.<%= column_name_arr[0] %>.error-color.hidden
|
31
|
-
p Please fill height
|
32
|
-
<% when 'file' %>
|
33
|
-
= f.label :file, "Upload .pdf or .ai "
|
34
|
-
= f.file_field :file, input_html: {}
|
35
|
-
<% end %>
|
36
|
-
<% end %>
|
37
|
-
|
38
|
-
= f.button :submit, "Create new Template", class: "float-right", data: {class_name: 'product_template-form',path_name: "admin/products/#{@product.id}/templates", button_name: 'Create new template'}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
table.table-hover
|
2
|
-
thead
|
3
|
-
tr.border-bottom.border-top
|
4
|
-
<% options[:column_names].each do |column_name| %>
|
5
|
-
th.p-3 <%= column_name.titleize %>
|
6
|
-
<% end %>
|
7
|
-
tbody
|
8
|
-
- @filtered_result.data.each do |<%= name.singularize %>|
|
9
|
-
tr.border-bottom
|
10
|
-
<% options[:column_names].each do |column_name| %>
|
11
|
-
td.p-3 = <%= name.singularize %>.<%= column_name %>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
= cm_paginate(@filtered_result.facets)
|
@@ -1,11 +0,0 @@
|
|
1
|
-
- content_for :bread_crumb do
|
2
|
-
h6.text-light.breadcrumb-nav
|
3
|
-
= link_to "Home ", admin_<%= name %>_path
|
4
|
-
'/
|
5
|
-
span.active = link_to "<%= name.titleize %>", admin_<%= name %>_path
|
6
|
-
|
7
|
-
.admin-table
|
8
|
-
== render 'filters'
|
9
|
-
|
10
|
-
.table-container
|
11
|
-
== render 'table'
|
@@ -1,57 +0,0 @@
|
|
1
|
-
module CmAdmin
|
2
|
-
module ViewActionTemplate
|
3
|
-
def copy_index_files
|
4
|
-
template "views/index.erb", "app/views/admin/#{name}/index.html.slim"
|
5
|
-
template "views/_table.erb", "app/views/admin/#{name}/_table.html.slim"
|
6
|
-
copy_file "views/_filters.html.slim", "app/views/admin/#{name}/_filters.html.slim"
|
7
|
-
end
|
8
|
-
|
9
|
-
def copy_show_files
|
10
|
-
template "views/show.erb", "app/views/admin/#{name}/show.html.slim"
|
11
|
-
end
|
12
|
-
|
13
|
-
def copy_form_files
|
14
|
-
template "views/_form.erb", "app/views/admin/#{name}/_form.html.slim"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
class ViewGenerator < Rails::Generators::NamedBase
|
19
|
-
include ViewActionTemplate
|
20
|
-
desc <<-DESC.strip_heredoc
|
21
|
-
Generate views for specific action of the model in admin
|
22
|
-
Use -c to specify which column names you want to be present on page.
|
23
|
-
Atleast one option is mandatory.
|
24
|
-
For example:
|
25
|
-
rails g cm_admin:view NAME page_type -c options
|
26
|
-
rails g cm_admin:view products form -c title:string price:integer
|
27
|
-
rails g cm_admin:view products index -c title price
|
28
|
-
|
29
|
-
NAME is the table name
|
30
|
-
page_type is the page you want to copy files. It can be the following
|
31
|
-
index, show, form.
|
32
|
-
|
33
|
-
This will create a files respectively at app/views/admin/#{name}/***.html.slim
|
34
|
-
|
35
|
-
DESC
|
36
|
-
|
37
|
-
source_root File.expand_path('templates', __dir__)
|
38
|
-
|
39
|
-
argument :page_type, required: true, default: nil,
|
40
|
-
desc: "The scope to copy views to"
|
41
|
-
class_option :column_names, aliases: "-c", type: :array,
|
42
|
-
desc: "Select specific columns in the files to be be added."
|
43
|
-
|
44
|
-
def create_new_file
|
45
|
-
if page_type == 'index'
|
46
|
-
copy_index_files
|
47
|
-
elsif page_type == 'form'
|
48
|
-
copy_form_files
|
49
|
-
elsif page_type == 'show'
|
50
|
-
copy_show_files
|
51
|
-
else
|
52
|
-
puts "Wrong page_type provided. It can be either index or show"
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
57
|
-
end
|