User:Caesar Schinas/Pinkwich5.js: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Caesar Schinas
mNo edit summary
imported>Caesar Schinas
m (Removing all content from page)
 
Line 1: Line 1:


/* * * * * * * * * * * * * * * * * * * * * * * * * *
* 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);

Latest revision as of 10:42, 22 June 2009