@userfrosting/theme-adminlte
Version:
Admin LTE Theme for UserFrosting 5
51 lines (42 loc) • 1.22 kB
JavaScript
/**
* Copies text or control fields to clipboard. Wrap a .js-copy-target and .js-copy-trigger inside a common .js-copy-container.
*/
const Clipboard = require('clipboard');
if (typeof $.uf === 'undefined') {
$.uf = {};
}
$.uf.copy = function (button) {
var clipboard = new Clipboard(button, {
text: function(trigger) {
var el = $(trigger).closest('.js-copy-container').find('.js-copy-target');
if (el.is(':input')) {
return el.val();
} else {
return el.html();
}
}
});
clipboard.on('success', function(e) {
setTooltip(e.trigger, 'Copied!');
hideTooltip(e.trigger);
});
clipboard.on('error', function(e) {
setTooltip(e.trigger, 'Failed!');
hideTooltip(e.trigger);
});
function setTooltip(btn, message) {
$(btn)
.attr('data-original-title', message)
.tooltip('show');
}
function hideTooltip(btn) {
setTimeout(function() {
$(btn).tooltip('hide')
.attr('data-original-title', "");
}, 1000);
}
// Tooltip
$(button).tooltip({
trigger: 'click'
});
};