caboose-cms 0.9.208 → 0.9.209

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c38ca1dd899315b1bb4ea1ef3473b6eff70b26d3a7d1c59665aa61012fcf4c2f
4
- data.tar.gz: 60baa129bba6f0cab07bb699fc727a5b6944e0b0d6abe8fae7ea1c2e7dfe2736
3
+ metadata.gz: 3f240b8f7e43d86233a5fbe560e9ee1050f991d30982dbad188412742619969d
4
+ data.tar.gz: 676146fb8424d3236d64a0373002ea0bf0bba9a84a6d407cfeac607a67b283cb
5
5
  SHA512:
6
- metadata.gz: 991ff197c5e0b4b30f883dab98c71cbada05c2407b0904c97b726182afac86564b16b83ba62624edbb0b4d8e4aad81d343a7bad249dfe76c5f1705841384853a
7
- data.tar.gz: 122b91f53f3899eea5ecffebb57229393540ab427fa305ea9dfb91392c0955b51191e138ff8ade4d60ede8724893bcf4e947dd177624efc2e176dac0a36c346e
6
+ metadata.gz: faf13344ea43cb3262b6b915048c8b8a196e52b33a2bafc9ce62dbbe46f4451e1fa0f628d43d0e01654a19828088d1faff8166eeb5175cda9c60ca0a9475543c
7
+ data.tar.gz: '09efeee1d9f86edb50d910fab362d518a82dd8a124500385f14d520543469dbf232b4e48a70a32e8f2f1eeb1eaf762a4813dc0c34dc61b132d513a288944a167'
@@ -144,7 +144,7 @@ BlockContentController.prototype = {
144
144
 
145
145
  render_block: function(block_id) {
146
146
  var that = this;
147
- // console.log("rendering block " + block_id + "...");
147
+ // console.log("rendering block " + block_id + "...");
148
148
  var url = that.base_url() + '/' + block_id + '/render';
149
149
  that.is_modified();
150
150
  $.ajax({
@@ -88,7 +88,6 @@ var BlockModalController = ModalController.extend({
88
88
  {
89
89
  var separate_children = that.block.block_type.allow_child_blocks && that.block.block_type.default_child_block_type_id;
90
90
  var separate_child_id = separate_children ? that.block.block_type.default_child_block_type_id : false;
91
-
92
91
  $.each(that.block.children, function(i, b) {
93
92
  if (separate_children && b.block_type.id == separate_child_id) return;
94
93
  var div_id = 'block_' + b.id + (that.complex_field_types.indexOf(b.block_type.field_type) == -1 ? '_value' : '');
@@ -127,14 +126,14 @@ var BlockModalController = ModalController.extend({
127
126
  {
128
127
  var that = this;
129
128
  var p = $('<p/>').css('clear', 'both')
130
- .append($('<input/>').attr('type', 'button').addClass('caboose-btn').val('Close').click(function() { that.close(); that.parent_controller.render_blocks(); })).append(' ');
131
- if (!that.block.name)
129
+ .append($('<input/>').attr('type', 'button').addClass('caboose-btn').addClass('close').val('Close').click(function() { that.close(); /* that.parent_controller.render_blocks(); */ })).append(' ');
130
+ if (!that.block.name && that.block.block_type.name.indexOf('_header') < 0)
132
131
  {
133
- p.append($('<input/>').attr('type', 'button').addClass('caboose-btn').val('Delete Block').click(function() { that.delete_block(); })).append(' ');
134
- p.append($('<input/>').attr('type', 'button').addClass('caboose-btn').val('Duplicate Block').click(function() { that.duplicate_block(); })).append(' ');
135
- }
136
- p.append($('<input/>').attr('type', 'button').addClass('caboose-btn').val('Move Up' ).click(function() { that.move_up(); })).append(' ');
137
- p.append($('<input/>').attr('type', 'button').addClass('caboose-btn').val('Move Down' ).click(function() { that.move_down(); })).append(' ');
132
+ p.append($('<input/>').attr('type', 'button').addClass('caboose-btn').addClass('delete').val('Delete Block').click(function() { that.delete_block(); })).append(' ');
133
+ p.append($('<input/>').attr('type', 'button').addClass('caboose-btn').addClass('duplicate').val('Duplicate Block').click(function() { that.duplicate_block(); })).append(' ');
134
+ p.append($('<input/>').attr('type', 'button').addClass('caboose-btn').addClass('moveup').val('Move Up' ).click(function() { that.move_up(); })).append(' ');
135
+ p.append($('<input/>').attr('type', 'button').addClass('caboose-btn').addClass('movedown').val('Move Down' ).click(function() { that.move_down(); })).append(' ');
136
+ }
138
137
  //p.append($('<input/>').attr('type', 'button').addClass('caboose-btn').val('Advanced' ).attr('id', 'btn_advanced').click(function() { that.print_advanced(); }));
139
138
  $('#modal_controls').empty().append(p);
140
139
  },
@@ -208,7 +207,12 @@ var BlockModalController = ModalController.extend({
208
207
  var that = this;
209
208
  if (that.block.block_type.field_type != 'block' && that.block.children.length == 0)
210
209
  return;
211
- $.each(that.block.children, function(i, b) { if ( b.name != null || that.block.block_type.default_child_block_type_id == b.block_type.id ) { that.render_child_block(b); } });
210
+ $.each(that.block.children, function(i, b) {
211
+ if ( b.name != null || that.block.block_type.default_child_block_type_id == b.block_type.id )
212
+ that.render_child_block(b);
213
+ else
214
+ $("#modal_content #block_" + b.id).remove();
215
+ });
212
216
  },
213
217
 
214
218
  render_child_block: function(b)
@@ -417,7 +421,7 @@ var BlockModalController = ModalController.extend({
417
421
  that.modal(div, 780);
418
422
  return;
419
423
  }
420
- that.autosize("<p class='loading'>Adding block...</p>");
424
+ that.autosize("<p class='note loading'>Adding block...</p>");
421
425
 
422
426
  bt = false;
423
427
  $.ajax({
@@ -463,7 +467,7 @@ var BlockModalController = ModalController.extend({
463
467
  that.autosize(p);
464
468
  return;
465
469
  }
466
- that.autosize("<p class='loading'>Deleting block...</p>");
470
+ that.autosize("<p class='note loading'>Deleting block...</p>");
467
471
  that.parent_controller.delete_block(that.block.id, true);
468
472
  that.close();
469
473
  },
@@ -471,7 +475,7 @@ var BlockModalController = ModalController.extend({
471
475
  duplicate_block: function()
472
476
  {
473
477
  var that = this;
474
- that.autosize("<p class='loading'>Duplicating...</p>");
478
+ that.autosize("<p class='note loading'>Duplicating...</p>");
475
479
  that.parent_controller.duplicate_block(that.block.id);
476
480
  that.autosize("<p class='note success'>Duplicated block.</p>");
477
481
  },
@@ -479,7 +483,7 @@ var BlockModalController = ModalController.extend({
479
483
  move_up: function()
480
484
  {
481
485
  var that = this;
482
- that.autosize("<p class='loading'>Moving up...</p>");
486
+ that.autosize("<p class='note loading'>Moving up...</p>");
483
487
  $.ajax({
484
488
  url: that.block_url(that.block) + '/move-up',
485
489
  type: 'put',
@@ -497,7 +501,7 @@ var BlockModalController = ModalController.extend({
497
501
  move_down: function()
498
502
  {
499
503
  var that = this;
500
- that.autosize("<p class='loading'>Moving down...</p>");
504
+ that.autosize("<p class='note loading'>Moving down...</p>");
501
505
  $.ajax({
502
506
  url: that.block_url(that.block) + '/move-down',
503
507
  type: 'put',
@@ -381,7 +381,7 @@ var BlockModalController = ModalController.extend({
381
381
  that.modal(div, 780);
382
382
  return;
383
383
  }
384
- that.autosize("<p class='loading'>Adding block...</p>");
384
+ that.autosize("<p class='note loading'>Adding block...</p>");
385
385
 
386
386
  bt = false;
387
387
  $.ajax({
@@ -429,7 +429,7 @@ var BlockModalController = ModalController.extend({
429
429
  that.autosize(p);
430
430
  return;
431
431
  }
432
- that.autosize("<p class='loading'>Deleting block...</p>");
432
+ that.autosize("<p class='note loading'>Deleting block...</p>");
433
433
  $.ajax({
434
434
  url: that.block_url(that.block),
435
435
  type: 'delete',
@@ -448,7 +448,7 @@ var BlockModalController = ModalController.extend({
448
448
  duplicate_block: function()
449
449
  {
450
450
  var that = this;
451
- that.autosize("<p class='loading'>Duplicating...</p>");
451
+ that.autosize("<p class='note loading'>Duplicating...</p>");
452
452
  $.ajax({
453
453
  url: that.block_url(that.block) + '/duplicate',
454
454
  type: 'put',
@@ -465,7 +465,7 @@ var BlockModalController = ModalController.extend({
465
465
  move_up: function()
466
466
  {
467
467
  var that = this;
468
- that.autosize("<p class='loading'>Moving up...</p>");
468
+ that.autosize("<p class='note loading'>Moving up...</p>");
469
469
  $.ajax({
470
470
  url: that.block_url(that.block) + '/move-up',
471
471
  type: 'put',
@@ -484,7 +484,7 @@ var BlockModalController = ModalController.extend({
484
484
  move_down: function()
485
485
  {
486
486
  var that = this;
487
- that.autosize("<p class='loading'>Moving down...</p>");
487
+ that.autosize("<p class='note loading'>Moving down...</p>");
488
488
  $.ajax({
489
489
  url: that.block_url(that.block) + '/move-down',
490
490
  type: 'put',
@@ -207,8 +207,10 @@ var MediaModalController = BlockModalController.extend({
207
207
  else if (m.original_name) {
208
208
  var ext = m.original_name.match(/\.[0-9a-z]+$/i);
209
209
  li.addClass('empty');
210
- if (ext && ext.length > 0)
210
+ if (ext && ext.length > 0) {
211
+ li.addClass(ext[0].replace(".","").toLowerCase());
211
212
  li.append($('<img/>').attr('src', that.assets_path + 'caboose/file_types/' + ext[0].replace(".","").toLowerCase() + '.png').addClass('file-icon').attr("width","80").attr("height","80"));
213
+ }
212
214
  }
213
215
 
214
216
  //if (that.selected_media.indexOf(m.id) > -1)
@@ -251,7 +253,7 @@ var MediaModalController = BlockModalController.extend({
251
253
  var d = Date.parse(resp['last_upload_processed']);
252
254
  if (d > that.last_upload_processed) {
253
255
  console.log("new processed image, refreshing");
254
- that.refresh_media();
256
+ that.refresh_media(function() { that.print_media(); });
255
257
  }
256
258
  else {
257
259
  console.log("no new processed images, waiting");
@@ -286,7 +288,7 @@ var MediaModalController = BlockModalController.extend({
286
288
  // }
287
289
 
288
290
  $('#top_controls').empty();
289
- 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/>').text(m.original_name) );
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) );
290
292
  $('#the_modal #media').empty()
291
293
  .append( $("<div />").addClass("img-wrap").append(img_tag) );
292
294
  // .append($('<p/>').append($('<div/>').attr('id', 'media_' + media_id + '_media_category_id' )))
@@ -296,13 +298,13 @@ var MediaModalController = BlockModalController.extend({
296
298
  var select_text = m.media_type == 'image' ? 'Select this Image' : 'Select this File';
297
299
  $('#modal_controls').empty()
298
300
  .append($('<p/>').css('clear', 'both')
299
- .append($('<input/>').attr('type', 'button').addClass('caboose-btn').val(select_text ).click(function(e) { that.select_media(media_id) }))
300
- .append($('<input/>').attr('type', 'button').addClass('caboose-btn').val('Back' ).click(function(e) {
301
+ .append($('<input/>').attr('type', 'button').addClass('caboose-btn').addClass('select').val(select_text ).click(function(e) { that.select_media(media_id) }))
302
+ .append($('<input/>').attr('type', 'button').addClass('caboose-btn').addClass('back').val('Back' ).click(function(e) {
301
303
  that.print_top_controls();
302
304
  that.print_media();
303
305
  that.print_controls();
304
306
  }))
305
- .append($('<input/>').attr('type', 'button').addClass('caboose-btn').val('Close' ).click(function(e) { that.parent_controller.render_blocks(); that.close(); }))
307
+ // .append($('<input/>').attr('type', 'button').addClass('caboose-btn').addClass('close').val('Close' ).click(function(e) { that.parent_controller.render_blocks(); that.close(); }))
306
308
  );
307
309
 
308
310
  // var m = new ModelBinder({
@@ -36,7 +36,7 @@ var ModalController = Class.extend({
36
36
  var that = this;
37
37
  if (that.before_close) that.before_close();
38
38
  $("#caboose_sidebar_holder").removeClass("visible");
39
- setTimeout(function(){ $("#caboose_sidebar_holder").html("") }, 500);
39
+ setTimeout(function(){ $("#caboose_sidebar_holder").html("") }, 500);
40
40
  },
41
41
 
42
42
  /*****************************************************************************
@@ -145,6 +145,7 @@
145
145
  border: #b5b5b5 1px solid;
146
146
  border-radius: 2px;
147
147
  cursor: pointer;
148
+ overflow: hidden;
148
149
  img {
149
150
  display: none;
150
151
  }
@@ -179,6 +179,7 @@ body.editing .footer-wrapper #footer-msg {
179
179
  display: block;
180
180
  width: 100%;
181
181
  text-align: center;
182
+ padding: 10px;
182
183
  }
183
184
  }
184
185
  h1, h2, h3, h4, h5, h6 {
@@ -187,6 +188,12 @@ body.editing .footer-wrapper #footer-msg {
187
188
  margin-bottom: 5px;
188
189
  color: #252525;
189
190
  }
191
+ h6 { font-size: 14px; }
192
+ h5 { font-size: 15px; }
193
+ h4 { font-size: 16px; }
194
+ h3 { font-size: 17px; }
195
+ h2 { font-size: 18px; }
196
+ h1 { font-size: 19px; }
190
197
  #modal_content {
191
198
  & > div {
192
199
  margin-bottom: 8px;
@@ -232,6 +239,21 @@ body.editing .footer-wrapper #footer-msg {
232
239
  }
233
240
  }
234
241
  }
242
+ .caboose-btn.remove {
243
+ background-size: 11px;
244
+ background-repeat: no-repeat;
245
+ background-position: 8px 7px;
246
+ background-image: url('/assets/caboose/icons/delete.png');
247
+ background-color: #6f3030;
248
+ &:hover { background-color: shade(#6f3030, 20%); }
249
+ }
250
+ .filename {
251
+ background: #ecebe8;
252
+ margin: 0;
253
+ padding: 5px;
254
+ width: 190px;
255
+ display: block;
256
+ }
235
257
  }
236
258
  .mb_container {
237
259
  padding-top: 18px;
@@ -266,22 +288,30 @@ body.editing .footer-wrapper #footer-msg {
266
288
  min-height: 80px;
267
289
  }
268
290
  .mb_bound_textarea_controls {
269
- top: 18px !important;
291
+ top: 0 !important;
270
292
  left: auto !important;
271
- right: 0;
272
- width: 148px;
293
+ right: -2px;
294
+ width: 128px !important;
295
+ & > div {
296
+ width: 128px !important;
297
+ }
273
298
  a {
274
- height: 30px;
299
+ height: 22px;
275
300
  background: #ecebe8;
276
301
  border: 1px solid #c5c5c5;
277
- padding: 6px 0 0 0;
302
+ padding: 0;
278
303
  margin: 0 0 0 3px;
279
- width: 70px;
304
+ width: 60px !important;
305
+ font-size: 12px;
306
+ line-height: 20px;
307
+ &:hover {
308
+ background: #d8d7d6;
309
+ }
280
310
  }
281
311
  }
282
312
  select.mb_fake {
283
313
  top: 18px;
284
- height: 30px !important;
314
+ height: 27px !important;
285
315
  border: 0;
286
316
  width: 100% !important;
287
317
  font-family: 'Roboto' !important;
@@ -351,6 +381,11 @@ body.editing .footer-wrapper #footer-msg {
351
381
  &:hover span.name {
352
382
  opacity: 1;
353
383
  }
384
+ &.pdf, &.doc, &.docx {
385
+ span.name {
386
+ opacity: 1;
387
+ }
388
+ }
354
389
  }
355
390
  }
356
391
  }
@@ -435,6 +470,44 @@ body.editing .footer-wrapper #footer-msg {
435
470
  p {
436
471
  .caboose-btn {
437
472
  margin: 0 0 4px 0;
473
+ background-size: 11px;
474
+ background-repeat: no-repeat;
475
+ background-position: 8px 7px;
476
+ &.select {
477
+ background-image: url('/assets/caboose/icons/right.png');
478
+ background-color: #2f562f;
479
+ &:hover { background-color: shade(#2f562f, 20%); }
480
+ }
481
+ &.back {
482
+ background-image: url('/assets/caboose/icons/left.png');
483
+ background-color: #484848;
484
+ &:hover { background-color: shade(#484848, 20%); }
485
+ }
486
+ &.close {
487
+ background-image: url('/assets/caboose/icons/left.png');
488
+ background-color: #3e3e71;
489
+ &:hover { background-color: shade(#3e3e71, 20%); }
490
+ }
491
+ &.delete {
492
+ background-image: url('/assets/caboose/icons/delete.png');
493
+ background-color: #6f3030;
494
+ &:hover { background-color: shade(#6f3030, 20%); }
495
+ }
496
+ &.duplicate {
497
+ background-image: url('/assets/caboose/icons/copy.png');
498
+ background-color: #2f562f;
499
+ &:hover { background-color: shade(#2f562f, 20%); }
500
+ }
501
+ &.moveup {
502
+ background-image: url('/assets/caboose/icons/up.png');
503
+ background-color: #7d673d;
504
+ &:hover { background-color: shade(#7d673d, 20%); }
505
+ }
506
+ &.movedown {
507
+ background-image: url('/assets/caboose/icons/down.png');
508
+ background-color: #7d673d;
509
+ &:hover { background-color: shade(#7d673d, 20%); }
510
+ }
438
511
  }
439
512
  }
440
513
  }
@@ -130,8 +130,8 @@
130
130
  display: block;
131
131
  overflow: hidden;
132
132
  text-align: center;
133
- // padding: 8px;
134
133
  border: 1px solid #dadada;
134
+ opacity: 1;
135
135
  &.png {
136
136
  background-image: url('/assets/caboose/grid.png');
137
137
  background-size: 16px;
@@ -14,6 +14,30 @@ module Caboose
14
14
  render :json => BlockTypeCategory.tree
15
15
  end
16
16
 
17
+ # @route GET /admin/block-type-categories/new
18
+ def admin_new
19
+ render :layout => 'caboose/admin'
20
+ end
21
+
22
+ # @route POST /admin/block-type-categories
23
+ def admin_create
24
+ render :json => false and return if !logged_in_user.is_super_admin?
25
+ resp = StdClass.new
26
+ if params[:name].blank?
27
+ resp.error = "Name is required."
28
+ else
29
+ par = BlockTypeCategory.where(:name => 'Content').first
30
+ max = BlockTypeCategory.where(:parent_id => par.id).maximum(:sort_order) if par
31
+ btc = BlockTypeCategory.new
32
+ btc.name = params[:name]
33
+ btc.parent_id = par.id if par
34
+ btc.sort_order = max + 1 if max
35
+ btc.save
36
+ resp.redirect = "/admin/block-type-categories/#{btc.id}"
37
+ end
38
+ render :json => resp
39
+ end
40
+
17
41
  # @route GET /admin/block-type-categories/:id
18
42
  def admin_edit
19
43
  redirect_to '/admin' and return if !logged_in_user.is_super_admin?
@@ -32,7 +32,7 @@ $(document).ready(function() {
32
32
  authenticity_token: '<%= form_authenticity_token %>',
33
33
  attributes: [
34
34
  { name: 'name' , nice_name: 'Name', type: 'text' , value: <%= raw Caboose.json(@btc.name) %>, width: 400 },
35
- { name: 'parent_id' , nice_name: 'Parent', type: 'text' , value: <%= raw Caboose.json(@btc.parent_id) %>, width: 400 },
35
+ { name: 'parent_id' , nice_name: 'Parent', type: 'select' , value: <%= raw Caboose.json(@btc.parent_id) %>, options_url: '/admin/block-type-categories/tree-options', width: 400 },
36
36
  { name: 'sort_order' , nice_name: 'Sort Order', type: 'text' , value: <%= raw Caboose.json(@btc.sort_order) %>, width: 400 },
37
37
  { name: 'show_in_sidebar' , nice_name: 'Show in Sidebar', type: 'checkbox' , value: <%= raw Caboose.json(@btc.show_in_sidebar) %>, width: 400 }
38
38
  ]
@@ -20,4 +20,6 @@
20
20
  </ul>
21
21
  </li>
22
22
  <% end %>
23
- </ul>
23
+ </ul>
24
+ <br /><br />
25
+ <a href="/admin/block-type-categories/new" class="caboose-btn">New Category</a>
@@ -0,0 +1,32 @@
1
+
2
+ <h1>New Block Type Category</h1>
3
+
4
+ <p><input type='text' id='name' name='name' placeholder='Name' style="width: 400px;" /></p>
5
+ <div id='message'></div>
6
+ <p><input type='submit' value='Add Block Type Category' onclick='add_btc();' /></p>
7
+
8
+ <% content_for :caboose_js do %>
9
+ <%= javascript_include_tag "caboose/model/all" %>
10
+ <script type='text/javascript'>
11
+
12
+ function add_btc()
13
+ {
14
+ $("#message").html("<p class='note loading'>Adding block type category...</p>");
15
+ $.ajax({
16
+ url: '/admin/block-type-categories',
17
+ type: 'post',
18
+ data: {
19
+ authenticity_token: "<%= form_authenticity_token %>",
20
+ name: $('#name').val(),
21
+ },
22
+ success: function(resp) {
23
+ if (resp.error)
24
+ $("#message").html("<p class='note error'>" + resp.error + "</p>");
25
+ if (resp.redirect)
26
+ window.location = resp.redirect
27
+ }
28
+ });
29
+ }
30
+
31
+ </script>
32
+ <% end %>
@@ -1,7 +1,7 @@
1
1
  <%
2
- btsm = Caboose::BlockTypeSiteMembership.where(:site_id => @site.id).pluq(:block_type_id)
2
+ cats = Caboose::BlockTypeCategory.where(:show_in_sidebar => true).order(:sort_order).all
3
3
  grid = Caboose::BlockType.where(:name => 'flex_grid').first
4
- @block_types = Caboose::BlockType.where(:parent_id => nil, :block_type_category_id => 2).where(:id => btsm).order(:description)
4
+ seen_btids = [0]
5
5
  %>
6
6
 
7
7
  <div class='icons' id='new_blocks_container2'>
@@ -27,12 +27,27 @@ grid = Caboose::BlockType.where(:name => 'flex_grid').first
27
27
  <span class='bname'>5 Column Row</span>
28
28
  </li>
29
29
  <% end %>
30
- <li class='title'><span>Content</span></li>
31
- <% @block_types.each do |block_type| %>
32
- <li class='blocktype bt' id='new_block_<%= block_type.id %>' data-btid='<%= block_type.id %>'>
33
- <span class='icon icon-<%= block_type.icon %>'></span>
34
- <span class='bname'><%= block_type.description %></span>
35
- </li>
30
+ <% cats.each do |cat| %>
31
+ <% block_types = Caboose::BlockType.joins(:sites).where(:parent_id => nil, :block_type_category_id => cat.id).where("sites.id = ?", @site.id).order(:description) %>
32
+ <% next if block_types.count == 0 %>
33
+ <li class='title'><span><%= cat.name %></span></li>
34
+ <% block_types.each do |block_type| %>
35
+ <li class='blocktype bt' id='new_block_<%= block_type.id %>' data-btid='<%= block_type.id %>'>
36
+ <span class='icon icon-<%= block_type.icon %>'></span>
37
+ <span class='bname'><%= block_type.description %></span>
38
+ </li>
39
+ <% seen_btids << block_type.id %>
40
+ <% end %>
41
+ <% end %>
42
+ <% all_bts = Caboose::BlockType.joins(:sites).where(:parent_id => nil, :block_type_category_id => 2).where("sites.id = ?", @site.id).where("block_types.id not in (?)", seen_btids).order(:description) %>
43
+ <% if all_bts.count > 0 %>
44
+ <li class='title'><span>All Blocks</span></li>
45
+ <% all_bts.each do |block_type| %>
46
+ <li class='blocktype bt' id='new_block_<%= block_type.id %>' data-btid='<%= block_type.id %>'>
47
+ <span class='icon icon-<%= block_type.icon %>'></span>
48
+ <span class='bname'><%= block_type.description %></span>
49
+ </li>
50
+ <% end %>
36
51
  <% end %>
37
52
  </ul>
38
53
  </div>
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.9.208'
2
+ VERSION = '0.9.209'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.208
4
+ version: 0.9.209
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-28 00:00:00.000000000 Z
11
+ date: 2018-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -502,6 +502,12 @@ files:
502
502
  - app/assets/images/caboose/file_types/xlsx.png
503
503
  - app/assets/images/caboose/file_types/zip.png
504
504
  - app/assets/images/caboose/grid.png
505
+ - app/assets/images/caboose/icons/copy.png
506
+ - app/assets/images/caboose/icons/delete.png
507
+ - app/assets/images/caboose/icons/down.png
508
+ - app/assets/images/caboose/icons/left.png
509
+ - app/assets/images/caboose/icons/right.png
510
+ - app/assets/images/caboose/icons/up.png
505
511
  - app/assets/images/caboose/loading2.gif
506
512
  - app/assets/images/caboose/loading_black_on_white.gif
507
513
  - app/assets/images/caboose/loading_black_on_yellow.gif