1
1
<template >
2
2
<div
3
- class =" list-group-item align-items-center"
3
+ class =" list-group-item align-items-center duty-list-group "
4
4
:class =" {
5
5
'list-group-item-action':
6
- this.$store.getters.hasCharacter && isHovering && (duty.cleared == -1 || duty.cleared == 2),
6
+ this.$store.getters.hasCharacter && isHoveringListItem && (duty.cleared == -1 || duty.cleared == 2),
7
7
'cursor-pointer': this.$store.getters.hasCharacter && (duty.cleared == -1 || duty.cleared == 2),
8
8
}"
9
- @click =" check"
10
- @mouseover =" isHovering = true"
11
- @mouseout =" isHovering = false"
12
9
>
13
10
<div
14
11
class =" d-flex justify-content-between align-items-center"
15
12
:class =" {
16
13
'text-secondary': duty.cleared == -1,
17
14
'text-success': duty.cleared >= 1,
18
15
}"
16
+ @click =" check"
17
+ @mouseover =" isHoveringListItem = true"
18
+ @mouseout =" isHoveringListItem = false"
19
19
>
20
20
<span
21
21
class =" duty-list-item"
27
27
<i
28
28
class =" me-2 fa-fw fal"
29
29
:class =" {
30
- 'fa-question-circle': duty.cleared == -1 && !(duty.cleared == -1 && isHovering ),
30
+ 'fa-question-circle': duty.cleared == -1 && !(duty.cleared == -1 && isHoveringListItem && !isHoveringWikiLink ),
31
31
'fa-badge-check': duty.cleared == 1,
32
- 'fa-check-circle': duty.cleared == 2 || (duty.cleared == -1 && isHovering ),
32
+ 'fa-check-circle': duty.cleared == 2 || (duty.cleared == -1 && isHoveringListItem && !isHoveringWikiLink ),
33
33
'fa-circle': duty.cleared == 0,
34
34
}"
35
35
></i >
46
46
'user-select-none': duty.blur,
47
47
}"
48
48
>
49
- {{ duty["Name" + $i18n.locale.toUpperCase()] || duty["NameEN"] }}
49
+ {{ dutyName }}
50
50
</a >
51
51
<span
52
52
v-else
58
58
'text-bold': duty.Bold,
59
59
}"
60
60
>
61
- {{ duty["Name" + $i18n.locale.toUpperCase()] || duty["NameEN"] }}
61
+ {{ dutyName }}
62
62
</span >
63
63
</span >
64
- <span
65
- v-if =" duty.IsMSQ"
66
- class =" icon-marker-msq"
67
- data-bs-toggle =" tooltip"
68
- data-bs-placement =" top"
69
- :title =" $t('encounters.msqContent')"
70
- ></span >
71
- <span
72
- v-if =" duty.Expansion && showPatchNums"
73
- :class =" 'icon-exp-' + duty.Expansion"
74
- data-bs-toggle =" tooltip"
75
- data-bs-placement =" top"
76
- :title =" $t('encounters.unlockedInExp')"
77
- ></span >
64
+ <div class =" d-inline-flex align-items-center duty-icons" >
65
+ <span
66
+ v-if =" duty.IsMSQ"
67
+ class =" icon-marker-msq"
68
+ data-bs-toggle =" tooltip"
69
+ data-bs-placement =" top"
70
+ :title =" $t('encounters.msqContent')"
71
+ ></span >
72
+ <span
73
+ v-if =" duty.Expansion && showPatchNums"
74
+ :class =" 'icon-exp-' + duty.Expansion"
75
+ data-bs-toggle =" tooltip"
76
+ data-bs-placement =" top"
77
+ :title =" $t('encounters.unlockedInExp')"
78
+ ></span >
79
+ <a
80
+ v-if =" showWikiLink"
81
+ :href =" duty.WikiUrl"
82
+ class =" text-success tt duty-wiki-link"
83
+ @click.stop =" "
84
+ @mouseover =" isHoveringWikiLink = true"
85
+ @mouseout =" isHoveringWikiLink = false"
86
+ >
87
+ <i class =" fa-fw fad fa-external-link" ></i >
88
+ <span class =" tt-text" >Wiki resource</span >
89
+ </a >
90
+ </div >
78
91
</div >
79
92
<div id =" rewards" v-if =" filters.rewards && !duty.blur && ('Mounts' in duty || 'Minions' in duty)" >
80
93
<div v-if =" 'Mounts' in duty" >
143
156
text-overflow : unset ;
144
157
}
145
158
159
+ .duty-list-group {
160
+ padding : 0 ;
161
+ }
162
+
146
163
.duty-list-item {
147
164
overflow : hidden ;
148
165
white-space : nowrap ;
149
166
text-overflow : " … " ;
167
+ width : 100% ;
168
+ }
169
+
170
+ .duty-wiki-link ,
171
+ .duty-list-item {
172
+ padding : var (--bs-list-group-item-padding-y ) var (--bs-list-group-item-padding-x );
173
+ }
174
+
175
+ .duty-icons > :not (.duty-wiki-link ):last-child {
176
+ padding-right : var (--bs-list-group-item-padding-x );
150
177
}
151
178
152
179
.duty-list-item-blur {
@@ -192,7 +219,8 @@ import dbs from "@/utilities/dbs.js";
192
219
export default {
193
220
data () {
194
221
return {
195
- isHovering: false ,
222
+ isHoveringListItem: false ,
223
+ isHoveringWikiLink: false ,
196
224
};
197
225
},
198
226
props: {
@@ -206,6 +234,9 @@ export default {
206
234
title () {
207
235
return this .duty .LodestoneID || this .duty .blur ? " " : this .duty .Name ;
208
236
},
237
+ dutyName () {
238
+ return this .duty [" Name" + this .$i18n .locale .toUpperCase ()] || this .duty [" NameEN" ];
239
+ },
209
240
showPatchNums () {
210
241
let patchNumsSetting = this .$store .getters .settings .patchNumsOption || 0 ;
211
242
@@ -215,6 +246,9 @@ export default {
215
246
patchNumsSetting == 2
216
247
);
217
248
},
249
+ showWikiLink () {
250
+ return ! this .duty .blur && this .duty .WikiUrl ? true : false ;
251
+ },
218
252
},
219
253
methods: {
220
254
getLodestoneURL: getLodestoneURL,
0 commit comments