mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
fix(lint): automatically fix lint warnings
This commit is contained in:
@@ -32,8 +32,8 @@ export default {
|
||||
components: {
|
||||
BaseNotification,
|
||||
},
|
||||
props: ['notification', 'canRemove'],
|
||||
mixins: [scoreTask, sync],
|
||||
props: ['notification', 'canRemove'],
|
||||
methods: {
|
||||
async action () {
|
||||
const { task, direction } = this.notification.data;
|
||||
|
||||
@@ -91,7 +91,9 @@
|
||||
<div
|
||||
class="btn btn-primary checklist-icons"
|
||||
@click="saveWebhook(webhook, index)"
|
||||
> {{ $t('subUpdateTitle') }} </div>
|
||||
>
|
||||
{{ $t('subUpdateTitle') }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
:class="[{ 'opacity-75': locked }, classOverride]"
|
||||
>
|
||||
<span
|
||||
v-if="locked"
|
||||
v-once
|
||||
class="svg-icon lock-icon icon-10 mr-1"
|
||||
:class="classOverride ? classOverride : 'gray-200'"
|
||||
v-html="icons.lock"
|
||||
v-if="locked"
|
||||
>
|
||||
</span>
|
||||
<label
|
||||
|
||||
@@ -4,21 +4,23 @@
|
||||
:class="{ 'break': maxItems === 0 }"
|
||||
>
|
||||
<template v-if="items.length === 0">
|
||||
<div class="items-none">{{ emptyMessage }}</div>
|
||||
<div class="items-none">
|
||||
{{ emptyMessage }}
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div
|
||||
v-for="item in truncatedSelectedItems"
|
||||
:key="item.id"
|
||||
:title="item.name"
|
||||
class="multi-item mr-1 d-inline-flex align-items-center"
|
||||
:class="{'margin-adjust': maxItems !== 0, 'pill-invert': pillInvert}"
|
||||
v-for="item in truncatedSelectedItems"
|
||||
|
||||
@click.stop="removeItem($event, item)"
|
||||
>
|
||||
<div
|
||||
class="multi-label my-auto ml-75 mr-2"
|
||||
v-markdown="item.name"
|
||||
class="multi-label my-auto ml-75 mr-2"
|
||||
></div>
|
||||
<div
|
||||
class="remove ml-auto mr-75"
|
||||
@@ -26,10 +28,10 @@
|
||||
></div>
|
||||
</div>
|
||||
<div
|
||||
class="items-more ml-75"
|
||||
v-if="remainingSelectedItems.length > 0"
|
||||
class="items-more ml-75"
|
||||
>
|
||||
+{{remainingSelectedItems.length}}
|
||||
+{{ remainingSelectedItems.length }}
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
@@ -135,6 +137,26 @@ export default {
|
||||
markdown: markdownDirective,
|
||||
},
|
||||
components: {},
|
||||
props: {
|
||||
addNew: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
emptyMessage: {
|
||||
type: String,
|
||||
},
|
||||
maxItems: {
|
||||
type: Number,
|
||||
default: 3,
|
||||
},
|
||||
pillInvert: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
items: {
|
||||
type: Array,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
@@ -158,26 +180,6 @@ export default {
|
||||
return this.items.slice(this.maxItems);
|
||||
},
|
||||
},
|
||||
props: {
|
||||
addNew: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
emptyMessage: {
|
||||
type: String,
|
||||
},
|
||||
maxItems: {
|
||||
type: Number,
|
||||
default: 3,
|
||||
},
|
||||
pillInvert: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
items: {
|
||||
type: Array,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
removeItem ($event, item) {
|
||||
this.$emit('remove-item', item.id);
|
||||
|
||||
@@ -1,20 +1,28 @@
|
||||
<template>
|
||||
<div>
|
||||
<select-list :items="items"
|
||||
<select-list
|
||||
:items="items"
|
||||
:key-prop="'icon'"
|
||||
class="difficulty-select"
|
||||
:class="{disabled: disabled}"
|
||||
:disabled="disabled"
|
||||
:value="selected"
|
||||
@select="$emit('select', $event.value)">
|
||||
@select="$emit('select', $event.value)"
|
||||
>
|
||||
<template v-slot:item="{ item, button }">
|
||||
<div v-if="item" class="difficulty-item" :class="{ 'isButton': button }">
|
||||
<div
|
||||
v-if="item"
|
||||
class="difficulty-item"
|
||||
:class="{ 'isButton': button }"
|
||||
>
|
||||
<span class="label">{{ item.label }}</span>
|
||||
|
||||
<div class="svg-icon" >
|
||||
<span v-for="n in item.stars"
|
||||
<div class="svg-icon">
|
||||
<span
|
||||
v-for="n in item.stars"
|
||||
:key="n"
|
||||
v-html="icons.difficultyTrivial"
|
||||
:key="n">
|
||||
>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
@@ -135,6 +143,14 @@ export default {
|
||||
components: {
|
||||
selectList,
|
||||
},
|
||||
props: {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
},
|
||||
value: {
|
||||
type: Number,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
const items = [
|
||||
{
|
||||
@@ -170,13 +186,5 @@ export default {
|
||||
selected: items.find(i => i.value === this.value),
|
||||
};
|
||||
},
|
||||
props: {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
},
|
||||
value: {
|
||||
type: Number,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -1,36 +1,40 @@
|
||||
multi<template>
|
||||
<div>
|
||||
<b-dropdown
|
||||
ref="dropdown"
|
||||
class="inline-dropdown select-multi"
|
||||
:toggle-class="isOpened ? 'active' : null"
|
||||
@show="wasOpened()"
|
||||
@hide="hideCallback($event)"
|
||||
@toggle="openOrClose($event)"
|
||||
:toggle-class="isOpened ? 'active' : null"
|
||||
ref="dropdown"
|
||||
>
|
||||
<b-dropdown-header>
|
||||
<div class="mb-2">
|
||||
<b-form-input type="text"
|
||||
:placeholder="searchPlaceholder"
|
||||
<b-form-input
|
||||
v-model="search"
|
||||
type="text"
|
||||
:placeholder="searchPlaceholder"
|
||||
@keyup.enter="handleSubmit"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<multi-list v-if="selectedItems.length > 0"
|
||||
<multi-list
|
||||
v-if="selectedItems.length > 0"
|
||||
:add-new="addNew"
|
||||
:pill-invert="pillInvert"
|
||||
:items="selectedItemsAsObjects"
|
||||
:max-items="0"
|
||||
@remove-item="removeItem($event)"
|
||||
:max-items="0" />
|
||||
|
||||
/>
|
||||
</b-dropdown-header>
|
||||
<template v-slot:button-content>
|
||||
<multi-list :items="selectedItemsAsObjects"
|
||||
<multi-list
|
||||
:items="selectedItemsAsObjects"
|
||||
:add-new="addNew"
|
||||
:pill-invert="pillInvert"
|
||||
:empty-message="emptyMessage"
|
||||
@remove-item="removeItem($event)"/>
|
||||
@remove-item="removeItem($event)"
|
||||
/>
|
||||
</template>
|
||||
<div
|
||||
v-if="addNew || availableToSelect.length > 0"
|
||||
@@ -43,20 +47,30 @@ multi<template>
|
||||
<b-dropdown-item-button
|
||||
v-for="item in availableToSelect"
|
||||
:key="item.id"
|
||||
@click.prevent.stop="selectItem(item)"
|
||||
class="ignore-hide multi-item"
|
||||
:class="{ 'none': item.id === 'none', selectListItem: true }"
|
||||
@click.prevent.stop="selectItem(item)"
|
||||
>
|
||||
<div class="label" v-markdown="item.name"></div>
|
||||
<div class="challenge" v-if="item.challenge">{{$t('challenge')}}</div>
|
||||
<div
|
||||
v-markdown="item.name"
|
||||
class="label"
|
||||
></div>
|
||||
<div
|
||||
v-if="item.challenge"
|
||||
class="challenge"
|
||||
>
|
||||
{{ $t('challenge') }}
|
||||
</div>
|
||||
</b-dropdown-item-button>
|
||||
|
||||
<div v-if="addNew" class="hint">
|
||||
{{$t('pressEnterToAddTag', { tagName: search })}}
|
||||
<div
|
||||
v-if="addNew"
|
||||
class="hint"
|
||||
>
|
||||
{{ $t('pressEnterToAddTag', { tagName: search }) }}
|
||||
</div>
|
||||
</div>
|
||||
</b-dropdown>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -165,6 +179,28 @@ export default {
|
||||
components: {
|
||||
MultiList,
|
||||
},
|
||||
props: {
|
||||
addNew: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
allItems: {
|
||||
type: Array,
|
||||
},
|
||||
emptyMessage: {
|
||||
type: String,
|
||||
},
|
||||
pillInvert: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
searchPlaceholder: {
|
||||
type: String,
|
||||
},
|
||||
selectedItems: {
|
||||
type: Array,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
preventHide: true,
|
||||
@@ -173,12 +209,48 @@ export default {
|
||||
search: '',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
selectedItemsIdList () {
|
||||
return this.selectedItems
|
||||
? this.selectedItems.map(t => t)
|
||||
: [];
|
||||
},
|
||||
allItemsMap () {
|
||||
const obj = {};
|
||||
this.allItems.forEach(t => {
|
||||
obj[t.id] = t;
|
||||
});
|
||||
return obj;
|
||||
},
|
||||
selectedItemsAsObjects () {
|
||||
return this.selectedItems.map(t => this.allItemsMap[t]);
|
||||
},
|
||||
availableToSelect () {
|
||||
const availableItems = this.allItems.filter(t => !this.selectedItemsIdList.includes(t.id));
|
||||
|
||||
const searchString = this.search.toLowerCase();
|
||||
|
||||
const filteredItems = availableItems.filter(i => i.name.toLowerCase().includes(searchString));
|
||||
|
||||
return filteredItems;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
selected () {
|
||||
this.$emit('changed', this.selected);
|
||||
},
|
||||
},
|
||||
created () {
|
||||
document.addEventListener('keyup', this.handleEsc);
|
||||
},
|
||||
beforeDestroy () {
|
||||
document.removeEventListener('keyup', this.handleEsc);
|
||||
},
|
||||
mounted () {
|
||||
this.$refs.dropdown.clickOutHandler = () => {
|
||||
this.closeSelectPopup();
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
closeSelectPopup () {
|
||||
this.preventHide = false;
|
||||
@@ -232,63 +304,5 @@ export default {
|
||||
this.search = '';
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
selectedItemsIdList () {
|
||||
return this.selectedItems
|
||||
? this.selectedItems.map(t => t)
|
||||
: [];
|
||||
},
|
||||
allItemsMap () {
|
||||
const obj = {};
|
||||
this.allItems.forEach(t => {
|
||||
obj[t.id] = t;
|
||||
});
|
||||
return obj;
|
||||
},
|
||||
selectedItemsAsObjects () {
|
||||
return this.selectedItems.map(t => this.allItemsMap[t]);
|
||||
},
|
||||
availableToSelect () {
|
||||
const availableItems = this.allItems.filter(t => !this.selectedItemsIdList.includes(t.id));
|
||||
|
||||
const searchString = this.search.toLowerCase();
|
||||
|
||||
const filteredItems = availableItems.filter(i => i.name.toLowerCase().includes(searchString));
|
||||
|
||||
return filteredItems;
|
||||
},
|
||||
},
|
||||
props: {
|
||||
addNew: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
allItems: {
|
||||
type: Array,
|
||||
},
|
||||
emptyMessage: {
|
||||
type: String,
|
||||
},
|
||||
pillInvert: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
searchPlaceholder: {
|
||||
type: String,
|
||||
},
|
||||
selectedItems: {
|
||||
type: Array,
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
selected () {
|
||||
this.$emit('changed', this.selected);
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.$refs.dropdown.clickOutHandler = () => {
|
||||
this.closeSelectPopup();
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
<template>
|
||||
<div>
|
||||
<select-list :items="items"
|
||||
<select-list
|
||||
:items="items"
|
||||
:value="selected"
|
||||
class="array-select"
|
||||
:class="{disabled: disabled}"
|
||||
:disabled="disabled"
|
||||
@select="selectItem($event)">
|
||||
@select="selectItem($event)"
|
||||
>
|
||||
<template v-slot:item="{ item }">
|
||||
<span class="label">{{ $t(item) }}</span>
|
||||
</template>
|
||||
@@ -50,6 +52,15 @@ export default {
|
||||
components: {
|
||||
selectList,
|
||||
},
|
||||
props: {
|
||||
items: {
|
||||
type: Array,
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
},
|
||||
value: [String, Number, Object],
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
selected: this.items.find(i => i === this.value),
|
||||
@@ -61,14 +72,5 @@ export default {
|
||||
this.$emit('select', item);
|
||||
},
|
||||
},
|
||||
props: {
|
||||
items: {
|
||||
type: Array,
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
},
|
||||
value: [String, Number, Object],
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -187,7 +187,8 @@
|
||||
:class="{open: !task.collapseChecklist}"
|
||||
@click="collapseChecklist(task)"
|
||||
>
|
||||
<div v-once
|
||||
<div
|
||||
v-once
|
||||
class="svg-icon"
|
||||
v-html="icons.checklist"
|
||||
></div>
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
:no-close-on-esc="true"
|
||||
:no-close-on-backdrop="true"
|
||||
size="sm"
|
||||
:hide-footer="true"
|
||||
@hidden="onClose()"
|
||||
@show="handleOpen()"
|
||||
@shown="focusInput()"
|
||||
:hide-footer="true"
|
||||
>
|
||||
<div
|
||||
v-if="task"
|
||||
@@ -26,9 +26,11 @@
|
||||
<button
|
||||
class="cancel-task-btn mr-3"
|
||||
:class="cssClass('headings')"
|
||||
@click="cancel()"
|
||||
type="button"
|
||||
>{{ $t('cancel') }}</button>
|
||||
@click="cancel()"
|
||||
>
|
||||
{{ $t('cancel') }}
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-secondary d-flex align-items-center justify-content-center"
|
||||
:class="{disabled: !canSave}"
|
||||
@@ -52,7 +54,7 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<lockable-label
|
||||
:classOverride="cssClass('headings')"
|
||||
:class-override="cssClass('headings')"
|
||||
:locked="groupAccessRequiredAndOnPersonalPage || challengeAccessRequired"
|
||||
:text="`${$t('text')}*`"
|
||||
/>
|
||||
@@ -69,8 +71,8 @@
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="form-group mb-0"
|
||||
v-if="isUserTask || isChallengeTask || isOriginalChallengeTask"
|
||||
class="form-group mb-0"
|
||||
>
|
||||
<label
|
||||
class="d-flex align-items-center justify-content-between mb-1"
|
||||
@@ -94,11 +96,11 @@
|
||||
></textarea>
|
||||
</div>
|
||||
<div
|
||||
class="form-group mb-0 mt-3"
|
||||
v-if="showManagerNotes"
|
||||
class="form-group mb-0 mt-3"
|
||||
>
|
||||
<lockable-label
|
||||
:classOverride="cssClass('headings')"
|
||||
:class-override="cssClass('headings')"
|
||||
:locked="groupAccessRequiredAndOnPersonalPage"
|
||||
:text="$t('managerNotes')"
|
||||
/>
|
||||
@@ -143,7 +145,10 @@
|
||||
class="option mt-3"
|
||||
>
|
||||
<div class="form-group">
|
||||
<label v-once class="mb-1">{{ $t('cost') }}</label>
|
||||
<label
|
||||
v-once
|
||||
class="mb-1"
|
||||
>{{ $t('cost') }}</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend input-group-icon align-items-center">
|
||||
<div
|
||||
@@ -167,9 +172,10 @@
|
||||
v-if="checklistEnabled"
|
||||
class="option mt-3"
|
||||
>
|
||||
<checklist :items.sync="task.checklist"
|
||||
:disableItems="groupAccessRequiredAndOnPersonalPage"
|
||||
:disableDrag="groupAccessRequiredAndOnPersonalPage"
|
||||
<checklist
|
||||
:items.sync="task.checklist"
|
||||
:disable-items="groupAccessRequiredAndOnPersonalPage"
|
||||
:disable-drag="groupAccessRequiredAndOnPersonalPage"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
@@ -243,10 +249,9 @@
|
||||
</div>
|
||||
<select-difficulty
|
||||
:value="task.priority"
|
||||
@select="setDifficulty($event)"
|
||||
:disabled="groupAccessRequiredAndOnPersonalPage || challengeAccessRequired"
|
||||
@select="setDifficulty($event)"
|
||||
/>
|
||||
|
||||
</template>
|
||||
<div
|
||||
v-if="task.type === 'todo' && (task.date
|
||||
@@ -332,7 +337,6 @@
|
||||
required="required"
|
||||
:disabled="challengeAccessRequired || groupAccessRequiredAndOnPersonalPage"
|
||||
>
|
||||
|
||||
</div>
|
||||
<div class="input-group-spaced input-group-text">
|
||||
{{ repeatSuffix }}
|
||||
@@ -352,8 +356,8 @@
|
||||
<div class="toggle-group">
|
||||
<toggle-checkbox
|
||||
v-for="(day, dayNumber) in ['su','m','t','w','th','f','s']"
|
||||
:tab-index="dayNumber"
|
||||
:key="dayNumber"
|
||||
:tab-index="dayNumber"
|
||||
:checked.sync="task.repeat[day]"
|
||||
:disabled="groupAccessRequiredAndOnPersonalPage || challengeAccessRequired"
|
||||
:text="weekdaysMin(dayNumber)"
|
||||
@@ -410,14 +414,16 @@
|
||||
class="col-12 mb-1"
|
||||
>{{ $t('tags') }}</label>
|
||||
<div class="col-12">
|
||||
<select-multi :selected-items="task.tags"
|
||||
<select-multi
|
||||
ref="selectTag"
|
||||
:selected-items="task.tags"
|
||||
:all-items="user.tags"
|
||||
:add-new="true"
|
||||
:empty-message="$t('addTags')"
|
||||
:search-placeholder="$t('enterTag')"
|
||||
@changed="task.tags = $event"
|
||||
@addNew="addTag"
|
||||
ref="selectTag" />
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -446,7 +452,10 @@
|
||||
v-if="task.type === 'todo'"
|
||||
class="form-group"
|
||||
>
|
||||
<label v-once class="mb-1">{{ $t('sharedCompletion') }}</label>
|
||||
<label
|
||||
v-once
|
||||
class="mb-1"
|
||||
>{{ $t('sharedCompletion') }}</label>
|
||||
<select-translated-array
|
||||
:items="['recurringCompletion', 'singleCompletion', 'allAssignedCompletion']"
|
||||
:value="sharedCompletion"
|
||||
@@ -460,18 +469,21 @@
|
||||
>{{ $t('assignedTo') }}</label>
|
||||
<div class="col-12">
|
||||
<select-multi
|
||||
ref="assignMembers"
|
||||
:all-items="membersNameAndId"
|
||||
:empty-message="$t('unassigned')"
|
||||
:pill-invert="true"
|
||||
:search-placeholder="$t('chooseTeamMember')"
|
||||
:selected-items="assignedMembers"
|
||||
@toggle="toggleAssignment($event)"
|
||||
ref="assignMembers"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group flex-group mt-3 mb-4">
|
||||
<label v-once class="mb-0 flex">{{ $t('approvalRequired') }}</label>
|
||||
<label
|
||||
v-once
|
||||
class="mb-0 flex"
|
||||
>{{ $t('approvalRequired') }}</label>
|
||||
<toggle-switch
|
||||
class="d-inline-block"
|
||||
:checked="requiresApproval"
|
||||
@@ -506,12 +518,15 @@
|
||||
class="option mt-3"
|
||||
>
|
||||
<div class="form-group">
|
||||
<label v-once class="mb-1">{{ $t('restoreStreak') }}</label>
|
||||
<label
|
||||
v-once
|
||||
class="mb-1"
|
||||
>{{ $t('restoreStreak') }}</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend streak-addon input-group-icon">
|
||||
<div
|
||||
class="svg-icon"
|
||||
v-once
|
||||
class="svg-icon"
|
||||
v-html="icons.streak"
|
||||
></div>
|
||||
</div>
|
||||
@@ -531,8 +546,14 @@
|
||||
class="option mt-3"
|
||||
>
|
||||
<div class="form-group">
|
||||
<label v-once class="mb-1">{{ $t('restoreStreak') }}</label>
|
||||
<div class="row streak-inputs" :class="{'both': task.up && task.down}">
|
||||
<label
|
||||
v-once
|
||||
class="mb-1"
|
||||
>{{ $t('restoreStreak') }}</label>
|
||||
<div
|
||||
class="row streak-inputs"
|
||||
:class="{'both': task.up && task.down}"
|
||||
>
|
||||
<div
|
||||
v-if="task.up"
|
||||
class="positive"
|
||||
@@ -541,8 +562,8 @@
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend positive-addon input-group-icon">
|
||||
<div
|
||||
class="svg-icon"
|
||||
v-once
|
||||
class="svg-icon"
|
||||
v-html="icons.positive"
|
||||
></div>
|
||||
</div>
|
||||
@@ -563,8 +584,8 @@
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend negative-addon input-group-icon">
|
||||
<div
|
||||
class="svg-icon"
|
||||
v-once
|
||||
class="svg-icon"
|
||||
v-html="icons.negative"
|
||||
></div>
|
||||
</div>
|
||||
@@ -595,8 +616,8 @@
|
||||
@click="destroy()"
|
||||
>
|
||||
<div
|
||||
class="svg-icon"
|
||||
v-once
|
||||
class="svg-icon"
|
||||
v-html="icons.destroy"
|
||||
></div>
|
||||
<span class="delete-text mt-1">
|
||||
@@ -613,8 +634,8 @@
|
||||
class="btn btn-primary btn-footer
|
||||
d-flex align-items-center justify-content-center"
|
||||
:class="{disabled: !canSave}"
|
||||
@click="submit()"
|
||||
type="button"
|
||||
@click="submit()"
|
||||
>
|
||||
{{ $t('create') }}
|
||||
</button>
|
||||
|
||||
@@ -2,13 +2,17 @@
|
||||
<div>
|
||||
<b-dropdown
|
||||
class="inline-dropdown"
|
||||
@show="isOpened = true"
|
||||
@hide="isOpened = false"
|
||||
:toggle-class="isOpened ? 'active' : null"
|
||||
:disabled="disabled"
|
||||
@show="isOpened = true"
|
||||
@hide="isOpened = false"
|
||||
>
|
||||
<template v-slot:button-content>
|
||||
<slot name="item" v-bind:item="selected" v-bind:button="true">
|
||||
<slot
|
||||
name="item"
|
||||
:item="selected"
|
||||
:button="true"
|
||||
>
|
||||
<!-- Fallback content -->
|
||||
{{ value }}
|
||||
</slot>
|
||||
@@ -20,13 +24,16 @@
|
||||
:class="{active: item === selected, selectListItem: true}"
|
||||
@click="selectItem(item)"
|
||||
>
|
||||
<slot name="item" v-bind:item="item" v-bind:button="false">
|
||||
<slot
|
||||
name="item"
|
||||
:item="item"
|
||||
:button="false"
|
||||
>
|
||||
<!-- Fallback content -->
|
||||
{{ item }}
|
||||
</slot>
|
||||
</b-dropdown-item>
|
||||
</b-dropdown>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -37,12 +44,6 @@
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
isOpened: false,
|
||||
selected: this.value,
|
||||
};
|
||||
},
|
||||
props: {
|
||||
items: {
|
||||
type: Array,
|
||||
@@ -58,6 +59,12 @@ export default {
|
||||
type: String,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
isOpened: false,
|
||||
selected: this.value,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
selectItem (item) {
|
||||
this.selected = item;
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<template>
|
||||
<button class="toggle-checkbox"
|
||||
<button
|
||||
class="toggle-checkbox"
|
||||
:class="{checked: isChecked}"
|
||||
@click="isChecked = !isChecked"
|
||||
type="button"
|
||||
:disabled="disabled">
|
||||
:disabled="disabled"
|
||||
@click="isChecked = !isChecked"
|
||||
>
|
||||
{{ text }}
|
||||
</button>
|
||||
</template>
|
||||
|
||||
@@ -18,9 +18,10 @@
|
||||
v-b-tooltip.hover.left="$t('sendMessage')"
|
||||
class="btn btn-secondary message-icon"
|
||||
>
|
||||
<div class="svg-icon message-icon"
|
||||
v-html="icons.message"
|
||||
<div
|
||||
v-once
|
||||
class="svg-icon message-icon"
|
||||
v-html="icons.message"
|
||||
></div>
|
||||
</button>
|
||||
</router-link>
|
||||
|
||||
Reference in New Issue
Block a user