generic-skin 3.0.9 → 3.0.10
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.
- package/apps/vueChrono.js +19 -19
- package/apps/vueChrono.min.js +1 -1
- package/apps/vueDefault.js +19 -19
- package/apps/vueMulti.js +20 -20
- package/apps/vueMulti.min.js +1 -1
- package/apps/vueRela.js +18 -18
- package/apps/vueRela.min.js +1 -1
- package/config/vueComponents.js +55 -55
- package/config/vueElements.js +1 -1
- package/options/noManagers.js +3 -3
- package/options/noManagers.min.js +1 -1
- package/package.json +1 -1
package/apps/vueRela.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Vue.component('modal-relaciones', {
|
|
2
2
|
props: ['dataElement', 'dataType'],
|
|
3
|
-
data
|
|
3
|
+
data() {
|
|
4
4
|
return {
|
|
5
5
|
state: {
|
|
6
6
|
modal: false
|
|
@@ -17,11 +17,11 @@ Vue.component('modal-relaciones', {
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
computed: {
|
|
20
|
-
modalTitle
|
|
20
|
+
modalTitle() {
|
|
21
21
|
if (this.dataType === 'new') return 'Nueva entrada';
|
|
22
22
|
else if (this.dataType === 'edit') return 'Editar entrada';
|
|
23
23
|
},
|
|
24
|
-
oneCheck
|
|
24
|
+
oneCheck() {
|
|
25
25
|
let final = '';
|
|
26
26
|
|
|
27
27
|
if (!Object.keys(this.content.edit).length) return final;
|
|
@@ -48,10 +48,10 @@ Vue.component('modal-relaciones', {
|
|
|
48
48
|
|
|
49
49
|
return final;
|
|
50
50
|
},
|
|
51
|
-
finalCheck
|
|
51
|
+
finalCheck() {
|
|
52
52
|
return JSON.stringify(this.content.current) !== JSON.stringify(this.content.edit);
|
|
53
53
|
},
|
|
54
|
-
sortedCharacters
|
|
54
|
+
sortedCharacters() {
|
|
55
55
|
if (!Object.keys(this.content.edit).length) return this.$parent.users.map((item) => {
|
|
56
56
|
return item.user;
|
|
57
57
|
});
|
|
@@ -63,7 +63,7 @@ Vue.component('modal-relaciones', {
|
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
65
|
methods: {
|
|
66
|
-
modalClose
|
|
66
|
+
modalClose() {
|
|
67
67
|
this.$parent.modal.type = 'new';
|
|
68
68
|
this.$parent.modal.status = false;
|
|
69
69
|
this.$parent.setEntry();
|
|
@@ -75,14 +75,14 @@ Vue.component('modal-relaciones', {
|
|
|
75
75
|
this.content.edit.color = character.color;
|
|
76
76
|
this.content.edit.url = character.id;
|
|
77
77
|
},
|
|
78
|
-
updateData
|
|
78
|
+
updateData() {
|
|
79
79
|
const data = JSON.parse(JSON.stringify(this.info.users)).filter((item) => {
|
|
80
80
|
return item.user === this.content.current.name;
|
|
81
81
|
})[0];
|
|
82
82
|
|
|
83
83
|
this.content.edit.img = data.img;
|
|
84
84
|
},
|
|
85
|
-
pushElement
|
|
85
|
+
pushElement() {
|
|
86
86
|
if (this.$parent.modal.type === 'edit') {
|
|
87
87
|
this.$parent.content.edit.splice(this.$parent.content.edit.map((item) => {
|
|
88
88
|
return item.position;
|
|
@@ -196,7 +196,7 @@ Vue.component('modal-relaciones', {
|
|
|
196
196
|
});
|
|
197
197
|
|
|
198
198
|
Vue.component('gestor-relaciones', {
|
|
199
|
-
data
|
|
199
|
+
data() {
|
|
200
200
|
return {
|
|
201
201
|
render: 0,
|
|
202
202
|
modal: {
|
|
@@ -216,14 +216,14 @@ Vue.component('gestor-relaciones', {
|
|
|
216
216
|
}
|
|
217
217
|
},
|
|
218
218
|
computed: {
|
|
219
|
-
sortedContent
|
|
219
|
+
sortedContent() {
|
|
220
220
|
return JSON.parse(JSON.stringify(this.content.edit)).sort((a, b) => {
|
|
221
221
|
if (a.name < b.name) return -1;
|
|
222
222
|
if (a.name > b.name) return 1;
|
|
223
223
|
return 0;
|
|
224
224
|
});
|
|
225
225
|
},
|
|
226
|
-
paginationContent
|
|
226
|
+
paginationContent() {
|
|
227
227
|
const limit = parseInt(forumConfig.skinOptions.paginationDefault / 2) + 1;
|
|
228
228
|
const pages = Math.floor((this.sortedContent.length - 1) / limit) + 1;
|
|
229
229
|
|
|
@@ -240,15 +240,15 @@ Vue.component('gestor-relaciones', {
|
|
|
240
240
|
content: this.sortedContent.slice(this.state.pagination * limit, (this.state.pagination + 1) * limit)
|
|
241
241
|
};
|
|
242
242
|
},
|
|
243
|
-
finalCheck
|
|
243
|
+
finalCheck() {
|
|
244
244
|
return JSON.stringify(this.content.current) !== JSON.stringify(this.content.edit);
|
|
245
245
|
}
|
|
246
246
|
},
|
|
247
247
|
methods: {
|
|
248
|
-
forceRerender
|
|
248
|
+
forceRerender() {
|
|
249
249
|
this.render += 1;
|
|
250
250
|
},
|
|
251
|
-
setEntry
|
|
251
|
+
setEntry() {
|
|
252
252
|
this.entry = {
|
|
253
253
|
type: false,
|
|
254
254
|
color: -1,
|
|
@@ -393,19 +393,19 @@ Vue.component('gestor-relaciones', {
|
|
|
393
393
|
|
|
394
394
|
Vue.component('elemento-relaciones', {
|
|
395
395
|
props: ['dataElement', 'dataType', 'dataId'],
|
|
396
|
-
data
|
|
396
|
+
data() {
|
|
397
397
|
return {
|
|
398
398
|
profileName: forumConfig.profileOptions.profileName || 'perfil',
|
|
399
399
|
content: this.dataElement
|
|
400
400
|
}
|
|
401
401
|
},
|
|
402
402
|
computed: {
|
|
403
|
-
realClass
|
|
403
|
+
realClass() {
|
|
404
404
|
return 'rela-list usergroup-' + this.content.color;
|
|
405
405
|
}
|
|
406
406
|
},
|
|
407
407
|
methods: {
|
|
408
|
-
deleteElement
|
|
408
|
+
deleteElement() {
|
|
409
409
|
this.$parent.content.edit.splice(this.$parent.content.edit.map((item) => {
|
|
410
410
|
return item.position;
|
|
411
411
|
}).indexOf(this.dataId), 1);
|
|
@@ -416,7 +416,7 @@ Vue.component('elemento-relaciones', {
|
|
|
416
416
|
|
|
417
417
|
this.$parent.forceRerender();
|
|
418
418
|
},
|
|
419
|
-
editElement
|
|
419
|
+
editElement() {
|
|
420
420
|
this.$parent.modal.type = 'edit';
|
|
421
421
|
this.$parent.entry = this.content;
|
|
422
422
|
this.$parent.modal.status = true;
|
package/apps/vueRela.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Vue.component("modal-relaciones", { props: ["dataElement", "dataType"], data: function () { return { state: { modal: !1 }, info: { users: this.$parent.users, user: "", people: [] }, content: { edit: JSON.parse(JSON.stringify(this.dataElement)), current: this.dataElement } } }, computed: { modalTitle: function () { return "new" === this.dataType ? "Nueva entrada" : "edit" === this.dataType ? "Editar entrada" : void 0 }, oneCheck: function () { let t = ""; return Object.keys(this.content.edit).length ? (this.content.edit.name.length < 3 && (t += "<li>Escribe el nombre del personaje.</li>"), -1 === this.content.edit.color && (t += "<li>Selecciona una facción para el personaje.</li>"), -1 === this.content.edit.url.indexOf("/u") && (t += "<li>Escribe el enlace al perfil del personaje.</li>"), this.content.edit.img.match(/(jpg|jpeg|png)$/i) || (t += "<li>Escribe el enlace a la imagen del personaje (debe ser de 190x190).</li>"), this.content.edit.desc.length < 151 && (t += "<li>Escribe una descripción lo suficientemente larga (150 carácteres al menos).</li>"), t) : t }, finalCheck: function () { return JSON.stringify(this.content.current) !== JSON.stringify(this.content.edit) }, sortedCharacters: function () { return Object.keys(this.content.edit).length ? this.info.users.filter(t => -1 === this.info.people.indexOf(t.user)).filter(t => t.user.toLowerCase().indexOf(this.content.edit.name.toLowerCase()) > -1) : this.$parent.users.map(t => t.user) } }, methods: { modalClose: function () { this.$parent.modal.type = "new", this.$parent.modal.status = !1, this.$parent.setEntry() }, addCharacter: function (t) { this.content.edit.type = !0, this.content.edit.name = t.user, this.content.edit.img = t.img, this.content.edit.color = t.color, this.content.edit.url = t.id }, updateData: function () { const t = JSON.parse(JSON.stringify(this.info.users)).filter(t => t.user === this.content.current.name)[0]; this.content.edit.img = t.img }, pushElement: function () { "edit" === this.$parent.modal.type && this.$parent.content.edit.splice(this.$parent.content.edit.map(t => t.position).indexOf(this.content.current.position), 1); let t = this.content.edit; "new" === this.$parent.modal.type && (t.position = this.$parent.content.edit.length), this.$parent.content.edit.push(t), this.modalClose() } }, template: '\n <modal-foro :data-title="modalTitle" v-on:modal-close="modalClose()">\n <template v-if="content.edit.type">\n <template slot="content">\n <aviso-foro v-show="oneCheck.length">\n <ul v-html="oneCheck"></ul>\n </aviso-foro>\n <ul class="forum-fieldlist no-style">\n <li>\n <campo-foro data-name="Nombre">\n <div class="character-selector">\n <input type="text" v-model="content.edit.name" placeholder="Escribe el nombre del personaje." disabled />\n <a class="character-custom" v-on:click="updateData()" :title="\'Actualizar avatar de «\' + content.current.name + \'»\'">\n <i class="fas fa-redo-alt"></i>\n </a>\n </div>\n </campo-foro>\n </li>\n </ul>\n <h4 class="mt-5">Descripción</h4>\n <ul class="forum-fieldlist no-style">\n <li class="has-no-label">\n <campo-foro data-name="Descripción">\n <textarea v-model="content.edit.desc" placeholder="Escribe la descripción del personaje."></textarea>\n </campo-foro>\n </li>\n </ul>\n </template>\n <template slot="controls" v-if="!oneCheck.length && finalCheck">\n <controles-modal>\n <button class="button1 btn-main" v-on:click="pushElement()" title="Guardar entrada">Guardar</button>\n </controles-modal>\n </template>\n </template>\n <template v-else>\n <template slot="content">\n <aviso-foro v-show="oneCheck.length">\n <ul v-html="oneCheck"></ul>\n </aviso-foro>\n <ul class="forum-fieldlist no-style">\n <li>\n <campo-foro data-name="Nombre">\n <div class="character-selector"> \n <input type="text" v-model="content.edit.name" placeholder="Escribe el nombre del personaje." />\n <ul class="no-style selector-list" v-if="sortedCharacters.length > 0">\n <li v-for="(character, index) in sortedCharacters" v-on:click="addCharacter(character)" :title="\'Seleccionar \' + character.user">{{ character.user }}<i class="fas fa-plus"></i></li>\n </ul>\n </div>\n </campo-foro>\n </li>\n <li>\n <campo-foro data-name="Imagen">\n <input type="text" v-model="content.edit.img" placeholder="Escribe el enlace a la imagen del personaje." />\n </campo-foro>\n </li>\n <li>\n <campo-foro data-name="Perfil">\n <input type="text" v-model="content.edit.url" placeholder="Escribe el enlace al perfil del personaje." />\n </campo-foro>\n </li>\n <li>\n <campo-foro data-name="Facción">\n <div class="select-container">\n <select v-model="content.edit.color">\n <option value="-1" hidden>Selecciona la facción del personaje.</option>\n <option value="azul">Imperio Galáctico</option>\n <option value="rojo">Remanente Purista</option>\n <option value="naranja">Autoridad del Sector Corporativo</option>\n <option value="verde">Cártel</option>\n <option value="turquesa">Nueva Rebelión</option>\n <option value="amarillo">Neutral</option>\n </select>\n </div>\n </campo-foro>\n </li>\n </ul>\n <h4 class="mt-5">Descripción</h4>\n <ul class="forum-fieldlist no-style">\n <li class="has-no-label">\n <campo-foro data-name="Descripción">\n <textarea v-model="content.edit.desc" placeholder="Escribe la descripción del personaje."></textarea>\n </campo-foro>\n </li>\n </ul>\n </template>\n <template slot="controls" v-if="!oneCheck.length && finalCheck">\n <controles-modal>\n <button class="button1 btn-main" v-on:click="pushElement()" title="Guardar entrada">Guardar</button>\n </controles-modal>\n </template>\n </template>\n </modal-foro>\n ' }), Vue.component("gestor-relaciones", { data: function () { return { render: 0, modal: { type: "new", status: !1 }, users: [], state: { page: 0, pagination: 0 }, entry: {}, content: { edit: [], current: [] } } }, computed: { sortedContent: function () { return JSON.parse(JSON.stringify(this.content.edit)).sort((t, e) => t.name < e.name ? -1 : t.name > e.name ? 1 : 0) }, paginationContent: function () { const t = parseInt(forumConfig.skinOptions.paginationDefault / 2) + 1, e = Math.floor((this.sortedContent.length - 1) / t) + 1; let n = []; for (let t = 0; t < e; t++)n.push(t); return this.forceRerender(), { pages: n, content: this.sortedContent.slice(this.state.pagination * t, (this.state.pagination + 1) * t) } }, finalCheck: function () { return JSON.stringify(this.content.current) !== JSON.stringify(this.content.edit) } }, methods: { forceRerender: function () { this.render += 1 }, setEntry: function () { this.entry = { type: !1, color: -1, url: "", img: "", name: "", desc: "" } }, addEntry: function (t) { t.preventDefault(), this.modal.status = !0 }, save: function (t) { t.preventDefault(), this.state.page = 2; const e = this.sortedContent.map(t => (void 0 !== t.position && delete t.position, t)); FNR.user.profile.setData([{ name: forumConfig.profileUser.relaField, type: "textarea", value: JSON.stringify(e).replace(/"/g, "`") }]).then(t => { t ? (FNR.html.genNotification("Atención", "Información actualizada sin inconvenientes.", "fas fa-check"), setTimeout(() => { window.location.reload() }, 2e3)) : FNR.html.genNotification("Atención", "Hubo un problema al actualizar. Dale otro intento.", "fas fa-exclamation") }) } }, created() { FNR.user.profile.getData([{ name: forumConfig.profileUser.relaField, type: "textarea" }]).then(t => { const e = FNR.utility.genArray(t[0].value).map((t, e) => { let n = t; return n.position = e, n }); this.content.edit = e, this.content.current = JSON.parse(JSON.stringify(e)), FNR.forum.getMembers().then(t => { this.setEntry(), this.users = t, this.state.page = 1 }) }) }, template: '\n <section id="forum-relationships" class="wiki-content is-dramatic">\n <div class="is-content">\n <h2>Relaciones</h2>\n <hr />\n <p>En esta página podrás editar las relaciones de tu personaje. Experimenta con su funcionamiento, es bastante intuitivo.</p>\n </div>\n <separador-foro />\n <template v-if="state.page === 0">\n <cargando-foro data-text="Cargando utilidad…"></cargando-foro>\n </template>\n <template v-else-if="state.page === 1">\n <modal-relaciones v-if="modal.status" :data-type="modal.type" :data-element="entry"></modal-relaciones>\n <mando-foro data-id="upper-controls" data-app="true">\n <template slot="pagination" v-if="paginationContent.pages.length > 1">\n <a class="page-action" title="Ir a la página anterior" v-if="state.pagination > 0" v-on:click="state.pagination -= 1">\n <i class="fas fa-chevron-left"></i>\n </a>\n <template v-for="page in paginationContent.pages">\n <strong v-if="page === state.pagination">{{ page + 1 }}</strong>\n <a class="page-link" :title="\'Ir a la página «\' + (page + 1) + \'»\'" v-else v-on:click="state.pagination = page">{{ page + 1 }}</a>\n </template>\n <a class="page-action" title="Ir a la página siguiente" v-if="(state.pagination + 1) < paginationContent.pages.length" v-on:click="state.pagination += 1">\n <i class="fas fa-chevron-right"></i>\n </a>\n </template>\n <template slot="controls">\n <li v-on:click="addEntry($event)">\n <boton-foro data-url="#" data-name="Añadir" data-icon="fas fa-plus"></boton-foro>\n </li>\n <li v-if="finalCheck" v-on:click="save($event)">\n <boton-foro data-url="#" data-name="Guardar" data-icon="fas fa-save" data-type="no-name"></boton-foro>\n </li>\n </template>\n </mando-foro>\n <ul id="forum-rplist" class="no-style" :key="render">\n <template v-if="!paginationContent.content.length">\n <li class="is-not-lastpost not-status">\n <h6>No hay entradas en tus relaciones</h6>\n </li>\n </template>\n <template v-else v-for="character in paginationContent.content">\n <elemento-relaciones :data-element="character" data-type="manager" :data-id="character.position" />\n </template>\n </ul>\n <mando-foro data-id="lower-controls" data-app="true">\n <template slot="pagination" v-if="paginationContent.pages.length > 1">\n <a class="page-action" title="Ir a la página anterior" v-if="state.pagination > 0" v-on:click="state.pagination -= 1">\n <i class="fas fa-chevron-left"></i>\n </a>\n <template v-for="page in paginationContent.pages">\n <strong v-if="page === state.pagination">{{ page + 1 }}</strong>\n <a class="page-link" :title="\'Ir a la página «\' + (page + 1) + \'»\'" v-else v-on:click="state.pagination = page">{{ page + 1 }}</a>\n </template>\n <a class="page-action" title="Ir a la página siguiente" v-if="(state.pagination + 1) < paginationContent.pages.length" v-on:click="state.pagination += 1">\n <i class="fas fa-chevron-right"></i>\n </a>\n </template>\n <template slot="controls">\n <li v-on:click="addEntry($event)">\n <boton-foro data-url="#" data-name="Añadir" data-icon="fas fa-plus"></boton-foro>\n </li>\n <li v-if="finalCheck" v-on:click="save($event)">\n <boton-foro data-url="#" data-name="Guardar" data-icon="fas fa-save" data-type="no-name"></boton-foro>\n </li>\n </template>\n </mando-foro>\n </template>\n <template v-else-if="state.page === 2">\n <cargando-foro data-text="Actualizando información…"></cargando-foro>\n </template>\n </section>\n ' }), Vue.component("elemento-relaciones", { props: ["dataElement", "dataType", "dataId"], data: function () { return { profileName: forumConfig.profileOptions.profileName || "perfil", content: this.dataElement } }, computed: { realClass: function () { return "rela-list usergroup-" + this.content.color } }, methods: { deleteElement: function () { this.$parent.content.edit.splice(this.$parent.content.edit.map(t => t.position).indexOf(this.dataId), 1), 0 === this.$parent.paginationContent.content.length && 0 !== this.$parent.state.pagination && (this.$parent.state.pagination -= 1), this.$parent.forceRerender() }, editElement: function () { this.$parent.modal.type = "edit", this.$parent.entry = this.content, this.$parent.modal.status = !0 } }, template: '\n <li :class="realClass">\n <template v-if="dataType === \'manager\'">\n <a class="rela-element rela-manager">\n <div class="rela-image" :style="\'background-image: url(\' + content.img + \')\'"></div>\n <div class="rela-content">\n <div class="rela-title">\n <h4>{{ content.name }}</h4>\n <div class="rp-controls"><span v-on:click="editElement()" title="Editar entrada">Editar</span> / <span v-on:click="deleteElement()" title="Eliminar entrada">Eliminar</span></div>\n </div>\n <div class="small-text is-content" :inner-html.prop="content.desc | turn-br"></div>\n </div>\n </a>\n </template>\n <template v-else-if="dataType === \'profile\'">\n <template v-if="content.type">\n <a class="rela-element" :href="content.url" target="_blank" :title="\'Ir al \' + profileName + \' de «\' + content.name + \'»\'">\n <div class="rela-image" :style="\'background-image: url(\' + content.img + \')\'"></div>\n <div class="rela-content">\n <div class="rela-title">\n <h4>{{ content.name }}</h4>\n </div>\n <div class="small-text is-content" :inner-html.prop="content.desc | turn-br"></div>\n </div>\n </a>\n </template>\n <template v-else>\n <a class="rela-element">\n <div class="rela-image" :style="\'background-image: url(\' + content.img + \')\'"></div>\n <div class="rela-content">\n <div class="rela-title">\n <h4>{{ content.name }}</h4>\n </div>\n <div class="small-text is-content" :inner-html.prop="content.desc | turn-br"></div>\n </div>\n </a>\n </template>\n </template>\n </li>\n ' });
|
|
1
|
+
Vue.component("modal-relaciones", { props: ["dataElement", "dataType"], data() { return { state: { modal: !1 }, info: { users: this.$parent.users, user: "", people: [] }, content: { edit: JSON.parse(JSON.stringify(this.dataElement)), current: this.dataElement } } }, computed: { modalTitle() { return "new" === this.dataType ? "Nueva entrada" : "edit" === this.dataType ? "Editar entrada" : void 0 }, oneCheck() { let t = ""; return Object.keys(this.content.edit).length ? (this.content.edit.name.length < 3 && (t += "<li>Escribe el nombre del personaje.</li>"), -1 === this.content.edit.color && (t += "<li>Selecciona una facción para el personaje.</li>"), -1 === this.content.edit.url.indexOf("/u") && (t += "<li>Escribe el enlace al perfil del personaje.</li>"), this.content.edit.img.match(/(jpg|jpeg|png)$/i) || (t += "<li>Escribe el enlace a la imagen del personaje (debe ser de 190x190).</li>"), this.content.edit.desc.length < 151 && (t += "<li>Escribe una descripción lo suficientemente larga (150 carácteres al menos).</li>"), t) : t }, finalCheck() { return JSON.stringify(this.content.current) !== JSON.stringify(this.content.edit) }, sortedCharacters() { return Object.keys(this.content.edit).length ? this.info.users.filter(t => -1 === this.info.people.indexOf(t.user)).filter(t => t.user.toLowerCase().indexOf(this.content.edit.name.toLowerCase()) > -1) : this.$parent.users.map(t => t.user) } }, methods: { modalClose() { this.$parent.modal.type = "new", this.$parent.modal.status = !1, this.$parent.setEntry() }, addCharacter: function (t) { this.content.edit.type = !0, this.content.edit.name = t.user, this.content.edit.img = t.img, this.content.edit.color = t.color, this.content.edit.url = t.id }, updateData() { const t = JSON.parse(JSON.stringify(this.info.users)).filter(t => t.user === this.content.current.name)[0]; this.content.edit.img = t.img }, pushElement() { "edit" === this.$parent.modal.type && this.$parent.content.edit.splice(this.$parent.content.edit.map(t => t.position).indexOf(this.content.current.position), 1); let t = this.content.edit; "new" === this.$parent.modal.type && (t.position = this.$parent.content.edit.length), this.$parent.content.edit.push(t), this.modalClose() } }, template: '\n <modal-foro :data-title="modalTitle" v-on:modal-close="modalClose()">\n <template v-if="content.edit.type">\n <template slot="content">\n <aviso-foro v-show="oneCheck.length">\n <ul v-html="oneCheck"></ul>\n </aviso-foro>\n <ul class="forum-fieldlist no-style">\n <li>\n <campo-foro data-name="Nombre">\n <div class="character-selector">\n <input type="text" v-model="content.edit.name" placeholder="Escribe el nombre del personaje." disabled />\n <a class="character-custom" v-on:click="updateData()" :title="\'Actualizar avatar de «\' + content.current.name + \'»\'">\n <i class="fas fa-redo-alt"></i>\n </a>\n </div>\n </campo-foro>\n </li>\n </ul>\n <h4 class="mt-5">Descripción</h4>\n <ul class="forum-fieldlist no-style">\n <li class="has-no-label">\n <campo-foro data-name="Descripción">\n <textarea v-model="content.edit.desc" placeholder="Escribe la descripción del personaje."></textarea>\n </campo-foro>\n </li>\n </ul>\n </template>\n <template slot="controls" v-if="!oneCheck.length && finalCheck">\n <controles-modal>\n <button class="button1 btn-main" v-on:click="pushElement()" title="Guardar entrada">Guardar</button>\n </controles-modal>\n </template>\n </template>\n <template v-else>\n <template slot="content">\n <aviso-foro v-show="oneCheck.length">\n <ul v-html="oneCheck"></ul>\n </aviso-foro>\n <ul class="forum-fieldlist no-style">\n <li>\n <campo-foro data-name="Nombre">\n <div class="character-selector"> \n <input type="text" v-model="content.edit.name" placeholder="Escribe el nombre del personaje." />\n <ul class="no-style selector-list" v-if="sortedCharacters.length > 0">\n <li v-for="(character, index) in sortedCharacters" v-on:click="addCharacter(character)" :title="\'Seleccionar \' + character.user">{{ character.user }}<i class="fas fa-plus"></i></li>\n </ul>\n </div>\n </campo-foro>\n </li>\n <li>\n <campo-foro data-name="Imagen">\n <input type="text" v-model="content.edit.img" placeholder="Escribe el enlace a la imagen del personaje." />\n </campo-foro>\n </li>\n <li>\n <campo-foro data-name="Perfil">\n <input type="text" v-model="content.edit.url" placeholder="Escribe el enlace al perfil del personaje." />\n </campo-foro>\n </li>\n <li>\n <campo-foro data-name="Facción">\n <div class="select-container">\n <select v-model="content.edit.color">\n <option value="-1" hidden>Selecciona la facción del personaje.</option>\n <option value="azul">Imperio Galáctico</option>\n <option value="rojo">Remanente Purista</option>\n <option value="naranja">Autoridad del Sector Corporativo</option>\n <option value="verde">Cártel</option>\n <option value="turquesa">Nueva Rebelión</option>\n <option value="amarillo">Neutral</option>\n </select>\n </div>\n </campo-foro>\n </li>\n </ul>\n <h4 class="mt-5">Descripción</h4>\n <ul class="forum-fieldlist no-style">\n <li class="has-no-label">\n <campo-foro data-name="Descripción">\n <textarea v-model="content.edit.desc" placeholder="Escribe la descripción del personaje."></textarea>\n </campo-foro>\n </li>\n </ul>\n </template>\n <template slot="controls" v-if="!oneCheck.length && finalCheck">\n <controles-modal>\n <button class="button1 btn-main" v-on:click="pushElement()" title="Guardar entrada">Guardar</button>\n </controles-modal>\n </template>\n </template>\n </modal-foro>\n ' }), Vue.component("gestor-relaciones", { data() { return { render: 0, modal: { type: "new", status: !1 }, users: [], state: { page: 0, pagination: 0 }, entry: {}, content: { edit: [], current: [] } } }, computed: { sortedContent() { return JSON.parse(JSON.stringify(this.content.edit)).sort((t, e) => t.name < e.name ? -1 : t.name > e.name ? 1 : 0) }, paginationContent() { const t = parseInt(forumConfig.skinOptions.paginationDefault / 2) + 1, e = Math.floor((this.sortedContent.length - 1) / t) + 1; let n = []; for (let t = 0; t < e; t++)n.push(t); return this.forceRerender(), { pages: n, content: this.sortedContent.slice(this.state.pagination * t, (this.state.pagination + 1) * t) } }, finalCheck() { return JSON.stringify(this.content.current) !== JSON.stringify(this.content.edit) } }, methods: { forceRerender() { this.render += 1 }, setEntry() { this.entry = { type: !1, color: -1, url: "", img: "", name: "", desc: "" } }, addEntry: function (t) { t.preventDefault(), this.modal.status = !0 }, save: function (t) { t.preventDefault(), this.state.page = 2; const e = this.sortedContent.map(t => (void 0 !== t.position && delete t.position, t)); FNR.user.profile.setData([{ name: forumConfig.profileUser.relaField, type: "textarea", value: JSON.stringify(e).replace(/"/g, "`") }]).then(t => { t ? (FNR.html.genNotification("Atención", "Información actualizada sin inconvenientes.", "fas fa-check"), setTimeout(() => { window.location.reload() }, 2e3)) : FNR.html.genNotification("Atención", "Hubo un problema al actualizar. Dale otro intento.", "fas fa-exclamation") }) } }, created() { FNR.user.profile.getData([{ name: forumConfig.profileUser.relaField, type: "textarea" }]).then(t => { const e = FNR.utility.genArray(t[0].value).map((t, e) => { let n = t; return n.position = e, n }); this.content.edit = e, this.content.current = JSON.parse(JSON.stringify(e)), FNR.forum.getMembers().then(t => { this.setEntry(), this.users = t, this.state.page = 1 }) }) }, template: '\n <section id="forum-relationships" class="wiki-content is-dramatic">\n <div class="is-content">\n <h2>Relaciones</h2>\n <hr />\n <p>En esta página podrás editar las relaciones de tu personaje. Experimenta con su funcionamiento, es bastante intuitivo.</p>\n </div>\n <separador-foro />\n <template v-if="state.page === 0">\n <cargando-foro data-text="Cargando utilidad…"></cargando-foro>\n </template>\n <template v-else-if="state.page === 1">\n <modal-relaciones v-if="modal.status" :data-type="modal.type" :data-element="entry"></modal-relaciones>\n <mando-foro data-id="upper-controls" data-app="true">\n <template slot="pagination" v-if="paginationContent.pages.length > 1">\n <a class="page-action" title="Ir a la página anterior" v-if="state.pagination > 0" v-on:click="state.pagination -= 1">\n <i class="fas fa-chevron-left"></i>\n </a>\n <template v-for="page in paginationContent.pages">\n <strong v-if="page === state.pagination">{{ page + 1 }}</strong>\n <a class="page-link" :title="\'Ir a la página «\' + (page + 1) + \'»\'" v-else v-on:click="state.pagination = page">{{ page + 1 }}</a>\n </template>\n <a class="page-action" title="Ir a la página siguiente" v-if="(state.pagination + 1) < paginationContent.pages.length" v-on:click="state.pagination += 1">\n <i class="fas fa-chevron-right"></i>\n </a>\n </template>\n <template slot="controls">\n <li v-on:click="addEntry($event)">\n <boton-foro data-url="#" data-name="Añadir" data-icon="fas fa-plus"></boton-foro>\n </li>\n <li v-if="finalCheck" v-on:click="save($event)">\n <boton-foro data-url="#" data-name="Guardar" data-icon="fas fa-save" data-type="no-name"></boton-foro>\n </li>\n </template>\n </mando-foro>\n <ul id="forum-rplist" class="no-style" :key="render">\n <template v-if="!paginationContent.content.length">\n <li class="is-not-lastpost not-status">\n <h6>No hay entradas en tus relaciones</h6>\n </li>\n </template>\n <template v-else v-for="character in paginationContent.content">\n <elemento-relaciones :data-element="character" data-type="manager" :data-id="character.position" />\n </template>\n </ul>\n <mando-foro data-id="lower-controls" data-app="true">\n <template slot="pagination" v-if="paginationContent.pages.length > 1">\n <a class="page-action" title="Ir a la página anterior" v-if="state.pagination > 0" v-on:click="state.pagination -= 1">\n <i class="fas fa-chevron-left"></i>\n </a>\n <template v-for="page in paginationContent.pages">\n <strong v-if="page === state.pagination">{{ page + 1 }}</strong>\n <a class="page-link" :title="\'Ir a la página «\' + (page + 1) + \'»\'" v-else v-on:click="state.pagination = page">{{ page + 1 }}</a>\n </template>\n <a class="page-action" title="Ir a la página siguiente" v-if="(state.pagination + 1) < paginationContent.pages.length" v-on:click="state.pagination += 1">\n <i class="fas fa-chevron-right"></i>\n </a>\n </template>\n <template slot="controls">\n <li v-on:click="addEntry($event)">\n <boton-foro data-url="#" data-name="Añadir" data-icon="fas fa-plus"></boton-foro>\n </li>\n <li v-if="finalCheck" v-on:click="save($event)">\n <boton-foro data-url="#" data-name="Guardar" data-icon="fas fa-save" data-type="no-name"></boton-foro>\n </li>\n </template>\n </mando-foro>\n </template>\n <template v-else-if="state.page === 2">\n <cargando-foro data-text="Actualizando información…"></cargando-foro>\n </template>\n </section>\n ' }), Vue.component("elemento-relaciones", { props: ["dataElement", "dataType", "dataId"], data() { return { profileName: forumConfig.profileOptions.profileName || "perfil", content: this.dataElement } }, computed: { realClass() { return "rela-list usergroup-" + this.content.color } }, methods: { deleteElement() { this.$parent.content.edit.splice(this.$parent.content.edit.map(t => t.position).indexOf(this.dataId), 1), 0 === this.$parent.paginationContent.content.length && 0 !== this.$parent.state.pagination && (this.$parent.state.pagination -= 1), this.$parent.forceRerender() }, editElement() { this.$parent.modal.type = "edit", this.$parent.entry = this.content, this.$parent.modal.status = !0 } }, template: '\n <li :class="realClass">\n <template v-if="dataType === \'manager\'">\n <a class="rela-element rela-manager">\n <div class="rela-image" :style="\'background-image: url(\' + content.img + \')\'"></div>\n <div class="rela-content">\n <div class="rela-title">\n <h4>{{ content.name }}</h4>\n <div class="rp-controls"><span v-on:click="editElement()" title="Editar entrada">Editar</span> / <span v-on:click="deleteElement()" title="Eliminar entrada">Eliminar</span></div>\n </div>\n <div class="small-text is-content" :inner-html.prop="content.desc | turn-br"></div>\n </div>\n </a>\n </template>\n <template v-else-if="dataType === \'profile\'">\n <template v-if="content.type">\n <a class="rela-element" :href="content.url" target="_blank" :title="\'Ir al \' + profileName + \' de «\' + content.name + \'»\'">\n <div class="rela-image" :style="\'background-image: url(\' + content.img + \')\'"></div>\n <div class="rela-content">\n <div class="rela-title">\n <h4>{{ content.name }}</h4>\n </div>\n <div class="small-text is-content" :inner-html.prop="content.desc | turn-br"></div>\n </div>\n </a>\n </template>\n <template v-else>\n <a class="rela-element">\n <div class="rela-image" :style="\'background-image: url(\' + content.img + \')\'"></div>\n <div class="rela-content">\n <div class="rela-title">\n <h4>{{ content.name }}</h4>\n </div>\n <div class="small-text is-content" :inner-html.prop="content.desc | turn-br"></div>\n </div>\n </a>\n </template>\n </template>\n </li>\n ' });
|
package/config/vueComponents.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Vue.component('categoria-foro', {
|
|
3
3
|
props: ['dataId'],
|
|
4
4
|
computed: {
|
|
5
|
-
slugName
|
|
5
|
+
slugName() {
|
|
6
6
|
const name = (this.dataId.indexOf('<h2>') > -1 ? FNR.utility.genSlug(this.dataId.split('<h2>')[1].split('</h2>')[0], '-') : FNR.utility.genSlug(this.dataId, '-'));
|
|
7
7
|
|
|
8
8
|
return 'category-' + name;
|
|
@@ -16,7 +16,7 @@ Vue.component('categoria-foro', {
|
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
Vue.component('cabecera-foro', {
|
|
19
|
-
data
|
|
19
|
+
data() {
|
|
20
20
|
return {
|
|
21
21
|
dataTitle: this.$slots['title'][0].tag === undefined ? this.$slots['title'][0].text : this.$slots['title'][0].children[0].text
|
|
22
22
|
}
|
|
@@ -29,7 +29,7 @@ Vue.component('cabecera-foro', {
|
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
Vue.component('cabcategoria-foro', {
|
|
32
|
-
data
|
|
32
|
+
data() {
|
|
33
33
|
return {
|
|
34
34
|
dataTitle: this.$slots['title'][0].tag === undefined ? this.$slots['title'][0].text : this.$slots['title'][0].children[0].text
|
|
35
35
|
}
|
|
@@ -42,7 +42,7 @@ Vue.component('cabcategoria-foro', {
|
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
Vue.component('cabespecial-foro', {
|
|
45
|
-
data
|
|
45
|
+
data() {
|
|
46
46
|
return {
|
|
47
47
|
dataTitle: this.$slots['title'][0].tag === undefined ? this.$slots['title'][0].text : this.$slots['title'][0].children[0].text
|
|
48
48
|
}
|
|
@@ -57,7 +57,7 @@ Vue.component('cabespecial-foro', {
|
|
|
57
57
|
Vue.component('subforo-foro', {
|
|
58
58
|
props: ['dataId'],
|
|
59
59
|
computed: {
|
|
60
|
-
slugId
|
|
60
|
+
slugId() {
|
|
61
61
|
let id = '';
|
|
62
62
|
|
|
63
63
|
if (window.location.pathname.match(/f(\d+)-/)) {
|
|
@@ -68,7 +68,7 @@ Vue.component('subforo-foro', {
|
|
|
68
68
|
|
|
69
69
|
return 'subforum-' + id;
|
|
70
70
|
},
|
|
71
|
-
slugName
|
|
71
|
+
slugName() {
|
|
72
72
|
const name = (this.dataId.indexOf('<h2>') > -1 ? FNR.utility.genSlug(this.dataId.split('<h2>')[1].split('</h2>')[0], '-') : FNR.utility.genSlug(this.dataId, '-'));
|
|
73
73
|
|
|
74
74
|
return 'subforum-' + name;
|
|
@@ -83,7 +83,7 @@ Vue.component('subforo-foro', {
|
|
|
83
83
|
|
|
84
84
|
Vue.component('lista-temas-cabecera', {
|
|
85
85
|
props: ['dataElements'],
|
|
86
|
-
data
|
|
86
|
+
data() {
|
|
87
87
|
return {
|
|
88
88
|
elementos: JSON.parse(this.dataElements.replace(/'/g, '"'))
|
|
89
89
|
}
|
|
@@ -99,7 +99,7 @@ Vue.component('lista-temas-cabecera', {
|
|
|
99
99
|
|
|
100
100
|
Vue.component('tema-foro', {
|
|
101
101
|
computed: {
|
|
102
|
-
slugId
|
|
102
|
+
slugId() {
|
|
103
103
|
let id = '';
|
|
104
104
|
|
|
105
105
|
if (window.location.pathname.match(/t(\d+)-/)) {
|
|
@@ -110,7 +110,7 @@ Vue.component('tema-foro', {
|
|
|
110
110
|
|
|
111
111
|
return 'topic-' + id;
|
|
112
112
|
},
|
|
113
|
-
slugName
|
|
113
|
+
slugName() {
|
|
114
114
|
const name = FNR.utility.genSlug((this.$slots['title'][0].tag === undefined ? this.$slots['title'][0].text : this.$slots['title'][0].children[0].text), '-');
|
|
115
115
|
|
|
116
116
|
return 'topic-' + name;
|
|
@@ -125,13 +125,13 @@ Vue.component('tema-foro', {
|
|
|
125
125
|
|
|
126
126
|
Vue.component('mando-foro', {
|
|
127
127
|
props: ['dataId', 'dataApp'],
|
|
128
|
-
data
|
|
128
|
+
data() {
|
|
129
129
|
return {
|
|
130
130
|
children: 0
|
|
131
131
|
}
|
|
132
132
|
},
|
|
133
133
|
computed: {
|
|
134
|
-
isStatusClass
|
|
134
|
+
isStatusClass() {
|
|
135
135
|
if (this.children > 0) return 'forum-controls';
|
|
136
136
|
else return 'forum-controls not-show';
|
|
137
137
|
}
|
|
@@ -170,7 +170,7 @@ Vue.component('titulo-especial', {
|
|
|
170
170
|
Vue.component('cuerpo-widget', {
|
|
171
171
|
props: ['dataClass'],
|
|
172
172
|
computed: {
|
|
173
|
-
currentClass
|
|
173
|
+
currentClass() {
|
|
174
174
|
if (this.dataClass === undefined) return 'plank-inner';
|
|
175
175
|
else return 'plank-inner' + ' ' + this.dataClass;
|
|
176
176
|
}
|
|
@@ -186,7 +186,7 @@ Vue.component('cuerpo-widget', {
|
|
|
186
186
|
|
|
187
187
|
Vue.component('separador-foro', {
|
|
188
188
|
props: ['dataFaction'],
|
|
189
|
-
data
|
|
189
|
+
data() {
|
|
190
190
|
return {
|
|
191
191
|
image: forumDefaults.separator
|
|
192
192
|
}
|
|
@@ -200,13 +200,13 @@ Vue.component('separador-foro', {
|
|
|
200
200
|
|
|
201
201
|
Vue.component('tema-ref', {
|
|
202
202
|
props: ['dataInfo'],
|
|
203
|
-
data
|
|
203
|
+
data() {
|
|
204
204
|
return {
|
|
205
205
|
profileName: forumConfig.profileOptions.profileName || 'perfil'
|
|
206
206
|
}
|
|
207
207
|
},
|
|
208
208
|
computed: {
|
|
209
|
-
userColor
|
|
209
|
+
userColor() {
|
|
210
210
|
return 'color: ' + this.dataInfo.lastpost.who.color;
|
|
211
211
|
}
|
|
212
212
|
},
|
|
@@ -244,14 +244,14 @@ Vue.component('campo-foro', {
|
|
|
244
244
|
Vue.component('boton-foro', {
|
|
245
245
|
props: ['dataUrl', 'dataName', 'dataIcon', 'dataType', 'dataInput'],
|
|
246
246
|
computed: {
|
|
247
|
-
realClass
|
|
247
|
+
realClass() {
|
|
248
248
|
if (this.dataInput === 'true') return 'forum-button is-input';
|
|
249
249
|
else return 'forum-button';
|
|
250
250
|
},
|
|
251
|
-
realName
|
|
251
|
+
realName() {
|
|
252
252
|
return 'text' + (this.dataType === 'no-name' ? ' is-hidden-touch' : '');
|
|
253
253
|
},
|
|
254
|
-
realUrl
|
|
254
|
+
realUrl() {
|
|
255
255
|
if (this.dataInput === 'true') return 'javascript:{}';
|
|
256
256
|
else return this.dataUrl;
|
|
257
257
|
}
|
|
@@ -297,7 +297,7 @@ Vue.component('aviso-foro', {
|
|
|
297
297
|
});
|
|
298
298
|
|
|
299
299
|
Vue.component('afiliaciones-foro', {
|
|
300
|
-
data
|
|
300
|
+
data() {
|
|
301
301
|
return {
|
|
302
302
|
afis: {}
|
|
303
303
|
}
|
|
@@ -314,7 +314,7 @@ Vue.component('afiliaciones-foro', {
|
|
|
314
314
|
|
|
315
315
|
/* Navbar del foro */
|
|
316
316
|
Vue.component('controles-foro', {
|
|
317
|
-
data
|
|
317
|
+
data() {
|
|
318
318
|
return {
|
|
319
319
|
maPage: 0,
|
|
320
320
|
userName: _userdata.username,
|
|
@@ -327,12 +327,12 @@ Vue.component('controles-foro', {
|
|
|
327
327
|
};
|
|
328
328
|
},
|
|
329
329
|
computed: {
|
|
330
|
-
isActiveClass
|
|
330
|
+
isActiveClass() {
|
|
331
331
|
return 'has-bg' + ((this.isActive) ? ' visible' : ' not-visible');
|
|
332
332
|
}
|
|
333
333
|
},
|
|
334
334
|
methods: {
|
|
335
|
-
turnActive
|
|
335
|
+
turnActive() {
|
|
336
336
|
this.isActive = (this.isActive) ? false : true;
|
|
337
337
|
}
|
|
338
338
|
},
|
|
@@ -378,7 +378,7 @@ Vue.component('controles-foro', {
|
|
|
378
378
|
|
|
379
379
|
Vue.component('navbar-foro', {
|
|
380
380
|
props: ['dataUsername', 'dataUserlevel', 'dataUserid', 'dataUserlog', 'dataUsermp', 'dataUserout'],
|
|
381
|
-
data
|
|
381
|
+
data() {
|
|
382
382
|
return {
|
|
383
383
|
profileName: forumConfig.profileOptions.profileName || 'perfil',
|
|
384
384
|
items: forumContent.navbar,
|
|
@@ -391,20 +391,20 @@ Vue.component('navbar-foro', {
|
|
|
391
391
|
}
|
|
392
392
|
},
|
|
393
393
|
computed: {
|
|
394
|
-
isStatusClass
|
|
394
|
+
isStatusClass() {
|
|
395
395
|
return ((this.dataUserlog === 1) ? 'is-logged' : 'is-unlogged') + ((this.dataUserlevel === 1) ? ' is-admin' : ' is-user')
|
|
396
396
|
},
|
|
397
|
-
mpText
|
|
397
|
+
mpText() {
|
|
398
398
|
return 'Mensajería' + ((this.dataUsermp !== 0) ? ' (' + this.dataUsermp + ')' : '')
|
|
399
399
|
},
|
|
400
|
-
links
|
|
400
|
+
links() {
|
|
401
401
|
return forumContent.links.filter((item) => {
|
|
402
402
|
return item.icon !== undefined;
|
|
403
403
|
});
|
|
404
404
|
}
|
|
405
405
|
},
|
|
406
406
|
methods: {
|
|
407
|
-
changeAccount
|
|
407
|
+
changeAccount() {
|
|
408
408
|
this.$parent.maPage = 1;
|
|
409
409
|
|
|
410
410
|
FNR.user.changeAccount(this.dataUserout, this.multiAccount.accounts[this.multiAccount.position].name, this.multiAccount.accounts[this.multiAccount.position].password).then((r) => {
|
|
@@ -532,7 +532,7 @@ Vue.component('navbar-foro', {
|
|
|
532
532
|
|
|
533
533
|
/* Widgets del foro */
|
|
534
534
|
Vue.component('links-ayuda', {
|
|
535
|
-
data
|
|
535
|
+
data() {
|
|
536
536
|
return {
|
|
537
537
|
links: forumContent.links
|
|
538
538
|
}
|
|
@@ -545,7 +545,7 @@ Vue.component('links-ayuda', {
|
|
|
545
545
|
});
|
|
546
546
|
|
|
547
547
|
Vue.component('links-anuncios', {
|
|
548
|
-
data
|
|
548
|
+
data() {
|
|
549
549
|
return {
|
|
550
550
|
announcements: forumContent.announcements
|
|
551
551
|
}
|
|
@@ -561,7 +561,7 @@ Vue.component('links-anuncios', {
|
|
|
561
561
|
});
|
|
562
562
|
|
|
563
563
|
Vue.component('links-staff', {
|
|
564
|
-
data
|
|
564
|
+
data() {
|
|
565
565
|
return {
|
|
566
566
|
staff: forumContent.staff
|
|
567
567
|
}
|
|
@@ -574,7 +574,7 @@ Vue.component('links-staff', {
|
|
|
574
574
|
});
|
|
575
575
|
|
|
576
576
|
Vue.component('sabias-que', {
|
|
577
|
-
data
|
|
577
|
+
data() {
|
|
578
578
|
return {
|
|
579
579
|
content: {}
|
|
580
580
|
}
|
|
@@ -594,7 +594,7 @@ Vue.component('sabias-que', {
|
|
|
594
594
|
});
|
|
595
595
|
|
|
596
596
|
Vue.component('busquedas', {
|
|
597
|
-
data
|
|
597
|
+
data() {
|
|
598
598
|
return {
|
|
599
599
|
content: {}
|
|
600
600
|
}
|
|
@@ -630,7 +630,7 @@ Vue.component('note-info', {
|
|
|
630
630
|
Vue.component('redirect', {
|
|
631
631
|
props: ['dataTo'],
|
|
632
632
|
computed: {
|
|
633
|
-
currentStatus
|
|
633
|
+
currentStatus() {
|
|
634
634
|
if (window.location.pathname.match(/t(\d+)-/)) return true;
|
|
635
635
|
else return false;
|
|
636
636
|
}
|
|
@@ -689,7 +689,7 @@ Vue.component('wiki-index-items-d', {
|
|
|
689
689
|
|
|
690
690
|
Vue.component('wiki-index', {
|
|
691
691
|
computed: {
|
|
692
|
-
indexContent
|
|
692
|
+
indexContent() {
|
|
693
693
|
const getChildren = (name) => {
|
|
694
694
|
return filtered.filter((item) => {
|
|
695
695
|
return item.component.page_parent === name;
|
|
@@ -780,7 +780,7 @@ Vue.component('wiki-contenido', {
|
|
|
780
780
|
|
|
781
781
|
Vue.component('wiki-nav', {
|
|
782
782
|
computed: {
|
|
783
|
-
more
|
|
783
|
+
more() {
|
|
784
784
|
return routes.filter((item) => {
|
|
785
785
|
return item.component
|
|
786
786
|
}).filter((item) => {
|
|
@@ -789,7 +789,7 @@ Vue.component('wiki-nav', {
|
|
|
789
789
|
})[0].component.page_parent
|
|
790
790
|
}).length > 1;
|
|
791
791
|
},
|
|
792
|
-
nav
|
|
792
|
+
nav() {
|
|
793
793
|
const list = routes.filter((item) => {
|
|
794
794
|
return item.component
|
|
795
795
|
}).filter((item) => {
|
|
@@ -820,7 +820,7 @@ Vue.component('wiki-nav', {
|
|
|
820
820
|
Vue.component('wiki-children', {
|
|
821
821
|
props: ['dataName', 'dataCategory'],
|
|
822
822
|
computed: {
|
|
823
|
-
nav
|
|
823
|
+
nav() {
|
|
824
824
|
return routes.filter((item) => {
|
|
825
825
|
return item.component
|
|
826
826
|
}).filter((item) => {
|
|
@@ -840,7 +840,7 @@ Vue.component('wiki-children', {
|
|
|
840
840
|
Vue.component('modal-foro', {
|
|
841
841
|
props: ['dataTitle'],
|
|
842
842
|
methods: {
|
|
843
|
-
modalClose
|
|
843
|
+
modalClose() {
|
|
844
844
|
this.$parent.state.modal = false;
|
|
845
845
|
this.$emit('modal-close');
|
|
846
846
|
}
|
|
@@ -876,7 +876,7 @@ Vue.component('controles-modal', {
|
|
|
876
876
|
|
|
877
877
|
/* Expediente */
|
|
878
878
|
Vue.component('expediente-usuario', {
|
|
879
|
-
data
|
|
879
|
+
data() {
|
|
880
880
|
return {
|
|
881
881
|
info: {
|
|
882
882
|
name: _userdata.username,
|
|
@@ -888,16 +888,16 @@ Vue.component('expediente-usuario', {
|
|
|
888
888
|
}
|
|
889
889
|
},
|
|
890
890
|
computed: {
|
|
891
|
-
userRank
|
|
891
|
+
userRank() {
|
|
892
892
|
return this.profile.fields[forumConfig.profileOptions.profileRank].content;
|
|
893
893
|
},
|
|
894
|
-
userCite
|
|
894
|
+
userCite() {
|
|
895
895
|
return this.profile.fields[forumConfig.profileOptions.profileCite].content
|
|
896
896
|
},
|
|
897
|
-
userCover
|
|
897
|
+
userCover() {
|
|
898
898
|
return this.profile.fields[forumConfig.profileOptions.profileCover].content
|
|
899
899
|
},
|
|
900
|
-
usableMiniFields
|
|
900
|
+
usableMiniFields() {
|
|
901
901
|
if (this.config.miniFields === undefined || !this.config.miniFields.length) return [];
|
|
902
902
|
else return Object.entries(this.profile.fields).filter((item) => {
|
|
903
903
|
return this.config.miniFields.indexOf(item[0]) > -1;
|
|
@@ -921,7 +921,7 @@ Vue.component('expediente-usuario', {
|
|
|
921
921
|
};
|
|
922
922
|
});
|
|
923
923
|
},
|
|
924
|
-
usableBigFields
|
|
924
|
+
usableBigFields() {
|
|
925
925
|
if (this.config.mainFields === undefined || !Object.keys(this.config.mainFields).length) return [];
|
|
926
926
|
else return Object.entries(this.profile.fields).filter((item) => {
|
|
927
927
|
return Object.keys(this.config.mainFields).indexOf(item[0]) > -1;
|
|
@@ -947,7 +947,7 @@ Vue.component('expediente-usuario', {
|
|
|
947
947
|
};
|
|
948
948
|
});
|
|
949
949
|
},
|
|
950
|
-
lengthBigFields
|
|
950
|
+
lengthBigFields() {
|
|
951
951
|
let length = 0;
|
|
952
952
|
|
|
953
953
|
this.usableBigFields.map((item) => {
|
|
@@ -958,7 +958,7 @@ Vue.component('expediente-usuario', {
|
|
|
958
958
|
|
|
959
959
|
return length;
|
|
960
960
|
},
|
|
961
|
-
usableExtraFields
|
|
961
|
+
usableExtraFields() {
|
|
962
962
|
if (this.config.extraFields === undefined || !this.config.extraFields.length) return [];
|
|
963
963
|
else return Object.entries(this.profile.fields).filter((item) => {
|
|
964
964
|
return this.config.extraFields.indexOf(item[0]) > -1;
|
|
@@ -982,7 +982,7 @@ Vue.component('expediente-usuario', {
|
|
|
982
982
|
};
|
|
983
983
|
});
|
|
984
984
|
},
|
|
985
|
-
lengthExtraFields
|
|
985
|
+
lengthExtraFields() {
|
|
986
986
|
let length = 0;
|
|
987
987
|
|
|
988
988
|
this.usableExtraFields.map((item) => {
|
|
@@ -993,7 +993,7 @@ Vue.component('expediente-usuario', {
|
|
|
993
993
|
|
|
994
994
|
return length;
|
|
995
995
|
},
|
|
996
|
-
usableLinkFields
|
|
996
|
+
usableLinkFields() {
|
|
997
997
|
if (this.profile.contact.length) return [];
|
|
998
998
|
else return Object.entries(this.profile.contact).filter((item) => {
|
|
999
999
|
return item[1].label !== 'Mensaje Privado';
|
|
@@ -1007,15 +1007,15 @@ Vue.component('expediente-usuario', {
|
|
|
1007
1007
|
}
|
|
1008
1008
|
});
|
|
1009
1009
|
},
|
|
1010
|
-
chronologyField
|
|
1010
|
+
chronologyField() {
|
|
1011
1011
|
if (this.config.cronoField === undefined || !this.config.cronoField.length) return [];
|
|
1012
1012
|
else return FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.cronoField, '_')].content);
|
|
1013
1013
|
},
|
|
1014
|
-
relationshipsField
|
|
1014
|
+
relationshipsField() {
|
|
1015
1015
|
if (this.config.relaField === undefined || !this.config.relaField.length) return [];
|
|
1016
1016
|
else return FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.relaField, '_')].content);
|
|
1017
1017
|
},
|
|
1018
|
-
lengthHistoryFields
|
|
1018
|
+
lengthHistoryFields() {
|
|
1019
1019
|
let length = 0;
|
|
1020
1020
|
|
|
1021
1021
|
length += this.chronologyField.length;
|
|
@@ -1023,7 +1023,7 @@ Vue.component('expediente-usuario', {
|
|
|
1023
1023
|
|
|
1024
1024
|
return length;
|
|
1025
1025
|
},
|
|
1026
|
-
currentClass
|
|
1026
|
+
currentClass() {
|
|
1027
1027
|
return 'usergroup-' + this.profile.colour
|
|
1028
1028
|
}
|
|
1029
1029
|
},
|
|
@@ -1181,7 +1181,7 @@ Vue.component('expediente-usuario', {
|
|
|
1181
1181
|
Vue.component('cuerpo-principal', {
|
|
1182
1182
|
props: ['dataTitle'],
|
|
1183
1183
|
computed: {
|
|
1184
|
-
title
|
|
1184
|
+
title() {
|
|
1185
1185
|
if (typeof this.dataTitle === 'undefined') return '';
|
|
1186
1186
|
else return this.dataTitle;
|
|
1187
1187
|
}
|
|
@@ -1199,7 +1199,7 @@ Vue.component('cuerpo-principal', {
|
|
|
1199
1199
|
Vue.component('cuerpo-interior', {
|
|
1200
1200
|
props: ['dataTitle'],
|
|
1201
1201
|
computed: {
|
|
1202
|
-
title
|
|
1202
|
+
title() {
|
|
1203
1203
|
if (typeof this.dataTitle === 'undefined') return '';
|
|
1204
1204
|
else return this.dataTitle;
|
|
1205
1205
|
}
|
|
@@ -1217,7 +1217,7 @@ Vue.component('cuerpo-interior', {
|
|
|
1217
1217
|
Vue.component('cuerpo-lista', {
|
|
1218
1218
|
props: ['dataTitle'],
|
|
1219
1219
|
computed: {
|
|
1220
|
-
title
|
|
1220
|
+
title() {
|
|
1221
1221
|
if (typeof this.dataTitle === 'undefined') return '';
|
|
1222
1222
|
else return this.dataTitle;
|
|
1223
1223
|
}
|
package/config/vueElements.js
CHANGED