diff options
Diffstat (limited to 'static/f/forms.js')
-rw-r--r-- | static/f/forms.js | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/static/f/forms.js b/static/f/forms.js index 57513735..cf03ebc4 100644 --- a/static/f/forms.js +++ b/static/f/forms.js @@ -1,170 +1,6 @@ function qq(v) { return v.replace(/&/g,"&").replace(/</,"<").replace(/>/,">").replace(/"/g,'"'); } -function shorten(v, l) { - return qq(v.length > l ? v.substr(0, l-3)+'...' : v); -} - - - - - /*****************************\ - * V N R E L A T I O N S * - \*****************************/ - - -var relTypes = []; -function relLoad() { - var i;var l;var o; - - // fetch the relation types from the add new relation selectbox - l = x('relation_new').getElementsByTagName('select')[0].options; - for(i=0;i<l.length;i++) - relTypes[l[i].value] = l[i].text; - - // read the current relations - l = x('relations').value.split('|||'); - if(l[0]) { - for(i=0;i<l.length;i++) { - var rel = l[i].split(',', 3); - relAdd(rel[0], rel[1], rel[2]); - } - } - relEmpty(); - - // make sure the title is up-to-date - x('title').onchange = function() { - l = x('jt_box_vn_rel').getElementsByTagName('td'); - for(i=0;i<l.length;i++) - if(l[i].className == 'tc3') - l[i].innerHTML = shorten(this.value, 40); - }; - - // bind the add-link - x('relation_new').getElementsByTagName('a')[0].onclick = relFormAdd; - - // dropdown - dsInit(x('relation_new').getElementsByTagName('input')[0], '/xml/vn.xml?q=', function(item, tr) { - var td = document.createElement('td'); - td.innerHTML = 'v'+item.getAttribute('id'); - td.style.textAlign = 'right'; - td.style.paddingRight = '5px'; - tr.appendChild(td); - td = document.createElement('td'); - td.innerHTML = shorten(item.firstChild.nodeValue, 40); - tr.appendChild(td); - }, function(item) { - return 'v'+item.getAttribute('id')+':'+item.firstChild.nodeValue; - }, relFormAdd); -} - -function relAdd(rel, vid, title) { - var o = document.createElement('tr'); - o.setAttribute('id', 'relation_tr_'+vid); - - var t = document.createElement('td'); - t.className = 'tc1'; - t.innerHTML = 'v'+vid+':<a href="/v'+vid+'">'+shorten(title, 40)+'</a>'; - o.appendChild(t); - - var options = ''; - for(var i in relTypes) - options += '<option value="'+i+'"'+(i == rel ? ' selected="selected"' : '')+'>'+qq(relTypes[i])+'</option>'; - t = document.createElement('td'); - t.className = 'tc2'; - t.innerHTML = 'is a <select onchange="relSerialize()">'+options+'</select> of'; - o.appendChild(t); - - t = document.createElement('td'); - t.className = 'tc3'; - t.innerHTML = shorten(x('title').value, 40); - o.appendChild(t); - - t = document.createElement('td'); - t.className = 'tc4'; - t.innerHTML = '<a href="#" onclick="return relDel('+vid+')">del</a>'; - o.appendChild(t); - - x('relation_tbl').appendChild(o); - relEmpty(); -} - -function relEmpty() { - if(x('relation_tbl').getElementsByTagName('tr').length > 0) { - if(x('relation_tr_none')) - x('relation_tbl').removeChild(x('relation_tr_none')); - return; - } - var o = document.createElement('tr'); - o.setAttribute('id', 'relation_tr_none'); - var t = document.createElement('td'); - t.colspan = 4; - t.innerHTML = 'No relations selected.'; - o.appendChild(t); - x('relation_tbl').appendChild(o); -} - -function relSerialize() { - var r=''; - var i; - var l = x('relation_tbl').getElementsByTagName('tr'); - for(i=0;i<l.length;i++) { - var title = l[i].getElementsByTagName('td')[0]; - var rel = l[i].getElementsByTagName('select')[0]; - title = title.innerText || title.textContent; - title = title.substr(title.indexOf(':')+1); - r += (r ? '|||' : '') - +rel.options[rel.selectedIndex].value - +','+l[i].id.substr(12)+','+title; - } - x('relations').value = r; -} - -function relDel(vid) { - x('relation_tbl').removeChild(x('relation_tr_'+vid)); - relSerialize(); - relEmpty(); - return false; -} - -function relFormAdd() { - var txt = x('relation_new').getElementsByTagName('input')[0]; - var sel = x('relation_new').getElementsByTagName('select')[0]; - var lnk = x('relation_new').getElementsByTagName('a')[0]; - var input = txt.value; - - if(!input.match(/^v[0-9]+/)) { - alert('Visual novel textbox must start with an ID (e.g. v17)'); - return false; - } - - txt.disabled = true; - txt.value = 'loading...'; - sel.disabled = true; - lnk.innerHTML = 'loading...'; - - ajax('/xml/vn.xml?q='+encodeURIComponent(input), function(hr) { - txt.disabled = false; - txt.value = ''; - sel.disabled = false; - lnk.innerHTML = 'add'; - - var items = hr.responseXML.getElementsByTagName('item'); - if(items.length < 1) - return alert('Visual novel not found!'); - - var id = items[0].getAttribute('id'); - if(x('relation_tr_'+id)) - return alert('This visual novel has already been selected!'); - - relAdd(sel.selectedIndex, id, items[0].firstChild.nodeValue); - sel.selectedIndex = 0; - relSerialize(); - }); - return false; -} - - @@ -779,8 +615,6 @@ function tglSerialize() { // load -if(x('relations')) - relLoad(); if(x('jt_box_vn_scr')) scrLoad(); if(x('media')) |