summaryrefslogtreecommitdiff
path: root/static
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2009-02-22 21:38:39 +0100
committerYorhel <git@yorhel.nl>2009-02-22 21:38:39 +0100
commitfe3f588b873346789de148dda832fa19e8f10d07 (patch)
treea7dafc781abbc99118de697dfe2368d7a2adfa36 /static
parente0390c46122dd2d4d14b7b7f2eeee27b679c133e (diff)
vntagmod: Adding tags using dropdown search
The usual: it's still pretty much useless and unfinished, will polish up things later.
Diffstat (limited to 'static')
-rw-r--r--static/f/forms.js71
-rw-r--r--static/f/script.js2
2 files changed, 73 insertions, 0 deletions
diff --git a/static/f/forms.js b/static/f/forms.js
index 3a09dc88..1ebd9e92 100644
--- a/static/f/forms.js
+++ b/static/f/forms.js
@@ -860,3 +860,74 @@ function vnpSerialize(type) {
}
+
+
+
+
+ /****************************************************\
+ * V I S U A L N O V E L T A G L I N K I N G *
+ \****************************************************/
+
+
+function tglLoad() {
+ var n = x('tagtable').getElementsByTagName('tfoot')[0].getElementsByTagName('input');
+ dsInit(n[0], '/xml/tags.xml?q=', function(item, tr) {
+ var td = document.createElement('td');
+ td.innerHTML = shorten(item.firstChild.nodeValue, 40);
+ if(item.getAttribute('meta') == 'yes')
+ td.innerHTML = '<b class="grayedout">'+td.innerHTML+'</b> (meta)';
+ tr.appendChild(td);
+ }, function(item) {
+ return item.firstChild.nodeValue;
+ }, tglAdd);
+ n[1].onclick = tglAdd;
+ tglStripe();
+}
+
+function tglAdd() {
+ var n = x('tagtable').getElementsByTagName('tfoot')[0].getElementsByTagName('input');
+ n[0].disabled = n[1].disabled = true;
+ n[1].value = 'loading...';
+ ajax('/xml/tags.xml?q=name:'+encodeURIComponent(n[0].value), function(hr) {
+ n[0].disabled = n[1].disabled = false;
+ n[1].value = 'Add tag';
+
+ var items = hr.responseXML.getElementsByTagName('item');
+ if(items.length < 1)
+ return alert('Item not found!');
+ if(items[0].getAttribute('meta') == 'yes')
+ return alert('Can\'t use meta tags here!');
+ var name = items[0].firstChild.nodeValue;
+ var l = x('tagtable').getElementsByTagName('a');
+ for(var i=0; i<l.length; i++)
+ if(l[i].innerHTML == shorten(name, 40))
+ return alert('Tag is already present!');
+
+ var tr = document.createElement('tr');
+ var td = document.createElement('td');
+ td.innerHTML = '<a href="/g'+items[0].getAttribute('id')+'">'+name+'</a>';
+ tr.appendChild(td);
+ td = document.createElement('td');
+ td.innerHTML = '1';
+ tr.appendChild(td);
+ td = document.createElement('td');
+ td.innerHTML = '2.00';
+ tr.appendChild(td);
+ td = document.createElement('td');
+ td.innerHTML = '0';
+ tr.appendChild(td);
+ td = document.createElement('td');
+ td.setAttribute('colspan', 2);
+ td.innerHTML = '-TODO-';
+ tr.appendChild(td);
+ x('tagtable').getElementsByTagName('tbody')[0].appendChild(tr);
+ tglStripe();
+ });
+}
+
+function tglStripe() {
+ var l = x('tagtable').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
+ for(var i=0;i<l.length;i++)
+ l[i].className = i%2 ? 'odd' : '';
+}
+
diff --git a/static/f/script.js b/static/f/script.js
index 069b5e5d..25dbeca4 100644
--- a/static/f/script.js
+++ b/static/f/script.js
@@ -500,6 +500,8 @@ DOMLoad(function() {
vnpLoad('vn');
if(x('jt_box_producers'))
vnpLoad('producers');
+ if(x('taglinks'))
+ tglLoad();
// spam protection on all forms
if(document.forms.length >= 1)