diff options
Diffstat (limited to 'data')
-rw-r--r-- | data/docs/7 | 3 | ||||
-rw-r--r-- | data/global.pl | 4 | ||||
-rw-r--r-- | data/lang.txt | 377 | ||||
-rw-r--r-- | data/script.js | 173 | ||||
-rw-r--r-- | data/style.css | 4 |
5 files changed, 406 insertions, 155 deletions
diff --git a/data/docs/7 b/data/docs/7 index 7a8e2d83..058075fd 100644 --- a/data/docs/7 +++ b/data/docs/7 @@ -50,7 +50,8 @@ <b>Code development</b><br /> <dl> <dt>Yorhel</dt><dd>Main developer.</dd> - <dt>3dB</dt><dd>Wrote the current user authentication code and implemented post throttling on the discussion board.</dd> + <dt>QCyph</dt><dd>Contributed the character filters.</dd> + <dt>3dB</dt><dd>Contributed the current user authentication code and post throttling on the discussion board.</dd> </dl> <br /> diff --git a/data/global.pl b/data/global.pl index 31d45631..fd9c3e31 100644 --- a/data/global.pl +++ b/data/global.pl @@ -31,8 +31,8 @@ our %S = (%S, scr_size => [ 136, 102 ], # w*h of screenshot thumbnails ch_size => [ 256, 300 ], # max. w*h of char images cv_size => [ 256, 400 ], # max. w*h of cover images - # bit flags - permissions => {qw| board 1 boardmod 2 edit 4 charedit 8 tag 16 dbmod 32 tagmod 64 usermod 128 affiliate 256 |}, + # bit flags (TODO: completely merge charedit into edit) + permissions => {qw| board 1 boardmod 2 edit 4 charedit 4 tag 16 dbmod 32 tagmod 64 usermod 128 affiliate 256 |}, languages => [qw|cs da de en es fi fr hu it ja ko nl no pl pt-br pt-pt ru sk sv tr vi zh|], producer_types => [qw|co in ng|], discussion_boards => [qw|an db ge v p u|], # <- note that some properties of these boards are hard-coded diff --git a/data/lang.txt b/data/lang.txt index 03c7b132..a453fc48 100644 --- a/data/lang.txt +++ b/data/lang.txt @@ -1641,6 +1641,22 @@ hu : Beküldés nl : Verstuur de : Bestätigen +:_form_continue +en : Continue +ru*: +cs*: +hu*: +nl : Verder +de*: + +:_form_continue_ign +en : Continue and ignore duplicates +ru*: +cs*: +hu*: +nl : Ga verder en negeer dubbele items +de*: + :_form_ihid en : Deleted ru : Удалено @@ -1724,6 +1740,22 @@ hu : -nap- nl : -dag- de : -Tag- +:_js_remove +en : remove +ru : убрать +cs : odstranit +hu : eltávolítás +nl : verwijder +de : entfernen + +:_js_add +en : add +ru : добавить +cs : přidat +hu : bejegyez +nl : toevoegen +de : hinzufügen + :_js_ds_noresults en : No results... ru : Совпадений не найдено... @@ -1772,6 +1804,30 @@ hu : Itt nem használhatsz meta címkéket! nl : Meta tags kunnen hier niet gebruikt worden! de : Meta-Tags können hier nicht genutzt werden! +:_js_ds_trait_meta +en : meta +ru*: +cs*: +hu*: +nl : +de*: + +:_js_ds_trait_mod +en : awaiting moderation +ru*: +cs*: +hu*: +nl : ongemodereerd +de*: + +:_js_ds_trait_nometa +en : Can't use meta traits here! +ru*: +cs*: +hu*: +nl : Meta kenmerken kunnen hier niet gebruikt worden! +de*: + # Filter selector @@ -2354,15 +2410,6 @@ hu : szerkesztés nl : wijzig de : bearbeiten -# delete -:_mtabs_del -en : del -ru : удалить -cs : smazat -hu : törlés -nl : verwijder -de : löschen - # VN relations :_mtabs_relations en : relations @@ -3494,22 +3541,6 @@ hu : Készítő bejegyzése nl : Nieuwe producent toevoegen de : Hersteller hinzufügen -:_pedit_rel_addbut -en : add -ru : добавить -cs : přidat -hu : hozzáad -nl : toevoegen -de : hinzufügen - -:_pedit_rel_del -en : remove -ru : убрать -cs : odebrat -hu : eltávolít -nl : verwijderen -de : entfernen - :_pedit_rel_none en : Nothing selected. ru : Ничего не выбрано. @@ -4256,14 +4287,6 @@ hu : -medium- nl : de : -Medium- -:_redit_form_med_remove -en : remove -ru : убрать -cs : odebrat -hu : eltávolítás -nl : verwijder -de : entfernen - :_redit_form_prod en : Producers ru : Компании @@ -4312,22 +4335,6 @@ hu : Mindkettő nl : Beide de : Beides -:_redit_form_prod_addbut -en : add -ru : добавить -cs : přidat -hu : bejegyez -nl : voeg toe -de : hinzufügen - -:_redit_form_prod_remove -en : remove -ru : убрать -cs : odebrat -hu : eltávolít -nl : verwijder -de : entfernen - :_redit_form_prod_none en : Nothing selected. ru : Ничего не выбрано. @@ -4384,22 +4391,6 @@ hu : Visual novel bejegyzése nl : Nieuwe visual novel de : Visual Novel hinzufügen -:_redit_form_vn_addbut -en : add -ru : добавить -cs : přidat -hu : bejegyez -nl : voeg toe -de : hinzufügen - -:_redit_form_vn_remove -en : remove -ru : убрать -cs : odebrat -hu : eltávolít -nl : verwijder -de : entfernen - :_redit_form_vn_none en : Nothing selected. ru : Ничего не выбрано. @@ -5268,14 +5259,6 @@ hu : Aktív szűrők: nl : Actieve filters: de : Aktive Filter: -:_taglink_fil_remove -en : remove -ru : убрать -cs : odstranit -hu : eltávolít -nl : verwijder -de : entfernen - :_taglink_fil_user en : User: ru : Пользователь: @@ -6171,14 +6154,6 @@ hu : Sajátosság hozzáadása nl : Voeg kenmerk toe de : Füge Eigenschaft hinzu -:_chare_traits_del -en : del -ru*: -cs*: -hu : töröl -nl : -de : entfernen - :_chare_traits_present en : Selected trait is already present. ru*: @@ -6251,14 +6226,6 @@ hu : Mind / mások nl : Alle / overige de : Alle / andere -:_chare_vns_del -en : remove -ru*: -cs : odstranit -hu : eltávolít -nl : verwijder -de : entfernen - :_chare_vns_allrel en : All releases already selected. ru*: @@ -6310,8 +6277,181 @@ hu : A kritériumaid alapján nem található szereplő. nl : Geen karakters gevonden die aan je kriteria voldoen. de : Keine Charaktere, die deinen Kriterien entsprechen, gefunden. +:_charb_fil_title +en : Character filters +ru*: +cs*: +hu*: +nl : Karakterfilters +de*: + +:_charb_general +en : General +ru*: +cs*: +hu*: +nl : Algemeen +de*: + +:_charb_gender +en : Gender +ru*: +cs*: +hu*: +nl : Geslacht +de*: + +:_charb_bust_min +en : Bust min +ru*: +cs*: +hu*: +nl : Borst min +de*: + +:_charb_bust_max +en : Bust max +ru*: +cs*: +hu*: +nl : Borst max +de*: + +:_charb_waist_min +en : Waist min +ru*: +cs*: +hu*: +nl : Taille min +de*: + +:_charb_waist_max +en : Waist max +ru*: +cs*: +hu*: +nl : Taille max +de*: + +:_charb_hip_min +en : Hips min +ru*: +cs*: +hu*: +nl : Heupen min +de*: + +:_charb_hip_max +en : Hips max +ru*: +cs*: +hu*: +nl : Heupen max +de*: + +:_charb_height_min +en : Height min +ru*: +cs*: +hu*: +nl : Lengte min +de*: + +:_charb_height_max +en : Height max +ru*: +cs*: +hu*: +nl : Lengte max +de*: + +:_charb_weight_min +en : Weight min +ru*: +cs*: +hu*: +nl : Gewicht min +de*: + +:_charb_weight_max +en : Weight max +ru*: +cs*: +hu*: +nl : Gewicht max +de*: + +:_charb_bloodt +en : Blood type +ru*: +cs*: +hu*: +nl : Bloedgroep +de*: + +:_charb_traits +en : Traits +ru*: +cs*: +hu*: +nl : Kenmerken +de*: + +:_charb_traitinc +en : Traits to include +ru*: +cs*: +hu*: +nl : Kenmerken meenemen +de*: + +:_charb_traitexc +en : Traits to exclude +ru*: +cs*: +hu*: +nl : Kenmerken uitsluiten +de*: +:_charb_traitnothere +en : Additional trait filters are not available on this page. Use the character browser instead (available from the main menu -> characters). +ru*: +cs*: +hu*: +nl : Extra kenmerkfilters zijn niet aanwezig op deze pagina. Gebruik de karakterbrowser voor deze functionaliteit (beschikbaar via het hoofdmenu -> karakters). +de*: +:_charb_spoil0 +en : Hide spoilers +ru*: +cs*: +hu*: +nl : Verberg spoilers +de*: + +:_charb_spoil1 +en : Show minor spoilers +ru*: +cs*: +hu*: +nl : Toon geringe spoilers +de*: + +:_charb_spoil2 +en : Show major spoilers +ru*: +cs*: +hu*: +nl : Toon alle spoilers +de*: + +:_charb_roles +en : Roles +ru*: +cs*: +hu*: +nl : Rol +de*: @@ -8112,14 +8252,6 @@ hu : Ezzek a szűrők figyelmen kívűl maradnak a címke oldalakon (ha alapért nl : Deze filters worden genegeerd op tagpaginas (als ze gebruikt worden als standaardfilters). de : Diese Filter werden auf Tag-Seiten ignoriert (wenn als Standard eingestellt). -:_vnbrowse_tagrem -en : remove -ru : убрать -cs : odstranit -hu : eltávolítás -nl : verwijder -de : entfernen - :_vnbrowse_taginc en : Tags to include ru : Включить теги @@ -8299,6 +8431,33 @@ hu : Új visual novel bejegyzése nl : Voeg nieuwe visual novel toe de : Neue Visual Novel hinzufügen +:_vnedit_dup_title +en : Possible duplicates found +ru*: +cs*: +hu*: +nl : Mogelijke dubbele items gevonden +de*: + +:_vnedit_dup_msg +en : The following is a list of visual novels that match the title(s) you gave. + Please check this list to avoid creating a duplicate visual novel entry. + Be especially wary of items that have been deleted! To see why an entry + has been deleted, click on its title.[br] + [br] + To add the visual novel either way, hit the "Continue and ignore + duplicates" button below. +ru*: +cs*: +hu*: +nl : De onderstaande lijst bevat visual novels met een vergelijkbare titel. + Controleer deze lijst a.u.b. om te voorkomen dat je een visual novel dubbel toevoegt. + Wees helemaal op de hoede van items die verwijderd zijn! Om te zien waarom + iets verwijderd is, klik op de titel.[br] + [br] + Klik op de "Ga verder en negeer dubbele items" knop om alsnog verder te gaan. +de*: + :_vnedit_geninfo en : General info ru : Основная информация @@ -8577,22 +8736,6 @@ hu : - nl : van de : von -:_vnedit_rel_addbut -en : add -ru : добавить -cs : přidat -hu : bejegyez -nl : toevoegen -de : hinzufügen - -:_vnedit_rel_del -en : del -ru : убрать -cs : smazat -hu : töröl -nl : verwijder -de : entfernen - :_vnedit_rel_none en : No relations selected. ru : Отношений не выбрано. @@ -8789,14 +8932,6 @@ hu : #[_1]-dik pillanatkép nl : de : Screenshot #[_1] -:_vnedit_scr_remove -en : remove -ru : убрать -cs : odebrat -hu : eltávolítás -nl : verwijder -de : entfernen - :_vnedit_scr_fullsize en : Full size: [_1] ru : Полный размер: [_1] diff --git a/data/script.js b/data/script.js index e85bce3d..4065def4 100644 --- a/data/script.js +++ b/data/script.js @@ -819,7 +819,7 @@ function vnrAdd(rel, vid, official, title) { tag('label', {'for':'official_'+vid}, mt('_vnedit_rel_official')), sel, ' '+mt('_vnedit_rel_of')), tag('td', {'class':'tc_title'}, shorten(byId('title').value, 40)), - tag('td', {'class':'tc_add' }, tag('a', {href:'#', onclick:vnrDel}, mt('_vnedit_rel_del'))) + tag('td', {'class':'tc_add' }, tag('a', {href:'#', onclick:vnrDel}, mt('_js_remove'))) )); vnrEmpty(); @@ -880,7 +880,7 @@ function vnrFormAdd() { ajax('/xml/vn.xml?q='+encodeURIComponent(input), function(hr) { txt.disabled = sel.disabled = off.disabled = false; txt.value = ''; - setText(lnk, mt('_vnedit_rel_addbut')); + setText(lnk, mt('_js_add')); var items = hr.responseXML.getElementsByTagName('item'); if(items.length < 1) @@ -933,7 +933,7 @@ function medAdd(med, qty) { 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:mt('_redit_form_med_remove')}) : null + med != '' ? tag('input', {type: 'button', 'class':'submit', onclick:medDel, value:mt('_js_remove')}) : null )); } @@ -1148,7 +1148,7 @@ function scrCheckStatus() { var nsfwid = 'scr_sfw_'+tr.scr_id; setContent(byName(tr, 'td')[1], tag('b', mt('_vnedit_scr_id', tr.scr_id)), - ' (', tag('a', {href: '#', onclick:scrDel}, mt('_vnedit_scr_remove')), ')', + ' (', tag('a', {href: '#', onclick:scrDel}, mt('_js_remove')), ')', tag('br', null), mt('_vnedit_scr_fullsize', dim), odd ? tag('b', {'class':'standout', 'style':'font-weight: bold'}, ' '+mt('_vnedit_scr_nonstandard')) : null, @@ -1454,7 +1454,7 @@ function rvnLoad() { function rvnAdd(id, title) { byId('vn_tbl').appendChild(tag('tr', {id:'rvn_'+id, rvn_id:id}, tag('td', {'class':'tc_title'}, 'v'+id+':', tag('a', {href:'/v'+id}, shorten(title, 40))), - tag('td', {'class':'tc_rm'}, tag('a', {href:'#', onclick:rvnDel}, mt('_redit_form_vn_remove'))) + tag('td', {'class':'tc_rm'}, tag('a', {href:'#', onclick:rvnDel}, mt('_js_remove'))) )); rvnStripe(); rvnEmpty(); @@ -1502,7 +1502,7 @@ function rvnFormAdd() { ajax('/xml/vn.xml?q='+encodeURIComponent(val), function(hr) { txt.disabled = false; txt.value = ''; - setText(lnk, mt('_redit_form_vn_addbut')); + setText(lnk, mt('_js_add')); var items = hr.responseXML.getElementsByTagName('item'); if(items.length < 1) @@ -1564,7 +1564,7 @@ function rprAdd(id, role, name) { byId('producer_tbl').appendChild(tag('tr', {id:'rpr_'+id, rpr_id:id}, tag('td', {'class':'tc_name'}, 'p'+id+':', tag('a', {href:'/p'+id}, shorten(name, 40))), tag('td', {'class':'tc_role'}, rl), - tag('td', {'class':'tc_rm'}, tag('a', {href:'#', onclick:rprDel}, mt('_redit_form_prod_remove'))) + tag('td', {'class':'tc_rm'}, tag('a', {href:'#', onclick:rprDel}, mt('_js_remove'))) )); rprEmpty(); } @@ -1604,7 +1604,7 @@ function rprFormAdd() { ajax('/xml/producers.xml?q='+encodeURIComponent(val), function(hr) { txt.disabled = false; txt.value = ''; - setText(lnk, mt('_redit_form_prod_addbut')); + setText(lnk, mt('_js_add')); var items = hr.responseXML.getElementsByTagName('item'); if(items.length < 1) @@ -1676,7 +1676,7 @@ function prrAdd(rel, pid, title) { byId('relation_tbl').appendChild(tag('tr', {id:'relation_tr_'+pid}, tag('td', {'class':'tc_prod' }, 'p'+pid+':', tag('a', {href:'/p'+pid}, shorten(title, 40))), tag('td', {'class':'tc_rel' }, sel), - tag('td', {'class':'tc_add' }, tag('a', {href:'#', onclick:prrDel}, mt('_pedit_rel_del'))) + tag('td', {'class':'tc_add' }, tag('a', {href:'#', onclick:prrDel}, mt('_js_remove'))) )); prrEmpty(); @@ -1735,7 +1735,7 @@ function prrFormAdd() { ajax('/xml/producers.xml?q='+encodeURIComponent(input), function(hr) { txt.disabled = sel.disabled = false; txt.value = ''; - setText(lnk, mt('_pedit_rel_addbut')); + setText(lnk, mt('_js_add')); var items = hr.responseXML.getElementsByTagName('item'); if(items.length < 1) @@ -1818,7 +1818,7 @@ function ctrAdd(item, spoil) { tag('b', {'class':'grayedout'}, group?group+' / ':''), tag('a', {'href':'/i'+id}, name)), sp, - tag('td', {'class':'tc_del'}, tag('a', {href:'#', onclick:ctrDel}, mt('_chare_traits_del'))) + tag('td', {'class':'tc_del'}, tag('a', {href:'#', onclick:ctrDel}, mt('_js_remove'))) )); ctrEmpty(); ctrSerialize(); @@ -1988,7 +1988,7 @@ function cvnRelAdd(vid, rid, role, spoil) { tag('td', {'class':'tc_rel'}, rsel), tag('td', {'class':'tc_rol'}, lsel), tag('td', {'class':'tc_spl'}, ssel), - tag('td', {'class':'tc_del'}, tag('a', {href:'#', onclick:cvnRelDel}, mt('_chare_vns_del'))) + tag('td', {'class':'tc_del'}, tag('a', {href:'#', onclick:cvnRelDel}, mt('_js_remove'))) ), last); } @@ -2124,7 +2124,9 @@ if(byId('jt_box_chare_vns')) var fil_cats; // [ <object with field->tr mapping>, <category-link1>, .. ] var fil_escape = "_ !\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~".split(''); function filLoad() { - var l = byId('filselect').href.match(/#r$/) ? filReleases() : filVN(); + var l = byId('filselect').href.match(/#r$/) ? filReleases() + : byId('filselect').href.match(/#c$/) ? filChars() + : filVN(); fil_cats = [ new Object ]; var p = tag('p', {'class':'browseopts'}); @@ -2179,7 +2181,8 @@ function filLoad() { f.submit(); }}), tag('input', {type:'button', 'class':'submit', value: mt('_js_fil_reset'), onclick:function () { byId('fil').value = ''; filDeSerialize()} }), - PREF_CODE != '' ? tag('input', {type:'button', 'class':'submit', value: mt('_js_fil_save'), onclick:filSaveDefault }) : null, + typeof PREFS != 'undefined' && ('filter_vn' in PREFS | 'filter_release' in PREFS) && PREF_CODE != '' ? + tag('input', {type:'button', 'class':'submit', value: mt('_js_fil_save'), onclick:filSaveDefault }) : null, tag('p', {id:'fil_savenote', 'class':'hidden'}, '') )); filSelectCat(1); @@ -2265,7 +2268,7 @@ function filSerialize() { if(r.length > 0 && r[0] != '') values[fil_cats[0][f].fil_code] = r.join('~'); } - if(!values['tag_inc']) + if(!values['tag_inc'] && !values['trait_inc']) delete values['tagspoil']; var l = []; for(var f in values) @@ -2323,6 +2326,63 @@ function filShow() { return false; } +var curSlider = null; +function filFSlider(c, n, min, max, def, unit) { + var bw = 200; var pw = 1; // slidebar width and pointer width + var s = tag('p', {fil_val:def, 'class':'slider'}); + var b = tag('div', {style:'width:'+(bw-2)+'px;', s:s}); + var p = tag('div', {style:'width:'+pw+'px;', s:s}); + var v = tag('span', def+' '+unit); + s.appendChild(b); + b.appendChild(p); + s.appendChild(v); + + var set = function (e, v) { + var w = bw-pw-6; + var s,x; + + if(v) { + s = e; + x = v[0] == '' ? def : parseInt(v[0]); + x = (x-min)*w/(max-min); + } else { + s = curSlider; + if(!e) e = window.event; + x = (!e) ? (def-min)*w/(max-min) + : (e.pageX || e.clientX + document.body.scrollLeft - document.body.clientLeft)-5; + var o = s.childNodes[0]; + while(o.offsetParent) { + x -= o.offsetLeft; + o = o.offsetParent; + } + } + + if(x<0) x = 0; if(x>w) x = w; + s.fil_val = min + Math.floor(x*(max-min)/w); + s.childNodes[1].innerHTML = s.fil_val+' '+unit; + s.childNodes[0].childNodes[0].style.left = x+'px'; + return false; + } + + b.onmousedown = p.onmousedown = function (e) { + curSlider = this.s; + if(!curSlider.oldmousemove) curSlider.oldmousemove = document.onmousemove; + if(!curSlider.oldmouseup) curSlider.oldmouseup = document.onmouseup; + document.onmouseup = function () { + document.onmousemove = curSlider.oldmousemove; + curSlider.oldmousemove = null; + document.onmouseup = curSlider.oldmouseup; + curSlider.oldmouseup = null; + filSelectField(curSlider); + return false; + } + document.onmousemove = set; + return set(e); + } + + return [c, n, s, function (c) { return [ c.fil_val ]; }, set ]; +} + function filFSelect(c, n, lines, opts) { var s = tag('select', {onfocus: filSelectField, onchange: filSerialize, multiple: lines > 1, size: lines}); for(var i=0; i<opts.length; i++) { @@ -2379,14 +2439,18 @@ function filFOptions(c, n, opts, setfunc) { ]; } -function filFTagInput(name, label) { +function filFTagInput(name, label, type) { + var src = type=='tag' ? '/xml/tags.xml' : '/xml/traits.xml'; + var visible = false; var remove = function() { ; }; - var addtag = function(ul, id, name) { - ul.appendChild(tag('li', { fil_id: id }, - tag('a', {href:'/g'+id}, name||'g'+id), + var addtag = function(ul, id, name, group) { + ul.appendChild( + tag('li', { fil_id: id }, + type=='trait' && group ? tag('b', {'class':'grayedout'}, group+' / ') : null, + type=='tag' ? tag('a', {href:'/g'+id}, name||'g'+id) : tag('a', {href:'/i'+id}, name||'i'+id), ' (', tag('a', {href:'#', onclick:function () { // a -> li -> ul -> div @@ -2395,7 +2459,7 @@ function filFTagInput(name, label) { filSelectField(ul.parentNode); return false } - }, mt('_vnbrowse_tagrem')), ')' + }, mt('_js_remove')), ')' )); } var fetch = function(c) { @@ -2421,12 +2485,12 @@ function filFTagInput(name, label) { txt.value = mt('_js_loading'); txt.disabled = true; if(visible) - ajax('/xml/tags.xml?'+q.join(';'), function (hr) { + ajax(src+'?'+q.join(';'), function (hr) { var l = []; var items = hr.responseXML.getElementsByTagName('item'); setText(ul, ''); for(var i=0; i<items.length; i++) - addtag(ul, items[i].getAttribute('id'), items[i].firstChild.nodeValue); + addtag(ul, items[i].getAttribute('id'), items[i].firstChild.nodeValue, items[i].getAttribute('groupname')); txt.value = ''; txt.disabled = false; c.fil_val = null; @@ -2434,18 +2498,21 @@ function filFTagInput(name, label) { }; var input = tag('input', {type:'text', 'class':'text', style:'width:300px', onfocus:filSelectField}); var list = tag('ul', null); - dsInit(input, '/xml/tags.xml?q=', + dsInit(input, src+'?q=', function(item, tr) { - tr.appendChild(tag('td', shorten(item.firstChild.nodeValue, 40), - item.getAttribute('meta') == 'yes' ? tag('b', {'class': 'grayedout'}, ' '+mt('_js_ds_tag_meta')) : null, - item.getAttribute('state') == 0 ? tag('b', {'class': 'grayedout'}, ' '+mt('_js_ds_tag_mod')) : null + var g = item.getAttribute('groupname'); + tr.appendChild(tag('td', + type=='trait' && g ? tag('b', {'class':'grayedout'}, g+' / ') : null, + shorten(item.firstChild.nodeValue, 40), // l10n /_js_ds_(tag|trait)_(meta|mod)/ + item.getAttribute('meta') == 'yes' ? tag('b', {'class': 'grayedout'}, ' '+mt('_js_ds_'+type+'_meta')) : null, + item.getAttribute('state') == 0 ? tag('b', {'class': 'grayedout'}, ' '+mt('_js_ds_'+type+'_mod')) : null )); }, function(item, obj) { - if(item.getAttribute('meta') == 'yes') - alert(mt('_js_ds_tag_nometa')); + if(item.getAttribute('meta') == 'yes') // l10n /_js_ds_(tag|trait)_nometa/ + alert(mt('_js_ds_'+type+'_nometa')); else { - addtag(byName(obj.parentNode, 'ul')[0], item.getAttribute('id'), item.firstChild.nodeValue); + addtag(byName(obj.parentNode, 'ul')[0], item.getAttribute('id'), item.firstChild.nodeValue, item.getAttribute('groupname')); filSelectField(obj); } return ''; @@ -2466,6 +2533,50 @@ function filFTagInput(name, label) { ]; } +function filChars() { + var gend = genders; + for(var i=0; i<gend.length; i++) // l10n /_gender_.+/ + gend[i] = [ gend[i], mt('_gender_'+gend[i]) ]; + var bloodt = blood_types; + for(var i=0; i<bloodt.length; i++) // l10n /_bloodt_.+/ + bloodt[i] = [ bloodt[i], mt('_bloodt_'+bloodt[i]) ]; + var roles = char_roles; + for(var i=0; i<roles.length; i++) // l10n /_charrole_.+/ + roles[i] = [ roles[i], mt('_charrole_'+roles[i]) ]; + + var ontraitpage = location.pathname.indexOf('/c/') < 0; + + return [ + mt('_charb_fil_title'), + [ mt('_charb_general'), + filFSelect('gender', mt('_charb_gender'), 4, gend), + filFSelect('bloodt', mt('_charb_bloodt'), 5, bloodt), + '', + filFSlider('bust_min', mt('_charb_bust_min'), 20, 120, 40, 'cm'), + filFSlider('bust_max', mt('_charb_bust_max'), 20, 120, 100, 'cm'), + filFSlider('waist_min', mt('_charb_waist_min'), 20, 120, 40, 'cm'), + filFSlider('waist_max', mt('_charb_waist_max'), 20, 120, 100, 'cm'), + filFSlider('hip_min', mt('_charb_hip_min'), 20, 120, 40, 'cm'), + filFSlider('hip_max', mt('_charb_hip_max'), 20, 120, 100, 'cm'), + '', + filFSlider('height_min', mt('_charb_height_min'), 0, 300, 60, 'cm'), + filFSlider('height_max', mt('_charb_height_max'), 0, 300, 240, 'cm'), + filFSlider('weight_min', mt('_charb_weight_min'), 0, 400, 80, 'kg'), + filFSlider('weight_max', mt('_charb_weight_max'), 0, 400, 320, 'kg'), + ], + ontraitpage ? [ mt('_charb_traits'), + [ '', ' ', tag(mt('_charb_traitnothere')) ], + ] : [ mt('_charb_traits'), + [ '', ' ', tag(mt('_js_fil_booland')) ], + filFTagInput('trait_inc', mt('_charb_traitinc'), 'trait'), + filFTagInput('trait_exc', mt('_charb_traitexc'), 'trait'), + filFOptions('tagspoil', ' ', [[0, mt('_charb_spoil0')],[1, mt('_charb_spoil1')],[2, mt('_charb_spoil2')]], + function (o) { var s = getCookie('tagspoil'); if(o+'' == '') return s == null ? 0 : s; setCookie('tagspoil', o); return o}) + ], + [ mt('_charb_roles'), filFSelect('role', mt('_charb_roles'), 4, roles) ] + ]; +} + function filReleases() { var types = release_types; for(var i=0; i<types.length; i++) // l10n /_rtype_.+/ @@ -2537,8 +2648,8 @@ function filVN() { ] : [ mt('_vnbrowse_tags'), [ '', ' ', tag(mt('_js_fil_booland')) ], [ '', ' ', PREF_CODE != '' ? tag(mt('_vnbrowse_tagactive')) : null ], - filFTagInput('tag_inc', mt('_vnbrowse_taginc')), - filFTagInput('tag_exc', mt('_vnbrowse_tagexc')), + filFTagInput('tag_inc', mt('_vnbrowse_taginc'), 'tag'), + filFTagInput('tag_exc', mt('_vnbrowse_tagexc'), 'tag'), filFOptions('tagspoil', ' ', [[0, mt('_vnbrowse_spoil0')],[1, mt('_vnbrowse_spoil1')],[2, mt('_vnbrowse_spoil2')]], function (o) { var s = getCookie('tagspoil'); if(o+'' == '') return s == null ? 0 : s; setCookie('tagspoil', o); return o}) ], diff --git a/data/style.css b/data/style.css index 78f3736f..ecb8bb42 100644 --- a/data/style.css +++ b/data/style.css @@ -768,6 +768,10 @@ div#fil_div { #fil_div .opts a.tsel { color: $maintext$; } #filselect i { font-style: normal } #fil_div table ul { margin: 0 0 0 15px } +#fil_div .slider p { margin: 1px; } +#fil_div .slider div { margin: 1px; border: 1px solid $secborder$; float: left; height: 12px; } +#fil_div .slider div div { border-top: none; border-bottom: none; cursor: default; position: relative; height: 10px; margin: 1px; } +#fil_div .slider span { margin-left: 5px } |