From 6c2b8498c9c9b828337e8adc6f1f873408b40d81 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Sun, 4 Oct 2009 11:31:58 +0200 Subject: JS: Moved and rewrote the release media selector It works slightly different from the previous, in that it enforces a proper selection instead of validating the selection on form submit, and it handles adding new media differently. Probably a bit less efficient, but less code and easier to maintain. --- static/f/forms.js | 109 ----------------------------------------------------- static/f/script.js | 83 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 110 deletions(-) (limited to 'static/f') diff --git a/static/f/forms.js b/static/f/forms.js index cf03ebc4..7fdcadf5 100644 --- a/static/f/forms.js +++ b/static/f/forms.js @@ -257,113 +257,6 @@ function scrSerialize() { - - - /***************\ - * M E D I A * - \***************/ - - -var medTypes = [ [ '', '- medium -', false ] ]; -function medLoad() { - // load the medTypes and clear the div - var l = x('media_div').getElementsByTagName('select')[0].options; - for(var i=0;i 2) - medAddNew(l[i].split(' ')[0], Math.floor(l[i].split(' ')[1])); - - medAddNew('', 0); - medSetSubmit(); -} - -function medSetSubmit() { - var o=x('media'); - while(o.nodeName.toLowerCase() != 'form') - o = o.parentNode; - oldfunc = o.onsubmit; - o.onsubmit = function() { - var l = x('media_div').getElementsByTagName('span'); - for(var i=0;i'+i+''; - r += ''; - if(med != '') - r += ''; - o.innerHTML = r; - x('media_div').appendChild(o); -} - -function medDel(what) { - what = what.nodeName ? what : this; - while(what.nodeName.toLowerCase() != 'span') - what = what.parentNode; - x('media_div').removeChild(what); - medSerialize(); - return false; -} - -function medCheckNew() { - // check for non-new items and add remove buttons - var l = x('media_div').getElementsByTagName('span'); - var createnew=1; - for(var i=0;i1; i++) { var rel = rels[i].split(',', 3); vnrAdd(rel[0], rel[1], rel[2]); } @@ -795,6 +795,87 @@ if(byId('vnrelations')) +/* R E L E A S E M E D I A (/r+/edit) */ + +var medTypes = [ ]; +function medLoad() { + // load the medTypes and clear the div + var sel = byName(byId('media_div'), 'select')[0].options; + for(var i=0; i 1; i++) + medAdd(med[i].split(' ')[0], Math.floor(med[i].split(' ')[1])); + + medAdd('', 0); +} + +function medAdd(med, qty) { + var qsel = tag('select', {class:'qty', onchange:medSerialize}, tag('option', {value:0}, '- quantity -')); + for(var i=1; i<=20; i++) + qsel.appendChild(tag('option', {value:i, selected: qty==i}, i)); + + var msel = tag('select', {class:'medium', onchange: med == '' ? medFormAdd : medSerialize}); + if(med == '') + msel.appendChild(tag('option', {value:''}, '- medium -')); + for(var i=0; i