cm-admin 0.1.0 → 0.2.0

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -2
  3. data/lib/cm_admin/version.rb +1 -1
  4. data/lib/generators/cm_admin/install_generator.rb +9 -1
  5. data/lib/generators/cm_admin/templates/assets/images/cm.png +0 -0
  6. data/lib/generators/cm_admin/templates/assets/stylesheets/application.css.scss +16 -13
  7. data/lib/generators/cm_admin/templates/assets/stylesheets/{_variable.scss → base/_variable.scss} +5 -2
  8. data/lib/generators/cm_admin/templates/assets/stylesheets/base/auth.scss +75 -0
  9. data/lib/generators/cm_admin/templates/assets/stylesheets/base/form.scss +125 -0
  10. data/lib/generators/cm_admin/templates/assets/stylesheets/base/input-styles.scss +72 -0
  11. data/lib/generators/cm_admin/templates/assets/stylesheets/base/main-nav.scss +79 -0
  12. data/lib/generators/cm_admin/templates/assets/stylesheets/base/scaffold.scss +95 -0
  13. data/lib/generators/cm_admin/templates/assets/stylesheets/base/show.scss +88 -0
  14. data/lib/generators/cm_admin/templates/assets/stylesheets/base/sidebar.scss +69 -0
  15. data/lib/generators/cm_admin/templates/assets/stylesheets/base/table.scss +246 -0
  16. data/lib/generators/cm_admin/templates/layouts/_navbar.html.slim +7 -8
  17. data/lib/generators/cm_admin/templates/layouts/_side_navbar.html.slim +7 -11
  18. data/lib/generators/cm_admin/templates/layouts/application.html.slim +3 -8
  19. data/lib/generators/cm_admin/templates/views/_form.erb +58 -29
  20. data/lib/generators/cm_admin/templates/views/_table.erb +20 -12
  21. data/lib/generators/cm_admin/templates/views/edit.erb +10 -0
  22. data/lib/generators/cm_admin/templates/views/index.erb +5 -5
  23. data/lib/generators/cm_admin/templates/views/new.erb +10 -0
  24. data/lib/generators/cm_admin/templates/views/reset_password.erb +12 -0
  25. data/lib/generators/cm_admin/templates/views/show.erb +17 -7
  26. data/lib/generators/cm_admin/templates/views/sign_in.erb +18 -0
  27. data/lib/generators/cm_admin/view_generator.rb +23 -2
  28. metadata +15 -11
  29. data/lib/generators/cm_admin/templates/assets/images/same-logo.png +0 -0
  30. data/lib/generators/cm_admin/templates/assets/stylesheets/alignment.scss +0 -111
  31. data/lib/generators/cm_admin/templates/assets/stylesheets/devise.scss +0 -98
  32. data/lib/generators/cm_admin/templates/assets/stylesheets/form.scss +0 -131
  33. data/lib/generators/cm_admin/templates/assets/stylesheets/products.scss +0 -21
  34. data/lib/generators/cm_admin/templates/assets/stylesheets/scaffold.scss +0 -241
  35. data/lib/generators/cm_admin/templates/assets/stylesheets/table.scss +0 -90
  36. data/lib/generators/cm_admin/templates/assets/stylesheets/user.scss +0 -25
  37. data/lib/generators/cm_admin/templates/views/_filters.html.slim +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f72a2d04ff945602246fef73d1d261915da0aa6ad1f7948fccac7ccbc9d5405b
4
- data.tar.gz: 3b4c483d404aca09b19fae04979afb1a0e13522a67624e8513c86d9f231e63c6
3
+ metadata.gz: 208e7113a6556a94cdba5289db7d672f6ba3443189c49789fc4f3c95d6a14dc2
4
+ data.tar.gz: b9201bb6da693871e2a3708bb8ac76ba352ee68b92c58413bd17038225b39ca9
5
5
  SHA512:
6
- metadata.gz: 643aeabbb0a12109c48dd69fdc93c746939b89d75efa5bc44b7cbe9aa110d5e41676659ee53c7b752449a2ccca5a82a870efe029b1c7eed86f75469cb0dfb540
7
- data.tar.gz: a0cc12c6c5b664e7cd9fdc14cc084708a6b6f1bd5692bd7f8202d7b26d7f6a46b95fc6cee0b84f91d1c7b493e31450eeae335650d99782fbac8fe8a82daf7ac5
6
+ metadata.gz: 8b6937bc74d0aebd0220271d096b914e70183af91fa5ec2908d3d16b32afebb97d5a1fad1f049d2234f308b27e9a843a1b4a5df649290897c20dc4635217d870
7
+ data.tar.gz: 65146543054360dec133299268ae94e8579403d4a962c031835d449199dd7009271b85c31d59c8b46a42507e1ed41ad85d19dae953135789a9f10f5a488f5e28
data/README.md CHANGED
@@ -43,10 +43,20 @@ For generating the show page views
43
43
 
44
44
  $ rails g cm_admin:view products show title description
45
45
 
46
- For generating the index page views
47
-
46
+ For generating the form page views
47
+ $ rails g cm_admin:view products form column_name:field_type
48
48
  $ rails g cm_admin:view products form title:string description:string
49
49
 
50
+ Following field types are acceted
51
+
52
+ * input-integer
53
+ * input-string
54
+ * single-select
55
+ * multi-select
56
+ * checkbox
57
+ * radio
58
+
59
+
50
60
  ## Development
51
61
 
52
62
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -1,3 +1,3 @@
1
1
  module CmAdmin
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -12,6 +12,14 @@ module CmAdmin
12
12
 
13
13
  DESC
14
14
 
15
+ def add_required_gems
16
+ gem 'slim'
17
+ gem 'simple_form'
18
+ system("yarn add bootstrap")
19
+ system("yarn add @fortawesome/fontawesome-free")
20
+ system("yarn add select2")
21
+ end
22
+
15
23
  def copy_layout_file
16
24
  copy_file "layouts/_side_navbar.html.slim", "app/views/layouts/_side_navbar.html.slim"
17
25
  copy_file "layouts/_navbar.html.slim", "app/views/layouts/_navbar.html.slim"
@@ -20,7 +28,7 @@ module CmAdmin
20
28
  end
21
29
 
22
30
  def copy_asset_file
23
- copy_file "assets/images/same-logo.png", "app/assets/images/same-logo.png"
31
+ copy_file "assets/images/cm.png", "app/assets/images/cm.png"
24
32
  directory "assets/stylesheets/", "app/assets/stylesheets/"
25
33
  remove_file "app/assets/stylesheets/application.css"
26
34
  end
@@ -10,21 +10,24 @@
10
10
  * files in this directory. Styles in this file should be added after the last require_* statement.
11
11
  * It is generally better to create a new file per style scope.
12
12
  *
13
- *= require_tree .
13
+ *= require 'base/table'
14
+ *= require 'base/main-nav'
15
+ *= require 'base/sidebar'
16
+ *= require 'base/show'
17
+ *= require 'base/form'
18
+ *= require 'base/scaffold'
19
+ *= require 'base/input-styles'
20
+ *= require 'base/auth'
14
21
  *= require_self
15
- *= require font-awesome
16
22
  *= require 'select2'
17
23
  *= require bootstrap/dist/css/bootstrap
24
+ *= require bootstrap-datepicker/dist/css/bootstrap-datepicker3
25
+ *= require daterangepicker
18
26
  */
19
27
 
20
- .error-color {
21
- color: red;
22
- }
23
-
24
- .select2.select2-container {
25
- width: 100% !important;
26
- }
27
-
28
- .select2-selection {
29
- height: 40px !important;
30
- }
28
+ $fa-font-path: '@fortawesome/fontawesome-free/webfonts';
29
+ @import '@fortawesome/fontawesome-free/scss/fontawesome';
30
+ @import '@fortawesome/fontawesome-free/scss/solid';
31
+ @import '@fortawesome/fontawesome-free/scss/regular';
32
+ @import '@fortawesome/fontawesome-free/scss/brands';
33
+ @import '@fortawesome/fontawesome-free/scss/v4-shims';
@@ -1,4 +1,4 @@
1
- $background: #1A1D1F;
1
+ $elephant-black: #1A1D1F;
2
2
  $nav-btn-color: #FFCB05;
3
3
  $nav-text-color: white;
4
4
  $sidebar-background: #242536;
@@ -6,6 +6,9 @@ $main-background: #F6F8FA;
6
6
  $table-background: #ffffff;
7
7
  $heading-color: rgb(224, 193, 14);
8
8
  $form-control-background: rgba(50,50,50,0.6) !important;
9
- $nav-active-border: 4px solid #FFCB05;
9
+ $nav-active-border: 4px solid #0099ff;
10
10
  $active-bg: #000000;
11
11
  $paginate-btn-color: rgb(180, 149, 23);
12
+
13
+ //general colors
14
+ $white: #FFFFFF;
@@ -0,0 +1,75 @@
1
+ @import "_variable.scss";
2
+
3
+ .auth {
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ width: 100%;
8
+ height: 100vh;
9
+ background-color: #1b1d1f;
10
+ &__form-inner {
11
+ width: 450px;
12
+ max-width: 450px;
13
+ margin: 0 auto;
14
+ .header-log {
15
+ text-align: center;
16
+ img {
17
+ width: 250px;
18
+ }
19
+ }
20
+ .header-title {
21
+ margin: 30px 0;
22
+ letter-spacing: 2px;
23
+ text-align: center;
24
+ color: $white;
25
+ }
26
+
27
+ .field-50 {
28
+ display: flex;
29
+ margin-bottom: 24px;
30
+ &__item {
31
+ width: 50%;
32
+ &:nth-child(2) {
33
+ margin-left: 20px;
34
+ }
35
+ }
36
+ }
37
+
38
+ .field-100 {
39
+ width: 100%;
40
+ margin-bottom: 24px;
41
+ }
42
+
43
+ .get-start-btn {
44
+ width: 100%;
45
+ }
46
+
47
+ .forgot-password {
48
+ margin-bottom: 8px;
49
+ text-align: right;
50
+ a {
51
+ color: #20b5ff;
52
+ font-size: 14px;
53
+ }
54
+ }
55
+
56
+ input {
57
+ display: block;
58
+ width: 100%;
59
+ height: 39px;
60
+ padding: 6px 12px;
61
+ font-size: 16px;
62
+ color: #555555;
63
+ background-color: $white;
64
+ border: 1px solid #ccc;
65
+ border-radius: 2px;
66
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
67
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
68
+ &:focus {
69
+ border-color: #66afe9 !important;
70
+ outline: 0 !important;
71
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6) !important;
72
+ }
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,125 @@
1
+ @import "_variable.scss";
2
+
3
+ .form-wrapper {
4
+ margin-top: 60px;
5
+
6
+ &__top-bar {
7
+ position: fixed;
8
+ top: 60px;
9
+ left: 250px;
10
+ display: flex;
11
+ align-items: center;
12
+ width: calc(100% - 250px);
13
+ height: 60px;
14
+ padding: 0 20px;
15
+ background-color: $white;
16
+ box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.06);
17
+ z-index: 9;
18
+ .back-btn {
19
+ color: #091e42;
20
+ font-size: 20px;
21
+ cursor: pointer;
22
+ span {
23
+ color: #0099ff;
24
+ margin-right: 8px;
25
+ }
26
+ }
27
+ }
28
+
29
+ &__inner {
30
+ margin-top: 120px;
31
+ padding: 20px;
32
+ .paper {
33
+ padding: 20px;
34
+ background-color: $white;
35
+ box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.1);
36
+ border: 1px solid #ebecf0;
37
+ border-radius: 4px;
38
+ }
39
+ }
40
+
41
+ .cm-admin-form {
42
+ max-width: 600px;
43
+ .form-field {
44
+ margin-bottom: 20px;
45
+ .form-label {
46
+ font-weight: 600;
47
+ color: #172b4d;
48
+ font-size: 14px;
49
+ margin-bottom: 0.5rem;
50
+ }
51
+ .form-input {
52
+ label {
53
+ font-weight: 600;
54
+ color: #172b4d;
55
+ font-size: 14px;
56
+ }
57
+ input {
58
+ width: 100%;
59
+ padding: 5px 10px;
60
+ border: 1px solid #c1c7d0;
61
+ border-radius: 2px;
62
+ &:focus {
63
+ border-color: #66afe9 !important;
64
+ outline: 0 !important;
65
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6) !important;
66
+ }
67
+ }
68
+ }
69
+
70
+ .file-upload {
71
+ position: relative;
72
+ display: flex;
73
+ justify-content: center;
74
+ align-items: center;
75
+ width: 250px;
76
+ height: 80px;
77
+ border: 2px dashed #c1c7d0;
78
+ border-radius: 4px;
79
+ cursor: pointer;
80
+ input[type="file"] {
81
+ position: absolute;
82
+ top: 0;
83
+ right: 0;
84
+ bottom: 0;
85
+ left: 0;
86
+ opacity: 0;
87
+ cursor: pointer;
88
+ }
89
+ label {
90
+ color: #0099ff;
91
+ margin: 0;
92
+ cursor: pointer;
93
+ }
94
+ i {
95
+ color: #0099ff;
96
+ margin-left: 8px;
97
+ }
98
+ }
99
+
100
+ .radio-label {
101
+ color: #172b4d;
102
+ font-size: 16px;
103
+ font-weight: 600;
104
+ margin-left: 8px;
105
+ }
106
+
107
+ .checkbox-label {
108
+ color: #172b4d;
109
+ font-size: 16px;
110
+ font-weight: 600;
111
+ margin-left: 8px;
112
+ }
113
+ }
114
+
115
+ .form-actions {
116
+ input {
117
+ padding: 5px 10px;
118
+ color: $white;
119
+ background-color: #0099ff;
120
+ border: none;
121
+ border-radius: 4px;
122
+ }
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,72 @@
1
+ @import "_variable.scss";
2
+
3
+ //check box style
4
+ input.cm-checkbox[type='checkbox'] {
5
+ -webkit-font-smoothing: antialiased;
6
+ text-rendering: optimizeSpeed;
7
+ width: 20px;
8
+ height: 20px;
9
+ display: inline-block;
10
+ float: left;
11
+ position: relative;
12
+ margin-top: 2px;
13
+
14
+ &:after {
15
+ content: "";
16
+ vertical-align: middle;
17
+ text-align: center;
18
+ position: absolute;
19
+ cursor: pointer;
20
+ height: 20px;
21
+ width: 20px;
22
+ font-size: 7px;
23
+ background: $white;
24
+ border: 1px solid #ccc;
25
+ border-radius: 2px;
26
+ line-height: 16px;
27
+ }
28
+
29
+ &:checked:after {
30
+ background: #0099ff;
31
+ content: "\2713";
32
+ font-size: 16px;
33
+ line-height: 18px;
34
+ font-weight: bold;
35
+ color: $white;
36
+ border: none;
37
+ }
38
+ }
39
+
40
+ //Radio button styles
41
+ input.cm-radio[type='radio'] {
42
+ -webkit-font-smoothing: antialiased;
43
+ text-rendering: optimizeSpeed;
44
+ width: 20px;
45
+ height: 16px;
46
+ display: inline-block;
47
+ position: relative;
48
+ margin-top: 3px;
49
+ &:focus {
50
+ outline: none;
51
+ }
52
+ &:after {
53
+ content: "";
54
+ vertical-align: middle;
55
+ text-align: center;
56
+ position: absolute;
57
+ height: 20px;
58
+ width: 20px;
59
+ background-color: $white;
60
+ border: 1px solid #D9DEE3;
61
+ border-radius: 50%;
62
+ cursor: pointer;
63
+ }
64
+ &:checked:after {
65
+ background-color: #0099ff;
66
+ content: "\25CF";
67
+ color: $white;
68
+ font-size: 12px;
69
+ line-height: 20px;
70
+ border: none;
71
+ }
72
+ }
@@ -0,0 +1,79 @@
1
+ @import "_variable.scss";
2
+
3
+ .main-nav {
4
+ position: fixed;
5
+ top: 0;
6
+ right: 0;
7
+ left: 250px;
8
+ display: flex;
9
+ justify-content: space-between;
10
+ align-items: center;
11
+ width: calc(100% - 250px);
12
+ height: 60px;
13
+ padding: 0 20px;
14
+ background-color: $elephant-black;
15
+ box-shadow: 0 0 2px 0 rgba(0,0,0,0.23), 0 1px 0 0 rgba(0,0,0,0.1);
16
+ z-index: 99;
17
+ &__lhs {
18
+
19
+ }
20
+ &__rhs {
21
+ .profile-avatar {
22
+ position: relative;
23
+ width: 30px;
24
+ height: 30px;
25
+ background-color: #3ACA60;
26
+ text-align: center;
27
+ border-radius: 50%;
28
+ cursor: pointer;
29
+ span {
30
+ color: $white;
31
+ font-size: 14px;
32
+ vertical-align: middle;
33
+ }
34
+ }
35
+
36
+ .auth-popup {
37
+ display: none;
38
+ position: absolute;
39
+ top: 45px;
40
+ right: -10px;
41
+ min-width: 160px;
42
+ padding: 10px 0;
43
+ background-color: $white;
44
+ box-shadow: 0 6px 12px rgba(0,0,0,0.175);
45
+ border-radius: 4px;
46
+ z-index: 999;
47
+ &::before {
48
+ content: "";
49
+ border-bottom: 10px solid white;
50
+ border-right: 10px solid transparent;
51
+ border-left: 10px solid transparent;
52
+ position: absolute;
53
+ top: -10px;
54
+ right: 16px;
55
+ z-index: 10;
56
+ }
57
+ &::after {
58
+ content: "";
59
+ border-bottom: 12px solid #ccc;
60
+ border-right: 12px solid transparent;
61
+ border-left: 12px solid transparent;
62
+ position: absolute;
63
+ top: -12px;
64
+ right: 14px;
65
+ z-index: 9;
66
+ }
67
+ p {
68
+ margin: 0;
69
+ cursor: pointer;
70
+ }
71
+ }
72
+
73
+ .profile-avatar:hover {
74
+ .auth-popup {
75
+ display: block;
76
+ }
77
+ }
78
+ }
79
+ }