comable-backend 0.6.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 (117) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +97 -0
  4. data/app/assets/javascripts/comable/admin/application.coffee +76 -0
  5. data/app/assets/javascripts/comable/admin/categories.coffee +59 -0
  6. data/app/assets/javascripts/comable/admin/dashboard.coffee +32 -0
  7. data/app/assets/javascripts/comable/admin/dispatcher.coffee +21 -0
  8. data/app/assets/javascripts/comable/admin/orders.coffee +44 -0
  9. data/app/assets/javascripts/comable/admin/pages.coffee +69 -0
  10. data/app/assets/javascripts/comable/admin/products.coffee +21 -0
  11. data/app/assets/javascripts/comable/admin/search.coffee +35 -0
  12. data/app/assets/javascripts/comable/admin/themes.coffee +64 -0
  13. data/app/assets/stylesheets/comable/admin/_common.scss +153 -0
  14. data/app/assets/stylesheets/comable/admin/_dashboard.scss +81 -0
  15. data/app/assets/stylesheets/comable/admin/_errors.scss +18 -0
  16. data/app/assets/stylesheets/comable/admin/_flow.scss +149 -0
  17. data/app/assets/stylesheets/comable/admin/_mixins.scss +16 -0
  18. data/app/assets/stylesheets/comable/admin/_orders.scss +54 -0
  19. data/app/assets/stylesheets/comable/admin/_overrides.scss +4 -0
  20. data/app/assets/stylesheets/comable/admin/_pages.scss +30 -0
  21. data/app/assets/stylesheets/comable/admin/_products.scss +18 -0
  22. data/app/assets/stylesheets/comable/admin/_themes.scss +71 -0
  23. data/app/assets/stylesheets/comable/admin/_user_sessions.scss +57 -0
  24. data/app/assets/stylesheets/comable/admin/_variables.scss +38 -0
  25. data/app/assets/stylesheets/comable/admin/application.scss +26 -0
  26. data/app/assets/stylesheets/comable/admin/overrides/awesome_admin_layout.scss +25 -0
  27. data/app/assets/stylesheets/comable/admin/overrides/bootstrap.scss +81 -0
  28. data/app/assets/stylesheets/comable/admin/overrides/jstree.scss +71 -0
  29. data/app/assets/stylesheets/comable/admin/overrides/tagit.scss +22 -0
  30. data/app/controllers/comable/admin/application_controller.rb +58 -0
  31. data/app/controllers/comable/admin/categories_controller.rb +17 -0
  32. data/app/controllers/comable/admin/dashboard_controller.rb +19 -0
  33. data/app/controllers/comable/admin/orders_controller.rb +102 -0
  34. data/app/controllers/comable/admin/pages_controller.rb +72 -0
  35. data/app/controllers/comable/admin/payment_methods_controller.rb +59 -0
  36. data/app/controllers/comable/admin/products_controller.rb +82 -0
  37. data/app/controllers/comable/admin/shipment_methods_controller.rb +57 -0
  38. data/app/controllers/comable/admin/stocks_controller.rb +81 -0
  39. data/app/controllers/comable/admin/store_controller.rb +42 -0
  40. data/app/controllers/comable/admin/themes_controller.rb +101 -0
  41. data/app/controllers/comable/admin/trackers_controller.rb +58 -0
  42. data/app/controllers/comable/admin/user_sessions_controller.rb +8 -0
  43. data/app/controllers/comable/admin/users_controller.rb +47 -0
  44. data/app/helpers/comable/admin/application_helper.rb +53 -0
  45. data/app/helpers/comable/admin/orders_helper.rb +30 -0
  46. data/app/helpers/comable/admin/pages_helper.rb +6 -0
  47. data/app/helpers/comable/admin/products_helper.rb +6 -0
  48. data/app/helpers/comable/admin/shipment_methods_helper.rb +6 -0
  49. data/app/helpers/comable/admin/stores_helper.rb +6 -0
  50. data/app/helpers/comable/admin/themes_helper.rb +69 -0
  51. data/app/views/comable/admin/categories/index.slim +40 -0
  52. data/app/views/comable/admin/dashboard/_widget.slim +13 -0
  53. data/app/views/comable/admin/dashboard/show.slim +43 -0
  54. data/app/views/comable/admin/orders/_google_map.slim +39 -0
  55. data/app/views/comable/admin/orders/_payment_state.slim +40 -0
  56. data/app/views/comable/admin/orders/_shipment_state.slim +44 -0
  57. data/app/views/comable/admin/orders/edit.slim +170 -0
  58. data/app/views/comable/admin/orders/index.slim +95 -0
  59. data/app/views/comable/admin/orders/show.slim +177 -0
  60. data/app/views/comable/admin/pages/_form.slim +69 -0
  61. data/app/views/comable/admin/pages/edit.slim +31 -0
  62. data/app/views/comable/admin/pages/index.slim +55 -0
  63. data/app/views/comable/admin/pages/new.slim +16 -0
  64. data/app/views/comable/admin/payment_methods/_form.slim +35 -0
  65. data/app/views/comable/admin/payment_methods/edit.slim +27 -0
  66. data/app/views/comable/admin/payment_methods/index.slim +40 -0
  67. data/app/views/comable/admin/payment_methods/new.slim +16 -0
  68. data/app/views/comable/admin/products/_form.slim +137 -0
  69. data/app/views/comable/admin/products/edit.slim +41 -0
  70. data/app/views/comable/admin/products/index.slim +95 -0
  71. data/app/views/comable/admin/products/new.slim +16 -0
  72. data/app/views/comable/admin/shared/_advanced_search.slim +7 -0
  73. data/app/views/comable/admin/shared/_condition_fields.slim +15 -0
  74. data/app/views/comable/admin/shared/_footer.slim +8 -0
  75. data/app/views/comable/admin/shared/_grouping_fields.slim +8 -0
  76. data/app/views/comable/admin/shared/_image_fields.slim +15 -0
  77. data/app/views/comable/admin/shared/_notifier.slim +5 -0
  78. data/app/views/comable/admin/shared/_value_fields.slim +1 -0
  79. data/app/views/comable/admin/shared/export.xlsx.axlsx +17 -0
  80. data/app/views/comable/admin/shipment_methods/_form.slim +29 -0
  81. data/app/views/comable/admin/shipment_methods/edit.slim +27 -0
  82. data/app/views/comable/admin/shipment_methods/index.slim +37 -0
  83. data/app/views/comable/admin/shipment_methods/new.slim +16 -0
  84. data/app/views/comable/admin/stocks/_form.slim +34 -0
  85. data/app/views/comable/admin/stocks/edit.slim +37 -0
  86. data/app/views/comable/admin/stocks/index.slim +81 -0
  87. data/app/views/comable/admin/stocks/new.slim +18 -0
  88. data/app/views/comable/admin/store/_form.slim +32 -0
  89. data/app/views/comable/admin/store/edit.slim +12 -0
  90. data/app/views/comable/admin/themes/_editor.slim +8 -0
  91. data/app/views/comable/admin/themes/_form.slim +31 -0
  92. data/app/views/comable/admin/themes/edit.slim +35 -0
  93. data/app/views/comable/admin/themes/index.slim +37 -0
  94. data/app/views/comable/admin/themes/new.slim +16 -0
  95. data/app/views/comable/admin/themes/show_file.slim +93 -0
  96. data/app/views/comable/admin/trackers/_form.slim +109 -0
  97. data/app/views/comable/admin/trackers/edit.slim +27 -0
  98. data/app/views/comable/admin/trackers/index.slim +37 -0
  99. data/app/views/comable/admin/trackers/new.slim +16 -0
  100. data/app/views/comable/admin/user_sessions/new.slim +25 -0
  101. data/app/views/comable/admin/users/edit.slim +79 -0
  102. data/app/views/comable/admin/users/index.slim +71 -0
  103. data/app/views/comable/admin/users/show.slim +88 -0
  104. data/app/views/kaminari/comable_backend/_first_page.html.slim +2 -0
  105. data/app/views/kaminari/comable_backend/_gap.html.slim +2 -0
  106. data/app/views/kaminari/comable_backend/_last_page.html.slim +2 -0
  107. data/app/views/kaminari/comable_backend/_next_page.html.slim +2 -0
  108. data/app/views/kaminari/comable_backend/_page.html.slim +3 -0
  109. data/app/views/kaminari/comable_backend/_paginator.html.slim +15 -0
  110. data/app/views/kaminari/comable_backend/_prev_page.html.slim +2 -0
  111. data/app/views/layouts/comable/admin/application.slim +36 -0
  112. data/config/initializers/awesome_admin_layout.rb +110 -0
  113. data/config/routes.rb +63 -0
  114. data/lib/comable/backend.rb +1 -0
  115. data/lib/comable/backend/engine.rb +67 -0
  116. data/lib/tasks/comable_backend_tasks.rake +4 -0
  117. metadata +514 -0
@@ -0,0 +1,16 @@
1
+ // from https://github.com/FortAwesome/Font-Awesome/issues/213
2
+ @mixin glyphicon($name, $float: none) {
3
+ &:before {
4
+ @extend .glyphicon;
5
+ float: $float;
6
+ }
7
+ @extend .glyphicon-#{$name};
8
+ }
9
+
10
+ @mixin fa($name, $float: none) {
11
+ &:before {
12
+ float: $float;
13
+ @extend .fa;
14
+ }
15
+ @extend .fa-#{$name};
16
+ }
@@ -0,0 +1,54 @@
1
+ #comable-order {
2
+ .panel > .panel-body > h3 {
3
+ margin-top: 10px;
4
+ }
5
+ }
6
+
7
+ .comable-map {
8
+ height: $comable-map-height;
9
+
10
+ .panel-footer > & {
11
+ margin: -10px -15px;
12
+ }
13
+
14
+ .comable-google-map {
15
+ width: 100%;
16
+ height: 100%;
17
+ padding: $padding-base-vertical $padding-base-horizontal;
18
+ }
19
+ }
20
+
21
+ .comable-avatar > .thumbnail {
22
+ margin-bottom: 0;
23
+ width: $comable-avatar-size;
24
+ height: $comable-avatar-size;
25
+ }
26
+
27
+ dl.comable-address-with-icon {
28
+ margin-bottom: 0;
29
+
30
+ & > dt {
31
+ width: $comable-address-icon-size;
32
+ text-align: center;
33
+ vertical-align: middle;
34
+ color: $text-muted;
35
+ }
36
+
37
+ & > dd {
38
+ margin-left: $comable-address-icon-size + $comable-address-icon-margin;
39
+
40
+ &:not(:last-child) {
41
+ margin-bottom: 10px;
42
+ }
43
+
44
+ & > ul,
45
+ & > ol {
46
+ margin-bottom: 0;
47
+ }
48
+
49
+ a {
50
+ color: $text-color;
51
+ text-decoration: underline;
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,4 @@
1
+ @import 'comable/admin/overrides/bootstrap';
2
+ @import 'comable/admin/overrides/jstree';
3
+ @import 'comable/admin/overrides/tagit';
4
+ @import 'comable/admin/overrides/awesome_admin_layout';
@@ -0,0 +1,30 @@
1
+ .slug {
2
+ @include display-flex;
3
+
4
+ .slug-url {
5
+ @include flex(0 0 auto);
6
+ @include nowrap;
7
+ @include border-top-left-radius($input-border-radius);
8
+ @include border-bottom-left-radius($input-border-radius);
9
+ border: 1px solid $input-border;
10
+ border-right: 0;
11
+ background: $input-bg-disabled;
12
+
13
+ span {
14
+ @include inline-block;
15
+ color: lighten($input-color, 15%);
16
+ padding: 6px 12px;
17
+ padding-right: 6px;
18
+ }
19
+ }
20
+
21
+ .slug-body {
22
+ @include flex(1 1 0%);
23
+
24
+ input{
25
+ @include border-top-left-radius(0px);
26
+ @include border-bottom-left-radius(0px);
27
+ padding-left: 6px;
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,18 @@
1
+ #comable-product {
2
+ label.remove {
3
+ display: block;
4
+ margin: 0;
5
+ }
6
+
7
+ .table tbody > tr > td {
8
+ .thumbnail {
9
+ margin-bottom: 0;
10
+ }
11
+ &.comable-image {
12
+ width: 180px;
13
+ }
14
+ &:not(.comable-image) {
15
+ vertical-align: middle;
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,71 @@
1
+ #comable-theme-editor {
2
+ position: relative;
3
+
4
+ .comable-theme-editor-filename {
5
+ @include border-top-radius($input-border-radius);
6
+ @include nowrap;
7
+ padding: 0 15px;
8
+ height: $comable-theme-editor-filename-height;
9
+ line-height: $comable-theme-editor-filename-height;
10
+ color: $comable-theme-editor-color;
11
+ background-color: $comable-theme-editor-filename-bg;
12
+ overflow: hidden;
13
+ }
14
+
15
+ .comable-theme-editor-window {
16
+ @include border-bottom-radius($input-border-radius);
17
+ position: absolute;
18
+ top: $comable-theme-editor-filename-height;
19
+ left: 0;
20
+ bottom: 0;
21
+ right: 0;
22
+ }
23
+
24
+ .panel {
25
+ display: table;
26
+ width: 100%;
27
+ height: 100%;
28
+ color: $comable-theme-editor-color;
29
+ background-color: $comable-theme-editor-bg;
30
+
31
+ .panel-body {
32
+ display: table-cell;
33
+ vertical-align: middle;
34
+ text-align: center;
35
+ }
36
+ }
37
+ }
38
+
39
+
40
+ #comable-file-tree {
41
+ @include border-radius($input-border-radius);
42
+ @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, 0.075));
43
+ margin-bottom: 15px;
44
+ padding: 5px 0;
45
+ border: 1px solid $input-border;
46
+ overflow: auto;
47
+
48
+ dl {
49
+ $indent: 1.5em;
50
+ margin-bottom: 0;
51
+
52
+ dl {
53
+ text-indent: $indent;
54
+ dl {
55
+ text-indent: $indent * 2;
56
+ }
57
+ }
58
+ }
59
+
60
+ dt, a {
61
+ display: block;
62
+ padding: 5px 10px;
63
+ }
64
+
65
+ a {
66
+ &:hover, &:active {
67
+ color: $dropdown-link-active-color;
68
+ background-color: $dropdown-link-active-bg;
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,57 @@
1
+ #comable-user_session {
2
+ margin: 0;
3
+ background-color: $comable-signin-bg;
4
+ font-size: 12px;
5
+ font-family: 'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;
6
+
7
+ main {
8
+ margin: 170px 0 30px;
9
+ padding: 0;
10
+ }
11
+ }
12
+
13
+ .comable-signin {
14
+ background-color: $comable-signin-body-bg;
15
+
16
+ & > .comable-signin-heading {
17
+ position: absolute;
18
+ top: 90px;
19
+ left: 50%;
20
+ right: 0;
21
+ width: 450px;
22
+ padding: 0 40px;
23
+ margin-left: -225px;
24
+
25
+ & > h1 {
26
+ color: $comable-signin-color;
27
+ font-size: 28px;
28
+ font-weight: 300;
29
+ line-height: 110%;
30
+
31
+ & > small {
32
+ display: block;
33
+ color: inherit;
34
+ font-size: 14px;
35
+ line-height: inherit;
36
+ font-weight: inherit;
37
+ }
38
+ }
39
+ }
40
+
41
+ .comable-signin-body {
42
+ padding: 30px 40px;
43
+ color: $comable-signin-body-color;
44
+ width: 450px;
45
+ margin: 0 auto;
46
+
47
+ input {
48
+ font-size: 12px;
49
+ }
50
+
51
+ .btn-primary {
52
+ background-color: $comable-theme-bg;
53
+ border-color: darken($comable-theme-bg, 10%);
54
+ outline: none;
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,38 @@
1
+ $comable-theme-bg: #7761a7;
2
+
3
+ // signin
4
+ $comable-signin-bg: #d9e0e7;
5
+ $comable-signin-color: #666;
6
+ $comable-signin-body-bg: #373737;
7
+ $comable-signin-body-color: #aaa;
8
+
9
+ // orders
10
+ $comable-map-height: 160px;
11
+ $comable-avatar-size: 80px;
12
+ $comable-address-icon-size: 20px;
13
+ $comable-address-icon-margin: 15px;
14
+
15
+ // themes
16
+ $comable-theme-editor-color: #8F908A;
17
+ $comable-theme-editor-bg: #272822;
18
+ $comable-theme-editor-filename-bg: #2F3129;
19
+ $comable-theme-editor-filename-height: 35px;
20
+
21
+ // bootstrap
22
+ $navbar-default-color: #aaa;
23
+ $navbar-default-bg: #373737;
24
+ $navbar-default-link-color: $navbar-default-color;
25
+ $navbar-default-link-hover-color: #fff;
26
+ $navbar-default-link-active-color: $navbar-default-link-hover-color;
27
+ $navbar-default-link-hover-bg: darken($navbar-default-bg, 10%);
28
+ $navbar-default-link-active-bg: darken($navbar-default-bg, 10%);
29
+ $navbar-default-brand-color: $navbar-default-link-hover-color;
30
+ $navbar-default-brand-hover-color: $navbar-default-brand-color;
31
+ $navbar-default-toggle-icon-bar-bg: $navbar-default-link-color;
32
+ $navbar-default-toggle-hover-bg: $navbar-default-link-hover-bg;
33
+
34
+ // ngprogress
35
+ $nprogress-color: $comable-theme-bg;
36
+
37
+ // awesome_admin_layout
38
+ $awesome_admin_layout-navigation-item-active-bg: $comable-theme-bg;
@@ -0,0 +1,26 @@
1
+ @import 'comable/admin/variables';
2
+
3
+ @import 'compass/utilities';
4
+ @import 'compass/css3';
5
+ @import 'bootstrap-sprockets';
6
+ @import 'bootstrap';
7
+ @import 'font-awesome';
8
+ @import 'jquery-ui';
9
+ @import 'morris';
10
+ @import 'nprogress';
11
+ @import 'nprogress-bootstrap';
12
+ @import 'gritter';
13
+ @import 'awesome_admin_layout';
14
+ @import 'bootstrap-datetimepicker';
15
+
16
+ @import 'comable/admin/mixins';
17
+ @import 'comable/admin/overrides';
18
+ @import 'comable/admin/common';
19
+ @import 'comable/admin/flow';
20
+ @import 'comable/admin/errors';
21
+ @import 'comable/admin/dashboard';
22
+ @import 'comable/admin/orders';
23
+ @import 'comable/admin/products';
24
+ @import 'comable/admin/pages';
25
+ @import 'comable/admin/user_sessions';
26
+ @import 'comable/admin/themes';
@@ -0,0 +1,25 @@
1
+ #awesome_admin_layout {
2
+ font-size: larger;
3
+ }
4
+
5
+ .awesome_admin_layout-main {
6
+ margin: 0;
7
+ }
8
+
9
+ .awesome_admin_layout-navigation-toggle {
10
+ position: absolute;
11
+ z-index: 300;
12
+ // = .comable-page-heading's `padding`
13
+ padding: 25px 30px;
14
+ }
15
+
16
+ @media screen and (max-width: $screen-sm-min) {
17
+ .comable-main-fixed-top {
18
+ padding-left: 0 !important;
19
+ }
20
+
21
+ .comable-page-heading {
22
+ // = .comable-page-heading's `padding` + toggle button size + margin
23
+ padding-left: 30px + 34px + 20px !important;
24
+ }
25
+ }
@@ -0,0 +1,81 @@
1
+ .panel.panel-inverse {
2
+ border: none;
3
+
4
+ & > .panel-heading {
5
+ background-color: #313239;
6
+ color: #fff;
7
+ }
8
+ }
9
+
10
+ .page-header {
11
+ font-size: 24px;
12
+ margin: 0 0 20px;
13
+ padding: 0;
14
+ border: none;
15
+ line-height: 28px;
16
+ }
17
+
18
+ .panel > .panel-footer {
19
+ form {
20
+ @extend .text-right;
21
+ }
22
+ }
23
+
24
+ .page-header > .breadcrumb {
25
+ margin: 0;
26
+ padding: 0;
27
+ background-color: transparent;
28
+
29
+ & > li {
30
+ color: $text-color;
31
+
32
+ & > a {
33
+ color: darken($breadcrumb-color, 20%);
34
+ }
35
+ }
36
+ }
37
+
38
+ label {
39
+ @extend .control-label;
40
+ }
41
+
42
+ select,
43
+ textarea,
44
+ input[type="password"],
45
+ input[type="email"],
46
+ input[type="text"] {
47
+ @extend .form-control;
48
+ margin-right: 0.5em;
49
+
50
+ &:last-child {
51
+ margin-right: 0;
52
+ }
53
+ }
54
+
55
+ table {
56
+ @extend .table;
57
+
58
+ th > a {
59
+ &:link, &:visited, &:hover, &:active {
60
+ color: $text-color;
61
+ }
62
+ }
63
+ }
64
+
65
+ legend {
66
+ margin-bottom: 0;
67
+ border-bottom: 0;
68
+ }
69
+
70
+ table > tbody > tr > td > ul {
71
+ margin-bottom: 0;
72
+ }
73
+
74
+ .btn-link {
75
+ outline: none !important;
76
+ }
77
+
78
+ .form-group .radio-inline {
79
+ margin-top: 10px;
80
+ margin-right: 20px;
81
+ }
@@ -0,0 +1,71 @@
1
+ .jstree {
2
+ @include border-radius($input-border-radius);
3
+ @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, 0.075));
4
+ padding: 5px 0;
5
+ border: 1px solid $input-border;
6
+
7
+ .jstree-wholerow {
8
+ @include transition(none);
9
+ }
10
+
11
+ .jstree-wholerow-hovered {
12
+ color: $dropdown-link-color;
13
+ background-color: $dropdown-link-hover-bg;
14
+ }
15
+
16
+ .jstree-wholerow-clicked {
17
+ color: $dropdown-link-active-color;
18
+ background-color: $dropdown-link-active-bg;
19
+ }
20
+
21
+ .jstree-anchor.jstree-clicked {
22
+ color: $dropdown-link-active-color;
23
+
24
+ &:link, &:visited, &:hover, &:active {
25
+ color: $dropdown-link-active-color;
26
+ }
27
+
28
+ & > input {
29
+ @include border-radius($input-border-radius);
30
+ @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, 0.075));
31
+ color: $dropdown-link-color;
32
+ padding-left: 5px !important;
33
+ padding-right: 5px !important;
34
+ }
35
+ }
36
+ }
37
+
38
+ ul.vakata-context.jstree-contextmenu {
39
+ @include border-radius($border-radius-base);
40
+ @include box-shadow(0 6px 12px rgba(0, 0, 0, 0.175));
41
+
42
+ padding: 5px 0;
43
+ background-color: $dropdown-bg;
44
+ border-color: $dropdown-border;
45
+
46
+ & > li {
47
+ @include border-radius(0);
48
+
49
+ & > a {
50
+ padding-top: 0;
51
+ padding-bottom: 0;
52
+ line-height: $line-height-computed;
53
+ color: $dropdown-link-color;
54
+ background-color: $dropdown-bg;
55
+
56
+ & > i,
57
+ & > .vakata-contextmenu-sep {
58
+ display: none;
59
+ }
60
+ }
61
+
62
+ &.vakata-context-hover > a {
63
+ @include box-shadow(none);
64
+ background-color: $dropdown-bg;
65
+
66
+ &:hover {
67
+ background-color: $dropdown-link-hover-bg;
68
+ }
69
+ }
70
+ }
71
+ }