first commit
This commit is contained in:
108
web/js/dropMenu/portal.js
Normal file
108
web/js/dropMenu/portal.js
Normal file
@@ -0,0 +1,108 @@
|
||||
var Portal = Class.create();
|
||||
Portal.prototype = {
|
||||
initialize: function (options) {
|
||||
this.setOptions(options);
|
||||
var sortables = $$(
|
||||
'.'+this.options.column, '#' + this.options.portal
|
||||
);
|
||||
sortables.each(function (sortable) {
|
||||
Sortable.create(sortable, {
|
||||
containment: sortables,
|
||||
constraint: false,
|
||||
tag: 'div',
|
||||
only: this.options.block,
|
||||
dropOnEmpty: true,
|
||||
handle: this.options.handle,
|
||||
hoverclass: this.options.hoverclass,
|
||||
onUpdate: function (container) {
|
||||
if (!this.options.saveurl) {
|
||||
return;
|
||||
}
|
||||
if (container.id == this.options.blocklist) {
|
||||
return;
|
||||
}
|
||||
var url = this.options.saveurl;
|
||||
var postBody = container.id + ':';
|
||||
|
||||
var blocks = container.select('.'+this.options.block);
|
||||
postBody += blocks.pluck('id').join(',');
|
||||
postBody = 'value=' + escape(postBody);
|
||||
|
||||
new Ajax.Request(url, {
|
||||
method: 'post',
|
||||
postBody: postBody
|
||||
}
|
||||
);
|
||||
}.bind(this)
|
||||
});
|
||||
}.bind(this));
|
||||
|
||||
var blocks = $$(
|
||||
'.' + this.options.block, '#' + this.options.portal
|
||||
);
|
||||
|
||||
Event.observe(
|
||||
this.options.blocklistlink, 'click',
|
||||
this.displayBlockList.bindAsEventListener(this),
|
||||
false
|
||||
);
|
||||
|
||||
new Draggable(this.options.blocklist, {
|
||||
handle: this.options.blocklisthandle
|
||||
}
|
||||
);
|
||||
|
||||
},
|
||||
|
||||
displayBlockList: function (e) {
|
||||
Effect.toggle(this.options.blocklist);
|
||||
Event.stop(e);
|
||||
},
|
||||
|
||||
setOptions: function (options) {
|
||||
this.options = {
|
||||
portal: 'portal',
|
||||
column: 'portal-column',
|
||||
block: 'block',
|
||||
content: 'content',
|
||||
handle: 'handle',
|
||||
hoverclass: 'block-hover',
|
||||
toggle: 'block-toggle',
|
||||
blocklist: 'portal-column-block-list',
|
||||
blocklistlink: 'portal-block-list-link',
|
||||
blocklisthandle: 'block-list-handle',
|
||||
saveurl: ''
|
||||
}
|
||||
Object.extend(this.options, options || {});
|
||||
},
|
||||
|
||||
applySettings: function (settings)
|
||||
{
|
||||
|
||||
for (var container in settings)
|
||||
{
|
||||
|
||||
settings[container].each(function (block)
|
||||
{
|
||||
if(document.getElementById(container)!=null && document.getElementById(block)!=null)
|
||||
{
|
||||
$(container).appendChild($(block));
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var frame = $("js_frame");
|
||||
frame.style.display = "block";
|
||||
|
||||
var fastcache = $("fastcache");
|
||||
if(fastcache){fastcache.style.display = "block";}
|
||||
|
||||
jQuery(frame).trigger('dropmenu:showlayout');
|
||||
|
||||
frame.fire('dropmenu:showlayout');
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user