caboose-cms 0.9.229 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. checksums.yaml +5 -5
  2. data/app/assets/javascripts/caboose/admin.js +1 -1
  3. data/app/assets/javascripts/caboose/admin/application.js +20 -0
  4. data/app/assets/javascripts/caboose/admin_main.js +13 -3
  5. data/app/assets/javascripts/caboose/admin_media_index.js +158 -161
  6. data/app/assets/javascripts/caboose/application.js +7 -8
  7. data/app/assets/javascripts/caboose/block_content_controller_dragdrop.js +4 -60
  8. data/app/assets/javascripts/caboose/block_modal_controllers/block_dd_modal_controller.js +2 -3
  9. data/app/assets/javascripts/caboose/block_modal_controllers/media_modal_controller.js +6 -17
  10. data/app/assets/javascripts/caboose/model/all.js +1 -5
  11. data/app/assets/stylesheets/caboose/admin/_config.scss +102 -0
  12. data/app/assets/stylesheets/caboose/admin/application.css +11 -0
  13. data/app/assets/stylesheets/caboose/admin/component.css +183 -0
  14. data/app/assets/stylesheets/caboose/admin/froala.min.css +91 -0
  15. data/app/assets/stylesheets/caboose/admin/ie.scss +67 -0
  16. data/app/assets/stylesheets/caboose/admin/integrations/main.scss +6 -0
  17. data/app/assets/stylesheets/caboose/admin/integrations/shopify.scss +128 -0
  18. data/app/assets/stylesheets/caboose/admin/jquery-ui-subnav-theme.min.css +5 -0
  19. data/app/assets/stylesheets/caboose/admin/layout.scss +150 -0
  20. data/app/assets/stylesheets/caboose/admin/main.scss +34 -0
  21. data/app/assets/stylesheets/caboose/admin/modules/body.scss +176 -0
  22. data/app/assets/stylesheets/caboose/admin/modules/buttons.scss +120 -0
  23. data/app/assets/stylesheets/caboose/admin/modules/countdown.css +21 -0
  24. data/app/assets/stylesheets/caboose/admin/modules/crumbtrail.scss +80 -0
  25. data/app/assets/stylesheets/caboose/admin/modules/data_table.scss +92 -0
  26. data/app/assets/stylesheets/caboose/admin/modules/footer.scss +62 -0
  27. data/app/assets/stylesheets/caboose/admin/modules/forms.scss +72 -0
  28. data/app/assets/stylesheets/caboose/admin/modules/functions.scss +31 -0
  29. data/app/assets/stylesheets/caboose/admin/modules/grid.scss +108 -0
  30. data/app/assets/stylesheets/caboose/admin/modules/header.scss +77 -0
  31. data/app/assets/stylesheets/caboose/admin/modules/headings.scss +38 -0
  32. data/app/assets/stylesheets/caboose/admin/modules/main_nav.scss +73 -0
  33. data/app/assets/stylesheets/caboose/admin/modules/message_boxes.scss +55 -0
  34. data/app/assets/stylesheets/caboose/admin/modules/model_binder.scss +189 -0
  35. data/app/assets/stylesheets/caboose/admin/modules/navigation.scss +261 -0
  36. data/app/assets/stylesheets/caboose/admin/modules/order_bumps.scss +57 -0
  37. data/app/assets/stylesheets/caboose/admin/modules/pager.scss +34 -0
  38. data/app/assets/stylesheets/caboose/admin/modules/product_images.scss +21 -0
  39. data/app/assets/stylesheets/caboose/admin/modules/products.css +86 -0
  40. data/app/assets/stylesheets/caboose/admin/modules/search.scss +49 -0
  41. data/app/assets/stylesheets/caboose/admin/modules/selects.scss +12 -0
  42. data/app/assets/stylesheets/caboose/admin/modules/subnav_tabs.scss +34 -0
  43. data/app/assets/stylesheets/caboose/admin/modules/tabs.scss +140 -0
  44. data/app/assets/stylesheets/caboose/admin/page_edit/block_anchors.scss +48 -0
  45. data/app/assets/stylesheets/caboose/admin/page_edit/block_overlays.scss +182 -0
  46. data/app/assets/stylesheets/caboose/admin/page_edit/device_selector.scss +65 -0
  47. data/app/assets/stylesheets/caboose/admin/page_edit/froala.scss +81 -0
  48. data/app/assets/stylesheets/caboose/admin/page_edit/group_overlay.scss +115 -0
  49. data/app/assets/stylesheets/caboose/admin/page_edit/layout.scss +128 -0
  50. data/app/assets/stylesheets/caboose/admin/page_edit/main.scss +18 -0
  51. data/app/assets/stylesheets/caboose/admin/page_edit/modal.scss +11 -0
  52. data/app/assets/stylesheets/caboose/admin/page_edit/preview.scss +25 -0
  53. data/app/assets/stylesheets/caboose/admin/page_edit/publish.scss +25 -0
  54. data/app/assets/stylesheets/caboose/admin/page_edit/revisions.scss +58 -0
  55. data/app/assets/stylesheets/caboose/admin/page_edit/subnav.scss +273 -0
  56. data/app/assets/stylesheets/caboose/admin/page_edit/top_nav.scss +109 -0
  57. data/app/assets/stylesheets/caboose/admin/pages/assets_index.css +48 -0
  58. data/app/assets/stylesheets/caboose/admin/pages/block_edit_image.css.scss +386 -0
  59. data/app/assets/stylesheets/caboose/admin/pages/media_index.css.scss +300 -0
  60. data/app/assets/stylesheets/caboose/admin/pages/new_block.css +9 -0
  61. data/app/assets/stylesheets/caboose/admin/pages/page_edit.scss +960 -0
  62. data/app/assets/stylesheets/caboose/admin/pages/page_edit_content.scss +103 -0
  63. data/app/assets/stylesheets/caboose/admin/pages/pages_index.scss +79 -0
  64. data/app/assets/stylesheets/caboose/admin/pages/post_edit_content.css +46 -0
  65. data/app/assets/stylesheets/caboose/admin/print.css +3 -0
  66. data/app/assets/stylesheets/caboose/admin/slack.scss +51 -0
  67. data/app/assets/stylesheets/caboose/admin_block_edit_image.css.scss +1 -2
  68. data/app/assets/stylesheets/caboose/admin_edit_page_content_dragdrop.scss +15 -71
  69. data/app/assets/stylesheets/caboose/admin_main.css.scss +29 -25
  70. data/app/assets/stylesheets/caboose/admin_media_index.css.scss +5 -26
  71. data/app/assets/stylesheets/caboose/application.css +5 -11
  72. data/app/assets/stylesheets/caboose/login.scss +0 -1
  73. data/app/assets/stylesheets/caboose/modal_main.css +19 -21
  74. data/app/assets/stylesheets/caboose/model_binder.css +4 -13
  75. data/app/assets/stylesheets/caboose/page_bar_generator.css +1 -2
  76. data/app/controllers/caboose/admin_controller.rb +4 -3
  77. data/app/controllers/caboose/application_controller.rb +19 -16
  78. data/app/controllers/caboose/assets_controller.rb +65 -0
  79. data/app/controllers/caboose/block_types_controller.rb +6 -8
  80. data/app/controllers/caboose/cart_controller.rb +2 -2
  81. data/app/controllers/caboose/fonts_controller.rb +2 -139
  82. data/app/controllers/caboose/invoices_controller.rb +4 -5
  83. data/app/controllers/caboose/login_logs_controller.rb +7 -5
  84. data/app/controllers/caboose/media_categories_controller.rb +2 -16
  85. data/app/controllers/caboose/media_controller.rb +11 -14
  86. data/app/controllers/caboose/pages_controller.rb +42 -104
  87. data/app/controllers/caboose/posts_controller.rb +7 -53
  88. data/app/controllers/caboose/products_controller.rb +1 -1
  89. data/app/controllers/caboose/sites_controller.rb +6 -25
  90. data/app/controllers/caboose/sns_controller.rb +3 -3
  91. data/app/controllers/caboose/themes_controller.rb +0 -30
  92. data/app/controllers/caboose/users_controller.rb +10 -17
  93. data/app/controllers/caboose/variants_controller.rb +9 -9
  94. data/app/models/caboose/ab_variant.rb +1 -1
  95. data/app/models/caboose/asset.rb +23 -0
  96. data/app/models/caboose/asset_manager.rb +92 -0
  97. data/app/models/caboose/asset_manifest.rb +91 -0
  98. data/app/models/caboose/block.rb +24 -100
  99. data/app/models/caboose/block_cache.rb +105 -0
  100. data/app/models/caboose/block_cache_file.rb +22 -0
  101. data/app/models/caboose/block_cache_image.rb +53 -0
  102. data/app/models/caboose/block_type.rb +3 -4
  103. data/app/models/caboose/block_type_category.rb +2 -2
  104. data/app/models/caboose/block_type_parser.rb +1 -1
  105. data/app/models/caboose/block_type_source.rb +2 -2
  106. data/app/models/caboose/calendar_event_group.rb +2 -2
  107. data/app/models/caboose/category.rb +2 -2
  108. data/app/models/caboose/comment_routes.rb +8 -7
  109. data/app/models/caboose/core_plugin.rb +3 -4
  110. data/app/models/caboose/export.rb +1 -1
  111. data/app/models/caboose/font.rb +2 -7
  112. data/app/models/caboose/font_variant.rb +0 -12
  113. data/app/models/caboose/invoice.rb +14 -14
  114. data/app/models/caboose/line_item.rb +4 -4
  115. data/app/models/caboose/media.rb +4 -15
  116. data/app/models/caboose/media_category.rb +7 -5
  117. data/app/models/caboose/modification.rb +2 -2
  118. data/app/models/caboose/page.rb +54 -325
  119. data/app/models/caboose/page_bar_generator.rb +10 -20
  120. data/app/models/caboose/page_cache.rb +12 -0
  121. data/app/models/caboose/page_cacher.rb +137 -0
  122. data/app/models/caboose/post.rb +8 -108
  123. data/app/models/caboose/product.rb +5 -5
  124. data/app/models/caboose/product_image.rb +1 -1
  125. data/app/models/caboose/role.rb +2 -2
  126. data/app/models/caboose/schema.rb +72 -73
  127. data/app/models/caboose/site.rb +1 -203
  128. data/app/models/caboose/theme.rb +5 -70
  129. data/app/views/caboose/admin/_content.html.erb +44 -0
  130. data/app/views/caboose/admin/_fonts.html.erb +47 -0
  131. data/app/views/caboose/admin/_footer.html.erb +1 -0
  132. data/app/views/caboose/admin/_header.html.erb +12 -0
  133. data/app/views/caboose/admin/_icons.html.erb +6 -0
  134. data/app/views/caboose/admin/_mobile_navigation.html.erb +22 -0
  135. data/app/views/caboose/admin/_post.html.erb +74 -0
  136. data/app/views/caboose/admin/index.html.erb +33 -36
  137. data/app/views/caboose/block_types/admin_edit.html.erb +8 -6
  138. data/app/views/caboose/blocks/_file.html.erb +2 -2
  139. data/app/views/caboose/blocks/_ga.html.erb +2 -1
  140. data/app/views/caboose/blocks/_image.html.erb +0 -4
  141. data/app/views/caboose/blocks/_render_function.html.erb +4 -9
  142. data/app/views/caboose/fonts/admin_index.html.erb +10 -55
  143. data/app/views/caboose/invoices_mailer/customer_status_updated.html.erb +14 -5
  144. data/app/views/caboose/login_logs/admin_index_for_user.html.erb +1 -1
  145. data/app/views/caboose/media/admin_index.html.erb +24 -14
  146. data/app/views/caboose/my_account/index.html.erb +0 -1
  147. data/app/views/caboose/pages/_admin_header.html.erb +0 -5
  148. data/app/views/caboose/pages/admin_edit_content.html.erb +2 -6
  149. data/app/views/caboose/pages/admin_edit_general.html.erb +4 -32
  150. data/app/views/caboose/pages/admin_new_old.html.erb +46 -0
  151. data/app/views/caboose/pages/test.html.erb +64 -0
  152. data/app/views/caboose/posts/_admin_header.html.erb +0 -5
  153. data/app/views/caboose/posts/admin_delete_form.html.erb +1 -1
  154. data/app/views/caboose/posts/admin_edit_content.html.erb +2 -6
  155. data/app/views/caboose/products/admin_group_variants.html.erb +1 -1
  156. data/app/views/caboose/products/admin_sort.html copy.erb +1 -1
  157. data/app/views/caboose/sites/admin_edit.html.erb +0 -21
  158. data/app/views/caboose/themes/admin_edit.html.erb +3 -7
  159. data/app/views/caboose/users/_admin_header.html.erb +0 -4
  160. data/app/views/caboose/users/admin_edit_roles.html.erb +0 -1
  161. data/app/views/caboose/variants/admin_group.html.erb +1 -1
  162. data/app/views/layouts/caboose/admin.html.erb +2 -9
  163. data/app/views/layouts/caboose/application.html.erb +92 -62
  164. data/config/routes.rb +1 -4
  165. data/lib/caboose/version.rb +1 -1
  166. data/lib/tasks/caboose.rake +14 -3
  167. metadata +238 -57
  168. data/app/controllers/caboose/change_logs_controller.rb +0 -13
  169. data/app/models/caboose/change_log.rb +0 -97
  170. data/app/views/caboose/blocks/_cached_block.html.erb +0 -28
  171. data/app/views/caboose/change_logs/admin_index.html.erb +0 -65
  172. data/app/views/caboose/fonts/admin_family_edit.html.erb +0 -63
  173. data/app/views/caboose/fonts/admin_family_index.html.erb +0 -42
  174. data/app/views/caboose/fonts/admin_variant_edit.html.erb +0 -84
  175. data/app/views/caboose/pages/admin_change_logs.html.erb +0 -56
  176. data/app/views/caboose/pages/compiled_asset.css.erb +0 -0
  177. data/app/views/caboose/pages/compiled_asset.js.erb +0 -0
  178. data/app/views/caboose/posts/admin_change_logs.html.erb +0 -56
  179. data/app/views/caboose/sites/compiled_asset.css.erb +0 -0
  180. data/app/views/caboose/sites/compiled_asset.js.erb +0 -0
  181. data/app/views/caboose/themes/admin_error_log.html.erb +0 -9
  182. data/app/views/caboose/themes/admin_js.html.erb +0 -131
  183. data/app/views/caboose/users/admin_change_logs.html.erb +0 -63
  184. data/app/views/layouts/caboose/css.css.erb +0 -44
  185. data/app/views/layouts/caboose/footer_css.css.erb +0 -41
  186. data/app/views/layouts/caboose/footer_js.js.erb +0 -31
  187. data/app/views/layouts/caboose/js.js.erb +0 -34
@@ -3,11 +3,10 @@
3
3
  //
4
4
  //= require jquery
5
5
  //= require jquery_ujs
6
-
7
- // removed:
8
- // require caboose/jquery.placeholder
9
- // require caboose/jquery.detect
10
- // require caboose/main
11
- // require colorbox-rails
12
- // require caboose/modal_integration
13
- // require_tree ../../templates
6
+ //= require colorbox-rails
7
+ //= require underscore
8
+ //= require caboose/jquery.detect
9
+ //= require caboose/jquery.placeholder
10
+ //= require caboose/modal_integration
11
+ //= require caboose/main
12
+ //= require_tree ../../templates
@@ -4,8 +4,7 @@ var BlockContentController = function(params) { this.init(params); };
4
4
  BlockContentController.prototype = {
5
5
 
6
6
  post_id: false,
7
- page_id: false,
8
- is_publishing: false,
7
+ page_id: false,
9
8
  new_block_type_id: false,
10
9
  selected_block_ids: [],
11
10
  blocks: false,
@@ -13,8 +12,6 @@ BlockContentController.prototype = {
13
12
  included_assets: false,
14
13
  mc: false,
15
14
  editing_block: false,
16
- ajax_limit: 20,
17
- ajax_count: 0,
18
15
  inline_classes: ['rtedit'],
19
16
 
20
17
  init: function(params)
@@ -43,7 +40,6 @@ BlockContentController.prototype = {
43
40
  },
44
41
 
45
42
  is_modified: function() {
46
- var that = this;
47
43
  $("#tiny_header").removeClass('published').addClass('unpublished');
48
44
  },
49
45
 
@@ -131,51 +127,7 @@ BlockContentController.prototype = {
131
127
  that.modal = eval(new_modal_eval_string);
132
128
  }
133
129
  },
134
-
135
-
136
- publish_page: function() {
137
- var that = this;
138
- var url = that.base_url().replace("/blocks","/publish");
139
- that.is_publishing = true;
140
- that.is_loading(true, 'Publishing changes...');
141
- $.ajax({
142
- url: url,
143
- type: 'put',
144
- success: function(resp) {
145
- if (resp.success) {
146
- that.check_publish_status();
147
- }
148
- }
149
- });
150
- },
151
-
152
- check_publish_status: function() {
153
- var that = this;
154
- if ( that.ajax_count < that.ajax_limit ) {
155
- var url = that.base_url().replace("/blocks","/status");
156
- $.ajax({
157
- url: url,
158
- type: 'get',
159
- success: function(resp) {
160
- // console.log("status: " + resp.status);
161
- that.ajax_count += 1;
162
- if ( resp.status == 'published' ) {
163
- $("#tiny_header").removeClass("unpublished").addClass("published");
164
- that.is_loading(false, 'Page published!');
165
- that.is_publishing = false;
166
- that.ajax_limit = 20;
167
- }
168
- else {
169
- setTimeout(function() { that.check_publish_status(); }, 1500);
170
- }
171
- }
172
- });
173
- }
174
- else {
175
- that.show_error("Sorry, the page could not be published. Your changes have been saved. Please try refreshing the page.")
176
- }
177
- },
178
-
130
+
179
131
  underscores_to_camelcase: function(str)
180
132
  {
181
133
  var str2 = '';
@@ -200,8 +152,7 @@ BlockContentController.prototype = {
200
152
  type: 'get',
201
153
  success: function(html) {
202
154
  $('body .container #block_' + block_id).replaceWith(html);
203
- if ( !that.is_publishing )
204
- that.is_loading(false, 'Loading...');
155
+ that.is_loading(false, 'Loading...');
205
156
  that.add_dropzones();
206
157
  that.init_inline_editor();
207
158
  }
@@ -257,20 +208,13 @@ BlockContentController.prototype = {
257
208
  $("#caboose-loading").fadeOut();
258
209
  },
259
210
 
260
- show_error: function(message) {
261
- $("#caboose-loading").find("#loader").hide();
262
- $("#caboose-loading").fadeIn().find('h4').text(message).css('font-size','1em').css('text-transform','none');
263
- },
264
-
265
211
  move_block: function(block_id, parent_id, before_block_id, after_block_id) {
266
212
  var that = this;
267
213
  var block_id = block_id.replace('block_','');
268
214
  that.is_modified();
269
215
  if ( before_block_id != block_id && after_block_id != block_id && parent_id != block_id ) {
270
216
  var original = $('#block_' + block_id);
271
- // console.dir(original);
272
- // console.dir( original.data('draggable') );
273
- // if ( original.data('ui-draggable') ) { original.draggable('destroy'); }
217
+ if ( original.data('ui-draggable') ) { original.draggable('destroy'); }
274
218
  var el = original.detach();
275
219
  el.removeClass('ui-draggable-dragging, block_over');
276
220
  el.css({'left':'auto','right':'auto','bottom':'auto','top':'auto','height':'auto','width':'auto'});
@@ -295,8 +295,7 @@ var BlockModalController = ModalController.extend({
295
295
  type: 'put',
296
296
  success: function(html) {
297
297
  $('#the_modal .img-holder#block_' + block.id).find("img").attr('src','https://cabooseit.s3.amazonaws.com/assets/select_image.png');
298
- $("#the_modal .img-wrap > span").remove();
299
- $('#the_modal div#block_' + block.id + ' p').html("Click to select file for " + block.block_type.description + ".");
298
+ $('#the_modal div#block_' + block.id + ' p').html('Empty file.');
300
299
  $('#the_modal #block_' + block.id).parent().find('.caboose-btn').remove();
301
300
  that.parent_controller.render_blocks();
302
301
  that.autosize();
@@ -331,7 +330,7 @@ var BlockModalController = ModalController.extend({
331
330
  $('#the_modal #block_' + b.id).closest(".img-wrap").append(btn);
332
331
  }
333
332
 
334
- if ( b.block_type && b.block_type.field_type == 'file' && b.rendered_value.indexOf('Click to select file') < 0 ) {
333
+ if ( b.block_type && b.block_type.field_type == 'file' && b.rendered_value.indexOf('Click to select a file') < 0 ) {
335
334
  btn = $('<a href="#" class="caboose-btn remove">Remove File</a>');
336
335
  //btn.css('margin-bottom','10px').css('font-size','13px');
337
336
  btn.on('click', function(e) {
@@ -159,7 +159,7 @@ var MediaModalController = BlockModalController.extend({
159
159
  var opt = $('<option/>')
160
160
  .data('media_category_id', cat.id)
161
161
  .val(cat.id)
162
- .append(prefix + cat.name);
162
+ .append(prefix + cat.name + ' (' + cat.media_count + ')');
163
163
  if (cat.id == that.cat_id)
164
164
  opt.attr('selected', 'true');
165
165
  select.append(opt);
@@ -240,6 +240,7 @@ var MediaModalController = BlockModalController.extend({
240
240
 
241
241
  check_processing_status: function()
242
242
  {
243
+ console.log("checking processing status");
243
244
  var that = this;
244
245
  if (!that.last_upload_processed)
245
246
  that.last_upload_processed = new Date();
@@ -251,11 +252,11 @@ var MediaModalController = BlockModalController.extend({
251
252
  that.ajax_count += 1;
252
253
  var d = Date.parse(resp['last_upload_processed']);
253
254
  if (d > that.last_upload_processed) {
254
- // console.log("new processed image, refreshing");
255
+ console.log("new processed image, refreshing");
255
256
  that.refresh_media(function() { that.print_media(); });
256
257
  }
257
258
  else {
258
- // console.log("no new processed images, waiting");
259
+ console.log("no new processed images, waiting");
259
260
  setTimeout(function() { that.check_processing_status(); }, 3000);
260
261
  }
261
262
  that.last_upload_processed = d;
@@ -287,21 +288,9 @@ var MediaModalController = BlockModalController.extend({
287
288
  // }
288
289
 
289
290
  $('#top_controls').empty();
290
- var img_html = "";
291
- if (m.media_type == 'image') {
292
- var img_src = m.image_urls ? m.image_urls.thumb_url : 'https://cabooseit.s3.amazonaws.com/assets/select_image.png';
293
- img_html += "<img id='detail_image' src='" + img_src + "' />";
294
- img_html += "<p class='filename'>" + m.original_name + "</p>";
295
- }
296
- else if (m.original_name.indexOf('.pdf') >= 0 || m.original_name.indexOf('.PDF') >= 0) {
297
- img_html += "<embed id='detail_file' width='190' height='200' src='" + m.file_url + "' />";
298
- img_html += "<p class='filename'>" + m.original_name + "</p>";
299
- }
300
- else {
301
- img_html += "<p class='filename'>" + m.original_name + "</p>";
302
- }
291
+ var img_tag = m.media_type == 'image' ? ($('<img/>').attr('id', 'detail_image').attr('src', m.image_urls ? m.image_urls.thumb_url : 'https://cabooseit.s3.amazonaws.com/assets/select_image.png')) : ( $('<p/>').addClass("filename").text(m.original_name) );
303
292
  $('#the_modal #media').empty()
304
- .append( $("<div />").addClass("img-wrap").append(img_html) );
293
+ .append( $("<div />").addClass("img-wrap").append(img_tag) );
305
294
  // .append($('<p/>').append($('<div/>').attr('id', 'media_' + media_id + '_media_category_id' )))
306
295
  // .append($('<p/>').append($('<div/>').attr('id', 'media_' + media_id + '_name' )))
307
296
  // .append($('<p/>').append($('<div/>').attr('id', 'media_' + media_id + '_description' )))
@@ -1,3 +1,4 @@
1
+ //= require caboose/spectrum
1
2
  //= require caboose/model/class
2
3
  //= require caboose/model/model
3
4
  //= require caboose/model/s3
@@ -18,8 +19,3 @@
18
19
  //= require caboose/model/bound_text
19
20
  //= require caboose/model/bound_textarea
20
21
  //= require caboose/model/bound_richtext
21
-
22
-
23
-
24
- // removed:
25
- // require caboose/spectrum
@@ -0,0 +1,102 @@
1
+ // Color
2
+ $color-main: #2475A5;
3
+ $color-alt: #24A55E;
4
+
5
+ $color-light: #E4E4E4;
6
+ $color-dark: #505050;
7
+
8
+ // Size
9
+ $max-width: 1000px;
10
+ $body-bg-color: #fff;
11
+
12
+ $break-small: 550px;
13
+ $break-medium: 800px;
14
+ $break-large: 1100px;
15
+
16
+ // Typography
17
+ $font-size: 16px;
18
+
19
+ $font-main: normal 1em "body-font", sans-serif;
20
+ $font-alt: normal 1em "heading-font", sans-serif;
21
+ $font-btn: normal 1em "button-font", sans-serif;
22
+
23
+ // Headings
24
+ $heading-font: $font-alt;
25
+
26
+ // Header
27
+ $header-height: 64px;
28
+ $header-bg-color: $color-light;
29
+ $header-font-color: $color-dark;
30
+ $dropdown-color: $color-main;
31
+
32
+ // Sidebar
33
+ $sidebar-bg-color: $color-dark;
34
+ $sidebar-font-color: #fff;
35
+ $sidebar-border-color: rgba(255, 255, 255, 0.3);
36
+ $sidebar-icon-color: $color-dark;
37
+
38
+ // Footer
39
+ $footer-height: auto;
40
+ $footer-bg-color: $color-dark;
41
+ $footer-font-color: #fff;
42
+
43
+ // Buttons
44
+ $btn-border-radius: 5px;
45
+ $btn-border-width: 0; // 0 for no border
46
+ $btn-border-color: #999; // shade(#d0d0d0, 20%);
47
+ $btn-bg-color: #d0d0d0;
48
+ $btn-font-color: #000;
49
+ $btn-font: $font-btn;
50
+ $btn-font-size: 14px;
51
+ $btn-font-weight: normal; // bold || normal
52
+ $btn-font-case: uppercase; // none || uppercase || lowercase || capitalize
53
+ $btn-border-side: "all"; // "all" || "bottom"
54
+
55
+ // Inputs
56
+ $input-border-radius: 2px;
57
+ $input-bg-color: #fff;
58
+ $input-border-color: $color-main;
59
+ $input-border-width: 1px; // 0 for no border
60
+ $input-font: $font-main;
61
+ $input-font-color: $color-dark;
62
+ $input-font-size: 1em;
63
+
64
+ @mixin mini() { @media all and (max-width: $break-small) { @content }}
65
+ @mixin small() { @media all and (max-width: $break-medium) { @content }}
66
+ @mixin medium() { @media all and (min-width: $break-medium) and (max-width: $break-large) { @content }}
67
+ @mixin big() { @media all and (min-width: $break-medium) { @content }}
68
+ @mixin breakpx( $min, $max ) {
69
+ @media all and (min-width: $min) and (max-width: $max) { @content }
70
+ }
71
+
72
+ @mixin bgcover( $url ) {
73
+ background-image: url('#{$url}');
74
+ -ms-behavior: url('/bg.htc');
75
+ background-size: cover;
76
+ background-position: center center;
77
+ background-repeat: no-repeat;
78
+ }
79
+
80
+ @mixin flexbox() {
81
+ display: -webkit-box;
82
+ display: -moz-box;
83
+ display: -ms-flexbox;
84
+ display: -webkit-flex;
85
+ display: flex;
86
+ }
87
+
88
+ @mixin flex($values) {
89
+ -webkit-box-flex: $values;
90
+ -moz-box-flex: $values;
91
+ -webkit-flex: $values;
92
+ -ms-flex: $values;
93
+ flex: $values;
94
+ }
95
+
96
+ @mixin order($val) {
97
+ -webkit-box-ordinal-group: $val;
98
+ -moz-box-ordinal-group: $val;
99
+ -ms-flex-order: $val;
100
+ -webkit-order: $val;
101
+ order: $val;
102
+ }
@@ -0,0 +1,11 @@
1
+ /*
2
+ * /app/assets/stylsheets/caboose/admin/application.css
3
+ *
4
+ *= require_self
5
+ *= require colorbox-rails
6
+ *= require jquery-ui
7
+ *= require caboose/jquery.datetimepicker
8
+ *= require caboose/admin/jquery-ui-subnav-theme.min
9
+ *= require caboose/admin/main
10
+ *= require caboose/admin/component
11
+ */
@@ -0,0 +1,183 @@
1
+ /* General styles for all menus */
2
+ .cbp-spmenu {
3
+ background: #47a3da;
4
+ position: fixed;
5
+ }
6
+
7
+ .cbp-spmenu h3 {
8
+ color: #afdefa;
9
+ font-size: 1.9em;
10
+ padding: 20px;
11
+ margin: 0;
12
+ font-weight: 300;
13
+ background: #0d77b6;
14
+ }
15
+
16
+ .cbp-spmenu a {
17
+ display: block;
18
+ color: #fff;
19
+ font-size: 0.9em;
20
+ font-weight: 300;
21
+ height: 40px !important;
22
+ text-decoration: none;
23
+ cursor: pointer;
24
+ }
25
+ .cbp-spmenu a.close {
26
+ color: #fff;
27
+ font-size: 0.9em;
28
+ font-weight: 300;
29
+ height: 25px !important;
30
+ text-align: right;
31
+ border-bottom: 0px;
32
+ cursor: pointer;
33
+ }
34
+ .cbp-spmenu-vertical a.close{
35
+ padding: 0.3em;
36
+ }
37
+
38
+ .cbp-spmenu a:hover {
39
+ background: #258ecd;
40
+ }
41
+
42
+ .cbp-spmenu a:active {
43
+ background: #afdefa;
44
+ color: #47a3da;
45
+ }
46
+
47
+ /* Orientation-dependent styles for the content of the menu */
48
+
49
+ .cbp-spmenu-vertical {
50
+ width: 240px;
51
+ height: 100%;
52
+ top: 54px;
53
+ }
54
+
55
+ .cbp-spmenu-vertical a {
56
+ border-bottom: 1px solid #258ecd;
57
+ padding: 0.6em;
58
+ }
59
+
60
+ .cbp-spmenu-horizontal {
61
+ width: 100%;
62
+ height: 150px;
63
+ left: 0;
64
+ z-index: 1000;
65
+ overflow: hidden;
66
+ }
67
+
68
+ .cbp-spmenu-horizontal h3 {
69
+ height: 100%;
70
+ width: 20%;
71
+ float: left;
72
+ }
73
+
74
+ .cbp-spmenu-horizontal a {
75
+ float: left;
76
+ width: 20%;
77
+ padding: 0.8em;
78
+ border-left: 1px solid #258ecd;
79
+ }
80
+
81
+ /* Vertical menu that slides from the left or right */
82
+
83
+ .cbp-spmenu-left {
84
+ left: -240px;
85
+ z-index: 999;
86
+ }
87
+
88
+ .cbp-spmenu-right {
89
+ right: -240px;
90
+ }
91
+
92
+ .cbp-spmenu-left.cbp-spmenu-open {
93
+ left: 80px;
94
+ top: 54px;
95
+ width: 270px;
96
+ z-index: 999;
97
+ }
98
+
99
+ .cbp-spmenu-right.cbp-spmenu-open {
100
+ right: 0px;
101
+ }
102
+
103
+ /* Horizontal menu that slides from the top or bottom */
104
+
105
+ .cbp-spmenu-top {
106
+ top: -150px;
107
+ }
108
+
109
+ .cbp-spmenu-bottom {
110
+ bottom: -150px;
111
+ }
112
+
113
+ .cbp-spmenu-top.cbp-spmenu-open {
114
+ top: 0px;
115
+ }
116
+
117
+ .cbp-spmenu-bottom.cbp-spmenu-open {
118
+ bottom: 0px;
119
+ }
120
+
121
+ /* Push classes applied to the body */
122
+
123
+ .cbp-spmenu-push {
124
+ overflow-x: hidden;
125
+ position: relative;
126
+ }
127
+
128
+ .cbp-spmenu-push-toright {
129
+ left: 240px;
130
+ }
131
+
132
+ .cbp-spmenu-push-toleft {
133
+ left: -240px;
134
+ }
135
+
136
+ /* Transitions */
137
+
138
+ .cbp-spmenu,
139
+ .cbp-spmenu-push {
140
+ -webkit-transition: all 0.3s ease;
141
+ -moz-transition: all 0.3s ease;
142
+ transition: all 0.3s ease;
143
+ }
144
+
145
+ /* Example media queries */
146
+
147
+ @media screen and (max-width: 55.1875em){
148
+
149
+ .cbp-spmenu-horizontal {
150
+ font-size: 75%;
151
+ height: 110px;
152
+ }
153
+
154
+ .cbp-spmenu-top {
155
+ top: -110px;
156
+ }
157
+
158
+ .cbp-spmenu-bottom {
159
+ bottom: -110px;
160
+ }
161
+
162
+ }
163
+
164
+ @media screen and (max-height: 26.375em){
165
+
166
+ .cbp-spmenu-vertical {
167
+ font-size: 90%;
168
+ width: 190px;
169
+ }
170
+
171
+ .cbp-spmenu-left,
172
+ .cbp-spmenu-push-toleft {
173
+ left: -190px;
174
+ }
175
+
176
+ .cbp-spmenu-right {
177
+ right: -190px;
178
+ }
179
+
180
+ .cbp-spmenu-push-toright {
181
+ left: 190px;
182
+ }
183
+ }