User:Riana/autodelete.js

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
/* ========================================================================== *\
*                                                                              *
*   This is adapted (stolen?) from [[:en:User:^demon/csd.js]]                  *
*   I haven't asked him what license he's using, I'm hoping GFDL. ^.^          *
*   If not, I'll gladly delete this, obviously!                                *
*  ==========================================================================  *
/* <pre><nowiki> */
 
if (wgAction == 'delete') {
     var csdDeleteForm = {
				FillSelect:function(sel, arr){
					if(arr && arr.length>0){
						if(arr.length>1){
							var FirstOpt = new Option("Deletion Reasons", "");
							// catches stupid IE error
							if(FirstOpt.innerHTML != "Deletion Reasons"){
								FirstOpt.innerHTML = "Deletion Reasons";
							}
							sel.appendChild(FirstOpt);
							sel.options[0].style.color = "gray"
						}
						sel.disabled = false;
						for(var i=0;i<arr.length;i++){
							var opt = new Option(arr[i].display, arr[i].value);
							// catches stupid IE error
							if(opt.innerHTML != arr[i].display){
								opt.innerHTML = arr[i].display;
							}
							sel.appendChild(opt);
						}
					}else{
						sel.options[0] = new Option("No Options Available", "");
						// catches stupid IE error
						if(sel.options[0].innerHTML != "No Options Available"){
							sel.options[0].innerHTML = "No Options Available";
						}
						sel.disabled = true;
						return false;
					}
					return true;
				},
                                ValueArray:[
                                        {"value":"Unknown for over 7 days - no source","display":"Unknown - no source"},
                                        {"value":"Unknown for over 7 days - no license","display":"Unknown - no license"},
                                        {"value":"Unknown for over 7 days - no permission","display":"Unknown - no permission"},
                                        {"value":"Test page","display":"Test page"},
                                        {"value":"Vandalism only","display":"Vandalism only"},
                                        {"value":"Duplicate of another image","display":"Duplicate"},
                                        {"value":"Uploader request","display":"Uploader request"},
                                        {"value":"Deleted after deletion request","display":"Deletion request"},
                                        {"value":"Outside [[COM:SCOPE|project scope]]","display":"Not in SCOPE"},
                                        {"value":"Empty gallery","display":"Empty gallery"},
                                        {"value":"Spam/spambot page","display":"Spam/spambot page"},
                                       {"value":"Talkpage of non-existent file/gallery/category","display":"Orphaned talkpage"},
                                        {"value":"Copyright violation - see [[COM:L|licensing policy]]","display":"Copyvio"}

                                        ],
				//**************************** attaching function *****************************************
				// got thIS super handi function from http://www.scottandrew.com he is pretty dang smart **
			        //*****************************************************************************************
				addEvent:function(obj, evType, fn, useCapture){
					//alert(obj);
					if (obj.addEventListener){
						obj.addEventListener(evType, fn, useCapture);
						return true;
					} else if (obj.attachEvent){
						var r = obj.attachEvent("on"+evType, fn);
						return r;
					} else {
						alert("Handler could not be attached");
					}
				}
			}
			function addSelectAfter(){
    				var obj = document.getElementById('wpReason') || document.getElementById('wpComment');
    			        // create select using included array
				var sel = document.createElement("SELECT");
				csdDeleteForm .FillSelect(sel, csdDeleteForm .ValueArray);
				// name it
				sel.name = "csdOptions";
				sel.id = "csdOptions";
                                sel.style.marginLeft = "10px";
                                csdDeleteForm .addEvent(sel, "change", csdChangeBox, false);
				// check for next sibling and insert before it or at the end
				if(obj.nextSibling){
					obj.parentNode.insertBefore(sel,obj.nextSibling);
				}else{
					obj.parentNode.appendChild(sel);
				}
			}
			try{
				// add one on load
				csdDeleteForm.addEvent(window, "load", addSelectAfter, false);
			}catch(err){}
}
 
function csdChangeBox() {
                         var obj = document.getElementById('wpReason') || document.getElementById('wpComment');
                         obj.value = document.getElementById('csdOptions').value;
                        }
 
/* </nowiki><pre> */