Browse Source

add clipboard API support

master
Fernando San Julián 10 years ago
parent
commit
eebcbf9d34
2 changed files with 100 additions and 46 deletions
  1. +52
    -26
      public/js/app.js
  2. +48
    -20
      public/ng/js/gogs.js

+ 52
- 26
public/js/app.js View File

@@ -269,36 +269,62 @@ var Gogits = {};
if ($(selector).hasClass('js-copy-bind')) { if ($(selector).hasClass('js-copy-bind')) {
return; return;
} }
$(selector).zclip({
path: "/js/ZeroClipboard.swf",
copy: function () {
var t = $(this).data("copy-val");
var to = $($(this).data("copy-from"));
var str = "";
if (t == "txt") {
str = to.text();
}
if (t == 'val') {
str = to.val();
}
if (t == 'html') {
str = to.html();
}
return str;
},
afterCopy: function () {

if ( document.documentElement.classList.contains("is-copy-enabled") ) {

$(selector).click(function(event) {
var $this = $(this); var $this = $(this);
$this.tooltip('hide')
.attr('data-original-title', 'Copied OK');

var cfrom = $this.attr('data-copy-from');
$(cfrom).select();
document.execCommand('copy');
getSelection().removeAllRanges();

$this.tipsy("hide").attr('original-title', $this.data('after-title'));
setTimeout(function () { setTimeout(function () {
$this.tooltip("show");
$this.tipsy("show");
}, 200); }, 200);
setTimeout(function () { setTimeout(function () {
$this.tooltip('hide')
.attr('data-original-title', 'Copy to Clipboard');
}, 3000);
}
}).addClass("js-copy-bind");
$this.tipsy('hide').attr('original-title', $this.data('original-title'));
}, 2000);
this.blur();
return;
});

$(selector).addClass("js-copy-bind");

} else {

$(selector).zclip({
path: Gogs.AppSubUrl + "/js/ZeroClipboard.swf",
copy: function () {
var t = $(this).data("copy-val");
var to = $($(this).data("copy-from"));
var str = "";
if (t == "txt") {
str = to.text();
}
if (t == 'val') {
str = to.val();
}
if (t == 'html') {
str = to.html();
}
return str;
},
afterCopy: function () {
var $this = $(this);
$this.tipsy("hide").attr('original-title', $this.data('after-title'));
setTimeout(function () {
$this.tipsy("show");
}, 200);
setTimeout(function () {
$this.tipsy('hide').attr('original-title', $this.data('original-title'));
}, 2000);
}
}).addClass("js-copy-bind");
}
} }


// api working // api working


+ 48
- 20
public/ng/js/gogs.js View File

@@ -333,25 +333,17 @@ var Gogs = {};
if ($(selector).hasClass('js-copy-bind')) { if ($(selector).hasClass('js-copy-bind')) {
return; return;
} }
$(selector).zclip({
path: Gogs.AppSubUrl + "/js/ZeroClipboard.swf",
copy: function () {
var t = $(this).data("copy-val");
var to = $($(this).data("copy-from"));
var str = "";
if (t == "txt") {
str = to.text();
}
if (t == 'val') {
str = to.val();
}
if (t == 'html') {
str = to.html();
}
return str;
},
afterCopy: function () {

if ( document.documentElement.classList.contains("is-copy-enabled") ) {

$(selector).click(function(event) {
var $this = $(this); var $this = $(this);

var cfrom = $this.attr('data-copy-from');
$(cfrom).select();
document.execCommand('copy');
getSelection().removeAllRanges();

$this.tipsy("hide").attr('original-title', $this.data('after-title')); $this.tipsy("hide").attr('original-title', $this.data('after-title'));
setTimeout(function () { setTimeout(function () {
$this.tipsy("show"); $this.tipsy("show");
@@ -359,8 +351,44 @@ var Gogs = {};
setTimeout(function () { setTimeout(function () {
$this.tipsy('hide').attr('original-title', $this.data('original-title')); $this.tipsy('hide').attr('original-title', $this.data('original-title'));
}, 2000); }, 2000);
}
}).addClass("js-copy-bind");
this.blur();
return;
});

$(selector).addClass("js-copy-bind");

} else {

$(selector).zclip({
path: Gogs.AppSubUrl + "/js/ZeroClipboard.swf",
copy: function () {
var t = $(this).data("copy-val");
var to = $($(this).data("copy-from"));
var str = "";
if (t == "txt") {
str = to.text();
}
if (t == 'val') {
str = to.val();
}
if (t == 'html') {
str = to.html();
}
return str;
},
afterCopy: function () {
var $this = $(this);
$this.tipsy("hide").attr('original-title', $this.data('after-title'));
setTimeout(function () {
$this.tipsy("show");
}, 200);
setTimeout(function () {
$this.tipsy('hide').attr('original-title', $this.data('original-title'));
}, 2000);
}
}).addClass("js-copy-bind");
}
} }
})(jQuery); })(jQuery);




Loading…
Cancel
Save