express_admin 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +37 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/fonts/app_express.eot +0 -0
  6. data/app/assets/fonts/app_express.svg +21 -0
  7. data/app/assets/fonts/app_express.ttf +0 -0
  8. data/app/assets/fonts/app_express.woff +0 -0
  9. data/app/assets/fonts/ionicons.eot +0 -0
  10. data/app/assets/fonts/ionicons.svg +1899 -0
  11. data/app/assets/fonts/ionicons.ttf +0 -0
  12. data/app/assets/fonts/ionicons.woff +0 -0
  13. data/app/assets/javascripts/express_admin/admin.js +30 -0
  14. data/app/assets/javascripts/express_admin/dataTables/dataTables.foundation.js +183 -0
  15. data/app/assets/javascripts/express_admin/dataTables/jquery.dataTables.js +14382 -0
  16. data/app/assets/javascripts/express_admin/utility.js +30 -0
  17. data/app/assets/javascripts/express_admin.js +7 -0
  18. data/app/assets/stylesheets/dataTables/dataTables.foundation.css.erb +217 -0
  19. data/app/assets/stylesheets/express_admin/components/_empty_state.sass +10 -0
  20. data/app/assets/stylesheets/express_admin/components/_megadropdown.sass +71 -0
  21. data/app/assets/stylesheets/express_admin/express_icons.sass +56 -0
  22. data/app/assets/stylesheets/express_admin/foundation_and_overrides.scss +1443 -0
  23. data/app/assets/stylesheets/express_admin/globals/_mixins.sass +9 -0
  24. data/app/assets/stylesheets/express_admin/globals/_typography.sass +30 -0
  25. data/app/assets/stylesheets/express_admin/globals/_variables.sass +16 -0
  26. data/app/assets/stylesheets/express_admin/plugins/_dataTables.sass +118 -0
  27. data/app/assets/stylesheets/express_admin/plugins/_select2.sass +91 -0
  28. data/app/assets/stylesheets/express_admin/screen.sass +47 -0
  29. data/app/assets/stylesheets/express_admin/sections/_devise.sass +42 -0
  30. data/app/assets/stylesheets/express_admin/sections/_header.sass +98 -0
  31. data/app/assets/stylesheets/express_admin/sections/_main_content.sass +63 -0
  32. data/app/assets/stylesheets/express_admin/sections/_sidebar.sass +42 -0
  33. data/app/assets/stylesheets/express_admin/shared/_alerts.sass +45 -0
  34. data/app/assets/stylesheets/express_admin/shared/_breadcrumbs.sass +3 -0
  35. data/app/assets/stylesheets/express_admin/shared/_buttons.sass +33 -0
  36. data/app/assets/stylesheets/express_admin/shared/_forms.sass +99 -0
  37. data/app/assets/stylesheets/express_admin/shared/_labels.sass +16 -0
  38. data/app/assets/stylesheets/express_admin/shared/_loading.sass +2 -0
  39. data/app/assets/stylesheets/express_admin/shared/_media_object.sass +23 -0
  40. data/app/assets/stylesheets/express_admin/shared/_messages.sass +12 -0
  41. data/app/assets/stylesheets/express_admin/shared/_navigation.sass +20 -0
  42. data/app/assets/stylesheets/express_admin/shared/_progress.sass +3 -0
  43. data/app/assets/stylesheets/express_admin/shared/_reveal.sass +20 -0
  44. data/app/assets/stylesheets/express_admin/shared/_tables.sass +75 -0
  45. data/app/assets/stylesheets/express_admin/shared/_tabs.sass +25 -0
  46. data/app/assets/stylesheets/express_admin/shared/_widgets.sass +57 -0
  47. data/app/assets/stylesheets/express_admin.css +9 -0
  48. data/app/assets/stylesheets/ionicons/ionicons.css.sass +1873 -0
  49. data/app/components/express_admin/addon_sidebar_component.rb +47 -0
  50. data/app/components/express_admin/flash_message_component.rb +19 -0
  51. data/app/components/express_admin/main_region.rb +9 -0
  52. data/app/components/express_admin/mega_menu_component.rb +68 -0
  53. data/app/components/express_admin/page_header_component.rb +39 -0
  54. data/app/components/express_admin/setting_form.rb +45 -0
  55. data/app/components/express_admin/sidebar_region.rb +11 -0
  56. data/app/components/express_admin/smart_form.rb +70 -0
  57. data/app/components/express_admin/smart_table.rb +97 -0
  58. data/app/components/express_admin/widget_box.rb +22 -0
  59. data/app/helpers/express_admin/admin_helper.rb +104 -0
  60. data/app/helpers/express_admin/module_settings_helper.rb +53 -0
  61. data/app/views/express_admin/dashboard/show.html.et +6 -0
  62. data/app/views/layouts/express_admin/admin.html.et +31 -0
  63. data/app/views/layouts/express_admin/external.html.et +15 -0
  64. data/app/views/shared/express_admin/_messages.html.et +1 -0
  65. data/app/views/shared/express_admin/_navigation_bar.html.et +20 -0
  66. data/app/views/shared/express_admin/_navigation_bar_profile.html.et +8 -0
  67. data/app/views/shared/express_admin/_title.html.et +8 -0
  68. data/config/initializers/gravatar_image_tag.rb +4 -0
  69. data/lib/express_admin/engine.rb +52 -0
  70. data/lib/express_admin/menu.rb +62 -0
  71. data/lib/express_admin/version.rb +3 -0
  72. data/lib/express_admin.rb +4 -0
  73. data/lib/generators/express_admin/install/USAGE +23 -0
  74. data/lib/generators/express_admin/install/install_generator.rb +97 -0
  75. data/lib/generators/express_admin/install/templates/assets/javascripts/application.js +1 -0
  76. data/lib/generators/express_admin/install/templates/assets/stylesheets/application.css +5 -0
  77. data/lib/generators/express_admin/install/templates/config/menu.yml.erb +3 -0
  78. data/lib/generators/express_admin/install/templates/controllers/admin_controller.rb.erb +34 -0
  79. data/lib/generators/express_admin/install/templates/install/USAGE +8 -0
  80. data/lib/generators/express_admin/install/templates/install/installer.rb.erb +10 -0
  81. data/lib/generators/express_admin/install/templates/install/installer_test.rb.erb +16 -0
  82. data/lib/generators/express_admin/install/templates/views/layouts/admin.html.et +1 -0
  83. data/lib/generators/express_admin/scaffold/scaffold_generator.rb +135 -0
  84. data/lib/generators/express_admin/scaffold/templates/controller/controller.rb +14 -0
  85. data/lib/generators/express_admin/scaffold/templates/index.html.et.erb +10 -0
  86. data/lib/generators/express_admin/scaffold/templates/model/model.rb +4 -0
  87. data/lib/generators/express_admin/scaffold/templates/show.html.et.erb +10 -0
  88. data/lib/tasks/express_admin_tasks.rake +4 -0
  89. data/test/bin/run +1 -0
  90. data/test/dummy/README.rdoc +28 -0
  91. data/test/dummy/Rakefile +6 -0
  92. data/test/dummy/app/assets/javascripts/application.js +13 -0
  93. data/test/dummy/app/assets/javascripts/demo.js +2 -0
  94. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  95. data/test/dummy/app/assets/stylesheets/demo.css.scss +3 -0
  96. data/test/dummy/app/controllers/application_controller.rb +5 -0
  97. data/test/dummy/app/controllers/demo_controller.rb +8 -0
  98. data/test/dummy/app/helpers/application_helper.rb +2 -0
  99. data/test/dummy/app/helpers/demo_helper.rb +2 -0
  100. data/test/dummy/app/views/demo/show.html.et +2 -0
  101. data/test/dummy/app/views/demo/sign_in.html.et +30 -0
  102. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  103. data/test/dummy/bin/bundle +3 -0
  104. data/test/dummy/bin/rails +4 -0
  105. data/test/dummy/bin/rake +4 -0
  106. data/test/dummy/config/application.rb +23 -0
  107. data/test/dummy/config/boot.rb +5 -0
  108. data/test/dummy/config/database.yml +25 -0
  109. data/test/dummy/config/environment.rb +5 -0
  110. data/test/dummy/config/environments/development.rb +37 -0
  111. data/test/dummy/config/environments/production.rb +83 -0
  112. data/test/dummy/config/environments/test.rb +43 -0
  113. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  114. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  115. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  116. data/test/dummy/config/initializers/inflections.rb +16 -0
  117. data/test/dummy/config/initializers/mime_types.rb +4 -0
  118. data/test/dummy/config/initializers/session_store.rb +3 -0
  119. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  120. data/test/dummy/config/locales/en.yml +23 -0
  121. data/test/dummy/config/routes.rb +7 -0
  122. data/test/dummy/config/secrets.yml +22 -0
  123. data/test/dummy/config.ru +4 -0
  124. data/test/dummy/db/schema.rb +22 -0
  125. data/test/dummy/db/test.sqlite3 +0 -0
  126. data/test/dummy/log/test.log +3847 -0
  127. data/test/dummy/public/404.html +67 -0
  128. data/test/dummy/public/422.html +67 -0
  129. data/test/dummy/public/500.html +66 -0
  130. data/test/dummy/public/favicon.ico +0 -0
  131. data/test/dummy/test/controllers/demo_controller_test.rb +9 -0
  132. data/test/dummy/test/helpers/demo_helper_test.rb +4 -0
  133. data/test/fixtures/engine.rb +5 -0
  134. data/test/fixtures/express_admin/test_menu.yml +12 -0
  135. data/test/fixtures/routes.rb +2 -0
  136. data/test/generators_test_helper.rb +32 -0
  137. data/test/lib/express_admin/menu_test.rb +18 -0
  138. data/test/lib/generators/express_admin/install_generator_test.rb +72 -0
  139. data/test/lib/generators/express_admin/scaffold_generator_test.rb +67 -0
  140. data/test/test_helper.rb +18 -0
  141. data/vendor/assets/images/dataTables/Sorting icons.psd +0 -0
  142. data/vendor/assets/images/dataTables/back_disabled.png +0 -0
  143. data/vendor/assets/images/dataTables/back_enabled.png +0 -0
  144. data/vendor/assets/images/dataTables/back_enabled_hover.png +0 -0
  145. data/vendor/assets/images/dataTables/favicon.ico +0 -0
  146. data/vendor/assets/images/dataTables/forward_disabled.png +0 -0
  147. data/vendor/assets/images/dataTables/forward_enabled.png +0 -0
  148. data/vendor/assets/images/dataTables/forward_enabled_hover.png +0 -0
  149. data/vendor/assets/images/dataTables/sort_asc.png +0 -0
  150. data/vendor/assets/images/dataTables/sort_asc_disabled.png +0 -0
  151. data/vendor/assets/images/dataTables/sort_both.png +0 -0
  152. data/vendor/assets/images/dataTables/sort_desc.png +0 -0
  153. data/vendor/assets/images/dataTables/sort_desc_disabled.png +0 -0
  154. data/vendor/assets/javascripts/jquery.loadingdotdotdot.js +82 -0
  155. metadata +432 -0
@@ -0,0 +1,30 @@
1
+ $(function() {
2
+
3
+ // toggle on/off switch
4
+ $(document).on('click', '[data-toggle]', function() {
5
+ targetHide = $(this).data('toggle-hide')
6
+ targetShow = $(this).data('toggle-show')
7
+ $('[data-toggle-name="' + targetHide + '"]').addClass('hide')
8
+ $('[data-toggle-name="' + targetShow + '"]').removeClass('hide')
9
+ });
10
+
11
+ // AJAX request utility
12
+ AJAXRequest = function(url, method, data, success, error)
13
+ {
14
+ return $.ajax({
15
+ url : url,
16
+ type : method,
17
+ data : data,
18
+ dataType : 'JSON',
19
+ cache : false,
20
+ success : function(json)
21
+ {
22
+ success(json)
23
+ },
24
+ error : function()
25
+ {
26
+ error()
27
+ }
28
+ });
29
+ }
30
+ });
@@ -0,0 +1,7 @@
1
+ //= require jquery
2
+ //= require jquery_ujs
3
+ //= require foundation/foundation
4
+ //= require foundation
5
+ //= require turbolinks
6
+ //= require jquery.loadingdotdotdot
7
+ //= require_tree .
@@ -0,0 +1,217 @@
1
+ div.dataTables_wrapper {
2
+ margin-bottom: 1.25em;
3
+ }
4
+
5
+ div.dataTables_length label,
6
+ div.dataTables_filter label,
7
+ div.dataTables_info {
8
+ color: #999;
9
+ font-weight: normal;
10
+ }
11
+
12
+ div.dataTables_length label {
13
+ float: left;
14
+ text-align: left;
15
+ margin-bottom: 0;
16
+ }
17
+
18
+ div.dataTables_length select {
19
+ width: 75px;
20
+ margin-bottom: 0;
21
+ }
22
+
23
+ div.dataTables_filter label {
24
+ float: right;
25
+ margin-bottom: 0;
26
+ }
27
+ div.dataTables_filter input {
28
+ display: inline-block !important;
29
+ width: auto !important;
30
+ margin-bottom: 0;
31
+ }
32
+
33
+ div.dataTables_info {
34
+ padding-top: 2px;
35
+ font-size: 0.875em;
36
+ }
37
+
38
+ div.dataTables_paginate {
39
+ float: right;
40
+ margin: 0;
41
+ }
42
+
43
+ table.dataTable {
44
+ table-layout: inherit !important;
45
+ clear: both;
46
+ margin: 0.5em 0 !important;
47
+ max-width: none !important;
48
+ width: 100%;
49
+ }
50
+
51
+ table.dataTable thead .sorting,
52
+ table.dataTable thead .sorting_asc,
53
+ table.dataTable thead .sorting_desc,
54
+ table.dataTable thead .sorting_asc_disabled,
55
+ table.dataTable thead .sorting_desc_disabled {
56
+ cursor: pointer;
57
+ *cursor: hand;
58
+ }
59
+
60
+ table.dataTable thead .sorting { background: url('<%= asset_url('dataTables/sort_both.png') %>') no-repeat center right; }
61
+ table.dataTable thead .sorting_asc { background: url('<%= asset_url('dataTables/sort_asc.png') %>') no-repeat center right; }
62
+ table.dataTable thead .sorting_desc { background: url('<%= asset_url('dataTables/sort_desc.png') %>') no-repeat center right; }
63
+
64
+ table.dataTable thead .sorting_asc_disabled { background: url('<%= asset_url('dataTables/sort_asc_disabled.png') %>') no-repeat center right; }
65
+ table.dataTable thead .sorting_desc_disabled { background: url('<%= asset_url('dataTables/sort_desc_disabled.png') %>') no-repeat center right; }
66
+
67
+ table.dataTable th:active {
68
+ outline: none;
69
+ }
70
+
71
+ /* Scrolling */
72
+ div.dataTables_scrollHead table {
73
+ margin-bottom: 0 !important;
74
+ }
75
+
76
+ div.dataTables_scrollBody table {
77
+ border-top: none;
78
+ margin-top: 0 !important;
79
+ margin-bottom: 0 !important;
80
+ }
81
+
82
+ div.dataTables_scrollBody tbody tr:first-child th,
83
+ div.dataTables_scrollBody tbody tr:first-child td {
84
+ border-top: none;
85
+ }
86
+
87
+ div.dataTables_scrollFoot table {
88
+ margin-top: 0 !important;
89
+ border-top: none;
90
+ }
91
+
92
+
93
+
94
+
95
+ /*
96
+ * TableTools styles
97
+ */
98
+ .table tbody tr.active td,
99
+ .table tbody tr.active th {
100
+ background-color: #08C;
101
+ color: white;
102
+ }
103
+
104
+ .table tbody tr.active:hover td,
105
+ .table tbody tr.active:hover th {
106
+ background-color: #0075b0 !important;
107
+ }
108
+
109
+ .table-striped tbody tr.active:nth-child(odd) td,
110
+ .table-striped tbody tr.active:nth-child(odd) th {
111
+ background-color: #017ebc;
112
+ }
113
+
114
+ table.DTTT_selectable tbody tr {
115
+ cursor: pointer;
116
+ *cursor: hand;
117
+ }
118
+
119
+ div.DTTT {
120
+ float: left;
121
+ margin-bottom: 0;
122
+ }
123
+
124
+ div.DTTT .button:hover {
125
+ text-decoration: none !important;
126
+ }
127
+
128
+ ul.DTTT_dropdown.dropdown-menu li {
129
+ position: relative;
130
+ }
131
+
132
+ ul.DTTT_dropdown.dropdown-menu li:hover a {
133
+ background-color: #0088cc;
134
+ color: white !important;
135
+ }
136
+
137
+ /* TableTools information display */
138
+ .DTTT_print_info {
139
+ position: fixed;
140
+ top: 50%;
141
+ left: 50%;
142
+ width: 400px;
143
+ height: 150px;
144
+ margin-left: -200px;
145
+ margin-top: -75px;
146
+ text-align: center;
147
+ color: #333;
148
+ padding: 10px 30px;
149
+
150
+ background: #ffffff; /* Old browsers */
151
+ background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */
152
+ background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */
153
+ background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */
154
+ background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */
155
+ background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */
156
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */
157
+
158
+ opacity: 0.95;
159
+
160
+ border: 1px solid black;
161
+ border: 1px solid rgba(0, 0, 0, 0.5);
162
+
163
+ -webkit-border-radius: 6px;
164
+ -moz-border-radius: 6px;
165
+ -ms-border-radius: 6px;
166
+ -o-border-radius: 6px;
167
+ border-radius: 6px;
168
+
169
+ -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
170
+ -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
171
+ -ms-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
172
+ -o-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
173
+ box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
174
+ }
175
+
176
+ div.DTTT_print_info h6 {
177
+ font-weight: normal;
178
+ font-size: 28px;
179
+ line-height: 28px;
180
+ margin: 1em;
181
+ }
182
+
183
+ div.DTTT_print_info p {
184
+ font-size: 14px;
185
+ line-height: 20px;
186
+ }
187
+
188
+
189
+
190
+ /*
191
+ * FixedColumns styles
192
+ */
193
+ div.DTFC_LeftHeadWrapper table,
194
+ div.DTFC_LeftFootWrapper table,
195
+ table.DTFC_Cloned tr.even {
196
+ background-color: white;
197
+ }
198
+
199
+ div.DTFC_LeftHeadWrapper table {
200
+ margin-bottom: 0 !important;
201
+ }
202
+
203
+ div.DTFC_LeftBodyWrapper table {
204
+ border-top: none;
205
+ margin-bottom: 0 !important;
206
+ }
207
+
208
+ div.DTFC_LeftBodyWrapper tbody tr:first-child th,
209
+ div.DTFC_LeftBodyWrapper tbody tr:first-child td {
210
+ border-top: none;
211
+ }
212
+
213
+ div.DTFC_LeftFootWrapper table {
214
+ border-top: none;
215
+ }
216
+
217
+
@@ -0,0 +1,10 @@
1
+ .empty-state-wrapper
2
+ padding: 0 0 10px
3
+ text-align: center
4
+
5
+ p.lead
6
+ margin-bottom: 10px
7
+
8
+ .empty-records-message
9
+ font-size: 1.15rem
10
+ text-align: center
@@ -0,0 +1,71 @@
1
+ .top-bar
2
+ .megamenu-overlay
3
+ background: transparent
4
+ padding: 0 0 20px
5
+
6
+ .dropdown.dropdown-wrapper
7
+ background-color: #fff
8
+ border:
9
+ left: 2px solid $border-color
10
+ right: 2px solid $border-color
11
+ bottom: 2px solid $border-color
12
+ left: -225px
13
+ width: 960px !important
14
+
15
+ .top-bar-section .dropdown li
16
+ .megamenu-container
17
+ padding: 20px
18
+
19
+ h1
20
+ font-size: 1.4rem
21
+
22
+ nav
23
+ ul
24
+ li
25
+ background-color: transparent
26
+ border: none
27
+ float: left
28
+ padding: 0 20px 0 0
29
+ width: 33.3333333333333%
30
+
31
+ a
32
+ background-color: transparent !important
33
+ color: #26ade4 !important
34
+ line-height: 2 !important
35
+ padding: 0 !important
36
+ transition: color 0.3s ease !important
37
+
38
+ i
39
+ font-size: 1.2rem
40
+ margin-right: 5px
41
+ position: relative
42
+ top: 2px
43
+
44
+ &:hover
45
+ color: #1998cb !important
46
+
47
+ span
48
+ text-decoration: underline
49
+
50
+ .main
51
+ @include grid-column(9)
52
+
53
+
54
+ .extra
55
+ @include grid-column(3)
56
+ ul
57
+ li
58
+ float: inherit
59
+
60
+ a
61
+ display: block
62
+
63
+ &:hover
64
+ text-decoration: underline
65
+
66
+ li, a
67
+ width: 100%
68
+
69
+ @media #{$small-up}
70
+ .dropdown-wrapper
71
+ padding: 10px 0
@@ -0,0 +1,56 @@
1
+ @font-face
2
+ font-family: 'app-express'
3
+ src: asset-url('app_express.eot')
4
+ src: asset-url('app_express.eot') format('embedded-opentype'), asset-url('app_express.woff') format('woff'), asset-url('app_express.ttf') format('truetype'), asset-url('app_express.svg') format('svg')
5
+ font-weight: normal
6
+ font-style: normal
7
+
8
+ [class^="icon-"], [class*=" icon-"]
9
+ display: inline-block
10
+ font-family: 'app-express'
11
+ speak: none
12
+ font-style: normal
13
+ font-weight: normal
14
+ font-variant: normal
15
+ text-transform: none
16
+ text-rendering: auto
17
+ line-height: 1
18
+ -webkit-font-smoothing: antialiased
19
+ -moz-osx-font-smoothing: grayscale
20
+
21
+
22
+ .icon-express_admin:before
23
+ content: "\e600"
24
+
25
+ .icon-express_api:before
26
+ content: "\e601"
27
+
28
+ .icon-express_auth:before
29
+ content: "\e602"
30
+
31
+ .icon-express_blog:before
32
+ content: "\e603"
33
+
34
+ .icon-express_dash:before
35
+ content: "\e604"
36
+
37
+ .icon-express_data:before
38
+ content: "\e605"
39
+
40
+ .icon-express_media:before
41
+ content: "\e606"
42
+
43
+ .icon-express_pages:before
44
+ content: "\e607"
45
+
46
+ .icon-express_rbac:before
47
+ content: "\e608"
48
+
49
+ .icon-express_reports:before
50
+ content: "\e609"
51
+
52
+ .icon-express_seo:before
53
+ content: "\e610"
54
+
55
+
56
+