diff options
author | FuXiaoHei <fuxiaohei@hexiaz.com> | 2014-04-03 00:56:26 +0800 |
---|---|---|
committer | FuXiaoHei <fuxiaohei@hexiaz.com> | 2014-04-03 00:56:26 +0800 |
commit | 1757a59a999be2c1b3a17244231cad6a579282d4 (patch) | |
tree | 3fad3f71ba94437d0fe515623621ffe50fc284b6 /public/js/app.js | |
parent | db66b8da7227f7fd3ff9a8d7ccece0c3e31ea3d0 (diff) |
js clipboard
Diffstat (limited to 'public/js/app.js')
-rw-r--r-- | public/js/app.js | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/public/js/app.js b/public/js/app.js index 5181933d..0ba0675f 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -159,6 +159,7 @@ var Gogits = { $tabs.tab("show"); $tabs.find("li:eq(0) a").tab("show"); }; + // fix dropdown inside click Gogits.initDropDown = function () { $('.dropdown-menu.no-propagation').on('click', function (e) { @@ -166,6 +167,7 @@ var Gogits = { }); }; + // render markdown Gogits.renderMarkdown = function () { var $md = $('.markdown'); @@ -192,6 +194,7 @@ var Gogits = { }); }; + // render code view Gogits.renderCodeView = function () { function selectRange($list, $select, $from) { $list.removeClass('active'); @@ -255,6 +258,43 @@ var Gogits = { }).trigger('hashchange'); }; + // copy utils + Gogits.bindCopy = function (selector) { + 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 () { + var $this = $(this); + $this.tooltip('hide') + .attr('data-original-title', 'Copied OK'); + setTimeout(function () { + $this.tooltip("show"); + }, 200); + setTimeout(function () { + $this.tooltip('hide') + .attr('data-original-title', 'Copy to Clipboard'); + }, 3000); + } + }).addClass("js-copy-bind"); + } + })(jQuery); // ajax utils @@ -343,7 +383,10 @@ function initRepository() { $clone.find('span.clone-url').text($this.data('link')); } }).eq(0).trigger("click"); - // todo copy to clipboard + $("#repo-clone").on("shown.bs.dropdown",function () { + Gogits.bindCopy("[data-init=copy]"); + }); + Gogits.bindCopy("[data-init=copy]:visible"); } })(); |