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 +4 -4
- data/app/assets/images/caboose/icons/copy.png +0 -0
- data/app/assets/images/caboose/icons/delete.png +0 -0
- data/app/assets/images/caboose/icons/down.png +0 -0
- data/app/assets/images/caboose/icons/left.png +0 -0
- data/app/assets/images/caboose/icons/right.png +0 -0
- data/app/assets/images/caboose/icons/up.png +0 -0
- data/app/assets/javascripts/caboose/block_content_controller_dragdrop.js +1 -1
- data/app/assets/javascripts/caboose/block_modal_controllers/block_dd_modal_controller.js +18 -14
- data/app/assets/javascripts/caboose/block_modal_controllers/block_modal_controller.js +5 -5
- data/app/assets/javascripts/caboose/block_modal_controllers/media_modal_controller.js +8 -6
- data/app/assets/javascripts/caboose/modal_controller.js +1 -1
- data/app/assets/stylesheets/caboose/admin_block_edit_image.css.scss +1 -0
- data/app/assets/stylesheets/caboose/admin_edit_page_content_dragdrop.scss +80 -7
- data/app/assets/stylesheets/caboose/admin_media_index.css.scss +1 -1
- data/app/controllers/caboose/block_type_categories_controller.rb +24 -0
- data/app/views/caboose/block_type_categories/admin_edit.html.erb +1 -1
- data/app/views/caboose/block_type_categories/admin_index.html.erb +3 -1
- data/app/views/caboose/block_type_categories/admin_new.html.erb +32 -0
- data/app/views/caboose/pages/_new_block_header.html.erb +23 -8
- data/lib/caboose/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f240b8f7e43d86233a5fbe560e9ee1050f991d30982dbad188412742619969d
|
4
|
+
data.tar.gz: 676146fb8424d3236d64a0373002ea0bf0bba9a84a6d407cfeac607a67b283cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: faf13344ea43cb3262b6b915048c8b8a196e52b33a2bafc9ce62dbbe46f4451e1fa0f628d43d0e01654a19828088d1faff8166eeb5175cda9c60ca0a9475543c
|
7
|
+
data.tar.gz: '09efeee1d9f86edb50d910fab362d518a82dd8a124500385f14d520543469dbf232b4e48a70a32e8f2f1eeb1eaf762a4813dc0c34dc61b132d513a288944a167'
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -144,7 +144,7 @@ BlockContentController.prototype = {
|
|
144
144
|
|
145
145
|
render_block: function(block_id) {
|
146
146
|
var that = this;
|
147
|
-
|
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
|
-
|
137
|
-
|
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) {
|
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
|
-
|
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
|
/*****************************************************************************
|
@@ -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:
|
291
|
+
top: 0 !important;
|
270
292
|
left: auto !important;
|
271
|
-
right:
|
272
|
-
width:
|
293
|
+
right: -2px;
|
294
|
+
width: 128px !important;
|
295
|
+
& > div {
|
296
|
+
width: 128px !important;
|
297
|
+
}
|
273
298
|
a {
|
274
|
-
height:
|
299
|
+
height: 22px;
|
275
300
|
background: #ecebe8;
|
276
301
|
border: 1px solid #c5c5c5;
|
277
|
-
padding:
|
302
|
+
padding: 0;
|
278
303
|
margin: 0 0 0 3px;
|
279
|
-
width:
|
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:
|
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
|
}
|
@@ -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: '
|
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
|
]
|
@@ -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
|
-
|
2
|
+
cats = Caboose::BlockTypeCategory.where(:show_in_sidebar => true).order(:sort_order).all
|
3
3
|
grid = Caboose::BlockType.where(:name => 'flex_grid').first
|
4
|
-
|
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
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
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>
|
data/lib/caboose/version.rb
CHANGED
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.
|
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
|
+
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
|