User:Caesar Schinas/Pinkwich5.js
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* * * * * * * * * * * * * * * * * * * * * * * * * *
* Credit line editor *
* - - - - - - - - - - - - - - - - - - - - - - - - *
* Creates a simple form for editing credit lines. *
* * * * * * * * * * * * * * * * * * * * * * * * * */
function creditEdit() {
if ((wgPageName.indexOf('/credit') != -1) && (wgAction == 'edit')) {
var text = document.getElementById('wpTextbox1').value;
if (text.indexOf('{{creditline') == -1) return false;
var args = text.substring(text.indexOf('|')+1,text.indexOf('}}')).split('|');
var bodycontent = document.getElementById('bodycontent');
bodycontent.setAttribute('id','bodycontent-old');
bodycontent.style.display = 'none';
var div = document.createElement('div');
bodycontent.parentNode.appendChild(div);
div.setAttribute('id','bodycontent');
div.innerHTML = "\
<table>\n\
<tr>\n\
<th style='text-align:right; padding-right:1em;'>\n\
<label for='licence'>Licence Type</label>\n\
</th>\n\
<td>\n\
<select id='licence' name='licence' style='width:25em;'>\n\
<option value='C'>C - Copyright, used by permission</option>\n\
<option value='CC'>CC - Creative Commons</option>\n\
<option value='GNU'>GNU</option>\n\
<option value='PD'>PD - Public Domain</option>\n\
<option value='other' selected='selected'>Other (please only enter letters)</option>\n\
</select>\n\
<input type='text' id='licence-other' name='imagetype-other' />\n\
</td>\n\
</tr>\n\
<tr>\n\
<th style='text-align:right; padding-right:1em;'>\n\
<label for='imagetype'>Image Type</label>\n\
</th>\n\
<td>\n\
<select id='imagetype' name='imagetype' style='width:25em;'>\n\
<option value='Image'>Image</option>\n\
<option value='Photo'>Photo</option>\n\
<option value='Diagram'>Diagram</option>\n\
<option value='Drawing'>Drawing</option>\n\
<option value='Painting'>Painting</option>\n\
<option value='Artwork'>Artwork</option>\n\
<option value='other' selected='selected'>Other</option>\n\
</select>\n\
<input type='text' id='imagetype-other' name='imagetype-other' />\n\
</td>\n\
</tr>\n\
<tr>\n\
<th style='text-align:right; padding-right:1em;'>\n\
<label for='author'>Author</label>\n\
</th>\n\
<td>\n\
<input type='text' id='author' name='author' style='width:25em;' />\n\
</td>\n\
</tr>\n\
<tr>\n\
<th>\n\
</th>\n\
<td>\n\
<input type='button' id='save' value='Save Credit Line' />\n\
</td>\n\
</tr>\n\
</table>\n\
";
// set form field values
if (args[0] && args[0] != 'licence') {
document.getElementById('licence-other').value = args[0];
for (var i=0; i<4; i++) {
if (args[0].toUpperCase() == Array('CC','GNU','PD','C')[i]) {
document.getElementById('licence').value = args[0].toUpperCase();
document.getElementById('licence-other').style.display = 'none';
}
}
} else {
document.getElementById('licence').value = 'C';
document.getElementById('licence-other').style.display = 'none';
}
if (args[1] && args[1] != 'imagetype') {
document.getElementById('imagetype-other').value = args[1];
for (var i=0; i<6; i++) {
if (args[1].toLowerCase() == Array('Image','Photo','Diagram','Drawing','Painting','Artwork')[i].toLowerCase()) {
document.getElementById('imagetype').value = Array('Image','Photo','Diagram','Drawing','Painting','Artwork')[i];
document.getElementById('imagetype-other').style.display = 'none';
}
}
} else {
document.getElementById('imagetype').value = 'Image';
document.getElementById('imagetype-other').style.display = 'none';
}
if (args[2] && args[2] != 'author')
document.getElementById('author').value = args[2];
// onchange handlers for selects
document.getElementById('licence').onchange = function() {
if (document.getElementById('licence').value == 'other')
document.getElementById('licence-other').style.display = 'inline';
else
document.getElementById('licence-other').style.display = 'none';
}
document.getElementById('imagetype').onchange = function() {
if (document.getElementById('imagetype').value == 'other')
document.getElementById('imagetype-other').style.display = 'inline';
else
document.getElementById('imagetype-other').style.display = 'none';
}
// save the credit line
document.getElementById('save').onclick = function() {
var value = '{{creditline';
if (document.getElementById('licence').value != 'other')
value += '|' + document.getElementById('licence').value;
else if (document.getElementById('licence-other').value != '')
value += '|' + document.getElementById('licence-other').value;
if (document.getElementById('imagetype').value != 'Image' || document.getElementById('author').value != '') {
if (document.getElementById('imagetype').value != 'other')
value += '|' + document.getElementById('imagetype').value;
else if (document.getElementById('imagetype-other').value != '')
value += '|' + document.getElementById('imagetype-other').value;
if (document.getElementById('author').value != '')
value += '|' + document.getElementById('author').value;
}
value += '}}';
document.getElementById('wpTextbox1').value = value;
document.getElementById('editform').submit();
}
}
}
addOnloadHook(creditEdit);