summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--static/f/forms.js109
-rw-r--r--static/f/script.js83
2 files changed, 82 insertions, 110 deletions
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<l.length;i++)
- medTypes[medTypes.length] = [ l[i].value, l[i].text, l[i].className.indexOf('noqty') ? false : true ];
- x('media_div').innerHTML = '';
-
- // load the selected media
- l = x('media').value.split(',');
- for(var i=0;i<l.length;i++)
- if(l[i].length > 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<l.length-1;i++) {
- var s = l[i].getElementsByTagName('select');
- if(!medTypes[s[1].selectedIndex][2] && s[0].selectedIndex == 0) {
- alert('Media '+medTypes[s[1].selectedIndex][1]+' requires a quantity to be specified!');
- return false;
- }
- }
- return oldfunc ? oldfunc() : true;
- };
-}
-
-function medAddNew(med, qty) {
- var o = document.createElement('span');
- var r = '<select class="qty" onchange="medSerialize()"><option value="0">- quantity -</option>';
- for(var i=1;i<=20;i++)
- r += '<option value="'+i+'"'+(qty == i ? ' selected="selected"' : '')+'>'+i+'</option>';
- r += '</select><select class="medium" onchange="return medCheckNew(this)">';
- for(i=0;i<medTypes.length;i++)
- r += '<option value="'+medTypes[i][0]+'"'+(med == medTypes[i][0] ? ' selected="selected"' : '')+'>'+medTypes[i][1]+'</option>';
- r += '</select>';
- if(med != '')
- r += '<input type="button" class="submit" onclick="return medDel(this)" value="remove" />';
- 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;i<l.length;i++) {
- var sel = l[i].getElementsByTagName('select')[1].selectedIndex;
- if(sel == 0)
- createnew = 0;
- else if(l[i].getElementsByTagName('input').length < 1) {
- var a = document.createElement('input');
- a.type = 'button';
- a.className = 'submit';
- a.onclick = medDel;
- a.value = 'remove';
- l[i].appendChild(a);
- }
- }
- if(createnew)
- medAddNew('', 0);
- medSerialize();
-
- return true;
-}
-
-function medSerialize() {
- var r = '';
- var l = x('media_div').getElementsByTagName('span');
- for(var i=0;i<l.length;i++) {
- var sel = l[i].getElementsByTagName('select');
- if(sel[1].selectedIndex != 0)
- r += (r ? ',' : '') + medTypes[sel[1].selectedIndex][0] + ' ' + (medTypes[sel[1].selectedIndex][2] ? 0 : sel[0].selectedIndex);
- }
- x('media').value = r;
-}
-
-
-
-
-
-
/****************************************************\
* V I S U A L N O V E L S / P R O D U C E R S *
\****************************************************/
@@ -617,8 +510,6 @@ function tglSerialize() {
if(x('jt_box_vn_scr'))
scrLoad();
-if(x('media'))
- medLoad();
if(x('jt_box_rel_vn'))
vnpLoad('vn');
if(x('jt_box_rel_prod'))
diff --git a/static/f/script.js b/static/f/script.js
index 47bce2c1..31225a6c 100644
--- a/static/f/script.js
+++ b/static/f/script.js
@@ -680,7 +680,7 @@ function dsResults(hr, obj) {
function vnrLoad() {
// read the current relations
var rels = byId('vnrelations').value.split('|||');
- for(var i=0; i<rels.length; i++) {
+ for(var i=0; i<rels.length && rels[0].length>1; 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<sel.length; i++)
+ medTypes[medTypes.length] = [ sel[i].value, getText(sel[i]), !hasClass(sel[i], 'noqty') ];
+ setText(byId('media_div'), '');
+
+ // load the selected media
+ var med = byId('media').value.split(',');
+ for(var i=0; i<med.length && med[i].length > 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<medTypes.length; i++)
+ msel.appendChild(tag('option', {value:medTypes[i][0], selected: med==medTypes[i][0]}, medTypes[i][1]));
+
+ byId('media_div').appendChild(tag('span', qsel, msel,
+ med != '' ? tag('input', {type: 'button', class:'submit', onclick:medDel, value:'remove'}) : null
+ ));
+}
+
+function medDel() {
+ var span = this;
+ while(span.nodeName.toLowerCase() != 'span')
+ span = span.parentNode;
+ byId('media_div').removeChild(span);
+ medSerialize();
+ return false;
+}
+
+function medFormAdd() {
+ var span = this;
+ while(span.nodeName.toLowerCase() != 'span')
+ span = span.parentNode;
+ var med = byClass(span, 'select', 'medium')[0];
+ var qty = byClass(span, 'select', 'qty')[0];
+ if(!med.selectedIndex)
+ return;
+ medAdd(med.options[med.selectedIndex].value, qty.options[qty.selectedIndex].value);
+ byId('media_div').removeChild(span);
+ medAdd('', 0);
+ medSerialize();
+}
+
+function medSerialize() {
+ var r = [];
+ var meds = byName(byId('media_div'), 'span');
+ for(var i=0; i<meds.length-1; i++) {
+ var med = byClass(meds[i], 'select', 'medium')[0];
+ var qty = byClass(meds[i], 'select', 'qty')[0];
+
+ /* correct quantity if necessary */
+ if(medTypes[med.selectedIndex][2] && !qty.selectedIndex)
+ qty.selectedIndex = 1;
+ if(!medTypes[med.selectedIndex][2] && qty.selectedIndex)
+ qty.selectedIndex = 0;
+
+ r[r.length] = medTypes[med.selectedIndex][0] + ' ' + qty.selectedIndex;
+ }
+ byId('media').value = r.join(',');
+}
+
+if(byId('jt_box_rel_format'))
+ medLoad();
+
+
+
+
/* M I S C S T U F F */
// search box