slash_admin 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +95 -0
  3. data/app/assets/config/relax_admin_manifest.js +2 -0
  4. data/app/assets/images/slash_admin/en.png +0 -0
  5. data/app/assets/images/slash_admin/favicon.png +0 -0
  6. data/app/assets/images/slash_admin/fr.png +0 -0
  7. data/app/assets/javascripts/slash_admin/application.js +344 -0
  8. data/app/assets/javascripts/slash_admin/custom.js +0 -0
  9. data/app/assets/stylesheets/slash_admin/alert.scss +29 -0
  10. data/app/assets/stylesheets/slash_admin/application.scss +1469 -0
  11. data/app/assets/stylesheets/slash_admin/colors.scss +17 -0
  12. data/app/assets/stylesheets/slash_admin/custom.scss +0 -0
  13. data/app/controllers/slash_admin/application_controller.rb +17 -0
  14. data/app/controllers/slash_admin/base_controller.rb +45 -0
  15. data/app/controllers/slash_admin/batch_actions_controller.rb +17 -0
  16. data/app/controllers/slash_admin/dashboard_controller.rb +11 -0
  17. data/app/controllers/slash_admin/models_controller.rb +325 -0
  18. data/app/controllers/slash_admin/security/sessions_controller.rb +29 -0
  19. data/app/controllers/slash_admin/selectize_controller.rb +49 -0
  20. data/app/helpers/slash_admin/application_helper.rb +212 -0
  21. data/app/helpers/slash_admin/menu_helper.rb +14 -0
  22. data/app/helpers/slash_admin/widgets_helper.rb +7 -0
  23. data/app/jobs/slash_admin/application_job.rb +4 -0
  24. data/app/mailers/slash_admin/application_mailer.rb +6 -0
  25. data/app/models/slash_admin/admin.rb +46 -0
  26. data/app/models/slash_admin/admin_ability.rb +11 -0
  27. data/app/models/slash_admin/application_record.rb +5 -0
  28. data/app/views/layouts/slash_admin/admin_user.html.erb +16 -0
  29. data/app/views/layouts/slash_admin/application.html.erb +40 -0
  30. data/app/views/slash_admin/base/_data_belongs_to.html.erb +37 -0
  31. data/app/views/slash_admin/base/_data_list.html.erb +276 -0
  32. data/app/views/slash_admin/base/_data_nestable.html.erb +33 -0
  33. data/app/views/slash_admin/base/_data_new.html.erb +16 -0
  34. data/app/views/slash_admin/base/_data_show.html.erb +72 -0
  35. data/app/views/slash_admin/base/_filters.html.erb +60 -0
  36. data/app/views/slash_admin/base/_translatable_fields.html.erb +23 -0
  37. data/app/views/slash_admin/base/edit.html.erb +26 -0
  38. data/app/views/slash_admin/base/index.html.erb +47 -0
  39. data/app/views/slash_admin/base/index.xls.erb +27 -0
  40. data/app/views/slash_admin/base/nestable.html.erb +28 -0
  41. data/app/views/slash_admin/base/new.html.erb +26 -0
  42. data/app/views/slash_admin/base/show.html.erb +22 -0
  43. data/app/views/slash_admin/custom_fields/_color.html.erb +2 -0
  44. data/app/views/slash_admin/custom_fields/_email.html.erb +2 -0
  45. data/app/views/slash_admin/custom_fields/_google_map.html.erb +72 -0
  46. data/app/views/slash_admin/custom_fields/_nested_belongs_to.html.erb +55 -0
  47. data/app/views/slash_admin/custom_fields/_password.html.erb +2 -0
  48. data/app/views/slash_admin/custom_fields/_select.html.erb +2 -0
  49. data/app/views/slash_admin/custom_fields/_tags.html.erb +2 -0
  50. data/app/views/slash_admin/custom_fields/_wysiwyg.html.erb +2 -0
  51. data/app/views/slash_admin/dashboard/home.html.erb +5 -0
  52. data/app/views/slash_admin/dashboard/widgets/_statistic_chart.html.erb +0 -0
  53. data/app/views/slash_admin/dashboard/widgets/_statistic_progress_tile.html.erb +29 -0
  54. data/app/views/slash_admin/fields/_belongs_to.html.erb +9 -0
  55. data/app/views/slash_admin/fields/_boolean.html.erb +2 -0
  56. data/app/views/slash_admin/fields/_carrierwave.html.erb +15 -0
  57. data/app/views/slash_admin/fields/_date.html.erb +2 -0
  58. data/app/views/slash_admin/fields/_decimal.html.erb +2 -0
  59. data/app/views/slash_admin/fields/_form_group.html.erb +12 -0
  60. data/app/views/slash_admin/fields/_has_many.html.erb +12 -0
  61. data/app/views/slash_admin/fields/_has_many_row.html.erb +18 -0
  62. data/app/views/slash_admin/fields/_has_one.html.erb +24 -0
  63. data/app/views/slash_admin/fields/_integer.html.erb +2 -0
  64. data/app/views/slash_admin/fields/_json.html.erb +14 -0
  65. data/app/views/slash_admin/fields/_nested_has_many.html.erb +14 -0
  66. data/app/views/slash_admin/fields/_number.html.erb +2 -0
  67. data/app/views/slash_admin/fields/_string.html.erb +2 -0
  68. data/app/views/slash_admin/fields/_text.html.erb +2 -0
  69. data/app/views/slash_admin/security/sessions/new.html.erb +30 -0
  70. data/app/views/slash_admin/shared/_batch_actions.html.erb +21 -0
  71. data/app/views/slash_admin/shared/_better_paginate.html.erb +30 -0
  72. data/app/views/slash_admin/shared/_breadcrumb.html.erb +30 -0
  73. data/app/views/slash_admin/shared/_debug.html.erb +24 -0
  74. data/app/views/slash_admin/shared/_errors_data_new.html.erb +12 -0
  75. data/app/views/slash_admin/shared/_header.html.erb +38 -0
  76. data/app/views/slash_admin/shared/_menu.html.erb +57 -0
  77. data/app/views/slash_admin/shared/_new_form_buttons.html.erb +9 -0
  78. data/app/views/slash_admin/shared/_sub_header.html.erb +11 -0
  79. data/config/initializers/validators.rb +13 -0
  80. data/config/locales/slash_admin.en.yml +67 -0
  81. data/config/locales/slash_admin.fr.yml +72 -0
  82. data/config/routes.rb +16 -0
  83. data/db/migrate/20170512104248_create_slash_admin_admins.rb +19 -0
  84. data/lib/batch_translation.rb +19 -0
  85. data/lib/generators/slash_admin/controllers/controllers_generator.rb +16 -0
  86. data/lib/generators/slash_admin/controllers/templates/controllers.erb +9 -0
  87. data/lib/generators/slash_admin/install/install_generator.rb +13 -0
  88. data/lib/generators/slash_admin/install/templates/install.erb +14 -0
  89. data/lib/generators/slash_admin/override_admin/override_admin_generator.rb +13 -0
  90. data/lib/generators/slash_admin/override_admin/templates/admin.erb +46 -0
  91. data/lib/generators/slash_admin/override_session/override_session_generator.rb +13 -0
  92. data/lib/generators/slash_admin/override_session/templates/session.erb +27 -0
  93. data/lib/generators/slash_admin/permissions/permissions_generator.rb +13 -0
  94. data/lib/generators/slash_admin/permissions/templates/permissions.erb +11 -0
  95. data/lib/slash_admin.rb +29 -0
  96. data/lib/slash_admin/engine.rb +8 -0
  97. data/lib/slash_admin/version.rb +3 -0
  98. data/lib/tasks/slash_admin_tasks.rake +4 -0
  99. data/vendor/assets/javascripts/bootstrap-material-datetimepicker.js +1295 -0
  100. data/vendor/assets/javascripts/codemirror/codemirror.js +9657 -0
  101. data/vendor/assets/javascripts/codemirror/lint/json-lint.js +37 -0
  102. data/vendor/assets/javascripts/codemirror/lint/jsonlint.js +432 -0
  103. data/vendor/assets/javascripts/codemirror/lint/lint.js +252 -0
  104. data/vendor/assets/javascripts/codemirror/mode/javascript.js +865 -0
  105. data/vendor/assets/javascripts/jquery.nestable.js +910 -0
  106. data/vendor/assets/javascripts/jquery.tagsinput-revisited.min.js +5 -0
  107. data/vendor/assets/javascripts/toastr.js +6 -0
  108. data/vendor/assets/stylesheets/animate.css +1579 -0
  109. data/vendor/assets/stylesheets/bootstrap-material-datetimepicker.css +82 -0
  110. data/vendor/assets/stylesheets/codemirror/codemirror.css +346 -0
  111. data/vendor/assets/stylesheets/codemirror/lint/lint.css +73 -0
  112. data/vendor/assets/stylesheets/codemirror/theme/relax-seti.css +41 -0
  113. data/vendor/assets/stylesheets/jquery.nestable.css +121 -0
  114. data/vendor/assets/stylesheets/jquery.tagsinput-revisited.min.css +1 -0
  115. data/vendor/assets/stylesheets/sweetalert.css +935 -0
  116. data/vendor/assets/stylesheets/toastr.css +1 -0
  117. metadata +509 -0
@@ -0,0 +1,29 @@
1
+ .alert {
2
+ z-index: 9999;
3
+ top: 0;
4
+ position: fixed;
5
+ border-radius: 0;
6
+ border: 0;
7
+ color: #fff;
8
+ width: 100%;
9
+ }
10
+
11
+ .alert-info {
12
+ background-color: #3498db;
13
+ border-bottom: 1px solid darken(#2980b9, 10%)
14
+ }
15
+
16
+ .alert-warning {
17
+ background-color: #f1c40f;
18
+ border-bottom: 1px solid darken(#f39c12, 10%)
19
+ }
20
+
21
+ .alert-success {
22
+ background-color: #2ecc71;
23
+ border-bottom: 1px solid darken(#27ae60, 10%)
24
+ }
25
+
26
+ .alert-danger {
27
+ background-color: #e74c3c;
28
+ border-bottom: 1px solid darken(#c0392b, 10%)
29
+ }
@@ -0,0 +1,1469 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require font-awesome
14
+ *= require animate
15
+ *= require toastr
16
+ *= require jquery.nestable
17
+ *= require sweetalert
18
+ *= require selectize
19
+ *= require bootstrap-datepicker
20
+ *= require bootstrap-material-datetimepicker
21
+ *= require jquery.tagsinput-revisited.min
22
+ *= require jquery.minicolors
23
+ *= require slash_admin/colors
24
+ *= require slash_admin/alert
25
+ *= require codemirror/codemirror
26
+ *= require codemirror/theme/relax-seti
27
+ *= require codemirror/lint/lint
28
+ *= require_self
29
+ *= require slash_admin/custom
30
+ *= require_tree .
31
+ */
32
+
33
+ @import 'slash_admin/colors';
34
+ @import 'slash_admin/alert';
35
+
36
+ $pagination-padding-y: .4rem !default;
37
+ $pagination-border-width: 0 !default;
38
+ $border-radius: .15rem !default;
39
+
40
+ @import 'bootstrap';
41
+ @import 'font-awesome';
42
+
43
+ @import 'https://cdnjs.cloudflare.com/ajax/libs/froala-editor/2.6.0/css/froala_editor.pkgd.min.css';
44
+ @import 'https://cdnjs.cloudflare.com/ajax/libs/froala-editor/2.6.0/css/froala_style.min.css';
45
+
46
+ @import url('https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700&subset=all');
47
+ @import url('https://cdnjs.cloudflare.com/ajax/libs/simple-line-icons/2.4.1/css/simple-line-icons.css');
48
+ @import url('https://fonts.googleapis.com/icon?family=Material+Icons');
49
+
50
+ body {
51
+ font-family: 'Open Sans', sans-serif;
52
+ }
53
+
54
+ h1,
55
+ h2,
56
+ h3,
57
+ h4,
58
+ h5,
59
+ h6 {
60
+ font-weight: 200;
61
+ }
62
+
63
+ .turbolinks-progress-bar {
64
+ background-color: $primary;
65
+ height: 3px;
66
+ }
67
+
68
+ .btn {
69
+ cursor: pointer;
70
+ }
71
+
72
+ .btn-success,
73
+ .btn-danger,
74
+ .btn-primary,
75
+ .btn-info,
76
+ .btn-warning {
77
+ color: #fff;
78
+
79
+ &:focus,
80
+ &:hover {
81
+ color: #fff;
82
+ }
83
+ }
84
+
85
+ #admin-dashboard {
86
+ background: $secondary;
87
+ padding-top: 68px;
88
+ margin: 0;
89
+
90
+ label.form-control-label {
91
+ display: block;
92
+ font-weight: 600;
93
+ }
94
+
95
+ label.required::after {
96
+ content: '*';
97
+ margin-left: 5px;
98
+ }
99
+
100
+ .btn-flat {
101
+ background: transparent;
102
+
103
+ &:hover {
104
+ background: $lightgrey;
105
+ }
106
+ }
107
+
108
+ .grey-block-form > {
109
+ .form-group {
110
+ background: #f9f9f9;
111
+ padding: 15px;
112
+ }
113
+ }
114
+
115
+ .btn-add-assoc {
116
+ border-radius: 0;
117
+ padding: 8px 10px;
118
+ }
119
+
120
+ .nested-fields {
121
+ background: #eef1f5;
122
+ padding: 10px 15px;
123
+
124
+ .btn-remove {
125
+ margin-top: 10px;
126
+ border-radius: 0;
127
+ }
128
+ }
129
+
130
+ .dashboard-title {
131
+ color: #666;
132
+ font-size: 1.6em;
133
+ font-weight: 300;
134
+ display: block;
135
+ margin: 15px 0;
136
+ }
137
+
138
+ .background-default {
139
+ background: #e1e5ec;
140
+ padding: 15px;
141
+ }
142
+
143
+ .show-attr-title {
144
+ font-weight: bold;
145
+ text-transform: uppercase;
146
+ margin-bottom: 15px;
147
+ display: inline-block;
148
+ }
149
+
150
+ .tag-sucess {
151
+ background: $green;
152
+ }
153
+
154
+ .tag-danger {
155
+ background: $red;
156
+ }
157
+
158
+ .tag-boolean {
159
+ width: 45px;
160
+ text-align: center;
161
+ display: inline-block;
162
+ }
163
+
164
+ .errors {
165
+ color: $red;
166
+ display: block;
167
+
168
+ &:not(:empty) {
169
+ margin-bottom: 10px;
170
+ }
171
+ }
172
+
173
+ .field_with_errors {
174
+ label {
175
+ color: $red;
176
+ }
177
+
178
+ input {
179
+ border-color: $red !important;
180
+ }
181
+
182
+ & + .form-control-feedback {
183
+ color: $red;
184
+ }
185
+ }
186
+
187
+ .block-language {
188
+ display: block;
189
+ margin: 15px 0;
190
+ }
191
+
192
+ .translations {
193
+ color: $primary;
194
+ text-transform: uppercase;
195
+ font-weight: bold;
196
+ font-size: 1em;
197
+ }
198
+
199
+ &.page-sidebar-closed {
200
+ .navbar .navbar-brand {
201
+ display: none !important;
202
+ }
203
+
204
+ .navbar .page-logo {
205
+ width: 54px;
206
+ }
207
+
208
+ .page-container {
209
+ .page-sidebar {
210
+ width: 54px;
211
+
212
+ ul.nav {
213
+ li.nav-item {
214
+ &.active::after,
215
+ &:hover::after {
216
+ top: 18px;
217
+ }
218
+
219
+ a.nav-link {
220
+ min-height: 54px;
221
+
222
+ [class^=icon-] {
223
+ margin: 0;
224
+ }
225
+
226
+ .title {
227
+ display: none;
228
+ }
229
+ }
230
+
231
+ ul.sub-menu {
232
+ margin-left: 54px;
233
+ }
234
+ }
235
+ }
236
+ }
237
+
238
+ .page-content {
239
+ margin-left: 54px;
240
+ }
241
+ }
242
+ }
243
+
244
+ .form-control {
245
+ transition: all ease .6s;
246
+ border: 1px solid #c2cad8;
247
+
248
+ &:focus {
249
+ border-color: #93a1bb;
250
+ }
251
+ }
252
+
253
+ .btn-file {
254
+ position: relative;
255
+ overflow: hidden;
256
+ margin: 0;
257
+
258
+ input[type='file'] {
259
+ position: absolute;
260
+ top: 0;
261
+ right: 0;
262
+ min-width: 100%;
263
+ min-height: 100%;
264
+ font-size: 100px;
265
+ text-align: right;
266
+ filter: alpha(opacity=0);
267
+ opacity: 0;
268
+ outline: none;
269
+ background: #fff;
270
+ cursor: inherit;
271
+ display: block;
272
+ }
273
+ }
274
+
275
+ .bootstrap-filestyle {
276
+ .btn {
277
+ margin: 0;
278
+ outline: 0;
279
+ }
280
+
281
+ input[type='text'] {
282
+ color: #9e9e9e;
283
+ }
284
+ }
285
+
286
+ .image {
287
+ width: 300px;
288
+ min-width: 300px;
289
+ display: inline-block;
290
+ margin-right: 25px;
291
+ background: #fff;
292
+ }
293
+
294
+ .image-field {
295
+ display: flex;
296
+ align-items: center;
297
+ overflow: hidden;
298
+ max-height: 80px;
299
+
300
+ img,
301
+ label {
302
+ flex: 1;
303
+ }
304
+ }
305
+
306
+ .label-has-one {
307
+ color: $primary;
308
+ }
309
+
310
+ .scroll-to-top {
311
+ text-align: center;
312
+ position: fixed;
313
+ z-index: 10001;
314
+ bottom: 20px;
315
+ right: 20px;
316
+ border: 1px solid #687991;
317
+ border-radius: 50%;
318
+ padding: 2px 6px;
319
+ display: none;
320
+ transition: all ease .6s;
321
+ cursor: pointer;
322
+
323
+ i {
324
+ display: inline-block;
325
+ color: #687991;
326
+ opacity: .7;
327
+ }
328
+
329
+ &:hover {
330
+ transform: scale(1.2);
331
+
332
+ i {
333
+ opacity: 1;
334
+ }
335
+ }
336
+ }
337
+
338
+ h1.page-title {
339
+ color: $grey;
340
+ font-size: 1.8em;
341
+ font-weight: 300;
342
+
343
+ small {
344
+ font-size: 13px;
345
+ letter-spacing: 0;
346
+ font-weight: 300;
347
+ color: #888;
348
+ }
349
+ }
350
+
351
+ .separator {
352
+ min-height: 50px;
353
+ display: block;
354
+ clear: both;
355
+ }
356
+
357
+ .badge {
358
+ font-size: 11px;
359
+ font-weight: 300;
360
+ height: 18px;
361
+ color: #fff;
362
+ padding: 3px 6px;
363
+ border-radius: 12px;
364
+ text-shadow: none;
365
+ text-align: center;
366
+ vertical-align: middle;
367
+ }
368
+
369
+ .navbar-light {
370
+ background: #fff;
371
+ }
372
+
373
+ a.menu-toggler {
374
+ color: #eee !important;
375
+ transition: all .6s;
376
+ float: right;
377
+ margin: 23px 0 0;
378
+
379
+ &:hover {
380
+ opacity: .5;
381
+ }
382
+ }
383
+
384
+ .dropdown-toggle {
385
+ font-size: .95em;
386
+ white-space: normal;
387
+
388
+ &::after {
389
+ border: 0;
390
+ }
391
+ }
392
+
393
+ .dropdown {
394
+ .dropdown-menu {
395
+ width: 195px;
396
+ padding: 0;
397
+ border-radius: 0;
398
+ box-shadow: 5px 5px rgba(102, 102, 102, .1);
399
+ border: 1px solid #eee;
400
+ right: 0;
401
+ margin-top: -6px;
402
+ left: initial;
403
+
404
+ .divider {
405
+ background: #f1f3f6;
406
+ }
407
+
408
+ a.dropdown-item {
409
+ padding: 8px 16px;
410
+ color: #555;
411
+ font-size: .95em;
412
+
413
+ &:hover {
414
+ background: #f6f6f6;
415
+ }
416
+ }
417
+
418
+ &::before {
419
+ position: absolute;
420
+ top: -7px;
421
+ right: 9px;
422
+ display: inline-block;
423
+ border-right: 7px solid transparent;
424
+ border-bottom: 7px solid rgba(0, 0, 0, .2);
425
+ border-left: 7px solid transparent;
426
+ content: '';
427
+ }
428
+
429
+ &::after {
430
+ position: absolute;
431
+ top: -6px;
432
+ right: 10px;
433
+ display: inline-block;
434
+ border-right: 6px solid transparent;
435
+ border-bottom: 6px solid #fff;
436
+ border-left: 6px solid transparent;
437
+ content: '';
438
+ }
439
+ }
440
+ }
441
+
442
+ .navbar {
443
+ padding: 0;
444
+ margin: 0;
445
+ box-shadow: 0 1px 10px 0 rgba(50, 50, 50, .2);
446
+ color: #7f96ac;
447
+ transition: all .6s ease;
448
+
449
+ .right-nav-fix {
450
+ img {
451
+ float: left;
452
+ margin-right: 7px;
453
+ height: 39px;
454
+ }
455
+
456
+ .dropdown-toggle i {
457
+ padding-left: 8px;
458
+ }
459
+
460
+ .nav-item {
461
+ margin: 0;
462
+ padding: 0;
463
+ height: 68px;
464
+ display: inline-block;
465
+
466
+ .nav-link {
467
+ margin: 0;
468
+ height: 100%;
469
+ display: flex;
470
+ align-items: center;
471
+
472
+ &:hover {
473
+ background: #f9fafc;
474
+ }
475
+
476
+ &.active {
477
+ color: #fff;
478
+ }
479
+ }
480
+ }
481
+ }
482
+
483
+ .search-form-expanded {
484
+ display: flex;
485
+ align-items: center;
486
+
487
+ ::-webkit-input-placeholder {
488
+ color: #7f96ac;
489
+ }
490
+
491
+ :-moz-placeholder {
492
+ color: #7f96ac;
493
+ opacity: 1;
494
+ }
495
+
496
+ ::-moz-placeholder {
497
+ color: #7f96ac;
498
+ opacity: 1;
499
+ }
500
+
501
+ :-ms-input-placeholder {
502
+ color: #7f96ac;
503
+ }
504
+
505
+ input[type='text'] {
506
+ transition: all .6s ease;
507
+ width: 150px;
508
+
509
+ &:focus {
510
+ width: 225px;
511
+ }
512
+ }
513
+
514
+ .form-control {
515
+ border: 0;
516
+ color: #7f96ac;
517
+ }
518
+ }
519
+
520
+ a {
521
+ color: #7f96ac;
522
+
523
+ &:hover {
524
+ text-decoration: none;
525
+ }
526
+ }
527
+
528
+ .navbar-collapse {
529
+ width: auto;
530
+ flex: 1;
531
+ padding: 0 15px;
532
+ }
533
+
534
+ .navbar-brand {
535
+ color: #fff;
536
+ position: absolute;
537
+ transform: translateY(-50%);
538
+ top: 50%;
539
+ font-weight: 200;
540
+
541
+ &:hover {
542
+ color: #fff;
543
+ }
544
+ }
545
+
546
+ .page-logo {
547
+ position: relative;
548
+ background: $primary;
549
+ float: left;
550
+ display: block;
551
+ width: 195px;
552
+ height: 68px;
553
+ padding-left: 20px;
554
+ padding-right: 20px;
555
+ }
556
+ }
557
+
558
+ .dashboard-panel {
559
+ background: #fff;
560
+ border: 1px solid #e7ecf1;
561
+ padding: 15px 15px 30px;
562
+ }
563
+
564
+ .line-show {
565
+ margin-bottom: 15px;
566
+ }
567
+
568
+ .dashboard-stat {
569
+ .display {
570
+ margin-bottom: 20px;
571
+ display: block;
572
+ overflow: hidden;
573
+
574
+ h3 {
575
+ margin: 0 0 2px;
576
+ padding: 0;
577
+ font-size: 30px;
578
+ font-weight: 400;
579
+ color: #666d71;
580
+
581
+ small {
582
+ color: #666d71;
583
+ }
584
+ }
585
+ }
586
+
587
+ .status {
588
+ margin-top: 5px;
589
+ font-size: 11px;
590
+ color: #aab5bc;
591
+ font-weight: 600;
592
+ text-transform: uppercase;
593
+ }
594
+
595
+ .status-title {
596
+ float: left;
597
+ }
598
+
599
+ .status-number {
600
+ float: right;
601
+ }
602
+
603
+ .number {
604
+ float: left;
605
+
606
+ small {
607
+ font-size: 14px;
608
+ color: #aab5bc;
609
+ font-weight: 600;
610
+ text-transform: uppercase;
611
+ }
612
+ }
613
+
614
+ .icon {
615
+ float: right;
616
+ padding: 7px 0 0;
617
+
618
+ i {
619
+ color: #cbd4e0;
620
+ font-size: 26px;
621
+ }
622
+ }
623
+
624
+ .progress {
625
+ border-radius: 0;
626
+ margin: 0;
627
+ height: 4px;
628
+ }
629
+ }
630
+
631
+ .selectize-input {
632
+ box-shadow: none;
633
+ border: 1px solid #c2cad8;
634
+ }
635
+
636
+ .page-container {
637
+ display: block;
638
+
639
+ .page-sidebar {
640
+ width: 195px;
641
+ float: left;
642
+ position: relative;
643
+ margin-right: -100%;
644
+
645
+ ul.nav > {
646
+ li.nav-item {
647
+ position: relative;
648
+
649
+ &.active {
650
+ background: #1f2b3d;
651
+
652
+ a.nav-link {
653
+ color: #fff;
654
+
655
+ i {
656
+ color: $primary;
657
+ }
658
+ }
659
+
660
+ &::after {
661
+ content: '';
662
+ float: right;
663
+ position: absolute;
664
+ top: 30px;
665
+ right: 0;
666
+ background: 0 0;
667
+ width: 0;
668
+ height: 0;
669
+ border-style: solid;
670
+ border-top: 12px double transparent;
671
+ border-bottom: 12px double transparent;
672
+ border-left: 0;
673
+ border-right: 8px solid $tertiary;
674
+ }
675
+ }
676
+
677
+ &:hover {
678
+ background: #232f44;
679
+
680
+ > ul.sub-menu {
681
+ display: inline-block;
682
+ }
683
+
684
+ &::after {
685
+ content: '';
686
+ float: right;
687
+ position: absolute;
688
+ right: 0;
689
+ top: 26px;
690
+ background: 0 0;
691
+ width: 0;
692
+ height: 0;
693
+ border-style: solid;
694
+ border-top: 12px double transparent;
695
+ border-bottom: 12px double transparent;
696
+ border-left: 0;
697
+ border-right: 8px solid #1c2637;
698
+ }
699
+ }
700
+
701
+ a.nav-link {
702
+ min-height: 78px;
703
+ display: block;
704
+ position: relative;
705
+ margin: 0;
706
+ border: 0;
707
+ padding: 14px;
708
+ text-decoration: none;
709
+ font-size: 13px;
710
+ font-weight: 300;
711
+ text-align: center;
712
+ color: #c3cee0;
713
+ border-top: 1px solid #2b3b55;
714
+ overflow: hidden;
715
+ border-radius: 0;
716
+
717
+ .title {
718
+ display: block;
719
+ text-align: center;
720
+ margin-top: 5px;
721
+ }
722
+
723
+ i {
724
+ top: 2px;
725
+ font-size: 24px;
726
+ text-shadow: none;
727
+ font-weight: 300;
728
+ text-align: center;
729
+ color: #4d5d7c;
730
+ }
731
+ }
732
+
733
+ ul.sub-menu {
734
+ width: 194px;
735
+ margin-left: 195px;
736
+ background: #1c2637;
737
+ top: 0;
738
+ z-index: 9999;
739
+ position: absolute;
740
+ padding: 0;
741
+ list-style: none;
742
+ display: none;
743
+ box-shadow: 5px 5px rgba(48, 48, 48, .2);
744
+
745
+ li.nav-item {
746
+ background: none;
747
+ color: #c3cee0;
748
+
749
+ &::after {
750
+ border: 0;
751
+ }
752
+
753
+ a.nav-link.active {
754
+ background: #212d41;
755
+ }
756
+
757
+ &:hover {
758
+ a.nav-link {
759
+ background: #212d41;
760
+ }
761
+ }
762
+
763
+ a.nav-link {
764
+ min-height: inherit;
765
+ padding: 9px 15px;
766
+ margin: 3px;
767
+ border: 0;
768
+ color: #c3cee0;
769
+
770
+ &.active {
771
+ color: #fff;
772
+ }
773
+
774
+ i {
775
+ margin-right: 8px;
776
+ font-size: 16px;
777
+ line-height: 16px;
778
+ text-shadow: none;
779
+ font-weight: 300;
780
+ text-align: center;
781
+ color: #5d7bad;
782
+ float: left;
783
+ }
784
+
785
+ .badge {
786
+ float: right;
787
+ margin-top: 1px;
788
+ margin-right: 0;
789
+ }
790
+
791
+ .title {
792
+ margin-top: 0;
793
+ font-size: 13px;
794
+ float: left;
795
+ }
796
+ }
797
+ }
798
+ }
799
+ }
800
+ }
801
+ }
802
+
803
+ .page-content {
804
+ margin-left: 195px;
805
+ margin-top: 0;
806
+ min-height: calc(100vh - 68px);
807
+ padding: 25px 20px 10px;
808
+ background: $tertiary;
809
+ }
810
+ }
811
+
812
+ .breadcrumb {
813
+ padding: 10px 15px;
814
+ border: 1px solid #e7ecf1;
815
+ background-color: #fff;
816
+ margin: 20px 0;
817
+ border-radius: 0;
818
+ display: flex;
819
+ overflow: hidden;
820
+
821
+ .breadcrumb-item {
822
+ color: #888;
823
+ font-size: 13px;
824
+ text-shadow: none;
825
+
826
+ i {
827
+ margin-right: 2px;
828
+ }
829
+ }
830
+ }
831
+
832
+ .portlet {
833
+ background: #fff;
834
+ margin-bottom: 25px;
835
+ border: 1px solid #e7ecf1;
836
+ }
837
+
838
+ .btn-circle {
839
+ border-radius: 99px;
840
+ }
841
+
842
+ i.fix-dropdown {
843
+ float: right;
844
+ padding-top: 3px;
845
+ }
846
+
847
+ .title-data_new {
848
+ color: $primary;
849
+ text-transform: uppercase;
850
+ font-weight: bold;
851
+ padding: 10px 0;
852
+ display: flex;
853
+ align-items: center;
854
+ }
855
+
856
+ .portlet-title {
857
+ border-bottom: 1px solid #eee;
858
+ padding: 10px 20px;
859
+ margin-bottom: 10px;
860
+ display: flex;
861
+ align-items: center;
862
+ justify-content: space-between;
863
+
864
+ .caption {
865
+ color: $primary;
866
+ text-transform: uppercase;
867
+ font-weight: bold;
868
+ padding: 10px 0;
869
+ display: flex;
870
+ align-items: center;
871
+
872
+ .btn {
873
+ margin-right: 10px;
874
+ }
875
+ }
876
+
877
+ .actions {
878
+ float: right;
879
+ padding: 10px 0;
880
+
881
+ .dropdown {
882
+ display: inline-block;
883
+ }
884
+
885
+ a {
886
+ padding: 4px 10px;
887
+ font-size: .9em;
888
+ line-height: 1.5;
889
+ }
890
+ }
891
+ }
892
+
893
+ .portlet-body {
894
+ padding: 10px 20px 20px;
895
+ }
896
+
897
+ .datepicker table tr td.active,
898
+ .datepicker table tr td.active:hover,
899
+ .datepicker table tr td.active.disabled,
900
+ .datepicker table tr td.active.disabled:hover {
901
+ background: $primary !important;
902
+ color: #fff;
903
+ text-shadow: none;
904
+ }
905
+
906
+ .datepicker {
907
+ border-radius: 0;
908
+ box-shadow: 5px 5px rgba(102, 102, 102, .1);
909
+ border: 1px solid #efefef;
910
+
911
+ table {
912
+ td,
913
+ th {
914
+ color: #000;
915
+ font-weight: 300 !important;
916
+ padding: 5px;
917
+ }
918
+
919
+ td.new,
920
+ td.old {
921
+ color: #999;
922
+ }
923
+
924
+ tr {
925
+ td {
926
+ span {
927
+ width: 28%;
928
+ }
929
+ }
930
+ }
931
+ }
932
+
933
+ * {
934
+ border-radius: 0 !important;
935
+ margin: 0 5px;
936
+ font-size: 14px;
937
+ text-transform: capitalize;
938
+ }
939
+
940
+ i {
941
+ font-size: 9px;
942
+ }
943
+ }
944
+
945
+ .selectize-control.multi .selectize-input [data-value] {
946
+ background: #f2f2f2;
947
+ color: #333;
948
+ border: 0;
949
+ border-radius: 0;
950
+ text-shadow: none;
951
+ box-shadow: none;
952
+ margin-bottom: 3px;
953
+ }
954
+
955
+ .selectize-dropdown [data-selectable], .selectize-dropdown .optgroup-header {
956
+ min-height: 28px;
957
+ }
958
+
959
+ .selectize-control.plugin-remove_button [data-value] .remove {
960
+ border-color: #d4d4d4;
961
+ }
962
+
963
+ .selectize-control.multi .selectize-input > div {
964
+ margin-bottom: 0;
965
+ }
966
+
967
+ .selectize-dropdown [data-selectable], .selectize-dropdown .optgroup-header {
968
+ min-height: 28px;
969
+ }
970
+
971
+ .table-data-list {
972
+ border-color: #e7ecf1 !important;
973
+ margin-top: 1rem;
974
+ font-size: .95em;
975
+
976
+ .fit {
977
+ white-space: nowrap;
978
+ width: 1px;
979
+ }
980
+
981
+ .selectize-input {
982
+ max-width: 150px;
983
+ }
984
+
985
+ tr.filters {
986
+ ::-webkit-input-placeholder {
987
+ color: #999aa6;
988
+ font-weight: 300;
989
+ }
990
+
991
+ :-moz-placeholder {
992
+ color: #999aa6;
993
+ font-weight: 300;
994
+ opacity: 1;
995
+ }
996
+
997
+ ::-moz-placeholder {
998
+ color: #999aa6;
999
+ font-weight: 300;
1000
+ opacity: 1;
1001
+ }
1002
+
1003
+ :-ms-input-placeholder {
1004
+ color: #999aa6;
1005
+ font-weight: 300;
1006
+ }
1007
+
1008
+ th,
1009
+ td {
1010
+ border-bottom-width: 3px;
1011
+ }
1012
+
1013
+ .selectize-input {
1014
+ margin-top: 5px;
1015
+ padding: 5px 8px;
1016
+ border-radius: 0;
1017
+ }
1018
+
1019
+ .input-group + .input-group {
1020
+ margin-top: .5rem;
1021
+ }
1022
+
1023
+ .form-control {
1024
+ height: 30px;
1025
+ border-radius: 0;
1026
+
1027
+ &.fix-id-search {
1028
+ min-width: 35px;
1029
+ text-align: center;
1030
+ padding: 4px 1px;
1031
+ }
1032
+
1033
+ + .form-control {
1034
+ margin-top: .5rem;
1035
+ }
1036
+ }
1037
+
1038
+ select {
1039
+ border-radius: 0;
1040
+ padding: 0;
1041
+ }
1042
+
1043
+ .btn {
1044
+ border-radius: 0;
1045
+ height: auto;
1046
+ }
1047
+
1048
+ .input-group-addon {
1049
+ height: 30px;
1050
+ border-radius: 0;
1051
+ background: #ececec;
1052
+ padding: 5px;
1053
+ border: 1px solid #c2cad9;
1054
+ border-left: 0;
1055
+ color: #656971;
1056
+ }
1057
+ }
1058
+
1059
+ th,
1060
+ td {
1061
+ padding: 8px 10px;
1062
+ vertical-align: middle;
1063
+ font-size: 14px;
1064
+ border-color: #e7ecf1;
1065
+ }
1066
+
1067
+ img {
1068
+ max-height: 30px;
1069
+ }
1070
+
1071
+ &.table-striped tbody tr:nth-of-type(odd) {
1072
+ background: #fbfcfd;
1073
+ }
1074
+
1075
+ tr.heading th {
1076
+ background: #fbfcfd;
1077
+ font-size: 14px;
1078
+ font-weight: 600;
1079
+ border-bottom: 0;
1080
+ }
1081
+
1082
+ .actions {
1083
+ text-align: center;
1084
+ }
1085
+
1086
+ &.table-hover > tbody > tr:hover > td {
1087
+ background-color: #f3f4f6;
1088
+ }
1089
+
1090
+ .ordered {
1091
+ cursor: pointer;
1092
+
1093
+ &::after {
1094
+ content: '\f0dc';
1095
+ font-family: 'FontAwesome';
1096
+ color: $lightgrey;
1097
+ float: right;
1098
+ }
1099
+ }
1100
+
1101
+ .asc {
1102
+ &::after {
1103
+ content: '\f0dd';
1104
+ font-family: 'FontAwesome';
1105
+ color: $blue;
1106
+ float: right;
1107
+ }
1108
+ }
1109
+
1110
+ .desc {
1111
+ &::after {
1112
+ content: '\f0de';
1113
+ font-family: 'FontAwesome';
1114
+ color: $blue;
1115
+ float: right;
1116
+ }
1117
+ }
1118
+ }
1119
+
1120
+ .pagination-panel {
1121
+ font-size: .9em;
1122
+ display: flex;
1123
+ align-items: center;
1124
+
1125
+ *:not(i) {
1126
+ margin-right: 5px;
1127
+ }
1128
+
1129
+ .btn,
1130
+ .input-group,
1131
+ .input-group-btn {
1132
+ display: inline-block;
1133
+ width: inherit;
1134
+ }
1135
+
1136
+ .btn-prev,
1137
+ .btn-next {
1138
+ color: #666;
1139
+ background-color: #e1e5ec;
1140
+ border-color: #e1e5ec;
1141
+ padding: 5px 10px;
1142
+ border-radius: 0;
1143
+ cursor: pointer;
1144
+ height: 30px;
1145
+ line-height: 18px;
1146
+
1147
+ &.disabled {
1148
+ background-color: #f7f8fa;
1149
+ border-color: #eceef3;
1150
+ }
1151
+
1152
+ &:hover,
1153
+ &:active,
1154
+ &:focus {
1155
+ background-color: #c2cad8;
1156
+ border-color: #bcc5d4;
1157
+ }
1158
+ }
1159
+
1160
+ input[type="text"] {
1161
+ border: 1px solid #c2cad8;
1162
+ text-align: center;
1163
+ width: 45px;
1164
+ outline: 0 !important;
1165
+ height: 30px;
1166
+ padding: 5px 10px;
1167
+ font-size: 12px;
1168
+ line-height: 1.5;
1169
+ }
1170
+
1171
+ .form-control {
1172
+ display: inline-block;
1173
+ width: auto;
1174
+ height: 30px !important;
1175
+ }
1176
+
1177
+ select {
1178
+ padding: 0;
1179
+ }
1180
+ }
1181
+
1182
+ .admin-pagination {
1183
+ display: inline-block;
1184
+ }
1185
+
1186
+ .pagination-panel-total,
1187
+ .pagination-panel-total-count {
1188
+ font-weight: bold;
1189
+ }
1190
+
1191
+ .head-data-list {
1192
+ overflow: visible;
1193
+ }
1194
+
1195
+ .fix-block-head {
1196
+ display: inline-block;
1197
+ }
1198
+
1199
+ .block-batch {
1200
+ font-size: .9em;
1201
+ display: flex;
1202
+ align-items: center;
1203
+
1204
+ .dropdown {
1205
+ display: inline-block;
1206
+ }
1207
+
1208
+ .count {
1209
+ display: inline-block;
1210
+ padding-left: 5px;
1211
+ }
1212
+
1213
+ .batch-current-selected {
1214
+ font-weight: bold;
1215
+ }
1216
+ }
1217
+
1218
+ .slick-track {
1219
+ margin: 0 auto;
1220
+ }
1221
+
1222
+ .nav-tabs .nav-link.active,
1223
+ .nav-tabs .nav-item.show .nav-link {
1224
+ color: #464a4c;
1225
+ background-color: #fff;
1226
+ border-color: #ddd #ddd #fff;
1227
+ border-radius: 0;
1228
+ }
1229
+
1230
+ .tab-content {
1231
+ padding: 30px 20px 20px;
1232
+ border: 1px solid #ddd;
1233
+ background: #fff;
1234
+ border-top: 0;
1235
+ }
1236
+
1237
+ .sweet-alert {
1238
+ border-radius: 2px;
1239
+
1240
+ .btn {
1241
+ font-size: 14px;
1242
+ padding: 8px 14px;
1243
+ border-radius: 2px;
1244
+ }
1245
+
1246
+ h2 {
1247
+ font-size: 23px;
1248
+ padding-top: 5px;
1249
+ }
1250
+
1251
+ p {
1252
+ font-size: 16px;
1253
+ margin-bottom: 25px;
1254
+ }
1255
+ }
1256
+
1257
+ .datatable_wrapper {
1258
+ .tag {
1259
+ font-size: 13px;
1260
+ padding: 2px 5px;
1261
+ color: #fff;
1262
+ text-transform: uppercase;
1263
+ }
1264
+ }
1265
+
1266
+ #toast-container {
1267
+ > div {
1268
+ opacity: 1;
1269
+
1270
+ &hover {
1271
+ box-shadow: none;
1272
+ }
1273
+ }
1274
+
1275
+ > .toast-success {
1276
+ background-color: rgba($success, .9);
1277
+ }
1278
+
1279
+ > .toast-error {
1280
+ background-color: rgba($error, .9);
1281
+ }
1282
+
1283
+ > .toast-info {
1284
+ background-color: rgba($info, .9);
1285
+ }
1286
+
1287
+ > .toast-warning {
1288
+ background-color: rgba($notice, .9);
1289
+ }
1290
+ }
1291
+
1292
+ .toast {
1293
+ border-radius: 0;
1294
+ }
1295
+
1296
+ .minicolors-theme-default.minicolors {
1297
+ display: inline-flex;
1298
+ align-items: center;
1299
+ }
1300
+
1301
+ .minicolors-theme-default .minicolors-input {
1302
+ height: 40px;
1303
+ padding-left: 40px;
1304
+ }
1305
+
1306
+ .minicolors-theme-default .minicolors-swatch {
1307
+ width: 18px;
1308
+ height: 18px;
1309
+ left: 10px;
1310
+ top: auto;
1311
+ }
1312
+
1313
+ .dd-handle {
1314
+ height: auto;
1315
+ padding: 7px 10px;
1316
+ }
1317
+
1318
+ .tagsinput input {
1319
+ outline: 0 !important;
1320
+ }
1321
+ }
1322
+
1323
+ #admin-user {
1324
+ input:-webkit-autofill,
1325
+ input:-webkit-autofill:active,
1326
+ input:-webkit-autofill:focus,
1327
+ input:-webkit-autofill:hover {
1328
+ transition: background-color 9999999s ease-in-out 0s;
1329
+ -webkit-text-fill-color: #fff !important;
1330
+ }
1331
+
1332
+ .failed-login {
1333
+ color: $red;
1334
+ text-align: center;
1335
+ display: block;
1336
+ font-size: .9em;
1337
+ }
1338
+
1339
+ .container-fluid-admin {
1340
+ height: 100vh;
1341
+ }
1342
+
1343
+ .bckg-dark {
1344
+ background: url("https://source.unsplash.com/1920x1080/?landscape") center
1345
+ fixed;
1346
+ background-size: cover;
1347
+ }
1348
+
1349
+ .centered {
1350
+ left: 50%;
1351
+ position: fixed;
1352
+ top: 50%;
1353
+ transform: translate(-50%, -50%);
1354
+ }
1355
+
1356
+ .title-login {
1357
+ font-weight: 200;
1358
+ }
1359
+
1360
+ .login-form {
1361
+ background: #1c2c41;
1362
+ color: #fff;
1363
+ width: 45%;
1364
+
1365
+ h2 {
1366
+ margin-bottom: 25px;
1367
+ }
1368
+
1369
+ .links-form {
1370
+ a {
1371
+ color: #47566c;
1372
+ text-decoration: none;
1373
+
1374
+ &:hover {
1375
+ color: #47566c;
1376
+ }
1377
+ }
1378
+ }
1379
+
1380
+ i {
1381
+ font-size: 1.5em;
1382
+ color: $primary;
1383
+ }
1384
+
1385
+ .form-control {
1386
+ box-shadow: none;
1387
+ }
1388
+
1389
+ .input-group {
1390
+ margin-bottom: 20px;
1391
+ }
1392
+
1393
+ .content {
1394
+ padding: 35px;
1395
+ }
1396
+
1397
+ .content-login {
1398
+ padding: inherit;
1399
+ }
1400
+
1401
+ .input-group-addon {
1402
+ border-radius: 0;
1403
+ padding-bottom: 15px;
1404
+ }
1405
+
1406
+ input[type="submit"] {
1407
+ cursor: pointer;
1408
+ background: #304158;
1409
+ color: #fff;
1410
+ border-radius: 3px;
1411
+ border: 0;
1412
+ display: block;
1413
+ width: 100%;
1414
+ padding: 12px;
1415
+ margin-top: 35px;
1416
+
1417
+ &:hover {
1418
+ background: darken(#304158, 5%);
1419
+ }
1420
+ }
1421
+
1422
+ input[type="text"],
1423
+ input[type="email"],
1424
+ input[type="password"] {
1425
+ background-color: transparent;
1426
+ border: 0;
1427
+ border-bottom: 1px solid #47566c;
1428
+ color: #fff;
1429
+ padding: 8px 12px 8px 35px;
1430
+ width: 100%;
1431
+ float: left;
1432
+ margin-left: -20px;
1433
+ caret-color: $primary;
1434
+ }
1435
+
1436
+ .input-group-addon {
1437
+ background-color: transparent;
1438
+ border: 0;
1439
+ border-bottom: 1px solid #47566c;
1440
+ color: #fff;
1441
+ padding-bottom: 15px;
1442
+ padding-top: 12px;
1443
+ }
1444
+ }
1445
+ }
1446
+
1447
+ @media (max-width: 768px) {
1448
+ #admin-user {
1449
+ .login-form {
1450
+ width: 85%;
1451
+ }
1452
+ }
1453
+ }
1454
+
1455
+ @media (min-width: 769px) and (max-width: 992px) {
1456
+ #admin-user {
1457
+ .login-form {
1458
+ width: 35%;
1459
+ }
1460
+ }
1461
+ }
1462
+
1463
+ @media (min-width: 993px) {
1464
+ #admin-user {
1465
+ .login-form {
1466
+ width: 30%;
1467
+ }
1468
+ }
1469
+ }