caboose-cms 0.9.141 → 0.9.142
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/caboose/block_content_controller_dragdrop.js +7 -6
- data/app/assets/javascripts/caboose/block_modal_controllers/block_dd_modal_controller.js +3 -4
- data/app/assets/javascripts/caboose/block_modal_controllers/block_modal_controller.js +1 -1
- data/app/assets/javascripts/caboose/modal_controller.js +2 -2
- data/app/assets/stylesheets/caboose/admin_edit_page_content_dragdrop.scss +2 -0
- data/app/assets/stylesheets/caboose/modal_inline.css +1 -1
- data/app/controllers/caboose/blocks_controller.rb +11 -8
- data/app/models/caboose/block.rb +16 -7
- data/app/models/caboose/media_category.rb +15 -11
- data/lib/caboose/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4101ff715f3350bdf7f403582837404239a21b14
|
4
|
+
data.tar.gz: acdfda2009f0ea2c7f645638f1835d43d093f27c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46ee55cdbb2d71c15fe7cc6102aea19b78c19528ccdf4d948bcac9da2350a98182c9faefaedeeac5108ef64acc67667a2424225d01c2aac7f001b0cb7088a879
|
7
|
+
data.tar.gz: 4c945c4379334ab43ac7fc7cfa20dbed51f31da4439c39b2dc46694c56d7c9d33d37eef544b5ee0f7d98e8e763190bd6c8e478fe1b14e93b0e46ee916a8f702c
|
@@ -64,6 +64,7 @@ BlockContentController.prototype = {
|
|
64
64
|
|
65
65
|
editor.on('blur', function(ev) {
|
66
66
|
if ( !is_saved ) {
|
67
|
+
$(b).find("span > span[contenteditable='false']").remove();
|
67
68
|
var html = $(b).html();
|
68
69
|
$.ajax({
|
69
70
|
url: that.base_url() + '/' + target_id + '/value',
|
@@ -79,6 +80,7 @@ BlockContentController.prototype = {
|
|
79
80
|
|
80
81
|
$(b).on('mouseleave', function(ev) {
|
81
82
|
if ( !is_saved ) {
|
83
|
+
$(b).find("span > span[contenteditable='false']").remove();
|
82
84
|
var html = $(b).html();
|
83
85
|
$.ajax({
|
84
86
|
url: that.base_url() + '/' + target_id + '/value',
|
@@ -268,7 +270,7 @@ BlockContentController.prototype = {
|
|
268
270
|
|
269
271
|
delete_block: function(block_id, confirm)
|
270
272
|
{
|
271
|
-
var that = this;
|
273
|
+
var that = this;
|
272
274
|
if (this.selected_block_ids.indexOf(block_id) == -1)
|
273
275
|
this.selected_block_ids.push(block_id);
|
274
276
|
var other_count = this.selected_block_ids.length - 1;
|
@@ -288,11 +290,10 @@ BlockContentController.prototype = {
|
|
288
290
|
return;
|
289
291
|
}
|
290
292
|
else {
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
}
|
293
|
+
$.each( this.selected_block_ids, function(k1,v1) {
|
294
|
+
$('#block_' + v1).remove();
|
295
|
+
that.delete_block_save(v1);
|
296
|
+
});
|
296
297
|
that.selected_block_ids = [];
|
297
298
|
that.add_dropzones();
|
298
299
|
that.is_modified();
|
@@ -112,7 +112,7 @@ var BlockModalController = ModalController.extend({
|
|
112
112
|
}
|
113
113
|
if (that.block.block_type.allow_child_blocks)
|
114
114
|
{
|
115
|
-
div.append($('<p/>').css('clear', 'both').append($('<a/>').attr('href', '#').html(that.add_child_link_text ? that.add_child_link_text : "Add a child block!").click(function(e) {
|
115
|
+
div.append($('<p/>').css('clear', 'both').append($('<a/>').addClass('caboose-btn').attr('href', '#').html(that.add_child_link_text ? that.add_child_link_text : "Add a child block!").click(function(e) {
|
116
116
|
e.preventDefault();
|
117
117
|
that.add_block();
|
118
118
|
})));
|
@@ -205,7 +205,7 @@ var BlockModalController = ModalController.extend({
|
|
205
205
|
|
206
206
|
render_child_blocks: function()
|
207
207
|
{
|
208
|
-
var that = this;
|
208
|
+
var that = this;
|
209
209
|
if (that.block.block_type.field_type != 'block' && that.block.children.length == 0)
|
210
210
|
return;
|
211
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); } });
|
@@ -213,7 +213,7 @@ var BlockModalController = ModalController.extend({
|
|
213
213
|
|
214
214
|
render_child_block: function(b)
|
215
215
|
{
|
216
|
-
var that = this;
|
216
|
+
var that = this;
|
217
217
|
if (that.complex_field_types.indexOf(b.block_type.field_type) > -1)
|
218
218
|
{
|
219
219
|
if (!b.rendered_value)
|
@@ -223,7 +223,6 @@ var BlockModalController = ModalController.extend({
|
|
223
223
|
type: 'get',
|
224
224
|
success: function(html) {
|
225
225
|
$('#the_modal #block_' + b.id).replaceWith(html);
|
226
|
-
|
227
226
|
var b2 = that.block_with_id(b.id);
|
228
227
|
b2.rendered_value = html;
|
229
228
|
that.set_clickable(b2);
|
@@ -112,7 +112,7 @@ var BlockModalController = ModalController.extend({
|
|
112
112
|
}
|
113
113
|
if (that.block.block_type.allow_child_blocks)
|
114
114
|
{
|
115
|
-
div.append($('<p/>').css('clear', 'both').append($('<a/>').attr('href', '#').html(that.add_child_link_text ? that.add_child_link_text : "Add a child block!").click(function(e) {
|
115
|
+
div.append($('<p/>').css('clear', 'both').append($('<a/>').addClass('caboose-btn').attr('href', '#').html(that.add_child_link_text ? that.add_child_link_text : "Add a child block!").click(function(e) {
|
116
116
|
e.preventDefault();
|
117
117
|
that.add_block();
|
118
118
|
})));
|
@@ -30,8 +30,8 @@ var ModalController = Class.extend({
|
|
30
30
|
closeButton: false,
|
31
31
|
opacity: 0.50,
|
32
32
|
onComplete: function() {
|
33
|
-
var arr = ['TopLeft','TopCenter','TopRight','BottomLeft','BottomCenter','BottomRight','MiddleLeft','MiddleRight'];
|
34
|
-
for (var i in arr) $('#cbox' + arr[i]).css('background-color', '#fff !important');
|
33
|
+
// var arr = ['TopLeft','TopCenter','TopRight','BottomLeft','BottomCenter','BottomRight','MiddleLeft','MiddleRight'];
|
34
|
+
// for (var i in arr) $('#cbox' + arr[i]).css('background-color', '#fff !important');
|
35
35
|
$("#cboxClose").hide();
|
36
36
|
if (callback) callback();
|
37
37
|
}
|
@@ -20,6 +20,7 @@
|
|
20
20
|
text-align: center;
|
21
21
|
height: 52px;
|
22
22
|
margin-bottom: 10px;
|
23
|
+
color: #252525;
|
23
24
|
}
|
24
25
|
}
|
25
26
|
#new_blocks {
|
@@ -98,6 +99,7 @@
|
|
98
99
|
font-weight: 300 !important;
|
99
100
|
font-size: 15px !important;
|
100
101
|
padding: 8px 6px 6px 6px;
|
102
|
+
color: #252525;
|
101
103
|
&:focus {
|
102
104
|
outline-width: 0;
|
103
105
|
border-color: #28acc1;
|
@@ -8,7 +8,7 @@
|
|
8
8
|
#the_modal div.icons a:hover span.icon { color: #000 !important; }
|
9
9
|
#the_modal div.icons a:hover span.name { color: #000 !important; }
|
10
10
|
|
11
|
-
#the_modal { box-sizing: border-box; }
|
11
|
+
#the_modal { box-sizing: border-box; color: #252525; }
|
12
12
|
#the_modal p { margin-bottom: 10px; }
|
13
13
|
#the_modal .mb_container input { border: #ccc 1px solid; }
|
14
14
|
#the_modal div.mb_container div.mb_placeholder { top: 9px; }
|
@@ -85,7 +85,7 @@ module Caboose
|
|
85
85
|
blocks = []
|
86
86
|
if params[:id]
|
87
87
|
b = Block.find(params[:id])
|
88
|
-
b.create_children(status: 'added') if Caboose::Block.where(:parent_id => b.id).count == 0
|
88
|
+
b.create_children(status: 'added') # if Caboose::Block.where(:parent_id => b.id).count == 0
|
89
89
|
bt = b.block_type
|
90
90
|
blocks << {
|
91
91
|
'id' => b.id,
|
@@ -138,7 +138,7 @@ module Caboose
|
|
138
138
|
:block_id => b.id,
|
139
139
|
:text => bt.description
|
140
140
|
}
|
141
|
-
b = b.parent
|
141
|
+
b = (b.new_parent_id.blank? ? b.parent : Caboose::Block.find(b.new_parent_id))
|
142
142
|
end
|
143
143
|
return crumbs.reverse
|
144
144
|
end
|
@@ -146,7 +146,8 @@ module Caboose
|
|
146
146
|
def admin_tree_helper(b,level)
|
147
147
|
arr = []
|
148
148
|
if level < 3
|
149
|
-
b.
|
149
|
+
sort_by_id = b.block_type.default_child_block_type_id.nil? ? true : false
|
150
|
+
b.filtered_children(true,sort_by_id).each do |b2|
|
150
151
|
bt = b2.block_type
|
151
152
|
arr << {
|
152
153
|
'id' => b2.id,
|
@@ -483,7 +484,9 @@ module Caboose
|
|
483
484
|
b = RichTextBlockParser.parse(b, v, request.host_with_port)
|
484
485
|
else
|
485
486
|
if b.block_type.field_type == 'checkbox_multiple'
|
486
|
-
|
487
|
+
pv = Block.parse_checkbox_multiple_value(b, v)
|
488
|
+
b.new_value = (pv.blank? ? 'EMPTY' : pv)
|
489
|
+
b.status = 'edited' if b.status == 'published'
|
487
490
|
else
|
488
491
|
b.new_value = (v.blank? ? 'EMPTY' : v)
|
489
492
|
b.status = 'edited' if b.status == 'published'
|
@@ -689,9 +692,9 @@ module Caboose
|
|
689
692
|
return unless user_is_allowed("#{page_or_post}s", 'edit')
|
690
693
|
resp = StdClass.new
|
691
694
|
b = Block.find(params[:id])
|
692
|
-
par = Block.where(
|
695
|
+
par = Block.where("name is null or name like '%column%'").where(:id => (b.new_parent_id.blank? ? b.parent_id : b.new_parent_id)).first
|
693
696
|
resp.parent_id = par ? par.id : nil
|
694
|
-
gp = par ? Block.where(
|
697
|
+
gp = par ? Block.where("name is null or name like '%column%'").where(:id => (par.new_parent_id.blank? ? par.parent_id : par.new_parent_id)).first : nil
|
695
698
|
resp.grandparent_id = gp ? gp.id : nil
|
696
699
|
render :json => resp
|
697
700
|
end
|
@@ -707,7 +710,7 @@ module Caboose
|
|
707
710
|
b.new_sort_order = (b2.new_sort_order.blank? ? b2.sort_order : b2.new_sort_order)
|
708
711
|
i = 1
|
709
712
|
sibs = b2.siblings(b.new_sort_order)
|
710
|
-
|
713
|
+
# Caboose.log("updating #{sibs.count} siblings")
|
711
714
|
sibs.each do |b3|
|
712
715
|
b3.new_sort_order = b.new_sort_order + i
|
713
716
|
b3.status = 'edited' if b3.status == 'published'
|
@@ -719,7 +722,7 @@ module Caboose
|
|
719
722
|
b.new_sort_order = (b2.new_sort_order.blank? ? (b2.sort_order + 1) : (b2.new_sort_order + 1))
|
720
723
|
i = 1
|
721
724
|
sibs = b2.siblings(b.new_sort_order)
|
722
|
-
|
725
|
+
# Caboose.log("updating #{sibs.count} siblings")
|
723
726
|
sibs.each do |b3|
|
724
727
|
b3.new_sort_order = b.new_sort_order + i
|
725
728
|
b3.status = 'edited' if b3.status == 'published'
|
data/app/models/caboose/block.rb
CHANGED
@@ -130,7 +130,7 @@ class Caboose::Block < ActiveRecord::Base
|
|
130
130
|
blocks = []
|
131
131
|
if editing
|
132
132
|
sortby = sort_by_id ? 'block_type_id' : 'new_sort_order,id'
|
133
|
-
blocks = Caboose::Block.where("new_parent_id = ? or (parent_id = ? and new_parent_id is null)", self.id, self.id).order(sortby)
|
133
|
+
blocks = Caboose::Block.where("status != ?","deleted").where("new_parent_id = ? or (parent_id = ? and new_parent_id is null)", self.id, self.id).order(sortby)
|
134
134
|
else
|
135
135
|
blocks = Caboose::Block.where(:parent_id => self.id).order('sort_order,id')
|
136
136
|
end
|
@@ -526,15 +526,24 @@ class Caboose::Block < ActiveRecord::Base
|
|
526
526
|
|
527
527
|
# Parses the value given for a checkbox multiple block
|
528
528
|
def self.parse_checkbox_multiple_value(b, arr)
|
529
|
-
current_value = b.value ? b.value.split('|') : []
|
529
|
+
current_value = b.new_value.blank? ? (b.value ? b.value.split('|') : []) : (b.new_value ? b.new_value.split('|') : [])
|
530
530
|
v = arr[0]
|
531
531
|
checked = arr[1].to_i == 1
|
532
|
-
if
|
533
|
-
|
534
|
-
|
535
|
-
|
532
|
+
if v == 'all'
|
533
|
+
if checked && b.block_type && !b.block_type.options.blank?
|
534
|
+
Caboose.log(b.block_type.options)
|
535
|
+
return b.block_type.options.split("\n").join('|')
|
536
|
+
else
|
537
|
+
return ''
|
538
|
+
end
|
539
|
+
else
|
540
|
+
if checked && !current_value.include?(v)
|
541
|
+
current_value << v
|
542
|
+
elsif !checked && current_value.include?(v)
|
543
|
+
current_value.delete(v)
|
544
|
+
end
|
545
|
+
return current_value.join('|')
|
536
546
|
end
|
537
|
-
return current_value.join('|')
|
538
547
|
end
|
539
548
|
|
540
549
|
# block siblings (in editing mode)
|
@@ -37,17 +37,21 @@ class Caboose::MediaCategory < ActiveRecord::Base
|
|
37
37
|
|
38
38
|
def self.flat_tree_helper(cat, prefix, str)
|
39
39
|
cat.name = "#{str}#{cat.name}"
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
40
|
+
if cat.name == "- Products"
|
41
|
+
return []
|
42
|
+
else
|
43
|
+
arr = [{
|
44
|
+
:id => cat.id,
|
45
|
+
:parent_id => cat.parent_id,
|
46
|
+
:site_id => cat.site_id,
|
47
|
+
:name => cat.name,
|
48
|
+
:media_count => cat.media.count
|
49
|
+
}]
|
50
|
+
cat.children.each do |cat2|
|
51
|
+
arr += self.flat_tree_helper(cat2, prefix, "#{str}#{prefix}")
|
52
|
+
end
|
53
|
+
return arr
|
49
54
|
end
|
50
|
-
return arr
|
51
55
|
end
|
52
56
|
|
53
57
|
def self.tree_hash(site_id)
|
@@ -60,7 +64,7 @@ class Caboose::MediaCategory < ActiveRecord::Base
|
|
60
64
|
:id => cat.id,
|
61
65
|
:name => cat.name,
|
62
66
|
:media_count => cat.media.count,
|
63
|
-
:children => cat.children.collect{ |kid| self.tree_hash_helper(kid) }
|
67
|
+
:children => (cat.name == 'Products' ? [] : cat.children.collect{ |kid| self.tree_hash_helper(kid) })
|
64
68
|
}
|
65
69
|
end
|
66
70
|
|
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.142
|
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-05-
|
11
|
+
date: 2018-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|