generic-skin 2.5.3 → 2.9.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/vueChrono.js +70 -69
- package/apps/vueChrono.min.js +1 -1
- package/apps/vueDefault.js +462 -117
- package/apps/vueDefault.min.js +2 -4
- package/apps/vueMulti.js +71 -61
- package/apps/vueMulti.min.js +1 -1
- package/apps/vueRela.js +68 -67
- package/apps/vueRela.min.js +1 -1
- package/config/vueComponents.js +161 -194
- package/config/vueComponents.min.js +2 -2
- package/config/vueElements.js +1 -1
- package/config/vueElements.min.js +1 -1
- package/config/vueFilters.js +6 -0
- package/config/vueFilters.min.js +1 -1
- package/extensions/vueRouter.js +1 -1
- package/extensions/vueRouter.min.js +0 -0
- package/frameworks/FNRFramework.js +1145 -860
- package/frameworks/FNRFramework.min.js +1 -1
- package/general.js +95 -41
- package/general.min.js +1 -1
- package/options/noManagers.js +18 -18
- package/options/noManagers.min.js +1 -1
- package/package.json +1 -1
- package/pages/ucp.js +49 -13
- package/pages/ucp.min.js +1 -1
- package/plugins/sjcl.min.js +0 -0
- package/readme.md +0 -0
- package/stylesheet.css +58 -27
- package/stylesheet.min.css +1 -1
package/config/vueComponents.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* Estructura del foro */
|
|
2
2
|
Vue.component('categoria-foro', {
|
|
3
|
-
props: ['
|
|
3
|
+
props: ['id'],
|
|
4
4
|
computed: {
|
|
5
|
-
slugName
|
|
6
|
-
const name = (this.
|
|
5
|
+
slugName() {
|
|
6
|
+
const name = (this.id.indexOf('<h2>') > -1 ? FNR.utility.genSlug(this.id.split('<h2>')[1].split('</h2>')[0], '-') : FNR.utility.genSlug(this.id, '-'));
|
|
7
7
|
|
|
8
8
|
return 'category-' + name;
|
|
9
9
|
}
|
|
@@ -16,48 +16,48 @@ Vue.component('categoria-foro', {
|
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
Vue.component('cabecera-foro', {
|
|
19
|
-
data
|
|
19
|
+
data() {
|
|
20
20
|
return {
|
|
21
|
-
|
|
21
|
+
title: this.$slots['title'][0].tag === undefined ? this.$slots['title'][0].text : this.$slots['title'][0].children[0].text
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
template: `
|
|
25
25
|
<div class="forum-head regular-head">
|
|
26
|
-
<titulo-especial :
|
|
26
|
+
<titulo-especial :title="title"></titulo-especial>
|
|
27
27
|
</div>
|
|
28
28
|
`
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
Vue.component('cabcategoria-foro', {
|
|
32
|
-
data
|
|
32
|
+
data() {
|
|
33
33
|
return {
|
|
34
|
-
|
|
34
|
+
title: this.$slots['title'][0].tag === undefined ? this.$slots['title'][0].text : this.$slots['title'][0].children[0].text
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
template: `
|
|
38
38
|
<div class="forum-head category-head">
|
|
39
|
-
<titulo-especial :
|
|
39
|
+
<titulo-especial :title="title"></titulo-especial>
|
|
40
40
|
</div>
|
|
41
41
|
`
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
Vue.component('cabespecial-foro', {
|
|
45
|
-
data
|
|
45
|
+
data() {
|
|
46
46
|
return {
|
|
47
|
-
|
|
47
|
+
title: this.$slots['title'][0].tag === undefined ? this.$slots['title'][0].text : this.$slots['title'][0].children[0].text
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
template: `
|
|
51
51
|
<div class="forum-head special-head">
|
|
52
|
-
<titulo-especial :
|
|
52
|
+
<titulo-especial :title="title"></titulo-especial>
|
|
53
53
|
</div>
|
|
54
54
|
`
|
|
55
55
|
});
|
|
56
56
|
|
|
57
57
|
Vue.component('subforo-foro', {
|
|
58
|
-
props: ['
|
|
58
|
+
props: ['id'],
|
|
59
59
|
computed: {
|
|
60
|
-
slugId
|
|
60
|
+
slugId() {
|
|
61
61
|
let id = '';
|
|
62
62
|
|
|
63
63
|
if (window.location.pathname.match(/f(\d+)-/)) {
|
|
@@ -68,8 +68,8 @@ Vue.component('subforo-foro', {
|
|
|
68
68
|
|
|
69
69
|
return 'subforum-' + id;
|
|
70
70
|
},
|
|
71
|
-
slugName
|
|
72
|
-
const name = (this.
|
|
71
|
+
slugName() {
|
|
72
|
+
const name = (this.id.indexOf('<h2>') > -1 ? FNR.utility.genSlug(this.id.split('<h2>')[1].split('</h2>')[0], '-') : FNR.utility.genSlug(this.id, '-'));
|
|
73
73
|
|
|
74
74
|
return 'subforum-' + name;
|
|
75
75
|
}
|
|
@@ -82,16 +82,16 @@ Vue.component('subforo-foro', {
|
|
|
82
82
|
});
|
|
83
83
|
|
|
84
84
|
Vue.component('lista-temas-cabecera', {
|
|
85
|
-
props: ['
|
|
86
|
-
data
|
|
85
|
+
props: ['elements'],
|
|
86
|
+
data() {
|
|
87
87
|
return {
|
|
88
|
-
elementos: JSON.parse(this.
|
|
88
|
+
elementos: JSON.parse(this.elements.replace(/'/g, '"'))
|
|
89
89
|
}
|
|
90
90
|
},
|
|
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 :title="element"></titulo-especial>
|
|
95
95
|
</li>
|
|
96
96
|
</ul>
|
|
97
97
|
`
|
|
@@ -99,7 +99,7 @@ Vue.component('lista-temas-cabecera', {
|
|
|
99
99
|
|
|
100
100
|
Vue.component('tema-foro', {
|
|
101
101
|
computed: {
|
|
102
|
-
slugId
|
|
102
|
+
slugId() {
|
|
103
103
|
let id = '';
|
|
104
104
|
|
|
105
105
|
if (window.location.pathname.match(/t(\d+)-/)) {
|
|
@@ -110,7 +110,7 @@ Vue.component('tema-foro', {
|
|
|
110
110
|
|
|
111
111
|
return 'topic-' + id;
|
|
112
112
|
},
|
|
113
|
-
slugName
|
|
113
|
+
slugName() {
|
|
114
114
|
const name = FNR.utility.genSlug((this.$slots['title'][0].tag === undefined ? this.$slots['title'][0].text : this.$slots['title'][0].children[0].text), '-');
|
|
115
115
|
|
|
116
116
|
return 'topic-' + name;
|
|
@@ -124,26 +124,10 @@ Vue.component('tema-foro', {
|
|
|
124
124
|
});
|
|
125
125
|
|
|
126
126
|
Vue.component('mando-foro', {
|
|
127
|
-
props: ['
|
|
128
|
-
data: function () {
|
|
129
|
-
return {
|
|
130
|
-
children: 0
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
computed: {
|
|
134
|
-
isStatusClass: function () {
|
|
135
|
-
if (this.children > 0) return 'forum-controls';
|
|
136
|
-
else return 'forum-controls not-show';
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
created() {
|
|
140
|
-
Object.values(this.$slots).map((item) => {
|
|
141
|
-
this.children += item.length;
|
|
142
|
-
});
|
|
143
|
-
},
|
|
127
|
+
props: ['id', 'app'],
|
|
144
128
|
template: `
|
|
145
|
-
<section :id="
|
|
146
|
-
<template v-if="
|
|
129
|
+
<section :id="id" class="forum-controls">
|
|
130
|
+
<template v-if="app === 'true'">
|
|
147
131
|
<div class="left page-pagination">
|
|
148
132
|
<slot name="pagination"></slot>
|
|
149
133
|
</div>
|
|
@@ -161,27 +145,18 @@ Vue.component('mando-foro', {
|
|
|
161
145
|
|
|
162
146
|
/* Componentes del foro */
|
|
163
147
|
Vue.component('titulo-especial', {
|
|
164
|
-
props: ['
|
|
165
|
-
computed: {
|
|
166
|
-
cleaned: function () {
|
|
167
|
-
if (this.dataTitle.indexOf('<h2>') > -1) return this.dataTitle.split('<h2>')[1].split('</h2>')[0];
|
|
168
|
-
else return this.dataTitle;
|
|
169
|
-
},
|
|
170
|
-
minimized: function () {
|
|
171
|
-
return FNR.utility.genSlug(this.cleaned, ' ');
|
|
172
|
-
}
|
|
173
|
-
},
|
|
148
|
+
props: ['title'],
|
|
174
149
|
template: `
|
|
175
|
-
<h3 class="is-tweakeable"><span class="is-measurable"
|
|
150
|
+
<h3 class="is-tweakeable"><span class="is-measurable" v-html="title"></span></h3>
|
|
176
151
|
`
|
|
177
152
|
});
|
|
178
153
|
|
|
179
154
|
Vue.component('cuerpo-widget', {
|
|
180
|
-
props: ['
|
|
155
|
+
props: ['class'],
|
|
181
156
|
computed: {
|
|
182
|
-
currentClass
|
|
183
|
-
if (this.
|
|
184
|
-
else return 'plank-inner' + ' ' + this.
|
|
157
|
+
currentClass() {
|
|
158
|
+
if (this.class === undefined) return 'plank-inner';
|
|
159
|
+
else return 'plank-inner' + ' ' + this.class;
|
|
185
160
|
}
|
|
186
161
|
},
|
|
187
162
|
template: `
|
|
@@ -194,8 +169,8 @@ Vue.component('cuerpo-widget', {
|
|
|
194
169
|
});
|
|
195
170
|
|
|
196
171
|
Vue.component('separador-foro', {
|
|
197
|
-
props: ['
|
|
198
|
-
data
|
|
172
|
+
props: ['faction'],
|
|
173
|
+
data() {
|
|
199
174
|
return {
|
|
200
175
|
image: forumDefaults.separator
|
|
201
176
|
}
|
|
@@ -208,41 +183,41 @@ Vue.component('separador-foro', {
|
|
|
208
183
|
});
|
|
209
184
|
|
|
210
185
|
Vue.component('tema-ref', {
|
|
211
|
-
props: ['
|
|
212
|
-
data
|
|
186
|
+
props: ['info'],
|
|
187
|
+
data() {
|
|
213
188
|
return {
|
|
214
189
|
profileName: forumConfig.profileOptions.profileName || 'perfil'
|
|
215
190
|
}
|
|
216
191
|
},
|
|
217
192
|
computed: {
|
|
218
|
-
userColor
|
|
219
|
-
return 'color: ' + this.
|
|
193
|
+
userColor() {
|
|
194
|
+
return 'color: ' + this.info.lastpost.who.color;
|
|
220
195
|
}
|
|
221
196
|
},
|
|
222
197
|
template: `
|
|
223
198
|
<div class="ltopic-element">
|
|
224
|
-
<a class="ltopic-last" :href="
|
|
199
|
+
<a class="ltopic-last" :href="info.lastpost.url" target="_blank" :title="'Ir al último mensaje del tema «' + info.name + '»'">
|
|
225
200
|
<i class="fas fa-link"></i>
|
|
226
201
|
</a>
|
|
227
202
|
<div class="ltopic-data">
|
|
228
|
-
<a class="ltopic-title" :href="
|
|
229
|
-
<small class="ltopic-info"><a :href="
|
|
203
|
+
<a class="ltopic-title" :href="info.url" target="_blank" :title="'Ir al tema «' + info.name + '»'">{{ info.name }}</a>
|
|
204
|
+
<small class="ltopic-info"><a :href="info.lastpost.who.url" target="_blank" :style="userColor" :title="'Ir al ' + profileName + ' de «' + info.lastpost.who.name + '»'">{{ info.lastpost.who.name | just-name }}</a>, {{ info.lastpost.date }} en <a :href="info.forum.url" target="_blank" :title="'Ir al subforo «' + info.forum.name + '»'">{{ info.forum.name }}</a></small>
|
|
230
205
|
</div>
|
|
231
206
|
</div>
|
|
232
207
|
`
|
|
233
208
|
});
|
|
234
209
|
|
|
235
210
|
Vue.component('campo-foro', {
|
|
236
|
-
props: ['
|
|
211
|
+
props: ['name'],
|
|
237
212
|
mounted() {
|
|
238
213
|
const classList = this.$el.parentElement.classList;
|
|
239
214
|
|
|
240
215
|
classList.add('field-element');
|
|
241
|
-
classList.add('field-' + FNR.utility.genSlug(this.
|
|
216
|
+
classList.add('field-' + FNR.utility.genSlug(this.name, '-'));
|
|
242
217
|
},
|
|
243
218
|
template: `
|
|
244
219
|
<div class="forum-field">
|
|
245
|
-
<div class="field-name">{{
|
|
220
|
+
<div class="field-name">{{ name | capitalize }}</div>
|
|
246
221
|
<div class="field-content">
|
|
247
222
|
<slot></slot>
|
|
248
223
|
</div>
|
|
@@ -251,33 +226,33 @@ Vue.component('campo-foro', {
|
|
|
251
226
|
});
|
|
252
227
|
|
|
253
228
|
Vue.component('boton-foro', {
|
|
254
|
-
props: ['
|
|
229
|
+
props: ['url', 'name', 'icon', 'type', 'input'],
|
|
255
230
|
computed: {
|
|
256
|
-
realClass
|
|
257
|
-
if (this.
|
|
231
|
+
realClass() {
|
|
232
|
+
if (this.input === 'true') return 'forum-button is-input';
|
|
258
233
|
else return 'forum-button';
|
|
259
234
|
},
|
|
260
|
-
realName
|
|
261
|
-
return 'text' + (this.
|
|
235
|
+
realName() {
|
|
236
|
+
return 'text' + (this.type === 'no-name' ? ' is-hidden-touch' : '');
|
|
262
237
|
},
|
|
263
|
-
realUrl
|
|
264
|
-
if (this.
|
|
265
|
-
else return this.
|
|
238
|
+
realUrl() {
|
|
239
|
+
if (this.input === 'true') return 'javascript:{}';
|
|
240
|
+
else return this.url;
|
|
266
241
|
}
|
|
267
242
|
},
|
|
268
243
|
mounted() {
|
|
269
244
|
const classList = this.$el.parentElement.classList;
|
|
270
245
|
|
|
271
246
|
classList.add('btn-element');
|
|
272
|
-
classList.add('btn-' + FNR.utility.genSlug(this.
|
|
247
|
+
classList.add('btn-' + FNR.utility.genSlug(this.name, '-'));
|
|
273
248
|
},
|
|
274
249
|
template: `
|
|
275
|
-
<a :href="realUrl" targer="_blank" :class="realClass" :title="
|
|
250
|
+
<a :href="realUrl" targer="_blank" :class="realClass" :title="name">
|
|
276
251
|
<span class="icon">
|
|
277
|
-
<i :class="
|
|
252
|
+
<i :class="icon"></i>
|
|
278
253
|
</span>
|
|
279
|
-
<span :class="realName">{{
|
|
280
|
-
<span v-if="
|
|
254
|
+
<span :class="realName">{{ name }}</span>
|
|
255
|
+
<span v-if="input === 'true'" class="input-real">
|
|
281
256
|
<slot name="input"></slot>
|
|
282
257
|
</span>
|
|
283
258
|
</a>
|
|
@@ -285,12 +260,12 @@ Vue.component('boton-foro', {
|
|
|
285
260
|
});
|
|
286
261
|
|
|
287
262
|
Vue.component('cargando-foro', {
|
|
288
|
-
props: ['
|
|
263
|
+
props: ['text'],
|
|
289
264
|
template: `
|
|
290
265
|
<section id="loading-element">
|
|
291
266
|
<div id="loading-content">
|
|
292
267
|
<i class="fas fa-circle-notch fa-spin"></i>
|
|
293
|
-
<span>{{
|
|
268
|
+
<span>{{ text }}</span>
|
|
294
269
|
</div>
|
|
295
270
|
</section>
|
|
296
271
|
`
|
|
@@ -306,7 +281,7 @@ Vue.component('aviso-foro', {
|
|
|
306
281
|
});
|
|
307
282
|
|
|
308
283
|
Vue.component('afiliaciones-foro', {
|
|
309
|
-
data
|
|
284
|
+
data() {
|
|
310
285
|
return {
|
|
311
286
|
afis: {}
|
|
312
287
|
}
|
|
@@ -323,7 +298,7 @@ Vue.component('afiliaciones-foro', {
|
|
|
323
298
|
|
|
324
299
|
/* Navbar del foro */
|
|
325
300
|
Vue.component('controles-foro', {
|
|
326
|
-
data
|
|
301
|
+
data() {
|
|
327
302
|
return {
|
|
328
303
|
maPage: 0,
|
|
329
304
|
userName: _userdata.username,
|
|
@@ -336,12 +311,12 @@ Vue.component('controles-foro', {
|
|
|
336
311
|
};
|
|
337
312
|
},
|
|
338
313
|
computed: {
|
|
339
|
-
isActiveClass
|
|
314
|
+
isActiveClass() {
|
|
340
315
|
return 'has-bg' + ((this.isActive) ? ' visible' : ' not-visible');
|
|
341
316
|
}
|
|
342
317
|
},
|
|
343
318
|
methods: {
|
|
344
|
-
turnActive
|
|
319
|
+
turnActive() {
|
|
345
320
|
this.isActive = (this.isActive) ? false : true;
|
|
346
321
|
}
|
|
347
322
|
},
|
|
@@ -365,20 +340,20 @@ Vue.component('controles-foro', {
|
|
|
365
340
|
</nav>
|
|
366
341
|
<nav class="right">
|
|
367
342
|
<section id="forum-navbar-desktop" class="is-hidden-touch">
|
|
368
|
-
<navbar-foro :
|
|
343
|
+
<navbar-foro :username="userName" :userlevel="userLevel" :userid="userId" :userlog="userLog" :usermp="userMP" :userout="userOut" />
|
|
369
344
|
</section>
|
|
370
345
|
<section id="forum-navbar-mobile" class="is-hidden-desktop">
|
|
371
|
-
<div id="hmg-button"
|
|
346
|
+
<div id="hmg-button" @click="turnActive()" class="is-pointer">
|
|
372
347
|
<i class="fas fa-bars"></i>
|
|
373
348
|
</div>
|
|
374
349
|
<div id="hmg-menu" :class="isActiveClass">
|
|
375
|
-
<h3>{{ userName | just-name }}<i class="fas fa-times is-pointer"
|
|
376
|
-
<navbar-foro :
|
|
350
|
+
<h3>{{ userName | just-name }}<i class="fas fa-times is-pointer" @click="turnActive()"></i></h3>
|
|
351
|
+
<navbar-foro :username="userName" :userlevel="userLevel" :userid="userId" :userlog="userLog" :usermp="userMP" :userout="userOut" />
|
|
377
352
|
</div>
|
|
378
|
-
<div class="bg-active"
|
|
353
|
+
<div class="bg-active" @click="turnActive()"></div>
|
|
379
354
|
</section>
|
|
380
355
|
<section v-if="maPage === 1" id="multiaccount-transition">
|
|
381
|
-
<cargando-foro
|
|
356
|
+
<cargando-foro text="Cambiando de cuenta…"></cargando-foro>
|
|
382
357
|
</section>
|
|
383
358
|
</nav>
|
|
384
359
|
</div>
|
|
@@ -386,11 +361,12 @@ Vue.component('controles-foro', {
|
|
|
386
361
|
});
|
|
387
362
|
|
|
388
363
|
Vue.component('navbar-foro', {
|
|
389
|
-
props: ['
|
|
390
|
-
data
|
|
364
|
+
props: ['username', 'userlevel', 'userid', 'userlog', 'usermp', 'userout'],
|
|
365
|
+
data() {
|
|
391
366
|
return {
|
|
392
367
|
profileName: forumConfig.profileOptions.profileName || 'perfil',
|
|
393
368
|
items: forumContent.navbar,
|
|
369
|
+
navigation: forumContent.links,
|
|
394
370
|
directions: forumConfig.usableDirections,
|
|
395
371
|
multiAccount: {
|
|
396
372
|
status: false,
|
|
@@ -400,23 +376,23 @@ Vue.component('navbar-foro', {
|
|
|
400
376
|
}
|
|
401
377
|
},
|
|
402
378
|
computed: {
|
|
403
|
-
isStatusClass
|
|
404
|
-
return ((this.
|
|
379
|
+
isStatusClass() {
|
|
380
|
+
return ((this.userlog === 1) ? 'is-logged' : 'is-unlogged') + ((this.userlevel === 1) ? ' is-admin' : ' is-user')
|
|
405
381
|
},
|
|
406
|
-
mpText
|
|
407
|
-
return 'Mensajería' + ((this.
|
|
382
|
+
mpText() {
|
|
383
|
+
return 'Mensajería' + ((this.usermp !== 0) ? ' (' + this.usermp + ')' : '')
|
|
408
384
|
},
|
|
409
|
-
links
|
|
410
|
-
return
|
|
385
|
+
links() {
|
|
386
|
+
return this.navigation.filter((item) => {
|
|
411
387
|
return item.icon !== undefined;
|
|
412
388
|
});
|
|
413
389
|
}
|
|
414
390
|
},
|
|
415
391
|
methods: {
|
|
416
|
-
changeAccount
|
|
392
|
+
changeAccount() {
|
|
417
393
|
this.$parent.maPage = 1;
|
|
418
394
|
|
|
419
|
-
FNR.user.changeAccount(this.
|
|
395
|
+
FNR.user.changeAccount(this.userout, this.multiAccount.accounts[this.multiAccount.position].name, this.multiAccount.accounts[this.multiAccount.position].password).then((r) => {
|
|
420
396
|
if (r) {
|
|
421
397
|
window.location.reload();
|
|
422
398
|
}
|
|
@@ -440,7 +416,7 @@ Vue.component('navbar-foro', {
|
|
|
440
416
|
},
|
|
441
417
|
template: `
|
|
442
418
|
<ul :class="isStatusClass">
|
|
443
|
-
<template v-if="!
|
|
419
|
+
<template v-if="!userlog">
|
|
444
420
|
<li class="navbar-item">
|
|
445
421
|
<a href="/register" title="Registrarse en el foro">
|
|
446
422
|
<div class="icon">
|
|
@@ -488,10 +464,10 @@ Vue.component('navbar-foro', {
|
|
|
488
464
|
<div class="icon">
|
|
489
465
|
<i class="fas fa-user"></i>
|
|
490
466
|
</div>
|
|
491
|
-
<div class="text">{{
|
|
467
|
+
<div class="text">{{ username | just-name }}</div>
|
|
492
468
|
</a>
|
|
493
469
|
<div class="navbar-dropdown is-right">
|
|
494
|
-
<template v-if="
|
|
470
|
+
<template v-if="userlevel === 1">
|
|
495
471
|
<a class="navbar-item" href="/admin" target="_blank" title="Ir al «Panel de Administrador»">
|
|
496
472
|
<div class="icon">
|
|
497
473
|
<i class="fas fa-cogs"></i>
|
|
@@ -505,7 +481,7 @@ Vue.component('navbar-foro', {
|
|
|
505
481
|
</div>
|
|
506
482
|
<div class="text">Panel Usuario</div>
|
|
507
483
|
</a>
|
|
508
|
-
<a class="navbar-item" :href="'/u' +
|
|
484
|
+
<a class="navbar-item" :href="'/u' + userid" :title="'Ir a tu ' + profileName">
|
|
509
485
|
<div class="icon">
|
|
510
486
|
<i class="far fa-id-card"></i>
|
|
511
487
|
</div>
|
|
@@ -517,7 +493,7 @@ Vue.component('navbar-foro', {
|
|
|
517
493
|
</div>
|
|
518
494
|
<div class="text">Temas personales</div>
|
|
519
495
|
</a>
|
|
520
|
-
<a class="navbar-item" :href="
|
|
496
|
+
<a class="navbar-item" :href="userout" title="Cerrar sesión">
|
|
521
497
|
<div class="icon">
|
|
522
498
|
<i class="fas fa-sign-out-alt"></i>
|
|
523
499
|
</div>
|
|
@@ -526,7 +502,7 @@ Vue.component('navbar-foro', {
|
|
|
526
502
|
<template v-if="multiAccount.status">
|
|
527
503
|
<hr/>
|
|
528
504
|
<div class="select-container">
|
|
529
|
-
<select v-model="multiAccount.position"
|
|
505
|
+
<select v-model="multiAccount.position" @change="changeAccount()" @click="$event.stopPropagation()">
|
|
530
506
|
<option value="-1" hidden selected>Selec. personaje</option>
|
|
531
507
|
<option v-for="(account, index) in multiAccount.accounts" :value="index">{{ account.name }}</option>
|
|
532
508
|
</select>
|
|
@@ -541,7 +517,7 @@ Vue.component('navbar-foro', {
|
|
|
541
517
|
|
|
542
518
|
/* Widgets del foro */
|
|
543
519
|
Vue.component('links-ayuda', {
|
|
544
|
-
data
|
|
520
|
+
data() {
|
|
545
521
|
return {
|
|
546
522
|
links: forumContent.links
|
|
547
523
|
}
|
|
@@ -554,7 +530,7 @@ Vue.component('links-ayuda', {
|
|
|
554
530
|
});
|
|
555
531
|
|
|
556
532
|
Vue.component('links-anuncios', {
|
|
557
|
-
data
|
|
533
|
+
data() {
|
|
558
534
|
return {
|
|
559
535
|
announcements: forumContent.announcements
|
|
560
536
|
}
|
|
@@ -570,7 +546,7 @@ Vue.component('links-anuncios', {
|
|
|
570
546
|
});
|
|
571
547
|
|
|
572
548
|
Vue.component('links-staff', {
|
|
573
|
-
data
|
|
549
|
+
data() {
|
|
574
550
|
return {
|
|
575
551
|
staff: forumContent.staff
|
|
576
552
|
}
|
|
@@ -583,47 +559,35 @@ Vue.component('links-staff', {
|
|
|
583
559
|
});
|
|
584
560
|
|
|
585
561
|
Vue.component('sabias-que', {
|
|
586
|
-
data
|
|
562
|
+
data() {
|
|
587
563
|
return {
|
|
588
|
-
content: forumContent.sq
|
|
589
|
-
position: forumContent.sq[Math.floor(Math.random() * forumContent.sq.length)]
|
|
590
|
-
}
|
|
591
|
-
},
|
|
592
|
-
computed: {
|
|
593
|
-
current: function () {
|
|
594
|
-
return this.content[this.position];
|
|
564
|
+
content: forumContent.sq[Math.floor(Math.random() * forumContent.sq.length)]
|
|
595
565
|
}
|
|
596
566
|
},
|
|
597
567
|
created() {
|
|
598
568
|
setInterval(() => {
|
|
599
|
-
this.
|
|
569
|
+
this.content = forumContent.sq[Math.floor(Math.random() * forumContent.sq.length)];
|
|
600
570
|
}, 12000);
|
|
601
571
|
},
|
|
602
572
|
template: `
|
|
603
|
-
<img id="sq-img" :src="
|
|
573
|
+
<img id="sq-img" :src="content" alt="¿Sabías que?" />
|
|
604
574
|
`
|
|
605
575
|
});
|
|
606
576
|
|
|
607
577
|
Vue.component('busquedas', {
|
|
608
|
-
data
|
|
578
|
+
data() {
|
|
609
579
|
return {
|
|
610
|
-
content: forumContent.searches
|
|
611
|
-
position: forumContent.searches[Math.floor(Math.random() * forumContent.searches.length)]
|
|
612
|
-
}
|
|
613
|
-
},
|
|
614
|
-
computed: {
|
|
615
|
-
current: function () {
|
|
616
|
-
return this.content[this.position];
|
|
580
|
+
content: forumContent.searches[Math.floor(Math.random() * forumContent.searches.length)]
|
|
617
581
|
}
|
|
618
582
|
},
|
|
619
583
|
created() {
|
|
620
584
|
setInterval(() => {
|
|
621
|
-
this.
|
|
585
|
+
this.content = forumContent.searches[Math.floor(Math.random() * forumContent.searches.length)];
|
|
622
586
|
}, 16000);
|
|
623
587
|
},
|
|
624
588
|
template: `
|
|
625
|
-
<a id="search-img" :href="
|
|
626
|
-
<img :src="
|
|
589
|
+
<a id="search-img" :href="content.url" target="_blank" :title="content.desc">
|
|
590
|
+
<img :src="content.img" alt="Búsqueda" />
|
|
627
591
|
</a>
|
|
628
592
|
`
|
|
629
593
|
});
|
|
@@ -641,16 +605,16 @@ Vue.component('note-info', {
|
|
|
641
605
|
});
|
|
642
606
|
|
|
643
607
|
Vue.component('redirect', {
|
|
644
|
-
props: ['
|
|
608
|
+
props: ['to'],
|
|
645
609
|
computed: {
|
|
646
|
-
currentStatus
|
|
610
|
+
currentStatus() {
|
|
647
611
|
if (window.location.pathname.match(/t(\d+)-/)) return true;
|
|
648
612
|
else return false;
|
|
649
613
|
}
|
|
650
614
|
},
|
|
651
615
|
created() {
|
|
652
616
|
if (this.currentStatus) {
|
|
653
|
-
window.location.replace(this.
|
|
617
|
+
window.location.replace(this.to);
|
|
654
618
|
}
|
|
655
619
|
},
|
|
656
620
|
template: `
|
|
@@ -663,7 +627,7 @@ Vue.component('redirect', {
|
|
|
663
627
|
});
|
|
664
628
|
|
|
665
629
|
Vue.component('quote', {
|
|
666
|
-
props: ['
|
|
630
|
+
props: ['from'],
|
|
667
631
|
template: `
|
|
668
632
|
<div class="admin-block admin-box user-coolquote">
|
|
669
633
|
<div class="coolquote-quote">
|
|
@@ -673,17 +637,17 @@ Vue.component('quote', {
|
|
|
673
637
|
</div>
|
|
674
638
|
<div class="fas fa-quote-right"></div>
|
|
675
639
|
</div>
|
|
676
|
-
<div class="coolquote-from">{{
|
|
640
|
+
<div class="coolquote-from">{{ from }}</div>
|
|
677
641
|
</div>
|
|
678
642
|
`
|
|
679
643
|
});
|
|
680
644
|
|
|
681
645
|
/* Wiki del foro */
|
|
682
646
|
Vue.component('wiki-index-items-d', {
|
|
683
|
-
props: ['
|
|
647
|
+
props: ['content'],
|
|
684
648
|
template: `
|
|
685
649
|
<ul>
|
|
686
|
-
<li v-for="content in
|
|
650
|
+
<li v-for="content in content">
|
|
687
651
|
<div class="wiki-controls">
|
|
688
652
|
<router-link :to="content.id" v-if="!content.children.length" :title="'Ir al artículo de «' + content.name + '»'">{{ content.name }}</router-link>
|
|
689
653
|
<a class="wiki-cascade" :title="'Desplegar categoría de «' + content.name + '»'" v-else>
|
|
@@ -694,7 +658,7 @@ Vue.component('wiki-index-items-d', {
|
|
|
694
658
|
</span>
|
|
695
659
|
</a>
|
|
696
660
|
</div>
|
|
697
|
-
<wiki-index-items-d v-if="content.children.length" :
|
|
661
|
+
<wiki-index-items-d v-if="content.children.length" :content="content.children"></wiki-index-items-d>
|
|
698
662
|
</li>
|
|
699
663
|
</ul>
|
|
700
664
|
`
|
|
@@ -702,7 +666,7 @@ Vue.component('wiki-index-items-d', {
|
|
|
702
666
|
|
|
703
667
|
Vue.component('wiki-index', {
|
|
704
668
|
computed: {
|
|
705
|
-
indexContent
|
|
669
|
+
indexContent() {
|
|
706
670
|
const getChildren = (name) => {
|
|
707
671
|
return filtered.filter((item) => {
|
|
708
672
|
return item.component.page_parent === name;
|
|
@@ -736,7 +700,7 @@ Vue.component('wiki-index', {
|
|
|
736
700
|
<aside class="wiki-index is-content profile-sticky">
|
|
737
701
|
<div class="is-hidden-touch">
|
|
738
702
|
<h3>Contenido</h3>
|
|
739
|
-
<wiki-index-items-d :
|
|
703
|
+
<wiki-index-items-d :content="indexContent"></wiki-index-items-d>
|
|
740
704
|
</div>
|
|
741
705
|
<div class="select-container is-hidden-desktop">
|
|
742
706
|
<select>
|
|
@@ -775,11 +739,11 @@ Vue.component('wiki-index', {
|
|
|
775
739
|
});
|
|
776
740
|
|
|
777
741
|
Vue.component('wiki-contenido', {
|
|
778
|
-
props: ['
|
|
742
|
+
props: ['mode'],
|
|
779
743
|
template: `
|
|
780
744
|
<div class="wiki-body has-small-topiclist">
|
|
781
745
|
<wiki-index></wiki-index>
|
|
782
|
-
<template v-if="
|
|
746
|
+
<template v-if="mode === 'app'">
|
|
783
747
|
<slot></slot>
|
|
784
748
|
</template>
|
|
785
749
|
<template v-else>
|
|
@@ -793,7 +757,7 @@ Vue.component('wiki-contenido', {
|
|
|
793
757
|
|
|
794
758
|
Vue.component('wiki-nav', {
|
|
795
759
|
computed: {
|
|
796
|
-
more
|
|
760
|
+
more() {
|
|
797
761
|
return routes.filter((item) => {
|
|
798
762
|
return item.component
|
|
799
763
|
}).filter((item) => {
|
|
@@ -802,7 +766,7 @@ Vue.component('wiki-nav', {
|
|
|
802
766
|
})[0].component.page_parent
|
|
803
767
|
}).length > 1;
|
|
804
768
|
},
|
|
805
|
-
nav
|
|
769
|
+
nav() {
|
|
806
770
|
const list = routes.filter((item) => {
|
|
807
771
|
return item.component
|
|
808
772
|
}).filter((item) => {
|
|
@@ -831,19 +795,19 @@ Vue.component('wiki-nav', {
|
|
|
831
795
|
});
|
|
832
796
|
|
|
833
797
|
Vue.component('wiki-children', {
|
|
834
|
-
props: ['
|
|
798
|
+
props: ['name', 'category'],
|
|
835
799
|
computed: {
|
|
836
|
-
nav
|
|
800
|
+
nav() {
|
|
837
801
|
return routes.filter((item) => {
|
|
838
802
|
return item.component
|
|
839
803
|
}).filter((item) => {
|
|
840
|
-
return item.component.page_parent === this.
|
|
804
|
+
return item.component.page_parent === this.category;
|
|
841
805
|
});
|
|
842
806
|
}
|
|
843
807
|
},
|
|
844
808
|
template: `
|
|
845
809
|
<div class="wiki-nav" v-if="nav.length > 0">
|
|
846
|
-
<h2>{{
|
|
810
|
+
<h2>{{ name }}</h2>
|
|
847
811
|
<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>
|
|
848
812
|
</div>
|
|
849
813
|
`
|
|
@@ -851,9 +815,9 @@ Vue.component('wiki-children', {
|
|
|
851
815
|
|
|
852
816
|
/* Modal del foro */
|
|
853
817
|
Vue.component('modal-foro', {
|
|
854
|
-
props: ['
|
|
818
|
+
props: ['title'],
|
|
855
819
|
methods: {
|
|
856
|
-
modalClose
|
|
820
|
+
modalClose() {
|
|
857
821
|
this.$parent.state.modal = false;
|
|
858
822
|
this.$emit('modal-close');
|
|
859
823
|
}
|
|
@@ -862,8 +826,8 @@ Vue.component('modal-foro', {
|
|
|
862
826
|
<div id="forum-modal">
|
|
863
827
|
<div class="modal-element">
|
|
864
828
|
<div class="modal-title">
|
|
865
|
-
<h3>{{
|
|
866
|
-
<a
|
|
829
|
+
<h3>{{ title }}</h3>
|
|
830
|
+
<a @click="modalClose()">
|
|
867
831
|
<i class="fas fa-times"></i>
|
|
868
832
|
</a>
|
|
869
833
|
</div>
|
|
@@ -874,7 +838,7 @@ Vue.component('modal-foro', {
|
|
|
874
838
|
<slot name="controls"></slot>
|
|
875
839
|
</div>
|
|
876
840
|
</div>
|
|
877
|
-
<div class="is-bgmodal bg-active"
|
|
841
|
+
<div class="is-bgmodal bg-active" @click="modalClose()"></div>
|
|
878
842
|
</div>
|
|
879
843
|
`
|
|
880
844
|
});
|
|
@@ -889,7 +853,7 @@ Vue.component('controles-modal', {
|
|
|
889
853
|
|
|
890
854
|
/* Expediente */
|
|
891
855
|
Vue.component('expediente-usuario', {
|
|
892
|
-
data
|
|
856
|
+
data() {
|
|
893
857
|
return {
|
|
894
858
|
info: {
|
|
895
859
|
name: _userdata.username,
|
|
@@ -901,16 +865,16 @@ Vue.component('expediente-usuario', {
|
|
|
901
865
|
}
|
|
902
866
|
},
|
|
903
867
|
computed: {
|
|
904
|
-
userRank
|
|
868
|
+
userRank() {
|
|
905
869
|
return this.profile.fields[forumConfig.profileOptions.profileRank].content;
|
|
906
870
|
},
|
|
907
|
-
userCite
|
|
871
|
+
userCite() {
|
|
908
872
|
return this.profile.fields[forumConfig.profileOptions.profileCite].content
|
|
909
873
|
},
|
|
910
|
-
userCover
|
|
874
|
+
userCover() {
|
|
911
875
|
return this.profile.fields[forumConfig.profileOptions.profileCover].content
|
|
912
876
|
},
|
|
913
|
-
usableMiniFields
|
|
877
|
+
usableMiniFields() {
|
|
914
878
|
if (this.config.miniFields === undefined || !this.config.miniFields.length) return [];
|
|
915
879
|
else return Object.entries(this.profile.fields).filter((item) => {
|
|
916
880
|
return this.config.miniFields.indexOf(item[0]) > -1;
|
|
@@ -934,7 +898,7 @@ Vue.component('expediente-usuario', {
|
|
|
934
898
|
};
|
|
935
899
|
});
|
|
936
900
|
},
|
|
937
|
-
usableBigFields
|
|
901
|
+
usableBigFields() {
|
|
938
902
|
if (this.config.mainFields === undefined || !Object.keys(this.config.mainFields).length) return [];
|
|
939
903
|
else return Object.entries(this.profile.fields).filter((item) => {
|
|
940
904
|
return Object.keys(this.config.mainFields).indexOf(item[0]) > -1;
|
|
@@ -960,7 +924,7 @@ Vue.component('expediente-usuario', {
|
|
|
960
924
|
};
|
|
961
925
|
});
|
|
962
926
|
},
|
|
963
|
-
lengthBigFields
|
|
927
|
+
lengthBigFields() {
|
|
964
928
|
let length = 0;
|
|
965
929
|
|
|
966
930
|
this.usableBigFields.map((item) => {
|
|
@@ -971,7 +935,7 @@ Vue.component('expediente-usuario', {
|
|
|
971
935
|
|
|
972
936
|
return length;
|
|
973
937
|
},
|
|
974
|
-
usableExtraFields
|
|
938
|
+
usableExtraFields() {
|
|
975
939
|
if (this.config.extraFields === undefined || !this.config.extraFields.length) return [];
|
|
976
940
|
else return Object.entries(this.profile.fields).filter((item) => {
|
|
977
941
|
return this.config.extraFields.indexOf(item[0]) > -1;
|
|
@@ -995,7 +959,7 @@ Vue.component('expediente-usuario', {
|
|
|
995
959
|
};
|
|
996
960
|
});
|
|
997
961
|
},
|
|
998
|
-
lengthExtraFields
|
|
962
|
+
lengthExtraFields() {
|
|
999
963
|
let length = 0;
|
|
1000
964
|
|
|
1001
965
|
this.usableExtraFields.map((item) => {
|
|
@@ -1006,7 +970,7 @@ Vue.component('expediente-usuario', {
|
|
|
1006
970
|
|
|
1007
971
|
return length;
|
|
1008
972
|
},
|
|
1009
|
-
usableLinkFields
|
|
973
|
+
usableLinkFields() {
|
|
1010
974
|
if (this.profile.contact.length) return [];
|
|
1011
975
|
else return Object.entries(this.profile.contact).filter((item) => {
|
|
1012
976
|
return item[1].label !== 'Mensaje Privado';
|
|
@@ -1020,15 +984,15 @@ Vue.component('expediente-usuario', {
|
|
|
1020
984
|
}
|
|
1021
985
|
});
|
|
1022
986
|
},
|
|
1023
|
-
chronologyField
|
|
987
|
+
chronologyField() {
|
|
1024
988
|
if (this.config.cronoField === undefined || !this.config.cronoField.length) return [];
|
|
1025
989
|
else return FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.cronoField, '_')].content);
|
|
1026
990
|
},
|
|
1027
|
-
relationshipsField
|
|
991
|
+
relationshipsField() {
|
|
1028
992
|
if (this.config.relaField === undefined || !this.config.relaField.length) return [];
|
|
1029
993
|
else return FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.relaField, '_')].content);
|
|
1030
994
|
},
|
|
1031
|
-
lengthHistoryFields
|
|
995
|
+
lengthHistoryFields() {
|
|
1032
996
|
let length = 0;
|
|
1033
997
|
|
|
1034
998
|
length += this.chronologyField.length;
|
|
@@ -1036,7 +1000,7 @@ Vue.component('expediente-usuario', {
|
|
|
1036
1000
|
|
|
1037
1001
|
return length;
|
|
1038
1002
|
},
|
|
1039
|
-
currentClass
|
|
1003
|
+
currentClass() {
|
|
1040
1004
|
return 'usergroup-' + this.profile.colour
|
|
1041
1005
|
}
|
|
1042
1006
|
},
|
|
@@ -1082,16 +1046,16 @@ Vue.component('expediente-usuario', {
|
|
|
1082
1046
|
</div>
|
|
1083
1047
|
</section>
|
|
1084
1048
|
<section id="profile-subhead">
|
|
1085
|
-
<div class="columns is-vcentered">
|
|
1049
|
+
<div class="columns is-centered is-vcentered is-gapless">
|
|
1086
1050
|
<div class="column is-6 is-full-mobile">
|
|
1087
1051
|
<div id="profile-quote" class="is-content">
|
|
1088
1052
|
<quote>{{ userCite }}</quote>
|
|
1089
1053
|
</div>
|
|
1090
1054
|
</div>
|
|
1091
|
-
<div class="column is-5 is-
|
|
1092
|
-
<div class="columns is-flex is-vcentered">
|
|
1093
|
-
<div class="column is-
|
|
1094
|
-
<ul class="profile-
|
|
1055
|
+
<div class="column is-5 is-full-mobile">
|
|
1056
|
+
<div id="profile-links" class="columns is-flex is-vcentered is-multiline py-4">
|
|
1057
|
+
<div class="column is-full-touch is-half-desktop">
|
|
1058
|
+
<ul class="profile-linklist">
|
|
1095
1059
|
<li>
|
|
1096
1060
|
<a :href="profile.links.posts" :title="'Mensajes de «' + profile.name + '»'" target="_blank">
|
|
1097
1061
|
<i :class="config.contactFields.mensajes"></i> Mensajes
|
|
@@ -1109,8 +1073,8 @@ Vue.component('expediente-usuario', {
|
|
|
1109
1073
|
</li>
|
|
1110
1074
|
</ul>
|
|
1111
1075
|
</div>
|
|
1112
|
-
<div class="column is-
|
|
1113
|
-
<ul class="profile-
|
|
1076
|
+
<div class="column is-full-touch is-half-desktop">
|
|
1077
|
+
<ul class="profile-linklist">
|
|
1114
1078
|
<li :id="'profile-link-' + field.id" v-for="field in usableLinkFields">
|
|
1115
1079
|
<a :href="field.url" :title="field.desc" target="_blank">
|
|
1116
1080
|
<i :class="field.icon"></i> {{ field.title }}
|
|
@@ -1169,7 +1133,7 @@ Vue.component('expediente-usuario', {
|
|
|
1169
1133
|
</div>
|
|
1170
1134
|
<ul id="chronology-element" class="is-two-columns-list">
|
|
1171
1135
|
<template v-for="element in chronologyField">
|
|
1172
|
-
<elemento-cronologia :
|
|
1136
|
+
<elemento-cronologia :element="element" type="profile" />
|
|
1173
1137
|
</template>
|
|
1174
1138
|
</ul>
|
|
1175
1139
|
</li>
|
|
@@ -1179,7 +1143,7 @@ Vue.component('expediente-usuario', {
|
|
|
1179
1143
|
</div>
|
|
1180
1144
|
<ul id="relationships-element" class="is-two-columns-list">
|
|
1181
1145
|
<template v-for="element in relationshipsField">
|
|
1182
|
-
<elemento-relaciones :
|
|
1146
|
+
<elemento-relaciones :element="element" type="profile" />
|
|
1183
1147
|
</template>
|
|
1184
1148
|
</ul>
|
|
1185
1149
|
</li>
|
|
@@ -1192,16 +1156,17 @@ Vue.component('expediente-usuario', {
|
|
|
1192
1156
|
|
|
1193
1157
|
/* Tablillas */
|
|
1194
1158
|
Vue.component('cuerpo-principal', {
|
|
1195
|
-
props: ['
|
|
1159
|
+
props: ['title'],
|
|
1196
1160
|
computed: {
|
|
1197
|
-
|
|
1198
|
-
if (typeof this.
|
|
1199
|
-
else return this
|
|
1161
|
+
realTitle() {
|
|
1162
|
+
if (typeof this.title !== 'undefined') return this.title;
|
|
1163
|
+
else if (typeof this.$attrs['data-title'] !== 'undefined') return this.$attrs['data-title'];
|
|
1164
|
+
else return '';
|
|
1200
1165
|
}
|
|
1201
1166
|
},
|
|
1202
1167
|
template: `
|
|
1203
1168
|
<div class="main-slat">
|
|
1204
|
-
<div class="mainslat-title" v-if="
|
|
1169
|
+
<div class="mainslat-title" v-if="realTitle.length">{{ realTitle }}</div>
|
|
1205
1170
|
<div class="mainslat-content">
|
|
1206
1171
|
<slot></slot>
|
|
1207
1172
|
</div>
|
|
@@ -1210,16 +1175,17 @@ Vue.component('cuerpo-principal', {
|
|
|
1210
1175
|
});
|
|
1211
1176
|
|
|
1212
1177
|
Vue.component('cuerpo-interior', {
|
|
1213
|
-
props: ['
|
|
1178
|
+
props: ['title'],
|
|
1214
1179
|
computed: {
|
|
1215
|
-
|
|
1216
|
-
if (typeof this.
|
|
1217
|
-
else return this
|
|
1180
|
+
realTitle() {
|
|
1181
|
+
if (typeof this.title !== 'undefined') return this.title;
|
|
1182
|
+
else if (typeof this.$attrs['data-title'] !== 'undefined') return this.$attrs['data-title'];
|
|
1183
|
+
else return '';
|
|
1218
1184
|
}
|
|
1219
1185
|
},
|
|
1220
1186
|
template: `
|
|
1221
1187
|
<div class="slat-interior">
|
|
1222
|
-
<div class="slatinterior-title" v-if="
|
|
1188
|
+
<div class="slatinterior-title" v-if="realTitle.length">{{ realTitle }}</div>
|
|
1223
1189
|
<div class="slatinterior-content">
|
|
1224
1190
|
<slot></slot>
|
|
1225
1191
|
</div>
|
|
@@ -1228,16 +1194,17 @@ Vue.component('cuerpo-interior', {
|
|
|
1228
1194
|
});
|
|
1229
1195
|
|
|
1230
1196
|
Vue.component('cuerpo-lista', {
|
|
1231
|
-
props: ['
|
|
1197
|
+
props: ['title'],
|
|
1232
1198
|
computed: {
|
|
1233
|
-
|
|
1234
|
-
if (typeof this.
|
|
1235
|
-
else return this
|
|
1199
|
+
realTitle() {
|
|
1200
|
+
if (typeof this.title !== 'undefined') return this.title;
|
|
1201
|
+
else if (typeof this.$attrs['data-title'] !== 'undefined') return this.$attrs['data-title'];
|
|
1202
|
+
else return '';
|
|
1236
1203
|
}
|
|
1237
1204
|
},
|
|
1238
1205
|
template: `
|
|
1239
1206
|
<div class="slat-list">
|
|
1240
|
-
<div class="slatlist-title" v-if="
|
|
1207
|
+
<div class="slatlist-title" v-if="realTitle.length">{{ realTitle }}</div>
|
|
1241
1208
|
<ol class="slatlist-content">
|
|
1242
1209
|
<slot></slot>
|
|
1243
1210
|
</ol>
|