first commit
This commit is contained in:
56
public/js/modules/clipboard.js
Normal file
56
public/js/modules/clipboard.js
Normal file
@@ -0,0 +1,56 @@
|
||||
CNVS.Clipboard = function() {
|
||||
var __core = SEMICOLON.Core;
|
||||
|
||||
return {
|
||||
init: function(selector) {
|
||||
if( __core.getSelector(selector, false, false).length < 1 ){
|
||||
return true;
|
||||
}
|
||||
|
||||
__core.loadJS({ file: 'plugins.clipboard.js', id: 'canvas-clipboard-js', jsFolder: true });
|
||||
|
||||
__core.isFuncTrue( function() {
|
||||
return typeof ClipboardJS !== 'undefined';
|
||||
}).then( function(cond) {
|
||||
if( !cond ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
__core.initFunction({ class: 'has-plugin-clipboard', event: 'pluginClipboardReady' });
|
||||
|
||||
selector = __core.getSelector( selector, false );
|
||||
if( selector.length < 1 ){
|
||||
return true;
|
||||
}
|
||||
|
||||
var clipboards = [],
|
||||
count = 0;
|
||||
|
||||
selector.forEach( function(el) {
|
||||
var trigger = el.querySelector('button'),
|
||||
triggerText = trigger.innerHTML,
|
||||
copiedtext = trigger.getAttribute('data-copied') || 'Copied',
|
||||
copiedTimeout = trigger.getAttribute('data-copied-timeout') || 5000;
|
||||
|
||||
clipboards[count] = new ClipboardJS( trigger, {
|
||||
target: function(content) {
|
||||
return content.closest('.clipboard-copy').querySelector('code');
|
||||
}
|
||||
});
|
||||
|
||||
clipboards[count].on('success', function(e) {
|
||||
trigger.innerHTML = copiedtext;
|
||||
trigger.disabled = true;
|
||||
|
||||
setTimeout( function() {
|
||||
trigger.innerHTML = triggerText;
|
||||
trigger.disabled = false;
|
||||
}, Number(copiedTimeout));
|
||||
});
|
||||
|
||||
count++;
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
}();
|
||||
Reference in New Issue
Block a user