caboose-cms 0.9.208 → 0.9.209
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|