summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/style.css9
-rw-r--r--lib/VNDB/Handler/Tags.pm8
-rw-r--r--static/f/forms.js49
3 files changed, 37 insertions, 29 deletions
diff --git a/data/style.css b/data/style.css
index 03990fa1..cc008631 100644
--- a/data/style.css
+++ b/data/style.css
@@ -973,10 +973,11 @@ ul#catselect li li.exc { background-position: 0px -33px; color: $statnok$; }
/***** VN tagmod *****/
-#jt_box_tags .formtable table td { padding: 1px 3px }
-.taglvl { display: block; float: left; width: 8px; height: 12px; border: 1px solid $border$; font-size: 1px; }
-.taglvl0 { width: 15px; border: none!important; font-size: 11px; text-align: center; }
-a.taglvl:hover { border-bottom: 1px solid!important }
+#jt_box_tags .formtable table td { padding: 1px 5px }
+#tagtable tfoot { text-align: right }
+a.taglvl { display: block; float: left; width: 8px; height: 12px; border: 1px solid $border$; font-size: 1px; color: $maintext$!important }
+a.taglvl0 { width: 15px; border: none!important; font-size: 10px; text-align: center; }
+a.taglvl:hover { border-bottom: 1px solid transparent!important }
.taglvlsel.taglvl-3 { background-color: #f00; border-color: #f00 }
.taglvlsel.taglvl-2 { background-color: #f40; border-color: #f40 }
.taglvlsel.taglvl-1 { background-color: #f80; border-color: #f80 }
diff --git a/lib/VNDB/Handler/Tags.pm b/lib/VNDB/Handler/Tags.pm
index b981381a..2991ed9d 100644
--- a/lib/VNDB/Handler/Tags.pm
+++ b/lib/VNDB/Handler/Tags.pm
@@ -238,10 +238,10 @@ sub vntagmod {
[ static => nolabel => 1, content => sub {
table id => 'tagtable';
thead; Tr;
- td $_ for('Tag', 'Users', 'Rating', 'Spoiler', 'Your vote', 'Your spoiler');
+ td $_ for('Tag', 'Rating', 'Spoiler', 'Your vote', 'Your spoiler');
end; end;
tfoot; Tr;
- td colspan => 6;
+ td colspan => 5;
input type => 'text', class => 'text', name => 'addtag', value => '';
input type => 'button', class => 'submit', value => 'Add tag';
end;
@@ -253,8 +253,8 @@ sub vntagmod {
td;
a href => "/g$t->{id}", $t->{name};
end;
- td $t->{users} - ($m ? 1 : 0);
- td sprintf '%.2f', $m ? ($t->{rating}/$t->{users} - $m->{vote}) * ($t->{users}-1) : $t->{rating};
+ td sprintf '%.2f (%d)',
+ $m->{vote} ? ($t->{rating}/$t->{users} - $m->{vote}) * ($t->{users}-1) : $t->{rating}, $t->{users} - ($m->{vote} ? 1 : 0);
td $t->{spoiler};
td $m->{vote}||0;
td $m->{spoiler}||'-';
diff --git a/static/f/forms.js b/static/f/forms.js
index 25d3f9f9..389da140 100644
--- a/static/f/forms.js
+++ b/static/f/forms.js
@@ -885,22 +885,19 @@ function tglLoad() {
tglStripe();
var l = x('tagtable').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
for(var i=0; i<l.length;i++) {
- var o = l[i].getElementsByTagName('td')[4];
+ var o = l[i].getElementsByTagName('td')[3];
tglVoteBar(o, o.innerHTML);
}
}
function tglVoteBar(obj, vote) {
var r = '';
- for(i=-3;i<=3;i++) {
- if(i)
- r += '<a href="#" class="taglvl taglvl'+i+'" onmouseover="tglVoteBarSel(this, '+i+')"'
- + ' onmouseout="tglVoteBarSel(this, '+vote+')" onclick="return tglVoteBar(this.parentNode, '+i+')">&nbsp;</a>';
- else
- r += '<div class="taglvl taglvl0">'+(vote?vote:'-')+'</div>';
- }
+ for(i=-3;i<=3;i++)
+ r += '<a href="#" class="taglvl taglvl'+i+'" onmouseover="tglVoteBarSel(this, '+i+')"'
+ + ' onmouseout="tglVoteBarSel(this, '+vote+')" onclick="return tglVoteBar(this.parentNode, '+i+')">&nbsp;</a>';
obj.innerHTML = r;
tglVoteBarSel(obj, vote);
+ tglSerialize();
return false;
}
@@ -908,20 +905,19 @@ function tglVoteBarSel(obj, vote) {
if(obj.className.indexOf('taglvl') >= 0)
obj = obj.parentNode;
var l = obj.getElementsByTagName('a');
+ var num;
for(var i=0; i<l.length; i++) {
- var num = l[i].className.replace(/^.*taglvl(-?[1-3]).*$/, "$1");
- if(!num || num == l[i].className) continue;
- if(num<0&&vote<=num || num>0&&vote>=num) {
+ if((num = l[i].className.replace(/^.*taglvl(-?[0-3]).*$/, "$1")) == l[i].className)
+ continue;
+ if(num == 0)
+ l[i].innerHTML = vote == 0 ? '-' : vote;
+ else if(num<0&&vote<=num || num>0&&vote>=num) {
if(l[i].className.indexOf('taglvlsel') < 0)
l[i].className += ' taglvlsel';
} else
if(l[i].className.indexOf('taglvlsel') >= 0)
l[i].className = l[i].className.replace(/taglvlsel/, '');
}
- l = obj.getElementsByTagName('div');
- for(var i=0; i<l.length; i++)
- if(l[i].className.indexOf('taglvl0') >= 0)
- l[i].innerHTML = vote;
}
function tglAdd() {
@@ -948,19 +944,16 @@ function tglAdd() {
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';
+ td.innerHTML = '0.00 (0)';
tr.appendChild(td);
td = document.createElement('td');
td.innerHTML = '0';
tr.appendChild(td);
td = document.createElement('td');
- tglVoteBar(td, 1);
+ tglVoteBar(td, 2);
tr.appendChild(td);
td = document.createElement('td');
- td.innerHTML = '-TODO-';
+ td.innerHTML = '-';
tr.appendChild(td);
x('tagtable').getElementsByTagName('tbody')[0].appendChild(tr);
tglStripe();
@@ -973,3 +966,17 @@ function tglStripe() {
l[i].className = i%2 ? 'odd' : '';
}
+function tglSerialize() {
+ var r = '';
+ var l = x('tagtable').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
+ for(var i=0; i<l.length;i++) {
+ var lnk = l[i].getElementsByTagName('a')[0].href;
+ var vt = l[i].getElementsByTagName('td')[3].getElementsByTagName('a');
+ var id;
+ if((id = lnk.replace(/^.*g([1-9][0-9]*)$/, "$1")) != lnk && vt.length > 3 && vt[3].innerHTML != '-')
+ r += (r?' ':'')+id+','+vt[3].innerHTML;
+ }
+ x('taglinks').value = r;
+}
+
+