diff options
author | QCyph <dev@lived.nl> | 2011-08-27 10:50:29 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2011-08-27 11:01:10 +0200 |
commit | e26056de79c72a113fa1c5cc725e053e0efe3a97 (patch) | |
tree | 015770471e514ef07a73e3d7e813eae04e117975 /data | |
parent | 96c8f09ca054ea21f59bd62b3fdc9de90ebf1348 (diff) |
Added filters to character browse page and trait page
Diffstat (limited to 'data')
-rw-r--r-- | data/global.pl | 5 | ||||
-rw-r--r-- | data/lang.txt | 179 | ||||
-rw-r--r-- | data/script.js | 90 |
3 files changed, 252 insertions, 22 deletions
diff --git a/data/global.pl b/data/global.pl index 31d45631..844d69d1 100644 --- a/data/global.pl +++ b/data/global.pl @@ -102,6 +102,11 @@ our %S = (%S, vnlist_status => [ 0..4 ], blood_types => [qw| unknown a b ab o |], genders => [qw| unknown m f b |], + bust_ranges => [ 50, 60, 65, 70, 75, 80, 85, 90, 100, 110, 120 ], + waist_ranges => [ 40, 50, 55, 60, 65, 70, 75, 80 ], + hip_ranges => [ 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100 ], + height_ranges => [ 10, 50, 100, 120, 140, 150, 160, 170, 180, 190, 200, 220, 240, 280 ], + weight_ranges => [ 20, 50, 60, 70, 80, 90, 100, 150, 200, 250, 350 ], char_roles => [qw| main primary side appears |], atom_feeds => { # num_entries, title, id announcements => [ 10, 'VNDB Site Announcements', '/t/an' ], diff --git a/data/lang.txt b/data/lang.txt index 9639cc11..90463878 100644 --- a/data/lang.txt +++ b/data/lang.txt @@ -1533,6 +1533,13 @@ cs : -dne- hu : -nap- nl : -dag- +:_js_remove +en : remove +ru : убрать +cs : odstranit +hu : eltávolítás +nl : verwijder + :_js_ds_noresults en : No results... ru : Совпадений не найдено... @@ -1575,6 +1582,27 @@ cs : Zde se nedají použít meta-tagy! hu : Itt nem használhatsz meta címkéket! nl : Meta tags kunnen hier niet gebruikt worden! +:_js_ds_trait_meta +en : meta +ru*: +cs*: +hu*: +nl : + +:_js_ds_trait_mod +en : awaiting moderation +ru*: +cs*: +hu*: +nl : ongemodereerd + +:_js_ds_trait_nometa +en : Can't use meta traits here! +ru*: +cs*: +hu*: +nl : Meta kenmerken kunnen hier niet gebruikt worden! + # Filter selector @@ -5571,8 +5599,152 @@ cs : Žádné postavy odpovídající vašim požadavkům. hu : A kritériumaid alapján nem található szereplő. nl : Geen karakters gevonden die aan je kriteria voldoen. +:_charb_fil_title +en : Character filters +ru*: +cs*: +hu*: +nl : Karakterfilters + +:_charb_general +en : General +ru*: +cs*: +hu*: +nl : Algemeen + +:_charb_gender +en : Gender +ru*: +cs*: +hu*: +nl : Geslacht +:_charb_bust_min +en : Bust min +ru*: +cs*: +hu*: +nl : Borst min +:_charb_bust_max +en : Bust max +ru*: +cs*: +hu*: +nl : Borst max + +:_charb_waist_min +en : Waist min +ru*: +cs*: +hu*: +nl : Taille min + +:_charb_waist_max +en : Waist max +ru*: +cs*: +hu*: +nl : Taille max + +:_charb_hip_min +en : Hips min +ru*: +cs*: +hu*: +nl : Heupen min + +:_charb_hip_max +en : Hips max +ru*: +cs*: +hu*: +nl : Heupen max + +:_charb_height_min +en : Height min +ru*: +cs*: +hu*: +nl : Lengte min + +:_charb_height_max +en : Height max +ru*: +cs*: +hu*: +nl : Lengte max + +:_charb_weight_min +en : Weight min +ru*: +cs*: +hu*: +nl : Gewicht min + +:_charb_weight_max +en : Weight max +ru*: +cs*: +hu*: +nl : Gewicht max + +:_charb_bloodt +en : Blood type +ru*: +cs*: +hu*: +nl : Bloedgroep + +:_charb_traits +en : Traits +ru*: +cs*: +hu*: +nl : Kenmerken + +:_charb_traitinc +en : Traits to include +ru*: +cs*: +hu*: +nl : Kenmerken meenemen + +:_charb_traitexc +en : Traits to exclude +ru*: +cs*: +hu*: +nl : Kenmerken uitsluiten + +:_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). + +:_charb_spoil0 +en : Hide spoilers +ru*: +cs*: +hu*: +nl : Verberg spoilers + +:_charb_spoil1 +en : Show minor spoilers +ru*: +cs*: +hu*: +nl : Toon geringe spoilers + +:_charb_spoil2 +en : Show major spoilers +ru*: +cs*: +hu*: +nl : Toon alle spoilers @@ -7131,13 +7303,6 @@ cs : Tyto filtry jsou na stránkách tagů ignorovány (když jsou nastaveny jak hu : Ezzek a szűrők figyelmen kívűl maradnak a címke oldalakon (ha alapértelmezetnek vannak beállítva). nl : Deze filters worden genegeerd op tagpaginas (als ze gebruikt worden als standaardfilters). -:_vnbrowse_tagrem -en : remove -ru : убрать -cs : odstranit -hu : eltávolítás -nl : verwijder - :_vnbrowse_taginc en : Tags to include ru : Включить теги diff --git a/data/script.js b/data/script.js index e85bce3d..824ca12a 100644 --- a/data/script.js +++ b/data/script.js @@ -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) @@ -2379,14 +2382,16 @@ 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), + 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 +2400,7 @@ function filFTagInput(name, label) { filSelectField(ul.parentNode); return false } - }, mt('_vnbrowse_tagrem')), ')' + }, mt('_js_remove')), ')' )); } var fetch = function(c) { @@ -2421,7 +2426,7 @@ 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, ''); @@ -2434,16 +2439,16 @@ 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 + tr.appendChild(tag('td', 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); filSelectField(obj); @@ -2466,6 +2471,61 @@ 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 bust = bust_ranges; + for(var i=0; i<bust.length; i++) + bust[i] = [ bust[i], bust[i]+' cm' ]; + var waist = waist_ranges; + for(var i=0; i<waist.length; i++) + waist[i] = [ waist[i], waist[i]+' cm' ]; + var hip = hip_ranges; + for(var i=0; i<hip.length; i++) + hip[i] = [ hip[i], hip[i]+' cm' ]; + var height = height_ranges; + for(var i=0; i<height.length; i++) + height[i] = [ height[i], height[i]+' cm' ]; + var weight = weight_ranges; + for(var i=0; i<weight.length; i++) + weight[i] = [ weight[i], weight[i]+' kg' ]; + var bloodt = blood_types; + for(var i=0; i<bloodt.length; i++) // l10n /_bloodt_.+/ + bloodt[i] = [ bloodt[i], mt('_bloodt_'+bloodt[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), + '', + filFSelect('bust_min', mt('_charb_bust_min'), 1, bust), + filFSelect('bust_max', mt('_charb_bust_max'), 1, bust), + filFSelect('waist_min', mt('_charb_waist_min'), 1, waist), + filFSelect('waist_max', mt('_charb_waist_max'), 1, waist), + filFSelect('hip_min', mt('_charb_hip_min'), 1, hip), + filFSelect('hip_max', mt('_charb_hip_max'), 1, hip), + '', + filFSelect('height_min', mt('_charb_height_min'), 1, height), + filFSelect('height_max', mt('_charb_height_max'), 1, height), + filFSelect('weight_min', mt('_charb_weight_min'), 1, weight), + filFSelect('weight_max', mt('_charb_weight_max'), 1, weight), + ], + 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}) + ] + ]; +} + function filReleases() { var types = release_types; for(var i=0; i<types.length; i++) // l10n /_rtype_.+/ @@ -2537,8 +2597,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}) ], |