generic-skin 6.0.6 → 6.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -8,8 +8,8 @@ Vue.component('directorio-personajes', {
|
|
|
8
8
|
name: '',
|
|
9
9
|
faceClaim: '',
|
|
10
10
|
ocupation: '',
|
|
11
|
-
user:
|
|
12
|
-
group:
|
|
11
|
+
user: 'all',
|
|
12
|
+
group: 'all',
|
|
13
13
|
},
|
|
14
14
|
characters: [],
|
|
15
15
|
users: []
|
|
@@ -26,7 +26,7 @@ Vue.component('directorio-personajes', {
|
|
|
26
26
|
return fields;
|
|
27
27
|
},
|
|
28
28
|
filteredCharacters() {
|
|
29
|
-
if (!this.busqueda.name && !this.busqueda.faceClaim && !this.busqueda.ocupation && this.busqueda.user === '
|
|
29
|
+
if (!this.busqueda.name && !this.busqueda.faceClaim && !this.busqueda.ocupation && this.busqueda.user === 'all' && this.busqueda.group === 'all') {
|
|
30
30
|
return this.characters;
|
|
31
31
|
}
|
|
32
32
|
|
|
@@ -35,7 +35,7 @@ Vue.component('directorio-personajes', {
|
|
|
35
35
|
const ocupationLower = this.busqueda.ocupation.toLowerCase();
|
|
36
36
|
|
|
37
37
|
return this.characters.filter(character =>
|
|
38
|
-
character.name.toLowerCase().includes(nameLower) && character.fields['face_claim'].content.toLowerCase().includes(faceClaimLower) && character.fields['ocupacion'].content.toLowerCase().includes(ocupationLower) && (this.busqueda.user === '
|
|
38
|
+
character.name.toLowerCase().includes(nameLower) && character.fields['face_claim'].content.toLowerCase().includes(faceClaimLower) && character.fields['ocupacion'].content.toLowerCase().includes(ocupationLower) && (this.busqueda.user === 'all' || character.fields['usuario'].content === this.busqueda.user) && (this.busqueda.group === 'all' || character.colour === forumConfig.profileUser.forumGroups[this.busqueda.group].group)
|
|
39
39
|
);
|
|
40
40
|
},
|
|
41
41
|
availableUsers() {
|
|
@@ -148,8 +148,8 @@ Vue.component('directorio-personajes', {
|
|
|
148
148
|
<div class="field-name">Usuario</div>
|
|
149
149
|
<div class="field-content">
|
|
150
150
|
<div class="select-container">
|
|
151
|
-
<select v-model="busqueda.user" @change="busqueda.user !== '
|
|
152
|
-
<option value="
|
|
151
|
+
<select v-model="busqueda.user" @change="busqueda.user !== 'all' ? updateParams('user', busqueda.user) : updateParams('user')">
|
|
152
|
+
<option value="all" selected="selected">Todos</option>
|
|
153
153
|
<option v-for="user in availableUsers" :key="user" :value="user">{{ user }}</option>
|
|
154
154
|
</select>
|
|
155
155
|
</div>
|
|
@@ -161,8 +161,8 @@ Vue.component('directorio-personajes', {
|
|
|
161
161
|
<div class="field-name">Grupo</div>
|
|
162
162
|
<div class="field-content">
|
|
163
163
|
<div class="select-container">
|
|
164
|
-
<select v-model="busqueda.group" @change="busqueda.group !== '
|
|
165
|
-
<option value="
|
|
164
|
+
<select v-model="busqueda.group" @change="busqueda.group !== 'all' ? updateParams('group', busqueda.group) : updateParams('group')">
|
|
165
|
+
<option value="all" selected="selected">Todos</option>
|
|
166
166
|
<option v-for="group in availableGroups" :key="group.name" :value="genSlug(group.name)">{{ group.name }}</option>
|
|
167
167
|
</select>
|
|
168
168
|
</div>
|
|
@@ -171,7 +171,7 @@ Vue.component('directorio-personajes', {
|
|
|
171
171
|
</li>
|
|
172
172
|
</ul>
|
|
173
173
|
<div id="usereply-comand">
|
|
174
|
-
<button class="button2 btn-main" @click="busqueda.name = ''; busqueda.faceClaim = ''; busqueda.ocupation = ''; busqueda.user =
|
|
174
|
+
<button class="button2 btn-main" @click="busqueda.name = ''; busqueda.faceClaim = ''; busqueda.ocupation = ''; busqueda.user = 'all'; busqueda.group = 'all'; updateParams('group'); updateParams('user')">Reiniciar</button>
|
|
175
175
|
</div>
|
|
176
176
|
</section>
|
|
177
177
|
<separador-foro />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Vue.component("directorio-personajes",{data:()=>({loading:!0,config:forumConfig,logged:""!==_userdata.groupcolor,busqueda:{name:"",faceClaim:"",ocupation:"",user
|
|
1
|
+
Vue.component("directorio-personajes",{data:()=>({loading:!0,config:forumConfig,logged:""!==_userdata.groupcolor,busqueda:{name:"",faceClaim:"",ocupation:"",user:"all",group:"all"},characters:[],users:[]}),computed:{directoryFields(){const e=this.config.profileUser.directoryFields;return this.logged&&e.unshift("usuario"),e},filteredCharacters(){if(!this.busqueda.name&&!this.busqueda.faceClaim&&!this.busqueda.ocupation&&"all"===this.busqueda.user&&"all"===this.busqueda.group)return this.characters;const e=this.busqueda.name.toLowerCase(),a=this.busqueda.faceClaim.toLowerCase(),s=this.busqueda.ocupation.toLowerCase();return this.characters.filter(i=>i.name.toLowerCase().includes(e)&&i.fields.face_claim.content.toLowerCase().includes(a)&&i.fields.ocupacion.content.toLowerCase().includes(s)&&("all"===this.busqueda.user||i.fields.usuario.content===this.busqueda.user)&&("all"===this.busqueda.group||i.colour===forumConfig.profileUser.forumGroups[this.busqueda.group].group))},availableUsers(){const e=new Set(this.characters.map(e=>e.fields.usuario.content));return e},availableGroups(){const e=new Set(this.characters.map(e=>e.colour));return Object.values(this.config.profileUser.forumGroups).filter(a=>e.has(a.group))}},methods:{async obtainCharacters(){let e;try{e=await FNR.cache.useData("members",1)}catch(a){e=null}e||(e=await FNR.forum.getMembers(),FNR.cache.setData("members",e,1));const a=await Promise.allSettled(e.map(e=>FNR.user.getProfile(e.id.replace("/u",""),.5)));this.characters=a.filter(e=>"fulfilled"===e.status).map(e=>e.value),this.loading=!1},updateParams(e,a){const s=new URL(window.location.href);a?s.searchParams.set(e,a):s.searchParams.delete(e),window.history.replaceState({},"",s)},genSlug:e=>FNR.utility.genSlug(e,"-")},created(){this.obtainCharacters()},mounted(){document.title="Directorio";const e=new URL(window.location.href);e.searchParams.has("group")&&(this.busqueda.group=e.searchParams.get("group")),e.searchParams.has("user")&&this.logged?this.busqueda.user=e.searchParams.get("user"):e.searchParams.has("user")&&this.updateParams("user"),document.addEventListener("directoryReady",()=>{FNR.behaviour.genMeassure()})},updated(){document.dispatchEvent(directoryReady)},template:'\n <section id="directory-section" class="basic-element">\n <section class="generic-element">\n <cabespecial-foro>\n <template slot="title">Directorio</template>\n </cabespecial-foro>\n <section id="memberlist-options" class="field-block">\n <ul class="forum-fieldlist no-style">\n <li class="field-element field-nombre">\n <div class="forum-field">\n <div class="field-name">Nombre</div>\n <div class="field-content">\n <input type="text" :disabled="busqueda.faceClaim !== \'\' || busqueda.ocupation !== \'\'" v-model="busqueda.name" placeholder="Buscar por Nombre.">\n </div>\n </div>\n </li>\n <li class="field-element field-faceclaim">\n <div class="forum-field">\n <div class="field-name">Face claim</div>\n <div class="field-content">\n <input type="text" :disabled="busqueda.name !== \'\' || busqueda.ocupation !== \'\'" v-model="busqueda.faceClaim" placeholder="Buscar por Face Claim.">\n </div>\n </div>\n </li>\n <li class="field-element field-ocupation">\n <div class="forum-field">\n <div class="field-name">Ocupación</div>\n <div class="field-content">\n <input type="text" :disabled="busqueda.faceClaim !== \'\' || busqueda.name !== \'\'" v-model="busqueda.ocupation" placeholder="Buscar por Ocupación.">\n </div>\n </div>\n </li>\n <li v-if="logged" class="field-element field-usuario">\n <div class="forum-field">\n <div class="field-name">Usuario</div>\n <div class="field-content">\n <div class="select-container">\n <select v-model="busqueda.user" @change="busqueda.user !== \'all\' ? updateParams(\'user\', busqueda.user) : updateParams(\'user\')">\n <option value="all" selected="selected">Todos</option>\n <option v-for="user in availableUsers" :key="user" :value="user">{{ user }}</option>\n </select>\n </div>\n </div>\n </div>\n </li>\n <li class="field-element field-group">\n <div class="forum-field">\n <div class="field-name">Grupo</div>\n <div class="field-content">\n <div class="select-container">\n <select v-model="busqueda.group" @change="busqueda.group !== \'all\' ? updateParams(\'group\', busqueda.group) : updateParams(\'group\')">\n <option value="all" selected="selected">Todos</option>\n <option v-for="group in availableGroups" :key="group.name" :value="genSlug(group.name)">{{ group.name }}</option>\n </select>\n </div>\n </div>\n </div>\n </li>\n </ul>\n \t\t<div id="usereply-comand">\n <button class="button2 btn-main" @click="busqueda.name = \'\'; busqueda.faceClaim = \'\'; busqueda.ocupation = \'\'; busqueda.user = \'all\'; busqueda.group = \'all\'; updateParams(\'group\'); updateParams(\'user\')">Reiniciar</button>\n \t\t</div>\n </section>\n <separador-foro />\n <cabecera-foro>\n <template slot="title">Listado</template>\n </cabecera-foro>\n <section v-if="!loading" class="forum-memberlist">\n <ul :class="\'memberlist-members no-style\' + (filteredCharacters.length ? \'\' : \' no-results\')">\n <li v-if="!filteredCharacters.length">\n <h6>No hay personajes que coincidan con la búsqueda.</h6>\n </li>\n <li v-else v-for="character in filteredCharacters" :key="character.name" class="row">\n <a :href="character.links.profile" target="_blank" :title="\'Ir al \' + config.profileOptions.profileName + \' de «\' + character.name + \'»\'" :class="\'memberitem-element usergroup-\' + character.colour">\n <div class="memberlist-name">\n <h3 class="is-tweakeable">\n <span class="is-measurable">{{ character.name }}</span>\n </h3>\n </div>\n <img :src="character.avatar" :alt="\'Avatar de «\' + character.name + \'»\'" class="memberlist-avatar">\n <ul class="memberlist-fields">\n <li v-for="field in directoryFields" :key="field" :class="\'memberlist-field field-\' + genSlug(character.fields[field].name)">\n <strong>{{ character.fields[field].name }}:</strong> {{ character.fields[field].content | twist-field }}\n </li>\n </ul>\n </a>\n </li>\n </ul>\n </section>\n <cargando-foro v-else text="Cargando utilidad…"></cargando-foro>\n </section>\n </section>\n '});
|