Skip to content

Commit 01cdd16

Browse files
author
Angelo Dini
committed
this fixes an issue where the settings are not set correctly
1 parent 112ce23 commit 01cdd16

File tree

2 files changed

+35
-34
lines changed

2 files changed

+35
-34
lines changed

cms/static/cms/js/plugins/cms.placeholders.js

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -40,39 +40,8 @@ $(document).ready(function () {
4040

4141
// initial methods
4242
_setupPlaceholders: function (placeholders) {
43-
var that = this;
44-
var draggables = placeholders.find('.cms_draggable');
45-
46-
// attach events to draggable
47-
draggables.find('> .cms_dragitem-collapsable').bind('click', function () {
48-
var el = $(this);
49-
var id = that.getId($(this).parent());
50-
var settings = CMS.API.Toolbar.getSettings();
51-
settings.states = settings.states || [];
52-
var index = settings.states.indexOf(id);
53-
if(index != -1) settings.states.splice(settings.states.indexOf(id), 1);
54-
55-
if(el.hasClass('cms_dragitem-collapsed')) {
56-
// show element
57-
el.removeClass('cms_dragitem-collapsed').parent().find('> .cms_draggables').show();
58-
} else {
59-
// hide element
60-
el.addClass('cms_dragitem-collapsed').parent().find('> .cms_draggables').hide();
61-
settings.states.push(id);
62-
}
63-
64-
// save settings
65-
CMS.API.Toolbar.setSettings(settings);
66-
});
67-
68-
// setting correct states
69-
var states = CMS.API.Toolbar.getSettings().states;
70-
// loop through the items
71-
$.each(states, function (index, id) {
72-
var el = $('#cms_draggable-' + id);
73-
el.find('> .cms_draggables').hide();
74-
el.find('> .cms_dragitem').addClass('cms_dragitem-collapsed');
75-
});
43+
// ensure collapsables work
44+
this._collapsables(placeholders.find('.cms_draggable'));
7645
},
7746

7847
_setupPlugins: function (plugins) {
@@ -299,6 +268,38 @@ $(document).ready(function () {
299268
if(lengthContainers <= 0) this.clipboard.remove();
300269
},
301270

271+
_collapsables: function (draggables) {
272+
var that = this;
273+
274+
// attach events to draggable
275+
draggables.find('> .cms_dragitem-collapsable').bind('click', function () {
276+
var el = $(this);
277+
var id = that.getId($(this).parent());
278+
var settings = CMS.API.Toolbar.getSettings();
279+
settings.states = settings.states || [];
280+
var index = settings.states.indexOf(id);
281+
282+
// collapsable function and save states
283+
if(index != -1) {
284+
settings.states.splice(settings.states.indexOf(id), 1);
285+
el.removeClass('cms_dragitem-expanded').parent().find('> .cms_draggables').hide();
286+
} else {
287+
settings.states.push(id);
288+
el.addClass('cms_dragitem-expanded').parent().find('> .cms_draggables').show();
289+
}
290+
291+
// save settings
292+
CMS.API.Toolbar.setSettings(settings);
293+
});
294+
295+
// loop through the items
296+
$.each(CMS.API.Toolbar.getSettings().states, function (index, id) {
297+
var el = $('#cms_draggable-' + id);
298+
el.find('> .cms_draggables').show();
299+
el.find('> .cms_dragitem').addClass('cms_dragitem-expanded');
300+
});
301+
},
302+
302303
_preventEvents: function () {
303304
var clicks = 0;
304305
var delay = 500;

cms/static/cms/js/plugins/cms.toolbar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ $(document).ready(function () {
285285
if(!window.localStorage) return false;
286286

287287
// set settings
288-
settings = $.extend(true, {}, this.settings, settings);
288+
settings = $.extend({}, this.settings, settings);
289289
// save inside local storage
290290
localStorage.setItem('cms_cookie', JSON.stringify(settings));
291291

0 commit comments

Comments
 (0)