NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Jira Cards Context Menu Additions
// @author mariotatis
// @namespace https://openuserjs.org/users/mariotatis/scripts
// @description Add new actions to Jira Cards context menu
// @icon https://www.mariotatis.com/wp-content/uploads/2020/05/favicon-32x32-1.png
// @copyright 2020+, mariotatis.com
// @version 1.0.3
// @license MIT
// @require http://code.jquery.com/jquery-3.6.0.min.js
// @grant none
// @include /^https?:\/\/.*atlassian.*
// ==/UserScript==
var $ = window.jQuery;
window.addEventListener('load', function() {
$(".ghx-issue").contextmenu(function() {
setTimeout(function() {
$(`<li id="ghx-issue-ctx-action-copy-card-name-container" class="aui-list-item">
<a class="aui-list-item-link" title="Copy card name" id="ghx-issue-ctx-action-copy-card-name" href="#">Copy card name</a>
</li>`)
.insertAfter('#ghx-issue-ctx-action-copy-issue-link-container');
}, 10);
});
function copyToClipboard(text) {
if (window.clipboardData && window.clipboardData.setData) {
return window.clipboardData.setData("Text", text);
}
else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
var textarea = document.createElement("textarea");
textarea.textContent = text;
textarea.style.position = "fixed"; // Prevent scrolling to bottom of page in Microsoft Edge.
document.body.appendChild(textarea);
textarea.select();
try {
return document.execCommand("copy"); // Security exception may be thrown by some browsers.
}
catch (ex) {
console.warn("Copy to clipboard failed.", ex);
return false;
}
finally {
document.body.removeChild(textarea);
}
}
}
$(document).on('click', '#ghx-issue-ctx-action-copy-card-name', function() {
copyToClipboard($('.ghx-selected > section:first').text());
});
$(document).on('mouseenter', '#ghx-issue-ctx-action-copy-card-name-container', function() {
$(".aui-list-item").removeClass('active');
$('#ghx-issue-ctx-action-copy-card-name-container').addClass('active');
});
$(document).on('mouseleave', '#ghx-issue-ctx-action-copy-card-name-container', function() {
$('#ghx-issue-ctx-action-copy-card-name-container').removeClass('active');
});
})();