summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/copy_to_clipboard.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/copy_to_clipboard.js')
-rw-r--r--app/assets/javascripts/copy_to_clipboard.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/app/assets/javascripts/copy_to_clipboard.js b/app/assets/javascripts/copy_to_clipboard.js
new file mode 100644
index 00000000000..b5c562c7112
--- /dev/null
+++ b/app/assets/javascripts/copy_to_clipboard.js
@@ -0,0 +1,38 @@
+
+/*= require clipboard */
+var genericError, genericSuccess, showTooltip;
+
+genericSuccess = function(e) {
+ showTooltip(e.trigger, 'Copied!');
+ e.clearSelection();
+ return $(e.trigger).blur();
+};
+
+genericError = function(e) {
+ var key;
+ if (/Mac/i.test(navigator.userAgent)) {
+ key = '⌘';
+ } else {
+ key = 'Ctrl';
+ }
+ return showTooltip(e.trigger, "Press " + key + "-C to copy");
+};
+
+showTooltip = function(target, title) {
+ return $(target).tooltip({
+ container: 'body',
+ html: 'true',
+ placement: 'auto bottom',
+ title: title,
+ trigger: 'manual'
+ }).tooltip('show').one('mouseleave', function() {
+ return $(this).tooltip('hide');
+ });
+};
+
+$(function() {
+ var clipboard;
+ clipboard = new Clipboard('[data-clipboard-target], [data-clipboard-text]');
+ clipboard.on('success', genericSuccess);
+ return clipboard.on('error', genericError);
+});