diff options
-rw-r--r-- | data/style.css | 9 | ||||
-rw-r--r-- | lib/VNDB/Handler/Tags.pm | 8 | ||||
-rw-r--r-- | static/f/forms.js | 49 |
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+')"> </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+')"> </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; +} + + |