mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-22 21:35:35 +03:00
add clipboard API support
This commit is contained in:
parent
6a89eeedf3
commit
eebcbf9d34
2 changed files with 100 additions and 46 deletions
|
@ -269,36 +269,62 @@ var Gogits = {};
|
|||
if ($(selector).hasClass('js-copy-bind')) {
|
||||
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);
|
||||
$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 () {
|
||||
$this.tooltip("show");
|
||||
$this.tipsy("show");
|
||||
}, 200);
|
||||
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
|
||||
|
|
|
@ -333,25 +333,17 @@ var Gogs = {};
|
|||
if ($(selector).hasClass('js-copy-bind')) {
|
||||
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 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 () {
|
||||
$this.tipsy("show");
|
||||
|
@ -359,8 +351,44 @@ var Gogs = {};
|
|||
setTimeout(function () {
|
||||
$this.tipsy('hide').attr('original-title', $this.data('original-title'));
|
||||
}, 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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue