caboose-cms 0.8.58 → 0.8.59

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 440bc611b18b2f1eb2f0a621e820b72e6ececc79
4
- data.tar.gz: e09a55fef27861960533f9c9d65b61c84d7ee055
3
+ metadata.gz: 8854c5eb4ae1dee3f1374f0fb4d2a62068aa9760
4
+ data.tar.gz: b2d414cfa6f72c0fd78cafcea2de5cd26345031e
5
5
  SHA512:
6
- metadata.gz: f4b4168e893ce2587c56b7dfb4602d4115e769fbc6e5fb1d88fe238e3fb83456af91825214d6f2194317c80cf8fde4d564b088b6ce5f2e28c7c715e854b2ecdc
7
- data.tar.gz: 3525e34ebdc132c1298bb0264d07f94304a1250535da8ee0c3c50d6f30639532eb870afceea4c98f1cb5144091c1f1cbabdd614630eb1b68005228bd69072753
6
+ metadata.gz: 31d8ad0c0727e6e7fac55698f42936be2edc61195ffc7cff9697578a754a283b32029db0cf10d7ad47ce5b2b817ea84230876306dc0a605d8fd6d25012e38917
7
+ data.tar.gz: 4b643e9870a550a767c6878e396204cb09e1414b4b25c821364c820cabf2573b9d0bdb6fbb29eb033548a13b54c356373087ba589b114124e70950b64031ad80
@@ -6,80 +6,68 @@ PostContentController.prototype = {
6
6
  post_id: false,
7
7
  new_block_type_id: false,
8
8
  selected_block_ids: [],
9
+ blocks: false,
10
+ assets_path: false,
11
+ included_assets: false,
9
12
 
10
- init: function(post_id)
13
+ init: function(params)
11
14
  {
12
- this.post_id = post_id;
13
15
  var that = this;
14
- that.set_clickable();
15
- that.sortable_blocks();
16
- // that.draggable_blocks();
17
- //});
16
+ for (var i in params)
17
+ that[i] = params[i];
18
+ that.refresh_blocks(function() {
19
+ that.set_clickable();
20
+ });
18
21
  },
19
22
 
20
- sortable_blocks: function()
21
- {
22
- //var that = this;
23
- //$('.sortable').sortable({
24
- // //hoverClass: "ui-state-active",
25
- // placeholder: 'sortable-placeholder',
26
- // forcePlaceholderSize: true,
27
- // handle: '.sort_handle',
28
- // receive: function(e, ui) {
29
- // that.new_block_type_id = ui.item.attr('id').replace('new_block_', '');
30
- // },
31
- // update: function(e, ui) {
32
- // if (that.new_block_type_id)
33
- // {
34
- // $.ajax({
35
- // url: '/admin/posts/' + that.post_id + '/blocks',
36
- // type: 'post',
37
- // data: { block_type_id: that.new_block_type_id, index: ui.item.index() },
38
- // success: function(resp) { that.render_blocks(function() { that.edit_block(resp.block.id); }); }
39
- // });
40
- // that.new_block_type_id = false;
41
- // }
42
- // else
43
- // {
44
- // var ids = [];
45
- // $.each($(e.target).children(), function(i, el) {
46
- // var id = $(el).attr('id');
47
- // if (id && id.substr(0, 6) == 'block_') ids.push(id.substr(6));
48
- // });
49
- //
50
- // $.ajax({
51
- // url: '/admin/posts/' + that.post_id + '/block-order',
52
- // type: 'put',
53
- // data: {
54
- // block_ids: ids,
55
- // },
56
- // success: function(resp) {}
57
- // });
58
- // }
59
- // }
60
- //});
61
- },
62
-
63
- draggable_blocks: function()
23
+ refresh_blocks: function(callback)
64
24
  {
65
- $('#new_blocks li').draggable({
66
- dropOnEmpty: true,
67
- connectToSortable: "#blocks",
68
- helper: "clone",
69
- revert: "invalid"
25
+ var that = this;
26
+ $.ajax({
27
+ url: '/admin/posts/' + that.page_id + '/blocks/tree',
28
+ type: 'get',
29
+ success: function(resp) {
30
+ that.blocks = resp;
31
+ if (callback) callback();
32
+ }
70
33
  });
71
34
  },
72
35
 
73
36
  edit_block: function(block_id)
74
37
  {
75
- caboose_modal_url('/admin/posts/' + this.post_id + '/blocks/' + block_id + '/edit');
38
+ var that = this;
39
+ var b = that.block_with_id(block_id);
40
+ var modal_controller = '';
41
+ if (b.block_type.use_js_for_modal == true) {
42
+ if (b.name)
43
+ $.each(b.name.split('_'), function(j, word) { modal_controller += word.charAt(0).toUpperCase() + word.toLowerCase().slice(1); });
44
+ else
45
+ $.each(b.block_type.name.split('_'), function(j, word) { modal_controller += word.charAt(0).toUpperCase() + word.toLowerCase().slice(1); });
46
+ }
47
+ else if (b.block_type.field_type == 'image') { modal_controller = 'Media'; }
48
+ else if (b.block_type.field_type == 'richtext') { modal_controller = 'Richtext'; }
49
+ else { modal_controller = 'Block'; }
50
+ that.modal = eval("new " + modal_controller + "ModalController({ " +
51
+ " post_id: " + that.post_id + ", " +
52
+ " block_id: " + block_id + ", " +
53
+ " authenticity_token: '" + that.authenticity_token + "', " +
54
+ " parent_controller: this, " +
55
+ " assets_path: '" + that.assets_path + "'" +
56
+ "})"
57
+ );
76
58
  },
77
59
 
78
60
  new_block: function(block_id)
79
61
  {
80
- console.log('this.post_id = ' + this.post_id);
81
- console.log('block_id = ' + block_id);
82
- caboose_modal_url('/admin/posts/' + this.post_id + '/blocks/' + block_id + '/new');
62
+ var that = this;
63
+ that.modal = new BlockModalController({
64
+ post_id: that.post_id,
65
+ block_id: parent_id,
66
+ authenticity_token: that.authenticity_token,
67
+ parent_controller: this,
68
+ assets_path: that.assets_path,
69
+ new_block_on_init: true
70
+ })
83
71
  },
84
72
 
85
73
  select_block: function(block_id)
@@ -187,35 +175,31 @@ PostContentController.prototype = {
187
175
  Block Rendering
188
176
  *****************************************************************************/
189
177
 
190
- render_blocks: function(before_render) {
178
+ render_blocks: function(before_render)
179
+ {
180
+ var that = this;
191
181
  $('.sortable').sortable('destroy');
192
182
  var that = this;
193
183
  $.ajax({
194
- url: '/admin/posts/' + this.post_id + '/blocks/render-second-level',
195
- success: function(blocks) {
184
+ url: '/admin/pages/' + this.page_id + '/blocks/render-second-level',
185
+ success: function(blocks) {
196
186
  if (before_render) before_render();
197
187
  $(blocks).each(function(i, b) {
198
188
  $('#block_' + b.id).replaceWith(b.html);
199
189
  });
200
- that.set_clickable();
201
- that.sortable_blocks();
190
+ that.refresh_blocks(function() { that.set_clickable(); });
202
191
  that.selected_block_ids = [];
203
192
  }
204
193
  });
205
- },
206
-
194
+ },
195
+
207
196
  set_clickable: function()
208
- {
209
- var that = this;
210
- $.ajax({
211
- url: '/admin/posts/' + this.post_id + '/blocks/tree',
212
- success: function(blocks) {
213
- var count = blocks.length;
214
- $(blocks).each(function(i,b) {
215
- that.set_clickable_helper(b, false, false, (i == count-1));
216
- });
217
- }
218
- });
197
+ {
198
+ var that = this;
199
+ var count = that.blocks.length;
200
+ $(that.blocks).each(function(i,b) {
201
+ that.set_clickable_helper(b, false, false, (i == count-1));
202
+ });
219
203
  },
220
204
 
221
205
  set_clickable_helper: function(b, parent_id, parent_allows_child_blocks, is_last_child)
@@ -230,15 +214,15 @@ PostContentController.prototype = {
230
214
 
231
215
  if (parent_allows_child_blocks && (!b.name || b.name.length == 0))
232
216
  {
233
- $('#block_' + b.id).prepend($('<div/>')
217
+ $('#block_' + b.id).before($('<div/>')
234
218
  .addClass('new_block_link')
235
219
  .append($('<div/>').addClass('line'))
236
220
  .append($('<a/>')
237
221
  .attr('href', '#')
238
222
  .html("New Block")
239
223
  .click(function(e) {
240
- e.preventDefault(); e.stopPropagation();
241
- caboose_modal_url('/admin/posts/' + that.post_id + '/blocks/' + parent_id + '/new?before_id=' + b.id);
224
+ e.preventDefault(); e.stopPropagation();
225
+ that.new_block(parent_id, b.id);
242
226
  })
243
227
  )
244
228
  .mouseover(function(e) { $(this).removeClass('new_block_link').addClass('new_block_link_over'); e.stopPropagation(); })
@@ -246,15 +230,15 @@ PostContentController.prototype = {
246
230
  );
247
231
  if (is_last_child && is_last_child == true)
248
232
  {
249
- $('#block_' + b.id).append($('<div/>')
233
+ $('#block_' + b.id).after($('<div/>')
250
234
  .addClass('new_block_link')
251
235
  .append($('<div/>').addClass('line'))
252
236
  .append($('<a/>')
253
237
  .attr('href', '#')
254
238
  .html("New Block")
255
239
  .click(function(e) {
256
- e.preventDefault(); e.stopPropagation();
257
- caboose_modal_url('/admin/posts/' + that.post_id + '/blocks/' + parent_id + '/new?after_id=' + b.id);
240
+ e.preventDefault(); e.stopPropagation();
241
+ that.new_block(parent_id, null, b.id);
258
242
  })
259
243
  )
260
244
  .mouseover(function(e) { $(this).removeClass('new_block_link').addClass('new_block_link_over'); e.stopPropagation(); })
@@ -262,9 +246,11 @@ PostContentController.prototype = {
262
246
  );
263
247
  }
264
248
  }
265
-
266
- $('#block_' + b.id).attr('onclick','').unbind('click');
249
+
250
+ $('#block_' + b.id + ' *').attr('onclick', '').unbind('click');
251
+ $('#block_' + b.id).attr('onclick','').unbind('click');
267
252
  $('#block_' + b.id).click(function(e) {
253
+ e.preventDefault();
268
254
  e.stopPropagation();
269
255
  that.edit_block(b.id);
270
256
  });
@@ -274,40 +260,41 @@ PostContentController.prototype = {
274
260
  {
275
261
  var count = b.children.length;
276
262
  $.each(b.children, function(i, b2) {
277
- if (b2.field_type == 'block')
263
+ if (b2.block_type.field_type == 'block')
278
264
  show_mouseover = false;
279
- that.set_clickable_helper(b2, b.id, b.allow_child_blocks, i == (count-1));
265
+ that.set_clickable_helper(b2, b.id, b.block_type.allow_child_blocks, i == (count-1));
280
266
  });
281
- }
282
- //if (b.allow_child_blocks)
283
- //{
284
- // $('#block_' + b.id).after($('<div/>')
285
- // .addClass('new_block_link')
286
- // .append($('<div/>').addClass('line'))
287
- // .append($('<a/>')
288
- // .attr('href', '#')
289
- // .html("New Block")
290
- // .click(function(e) {
291
- // e.preventDefault(); e.stopPropagation();
292
- // caboose_modal_url('/admin/posts/' + that.post_id + '/blocks/' + b.id + '/new?after_id=' + b.id);
293
- // })
294
- // )
295
- // .mouseover(function(e) { $(this).removeClass('new_block_link').addClass('new_block_link_over'); e.stopPropagation(); })
296
- // .mouseout(function(e) { $(this).removeClass('new_block_link_over').addClass('new_block_link'); e.stopPropagation(); })
297
- // );
298
- //}
267
+ }
299
268
  if (show_mouseover)
300
269
  {
301
270
  $('#block_' + b.id).mouseover(function(el) { $('#block_' + b.id).addClass( 'block_over'); });
302
271
  $('#block_' + b.id).mouseout(function(el) { $('#block_' + b.id).removeClass('block_over'); });
303
272
  }
304
- }
273
+ },
274
+
275
+ /*****************************************************************************
276
+ Helper methods
277
+ *****************************************************************************/
305
278
 
279
+ block_with_id: function(block_id, b)
280
+ {
281
+ var that = this;
282
+ if (b && b.id == block_id)
283
+ return b;
284
+ var the_block = false;
285
+ if ((!b && that.blocks) || (b && b.children))
286
+ {
287
+ $.each(b ? b.children : that.blocks, function(i, b2) {
288
+ the_block = that.block_with_id(block_id, b2);
289
+ if (the_block)
290
+ return false;
291
+ });
292
+ }
293
+ return the_block;
294
+ }
306
295
  };
307
296
 
308
297
  function toggle_blocks()
309
298
  {
310
299
  $('#new_blocks_container2').slideToggle();
311
300
  }
312
-
313
-
@@ -1,14 +1,16 @@
1
1
 
2
- var PageContentController = function(params) { this.init(params); };
2
+ var BlockContentController = function(params) { this.init(params); };
3
3
 
4
- PageContentController.prototype = {
4
+ BlockContentController.prototype = {
5
5
 
6
+ post_id: false,
6
7
  page_id: false,
7
8
  new_block_type_id: false,
8
9
  selected_block_ids: [],
9
10
  blocks: false,
10
11
  assets_path: false,
11
12
  included_assets: false,
13
+ mc: false,
12
14
 
13
15
  init: function(params)
14
16
  {
@@ -16,15 +18,16 @@ PageContentController.prototype = {
16
18
  for (var i in params)
17
19
  that[i] = params[i];
18
20
  that.refresh_blocks(function() {
19
- that.set_clickable();
20
- });
21
+ that.set_clickable();
22
+ });
23
+ that.mc = new ModalController({ parent_controller: this, assets_path: that.assets_path });
21
24
  },
22
25
 
23
26
  refresh_blocks: function(callback)
24
27
  {
25
28
  var that = this;
26
29
  $.ajax({
27
- url: '/admin/pages/' + that.page_id + '/blocks/tree',
30
+ url: that.base_url() + '/tree',
28
31
  type: 'get',
29
32
  success: function(resp) {
30
33
  that.blocks = resp;
@@ -32,55 +35,62 @@ PageContentController.prototype = {
32
35
  }
33
36
  });
34
37
  },
35
-
36
- draggable_blocks: function()
37
- {
38
- $('#new_blocks li').draggable({
39
- dropOnEmpty: true,
40
- connectToSortable: "#blocks",
41
- helper: "clone",
42
- revert: "invalid"
43
- });
44
- },
45
38
 
46
39
  edit_block: function(block_id)
47
- {
48
- console.log('PageContentController.edit_block');
40
+ {
49
41
  var that = this;
50
42
  var b = that.block_with_id(block_id);
43
+ var bt = b.block_type;
44
+ var ft = bt.field_type; // == 'image' || bt.field_type == 'file' ? 'media' : bt.field_type;
45
+
51
46
  var modal_controller = '';
52
- if (b.block_type.use_js_for_modal == true) {
53
- if (b.name)
54
- $.each(b.name.split('_'), function(j, word) { modal_controller += word.charAt(0).toUpperCase() + word.toLowerCase().slice(1); });
55
- else
56
- $.each(b.block_type.name.split('_'), function(j, word) { modal_controller += word.charAt(0).toUpperCase() + word.toLowerCase().slice(1); });
57
- }
58
- else if (b.block_type.field_type == 'image') { modal_controller = 'Media'; }
59
- else if (b.block_type.field_type == 'richtext') { modal_controller = 'Richtext'; }
60
- else { modal_controller = 'Block'; }
61
- that.modal = eval("new " + modal_controller + "ModalController({ " +
62
- " page_id: " + that.page_id + ", " +
47
+ if (bt.use_js_for_modal == true) { modal_controller = b.name ? b.name : bt.name; }
48
+ else if (ft == 'image') { modal_controller = 'media'; }
49
+ else if (ft == 'file') { modal_controller = 'media'; }
50
+ else if (ft == 'richtext') { modal_controller = 'richtext'; }
51
+ else { modal_controller = 'block'; }
52
+
53
+ var new_modal_eval_string = "new " + that.underscores_to_camelcase(modal_controller) + "ModalController({ " +
54
+ " " + (that.page_id && that.page_id != null ? "page_id: " + that.page_id : "post_id: " + that.post_id) + ", " +
63
55
  " block_id: " + block_id + ", " +
64
56
  " authenticity_token: '" + that.authenticity_token + "', " +
65
- " parent_controller: this, " +
57
+ " parent_controller: that, " +
66
58
  " assets_path: '" + that.assets_path + "'" +
67
- "})"
68
- );
59
+ "})";
60
+
61
+ var js_file = 'caboose/block_modal_controllers/' + modal_controller + '_modal_controller.js';
62
+ if (!that.mc.asset_included(js_file))
63
+ {
64
+ // Include the file before instantiating the controller
65
+ $(document).on(modal_controller + '_modal_controller_loaded', function() { that.modal = eval(new_modal_eval_string); });
66
+ that.mc.include_assets(js_file);
67
+ }
68
+ else // We're good, go ahead and instantiate
69
+ {
70
+ that.modal = eval(new_modal_eval_string);
71
+ }
69
72
  },
70
73
 
71
- new_block: function(parent_id, before_block_id, after_block_id)
74
+ underscores_to_camelcase: function(str)
72
75
  {
73
- console.log('PageContentController.new_block');
74
- var that = this;
75
- //caboose_modal_url('/admin/pages/' + this.page_id + '/blocks/' + parent_id + '/new');
76
- that.modal = new BlockModalController({
77
- page_id: that.page_id,
76
+ var str2 = '';
77
+ $.each(str.split('_'), function(j, word) { str2 += word.charAt(0).toUpperCase() + word.toLowerCase().slice(1); });
78
+ return str2;
79
+ },
80
+
81
+ new_block: function(parent_id, before_block_id, after_block_id)
82
+ {
83
+ var that = this;
84
+ var options = {
78
85
  block_id: parent_id,
79
86
  authenticity_token: that.authenticity_token,
80
87
  parent_controller: this,
81
88
  assets_path: that.assets_path,
82
89
  new_block_on_init: true
83
- })
90
+ }
91
+ if (that.page_id && that.page_id != null) options['page_id'] = that.page_id;
92
+ else options['post_id'] = that.post_id;
93
+ that.modal = new BlockModalController(options)
84
94
  },
85
95
 
86
96
  select_block: function(block_id)
@@ -124,7 +134,7 @@ PageContentController.prototype = {
124
134
  for (var i in this.selected_block_ids)
125
135
  {
126
136
  $.ajax({
127
- url: '/admin/pages/' + this.page_id + '/blocks/' + this.selected_block_ids[i],
137
+ url: that.base_url() + '/' + this.selected_block_ids[i],
128
138
  type: 'delete',
129
139
  async: false,
130
140
  success: function(resp) {}
@@ -138,7 +148,7 @@ PageContentController.prototype = {
138
148
  var that = this;
139
149
  this.loadify($('#block_' + block_id + '_move_up_handle span'));
140
150
  $.ajax({
141
- url: '/admin/pages/' + this.page_id + '/blocks/' + block_id + '/move-up',
151
+ url: that.base_url() + '/' + block_id + '/move-up',
142
152
  type: 'put',
143
153
  success: function(resp) {
144
154
  if (resp.success) that.render_blocks(function() { that.stop_loadify(); });
@@ -151,7 +161,7 @@ PageContentController.prototype = {
151
161
  var that = this;
152
162
  this.loadify($('#block_' + block_id + '_move_down_handle span'));
153
163
  $.ajax({
154
- url: '/admin/pages/' + this.page_id + '/blocks/' + block_id + '/move-down',
164
+ url: that.base_url() + '/' + block_id + '/move-down',
155
165
  type: 'put',
156
166
  success: function(resp) {
157
167
  if (resp.success) that.render_blocks(function() { that.stop_loadify(); });
@@ -194,7 +204,7 @@ PageContentController.prototype = {
194
204
  $('.sortable').sortable('destroy');
195
205
  var that = this;
196
206
  $.ajax({
197
- url: '/admin/pages/' + this.page_id + '/blocks/render-second-level',
207
+ url: that.base_url() + '/render-second-level',
198
208
  success: function(blocks) {
199
209
  if (before_render) before_render();
200
210
  $(blocks).each(function(i, b) {
@@ -207,7 +217,7 @@ PageContentController.prototype = {
207
217
  },
208
218
 
209
219
  set_clickable: function()
210
- {
220
+ {
211
221
  var that = this;
212
222
  var count = that.blocks.length;
213
223
  $(that.blocks).each(function(i,b) {
@@ -216,9 +226,8 @@ PageContentController.prototype = {
216
226
  },
217
227
 
218
228
  set_clickable_helper: function(b, parent_id, parent_allows_child_blocks, is_last_child)
219
- {
220
- var that = this;
221
-
229
+ {
230
+ var that = this;
222
231
  $('#block_' + b.id)
223
232
  .prepend($('<a/>').attr('id', 'block_' + b.id + '_select_handle' ).addClass('select_handle' ).append($('<span/>').addClass('ui-icon ui-icon-check' )).click(function(e) { e.preventDefault(); e.stopPropagation(); that.select_block(b.id); }))
224
233
  .prepend($('<a/>').attr('id', 'block_' + b.id + '_move_up_handle' ).addClass('move_up_handle' ).append($('<span/>').addClass('ui-icon ui-icon-arrow-1-n' )).click(function(e) { e.preventDefault(); e.stopPropagation(); that.move_block_up(b.id); }))
@@ -234,8 +243,7 @@ PageContentController.prototype = {
234
243
  .attr('href', '#')
235
244
  .html("New Block")
236
245
  .click(function(e) {
237
- e.preventDefault(); e.stopPropagation();
238
- console.log('Adding new block...');
246
+ e.preventDefault(); e.stopPropagation();
239
247
  that.new_block(parent_id, b.id);
240
248
  })
241
249
  )
@@ -251,8 +259,7 @@ PageContentController.prototype = {
251
259
  .attr('href', '#')
252
260
  .html("New Block")
253
261
  .click(function(e) {
254
- e.preventDefault(); e.stopPropagation();
255
- console.log('Adding new block...');
262
+ e.preventDefault(); e.stopPropagation();
256
263
  that.new_block(parent_id, null, b.id);
257
264
  })
258
265
  )
@@ -264,9 +271,9 @@ PageContentController.prototype = {
264
271
 
265
272
  $('#block_' + b.id + ' *').attr('onclick', '').unbind('click');
266
273
  $('#block_' + b.id).attr('onclick','').unbind('click');
267
- $('#block_' + b.id).click(function(e) {
274
+ $('#block_' + b.id).click(function(e) {
268
275
  e.preventDefault();
269
- e.stopPropagation();
276
+ e.stopPropagation();
270
277
  that.edit_block(b.id);
271
278
  });
272
279
 
@@ -279,24 +286,7 @@ PageContentController.prototype = {
279
286
  show_mouseover = false;
280
287
  that.set_clickable_helper(b2, b.id, b.block_type.allow_child_blocks, i == (count-1));
281
288
  });
282
- }
283
- //if (b.allow_child_blocks)
284
- //{
285
- // $('#block_' + b.id).after($('<div/>')
286
- // .addClass('new_block_link')
287
- // .append($('<div/>').addClass('line'))
288
- // .append($('<a/>')
289
- // .attr('href', '#')
290
- // .html("New Block")
291
- // .click(function(e) {
292
- // e.preventDefault(); e.stopPropagation();
293
- // caboose_modal_url('/admin/pages/' + that.page_id + '/blocks/' + b.id + '/new?after_id=' + b.id);
294
- // })
295
- // )
296
- // .mouseover(function(e) { $(this).removeClass('new_block_link').addClass('new_block_link_over'); e.stopPropagation(); })
297
- // .mouseout(function(e) { $(this).removeClass('new_block_link_over').addClass('new_block_link'); e.stopPropagation(); })
298
- // );
299
- //}
289
+ }
300
290
  if (show_mouseover)
301
291
  {
302
292
  $('#block_' + b.id).mouseover(function(el) { $('#block_' + b.id).addClass( 'block_over'); });
@@ -323,12 +313,16 @@ PageContentController.prototype = {
323
313
  });
324
314
  }
325
315
  return the_block;
326
- }
316
+ },
317
+
318
+ base_url: function()
319
+ {
320
+ var that = this;
321
+ return '/admin/' + (that.page_id && that.page_id != null ? 'pages/' + that.page_id : 'posts/' + that.post_id) + '/blocks';
322
+ }
327
323
  };
328
324
 
329
325
  function toggle_blocks()
330
326
  {
331
327
  $('#new_blocks_container2').slideToggle();
332
328
  }
333
-
334
-
@@ -2,6 +2,7 @@
2
2
  var BlockModalController = ModalController.extend({
3
3
 
4
4
  page_id: false,
5
+ post_id: false,
5
6
  block_id: false,
6
7
  block: false,
7
8
  block_types: false,
@@ -33,12 +34,12 @@ var BlockModalController = ModalController.extend({
33
34
 
34
35
  refresh_block: function(callback)
35
36
  {
36
- var that = this
37
+ var that = this;
37
38
  $.ajax({
38
- url: '/admin/pages/' + that.page_id + '/blocks/' + that.block_id + '/tree',
39
+ url: that.block_url() + '/tree',
39
40
  type: 'get',
40
41
  success: function(arr) {
41
- that.block = arr[0];
42
+ that.block = arr[0];
42
43
  if (callback) callback();
43
44
  }
44
45
  });
@@ -180,10 +181,10 @@ var BlockModalController = ModalController.extend({
180
181
  update_url: that.block_url(b),
181
182
  authenticity_token: that.authenticity_token,
182
183
  attributes: [
183
- { name: 'block_type_id' , nice_name: 'Block type' , type: 'select' , value: b.block_type.id , text: b.block_type.name , width: 400, fixed_placeholder: true, options_url: '/admin/block-types/options' , after_update: function() { that.parent_controller.render_blocks(); that.block.block_type.id = this.value; }, after_cancel: function() { that.parent_controller.render_blocks(); }, on_load: function() { that.modal.autosize(); }},
184
- { name: 'parent_id' , nice_name: 'Parent ID' , type: 'select' , value: b.parent_id , text: b.parent ? b.parent.title : '' , width: 400, fixed_placeholder: true, options_url: '/admin/pages/' + that.page_id + '/block-options' , after_update: function() { that.parent_controller.render_blocks(); that.block.parent_id = this.value; }, after_cancel: function() { that.parent_controller.render_blocks(); }, on_load: function() { that.modal.autosize(); }},
185
- { name: 'constrain' , nice_name: 'Constrain' , type: 'checkbox' , value: b.constrain ? 1 : 0 , width: 400, fixed_placeholder: true, after_update: function() { that.parent_controller.render_blocks(); that.block.constrain = this.value; }, after_cancel: function() { that.parent_controller.render_blocks(); }, on_load: function() { that.modal.autosize(); }},
186
- { name: 'full_width' , nice_name: 'Full Width' , type: 'checkbox' , value: b.full_width ? 1 : 0 , width: 400, fixed_placeholder: true, after_update: function() { that.parent_controller.render_blocks(); that.block.full_width = this.value; }, after_cancel: function() { that.parent_controller.render_blocks(); }, on_load: function() { that.modal.autosize(); }}
184
+ { name: 'block_type_id' , nice_name: 'Block type' , type: 'select' , value: b.block_type.id , text: b.block_type.name , width: 400, fixed_placeholder: true, after_update: function() { that.parent_controller.render_blocks(); that.block.block_type.id = this.value; }, after_cancel: function() { that.parent_controller.render_blocks(); }, on_load: function() { that.modal.autosize(); }, options_url: '/admin/block-types/options' },
185
+ { name: 'parent_id' , nice_name: 'Parent ID' , type: 'select' , value: b.parent_id , text: b.parent ? b.parent.title : '' , width: 400, fixed_placeholder: true, after_update: function() { that.parent_controller.render_blocks(); that.block.parent_id = this.value; }, after_cancel: function() { that.parent_controller.render_blocks(); }, on_load: function() { that.modal.autosize(); }, options_url: '/admin/' + (that.page_id ? 'pages/' + that.page_id : 'posts/' + that.post_id) + '/block-options' },
186
+ { name: 'constrain' , nice_name: 'Constrain' , type: 'checkbox' , value: b.constrain ? 1 : 0 , width: 400, fixed_placeholder: true, after_update: function() { that.parent_controller.render_blocks(); that.block.constrain = this.value; }, after_cancel: function() { that.parent_controller.render_blocks(); }, on_load: function() { that.modal.autosize(); }},
187
+ { name: 'full_width' , nice_name: 'Full Width' , type: 'checkbox' , value: b.full_width ? 1 : 0 , width: 400, fixed_placeholder: true, after_update: function() { that.parent_controller.render_blocks(); that.block.full_width = this.value; }, after_cancel: function() { that.parent_controller.render_blocks(); }, on_load: function() { that.modal.autosize(); }}
187
188
  ]
188
189
  });
189
190
  that.autosize();
@@ -209,14 +210,13 @@ var BlockModalController = ModalController.extend({
209
210
  {
210
211
  if (!b.rendered_value)
211
212
  {
212
- $.ajax({
213
- block_id: b.id, // Used in the success function
213
+ $.ajax({
214
214
  url: that.block_url(b) + '/render',
215
215
  type: 'get',
216
216
  success: function(html) {
217
- $('#the_modal #block_' + this.block_id).replaceWith(html);
217
+ $('#the_modal #block_' + b.id).replaceWith(html);
218
218
 
219
- var b2 = that.block_with_id(this.block_id);
219
+ var b2 = that.block_with_id(b.id);
220
220
  b2.rendered_value = html;
221
221
  that.set_clickable(b2);
222
222
  that.autosize();
@@ -282,8 +282,8 @@ var BlockModalController = ModalController.extend({
282
282
 
283
283
  set_clickable: function(b)
284
284
  {
285
- var that = this;
286
-
285
+ var that = this;
286
+
287
287
  if (!b)
288
288
  {
289
289
  $.each(that.block.children, function(i,b) {
@@ -292,19 +292,10 @@ var BlockModalController = ModalController.extend({
292
292
  }
293
293
 
294
294
  $('#the_modal #block_' + b.id).attr('onclick','').unbind('click');
295
- $('#the_modal #block_' + b.id).click(function(e) {
295
+ $('#the_modal #block_' + b.id).click(function(e) {
296
296
  e.stopPropagation();
297
297
  that.parent_controller.edit_block(b.id);
298
- });
299
- //if (b.allow_child_blocks == true)
300
- //{
301
- // $('#new_block_' + b.id).replaceWith($('<input/>')
302
- // .attr('type', 'button')
303
- // .val('New Block')
304
- // .click(function(e) { e.stopPropagation(); that.new_block(b.id);
305
- // })
306
- // );
307
- //}
298
+ });
308
299
  var show_mouseover = true;
309
300
  if (b.children && b.children.length > 0)
310
301
  {
@@ -394,8 +385,9 @@ var BlockModalController = ModalController.extend({
394
385
  type: 'get',
395
386
  success: function(resp) { bt = resp; },
396
387
  async: false
397
- });
398
- that.include_assets('caboose/block_modal_controllers/' + bt.name + '_modal_controller.js');
388
+ });
389
+ if (bt.use_js_for_modal)
390
+ that.include_assets('caboose/block_modal_controllers/' + bt.name + '_modal_controller.js');
399
391
 
400
392
  var h = {
401
393
  authenticity_token: that.authenticity_token,
@@ -404,7 +396,7 @@ var BlockModalController = ModalController.extend({
404
396
  if (that.before_id ) h['before_id'] = that.before_id;
405
397
  if (that.after_id ) h['after_id' ] = that.after_id;
406
398
  $.ajax({
407
- url: '/admin/' + (that.page_id ? 'pages/' + that.page_id : 'posts/' + that.post_id) + '/blocks/' + that.block_id,
399
+ url: that.block_url(),
408
400
  type: 'post',
409
401
  data: h,
410
402
  success: function(resp) {
@@ -505,16 +497,17 @@ var BlockModalController = ModalController.extend({
505
497
 
506
498
  base_url: function(b)
507
499
  {
508
- var that = this;
509
- if (!b) b = that.block;
510
- return '/admin/' + (b.page_id ? 'pages/' + b.page_id : 'posts/' + b.post_id) + '/blocks';
500
+ var that = this;
501
+ if (!b)
502
+ return '/admin/' + (that.page_id && that.page_id != null ? 'pages/' + that.page_id : 'posts/' + that.post_id) + '/blocks';
503
+ return '/admin/' + (b.page_id && b.page_id != null ? 'pages/' + b.page_id : 'posts/' + b.post_id) + '/blocks';
511
504
  },
512
505
 
513
506
  block_url: function(b)
514
507
  {
515
- var that = this;
516
- if (!b) b = that.block;
517
- return this.base_url(b) + '/' + b.id;
508
+ var that = this;
509
+ if (!b) return that.base_url() + '/' + that.block_id;
510
+ return that.base_url(b) + '/' + b.id;
518
511
  },
519
512
 
520
513
  child_block: function(name, b)
@@ -541,3 +534,5 @@ var BlockModalController = ModalController.extend({
541
534
  },
542
535
 
543
536
  });
537
+
538
+ $(document).trigger('block_modal_controller_loaded');
@@ -58,3 +58,5 @@ var ButtonModalController = BlockModalController.extend({
58
58
  }
59
59
 
60
60
  });
61
+
62
+ $(document).trigger('button_modal_controller_loaded');
@@ -171,7 +171,7 @@ var MediaModalController = BlockModalController.extend({
171
171
  .data('media_id', m.id)
172
172
  .click(function(e) { that.print_media_detail($(this).data('media_id')); })
173
173
  .append($('<span/>').addClass('name').html(m.original_name));
174
- if (m.image_urls)
174
+ if (m.image_urls && m.image_urls != undefined)
175
175
  li.append($('<img/>').attr('src', m.image_urls.tiny_url + '?' + d));
176
176
  //if (that.selected_media.indexOf(m.id) > -1)
177
177
  // li.addClass('selected ui-selected');
@@ -202,25 +202,28 @@ var MediaModalController = BlockModalController.extend({
202
202
  var m = that.media_with_id(media_id);
203
203
 
204
204
  var image_urls = $('<div/>').attr('id', 'image_urls').css('margin-bottom', '20px');
205
- for (var size in m.image_urls)
205
+ if (m.image_urls)
206
206
  {
207
- var s = size.replace('_url', '');
208
- s = s[0].toUpperCase() + s.slice(1);
209
- var url = m.image_urls[size];
210
- image_urls.append($('<div/>')
211
- .append($('<span/>').addClass('size').append(s))
212
- .append($('<input/>').attr('type', 'text').attr('id', 'size_' + s).addClass('url').val(url))
213
- .append($('<button/>').addClass('clippy').data('clipboard-target', '#size_' + s).append('Copy'))
214
- );
215
- }
207
+ image_urls.append($('<h2/>').append('Image URLs'));
208
+ for (var size in m.image_urls)
209
+ {
210
+ var s = size.replace('_url', '');
211
+ s = s[0].toUpperCase() + s.slice(1);
212
+ var url = m.image_urls[size];
213
+ image_urls.append($('<div/>')
214
+ .append($('<span/>').addClass('size').append(s))
215
+ .append($('<input/>').attr('type', 'text').attr('id', 'size_' + s).addClass('url').val(url))
216
+ .append($('<button/>').addClass('clippy').data('clipboard-target', '#size_' + s).append('Copy'))
217
+ );
218
+ }
219
+ }
216
220
 
217
221
  $('#top_controls').empty();
218
222
  $('#media').empty()
219
- .append($('<img/>').attr('id', 'detail_image').attr('src', m.image_urls.thumb_url))
223
+ .append($('<img/>').attr('id', 'detail_image').attr('src', m.image_urls ? m.image_urls.thumb_url : '//placehold.it/250x250'))
220
224
  .append($('<p/>').append($('<div/>').attr('id', 'media_' + media_id + '_media_category_id' )))
221
225
  .append($('<p/>').append($('<div/>').attr('id', 'media_' + media_id + '_name' )))
222
- .append($('<p/>').append($('<div/>').attr('id', 'media_' + media_id + '_description' )))
223
- .append($('<h2/>').append('Image URLs'))
226
+ .append($('<p/>').append($('<div/>').attr('id', 'media_' + media_id + '_description' )))
224
227
  .append(image_urls);
225
228
  $('#modal_controls').empty()
226
229
  .append($('<p/>').css('clear', 'both')
@@ -248,9 +251,9 @@ var MediaModalController = BlockModalController.extend({
248
251
  $('#media_' + media_id + '_name' + '_container').css('width', '400px');
249
252
  $('#media_' + media_id + '_description' + '_container').css('width', '400px');
250
253
 
251
- $('#image_urls span.size' ).css('width', '70px').css('display', 'inline-block');
252
- $('#image_urls input.url' ).css('width', '270px').css('border', '#ccc 1px solid');
253
- $('#image_urls button').css('width', '60px');
254
+ $('#image_urls span.size' ).css('width', '70px').css('display', 'inline-block');
255
+ $('#image_urls input.url' ).css('width', '270px').css('border', '#ccc 1px solid');
256
+ $('#image_urls button' ).css('width', '60px');
254
257
 
255
258
  //c = new Clipboard('.clippy');
256
259
  //c.on('success', function(e) {
@@ -429,3 +432,5 @@ var MediaModalController = BlockModalController.extend({
429
432
  },
430
433
 
431
434
  });
435
+
436
+ $(document).trigger('media_modal_controller_loaded');
@@ -90,3 +90,5 @@ var RichtextModalController = BlockModalController.extend({
90
90
  }
91
91
  }
92
92
  });
93
+
94
+ $(document).trigger('richtext_modal_controller_loaded');
@@ -6,6 +6,13 @@ var ModalController = Class.extend({
6
6
  modal_element: false,
7
7
  parent_controller: false,
8
8
 
9
+ init: function(params)
10
+ {
11
+ var that = this;
12
+ for (var i in params)
13
+ that[i] = params[i];
14
+ },
15
+
9
16
  modal: function(el, width, height, callback)
10
17
  {
11
18
  var that = this;
@@ -68,7 +75,7 @@ var ModalController = Class.extend({
68
75
 
69
76
  // Called at the beginning of init to include modal assets,
70
77
  // and can be called at anytime with more assets
71
- include_assets: function(arr)
78
+ include_assets: function(arr, after)
72
79
  {
73
80
  var that = this;
74
81
  if (!arr) arr = that.assets_to_include();
@@ -77,15 +84,36 @@ var ModalController = Class.extend({
77
84
  if (!that.parent_controller.included_assets || that.parent_controller.included_assets == undefined)
78
85
  that.parent_controller.included_assets = [];
79
86
  if (typeof arr == 'string') arr = [arr];
80
- $.each(arr, function(i, url) {
81
- if (that.parent_controller.included_assets.indexOf(url) > -1) return;
87
+ $.each(arr, function(i, url) {
88
+ if (that.asset_included(url)) return;
82
89
  var full_url = url.match(/^http:.*?/) || url.match(/^https:.*?$/) || url.match(/^\/\/.*?$/) ? url : that.assets_path + url;
83
90
  if (url.match(/\.js/))
84
- {
91
+ {
85
92
  var el = document.createElement('script');
86
93
  el.setAttribute('type', 'text/javascript');
87
94
  el.setAttribute('src', full_url);
88
95
  document.getElementsByTagName('head')[0].appendChild(el)
96
+
97
+ //$.getScript(full_url, function() {
98
+ // if (after) after();
99
+ //});
100
+ //
101
+ //var trigger = 'script_' + Math.floor((Math.random() * 1000) + 1) + '_loaded'
102
+ //$(document).on(trigger, function() {
103
+ // if (after) after();
104
+ // $(document).unbind(trigger);
105
+ //});
106
+ //$.ajax({
107
+ // trigger: trigger,
108
+ // url: full_url,
109
+ // type: 'get',
110
+ // success: function(js) {
111
+ // var el = document.createElement('script');
112
+ // el.setAttribute('type', 'text/javascript');
113
+ // el.innerHTML = js + "\n$(document).trigger('" + this.trigger + "');\n",
114
+ // document.getElementsByTagName('head')[0].appendChild(el);
115
+ // }
116
+ //});
89
117
  }
90
118
  else if (url.match(/\.css/))
91
119
  {
@@ -99,6 +127,14 @@ var ModalController = Class.extend({
99
127
  });
100
128
  },
101
129
 
130
+ asset_included: function(url)
131
+ {
132
+ var that = this;
133
+ if (!that.parent_controller.included_assets || that.parent_controller.included_assets == undefined)
134
+ that.parent_controller.included_assets = [];
135
+ return that.parent_controller.included_assets.indexOf(url) > -1;
136
+ },
137
+
102
138
  include_inline_css: function(str)
103
139
  {
104
140
  var that = this;
@@ -1,7 +1,11 @@
1
+ <%
2
+ # app/views/caboose/pages/admin_edit_content.html.erb
3
+ %>
1
4
 
2
5
  <% content_for :caboose_css do %>
3
6
  <%= stylesheet_link_tag 'jquery-ui' %>
4
7
  <%= stylesheet_link_tag 'caboose/admin_block_edit_image' %>
8
+
5
9
  <%= stylesheet_link_tag "caboose/modal_inline" %>
6
10
  <style type='text/css'>
7
11
 
@@ -59,22 +63,18 @@
59
63
  <%= javascript_include_tag 'caboose/model/all' %>
60
64
  <%= javascript_include_tag 'caboose/jquery-ui.drag-multiple.min.js' %>
61
65
  <%= javascript_include_tag "caboose/clipboard" %>
62
- <%= javascript_include_tag 'caboose/admin_page_edit_content' %>
66
+ <%= javascript_include_tag 'caboose/block_content_controller' %>
63
67
  <%= javascript_include_tag "caboose/class" %>
64
68
  <%= javascript_include_tag "caboose/modal_controller" %>
65
69
  <%= javascript_include_tag "caboose/block_modal_controllers/block_modal_controller" %>
66
- <%= javascript_include_tag "caboose/block_modal_controllers/media_modal_controller" %>
67
- <%= javascript_include_tag "caboose/block_modal_controllers/richtext_modal_controller" %>
68
- <% @page.block.modal_js_block_names.each do |s| %>
69
- <%= javascript_include_tag "caboose/block_modal_controllers/#{s}_modal_controller" %>
70
- <% end %>
71
70
  <script type='text/javascript'>
72
71
 
73
72
  var controller = false;
74
73
  $(document).ready(function() {
75
- controller = new PageContentController({
74
+ controller = new BlockContentController({
76
75
  page_id: <%= @page.id %>,
77
- assets_path: <%= raw Caboose.json(asset_path('loading.gif').gsub('loading.gif', '')) %>
76
+ assets_path: <%= raw Caboose.json(asset_path('loading.gif').gsub('loading.gif', '')) %>,
77
+ included_assets: ['caboose/block_modal_controllers/block_modal_controller.js']
78
78
  });
79
79
 
80
80
  $('body').append($('<div/>')
@@ -3,7 +3,9 @@
3
3
  <% content_for :caboose_js do %>
4
4
  <%= javascript_include_tag "caboose/admin" %>
5
5
  <%= javascript_include_tag "caboose/model/all" %>
6
- <%= javascript_include_tag 'caboose/admin_page_edit_content' %>
6
+ <%
7
+ #= javascript_include_tag 'caboose/admin_page_edit_content'
8
+ %>
7
9
  <script type='text/javascript'>
8
10
 
9
11
  var controller = false;
@@ -1,23 +1,88 @@
1
+ <%
2
+ # app/views/caboose/posts/admin_edit_content.html.erb
3
+ %>
1
4
 
2
5
  <% content_for :caboose_css do %>
3
6
  <%= stylesheet_link_tag 'jquery-ui' %>
7
+ <%= stylesheet_link_tag 'caboose/admin_block_edit_image' %>
4
8
  <%= stylesheet_link_tag 'caboose/admin_post_edit_content' %>
9
+ <%= stylesheet_link_tag "caboose/modal_inline" %>
10
+ <style type='text/css'>
11
+
12
+ #tiny_header {
13
+ display: block;
14
+ color: #fff;
15
+ background-image: url(/assets/caboose/caboose_logo_small.png);
16
+ background-color: #000;
17
+ background-repeat: no-repeat;
18
+ background-position: right 0;
19
+ padding: 0 50px 0 10px;
20
+ position: absolute;
21
+ top: 0px;
22
+ right: 0px;
23
+ z-index: 100000;
24
+ border-left: #fff 1px solid;
25
+ border-bottom: #fff 1px solid;
26
+ }
27
+ #tiny_header a {
28
+ display: inline-block;
29
+ color: #fff;
30
+ padding: 16px 10px;
31
+ }
32
+ .block_over { background: #e3e3e3; }
33
+ .select_handle { display: none; }
34
+ .move_up_handle { display: none; }
35
+ .move_down_handle { display: none; }
36
+ .delete_handle { display: none; }
37
+ .block_over > .select_handle { display: block; position: relative; }
38
+ .block_over > .move_up_handle { display: block; position: relative; }
39
+ .block_over > .move_down_handle { display: block; position: relative; }
40
+ .block_over > .delete_handle { display: block; position: relative; }
41
+ .block_over > .select_handle span { position: absolute; top: 0; right: 54px; width: 18px; height: 18px; background-color: #fff; border: #ccc 1px solid; }
42
+ .block_over > .move_up_handle span { position: absolute; top: 0; right: 36px; width: 18px; height: 18px; background-color: #fff; border: #ccc 1px solid; }
43
+ .block_over > .move_down_handle span { position: absolute; top: 0; right: 18px; width: 18px; height: 18px; background-color: #fff; border: #ccc 1px solid; }
44
+ .block_over > .delete_handle span { position: absolute; top: 0; right: 0px; width: 18px; height: 18px; background-color: #fff; border: #ccc 1px solid; }
45
+
46
+ .selected { background: #fff799; }
47
+
48
+ .new_block_link { position: relative; width: 100%; }
49
+ .new_block_link .line { position: absolute; top: -11px; width: 100%; height: 2px; background: transparent; }
50
+ .new_block_link a { position: absolute; top: -20px; left: 45%; background: transparent; color: transparent !important; display: block; padding: 4px 8px; }
51
+
52
+ .new_block_link_over { position: relative; width: 100%; }
53
+ .new_block_link_over .line { position: absolute; top: -11px; width: 100%; height: 2px; background: #ccc; }
54
+ .new_block_link_over a { position: absolute; top: -22px; left: 45%; color: #fff; background: #666; display: block; padding: 2px 4px; text-decoration: none; font-size: 12px; }
55
+
56
+ .caboose_note { padding: 10px 20px; background: #990000; color: #fff; font-size: 16px; }
57
+
58
+ </style>
5
59
  <% end %>
6
60
 
7
61
  <% content_for :caboose_js do %>
8
62
  <%= javascript_include_tag 'jquery-ui' %>
9
- <%= javascript_include_tag 'caboose/admin_post_edit_content' %>
63
+ <%= javascript_include_tag 'caboose/model/all' %>
64
+ <%= javascript_include_tag 'caboose/jquery-ui.drag-multiple.min.js' %>
65
+ <%= javascript_include_tag "caboose/clipboard" %>
66
+ <%= javascript_include_tag 'caboose/block_content_controller' %>
67
+ <%= javascript_include_tag "caboose/class" %>
68
+ <%= javascript_include_tag "caboose/modal_controller" %>
69
+ <%= javascript_include_tag "caboose/block_modal_controllers/block_modal_controller" %>
10
70
  <script type='text/javascript'>
11
71
 
12
72
  var controller = false;
13
- $(document).ready(function() {
14
- controller = new PostContentController(<%= @post.id %>);
73
+ $(document).ready(function() {
74
+ controller = new BlockContentController({
75
+ post_id: <%= @post.id %>,
76
+ assets_path: <%= raw Caboose.json(asset_path('loading.gif').gsub('loading.gif', '')) %>,
77
+ included_assets: ['caboose/block_modal_controllers/block_modal_controller.js']
78
+ });
15
79
 
16
80
  $('body').append($('<div/>')
17
81
  .attr('id', 'tiny_header')
18
82
  .append($('<a/>').attr('href', '/admin/posts').html("< Back"))
19
- .append($('<a/>').attr('href', '/admin/posts/<%= @post.id %>/layout').html("Post Layout"))
20
- .append($('<a/>').attr('href', '/admin/posts/<%= @post.id %>').html("Post Settings"))
83
+ .append($('<a/>').attr('href', '#').html('Post Options').click(function(e) { e.preventDefault(); caboose_modal_url('/admin/posts/<%= @post.id %>/custom-fields'); }))
84
+ .append($('<a/>').attr('href', '/admin/posts/<%= @post.id %>/layout').html("Layout"))
85
+ .append($('<a/>').attr('href', '/admin/posts/<%= @post.id %>').html("Settings"))
21
86
  );
22
87
  });
23
88
 
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.8.58'
2
+ VERSION = '0.8.59'
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.8.58
4
+ version: 0.8.59
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-30 00:00:00.000000000 Z
11
+ date: 2016-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -517,13 +517,13 @@ files:
517
517
  - app/assets/javascripts/caboose/admin_main.js
518
518
  - app/assets/javascripts/caboose/admin_media_index.js
519
519
  - app/assets/javascripts/caboose/admin_media_index_new.js
520
- - app/assets/javascripts/caboose/admin_page_edit_content.js
521
520
  - app/assets/javascripts/caboose/admin_page_new_blocks.js
522
521
  - app/assets/javascripts/caboose/admin_post_edit_content.js
523
522
  - app/assets/javascripts/caboose/admin_products.js
524
523
  - app/assets/javascripts/caboose/application.js
525
524
  - app/assets/javascripts/caboose/assets_controller.js
526
525
  - app/assets/javascripts/caboose/authorize.net.js
526
+ - app/assets/javascripts/caboose/block_content_controller.js
527
527
  - app/assets/javascripts/caboose/block_media_controller.js
528
528
  - app/assets/javascripts/caboose/block_modal_controllers/block_modal_controller.js
529
529
  - app/assets/javascripts/caboose/block_modal_controllers/button_modal_controller.js