new static files.
Signed-off-by: rscnt <rascnt@gmail.com>
This commit is contained in:
parent
83e792bcaa
commit
fe4f6c97d5
778 changed files with 71557 additions and 0 deletions
107
static/cms/js/modules/cms.clipboard.js
Normal file
107
static/cms/js/modules/cms.clipboard.js
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
/*##################################################|*/
|
||||
/* #CMS# */
|
||||
(function($) {
|
||||
// CMS.$ will be passed for $
|
||||
$(document).ready(function () {
|
||||
/*!
|
||||
* Clipboard
|
||||
* Handles copy & paste
|
||||
*/
|
||||
CMS.Clipboard = new CMS.Class({
|
||||
|
||||
implement: [CMS.API.Helpers],
|
||||
|
||||
options: {
|
||||
'position': 220, // offset to top
|
||||
'speed': 100,
|
||||
'id': null,
|
||||
'url': ''
|
||||
},
|
||||
|
||||
initialize: function (options) {
|
||||
this.clipboard = $('.cms_clipboard');
|
||||
this.options = $.extend(true, {}, this.options, options);
|
||||
this.config = CMS.config;
|
||||
this.settings = CMS.settings;
|
||||
|
||||
// elements
|
||||
this.containers = this.clipboard.find('.cms_clipboard-containers > .cms_draggable');
|
||||
this.triggers = this.clipboard.find('.cms_clipboard-triggers a');
|
||||
this.triggerRemove = this.clipboard.find('.cms_clipboard-empty a');
|
||||
|
||||
// states
|
||||
this.click = (document.ontouchstart !== null) ? 'click.cms' : 'touchend.cms click.cms';
|
||||
this.timer = function () {};
|
||||
|
||||
// setup initial stuff
|
||||
this._setup();
|
||||
|
||||
// setup events
|
||||
this._events();
|
||||
},
|
||||
|
||||
// initial methods
|
||||
_setup: function () {
|
||||
var that = this;
|
||||
|
||||
// attach visual events
|
||||
this.triggers.bind('mouseenter mouseleave', function (e) {
|
||||
e.preventDefault();
|
||||
// clear timeout
|
||||
clearTimeout(that.timer);
|
||||
|
||||
if(e.type === 'mouseleave' && !that.containers.has(e.toElement).length) hide();
|
||||
|
||||
var index = that.clipboard.find('.cms_clipboard-triggers a').index(this);
|
||||
var el = that.containers.eq(index);
|
||||
// cancel if element is already open
|
||||
if(el.data('open') === true) return false;
|
||||
|
||||
// show element
|
||||
that.containers.stop().css({ 'margin-left': -that.options.position }).data('open', false);
|
||||
el.stop().animate({ 'margin-left': 0 }, that.options.speed);
|
||||
el.data('open', true);
|
||||
});
|
||||
that.containers.bind('mouseover mouseleave', function (e) {
|
||||
// clear timeout
|
||||
clearTimeout(that.timer);
|
||||
|
||||
// cancel if we trigger mouseover
|
||||
if(e.type === 'mouseover') return false;
|
||||
|
||||
// we need a little timer to detect if we should hide the menu
|
||||
hide();
|
||||
});
|
||||
|
||||
function hide() {
|
||||
that.timer = setTimeout(function () {
|
||||
that.containers.stop().css({ 'margin-left': -that.options.position }).data('open', false);
|
||||
}, that.options.speed);
|
||||
}
|
||||
},
|
||||
|
||||
_events: function () {
|
||||
var that = this;
|
||||
|
||||
// add remove event
|
||||
this.triggerRemove.bind(this.click, function (e) {
|
||||
e.preventDefault();
|
||||
that.clear(function () {
|
||||
// remove element on success
|
||||
that.clipboard.hide();
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
// public methods
|
||||
clear: function (callback) {
|
||||
// post needs to be a string, it will be converted using JSON.parse
|
||||
var post = '{ "csrfmiddlewaretoken": "' + this.config.csrf + '" }';
|
||||
// redirect to ajax
|
||||
CMS.API.Toolbar.openAjax(this.config.clipboard.url, post, '', callback);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
})(CMS.$);
|
||||
Loading…
Add table
Add a link
Reference in a new issue