NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name GitHub - Confirmations before submitting issues and comments
// @namespace darkred
// @version 2017.4.26
// @description Creates a confirmation popup whenever attempting to create an issue or post comment via Ctrl+Enter in GitHub
// @author darkred
// @license MIT
// @include https://github.com/*
// @grant none
// @supportURL https://github.com/darkred/Userscripts/issues
// ==/UserScript==
(function () {
function init() {
// For submitting issues in issue title textbox via Ctrl+Enter or Enter
var targArea1 = document.querySelector('#issue_title'); // New issue title
function manageKeyEvents1(zEvent) {
targArea1.blur();
targArea1.focus();
if ((zEvent.ctrlKey && zEvent.keyCode === 13) || zEvent.keyCode === 13) {
if (confirm('Are you sure?') === false) {
zEvent.stopPropagation();
zEvent.preventDefault();
} else {
var btn = document.querySelector('.btn-primary'); // 'Submit new issue' button
btn.click();
}
}
}
if (targArea1 !== null) {targArea1.addEventListener('keydown', manageKeyEvents1);}
// ------------------------------------------------------------------------------------------------
// For submitting issues in issue body textarea via Ctrl+Enter
var targArea2 = document.querySelector('#issue_body'); // New issue textarea
function manageKeyEvents2(zEvent) {
targArea2.blur();
targArea2.focus();
if (zEvent.ctrlKey && zEvent.keyCode === 13) {
if (confirm('Are you sure?') === false) {
zEvent.stopPropagation();
zEvent.preventDefault();
} else {
var btn1 = document.querySelector('.btn-primary');
if (btn1) {btn1.click();}
}
}
}
if (targArea2 !== null) { targArea2.addEventListener('keydown', manageKeyEvents2); }
// ------------------------------------------------------------------------------------------------
// For submitting issues in new comment textarea via Ctrl+Enter
var targArea3 = document.querySelector('#new_comment_field'); // New comment textarea
function manageKeyEvents3(zEvent) {
targArea3.blur();
targArea3.focus();
if (zEvent.ctrlKey && zEvent.keyCode === 13) {
if (confirm('Are you sure?') === false) {
zEvent.stopPropagation();
zEvent.preventDefault();
} else {
var btn2 = document.querySelector('#partial-new-comment-form-actions button');
if (btn2) {btn2.click();}
}
}
}
if (targArea3 !== null) { targArea3.addEventListener('keydown', manageKeyEvents3); }
}
init();
document.addEventListener('pjax:end', init); // for the History API
})();