From 88f94422972453ba8a8871cc9eef8fc6b387e075 Mon Sep 17 00:00:00 2001 From: Chris Williams Date: Tue, 1 Mar 2016 11:40:13 -0800 Subject: [PATCH] add button to auto-copy short URLs in /explore page --- panoramix/assets/javascripts/explore.js | 45 ++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/panoramix/assets/javascripts/explore.js b/panoramix/assets/javascripts/explore.js index eb365e4d3..8ed350ccc 100644 --- a/panoramix/assets/javascripts/explore.js +++ b/panoramix/assets/javascripts/explore.js @@ -106,17 +106,54 @@ function initExploreView() { toggle_fieldset($(this), true); }); + function copyURLToClipboard (url) { + var textArea = document.createElement("textarea"); + textArea.style.position = 'fixed'; + textArea.style.left = '-1000px'; + textArea.value = url; + + document.body.appendChild(textArea); + textArea.select(); + + try { + var successful = document.execCommand('copy'); + if (!successful) { + throw "Not successful"; + } + } catch (err) { + window.alert("Sorry, your browser does not support copying. Use Ctrl / Cmd + C!"); + } + document.body.removeChild(textArea); + return successful; + } + $('#shortner').click(function () { $.ajax({ type: "POST", url: '/r/shortner/', data: {'data': '/' + window.location.pathname + slice.querystring()}, success: function(data) { - data += '   '; - $('#shortner').popover({content: data, placement: 'left', html: true, trigger: 'manual'}); - $('#shortner').popover('show'); + var close = ''; + var copy = ''; + var spaces = '   ' + var popover = data + spaces + copy + spaces + close; + + var $shortner = $('#shortner') + .popover({content: popover, placement: 'left', html: true, trigger: 'manual'}) + .popover('show'); + + $('#copy_url').tooltip().click(function() { + var success = copyURLToClipboard(data); + + if (success) { + $(this).attr("data-original-title", "Copied!").tooltip('fixTitle').tooltip('show'); + window.setTimeout(function() { + $shortner.popover('destroy'); + }, 1200); + } + }); $('#close_shortner').click(function(){ - $('#shortner').popover('destroy'); + $shortner.popover('destroy'); }); }, error: function() {alert("Error :(");},