Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name _SO Block submit on custom FF2 page.
- // @namespace PC
- // @include file:///D:/temp/foo%20SO/task*
- // @include file:///D:/temp/foo%20SO/fixture*
- // @include file:///D:/temp/foo%20SO/pallet*
- // ==/UserScript==
- GM_log ("Script start.");
- unsafeWindow._oldSubmit = unsafeWindow.document.forms[0].submit;
- unsafeWindow.document.forms[0].submit = function () {
- GM_log ("Submit function fired.");
- var destInput = document.getElementsByName ("dest");
- if ( ! destInput || destInput.length == 0) {
- //unsafeWindow._oldSubmit ();
- }
- var destValue = destInput[0].value;
- if ( /^\s*$/.test (destValue)
- || excludedDestinations.indexOf (destValue) > -1
- ) {
- GM_log ("Submit should be blocked! (1)");
- }
- else {
- //unsafeWindow._oldSubmit ();
- }
- };
- //--- Make sure this list of names is all uppercase.
- var usersWhoCanSetPriority = ['JOHN', 'LUKE', 'JEFF', 'MAX', 'ANDY'];
- var excludedDestinations = ['12', '22'];
- var bDisablePrio = true;
- var tdNodes = document.getElementsByTagName ("TD");
- for (var J = tdNodes.length - 1; J >= 0; --J) {
- var tdNode = tdNodes[J];
- if (tdNode.className == "user") {
- var userName = tdNode.textContent.replace (
- /^(?:.|\n|\r)+\(User:\s+([^)]+)\)(?:.|\n|\r)+$/i, "$1"
- ).toUpperCase ();
- if (usersWhoCanSetPriority.indexOf (userName) > -1) {
- bDisablePrio = false;
- }
- }
- }
- if (bDisablePrio) {
- var oldInput = document.getElementsByName ("prio");
- if (oldInput && oldInput.length) {
- oldInput[0].setAttribute ("disabled", "disabled");
- }
- var destInput = document.getElementsByName ("dest");
- if (destInput && destInput.length) {
- destInput[0].addEventListener (
- "change",
- function (zEvent) {
- bCheckdestinationValue (destInput[0]);
- GM_log ("Change handler fired.");
- },
- false
- );
- destInput[0].form.addEventListener (
- "submit",
- function (zEvent) {
- GM_log ("Submit handler fired.");
- var destValue = destInput[0].value;
- if ( /^\s*$/.test (destValue)
- || excludedDestinations.indexOf (destValue) > -1
- ) {
- //--- Stop the submit
- zEvent.preventDefault ();
- //zEvent.stopPropagation ();
- GM_log ("Submit should be blocked! (2)");
- return false;
- }
- },
- true
- );
- }
- }
- function bCheckdestinationValue (destInputNd) {
- //--- Returns true if value is bad.
- if (excludedDestinations.indexOf (destInputNd.value) > -1) {
- destInputNd.value = ''; // Blank input
- //--- Add or show Error message.
- var destErrNode = document.getElementById ("gmDestErrorDisp");
- if (destErrNode) {
- destErrNode.style.display = "inline";
- }
- else {
- destErrNode = document.createElement ('b');
- destErrNode.id = "gmDestErrorDisp";
- destErrNode.style.color = "red";
- destErrNode.textContent = "12 and 22 are forbidden";
- destInputNd.parentNode.appendChild (destErrNode);
- }
- return true;
- }
- else {
- var destErrNode = document.getElementById ("gmDestErrorDisp");
- if (destErrNode) {
- destErrNode.style.display = "none";
- }
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement