generic-skin 5.2.0 → 5.2.2

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.
@@ -7,6 +7,7 @@ Vue.component('directorio-personajes', {
7
7
  busqueda: {
8
8
  name: '',
9
9
  faceClaim: '',
10
+ ocupation: '',
10
11
  user: -1,
11
12
  group: -1,
12
13
  },
@@ -31,13 +32,14 @@ Vue.component('directorio-personajes', {
31
32
 
32
33
  const nameLower = this.busqueda.name.toLowerCase();
33
34
  const faceClaimLower = this.busqueda.faceClaim.toLowerCase();
35
+ const ocupationLower = this.busqueda.ocupation.toLowerCase();
34
36
 
35
37
  return this.characters.filter(character =>
36
- character.name.toLowerCase().includes(nameLower) && character.fields['face_claim'].content.toLowerCase().includes(faceClaimLower) && (this.busqueda.user === -1 || character.fields['usuario'].content === this.busqueda.user) && (this.busqueda.group === -1 || character.colour === forumConfig.profileUser.forumGroups[this.busqueda.group].group)
38
+ character.name.toLowerCase().includes(nameLower) && character.fields['face_claim'].content.toLowerCase().includes(faceClaimLower) && character.fields['ocupacion'].content.toLowerCase().includes(ocupationLower) && (this.busqueda.user === -1 || character.fields['usuario'].content === this.busqueda.user) && (this.busqueda.group === -1 || character.colour === forumConfig.profileUser.forumGroups[this.busqueda.group].group)
37
39
  );
38
40
  },
39
41
  availableUsers() {
40
- const users = new Set(this.characters.map(character => character.fields['usuario'].content));
42
+ const users = new Set(this.filteredCharacters.map(character => character.fields['usuario'].content));
41
43
 
42
44
  return users;
43
45
  }
@@ -112,7 +114,7 @@ Vue.component('directorio-personajes', {
112
114
  <div class="forum-field">
113
115
  <div class="field-name">Nombre</div>
114
116
  <div class="field-content">
115
- <input type="text" :disabled="busqueda.faceClaim !== ''" v-model="busqueda.name" placeholder="Buscar por Nombre.">
117
+ <input type="text" :disabled="busqueda.faceClaim !== '' || busqueda.ocupation !== ''" v-model="busqueda.name" placeholder="Buscar por Nombre.">
116
118
  </div>
117
119
  </div>
118
120
  </li>
@@ -120,7 +122,15 @@ Vue.component('directorio-personajes', {
120
122
  <div class="forum-field">
121
123
  <div class="field-name">Face claim</div>
122
124
  <div class="field-content">
123
- <input type="text" :disabled="busqueda.name !== ''" v-model="busqueda.faceClaim" placeholder="Buscar por Face Claim.">
125
+ <input type="text" :disabled="busqueda.name !== '' || busqueda.ocupation !== ''" v-model="busqueda.faceClaim" placeholder="Buscar por Face Claim.">
126
+ </div>
127
+ </div>
128
+ </li>
129
+ <li class="field-element field-ocupation">
130
+ <div class="forum-field">
131
+ <div class="field-name">Ocupación</div>
132
+ <div class="field-content">
133
+ <input type="text" :disabled="busqueda.faceClaim !== '' || busqueda.name !== ''" v-model="busqueda.ocupation" placeholder="Buscar por Ocupación.">
124
134
  </div>
125
135
  </div>
126
136
  </li>
@@ -130,7 +140,7 @@ Vue.component('directorio-personajes', {
130
140
  <div class="field-content">
131
141
  <div class="select-container">
132
142
  <select v-model="busqueda.user" @change="updateParams('user', busqueda.user !== -1 ? busqueda.user : null)">
133
- <option value="-1" selected="selected" hidden="hidden">Buscar por Usuario.</option>
143
+ <option value="-1" selected="selected" hidden="hidden">Filtrar por Usuario.</option>
134
144
  <option v-for="user in availableUsers" :key="user" :value="user">{{ user }}</option>
135
145
  </select>
136
146
  </div>
@@ -143,7 +153,7 @@ Vue.component('directorio-personajes', {
143
153
  <div class="field-content">
144
154
  <div class="select-container">
145
155
  <select v-model="busqueda.group" @change="updateParams('group', busqueda.group !== -1 ? busqueda.group : null)">
146
- <option value="-1" selected="selected" hidden="hidden">Buscar por Grupo.</option>
156
+ <option value="-1" selected="selected" hidden="hidden">Filtrar por Grupo.</option>
147
157
  <option v-for="group in Object.values(config.profileUser.forumGroups)" :key="group.name" :value="genSlug(group.name)">{{ group.name }}</option>
148
158
  </select>
149
159
  </div>
@@ -1 +1 @@
1
- Vue.component("directorio-personajes",{data:()=>({loading:!0,config:forumConfig,logged:""!==_userdata.groupcolor,busqueda:{name:"",faceClaim:"",user:-1,group:-1},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&&-1===this.busqueda.user&&-1===this.busqueda.group)return this.characters;const e=this.busqueda.name.toLowerCase(),a=this.busqueda.faceClaim.toLowerCase();return this.characters.filter(s=>s.name.toLowerCase().includes(e)&&s.fields.face_claim.content.toLowerCase().includes(a)&&(-1===this.busqueda.user||s.fields.usuario.content===this.busqueda.user)&&(-1===this.busqueda.group||s.colour===forumConfig.profileUser.forumGroups[this.busqueda.group].group))},availableUsers(){const e=new Set(this.characters.map(e=>e.fields.usuario.content));return e}},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")},updated(){FNR.behaviour.genMeassure()},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 !== \'\'" 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 !== \'\'" v-model="busqueda.faceClaim" placeholder="Buscar por Face Claim.">\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="updateParams(\'user\', busqueda.user !== -1 ? busqueda.user : null)">\n <option value="-1" selected="selected" hidden="hidden">Buscar por Usuario.</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="updateParams(\'group\', busqueda.group !== -1 ? busqueda.group : null)">\n <option value="-1" selected="selected" hidden="hidden">Buscar por Grupo.</option>\n <option v-for="group in Object.values(config.profileUser.forumGroups)" :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.user = -1; busqueda.group = -1; 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 '});
1
+ Vue.component("directorio-personajes",{data:()=>({loading:!0,config:forumConfig,logged:""!==_userdata.groupcolor,busqueda:{name:"",faceClaim:"",ocupation:"",user:-1,group:-1},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&&-1===this.busqueda.user&&-1===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)&&(-1===this.busqueda.user||i.fields.usuario.content===this.busqueda.user)&&(-1===this.busqueda.group||i.colour===forumConfig.profileUser.forumGroups[this.busqueda.group].group))},availableUsers(){const e=new Set(this.filteredCharacters.map(e=>e.fields.usuario.content));return e}},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")},updated(){FNR.behaviour.genMeassure()},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="updateParams(\'user\', busqueda.user !== -1 ? busqueda.user : null)">\n <option value="-1" selected="selected" hidden="hidden">Filtrar por Usuario.</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="updateParams(\'group\', busqueda.group !== -1 ? busqueda.group : null)">\n <option value="-1" selected="selected" hidden="hidden">Filtrar por Grupo.</option>\n <option v-for="group in Object.values(config.profileUser.forumGroups)" :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.user = -1; busqueda.group = -1; 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 '});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "generic-skin",
3
- "version": "5.2.0",
3
+ "version": "5.2.2",
4
4
  "description": "Generic Forum Skin for Forumotion created by Gaylien.",
5
5
  "license": "ISC",
6
6
  "author": "Gaylien",