generic-skin 3.0.11 → 3.2.0
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/config/vueComponents.js +73 -81
- package/config/vueComponents.min.js +2 -2
- package/general.js +1 -1
- package/general.min.js +1 -1
- package/package.json +1 -1
package/config/vueComponents.js
CHANGED
|
@@ -9,7 +9,7 @@ Vue.component('categoria-foro', {
|
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
11
|
template: `
|
|
12
|
-
<section
|
|
12
|
+
<section :class="'category-element ' + slugName">
|
|
13
13
|
<slot></slot>
|
|
14
14
|
</section>
|
|
15
15
|
`
|
|
@@ -23,7 +23,7 @@ Vue.component('cabecera-foro', {
|
|
|
23
23
|
},
|
|
24
24
|
template: `
|
|
25
25
|
<div class="forum-head regular-head">
|
|
26
|
-
<titulo-especial
|
|
26
|
+
<titulo-especial :data-title="dataTitle"></titulo-especial>
|
|
27
27
|
</div>
|
|
28
28
|
`
|
|
29
29
|
});
|
|
@@ -36,7 +36,7 @@ Vue.component('cabcategoria-foro', {
|
|
|
36
36
|
},
|
|
37
37
|
template: `
|
|
38
38
|
<div class="forum-head category-head">
|
|
39
|
-
<titulo-especial
|
|
39
|
+
<titulo-especial :data-title="dataTitle"></titulo-especial>
|
|
40
40
|
</div>
|
|
41
41
|
`
|
|
42
42
|
});
|
|
@@ -49,7 +49,7 @@ Vue.component('cabespecial-foro', {
|
|
|
49
49
|
},
|
|
50
50
|
template: `
|
|
51
51
|
<div class="forum-head special-head">
|
|
52
|
-
<titulo-especial
|
|
52
|
+
<titulo-especial :data-title="dataTitle"></titulo-especial>
|
|
53
53
|
</div>
|
|
54
54
|
`
|
|
55
55
|
});
|
|
@@ -75,7 +75,7 @@ Vue.component('subforo-foro', {
|
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
77
|
template: `
|
|
78
|
-
<section
|
|
78
|
+
<section :class="'subforum-element ' + slugId + ' ' + slugName">
|
|
79
79
|
<slot></slot>
|
|
80
80
|
</section>
|
|
81
81
|
`
|
|
@@ -91,7 +91,7 @@ Vue.component('lista-temas-cabecera', {
|
|
|
91
91
|
template: `
|
|
92
92
|
<ul class="topiclist-header no-style">
|
|
93
93
|
<li v-for="element in elementos">
|
|
94
|
-
<titulo-especial
|
|
94
|
+
<titulo-especial :data-title="element"></titulo-especial>
|
|
95
95
|
</li>
|
|
96
96
|
</ul>
|
|
97
97
|
`
|
|
@@ -117,7 +117,7 @@ Vue.component('tema-foro', {
|
|
|
117
117
|
}
|
|
118
118
|
},
|
|
119
119
|
template: `
|
|
120
|
-
<section
|
|
120
|
+
<section :class="'topic-element ' + slugId + ' ' + slugName">
|
|
121
121
|
<slot></slot>
|
|
122
122
|
</section>
|
|
123
123
|
`
|
|
@@ -142,7 +142,7 @@ Vue.component('mando-foro', {
|
|
|
142
142
|
});
|
|
143
143
|
},
|
|
144
144
|
template: `
|
|
145
|
-
<section
|
|
145
|
+
<section :id="dataId" :class="isStatusClass">
|
|
146
146
|
<template v-if="dataApp === 'true'">
|
|
147
147
|
<div class="left page-pagination">
|
|
148
148
|
<slot name="pagination"></slot>
|
|
@@ -163,7 +163,7 @@ Vue.component('mando-foro', {
|
|
|
163
163
|
Vue.component('titulo-especial', {
|
|
164
164
|
props: ['dataTitle'],
|
|
165
165
|
template: `
|
|
166
|
-
<h3 class="is-tweakeable"><span class="is-measurable"
|
|
166
|
+
<h3 class="is-tweakeable"><span class="is-measurable" v-html="dataTitle"></span></h3>
|
|
167
167
|
`
|
|
168
168
|
});
|
|
169
169
|
|
|
@@ -177,7 +177,7 @@ Vue.component('cuerpo-widget', {
|
|
|
177
177
|
},
|
|
178
178
|
template: `
|
|
179
179
|
<div class="plank-content">
|
|
180
|
-
<div
|
|
180
|
+
<div :class="currentClass">
|
|
181
181
|
<slot></slot>
|
|
182
182
|
</div>
|
|
183
183
|
</div>
|
|
@@ -193,7 +193,7 @@ Vue.component('separador-foro', {
|
|
|
193
193
|
},
|
|
194
194
|
template: `
|
|
195
195
|
<section class="forumseparator-element">
|
|
196
|
-
<img
|
|
196
|
+
<img :src="image" />
|
|
197
197
|
</section>
|
|
198
198
|
`
|
|
199
199
|
});
|
|
@@ -212,12 +212,12 @@ Vue.component('tema-ref', {
|
|
|
212
212
|
},
|
|
213
213
|
template: `
|
|
214
214
|
<div class="ltopic-element">
|
|
215
|
-
<a class="ltopic-last"
|
|
215
|
+
<a class="ltopic-last" :href="dataInfo.lastpost.url" target="_blank" :title="'Ir al último mensaje del tema «' + dataInfo.name + '»'">
|
|
216
216
|
<i class="fas fa-link"></i>
|
|
217
217
|
</a>
|
|
218
218
|
<div class="ltopic-data">
|
|
219
|
-
<a class="ltopic-title"
|
|
220
|
-
<small class="ltopic-info"><a
|
|
219
|
+
<a class="ltopic-title" :href="dataInfo.url" target="_blank" :title="'Ir al tema «' + dataInfo.name + '»'">{{ dataInfo.name }}</a>
|
|
220
|
+
<small class="ltopic-info"><a :href="dataInfo.lastpost.who.url" target="_blank" :style="userColor" :title="'Ir al ' + profileName + ' de «' + dataInfo.lastpost.who.name + '»'">{{ dataInfo.lastpost.who.name | just-name }}</a>, {{ dataInfo.lastpost.date }} en <a :href="dataInfo.forum.url" target="_blank" :title="'Ir al subforo «' + dataInfo.forum.name + '»'">{{ dataInfo.forum.name }}</a></small>
|
|
221
221
|
</div>
|
|
222
222
|
</div>
|
|
223
223
|
`
|
|
@@ -263,11 +263,11 @@ Vue.component('boton-foro', {
|
|
|
263
263
|
classList.add('btn-' + FNR.utility.genSlug(this.dataName, '-'));
|
|
264
264
|
},
|
|
265
265
|
template: `
|
|
266
|
-
<a
|
|
266
|
+
<a :href="realUrl" targer="_blank" :class="realClass" :title="dataName">
|
|
267
267
|
<span class="icon">
|
|
268
|
-
<i
|
|
268
|
+
<i :class="dataIcon"></i>
|
|
269
269
|
</span>
|
|
270
|
-
<span
|
|
270
|
+
<span :class="realName">{{ dataName }}</span>
|
|
271
271
|
<span v-if="dataInput === 'true'" class="input-real">
|
|
272
272
|
<slot name="input"></slot>
|
|
273
273
|
</span>
|
|
@@ -356,15 +356,15 @@ Vue.component('controles-foro', {
|
|
|
356
356
|
</nav>
|
|
357
357
|
<nav class="right">
|
|
358
358
|
<section id="forum-navbar-desktop" class="is-hidden-touch">
|
|
359
|
-
<navbar-foro
|
|
359
|
+
<navbar-foro :data-username="userName" :data-userlevel="userLevel" :data-userid="userId" :data-userlog="userLog" :data-usermp="userMP" :data-userout="userOut" />
|
|
360
360
|
</section>
|
|
361
361
|
<section id="forum-navbar-mobile" class="is-hidden-desktop">
|
|
362
362
|
<div id="hmg-button" v-on:click="turnActive()" class="is-pointer">
|
|
363
363
|
<i class="fas fa-bars"></i>
|
|
364
364
|
</div>
|
|
365
|
-
<div id="hmg-menu"
|
|
365
|
+
<div id="hmg-menu" :class="isActiveClass">
|
|
366
366
|
<h3>{{ userName | just-name }}<i class="fas fa-times is-pointer" v-on:click="turnActive()"></i></h3>
|
|
367
|
-
<navbar-foro
|
|
367
|
+
<navbar-foro :data-username="userName" :data-userlevel="userLevel" :data-userid="userId" :data-userlog="userLog" :data-usermp="userMP" :data-userout="userOut" />
|
|
368
368
|
</div>
|
|
369
369
|
<div class="bg-active" v-on:click="turnActive()"></div>
|
|
370
370
|
</section>
|
|
@@ -430,7 +430,7 @@ Vue.component('navbar-foro', {
|
|
|
430
430
|
});
|
|
431
431
|
},
|
|
432
432
|
template: `
|
|
433
|
-
<ul
|
|
433
|
+
<ul :class="isStatusClass">
|
|
434
434
|
<template v-if="!dataUserlog">
|
|
435
435
|
<li class="navbar-item">
|
|
436
436
|
<a href="/register" title="Registrarse en el foro">
|
|
@@ -451,17 +451,17 @@ Vue.component('navbar-foro', {
|
|
|
451
451
|
</template>
|
|
452
452
|
<template v-else>
|
|
453
453
|
<li class="navbar-item is-hidden-desktop" v-for="link in links">
|
|
454
|
-
<a
|
|
454
|
+
<a :href="link.url" :title="'Ir a «' + link.name + '»'">
|
|
455
455
|
<div class="icon">
|
|
456
|
-
<i
|
|
456
|
+
<i :class="link.icon"></i>
|
|
457
457
|
</div>
|
|
458
458
|
<div class="text">{{ link.name }}</div>
|
|
459
459
|
</a>
|
|
460
460
|
</li>
|
|
461
461
|
<li class="navbar-item" v-for="item in items">
|
|
462
|
-
<a
|
|
462
|
+
<a :href="item.url" :title="'Ir a «' + item.name + '»'">
|
|
463
463
|
<div class="icon">
|
|
464
|
-
<i
|
|
464
|
+
<i :class="item.icon"></i>
|
|
465
465
|
</div>
|
|
466
466
|
<div class="text">{{ item.name }}</div>
|
|
467
467
|
</a>
|
|
@@ -490,13 +490,13 @@ Vue.component('navbar-foro', {
|
|
|
490
490
|
<div class="text">Panel Administrador</div>
|
|
491
491
|
</a>
|
|
492
492
|
</template>
|
|
493
|
-
<a class="navbar-item"
|
|
493
|
+
<a class="navbar-item" :href="directions.ucp" target="_blank" title="Ir al «Panel de Usuario»">
|
|
494
494
|
<div class="icon">
|
|
495
495
|
<i class="fas fa-sliders-h"></i>
|
|
496
496
|
</div>
|
|
497
497
|
<div class="text">Panel Usuario</div>
|
|
498
498
|
</a>
|
|
499
|
-
<a class="navbar-item"
|
|
499
|
+
<a class="navbar-item" :href="'/u' + dataUserid" :title="'Ir a tu ' + profileName">
|
|
500
500
|
<div class="icon">
|
|
501
501
|
<i class="far fa-id-card"></i>
|
|
502
502
|
</div>
|
|
@@ -508,7 +508,7 @@ Vue.component('navbar-foro', {
|
|
|
508
508
|
</div>
|
|
509
509
|
<div class="text">Temas personales</div>
|
|
510
510
|
</a>
|
|
511
|
-
<a class="navbar-item"
|
|
511
|
+
<a class="navbar-item" :href="dataUserout" title="Cerrar sesión">
|
|
512
512
|
<div class="icon">
|
|
513
513
|
<i class="fas fa-sign-out-alt"></i>
|
|
514
514
|
</div>
|
|
@@ -519,7 +519,7 @@ Vue.component('navbar-foro', {
|
|
|
519
519
|
<div class="select-container">
|
|
520
520
|
<select v-model="multiAccount.position" v-on:change="changeAccount()" v-on:click="$event.stopPropagation()">
|
|
521
521
|
<option value="-1" hidden selected>Selec. personaje</option>
|
|
522
|
-
<option v-for="(account, index) in multiAccount.accounts"
|
|
522
|
+
<option v-for="(account, index) in multiAccount.accounts" :value="index">{{ account.name }}</option>
|
|
523
523
|
</select>
|
|
524
524
|
</div>
|
|
525
525
|
</template>
|
|
@@ -539,7 +539,7 @@ Vue.component('links-ayuda', {
|
|
|
539
539
|
},
|
|
540
540
|
template: `
|
|
541
541
|
<div class="columns is-multiline is-gapless is-vcentered">
|
|
542
|
-
<a target="_blank"
|
|
542
|
+
<a target="_blank" :href="link.url" :title="'Ir a «' + link.name + '»'" class="column" v-for="link in links">{{ link.name }}</a>
|
|
543
543
|
</div>
|
|
544
544
|
`
|
|
545
545
|
});
|
|
@@ -553,7 +553,7 @@ Vue.component('links-anuncios', {
|
|
|
553
553
|
template: `
|
|
554
554
|
<div id="anmt-main">
|
|
555
555
|
<template v-for="(announcement, index) in announcements">
|
|
556
|
-
<a target="_blank"
|
|
556
|
+
<a target="_blank" :href="announcement.url" :title="'Ir al anuncio «' + announcement.name + '»'" class="anmt-element"><span class="anmt-title">{{ announcement.name }}</span><span class="anmt-date">{{ announcement.date }}</span></a>
|
|
557
557
|
<div class="anmt-sep" v-if="(announcements.length - 1) !== index"></div>
|
|
558
558
|
</template>
|
|
559
559
|
</div>
|
|
@@ -568,7 +568,7 @@ Vue.component('links-staff', {
|
|
|
568
568
|
},
|
|
569
569
|
template: `
|
|
570
570
|
<div id="admin-main">
|
|
571
|
-
<a target="_blank"
|
|
571
|
+
<a target="_blank" :href="admin.url" class="admin-element" :style="'background-image: url(' + admin.avatar + ')'" :title="admin.title" v-for="admin in staff"><span class="admin-name">{{ admin.name }}</span><span class="admin-desc">{{ admin.desc }}</span></a>
|
|
572
572
|
</div>
|
|
573
573
|
`
|
|
574
574
|
});
|
|
@@ -576,41 +576,33 @@ Vue.component('links-staff', {
|
|
|
576
576
|
Vue.component('sabias-que', {
|
|
577
577
|
data() {
|
|
578
578
|
return {
|
|
579
|
-
content:
|
|
579
|
+
content: forumContent.sq[Math.floor(Math.random() * forumContent.sq.length)]
|
|
580
580
|
}
|
|
581
581
|
},
|
|
582
582
|
created() {
|
|
583
|
-
const sq = forumContent.sq;
|
|
584
|
-
|
|
585
|
-
this.content = sq[Math.floor(Math.random() * sq.length)];
|
|
586
|
-
|
|
587
583
|
setInterval(() => {
|
|
588
|
-
this.content = sq[Math.floor(Math.random() * sq.length)];
|
|
584
|
+
this.content = forumContent.sq[Math.floor(Math.random() * forumContent.sq.length)];
|
|
589
585
|
}, 12000);
|
|
590
586
|
},
|
|
591
587
|
template: `
|
|
592
|
-
<img id="sq-img"
|
|
588
|
+
<img id="sq-img" :src="content" alt="¿Sabías que?" />
|
|
593
589
|
`
|
|
594
590
|
});
|
|
595
591
|
|
|
596
592
|
Vue.component('busquedas', {
|
|
597
593
|
data() {
|
|
598
594
|
return {
|
|
599
|
-
content:
|
|
595
|
+
content: forumContent.searches[Math.floor(Math.random() * forumContent.searches.length)]
|
|
600
596
|
}
|
|
601
597
|
},
|
|
602
598
|
created() {
|
|
603
|
-
const search = forumContent.searches;
|
|
604
|
-
|
|
605
|
-
this.content = search[Math.floor(Math.random() * search.length)];
|
|
606
|
-
|
|
607
599
|
setInterval(() => {
|
|
608
|
-
this.content =
|
|
600
|
+
this.content = forumContent.searches[Math.floor(Math.random() * forumContent.searches.length)];
|
|
609
601
|
}, 16000);
|
|
610
602
|
},
|
|
611
603
|
template: `
|
|
612
|
-
<a id="search-img"
|
|
613
|
-
<img
|
|
604
|
+
<a id="search-img" :href="content.url" target="_blank" :title="content.desc">
|
|
605
|
+
<img :src="content.img" alt="Búsqueda" />
|
|
614
606
|
</a>
|
|
615
607
|
`
|
|
616
608
|
});
|
|
@@ -672,8 +664,8 @@ Vue.component('wiki-index-items-d', {
|
|
|
672
664
|
<ul>
|
|
673
665
|
<li v-for="content in dataContent">
|
|
674
666
|
<div class="wiki-controls">
|
|
675
|
-
<router-link
|
|
676
|
-
<a class="wiki-cascade"
|
|
667
|
+
<router-link :to="content.id" v-if="!content.children.length" :title="'Ir al artículo de «' + content.name + '»'">{{ content.name }}</router-link>
|
|
668
|
+
<a class="wiki-cascade" :title="'Desplegar categoría de «' + content.name + '»'" v-else>
|
|
677
669
|
<span class="text">{{ content.name }}</span>
|
|
678
670
|
<span class="icon">
|
|
679
671
|
<i class="fas fa-plus"></i>
|
|
@@ -681,7 +673,7 @@ Vue.component('wiki-index-items-d', {
|
|
|
681
673
|
</span>
|
|
682
674
|
</a>
|
|
683
675
|
</div>
|
|
684
|
-
<wiki-index-items-d v-if="content.children.length"
|
|
676
|
+
<wiki-index-items-d v-if="content.children.length" :data-content="content.children"></wiki-index-items-d>
|
|
685
677
|
</li>
|
|
686
678
|
</ul>
|
|
687
679
|
`
|
|
@@ -723,37 +715,37 @@ Vue.component('wiki-index', {
|
|
|
723
715
|
<aside class="wiki-index is-content profile-sticky">
|
|
724
716
|
<div class="is-hidden-touch">
|
|
725
717
|
<h3>Contenido</h3>
|
|
726
|
-
<wiki-index-items-d
|
|
718
|
+
<wiki-index-items-d :data-content="indexContent"></wiki-index-items-d>
|
|
727
719
|
</div>
|
|
728
720
|
<div class="select-container is-hidden-desktop">
|
|
729
721
|
<select>
|
|
730
722
|
<option value="-1" hidden selected>Contenido</option>
|
|
731
723
|
<template v-for="content in indexContent">
|
|
732
724
|
<template v-if="content.children.length">
|
|
733
|
-
<option
|
|
725
|
+
<option :value="content.id" disabled >— {{ content.name }}</option>
|
|
734
726
|
<template v-for="content in content.children">
|
|
735
727
|
<template v-if="content.children.length">
|
|
736
|
-
<option
|
|
728
|
+
<option :value="content.id" disabled >    — {{ content.name }}</option>
|
|
737
729
|
<template v-for="content in content.children">
|
|
738
730
|
<template v-if="content.children.length">
|
|
739
|
-
<option
|
|
731
|
+
<option :value="content.id" disabled >        — {{ content.name }}</option>
|
|
740
732
|
<template v-for="content in content.children">
|
|
741
733
|
<template v-if="content.children.length">
|
|
742
|
-
<option
|
|
734
|
+
<option :value="content.id" disabled >            — {{ content.name }}</option>
|
|
743
735
|
<template v-for="content in content.children">
|
|
744
|
-
<option
|
|
736
|
+
<option :value="content.id">                — {{ content.name }}</option>
|
|
745
737
|
</template>
|
|
746
738
|
</template>
|
|
747
|
-
<option
|
|
739
|
+
<option :value="content.id" v-else >            — {{ content.name }}</option>
|
|
748
740
|
</template>
|
|
749
741
|
</template>
|
|
750
|
-
<option
|
|
742
|
+
<option :value="content.id" v-else >        — {{ content.name }}</option>
|
|
751
743
|
</template>
|
|
752
744
|
</template>
|
|
753
|
-
<option
|
|
745
|
+
<option :value="content.id" v-else >    — {{ content.name }}</option>
|
|
754
746
|
</template>
|
|
755
747
|
</template>
|
|
756
|
-
<option
|
|
748
|
+
<option :value="content.id" v-else >— {{ content.name }}</option>
|
|
757
749
|
</template>
|
|
758
750
|
</select>
|
|
759
751
|
</div>
|
|
@@ -810,9 +802,9 @@ Vue.component('wiki-nav', {
|
|
|
810
802
|
template: `
|
|
811
803
|
<div class="wiki-nav" v-if="more">
|
|
812
804
|
<h2>Navegación</h2>
|
|
813
|
-
<template v-if="nav.prev !== false">* <router-link
|
|
805
|
+
<template v-if="nav.prev !== false">* <router-link :to="nav.prev.path" :title="'Ir al artículo «' + nav.prev.component.page_name + '»'">Página anterior: {{ nav.prev.component.page_name }}</router-link></template>
|
|
814
806
|
<br v-if="nav.prev !== false && nav.next !== false"/>
|
|
815
|
-
<template v-if="nav.next !== false">* <router-link
|
|
807
|
+
<template v-if="nav.next !== false">* <router-link :to="nav.next.path" :title="'Ir al artículo «' + nav.next.component.page_name + '»'">Página siguiente: {{ nav.next.component.page_name }}</router-link></template>
|
|
816
808
|
</div>
|
|
817
809
|
`
|
|
818
810
|
});
|
|
@@ -831,7 +823,7 @@ Vue.component('wiki-children', {
|
|
|
831
823
|
template: `
|
|
832
824
|
<div class="wiki-nav" v-if="nav.length > 0">
|
|
833
825
|
<h2>{{ dataName }}</h2>
|
|
834
|
-
<template v-for="route in nav">* <router-link
|
|
826
|
+
<template v-for="route in nav">* <router-link :to="route.path" :title="'Ir al artículo «' + route.component.page_name + '»'">{{ route.component.page_name }}</router-link><br/></template>
|
|
835
827
|
</div>
|
|
836
828
|
`
|
|
837
829
|
});
|
|
@@ -1030,7 +1022,7 @@ Vue.component('expediente-usuario', {
|
|
|
1030
1022
|
template: `
|
|
1031
1023
|
<section class="profile-element">
|
|
1032
1024
|
<cabespecial-foro><template slot="title">Perfil de {{ profile.name }}</template></cabespecial-foro>
|
|
1033
|
-
<section
|
|
1025
|
+
<section :class="currentClass">
|
|
1034
1026
|
<section id="profile-head">
|
|
1035
1027
|
<div id="profile-minifields" class="profile-container is-align-items-flex-start wiki-index is-content has-text-left" v-if="lengthBigFields">
|
|
1036
1028
|
<h3>Contenido</h3>
|
|
@@ -1053,18 +1045,18 @@ Vue.component('expediente-usuario', {
|
|
|
1053
1045
|
</ul>
|
|
1054
1046
|
</div>
|
|
1055
1047
|
<ul id="profile-minifields" class="profile-container is-align-items-center wiki-index is-content" v-else>
|
|
1056
|
-
<li
|
|
1048
|
+
<li :id="'profile-minifield-' + field.id" v-for="field in usableMiniFields" class="minifield-element">
|
|
1057
1049
|
<span class="minifield-label">{{ field.title }}</span>
|
|
1058
1050
|
<span class="minifield-content">{{ field.content }}</span>
|
|
1059
1051
|
</li>
|
|
1060
1052
|
</ul>
|
|
1061
|
-
<div id="profile-userinfo"
|
|
1053
|
+
<div id="profile-userinfo" :style="'background-image: url(' + userCover + ');'">
|
|
1062
1054
|
<div id="profile-userdata">
|
|
1063
1055
|
<div id="profile-rank">{{ userRank }}</div>
|
|
1064
1056
|
<div id="profile-username">{{ profile.name }}</div>
|
|
1065
1057
|
</div>
|
|
1066
1058
|
<div id="profile-usergest" v-if="Object.keys(profile.admin).length">
|
|
1067
|
-
<a
|
|
1059
|
+
<a :href="profile.admin.admin" :title="'Administrar a «' + profile.name + '»'" target="_blank">Administrar</a> / <a :href="profile.admin.ban" :title="'Banear a «' + profile.name + '»'" target="_blank">Banear</a>
|
|
1068
1060
|
</div>
|
|
1069
1061
|
</div>
|
|
1070
1062
|
</section>
|
|
@@ -1080,27 +1072,27 @@ Vue.component('expediente-usuario', {
|
|
|
1080
1072
|
<div class="column is-half is-half-mobile">
|
|
1081
1073
|
<ul class="profile-links">
|
|
1082
1074
|
<li>
|
|
1083
|
-
<a
|
|
1084
|
-
<i
|
|
1075
|
+
<a :href="profile.links.posts" :title="'Mensajes de «' + profile.name + '»'" target="_blank">
|
|
1076
|
+
<i :class="config.contactFields.mensajes"></i> Mensajes
|
|
1085
1077
|
</a>
|
|
1086
1078
|
</li>
|
|
1087
1079
|
<li>
|
|
1088
|
-
<a
|
|
1089
|
-
<i
|
|
1080
|
+
<a :href="profile.links.topics" :title="'Temas de «' + profile.name + '»'" target="_blank">
|
|
1081
|
+
<i :class="config.contactFields.temas"></i> Temas
|
|
1090
1082
|
</a>
|
|
1091
1083
|
</li>
|
|
1092
1084
|
<li v-if="profile.contact.mensaje_privado !== undefined">
|
|
1093
|
-
<a
|
|
1094
|
-
<i
|
|
1085
|
+
<a :href="profile.contact.mensaje_privado.content" :title="'Enviar un mensaje privado a «' + profile.name + '»'" target="_blank">
|
|
1086
|
+
<i :class="config.contactFields.mp"></i> Mensaje Privado
|
|
1095
1087
|
</a>
|
|
1096
1088
|
</li>
|
|
1097
1089
|
</ul>
|
|
1098
1090
|
</div>
|
|
1099
1091
|
<div class="column is-half is-half-mobile">
|
|
1100
1092
|
<ul class="profile-links">
|
|
1101
|
-
<li
|
|
1102
|
-
<a
|
|
1103
|
-
<i
|
|
1093
|
+
<li :id="'profile-link-' + field.id" v-for="field in usableLinkFields">
|
|
1094
|
+
<a :href="field.url" :title="field.desc" target="_blank">
|
|
1095
|
+
<i :class="field.icon"></i> {{ field.title }}
|
|
1104
1096
|
</a>
|
|
1105
1097
|
</li>
|
|
1106
1098
|
</ul>
|
|
@@ -1114,14 +1106,14 @@ Vue.component('expediente-usuario', {
|
|
|
1114
1106
|
<aside id="profile-infominifields" class="wiki-index profile-sticky">
|
|
1115
1107
|
<h3>Datos básicos</h3>
|
|
1116
1108
|
<ul class="p-0">
|
|
1117
|
-
<li
|
|
1109
|
+
<li :id="'profile-minifield-' + field.id" v-for="field in usableMiniFields" class="minifield-element">
|
|
1118
1110
|
<span class="minifield-label">{{ field.title }}</span>
|
|
1119
1111
|
<span class="minifield-content">{{ field.content }}</span>
|
|
1120
1112
|
</li>
|
|
1121
1113
|
</ul>
|
|
1122
1114
|
</aside>
|
|
1123
1115
|
<ul id="profile-infofields">
|
|
1124
|
-
<li
|
|
1116
|
+
<li :id="'profile-field-' + field.id" class="profilefield-element" v-for="field in usableBigFields" v-if="field.content.length">
|
|
1125
1117
|
<div class="field-head">
|
|
1126
1118
|
<h4>{{ field.title }}</h4>
|
|
1127
1119
|
<h6>{{ field.subtitle }}</h6>
|
|
@@ -1136,7 +1128,7 @@ Vue.component('expediente-usuario', {
|
|
|
1136
1128
|
<span>Extras</span>
|
|
1137
1129
|
</div>
|
|
1138
1130
|
<ul class="profile-container profile-extra-space">
|
|
1139
|
-
<li
|
|
1131
|
+
<li :id="'profile-extrafield-' + field.id" class="extrafield-element" v-for="field in usableExtraFields" v-if="field.content.length">
|
|
1140
1132
|
<div class="extrafield-head">
|
|
1141
1133
|
<h4>{{ field.title }}</h4>
|
|
1142
1134
|
</div>
|
|
@@ -1156,7 +1148,7 @@ Vue.component('expediente-usuario', {
|
|
|
1156
1148
|
</div>
|
|
1157
1149
|
<ul id="chronology-element" class="is-two-columns-list">
|
|
1158
1150
|
<template v-for="element in chronologyField">
|
|
1159
|
-
<elemento-cronologia
|
|
1151
|
+
<elemento-cronologia :data-element="element" data-type="profile" />
|
|
1160
1152
|
</template>
|
|
1161
1153
|
</ul>
|
|
1162
1154
|
</li>
|
|
@@ -1166,7 +1158,7 @@ Vue.component('expediente-usuario', {
|
|
|
1166
1158
|
</div>
|
|
1167
1159
|
<ul id="relationships-element" class="is-two-columns-list">
|
|
1168
1160
|
<template v-for="element in relationshipsField">
|
|
1169
|
-
<elemento-relaciones
|
|
1161
|
+
<elemento-relaciones :data-element="element" data-type="profile" />
|
|
1170
1162
|
</template>
|
|
1171
1163
|
</ul>
|
|
1172
1164
|
</li>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Vue.component("categoria-foro",{props:["dataId"],computed:{slugName:function(){const n=this.dataId.indexOf("<h2>")>-1?FNR.utility.genSlug(this.dataId.split("<h2>")[1].split("</h2>")[0],"-"):FNR.utility.genSlug(this.dataId,"-");return"category-"+n}},template:"\n <section v-bind:class=\"'category-element ' + slugName\">\n \t\t<slot></slot>\n </section>\n "}),Vue.component("cabecera-foro",{data:function(){return{dataTitle:void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text}},template:'\n <div class="forum-head regular-head">\n <titulo-especial v-bind:data-title="dataTitle"></titulo-especial>\n </div>\n '}),Vue.component("cabcategoria-foro",{data:function(){return{dataTitle:void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text}},template:'\n <div class="forum-head category-head">\n <titulo-especial v-bind:data-title="dataTitle"></titulo-especial>\n </div>\n '}),Vue.component("cabespecial-foro",{data:function(){return{dataTitle:void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text}},template:'\n <div class="forum-head special-head">\n <titulo-especial v-bind:data-title="dataTitle"></titulo-especial>\n </div>\n '}),Vue.component("subforo-foro",{props:["dataId"],computed:{slugId:function(){let n="";return window.location.pathname.match(/f(\d+)-/)?n=window.location.pathname.match(/f(\d+)-/)[1]:window.location.pathname.match(/f(\d+)p(\d+)-/)&&(n=window.location.pathname.match(/f(\d+)p(\d+)-/)[1]),"subforum-"+n},slugName:function(){const n=this.dataId.indexOf("<h2>")>-1?FNR.utility.genSlug(this.dataId.split("<h2>")[1].split("</h2>")[0],"-"):FNR.utility.genSlug(this.dataId,"-");return"subforum-"+n}},template:"\n <section v-bind:class=\"'subforum-element ' + slugId + ' ' + slugName\">\n \t\t<slot></slot>\n </section>\n "}),Vue.component("lista-temas-cabecera",{props:["dataElements"],data:function(){return{elementos:JSON.parse(this.dataElements.replace(/'/g,'"'))}},template:'\n <ul class="topiclist-header no-style">\n <li v-for="element in elementos">\n <titulo-especial v-bind:data-title="element"></titulo-especial>\n </li>\n </ul>\n '}),Vue.component("tema-foro",{computed:{slugId:function(){let n="";return window.location.pathname.match(/t(\d+)-/)?n=window.location.pathname.match(/t(\d+)-/)[1]:window.location.pathname.match(/t(\d+)p(\d+)-/)&&(n=window.location.pathname.match(/t(\d+)p(\d+)-/)[1]),"topic-"+n},slugName:function(){const n=FNR.utility.genSlug(void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text,"-");return"topic-"+n}},template:"\n <section v-bind:class=\"'topic-element ' + slugId + ' ' + slugName\">\n \t\t<slot></slot>\n </section>\n "}),Vue.component("mando-foro",{props:["dataId","dataApp"],data:function(){return{children:0}},computed:{isStatusClass:function(){return this.children>0?"forum-controls":"forum-controls not-show"}},created(){Object.values(this.$slots).map(n=>{this.children+=n.length})},template:'\n <section v-bind:id="dataId" v-bind:class="isStatusClass">\n <template v-if="dataApp === \'true\'">\n <div class="left page-pagination">\n <slot name="pagination"></slot>\n </div>\n <ul class="right no-style page-buttons">\n <slot name="controls"></slot>\n </ul>\n </template>\n <template v-else>\n <div class="left page-pagination"></div>\n <ul class="right no-style page-buttons"></ul>\n </template>\n </section>\n '}),Vue.component("titulo-especial",{props:["dataTitle"],computed:{cleaned:function(){return this.dataTitle.indexOf("<h2>")>-1?this.dataTitle.split("<h2>")[1].split("</h2>")[0]:this.dataTitle},minimized:function(){return FNR.utility.genSlug(this.cleaned," ")}},template:'\n <h3 class="is-tweakeable"><span class="is-measurable" v-html="cleaned"></span></h3>\n '}),Vue.component("cuerpo-widget",{props:["dataClass"],computed:{currentClass:function(){return void 0===this.dataClass?"plank-inner":"plank-inner "+this.dataClass}},template:'\n <div class="plank-content">\n <div v-bind:class="currentClass">\n <slot></slot>\n </div>\t\t\t\t\t\t \n </div>\n '}),Vue.component("separador-foro",{props:["dataFaction"],data:function(){return{image:forumDefaults.separator}},template:'\n <section class="forumseparator-element">\n <img v-bind:src="image" />\n </section>\n '}),Vue.component("tema-ref",{props:["dataInfo"],data:function(){return{profileName:forumConfig.profileOptions.profileName||"perfil"}},computed:{userColor:function(){return"color: "+this.dataInfo.lastpost.who.color}},template:'\n <div class="ltopic-element">\n <a class="ltopic-last" v-bind:href="dataInfo.lastpost.url" target="_blank" v-bind:title="\'Ir al último mensaje del tema «\' + dataInfo.name + \'»\'">\n <i class="fas fa-link"></i>\n </a>\n <div class="ltopic-data">\n <a class="ltopic-title" v-bind:href="dataInfo.url" target="_blank" v-bind:title="\'Ir al tema «\' + dataInfo.name + \'»\'">{{ dataInfo.name }}</a>\n <small class="ltopic-info"><a v-bind:href="dataInfo.lastpost.who.url" target="_blank" v-bind:style="userColor" v-bind:title="\'Ir al \' + profileName + \' de «\' + dataInfo.lastpost.who.name + \'»\'">{{ dataInfo.lastpost.who.name | just-name }}</a>, {{ dataInfo.lastpost.date }} en <a v-bind:href="dataInfo.forum.url" target="_blank" v-bind:title="\'Ir al subforo «\' + dataInfo.forum.name + \'»\'">{{ dataInfo.forum.name }}</a></small>\n </div>\n </div>\n '}),Vue.component("campo-foro",{props:["dataName"],mounted(){const n=this.$el.parentElement.classList;n.add("field-element"),n.add("field-"+FNR.utility.genSlug(this.dataName,"-"))},template:'\n <div class="forum-field">\n <div class="field-name">{{ dataName | capitalize }}</div>\n <div class="field-content">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("boton-foro",{props:["dataUrl","dataName","dataIcon","dataType","dataInput"],computed:{realClass:function(){return"true"===this.dataInput?"forum-button is-input":"forum-button"},realName:function(){return"text"+("no-name"===this.dataType?" is-hidden-touch":"")},realUrl:function(){return"true"===this.dataInput?"javascript:{}":this.dataUrl}},mounted(){const n=this.$el.parentElement.classList;n.add("btn-element"),n.add("btn-"+FNR.utility.genSlug(this.dataName,"-"))},template:'\n <a v-bind:href="realUrl" targer="_blank" v-bind:class="realClass" v-bind:title="dataName">\n <span class="icon">\n <i v-bind:class="dataIcon"></i>\n </span>\n <span v-bind:class="realName">{{ dataName }}</span>\n <span v-if="dataInput === \'true\'" class="input-real">\n <slot name="input"></slot>\n </span>\n </a>\n '}),Vue.component("cargando-foro",{props:["dataText"],template:'\n <section id="loading-element">\n <div id="loading-content">\n <i class="fas fa-circle-notch fa-spin"></i>\n <span>{{ dataText }}</span>\n </div>\n </section>\n '}),Vue.component("aviso-foro",{template:' \n <div class="forum-infoblock">\n <h5>Antes de proceder recuerda:</h5>\n <slot></slot>\n </div>\n '}),Vue.component("afiliaciones-foro",{data:function(){return{afis:{}}},created(){FNR.forum.getAffiliates().then(n=>{this.afis=n})},template:'\n <ul v-html="afis.normal" class="no-style"></ul>\n '}),Vue.component("controles-foro",{data:function(){return{maPage:0,userName:_userdata.username,userLevel:_userdata.user_level,userId:_userdata.user_id,userLog:_userdata.session_logged_in,userMP:0,userOut:"",isActive:!1}},computed:{isActiveClass:function(){return"has-bg"+(this.isActive?" visible":" not-visible")}},methods:{turnActive:function(){this.isActive=!this.isActive}},created(){0!==this.userLog&&(null!==document.getElementById("i_icon_mini_new_message")&&null!==document.getElementById("i_icon_mini_new_message").title.match(/[0-255]/)&&(this.userMP=parseInt(document.getElementById("i_icon_mini_new_message").title.match(/[0-255]/)[0])),this.userOut=document.getElementById("logout").href)},template:'\n <div class="main-body">\n \t\t<nav id="forum-breadcrumb" class="breadcrumb has-succeeds-separator left" aria-label="breadcrumbs">\n \t<ul>\n \t<li>\n \t<a href="/" title="Ir a «Inicio»">Inicio</a>\n \t</li>\n \t</ul>\n \t</nav>\n <nav class="right"> \n <section id="forum-navbar-desktop" class="is-hidden-touch">\n <navbar-foro v-bind:data-username="userName" v-bind:data-userlevel="userLevel" v-bind:data-userid="userId" v-bind:data-userlog="userLog" v-bind:data-usermp="userMP" v-bind:data-userout="userOut" />\n </section>\n <section id="forum-navbar-mobile" class="is-hidden-desktop">\n <div id="hmg-button" v-on:click="turnActive()" class="is-pointer">\n <i class="fas fa-bars"></i>\n </div>\n <div id="hmg-menu" v-bind:class="isActiveClass">\n <h3>{{ userName | just-name }}<i class="fas fa-times is-pointer" v-on:click="turnActive()"></i></h3>\n <navbar-foro v-bind:data-username="userName" v-bind:data-userlevel="userLevel" v-bind:data-userid="userId" v-bind:data-userlog="userLog" v-bind:data-usermp="userMP" v-bind:data-userout="userOut" />\n </div>\n <div class="bg-active" v-on:click="turnActive()"></div>\n </section>\n <section v-if="maPage === 1" id="multiaccount-transition">\n <cargando-foro data-text="Cambiando de cuenta…"></cargando-foro>\n </section>\n </nav>\n </div>\n '}),Vue.component("navbar-foro",{props:["dataUsername","dataUserlevel","dataUserid","dataUserlog","dataUsermp","dataUserout"],data:function(){return{profileName:forumConfig.profileOptions.profileName||"perfil",items:forumContent.navbar,directions:forumConfig.usableDirections,multiAccount:{status:!1,position:-1,accounts:[]}}},computed:{isStatusClass:function(){return(1===this.dataUserlog?"is-logged":"is-unlogged")+(1===this.dataUserlevel?" is-admin":" is-user")},mpText:function(){return"Mensajería"+(0!==this.dataUsermp?" ("+this.dataUsermp+")":"")},links:function(){return forumContent.links.filter(n=>void 0!==n.icon)}},methods:{changeAccount:function(){this.$parent.maPage=1,FNR.user.changeAccount(this.dataUserout,this.multiAccount.accounts[this.multiAccount.position].name,this.multiAccount.accounts[this.multiAccount.position].password).then(n=>{n&&window.location.reload()})}},created(){this.multiAccount.status=!1!==FNR.cache.getData("usermultiaccounts")&&!1!==FNR.cache.getData("userpassword"),this.multiAccount.accounts=(!1===FNR.cache.getData("usermultiaccounts")?[]:FNR.cache.getData("usermultiaccounts").map(n=>({name:n.name,password:sjcl.decrypt(FNR.cache.getData("userpassword"),n.password)}))).filter(n=>n.name!==_userdata.username).sort((n,e)=>n.name<e.name?-1:n.name>e.name?1:0)},template:'\n <ul v-bind:class="isStatusClass">\n <template v-if="!dataUserlog">\n <li class="navbar-item">\n <a href="/register" title="Registrarse en el foro">\n <div class="icon">\n <i class="fas fa-user-plus"></i>\n </div>\n <div class="text">Registrarse</div>\n </a>\n </li>\n <li class="navbar-item">\n <a href="/login" title="Iniciar sesión en el foro">\n <div class="icon">\n <i class="fas fa-sign-in-alt"></i>\n </div>\n <div class="text">Conectarse</div>\n </a>\n </li>\n </template>\n <template v-else>\n <li class="navbar-item is-hidden-desktop" v-for="link in links">\n <a v-bind:href="link.url" v-bind:title="\'Ir a «\' + link.name + \'»\'">\n <div class="icon">\n <i v-bind:class="link.icon"></i>\n </div>\n <div class="text">{{ link.name }}</div>\n </a>\n </li>\n <li class="navbar-item" v-for="item in items">\n <a v-bind:href="item.url" v-bind:title="\'Ir a «\' + item.name + \'»\'">\n <div class="icon">\n <i v-bind:class="item.icon"></i>\n </div>\n <div class="text">{{ item.name }}</div>\n </a>\n </li>\n <li class="navbar-item">\n <a href="/privmsg?folder=inbox" title="Ir a tu mensajería privada">\n <div class="icon">\n <i class="fas fa-envelope"></i>\n </div>\n <div class="text">{{ mpText }}</div>\n </a>\n </li>\n <li class="navbar-item has-dropdown is-dropeable has-bg">\n <a class="navbar-link is-pointer" title="Accionar menú de usuario">\n <div class="icon">\n <i class="fas fa-user"></i>\n </div>\n <div class="text">{{ dataUsername | just-name }}</div>\n </a>\n <div class="navbar-dropdown is-right">\n <template v-if="dataUserlevel === 1">\n <a class="navbar-item" href="/admin" target="_blank" title="Ir al «Panel de Administrador»">\n <div class="icon">\n <i class="fas fa-cogs"></i>\n </div>\n <div class="text">Panel Administrador</div>\n </a>\n </template>\n <a class="navbar-item" v-bind:href="directions.ucp" target="_blank" title="Ir al «Panel de Usuario»">\n <div class="icon">\n <i class="fas fa-sliders-h"></i>\n </div>\n <div class="text">Panel Usuario</div>\n </a>\n <a class="navbar-item" v-bind:href="\'/u\' + dataUserid" v-bind:title="\'Ir a tu \' + profileName">\n <div class="icon">\n <i class="far fa-id-card"></i>\n </div>\n <div class="text">{{ profileName | capitalize }}</div>\n </a>\n <a class="navbar-item" href="/search?search_id=egosearch" title="Ir a tus temas personales">\n <div class="icon">\n <i class="fas fa-archive"></i>\n </div>\n <div class="text">Temas personales</div>\n </a>\n <a class="navbar-item" v-bind:href="dataUserout" title="Cerrar sesión">\n <div class="icon">\n <i class="fas fa-sign-out-alt"></i>\n </div>\n <div class="text">Cerrar sesión</div>\n </a>\n <template v-if="multiAccount.status">\n <hr/>\n <div class="select-container">\n <select v-model="multiAccount.position" v-on:change="changeAccount()" v-on:click="$event.stopPropagation()">\n <option value="-1" hidden selected>Selec. personaje</option>\n <option v-for="(account, index) in multiAccount.accounts" v-bind:value="index">{{ account.name }}</option>\n </select>\n </div>\n </template>\n </div>\n </li>\n </template>\n </ul>\n '}),Vue.component("links-ayuda",{data:function(){return{links:forumContent.links}},template:'\n <div class="columns is-multiline is-gapless is-vcentered">\n <a target="_blank" v-bind:href="link.url" v-bind:title="\'Ir a «\' + link.name + \'»\'" class="column" v-for="link in links">{{ link.name }}</a>\n </div>\n '}),Vue.component("links-anuncios",{data:function(){return{announcements:forumContent.announcements}},template:'\n <div id="anmt-main">\n <template v-for="(announcement, index) in announcements">\n <a target="_blank" v-bind:href="announcement.url" v-bind:title="\'Ir al anuncio «\' + announcement.name + \'»\'" class="anmt-element"><span class="anmt-title">{{ announcement.name }}</span><span class="anmt-date">{{ announcement.date }}</span></a>\n <div class="anmt-sep" v-if="(announcements.length - 1) !== index"></div>\n </template>\n </div>\n '}),Vue.component("links-staff",{data:function(){return{staff:forumContent.staff}},template:'\n <div id="admin-main">\n <a target="_blank" v-bind:href="admin.url" class="admin-element" v-bind:style="\'background-image: url(\' + admin.avatar + \')\'" v-bind:title="admin.title" v-for="admin in staff"><span class="admin-name">{{ admin.name }}</span><span class="admin-desc">{{ admin.desc }}</span></a>\n </div>\n '}),Vue.component("sabias-que",{data:function(){return{content:{}}},created(){const n=forumContent.sq;this.content=n[Math.floor(Math.random()*n.length)],setInterval(()=>{this.content=n[Math.floor(Math.random()*n.length)]},12e3)},template:'\n <img id="sq-img" v-bind:src="current" alt="¿Sabías que?" />\n '}),Vue.component("busquedas",{data:function(){return{content:{}}},created(){const n=forumContent.searches;this.content=n[Math.floor(Math.random()*n.length)],setInterval(()=>{this.content=n[Math.floor(Math.random()*n.length)]},16e3)},template:'\n <a id="search-img" v-bind:href="current.url" target="_blank" v-bind:title="current.desc">\n <img v-bind:src="current.img" alt="Búsqueda" />\n </a>\n '}),Vue.component("note-info",{template:'\n <div class="admin-block admin-note">\n <div class="admin-icon fas fa-caret-right"></div>\n <div class="admin-content admin-title">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("redirect",{props:["dataTo"],computed:{currentStatus:function(){return!!window.location.pathname.match(/t(\d+)-/)}},created(){this.currentStatus&&window.location.replace(this.dataTo)},template:'\n <div class="is-content">\n <template v-if="!currentStatus">\n <p>No hay mensaje.</p>\n </template>\n </div>\n '}),Vue.component("quote",{props:["dataFrom","from"],template:'\n <div class="admin-block admin-box user-coolquote">\n <div class="coolquote-quote">\n <div class="fas fa-quote-left"></div>\n <div class="coolquote-content">\n <slot></slot>\n </div>\n <div class="fas fa-quote-right"></div>\n </div>\n <div class="coolquote-from">{{ dataFrom }}{{ from }}</div>\n </div>\n '}),Vue.component("wiki-index-items-d",{props:["dataContent"],template:'\n <ul>\n <li v-for="content in dataContent">\n <div class="wiki-controls">\n <router-link v-bind:to="content.id" v-if="!content.children.length" v-bind:title="\'Ir al artículo de «\' + content.name + \'»\'">{{ content.name }}</router-link>\n <a class="wiki-cascade" v-bind:title="\'Desplegar categoría de «\' + content.name + \'»\'" v-else>\n <span class="text">{{ content.name }}</span>\n <span class="icon">\n <i class="fas fa-plus"></i>\n <i class="fas fa-minus"></i>\n </span>\n </a>\n </div>\n <wiki-index-items-d v-if="content.children.length" v-bind:data-content="content.children"></wiki-index-items-d>\n </li>\n </ul>\n '}),Vue.component("wiki-index",{computed:{indexContent:function(){const n=t=>e.filter(n=>n.component.page_parent===t).map(e=>({id:e.path,name:e.component.page_name,children:n(e.component.page_name)})),e=routes.filter(n=>void 0!==n.component).filter(n=>!n.component.page_skip);return e.filter(n=>void 0===n.component.page_parent).map(e=>({id:e.path,name:e.component.page_name,children:n(e.component.page_name)}))}},template:'\n <aside class="wiki-index is-content profile-sticky">\n <div class="is-hidden-touch">\n <h3>Contenido</h3>\n <wiki-index-items-d v-bind:data-content="indexContent"></wiki-index-items-d>\n </div>\n <div class="select-container is-hidden-desktop">\n <select>\n <option value="-1" hidden selected>Contenido</option>\n <template v-for="content in indexContent">\n <template v-if="content.children.length">\n <option v-bind:value="content.id" disabled >— {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option v-bind:value="content.id" disabled >    — {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option v-bind:value="content.id" disabled >        — {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option v-bind:value="content.id" disabled >            — {{ content.name }}</option>\n <template v-for="content in content.children">\n <option v-bind:value="content.id">                — {{ content.name }}</option>\n </template>\n </template>\n <option v-bind:value="content.id" v-else >            — {{ content.name }}</option>\n </template>\n </template>\n <option v-bind:value="content.id" v-else >        — {{ content.name }}</option>\n </template>\n </template>\n <option v-bind:value="content.id" v-else >    — {{ content.name }}</option>\n </template>\n </template>\n <option v-bind:value="content.id" v-else >— {{ content.name }}</option>\n </template>\n </select>\n </div>\n </aside>\n '}),Vue.component("wiki-contenido",{props:["dataMode"],template:'\n <div class="wiki-body has-small-topiclist">\n <wiki-index></wiki-index>\n <template v-if="dataMode === \'app\'">\n <slot></slot>\n </template>\n <template v-else>\n <section class="wiki-content is-dramatic">\n <slot></slot>\n </section>\n </template>\n </div>\n '}),Vue.component("wiki-nav",{computed:{more:function(){return routes.filter(n=>n.component).filter(n=>n.component.page_parent===routes.filter(n=>n.path===router.history.current.path)[0].component.page_parent).length>1},nav:function(){const n=routes.filter(n=>n.component).filter(n=>n.component.page_parent===routes.filter(n=>n.path===router.history.current.path)[0].component.page_parent),e=n.map(n=>n.path).indexOf(router.history.current.path);return{next:!(e+1>=n.length)&&n[e+1],prev:!(e-1<0)&&n[e-1]}}},template:'\n <div class="wiki-nav" v-if="more">\n <h2>Navegación</h2>\n <template v-if="nav.prev !== false">* <router-link v-bind:to="nav.prev.path" v-bind:title="\'Ir al artículo «\' + nav.prev.component.page_name + \'»\'">Página anterior: {{ nav.prev.component.page_name }}</router-link></template>\n <br v-if="nav.prev !== false && nav.next !== false"/>\n <template v-if="nav.next !== false">* <router-link v-bind:to="nav.next.path" v-bind:title="\'Ir al artículo «\' + nav.next.component.page_name + \'»\'">Página siguiente: {{ nav.next.component.page_name }}</router-link></template>\n </div>\n '}),Vue.component("wiki-children",{props:["dataName","dataCategory"],computed:{nav:function(){return routes.filter(n=>n.component).filter(n=>n.component.page_parent===this.dataCategory)}},template:'\n <div class="wiki-nav" v-if="nav.length > 0">\n <h2>{{ dataName }}</h2>\n <template v-for="route in nav">* <router-link v-bind:to="route.path" v-bind:title="\'Ir al artículo «\' + route.component.page_name + \'»\'">{{ route.component.page_name }}</router-link><br/></template>\n </div>\n '}),Vue.component("modal-foro",{props:["dataTitle"],methods:{modalClose:function(){this.$parent.state.modal=!1,this.$emit("modal-close")}},template:' \n <div id="forum-modal">\n <div class="modal-element">\n <div class="modal-title">\n <h3>{{ dataTitle }}</h3>\n <a v-on:click="modalClose()">\n <i class="fas fa-times"></i>\n </a>\n </div>\n <div class="modal-content">\n <div class="is-content">\n <slot name="content"></slot>\n </div>\n <slot name="controls"></slot>\n </div>\n </div>\n <div class="is-bgmodal bg-active" v-on:click="modalClose()"></div>\n </div>\n '}),Vue.component("controles-modal",{template:' \n <div class="modal-buttons">\n <slot></slot>\n </div>\n '}),Vue.component("expediente-usuario",{data:function(){return{info:{name:_userdata.username,level:_userdata.user_level,log:_userdata.session_logged_in},config:forumConfig.profileUser,profile:profile}},computed:{userRank:function(){return this.profile.fields[forumConfig.profileOptions.profileRank].content},userCite:function(){return this.profile.fields[forumConfig.profileOptions.profileCite].content},userCover:function(){return this.profile.fields[forumConfig.profileOptions.profileCover].content},usableMiniFields:function(){return void 0!==this.config.miniFields&&this.config.miniFields.length?Object.entries(this.profile.fields).filter(n=>this.config.miniFields.indexOf(n[0])>-1).map(n=>({id:n[0],title:n[1].label,content:n[1].content})).sort((n,e)=>this.config.miniFields.indexOf(n.id)>this.config.miniFields.indexOf(e.id)?1:-1).map(n=>({id:FNR.utility.genSlug(n.title,"-"),title:n.title,content:n.content})):[]},usableBigFields:function(){return void 0!==this.config.mainFields&&Object.keys(this.config.mainFields).length?Object.entries(this.profile.fields).filter(n=>Object.keys(this.config.mainFields).indexOf(n[0])>-1).map(n=>({id:n[0],title:n[1].label,subtitle:this.config.mainFields[n[0]],content:" -"===n[1].content?"":n[1].content})).sort((n,e)=>Object.keys(this.config.mainFields).indexOf(n.id)>Object.keys(this.config.mainFields).indexOf(e.id)?1:-1).map(n=>({id:FNR.utility.genSlug(n.title,"-"),title:n.title,subtitle:n.subtitle,content:n.content})):[]},lengthBigFields:function(){let n=0;return this.usableBigFields.map(e=>{void 0!==e.content&&(n+=e.content.length)}),n},usableExtraFields:function(){return void 0!==this.config.extraFields&&this.config.extraFields.length?Object.entries(this.profile.fields).filter(n=>this.config.extraFields.indexOf(n[0])>-1).map(n=>({id:n[0],title:n[1].label,content:" -"===n[1].content?"":n[1].content})).sort((n,e)=>this.config.extraFields.indexOf(n.id)>this.config.extraFields.indexOf(e.id)?1:-1).map(n=>({id:FNR.utility.genSlug(n.title,"-"),title:n.title,content:n.content})):[]},lengthExtraFields:function(){let n=0;return this.usableExtraFields.map(e=>{void 0!==e.content&&(n+=e.content.length)}),n},usableLinkFields:function(){return this.profile.contact.length?[]:Object.entries(this.profile.contact).filter(n=>"Mensaje Privado"!==n[1].label).map(n=>({id:FNR.utility.genSlug(n[1].label,"-"),title:n[1].label,url:n[1].content,icon:this.config.contactFields[n[0]],desc:"Ir a "+n[1].label+" de «"+this.profile.name+"»"}))},chronologyField:function(){return void 0!==this.config.cronoField&&this.config.cronoField.length?FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.cronoField,"_")].content):[]},relationshipsField:function(){return void 0!==this.config.relaField&&this.config.relaField.length?FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.relaField,"_")].content):[]},lengthHistoryFields:function(){let n=0;return n+=this.chronologyField.length,n+=this.relationshipsField.length,n},currentClass:function(){return"usergroup-"+this.profile.colour}},
|
|
2
|
-
template:' \n <section class="profile-element"> \n <cabespecial-foro><template slot="title">Perfil de {{ profile.name }}</template></cabespecial-foro>\n <section v-bind:class="currentClass">\n <section id="profile-head">\n <div id="profile-minifields" class="profile-container is-align-items-flex-start wiki-index is-content has-text-left" v-if="lengthBigFields">\n <h3>Contenido</h3>\n <ul>\n <li v-if="lengthBigFields">\n <div class="wiki-controls">\n <a href="#anchor-info">Información</a>\n </div>\n </li>\n <li v-if="lengthExtraFields">\n <div class="wiki-controls">\n <a href="#anchor-extras">Extras</a>\n </div>\n </li>\n <li v-if="lengthHistoryFields">\n <div class="wiki-controls">\n <a href="#anchor-history">Historial</a>\n </div>\n </li>\n </ul>\n </div>\n <ul id="profile-minifields" class="profile-container is-align-items-center wiki-index is-content" v-else>\n <li v-bind:id="\'profile-minifield-\' + field.id" v-for="field in usableMiniFields" class="minifield-element">\n <span class="minifield-label">{{ field.title }}</span>\n <span class="minifield-content">{{ field.content }}</span>\n </li>\n </ul>\n <div id="profile-userinfo" v-bind:style="\'background-image: url(\' + userCover + \');\'">\n <div id="profile-userdata">\n <div id="profile-rank">{{ userRank }}</div>\n <div id="profile-username">{{ profile.name }}</div>\n </div>\n <div id="profile-usergest" v-if="Object.keys(profile.admin).length">\n <a v-bind:href="profile.admin.admin" v-bind:title="\'Administrar a «\' + profile.name + \'»\'" target="_blank">Administrar</a> / <a v-bind:href="profile.admin.ban" v-bind:title="\'Banear a «\' + profile.name + \'»\'" target="_blank">Banear</a>\n </div>\n </div>\n </section>\n <section id="profile-subhead">\n <div class="columns is-vcentered">\n <div class="column is-6 is-full-mobile">\n <div id="profile-quote" class="is-content">\n <quote>{{ userCite }}</quote>\n </div>\n </div>\n <div class="column is-5 is-offset-1 is-full-mobile is-offset-0-mobile">\n <div class="columns is-flex is-vcentered">\n <div class="column is-half is-half-mobile">\n <ul class="profile-links">\n <li>\n <a v-bind:href="profile.links.posts" v-bind:title="\'Mensajes de «\' + profile.name + \'»\'" target="_blank">\n <i v-bind:class="config.contactFields.mensajes"></i> Mensajes\n </a>\n </li>\n <li>\n <a v-bind:href="profile.links.topics" v-bind:title="\'Temas de «\' + profile.name + \'»\'" target="_blank">\n <i v-bind:class="config.contactFields.temas"></i> Temas\n </a>\n </li>\n <li v-if="profile.contact.mensaje_privado !== undefined">\n <a v-bind:href="profile.contact.mensaje_privado.content" v-bind:title="\'Enviar un mensaje privado a «\' + profile.name + \'»\'" target="_blank">\n <i v-bind:class="config.contactFields.mp"></i> Mensaje Privado\n </a>\n </li>\n </ul>\n </div>\n <div class="column is-half is-half-mobile">\n <ul class="profile-links">\n <li v-bind:id="\'profile-link-\' + field.id" v-for="field in usableLinkFields">\n <a v-bind:href="field.url" v-bind:title="field.desc" target="_blank">\n <i v-bind:class="field.icon"></i> {{ field.title }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </section>\n <section id="profile-fields" class="profile-container is-relative" v-if="lengthBigFields">\n <a id="anchor-info" class="page-anchor"></a>\n <aside id="profile-infominifields" class="wiki-index profile-sticky">\n <h3>Datos básicos</h3>\n <ul class="p-0">\n <li v-bind:id="\'profile-minifield-\' + field.id" v-for="field in usableMiniFields" class="minifield-element">\n <span class="minifield-label">{{ field.title }}</span>\n <span class="minifield-content">{{ field.content }}</span>\n </li>\n </ul>\n </aside>\n <ul id="profile-infofields">\n <li v-bind:id="\'profile-field-\' + field.id" class="profilefield-element" v-for="field in usableBigFields" v-if="field.content.length">\n <div class="field-head">\n <h4>{{ field.title }}</h4>\n <h6>{{ field.subtitle }}</h6>\n </div>\n <div class="field-content is-content" v-html="field.content"></div>\n </li>\n </ul>\n </section>\n <section id="profile-extras" class="profile-extra is-relative" v-if="lengthExtraFields">\n <a id="anchor-extras" class="page-anchor"></a>\n <div class="profile-extra-header">\n <span>Extras</span>\n </div>\n <ul class="profile-container profile-extra-space">\n <li v-bind:id="\'profile-extrafield-\' + field.id" class="extrafield-element" v-for="field in usableExtraFields" v-if="field.content.length">\n <div class="extrafield-head">\n <h4>{{ field.title }}</h4>\n </div>\n <div class="extrafield-content is-content" v-html="field.content"></div>\n </li>\n </ul>\n </section>\n <section id="profile-history" class="profile-extra is-relative" v-if="lengthHistoryFields">\n <a id="anchor-history" class="page-anchor"></a>\n <div class="profile-extra-header">\n <span>Historial</span>\n </div>\n <ul class="profile-container profile-extra-space">\n <li id="profile-extrafield-chronology" class="extrafield-element" v-if="chronologyField.length">\n <div class="extrafield-head">\n <h4>Cronología</h4>\n </div>\n <ul id="chronology-element" class="is-two-columns-list">\n <template v-for="element in chronologyField">\n <elemento-cronologia v-bind:data-element="element" data-type="profile" />\n </template>\n </ul>\n </li>\n <li id="profile-extrafield-relationships" class="extrafield-element" v-if="relationshipsField.length">\n <div class="extrafield-head">\n <h4>Relaciones</h4>\n </div>\n <ul id="relationships-element" class="is-two-columns-list">\n <template v-for="element in relationshipsField">\n <elemento-relaciones v-bind:data-element="element" data-type="profile" />\n </template>\n </ul>\n </li>\n </ul>\n </section>\n </section>\n </section>\n '}),Vue.component("cuerpo-principal",{props:["dataTitle"],computed:{title:function(){return void 0===this.dataTitle?"":this.dataTitle}},template:' \n <div class="main-slat">\n <div class="mainslat-title" v-if="title.length">{{ title }}</div>\n <div class="mainslat-content">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("cuerpo-interior",{props:["dataTitle"],computed:{title:function(){return void 0===this.dataTitle?"":this.dataTitle}},template:' \n <div class="slat-interior">\n <div class="slatinterior-title" v-if="title.length">{{ title }}</div>\n <div class="slatinterior-content">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("cuerpo-lista",{props:["dataTitle"],computed:{title:function(){return void 0===this.dataTitle?"":this.dataTitle}},template:' \n <div class="slat-list">\n <div class="slatlist-title" v-if="title.length">{{ title }}</div>\n <ol class="slatlist-content">\n <slot></slot>\n </ol>\n </div>\n '});
|
|
1
|
+
Vue.component("categoria-foro",{props:["dataId"],computed:{slugName(){const e=this.dataId.indexOf("<h2>")>-1?FNR.utility.genSlug(this.dataId.split("<h2>")[1].split("</h2>")[0],"-"):FNR.utility.genSlug(this.dataId,"-");return"category-"+e}},template:"\n <section :class=\"'category-element ' + slugName\">\n \t\t<slot></slot>\n </section>\n "}),Vue.component("cabecera-foro",{data(){return{dataTitle:void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text}},template:'\n <div class="forum-head regular-head">\n <titulo-especial :data-title="dataTitle"></titulo-especial>\n </div>\n '}),Vue.component("cabcategoria-foro",{data(){return{dataTitle:void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text}},template:'\n <div class="forum-head category-head">\n <titulo-especial :data-title="dataTitle"></titulo-especial>\n </div>\n '}),Vue.component("cabespecial-foro",{data(){return{dataTitle:void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text}},template:'\n <div class="forum-head special-head">\n <titulo-especial :data-title="dataTitle"></titulo-especial>\n </div>\n '}),Vue.component("subforo-foro",{props:["dataId"],computed:{slugId(){let e="";return window.location.pathname.match(/f(\d+)-/)?e=window.location.pathname.match(/f(\d+)-/)[1]:window.location.pathname.match(/f(\d+)p(\d+)-/)&&(e=window.location.pathname.match(/f(\d+)p(\d+)-/)[1]),"subforum-"+e},slugName(){const e=this.dataId.indexOf("<h2>")>-1?FNR.utility.genSlug(this.dataId.split("<h2>")[1].split("</h2>")[0],"-"):FNR.utility.genSlug(this.dataId,"-");return"subforum-"+e}},template:"\n <section :class=\"'subforum-element ' + slugId + ' ' + slugName\">\n \t\t<slot></slot>\n </section>\n "}),Vue.component("lista-temas-cabecera",{props:["dataElements"],data(){return{elementos:JSON.parse(this.dataElements.replace(/'/g,'"'))}},template:'\n <ul class="topiclist-header no-style">\n <li v-for="element in elementos">\n <titulo-especial :data-title="element"></titulo-especial>\n </li>\n </ul>\n '}),Vue.component("tema-foro",{computed:{slugId(){let e="";return window.location.pathname.match(/t(\d+)-/)?e=window.location.pathname.match(/t(\d+)-/)[1]:window.location.pathname.match(/t(\d+)p(\d+)-/)&&(e=window.location.pathname.match(/t(\d+)p(\d+)-/)[1]),"topic-"+e},slugName(){const e=FNR.utility.genSlug(void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text,"-");return"topic-"+e}},template:"\n <section :class=\"'topic-element ' + slugId + ' ' + slugName\">\n \t\t<slot></slot>\n </section>\n "}),Vue.component("mando-foro",{props:["dataId","dataApp"],data:()=>({children:0}),computed:{isStatusClass(){return this.children>0?"forum-controls":"forum-controls not-show"}},created(){Object.values(this.$slots).map(e=>{this.children+=e.length})},template:'\n <section :id="dataId" :class="isStatusClass">\n <template v-if="dataApp === \'true\'">\n <div class="left page-pagination">\n <slot name="pagination"></slot>\n </div>\n <ul class="right no-style page-buttons">\n <slot name="controls"></slot>\n </ul>\n </template>\n <template v-else>\n <div class="left page-pagination"></div>\n <ul class="right no-style page-buttons"></ul>\n </template>\n </section>\n '}),Vue.component("titulo-especial",{props:["dataTitle"],template:'\n <h3 class="is-tweakeable"><span class="is-measurable" v-html="dataTitle"></span></h3>\n '}),Vue.component("cuerpo-widget",{props:["dataClass"],computed:{currentClass(){return void 0===this.dataClass?"plank-inner":"plank-inner "+this.dataClass}},template:'\n <div class="plank-content">\n <div :class="currentClass">\n <slot></slot>\n </div>\t\t\t\t\t\t \n </div>\n '}),Vue.component("separador-foro",{props:["dataFaction"],data:()=>({image:forumDefaults.separator}),template:'\n <section class="forumseparator-element">\n <img :src="image" />\n </section>\n '}),Vue.component("tema-ref",{props:["dataInfo"],data:()=>({profileName:forumConfig.profileOptions.profileName||"perfil"}),computed:{userColor(){return"color: "+this.dataInfo.lastpost.who.color}},template:'\n <div class="ltopic-element">\n <a class="ltopic-last" :href="dataInfo.lastpost.url" target="_blank" :title="\'Ir al último mensaje del tema «\' + dataInfo.name + \'»\'">\n <i class="fas fa-link"></i>\n </a>\n <div class="ltopic-data">\n <a class="ltopic-title" :href="dataInfo.url" target="_blank" :title="\'Ir al tema «\' + dataInfo.name + \'»\'">{{ dataInfo.name }}</a>\n <small class="ltopic-info"><a :href="dataInfo.lastpost.who.url" target="_blank" :style="userColor" :title="\'Ir al \' + profileName + \' de «\' + dataInfo.lastpost.who.name + \'»\'">{{ dataInfo.lastpost.who.name | just-name }}</a>, {{ dataInfo.lastpost.date }} en <a :href="dataInfo.forum.url" target="_blank" :title="\'Ir al subforo «\' + dataInfo.forum.name + \'»\'">{{ dataInfo.forum.name }}</a></small>\n </div>\n </div>\n '}),Vue.component("campo-foro",{props:["dataName"],mounted(){const e=this.$el.parentElement.classList;e.add("field-element"),e.add("field-"+FNR.utility.genSlug(this.dataName,"-"))},template:'\n <div class="forum-field">\n <div class="field-name">{{ dataName | capitalize }}</div>\n <div class="field-content">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("boton-foro",{props:["dataUrl","dataName","dataIcon","dataType","dataInput"],computed:{realClass(){return"true"===this.dataInput?"forum-button is-input":"forum-button"},realName(){return"text"+("no-name"===this.dataType?" is-hidden-touch":"")},realUrl(){return"true"===this.dataInput?"javascript:{}":this.dataUrl}},mounted(){const e=this.$el.parentElement.classList;e.add("btn-element"),e.add("btn-"+FNR.utility.genSlug(this.dataName,"-"))},template:'\n <a :href="realUrl" targer="_blank" :class="realClass" :title="dataName">\n <span class="icon">\n <i :class="dataIcon"></i>\n </span>\n <span :class="realName">{{ dataName }}</span>\n <span v-if="dataInput === \'true\'" class="input-real">\n <slot name="input"></slot>\n </span>\n </a>\n '}),Vue.component("cargando-foro",{props:["dataText"],template:'\n <section id="loading-element">\n <div id="loading-content">\n <i class="fas fa-circle-notch fa-spin"></i>\n <span>{{ dataText }}</span>\n </div>\n </section>\n '}),Vue.component("aviso-foro",{template:' \n <div class="forum-infoblock">\n <h5>Antes de proceder recuerda:</h5>\n <slot></slot>\n </div>\n '}),Vue.component("afiliaciones-foro",{data:()=>({afis:{}}),created(){FNR.forum.getAffiliates().then(e=>{this.afis=e})},template:'\n <ul v-html="afis.normal" class="no-style"></ul>\n '}),Vue.component("controles-foro",{data:()=>({maPage:0,userName:_userdata.username,userLevel:_userdata.user_level,userId:_userdata.user_id,userLog:_userdata.session_logged_in,userMP:0,userOut:"",isActive:!1}),computed:{isActiveClass(){return"has-bg"+(this.isActive?" visible":" not-visible")}},methods:{turnActive(){this.isActive=!this.isActive}},created(){0!==this.userLog&&(null!==document.getElementById("i_icon_mini_new_message")&&null!==document.getElementById("i_icon_mini_new_message").title.match(/[0-255]/)&&(this.userMP=parseInt(document.getElementById("i_icon_mini_new_message").title.match(/[0-255]/)[0])),this.userOut=document.getElementById("logout").href)},template:'\n <div class="main-body">\n \t\t<nav id="forum-breadcrumb" class="breadcrumb has-succeeds-separator left" aria-label="breadcrumbs">\n \t<ul>\n \t<li>\n \t<a href="/" title="Ir a «Inicio»">Inicio</a>\n \t</li>\n \t</ul>\n \t</nav>\n <nav class="right"> \n <section id="forum-navbar-desktop" class="is-hidden-touch">\n <navbar-foro :data-username="userName" :data-userlevel="userLevel" :data-userid="userId" :data-userlog="userLog" :data-usermp="userMP" :data-userout="userOut" />\n </section>\n <section id="forum-navbar-mobile" class="is-hidden-desktop">\n <div id="hmg-button" v-on:click="turnActive()" class="is-pointer">\n <i class="fas fa-bars"></i>\n </div>\n <div id="hmg-menu" :class="isActiveClass">\n <h3>{{ userName | just-name }}<i class="fas fa-times is-pointer" v-on:click="turnActive()"></i></h3>\n <navbar-foro :data-username="userName" :data-userlevel="userLevel" :data-userid="userId" :data-userlog="userLog" :data-usermp="userMP" :data-userout="userOut" />\n </div>\n <div class="bg-active" v-on:click="turnActive()"></div>\n </section>\n <section v-if="maPage === 1" id="multiaccount-transition">\n <cargando-foro data-text="Cambiando de cuenta…"></cargando-foro>\n </section>\n </nav>\n </div>\n '}),Vue.component("navbar-foro",{props:["dataUsername","dataUserlevel","dataUserid","dataUserlog","dataUsermp","dataUserout"],data:()=>({profileName:forumConfig.profileOptions.profileName||"perfil",items:forumContent.navbar,directions:forumConfig.usableDirections,multiAccount:{status:!1,position:-1,accounts:[]}}),computed:{isStatusClass(){return(1===this.dataUserlog?"is-logged":"is-unlogged")+(1===this.dataUserlevel?" is-admin":" is-user")},mpText(){return"Mensajería"+(0!==this.dataUsermp?" ("+this.dataUsermp+")":"")},links:()=>forumContent.links.filter(e=>void 0!==e.icon)},methods:{changeAccount(){this.$parent.maPage=1,FNR.user.changeAccount(this.dataUserout,this.multiAccount.accounts[this.multiAccount.position].name,this.multiAccount.accounts[this.multiAccount.position].password).then(e=>{e&&window.location.reload()})}},created(){this.multiAccount.status=!1!==FNR.cache.getData("usermultiaccounts")&&!1!==FNR.cache.getData("userpassword"),this.multiAccount.accounts=(!1===FNR.cache.getData("usermultiaccounts")?[]:FNR.cache.getData("usermultiaccounts").map(e=>({name:e.name,password:sjcl.decrypt(FNR.cache.getData("userpassword"),e.password)}))).filter(e=>e.name!==_userdata.username).sort((e,n)=>e.name<n.name?-1:e.name>n.name?1:0)},template:'\n <ul :class="isStatusClass">\n <template v-if="!dataUserlog">\n <li class="navbar-item">\n <a href="/register" title="Registrarse en el foro">\n <div class="icon">\n <i class="fas fa-user-plus"></i>\n </div>\n <div class="text">Registrarse</div>\n </a>\n </li>\n <li class="navbar-item">\n <a href="/login" title="Iniciar sesión en el foro">\n <div class="icon">\n <i class="fas fa-sign-in-alt"></i>\n </div>\n <div class="text">Conectarse</div>\n </a>\n </li>\n </template>\n <template v-else>\n <li class="navbar-item is-hidden-desktop" v-for="link in links">\n <a :href="link.url" :title="\'Ir a «\' + link.name + \'»\'">\n <div class="icon">\n <i :class="link.icon"></i>\n </div>\n <div class="text">{{ link.name }}</div>\n </a>\n </li>\n <li class="navbar-item" v-for="item in items">\n <a :href="item.url" :title="\'Ir a «\' + item.name + \'»\'">\n <div class="icon">\n <i :class="item.icon"></i>\n </div>\n <div class="text">{{ item.name }}</div>\n </a>\n </li>\n <li class="navbar-item">\n <a href="/privmsg?folder=inbox" title="Ir a tu mensajería privada">\n <div class="icon">\n <i class="fas fa-envelope"></i>\n </div>\n <div class="text">{{ mpText }}</div>\n </a>\n </li>\n <li class="navbar-item has-dropdown is-dropeable has-bg">\n <a class="navbar-link is-pointer" title="Accionar menú de usuario">\n <div class="icon">\n <i class="fas fa-user"></i>\n </div>\n <div class="text">{{ dataUsername | just-name }}</div>\n </a>\n <div class="navbar-dropdown is-right">\n <template v-if="dataUserlevel === 1">\n <a class="navbar-item" href="/admin" target="_blank" title="Ir al «Panel de Administrador»">\n <div class="icon">\n <i class="fas fa-cogs"></i>\n </div>\n <div class="text">Panel Administrador</div>\n </a>\n </template>\n <a class="navbar-item" :href="directions.ucp" target="_blank" title="Ir al «Panel de Usuario»">\n <div class="icon">\n <i class="fas fa-sliders-h"></i>\n </div>\n <div class="text">Panel Usuario</div>\n </a>\n <a class="navbar-item" :href="\'/u\' + dataUserid" :title="\'Ir a tu \' + profileName">\n <div class="icon">\n <i class="far fa-id-card"></i>\n </div>\n <div class="text">{{ profileName | capitalize }}</div>\n </a>\n <a class="navbar-item" href="/search?search_id=egosearch" title="Ir a tus temas personales">\n <div class="icon">\n <i class="fas fa-archive"></i>\n </div>\n <div class="text">Temas personales</div>\n </a>\n <a class="navbar-item" :href="dataUserout" title="Cerrar sesión">\n <div class="icon">\n <i class="fas fa-sign-out-alt"></i>\n </div>\n <div class="text">Cerrar sesión</div>\n </a>\n <template v-if="multiAccount.status">\n <hr/>\n <div class="select-container">\n <select v-model="multiAccount.position" v-on:change="changeAccount()" v-on:click="$event.stopPropagation()">\n <option value="-1" hidden selected>Selec. personaje</option>\n <option v-for="(account, index) in multiAccount.accounts" :value="index">{{ account.name }}</option>\n </select>\n </div>\n </template>\n </div>\n </li>\n </template>\n </ul>\n '}),Vue.component("links-ayuda",{data:()=>({links:forumContent.links}),template:'\n <div class="columns is-multiline is-gapless is-vcentered">\n <a target="_blank" :href="link.url" :title="\'Ir a «\' + link.name + \'»\'" class="column" v-for="link in links">{{ link.name }}</a>\n </div>\n '}),Vue.component("links-anuncios",{data:()=>({announcements:forumContent.announcements}),template:'\n <div id="anmt-main">\n <template v-for="(announcement, index) in announcements">\n <a target="_blank" :href="announcement.url" :title="\'Ir al anuncio «\' + announcement.name + \'»\'" class="anmt-element"><span class="anmt-title">{{ announcement.name }}</span><span class="anmt-date">{{ announcement.date }}</span></a>\n <div class="anmt-sep" v-if="(announcements.length - 1) !== index"></div>\n </template>\n </div>\n '}),Vue.component("links-staff",{data:()=>({staff:forumContent.staff}),template:'\n <div id="admin-main">\n <a target="_blank" :href="admin.url" class="admin-element" :style="\'background-image: url(\' + admin.avatar + \')\'" :title="admin.title" v-for="admin in staff"><span class="admin-name">{{ admin.name }}</span><span class="admin-desc">{{ admin.desc }}</span></a>\n </div>\n '}),Vue.component("sabias-que",{data:()=>({content:forumContent.sq[Math.floor(Math.random()*forumContent.sq.length)]}),created(){setInterval(()=>{this.content=forumContent.sq[Math.floor(Math.random()*forumContent.sq.length)]},12e3)},template:'\n <img id="sq-img" :src="content" alt="¿Sabías que?" />\n '}),Vue.component("busquedas",{data:()=>({content:forumContent.searches[Math.floor(Math.random()*forumContent.searches.length)]}),created(){setInterval(()=>{this.content=forumContent.searches[Math.floor(Math.random()*forumContent.searches.length)]},16e3)},template:'\n <a id="search-img" :href="content.url" target="_blank" :title="content.desc">\n <img :src="content.img" alt="Búsqueda" />\n </a>\n '}),Vue.component("note-info",{template:'\n <div class="admin-block admin-note">\n <div class="admin-icon fas fa-caret-right"></div>\n <div class="admin-content admin-title">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("redirect",{props:["dataTo"],computed:{currentStatus:()=>!!window.location.pathname.match(/t(\d+)-/)},created(){this.currentStatus&&window.location.replace(this.dataTo)},template:'\n <div class="is-content">\n <template v-if="!currentStatus">\n <p>No hay mensaje.</p>\n </template>\n </div>\n '}),Vue.component("quote",{props:["dataFrom","from"],template:'\n <div class="admin-block admin-box user-coolquote">\n <div class="coolquote-quote">\n <div class="fas fa-quote-left"></div>\n <div class="coolquote-content">\n <slot></slot>\n </div>\n <div class="fas fa-quote-right"></div>\n </div>\n <div class="coolquote-from">{{ dataFrom }}{{ from }}</div>\n </div>\n '}),Vue.component("wiki-index-items-d",{props:["dataContent"],template:'\n <ul>\n <li v-for="content in dataContent">\n <div class="wiki-controls">\n <router-link :to="content.id" v-if="!content.children.length" :title="\'Ir al artículo de «\' + content.name + \'»\'">{{ content.name }}</router-link>\n <a class="wiki-cascade" :title="\'Desplegar categoría de «\' + content.name + \'»\'" v-else>\n <span class="text">{{ content.name }}</span>\n <span class="icon">\n <i class="fas fa-plus"></i>\n <i class="fas fa-minus"></i>\n </span>\n </a>\n </div>\n <wiki-index-items-d v-if="content.children.length" :data-content="content.children"></wiki-index-items-d>\n </li>\n </ul>\n '}),Vue.component("wiki-index",{computed:{indexContent(){const e=t=>n.filter(e=>e.component.page_parent===t).map(n=>({id:n.path,name:n.component.page_name,children:e(n.component.page_name)})),n=routes.filter(e=>void 0!==e.component).filter(e=>!e.component.page_skip);return n.filter(e=>void 0===e.component.page_parent).map(n=>({id:n.path,name:n.component.page_name,children:e(n.component.page_name)}))}},template:'\n <aside class="wiki-index is-content profile-sticky">\n <div class="is-hidden-touch">\n <h3>Contenido</h3>\n <wiki-index-items-d :data-content="indexContent"></wiki-index-items-d>\n </div>\n <div class="select-container is-hidden-desktop">\n <select>\n <option value="-1" hidden selected>Contenido</option>\n <template v-for="content in indexContent">\n <template v-if="content.children.length">\n <option :value="content.id" disabled >— {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option :value="content.id" disabled >    — {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option :value="content.id" disabled >        — {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option :value="content.id" disabled >            — {{ content.name }}</option>\n <template v-for="content in content.children">\n <option :value="content.id">                — {{ content.name }}</option>\n </template>\n </template>\n <option :value="content.id" v-else >            — {{ content.name }}</option>\n </template>\n </template>\n <option :value="content.id" v-else >        — {{ content.name }}</option>\n </template>\n </template>\n <option :value="content.id" v-else >    — {{ content.name }}</option>\n </template>\n </template>\n <option :value="content.id" v-else >— {{ content.name }}</option>\n </template>\n </select>\n </div>\n </aside>\n '}),Vue.component("wiki-contenido",{props:["dataMode"],template:'\n <div class="wiki-body has-small-topiclist">\n <wiki-index></wiki-index>\n <template v-if="dataMode === \'app\'">\n <slot></slot>\n </template>\n <template v-else>\n <section class="wiki-content is-dramatic">\n <slot></slot>\n </section>\n </template>\n </div>\n '}),Vue.component("wiki-nav",{computed:{more:()=>routes.filter(e=>e.component).filter(e=>e.component.page_parent===routes.filter(e=>e.path===router.history.current.path)[0].component.page_parent).length>1,nav(){const e=routes.filter(e=>e.component).filter(e=>e.component.page_parent===routes.filter(e=>e.path===router.history.current.path)[0].component.page_parent),n=e.map(e=>e.path).indexOf(router.history.current.path);return{next:!(n+1>=e.length)&&e[n+1],prev:!(n-1<0)&&e[n-1]}}},template:'\n <div class="wiki-nav" v-if="more">\n <h2>Navegación</h2>\n <template v-if="nav.prev !== false">* <router-link :to="nav.prev.path" :title="\'Ir al artículo «\' + nav.prev.component.page_name + \'»\'">Página anterior: {{ nav.prev.component.page_name }}</router-link></template>\n <br v-if="nav.prev !== false && nav.next !== false"/>\n <template v-if="nav.next !== false">* <router-link :to="nav.next.path" :title="\'Ir al artículo «\' + nav.next.component.page_name + \'»\'">Página siguiente: {{ nav.next.component.page_name }}</router-link></template>\n </div>\n '}),Vue.component("wiki-children",{props:["dataName","dataCategory"],computed:{nav(){return routes.filter(e=>e.component).filter(e=>e.component.page_parent===this.dataCategory)}},template:'\n <div class="wiki-nav" v-if="nav.length > 0">\n <h2>{{ dataName }}</h2>\n <template v-for="route in nav">* <router-link :to="route.path" :title="\'Ir al artículo «\' + route.component.page_name + \'»\'">{{ route.component.page_name }}</router-link><br/></template>\n </div>\n '}),Vue.component("modal-foro",{props:["dataTitle"],methods:{modalClose(){this.$parent.state.modal=!1,this.$emit("modal-close")}},template:' \n <div id="forum-modal">\n <div class="modal-element">\n <div class="modal-title">\n <h3>{{ dataTitle }}</h3>\n <a v-on:click="modalClose()">\n <i class="fas fa-times"></i>\n </a>\n </div>\n <div class="modal-content">\n <div class="is-content">\n <slot name="content"></slot>\n </div>\n <slot name="controls"></slot>\n </div>\n </div>\n <div class="is-bgmodal bg-active" v-on:click="modalClose()"></div>\n </div>\n '}),Vue.component("controles-modal",{template:' \n <div class="modal-buttons">\n <slot></slot>\n </div>\n '}),Vue.component("expediente-usuario",{data:()=>({info:{name:_userdata.username,level:_userdata.user_level,log:_userdata.session_logged_in},config:forumConfig.profileUser,profile:profile}),computed:{userRank(){return this.profile.fields[forumConfig.profileOptions.profileRank].content},userCite(){return this.profile.fields[forumConfig.profileOptions.profileCite].content},userCover(){return this.profile.fields[forumConfig.profileOptions.profileCover].content},usableMiniFields(){return void 0!==this.config.miniFields&&this.config.miniFields.length?Object.entries(this.profile.fields).filter(e=>this.config.miniFields.indexOf(e[0])>-1).map(e=>({id:e[0],title:e[1].label,content:e[1].content})).sort((e,n)=>this.config.miniFields.indexOf(e.id)>this.config.miniFields.indexOf(n.id)?1:-1).map(e=>({id:FNR.utility.genSlug(e.title,"-"),title:e.title,content:e.content})):[]},usableBigFields(){return void 0!==this.config.mainFields&&Object.keys(this.config.mainFields).length?Object.entries(this.profile.fields).filter(e=>Object.keys(this.config.mainFields).indexOf(e[0])>-1).map(e=>({id:e[0],title:e[1].label,subtitle:this.config.mainFields[e[0]],content:" -"===e[1].content?"":e[1].content})).sort((e,n)=>Object.keys(this.config.mainFields).indexOf(e.id)>Object.keys(this.config.mainFields).indexOf(n.id)?1:-1).map(e=>({id:FNR.utility.genSlug(e.title,"-"),title:e.title,subtitle:e.subtitle,content:e.content})):[]},lengthBigFields(){let e=0;return this.usableBigFields.map(n=>{void 0!==n.content&&(e+=n.content.length)}),e},usableExtraFields(){return void 0!==this.config.extraFields&&this.config.extraFields.length?Object.entries(this.profile.fields).filter(e=>this.config.extraFields.indexOf(e[0])>-1).map(e=>({id:e[0],title:e[1].label,content:" -"===e[1].content?"":e[1].content})).sort((e,n)=>this.config.extraFields.indexOf(e.id)>this.config.extraFields.indexOf(n.id)?1:-1).map(e=>({id:FNR.utility.genSlug(e.title,"-"),title:e.title,content:e.content})):[]},lengthExtraFields(){let e=0;return this.usableExtraFields.map(n=>{void 0!==n.content&&(e+=n.content.length)}),e},usableLinkFields(){return this.profile.contact.length?[]:Object.entries(this.profile.contact).filter(e=>"Mensaje Privado"!==e[1].label).map(e=>({id:FNR.utility.genSlug(e[1].label,"-"),title:e[1].label,url:e[1].content,icon:this.config.contactFields[e[0]],desc:"Ir a "+e[1].label+" de «"+this.profile.name+"»"}))},chronologyField(){return void 0!==this.config.cronoField&&this.config.cronoField.length?FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.cronoField,"_")].content):[]},relationshipsField(){return void 0!==this.config.relaField&&this.config.relaField.length?FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.relaField,"_")].content):[]},lengthHistoryFields(){let e=0;return e+=this.chronologyField.length,e+=this.relationshipsField.length,e},currentClass(){return"usergroup-"+this.profile.colour}},
|
|
2
|
+
template:' \n <section class="profile-element"> \n <cabespecial-foro><template slot="title">Perfil de {{ profile.name }}</template></cabespecial-foro>\n <section :class="currentClass">\n <section id="profile-head">\n <div id="profile-minifields" class="profile-container is-align-items-flex-start wiki-index is-content has-text-left" v-if="lengthBigFields">\n <h3>Contenido</h3>\n <ul>\n <li v-if="lengthBigFields">\n <div class="wiki-controls">\n <a href="#anchor-info">Información</a>\n </div>\n </li>\n <li v-if="lengthExtraFields">\n <div class="wiki-controls">\n <a href="#anchor-extras">Extras</a>\n </div>\n </li>\n <li v-if="lengthHistoryFields">\n <div class="wiki-controls">\n <a href="#anchor-history">Historial</a>\n </div>\n </li>\n </ul>\n </div>\n <ul id="profile-minifields" class="profile-container is-align-items-center wiki-index is-content" v-else>\n <li :id="\'profile-minifield-\' + field.id" v-for="field in usableMiniFields" class="minifield-element">\n <span class="minifield-label">{{ field.title }}</span>\n <span class="minifield-content">{{ field.content }}</span>\n </li>\n </ul>\n <div id="profile-userinfo" :style="\'background-image: url(\' + userCover + \');\'">\n <div id="profile-userdata">\n <div id="profile-rank">{{ userRank }}</div>\n <div id="profile-username">{{ profile.name }}</div>\n </div>\n <div id="profile-usergest" v-if="Object.keys(profile.admin).length">\n <a :href="profile.admin.admin" :title="\'Administrar a «\' + profile.name + \'»\'" target="_blank">Administrar</a> / <a :href="profile.admin.ban" :title="\'Banear a «\' + profile.name + \'»\'" target="_blank">Banear</a>\n </div>\n </div>\n </section>\n <section id="profile-subhead">\n <div class="columns is-vcentered">\n <div class="column is-6 is-full-mobile">\n <div id="profile-quote" class="is-content">\n <quote>{{ userCite }}</quote>\n </div>\n </div>\n <div class="column is-5 is-offset-1 is-full-mobile is-offset-0-mobile">\n <div class="columns is-flex is-vcentered">\n <div class="column is-half is-half-mobile">\n <ul class="profile-links">\n <li>\n <a :href="profile.links.posts" :title="\'Mensajes de «\' + profile.name + \'»\'" target="_blank">\n <i :class="config.contactFields.mensajes"></i> Mensajes\n </a>\n </li>\n <li>\n <a :href="profile.links.topics" :title="\'Temas de «\' + profile.name + \'»\'" target="_blank">\n <i :class="config.contactFields.temas"></i> Temas\n </a>\n </li>\n <li v-if="profile.contact.mensaje_privado !== undefined">\n <a :href="profile.contact.mensaje_privado.content" :title="\'Enviar un mensaje privado a «\' + profile.name + \'»\'" target="_blank">\n <i :class="config.contactFields.mp"></i> Mensaje Privado\n </a>\n </li>\n </ul>\n </div>\n <div class="column is-half is-half-mobile">\n <ul class="profile-links">\n <li :id="\'profile-link-\' + field.id" v-for="field in usableLinkFields">\n <a :href="field.url" :title="field.desc" target="_blank">\n <i :class="field.icon"></i> {{ field.title }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </section>\n <section id="profile-fields" class="profile-container is-relative" v-if="lengthBigFields">\n <a id="anchor-info" class="page-anchor"></a>\n <aside id="profile-infominifields" class="wiki-index profile-sticky">\n <h3>Datos básicos</h3>\n <ul class="p-0">\n <li :id="\'profile-minifield-\' + field.id" v-for="field in usableMiniFields" class="minifield-element">\n <span class="minifield-label">{{ field.title }}</span>\n <span class="minifield-content">{{ field.content }}</span>\n </li>\n </ul>\n </aside>\n <ul id="profile-infofields">\n <li :id="\'profile-field-\' + field.id" class="profilefield-element" v-for="field in usableBigFields" v-if="field.content.length">\n <div class="field-head">\n <h4>{{ field.title }}</h4>\n <h6>{{ field.subtitle }}</h6>\n </div>\n <div class="field-content is-content" v-html="field.content"></div>\n </li>\n </ul>\n </section>\n <section id="profile-extras" class="profile-extra is-relative" v-if="lengthExtraFields">\n <a id="anchor-extras" class="page-anchor"></a>\n <div class="profile-extra-header">\n <span>Extras</span>\n </div>\n <ul class="profile-container profile-extra-space">\n <li :id="\'profile-extrafield-\' + field.id" class="extrafield-element" v-for="field in usableExtraFields" v-if="field.content.length">\n <div class="extrafield-head">\n <h4>{{ field.title }}</h4>\n </div>\n <div class="extrafield-content is-content" v-html="field.content"></div>\n </li>\n </ul>\n </section>\n <section id="profile-history" class="profile-extra is-relative" v-if="lengthHistoryFields">\n <a id="anchor-history" class="page-anchor"></a>\n <div class="profile-extra-header">\n <span>Historial</span>\n </div>\n <ul class="profile-container profile-extra-space">\n <li id="profile-extrafield-chronology" class="extrafield-element" v-if="chronologyField.length">\n <div class="extrafield-head">\n <h4>Cronología</h4>\n </div>\n <ul id="chronology-element" class="is-two-columns-list">\n <template v-for="element in chronologyField">\n <elemento-cronologia :data-element="element" data-type="profile" />\n </template>\n </ul>\n </li>\n <li id="profile-extrafield-relationships" class="extrafield-element" v-if="relationshipsField.length">\n <div class="extrafield-head">\n <h4>Relaciones</h4>\n </div>\n <ul id="relationships-element" class="is-two-columns-list">\n <template v-for="element in relationshipsField">\n <elemento-relaciones :data-element="element" data-type="profile" />\n </template>\n </ul>\n </li>\n </ul>\n </section>\n </section>\n </section>\n '}),Vue.component("cuerpo-principal",{props:["dataTitle"],computed:{title(){return void 0===this.dataTitle?"":this.dataTitle}},template:' \n <div class="main-slat">\n <div class="mainslat-title" v-if="title.length">{{ title }}</div>\n <div class="mainslat-content">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("cuerpo-interior",{props:["dataTitle"],computed:{title(){return void 0===this.dataTitle?"":this.dataTitle}},template:' \n <div class="slat-interior">\n <div class="slatinterior-title" v-if="title.length">{{ title }}</div>\n <div class="slatinterior-content">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("cuerpo-lista",{props:["dataTitle"],computed:{title(){return void 0===this.dataTitle?"":this.dataTitle}},template:' \n <div class="slat-list">\n <div class="slatlist-title" v-if="title.length">{{ title }}</div>\n <ol class="slatlist-content">\n <slot></slot>\n </ol>\n </div>\n '});
|
package/general.js
CHANGED
|
@@ -365,7 +365,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
365
365
|
if (document.getElementById('breadcrumbs') && document.getElementById('forum-breadcrumb')) {
|
|
366
366
|
[].forEach.call(document.getElementById('breadcrumbs').children, (item, index, arr) => {
|
|
367
367
|
let url = item.href,
|
|
368
|
-
text = item.text,
|
|
368
|
+
text = Vue.filter('mini-sanitize')(item.text),
|
|
369
369
|
special = '';
|
|
370
370
|
|
|
371
371
|
if (url.match(/c(\d+)-/) || (index + 1) === arr.length) {
|
package/general.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
console.log("%cSkin por %cGaylien 🏳️🌈","font-family: sans-serif; font-size: 1.5em","font-size: 1.5em; text-transform: uppercase; font-weight: 800; color: #c381b9;"),console.log("https://zatrapa-gaylien.tumblr.com/"),document.addEventListener("DOMContentLoaded",()=>{Promise.all([FNR.user.getLevel(),FNR.user.getGroup()]).then(e=>{document.body.classList.add("is-"+e[0]),document.body.classList.add("is-"+e[1]),document.body.classList.add("is-user"+_userdata.user_id)})}),document.addEventListener("DOMContentLoaded",()=>{-1===_userdata.user_id&&document.querySelector(".lastpost-content")?[].forEach.call(document.getElementsByClassName("lastpost-content"),e=>{let t,o,r;e.querySelector(".color-groups")?(t=e.querySelector(".color-groups"),o=t.outerHTML.split(t.innerHTML),r=t.textContent,t.outerHTML='<strong><a href="'+FNR.user.getUrl(r)+'" title="Ir al '+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+r+'»">'+o[0]+Vue.filter("just-name")(r)+o[1]+"</a></strong>",e.querySelector(".lastpost-link")&&(e.querySelector(".lastpost-link").title+=r)):(e.querySelector(".forum-last-author").innerHTML="<strong>Invitado</strong>",e.querySelector(".lastpost-link")&&(e.querySelector(".lastpost-link").title+="Invitado")),e.querySelector(".forum-last-author").outerHTML=e.querySelector(".forum-last-author > strong").outerHTML}):-1!==_userdata.user_id&&document.querySelector(".lastpost-content")&&[].forEach.call(document.getElementsByClassName("lastpost-content"),e=>{let t="<strong>Invitado</strong>";e.querySelector(".forum-last-author > strong")?(t=e.querySelector(".forum-last-author > strong > a"),t.title="Ir al "+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+t.textContent+"»",e.querySelector(".lastpost-link")&&(e.querySelector(".lastpost-link").title+=t.textContent),t.querySelector("span").textContent=Vue.filter("just-name")(t.textContent),t="<strong>"+t.outerHTML+"</strong>",t.textContent=Vue.filter("just-name")(t.textContent)):e.querySelector(".lastpost-link")&&(e.querySelector(".lastpost-link").title+="Invitado"),e.querySelector(".forum-last-author").outerHTML=t})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".forum-last-date")&&[].forEach.call(document.getElementsByClassName("lastpost-content"),e=>{const t=e.querySelector(".forum-last-date").textContent;e.querySelector(".lastpost-link").title+=", "+t,e.querySelector(".forum-last-date").outerHTML=t,e.outerHTML=e.innerHTML})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".topiclist-topics li:not(.not-status)")&&[].forEach.call(document.querySelectorAll(".topiclist-topics li:not(.not-status)"),e=>{const t=e.querySelector(".topiclist-topic .to-process .topic-status").textContent;t.indexOf("unread")>-1?e.classList.add("is-unread"):e.classList.add("is-read"),t.indexOf("locked")>-1?e.classList.add("is-closed"):t.indexOf("sticky")>1?e.classList.add("is-sticky"):t.indexOf("global_announce")>1?e.classList.add("is-global-announcement"):t.indexOf("announce")>1&&e.classList.add("is-announcement")})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".topic-creator")&&[].forEach.call(document.querySelectorAll(".topic-creator"),e=>{e.querySelector("span")?(e.querySelector("a")?(e.querySelector("a").title="Ir al "+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+e.textContent+"»",e.innerHTML="<strong>"+e.innerHTML+"</strong>"):e.innerHTML='<strong><a href="'+FNR.user.getUrl(e.textContent)+'" title="Ir al '+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+e.textContent+'»">'+e.innerHTML+"</a></strong>",e.querySelector("span").innerHTML=Vue.filter("just-name")(e.textContent)):e.innerHTML="<strong>Invitado</strong>",e.outerHTML=e.innerHTML})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".topic-pagination")&&[].forEach.call(document.querySelectorAll(".topic-pagination"),e=>{e.querySelector("strong")&&e.classList.remove("to-process")})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".topiclist-topics li:not(.is-not-lastpost)")&&[].forEach.call(document.querySelectorAll(".topiclist-topics li:not(.is-not-lastpost)"),e=>{const t=e.querySelector(".topiclist-topic .to-process .lastpost-author"),o=e.querySelector(".topiclist-topic .to-process .lastpost-link a").href,r=e.querySelector(".topiclist-topic .to-process .lastpost-date").textContent;e.querySelector(".topic-lastpost").href=o,e.querySelector(".topic-lastpost").title="Último mensaje por "+t.textContent.trim()+", "+r,e.querySelector(".topic-lastauthor")&&(t.querySelector("span")?(t.innerHTML='<strong><a href="'+FNR.user.getUrl(t.textContent)+'" title="Ir al '+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+t.textContent+'»">'+t.querySelector("span").outerHTML+"</a></strong>",t.querySelector("strong strong").textContent=Vue.filter("just-name")(t.querySelector("strong strong").textContent),e.querySelector(".topic-lastauthor").outerHTML=t.innerHTML):e.querySelector(".topic-lastauthor").outerHTML="<strong>Invitado</strong>",e.querySelector(".topic-lastauthor").outerHTML=e.querySelector(".topic-lastauthor").innerHTML),e.querySelector(".topic-lastdate")&&(e.querySelector(".topic-lastdate").outerHTML=r)})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector("#moderation")&&document.querySelector("#moderation a")?document.querySelector('a[href="#gestionar"]').href=document.querySelector("#moderation a").href:document.querySelector("#moderation")&&document.querySelector('a[href="#gestionar"]').parentElement.remove()}),document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector(".prev-post")){let e=document.querySelector("#forum-preview");""!==document.querySelectorAll(".prev-post")[0].innerHTML&&(e.querySelector(".post-content").innerHTML='<div class="is-content">'+document.querySelectorAll(".prev-post")[0].innerHTML+"</div>",e.classList.remove("to-process"))}}),document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector(".forum-otherposts")&&document.querySelector(".forum-otherposts").children.length){let e="";[].forEach.call(document.querySelector(".forum-otherposts").querySelectorAll(".post"),t=>{if(document.querySelector(".mp-main")&&document.querySelector("#forum-reply")){let o=t.querySelector(".mp-from").textContent,r=FNR.utility.getGroup("rgb_"+t.querySelector(".mp-from > span").style.color.split("rgb(")[1].split(")")[0].replace(/, /g,"_")),n=t.querySelector(".mp-date").textContent,l=t.querySelector(".is-content").innerHTML;e+='<li class="post post-mp">',e+='<section class="postlist-post usergroup-'+r+'">',e+='<ul class="post-datafields post-profile profile-sticky">',e+='<li class="datafield-user">',e+='<div class="datafield-name">Usuario</div>',e+='<strong><a href="'+FNR.user.getUrl(o)+'" target="_blank" title="Ir al '+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+o+'»">'+o+"</a></strong>",e+="</li>",e+='<li class="datafield-date">',e+='<div class="datafield-name">Fecha</div>',e+=n.indexOf("el")>-1?n.split("el ")[1]:n,e+="</li>",e+="</ul>",e+='<div class="post-content no-links">',e+='<div class="is-content">',e+=l,e+="</div>",e+="</div>",e+="</section>",e+="</li>"}else document.querySelector("#mp-body")||(t.querySelector(".post-datafields .datafield-user a > span")?(t.querySelector(".postlist-post").classList.add("usergroup-"+FNR.utility.getGroup("rgb_"+t.querySelector(".post-datafields .datafield-user a > span").style.color.split("rgb(")[1].split(")")[0].replace(/, /g,"_"))),t.querySelector(".post-datafields .datafield-user a").title="Ir al "+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+t.querySelector(".post-datafields .datafield-user a").textContent+"»",t.querySelector(".post-datafields .datafield-user a").target="_blank",""===t.querySelector(".post-datafields .datafield-user a").href&&(t.querySelector(".post-datafields .datafield-user a").href=FNR.user.getUrl(t.querySelector(".post-datafields .datafield-user a").textContent))):t.querySelector(".post-datafields .datafield-check")&&t.querySelector(".post-datafields .datafield-check").children&&1===t.querySelector(".post-datafields .datafield-check").children.length?t.querySelector(".post-datafields .datafield-check").remove():t.querySelector(".post-datafields .datafield-user a")&&""===t.querySelector(".post-datafields .datafield-user a").href&&(t.querySelector(".post-datafields .datafield-user a").outerHTML="<strong>"+t.querySelector(".post-datafields .datafield-user a").innerHTML+"</strong>",t.querySelector(".postlist-post").classList.add("usergroup-"+FNR.utility.getGroup("null"))),"UsuarioAnonymous"===t.querySelector(".post-datafields .datafield-user").textContent&&t.querySelector(".postlist-post").classList.add("usergroup-"+FNR.utility.getGroup("null")))}),document.querySelector(".mp-main")&&document.querySelector("#forum-reply")&&(document.querySelector(".forum-otherposts").innerHTML=e)}}),document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector(".forum-postlist .post:not(.panel)")){const e={responder_citando:{icon:"fas fa-quote-right",title:"Citar"},editar_borrar_este_mensaje:{icon:"fas fa-pencil-alt",title:"Editar"},borrar_este_mensaje:{icon:"fas fa-trash-alt",title:"Borrar"},ver_la_direccion_ip_del_autor:{icon:"fas fa-map-marker-alt",title:"Ver IP"},permalink:{icon:"fas fa-tag",title:"Enlace permanente"}};[].forEach.call(document.querySelectorAll(".forum-postlist .post"),t=>{if(t.children.length>1){let o="";[].forEach.call(t.querySelectorAll(".to-process .post-icons li a"),t=>{const r=e[FNR.utility.genSlug(t.querySelector("img").title)];o+='<li class="post-button-'+FNR.utility.genSlug(r.title,"-")+'">',o+='<a title="'+r.title+'" href="'+t.href+'" class="post-button">',o+='<i class="'+r.icon+'"></i>',forumConfig.nameMinibuttons&&(o+="<span>"+("Enlace permanente"===r.title?"Permalink":r.title)+"</span>"),o+="</a>",o+="</li>"}),t.querySelector(".post-buttons").innerHTML=o}else t.remove()})}}),document.addEventListener("DOMContentLoaded",()=>{null!==document.getElementById("forum-realreply")&&""===document.getElementById("forum-realreply").innerHTML&&document.getElementById("quickreply-section").remove()}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector('img[title="Citar mensaje"]')&&[].forEach.call(document.querySelectorAll('img[title="Citar mensaje"]'),e=>{let t=e.parentElement;t.title="Citar el Mensaje",t.classList.add("dropdown-item"),t.textContent="Citar el Mensaje"}),document.querySelector('img[title="Editar mensaje"]')&&[].forEach.call(document.querySelectorAll('img[title="Editar mensaje"]'),e=>{let t=e.parentElement;t.title="Editar el Mensaje",t.classList.add("dropdown-item"),t.textContent="Editar el Mensaje"})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".mp-from")&&[].forEach.call(document.querySelectorAll(".mp-from"),e=>{const t=FNR.utility.getGroup(e.querySelector("span").style.color.replace(/, /g,"_").replace(/, /g,"_").replace(/\(/g,"_").replace(/\)/g,""));e.innerHTML='<a href="'+FNR.user.getUrl(e.textContent)+'" target="_blank" title="Ir al '+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+e.textContent+'»">'+e.textContent+"</a>";let o=e.parentElement;for(;!o.classList.contains("mp-main");)o=o.parentElement;o.classList.add("usergroup-"+t)})}),document.addEventListener("DOMContentLoaded",()=>{document.getElementById("breadcrumbs")&&document.getElementById("forum-breadcrumb")&&[].forEach.call(document.getElementById("breadcrumbs").children,(e,t,o)=>{let r=e.href,n=e.text,l="";r.match(/c(\d+)-/)||t+1===o.length?(r=t+1===o.length?window.location.pathname+window.location.search:"#",l+=' class="is-hidden-touch'+(t+1===o.length?"":" is-active")+'"'):r.indexOf("#profile")>-1&&(r=FNR.user.getUrl(n)),document.querySelector("#forum-breadcrumb ul").innerHTML+="<li"+l+'><a href="'+r+'" title="Ir a «'+n+'»">'+n+"</a></li>"})}),document.addEventListener("DOMContentLoaded",()=>{const e=document.querySelector("#buttons");e&&e.children.length&&[].forEach.call(document.querySelectorAll(".page-buttons"),t=>{t.insertAdjacentHTML("afterbegin",e.innerHTML),t.parentElement.classList.contains("not-show")&&t.parentElement.classList.remove("not-show")})}),document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector("#pagination")&&document.querySelector("#pagination").children.length){const e=document.querySelector(".pag-img .sprite-arrow_prosilver_left"),t=document.querySelector(".pag-img .sprite-arrow_prosilver_right");e&&(e.parentElement.title="Ir a la página anterior",e.parentElement.classList.add("page-action"),e.parentElement.classList.remove("pag-img"),e.parentElement.innerHTML='<i class="fas fa-chevron-left"></i>'),t&&(t.parentElement.title="Ir a la página siguiente",t.parentElement.classList.add("page-action"),t.parentElement.classList.remove("pag-img"),t.parentElement.innerHTML='<i class="fas fa-chevron-right"></i>'),[].forEach.call(document.querySelectorAll("#pagination > span > a:not(.page-action)"),e=>{e.classList.add("page-link"),e.title="Ir a la página «"+e.textContent+"»"}),document.querySelector("#pagination > span > strong").title="Página actual";const o=document.querySelector("#pagination > span").innerHTML.trim().replace(/ ... /g,'<span class="page-spacer">…</span>');[].forEach.call(document.querySelectorAll(".page-pagination"),e=>{e.insertAdjacentHTML("afterbegin",o),e.parentElement.classList.contains("not-show")&&e.parentElement.classList.remove("not-show")})}}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".codebox")&&[].forEach.call(document.querySelectorAll(".codebox"),e=>{1!==e.classList.length&&e.classList.remove("codebox")}),document.querySelector(".codebox")&&[].forEach.call(document.querySelectorAll(".codebox"),e=>{const t=e.querySelector("code").innerHTML.trim();e.querySelector("dt").innerHTML='Código <em>-</em> <span class="is-pointer">Copiar</span>',e.insertAdjacentHTML("afterbegin",'<div class="adminbox-icon"><i class="fas fa-code"></i></div>'),e.querySelector("code").remove(),e.insertAdjacentHTML("beforeend","<code>"+t+"</code>")}),document.querySelector(".spoiler")&&[].forEach.call(document.querySelectorAll(".spoiler"),e=>{e.querySelector("dt").innerHTML=e.querySelector("dt").innerHTML.slice(0,-1),e.insertAdjacentHTML("afterbegin",'<div class="adminbox-icon"><i class="fas fa-archive"></i></div>')}),document.querySelector(".hidecode")&&[].forEach.call(document.querySelectorAll(".hidecode"),e=>{e.insertAdjacentHTML("afterbegin",'<div class="adminbox-icon"><i class="fas fa-eye-slash"></i></div>')}),document.querySelector("blockquote")&&([].forEach.call(document.querySelectorAll("blockquote cite"),e=>{if(e.innerHTML=e.innerHTML.replace(/escribió:/g,""),e.querySelector("a")){const t=e.querySelector("a");t.title="Ir al "+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+t.title.replace(/Ver el perfil :: /g,"")+"»"}e=e.innerHTML}),[].forEach.call(document.querySelectorAll("blockquote"),e=>{e.insertAdjacentHTML("afterbegin",'<div class="adminbox-icon"><i class="fas fa-quote-right"></i></div>')}))}),document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector("#is-form")&&document.querySelector(".msg-element")){const e=document.querySelector("#is-form").innerHTML,t={method:document.querySelector(".basic-element form").method,action:document.querySelector(".basic-element form").action,name:document.querySelector(".basic-element form").name};document.querySelector("#message-section").outerHTML='<form method="'+t.method+'" action="'+t.action+'" name="'+t.name+'" id="message-section" class="basic-element">'+document.querySelector("#message-section").innerHTML+"</form>",document.querySelector("#message-section .msg-element").insertAdjacentHTML("afterend",'<div id="usereply-comand">'+e+"</div>"),document.querySelector("#is-form").remove()}}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".is-content .post-content")&&[].forEach.call(document.querySelectorAll(".is-content .post-content"),e=>{e.classList.remove("post-content")})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".has-anchor")&&[].forEach.call(document.querySelectorAll(".has-anchor"),e=>{e.insertAdjacentHTML("afterbegin",`<a id="anchor-${e.id}" class="page-anchor"></a>`)})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".mentiontag")&&[].forEach.call(document.querySelectorAll(".mentiontag"),e=>{e.title="Ir al "+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+e.title.replace(/Ver el perfil :: /g,"")+"»"})}),document.addEventListener("DOMContentLoaded",()=>{[].forEach.call(document.querySelectorAll(".to-process"),e=>{e.remove()})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector("#forum-rules")&&(document.querySelector("#forum-rules").innerHTML=document.querySelector("#forum-rules").innerHTML.replace(/</g,"<").replace(/>/g,">"))}),document.addEventListener("DOMContentLoaded",()=>{if(forumConfig.skinOptions.allowCustomStyles&&document.querySelector("#forum-content .forum-custom-styles")){let e="";[].forEach.call(document.querySelectorAll("#forum-content .forum-custom-styles"),t=>{e+=t.innerHTML,t.remove()}),document.head.insertAdjacentHTML("beforeend",`<style>${e}</style>`)}}),document.addEventListener("DOMContentLoaded",()=>{document.dispatchEvent(forumReady)}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".codebox")&&[].forEach.call(document.querySelectorAll(".codebox"),e=>{e.querySelector("dt span").onclick=(()=>{navigator.clipboard.writeText(e.querySelector("code").innerText),FNR.html.genNotification("¡Copiado!","Recuerda engancharlo en algún lugar.","fas fa-copy")})})}),document.addEventListener("DOMContentLoaded",()=>{[].forEach.call(document.querySelectorAll(".is-clickbox"),e=>{const t=e.dataset.categorybox,o=e.dataset.categoryid;e.classList.contains("is-toggle")?e.onclick=(()=>{document.querySelector('.is-clickbox[data-categorybox="'+t+'"][data-categoryid="'+o+'"]').classList.toggle("is-active"),document.querySelector('.is-selectbox[data-categorybox="'+t+'"][data-categoryid="'+o+'"]').classList.toggle("is-active")}):e.onclick=(()=>{document.querySelector('.is-clickbox.is-active[data-categorybox="'+t+'"]').classList.remove("is-active"),document.querySelector('.is-clickbox[data-categorybox="'+t+'"][data-categoryid="'+o+'"]').classList.add("is-active"),document.querySelector('.is-selectbox.is-active[data-categorybox="'+t+'"]').classList.remove("is-active"),document.querySelector('.is-selectbox[data-categorybox="'+t+'"][data-categoryid="'+o+'"]').classList.add("is-active")})})}),document.addEventListener("DOMContentLoaded",()=>{FNR.behaviour.genWiki()}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".checkbox-click:not(.is-radio)")&&[].forEach.call(document.querySelectorAll(".checkbox-click:not(.is-radio)"),e=>{const t=e.parentElement.parentElement,o=t.querySelector(".checkbox-real input");o.checked&&t.classList.add("is-active"),e.parentElement.onclick=(()=>{t.classList.contains("is-active")?(t.classList.remove("is-active"),o.checked=!1):(t.classList.add("is-active"),o.checked=!0)})})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".checkbox-click.is-radio")&&[].forEach.call(document.querySelectorAll(".checkbox-click.is-radio"),e=>{const t=e.parentElement.parentElement,o=t.querySelector(".checkbox-real input");o.checked&&t.classList.add("is-active"),e.parentElement.onclick=(()=>{[].forEach.call(document.querySelectorAll('input[type="radio"][name="'+o.name+'"]'),e=>{const t=e.parentElement.parentElement.classList;t.contains("is-active")&&t.remove("is-active")}),t.classList.contains("is-active")?(t.classList.remove("is-active"),o.checked=!1):(t.classList.add("is-active"),o.checked=!0)})})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".is-input")&&[].forEach.call(document.querySelectorAll(".is-input"),e=>{e.onclick=(t=>{e.querySelector('input[type="submit"]').click()})})}),document.addEventListener("DOMContentLoaded",()=>{FNR.behaviour.genDropeable()}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".is-tweakeable")&&document.fonts.ready.then(()=>{[].forEach.call(document.getElementsByClassName("is-tweakeable"),e=>{const t=e.offsetWidth-parseFloat(window.getComputedStyle(e,null).paddingLeft)-parseFloat(window.getComputedStyle(e,null).paddingRight)-parseFloat(window.getComputedStyle(e,null).borderLeftWidth)-parseFloat(window.getComputedStyle(e,null).borderRightWidth);if(t>0&&e.querySelector(".is-measurable").offsetWidth>0){let o=parseFloat(window.getComputedStyle(e,null).fontSize);for(;t<e.querySelector(".is-measurable").offsetWidth;)e.style.fontSize=o+"px",o--}})})}),document.addEventListener("DOMContentLoaded",()=>{document.fonts.ready.then(()=>{document.querySelector("#forum-body > .main-body").classList.remove("is-invisible")})});
|
|
1
|
+
console.log("%cSkin por %cGaylien 🏳️🌈","font-family: sans-serif; font-size: 1.5em","font-size: 1.5em; text-transform: uppercase; font-weight: 800; color: #c381b9;"),console.log("https://zatrapa-gaylien.tumblr.com/"),document.addEventListener("DOMContentLoaded",()=>{Promise.all([FNR.user.getLevel(),FNR.user.getGroup()]).then(e=>{document.body.classList.add("is-"+e[0]),document.body.classList.add("is-"+e[1]),document.body.classList.add("is-user"+_userdata.user_id)})}),document.addEventListener("DOMContentLoaded",()=>{-1===_userdata.user_id&&document.querySelector(".lastpost-content")?[].forEach.call(document.getElementsByClassName("lastpost-content"),e=>{let t,o,r;e.querySelector(".color-groups")?(t=e.querySelector(".color-groups"),o=t.outerHTML.split(t.innerHTML),r=t.textContent,t.outerHTML='<strong><a href="'+FNR.user.getUrl(r)+'" title="Ir al '+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+r+'»">'+o[0]+Vue.filter("just-name")(r)+o[1]+"</a></strong>",e.querySelector(".lastpost-link")&&(e.querySelector(".lastpost-link").title+=r)):(e.querySelector(".forum-last-author").innerHTML="<strong>Invitado</strong>",e.querySelector(".lastpost-link")&&(e.querySelector(".lastpost-link").title+="Invitado")),e.querySelector(".forum-last-author").outerHTML=e.querySelector(".forum-last-author > strong").outerHTML}):-1!==_userdata.user_id&&document.querySelector(".lastpost-content")&&[].forEach.call(document.getElementsByClassName("lastpost-content"),e=>{let t="<strong>Invitado</strong>";e.querySelector(".forum-last-author > strong")?(t=e.querySelector(".forum-last-author > strong > a"),t.title="Ir al "+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+t.textContent+"»",e.querySelector(".lastpost-link")&&(e.querySelector(".lastpost-link").title+=t.textContent),t.querySelector("span").textContent=Vue.filter("just-name")(t.textContent),t="<strong>"+t.outerHTML+"</strong>",t.textContent=Vue.filter("just-name")(t.textContent)):e.querySelector(".lastpost-link")&&(e.querySelector(".lastpost-link").title+="Invitado"),e.querySelector(".forum-last-author").outerHTML=t})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".forum-last-date")&&[].forEach.call(document.getElementsByClassName("lastpost-content"),e=>{const t=e.querySelector(".forum-last-date").textContent;e.querySelector(".lastpost-link").title+=", "+t,e.querySelector(".forum-last-date").outerHTML=t,e.outerHTML=e.innerHTML})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".topiclist-topics li:not(.not-status)")&&[].forEach.call(document.querySelectorAll(".topiclist-topics li:not(.not-status)"),e=>{const t=e.querySelector(".topiclist-topic .to-process .topic-status").textContent;t.indexOf("unread")>-1?e.classList.add("is-unread"):e.classList.add("is-read"),t.indexOf("locked")>-1?e.classList.add("is-closed"):t.indexOf("sticky")>1?e.classList.add("is-sticky"):t.indexOf("global_announce")>1?e.classList.add("is-global-announcement"):t.indexOf("announce")>1&&e.classList.add("is-announcement")})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".topic-creator")&&[].forEach.call(document.querySelectorAll(".topic-creator"),e=>{e.querySelector("span")?(e.querySelector("a")?(e.querySelector("a").title="Ir al "+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+e.textContent+"»",e.innerHTML="<strong>"+e.innerHTML+"</strong>"):e.innerHTML='<strong><a href="'+FNR.user.getUrl(e.textContent)+'" title="Ir al '+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+e.textContent+'»">'+e.innerHTML+"</a></strong>",e.querySelector("span").innerHTML=Vue.filter("just-name")(e.textContent)):e.innerHTML="<strong>Invitado</strong>",e.outerHTML=e.innerHTML})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".topic-pagination")&&[].forEach.call(document.querySelectorAll(".topic-pagination"),e=>{e.querySelector("strong")&&e.classList.remove("to-process")})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".topiclist-topics li:not(.is-not-lastpost)")&&[].forEach.call(document.querySelectorAll(".topiclist-topics li:not(.is-not-lastpost)"),e=>{const t=e.querySelector(".topiclist-topic .to-process .lastpost-author"),o=e.querySelector(".topiclist-topic .to-process .lastpost-link a").href,r=e.querySelector(".topiclist-topic .to-process .lastpost-date").textContent;e.querySelector(".topic-lastpost").href=o,e.querySelector(".topic-lastpost").title="Último mensaje por "+t.textContent.trim()+", "+r,e.querySelector(".topic-lastauthor")&&(t.querySelector("span")?(t.innerHTML='<strong><a href="'+FNR.user.getUrl(t.textContent)+'" title="Ir al '+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+t.textContent+'»">'+t.querySelector("span").outerHTML+"</a></strong>",t.querySelector("strong strong").textContent=Vue.filter("just-name")(t.querySelector("strong strong").textContent),e.querySelector(".topic-lastauthor").outerHTML=t.innerHTML):e.querySelector(".topic-lastauthor").outerHTML="<strong>Invitado</strong>",e.querySelector(".topic-lastauthor").outerHTML=e.querySelector(".topic-lastauthor").innerHTML),e.querySelector(".topic-lastdate")&&(e.querySelector(".topic-lastdate").outerHTML=r)})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector("#moderation")&&document.querySelector("#moderation a")?document.querySelector('a[href="#gestionar"]').href=document.querySelector("#moderation a").href:document.querySelector("#moderation")&&document.querySelector('a[href="#gestionar"]').parentElement.remove()}),document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector(".prev-post")){let e=document.querySelector("#forum-preview");""!==document.querySelectorAll(".prev-post")[0].innerHTML&&(e.querySelector(".post-content").innerHTML='<div class="is-content">'+document.querySelectorAll(".prev-post")[0].innerHTML+"</div>",e.classList.remove("to-process"))}}),document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector(".forum-otherposts")&&document.querySelector(".forum-otherposts").children.length){let e="";[].forEach.call(document.querySelector(".forum-otherposts").querySelectorAll(".post"),t=>{if(document.querySelector(".mp-main")&&document.querySelector("#forum-reply")){let o=t.querySelector(".mp-from").textContent,r=FNR.utility.getGroup("rgb_"+t.querySelector(".mp-from > span").style.color.split("rgb(")[1].split(")")[0].replace(/, /g,"_")),n=t.querySelector(".mp-date").textContent,l=t.querySelector(".is-content").innerHTML;e+='<li class="post post-mp">',e+='<section class="postlist-post usergroup-'+r+'">',e+='<ul class="post-datafields post-profile profile-sticky">',e+='<li class="datafield-user">',e+='<div class="datafield-name">Usuario</div>',e+='<strong><a href="'+FNR.user.getUrl(o)+'" target="_blank" title="Ir al '+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+o+'»">'+o+"</a></strong>",e+="</li>",e+='<li class="datafield-date">',e+='<div class="datafield-name">Fecha</div>',e+=n.indexOf("el")>-1?n.split("el ")[1]:n,e+="</li>",e+="</ul>",e+='<div class="post-content no-links">',e+='<div class="is-content">',e+=l,e+="</div>",e+="</div>",e+="</section>",e+="</li>"}else document.querySelector("#mp-body")||(t.querySelector(".post-datafields .datafield-user a > span")?(t.querySelector(".postlist-post").classList.add("usergroup-"+FNR.utility.getGroup("rgb_"+t.querySelector(".post-datafields .datafield-user a > span").style.color.split("rgb(")[1].split(")")[0].replace(/, /g,"_"))),t.querySelector(".post-datafields .datafield-user a").title="Ir al "+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+t.querySelector(".post-datafields .datafield-user a").textContent+"»",t.querySelector(".post-datafields .datafield-user a").target="_blank",""===t.querySelector(".post-datafields .datafield-user a").href&&(t.querySelector(".post-datafields .datafield-user a").href=FNR.user.getUrl(t.querySelector(".post-datafields .datafield-user a").textContent))):t.querySelector(".post-datafields .datafield-check")&&t.querySelector(".post-datafields .datafield-check").children&&1===t.querySelector(".post-datafields .datafield-check").children.length?t.querySelector(".post-datafields .datafield-check").remove():t.querySelector(".post-datafields .datafield-user a")&&""===t.querySelector(".post-datafields .datafield-user a").href&&(t.querySelector(".post-datafields .datafield-user a").outerHTML="<strong>"+t.querySelector(".post-datafields .datafield-user a").innerHTML+"</strong>",t.querySelector(".postlist-post").classList.add("usergroup-"+FNR.utility.getGroup("null"))),"UsuarioAnonymous"===t.querySelector(".post-datafields .datafield-user").textContent&&t.querySelector(".postlist-post").classList.add("usergroup-"+FNR.utility.getGroup("null")))}),document.querySelector(".mp-main")&&document.querySelector("#forum-reply")&&(document.querySelector(".forum-otherposts").innerHTML=e)}}),document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector(".forum-postlist .post:not(.panel)")){const e={responder_citando:{icon:"fas fa-quote-right",title:"Citar"},editar_borrar_este_mensaje:{icon:"fas fa-pencil-alt",title:"Editar"},borrar_este_mensaje:{icon:"fas fa-trash-alt",title:"Borrar"},ver_la_direccion_ip_del_autor:{icon:"fas fa-map-marker-alt",title:"Ver IP"},permalink:{icon:"fas fa-tag",title:"Enlace permanente"}};[].forEach.call(document.querySelectorAll(".forum-postlist .post"),t=>{if(t.children.length>1){let o="";[].forEach.call(t.querySelectorAll(".to-process .post-icons li a"),t=>{const r=e[FNR.utility.genSlug(t.querySelector("img").title)];o+='<li class="post-button-'+FNR.utility.genSlug(r.title,"-")+'">',o+='<a title="'+r.title+'" href="'+t.href+'" class="post-button">',o+='<i class="'+r.icon+'"></i>',forumConfig.nameMinibuttons&&(o+="<span>"+("Enlace permanente"===r.title?"Permalink":r.title)+"</span>"),o+="</a>",o+="</li>"}),t.querySelector(".post-buttons").innerHTML=o}else t.remove()})}}),document.addEventListener("DOMContentLoaded",()=>{null!==document.getElementById("forum-realreply")&&""===document.getElementById("forum-realreply").innerHTML&&document.getElementById("quickreply-section").remove()}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector('img[title="Citar mensaje"]')&&[].forEach.call(document.querySelectorAll('img[title="Citar mensaje"]'),e=>{let t=e.parentElement;t.title="Citar el Mensaje",t.classList.add("dropdown-item"),t.textContent="Citar el Mensaje"}),document.querySelector('img[title="Editar mensaje"]')&&[].forEach.call(document.querySelectorAll('img[title="Editar mensaje"]'),e=>{let t=e.parentElement;t.title="Editar el Mensaje",t.classList.add("dropdown-item"),t.textContent="Editar el Mensaje"})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".mp-from")&&[].forEach.call(document.querySelectorAll(".mp-from"),e=>{const t=FNR.utility.getGroup(e.querySelector("span").style.color.replace(/, /g,"_").replace(/, /g,"_").replace(/\(/g,"_").replace(/\)/g,""));e.innerHTML='<a href="'+FNR.user.getUrl(e.textContent)+'" target="_blank" title="Ir al '+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+e.textContent+'»">'+e.textContent+"</a>";let o=e.parentElement;for(;!o.classList.contains("mp-main");)o=o.parentElement;o.classList.add("usergroup-"+t)})}),document.addEventListener("DOMContentLoaded",()=>{document.getElementById("breadcrumbs")&&document.getElementById("forum-breadcrumb")&&[].forEach.call(document.getElementById("breadcrumbs").children,(e,t,o)=>{let r=e.href,n=Vue.filter("mini-sanitize")(e.text),l="";r.match(/c(\d+)-/)||t+1===o.length?(r=t+1===o.length?window.location.pathname+window.location.search:"#",l+=' class="is-hidden-touch'+(t+1===o.length?"":" is-active")+'"'):r.indexOf("#profile")>-1&&(r=FNR.user.getUrl(n)),document.querySelector("#forum-breadcrumb ul").innerHTML+="<li"+l+'><a href="'+r+'" title="Ir a «'+n+'»">'+n+"</a></li>"})}),document.addEventListener("DOMContentLoaded",()=>{const e=document.querySelector("#buttons");e&&e.children.length&&[].forEach.call(document.querySelectorAll(".page-buttons"),t=>{t.insertAdjacentHTML("afterbegin",e.innerHTML),t.parentElement.classList.contains("not-show")&&t.parentElement.classList.remove("not-show")})}),document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector("#pagination")&&document.querySelector("#pagination").children.length){const e=document.querySelector(".pag-img .sprite-arrow_prosilver_left"),t=document.querySelector(".pag-img .sprite-arrow_prosilver_right");e&&(e.parentElement.title="Ir a la página anterior",e.parentElement.classList.add("page-action"),e.parentElement.classList.remove("pag-img"),e.parentElement.innerHTML='<i class="fas fa-chevron-left"></i>'),t&&(t.parentElement.title="Ir a la página siguiente",t.parentElement.classList.add("page-action"),t.parentElement.classList.remove("pag-img"),t.parentElement.innerHTML='<i class="fas fa-chevron-right"></i>'),[].forEach.call(document.querySelectorAll("#pagination > span > a:not(.page-action)"),e=>{e.classList.add("page-link"),e.title="Ir a la página «"+e.textContent+"»"}),document.querySelector("#pagination > span > strong").title="Página actual";const o=document.querySelector("#pagination > span").innerHTML.trim().replace(/ ... /g,'<span class="page-spacer">…</span>');[].forEach.call(document.querySelectorAll(".page-pagination"),e=>{e.insertAdjacentHTML("afterbegin",o),e.parentElement.classList.contains("not-show")&&e.parentElement.classList.remove("not-show")})}}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".codebox")&&[].forEach.call(document.querySelectorAll(".codebox"),e=>{1!==e.classList.length&&e.classList.remove("codebox")}),document.querySelector(".codebox")&&[].forEach.call(document.querySelectorAll(".codebox"),e=>{const t=e.querySelector("code").innerHTML.trim();e.querySelector("dt").innerHTML='Código <em>-</em> <span class="is-pointer">Copiar</span>',e.insertAdjacentHTML("afterbegin",'<div class="adminbox-icon"><i class="fas fa-code"></i></div>'),e.querySelector("code").remove(),e.insertAdjacentHTML("beforeend","<code>"+t+"</code>")}),document.querySelector(".spoiler")&&[].forEach.call(document.querySelectorAll(".spoiler"),e=>{e.querySelector("dt").innerHTML=e.querySelector("dt").innerHTML.slice(0,-1),e.insertAdjacentHTML("afterbegin",'<div class="adminbox-icon"><i class="fas fa-archive"></i></div>')}),document.querySelector(".hidecode")&&[].forEach.call(document.querySelectorAll(".hidecode"),e=>{e.insertAdjacentHTML("afterbegin",'<div class="adminbox-icon"><i class="fas fa-eye-slash"></i></div>')}),document.querySelector("blockquote")&&([].forEach.call(document.querySelectorAll("blockquote cite"),e=>{if(e.innerHTML=e.innerHTML.replace(/escribió:/g,""),e.querySelector("a")){const t=e.querySelector("a");t.title="Ir al "+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+t.title.replace(/Ver el perfil :: /g,"")+"»"}e=e.innerHTML}),[].forEach.call(document.querySelectorAll("blockquote"),e=>{e.insertAdjacentHTML("afterbegin",'<div class="adminbox-icon"><i class="fas fa-quote-right"></i></div>')}))}),document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector("#is-form")&&document.querySelector(".msg-element")){const e=document.querySelector("#is-form").innerHTML,t={method:document.querySelector(".basic-element form").method,action:document.querySelector(".basic-element form").action,name:document.querySelector(".basic-element form").name};document.querySelector("#message-section").outerHTML='<form method="'+t.method+'" action="'+t.action+'" name="'+t.name+'" id="message-section" class="basic-element">'+document.querySelector("#message-section").innerHTML+"</form>",document.querySelector("#message-section .msg-element").insertAdjacentHTML("afterend",'<div id="usereply-comand">'+e+"</div>"),document.querySelector("#is-form").remove()}}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".is-content .post-content")&&[].forEach.call(document.querySelectorAll(".is-content .post-content"),e=>{e.classList.remove("post-content")})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".has-anchor")&&[].forEach.call(document.querySelectorAll(".has-anchor"),e=>{e.insertAdjacentHTML("afterbegin",`<a id="anchor-${e.id}" class="page-anchor"></a>`)})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".mentiontag")&&[].forEach.call(document.querySelectorAll(".mentiontag"),e=>{e.title="Ir al "+(void 0===forumConfig.profileOptions.profileName?"perfil":forumConfig.profileOptions.profileName)+" de «"+e.title.replace(/Ver el perfil :: /g,"")+"»"})}),document.addEventListener("DOMContentLoaded",()=>{[].forEach.call(document.querySelectorAll(".to-process"),e=>{e.remove()})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector("#forum-rules")&&(document.querySelector("#forum-rules").innerHTML=document.querySelector("#forum-rules").innerHTML.replace(/</g,"<").replace(/>/g,">"))}),document.addEventListener("DOMContentLoaded",()=>{if(forumConfig.skinOptions.allowCustomStyles&&document.querySelector("#forum-content .forum-custom-styles")){let e="";[].forEach.call(document.querySelectorAll("#forum-content .forum-custom-styles"),t=>{e+=t.innerHTML,t.remove()}),document.head.insertAdjacentHTML("beforeend",`<style>${e}</style>`)}}),document.addEventListener("DOMContentLoaded",()=>{document.dispatchEvent(forumReady)}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".codebox")&&[].forEach.call(document.querySelectorAll(".codebox"),e=>{e.querySelector("dt span").onclick=(()=>{navigator.clipboard.writeText(e.querySelector("code").innerText),FNR.html.genNotification("¡Copiado!","Recuerda engancharlo en algún lugar.","fas fa-copy")})})}),document.addEventListener("DOMContentLoaded",()=>{[].forEach.call(document.querySelectorAll(".is-clickbox"),e=>{const t=e.dataset.categorybox,o=e.dataset.categoryid;e.classList.contains("is-toggle")?e.onclick=(()=>{document.querySelector('.is-clickbox[data-categorybox="'+t+'"][data-categoryid="'+o+'"]').classList.toggle("is-active"),document.querySelector('.is-selectbox[data-categorybox="'+t+'"][data-categoryid="'+o+'"]').classList.toggle("is-active")}):e.onclick=(()=>{document.querySelector('.is-clickbox.is-active[data-categorybox="'+t+'"]').classList.remove("is-active"),document.querySelector('.is-clickbox[data-categorybox="'+t+'"][data-categoryid="'+o+'"]').classList.add("is-active"),document.querySelector('.is-selectbox.is-active[data-categorybox="'+t+'"]').classList.remove("is-active"),document.querySelector('.is-selectbox[data-categorybox="'+t+'"][data-categoryid="'+o+'"]').classList.add("is-active")})})}),document.addEventListener("DOMContentLoaded",()=>{FNR.behaviour.genWiki()}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".checkbox-click:not(.is-radio)")&&[].forEach.call(document.querySelectorAll(".checkbox-click:not(.is-radio)"),e=>{const t=e.parentElement.parentElement,o=t.querySelector(".checkbox-real input");o.checked&&t.classList.add("is-active"),e.parentElement.onclick=(()=>{t.classList.contains("is-active")?(t.classList.remove("is-active"),o.checked=!1):(t.classList.add("is-active"),o.checked=!0)})})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".checkbox-click.is-radio")&&[].forEach.call(document.querySelectorAll(".checkbox-click.is-radio"),e=>{const t=e.parentElement.parentElement,o=t.querySelector(".checkbox-real input");o.checked&&t.classList.add("is-active"),e.parentElement.onclick=(()=>{[].forEach.call(document.querySelectorAll('input[type="radio"][name="'+o.name+'"]'),e=>{const t=e.parentElement.parentElement.classList;t.contains("is-active")&&t.remove("is-active")}),t.classList.contains("is-active")?(t.classList.remove("is-active"),o.checked=!1):(t.classList.add("is-active"),o.checked=!0)})})}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".is-input")&&[].forEach.call(document.querySelectorAll(".is-input"),e=>{e.onclick=(t=>{e.querySelector('input[type="submit"]').click()})})}),document.addEventListener("DOMContentLoaded",()=>{FNR.behaviour.genDropeable()}),document.addEventListener("DOMContentLoaded",()=>{document.querySelector(".is-tweakeable")&&document.fonts.ready.then(()=>{[].forEach.call(document.getElementsByClassName("is-tweakeable"),e=>{const t=e.offsetWidth-parseFloat(window.getComputedStyle(e,null).paddingLeft)-parseFloat(window.getComputedStyle(e,null).paddingRight)-parseFloat(window.getComputedStyle(e,null).borderLeftWidth)-parseFloat(window.getComputedStyle(e,null).borderRightWidth);if(t>0&&e.querySelector(".is-measurable").offsetWidth>0){let o=parseFloat(window.getComputedStyle(e,null).fontSize);for(;t<e.querySelector(".is-measurable").offsetWidth;)e.style.fontSize=o+"px",o--}})})}),document.addEventListener("DOMContentLoaded",()=>{document.fonts.ready.then(()=>{document.querySelector("#forum-body > .main-body").classList.remove("is-invisible")})});
|