make stylelint happy

Signed-off-by: MiniDigger <admin@minidigger.me>
This commit is contained in:
MiniDigger 2021-06-06 11:04:26 +02:00
parent 3047fa6fbd
commit 57f2d17cda
57 changed files with 437 additions and 234 deletions

View File

@ -1,5 +1,5 @@
<template>
<div :id="id" class="ct-chart"></div>
<div :id="id" class="ct-chart" />
</template>
<script lang="ts">

View File

@ -6,14 +6,20 @@
<v-card>
<v-card-title>
<h4>{{ $t('donate.title', [donationTarget]) }}</h4>
<v-btn icon @click="show = false"><v-icon>mdi-close</v-icon></v-btn>
<v-btn icon @click="show = false">
<v-icon>mdi-close</v-icon>
</v-btn>
</v-card-title>
<v-card-text>
<v-row>
<v-col cols="12">
<v-btn-toggle v-model="monthly" mandatory>
<v-btn :value="true">{{ $t('donate.monthly') }}</v-btn>
<v-btn :value="false">{{ $t('donate.oneTime') }}</v-btn>
<v-btn :value="true">
{{ $t('donate.monthly') }}
</v-btn>
<v-btn :value="false">
{{ $t('donate.oneTime') }}
</v-btn>
</v-btn-toggle>
</v-col>
</v-row>
@ -74,12 +80,16 @@
<v-row>
<v-col cols="12">
<div class="input-group mb-3">
<v-text-field v-model.number="amount" label="Amount" type="number" prefix="$"></v-text-field>
<v-text-field v-model.number="amount" label="Amount" type="number" prefix="$" />
</div>
<small class="form-text">{{ $t('donate.legal', [donationTarget]) }}</small>
<div>
<v-btn type="submit" color="primary">{{ $t('donate.submit', [monthly ? $t('donate.monthly') : $t('donate.oneTime')]) }}</v-btn>
<v-btn @click="show = false">{{ $t('general.close') }}</v-btn>
<v-btn type="submit" color="primary">
{{ $t('donate.submit', [monthly ? $t('donate.monthly') : $t('donate.oneTime')]) }}
</v-btn>
<v-btn @click="show = false">
{{ $t('general.close') }}
</v-btn>
<img alt="" width="1" height="1" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" />
</div>
</v-col>

View File

@ -1,7 +1,7 @@
<template>
<div v-if="qs['donation']" class="row">
<div class="col-12">
<Announcement :announcement="announcement"></Announcement>
<Announcement :announcement="announcement" />
</div>
</div>
</template>

View File

@ -14,9 +14,13 @@
>
<v-list-item-icon>
<v-badge v-if="control.badge" offset-y="7" offset-x="7" left :content="control.badgeContent" :value="control.badgeContent">
<v-icon color="white">{{ control.icon }}</v-icon>
<v-icon color="white">
{{ control.icon }}
</v-icon>
</v-badge>
<v-icon v-else color="white">{{ control.icon }}</v-icon>
<v-icon v-else color="white">
{{ control.icon }}
</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>{{ control.title }}</v-list-item-title>

View File

@ -13,13 +13,13 @@
<Dropdown :controls="dropdown" />
</v-menu>
<v-spacer></v-spacer>
<v-spacer />
<v-menu v-if="isLoggedIn" bottom offset-y transition="slide-y-transition" open-on-hover>
<template #activator="{ on, attrs }">
<v-btn v-bind="attrs" color="primary" class="mr-1" v-on="on">
{{ $t('nav.createNew') }}
<v-icon right>mdi-chevron-down</v-icon>
<v-icon right> mdi-chevron-down </v-icon>
</v-btn>
</template>
<Dropdown :controls="newControls" />
@ -27,13 +27,17 @@
<v-tooltip bottom>
<template #activator="{ on }">
<v-btn icon to="/authors" nuxt class="mr-1" v-on="on"><v-icon>mdi-account-group</v-icon></v-btn>
<v-btn icon to="/authors" nuxt class="mr-1" v-on="on">
<v-icon>mdi-account-group</v-icon>
</v-btn>
</template>
<span>{{ $t('pages.authorsTitle') }}</span>
</v-tooltip>
<v-tooltip bottom>
<template #activator="{ on }">
<v-btn icon to="/staff" nuxt class="mr-1" v-on="on"><v-icon>mdi-account-tie</v-icon></v-btn>
<v-btn icon to="/staff" nuxt class="mr-1" v-on="on">
<v-icon>mdi-account-tie</v-icon>
</v-btn>
</template>
<span>{{ $t('pages.staffTitle') }}</span>
</v-tooltip>
@ -56,8 +60,12 @@
<Dropdown :controls="userControls" />
</v-menu>
<template v-else>
<v-btn href="/signup" class="mr-2" color="primary">{{ $t('nav.signup') }}</v-btn>
<v-btn color="secondary" @click="$auth.login($route.fullPath)">{{ $t('nav.login') }}</v-btn>
<v-btn href="/signup" class="mr-2" color="primary">
{{ $t('nav.signup') }}
</v-btn>
<v-btn color="secondary" @click="$auth.login($route.fullPath)">
{{ $t('nav.login') }}
</v-btn>
</template>
</v-app-bar>
</template>

View File

@ -1,6 +1,6 @@
<template>
<v-card>
<v-card-subtitle v-text="$t('hangar.sponsoredBy')"></v-card-subtitle>
<v-card-subtitle v-text="$t('hangar.sponsoredBy')" />
<v-card-text v-if="sponsor">
<a :href="sponsor.link">
<v-img :src="sponsor.image" :alt="sponsor.name" :title="sponsor.name" :height="50" contain />

View File

@ -19,7 +19,9 @@
$util.$vc.maxLength(validations.project.channels.max),
]"
/>
<v-card-subtitle class="pa-0 text-center">{{ $t('channel.modal.color') }}</v-card-subtitle>
<v-card-subtitle class="pa-0 text-center">
{{ $t('channel.modal.color') }}
</v-card-subtitle>
<v-item-group v-model="form.color">
<v-container>
<v-row v-for="(arr, arrIndex) in swatches" :key="arrIndex" justify="center">
@ -35,7 +37,7 @@
@click="toggle"
>
<v-fade-transition>
<v-icon v-show="active" small class="ma-auto">mdi-checkbox-marked-circle</v-icon>
<v-icon v-show="active" small class="ma-auto"> mdi-checkbox-marked-circle </v-icon>
</v-fade-transition>
</v-card>
</v-item>
@ -55,8 +57,12 @@
</v-form>
</v-card-text>
<v-card-actions class="justify-end">
<v-btn color="error" text @click="dialog = false">{{ $t('general.close') }}</v-btn>
<v-btn color="success" :disabled="!isValid" @click="create">{{ edit ? $t('general.save') : $t('general.create') }}</v-btn>
<v-btn color="error" text @click="dialog = false">
{{ $t('general.close') }}
</v-btn>
<v-btn color="success" :disabled="!isValid" @click="create">
{{ edit ? $t('general.save') : $t('general.create') }}
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>

View File

@ -6,9 +6,11 @@
<v-card>
<v-card-title>{{ title }}</v-card-title>
<!-- eslint-disable-next-line vue/no-v-html -->
<v-card-text v-html="prettyDiff"> </v-card-text>
<v-card-text v-html="prettyDiff" />
<v-card-actions class="justify-end">
<v-btn text color="warning" @click="dialog = false">{{ $t('general.close') }}</v-btn>
<v-btn text color="warning" @click="dialog = false">
{{ $t('general.close') }}
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>

View File

@ -12,7 +12,9 @@
<slot v-else />
</v-card-text>
<v-card-actions class="justify-end">
<v-btn text :color="closeColor" @click.stop="close">{{ closeLabel || $t('general.close') }}</v-btn>
<v-btn text :color="closeColor" @click.stop="close">
{{ closeLabel || $t('general.close') }}
</v-btn>
<slot name="other-btns" />
<v-btn :color="submitColor" :disabled="(!noForm && !validForm) || submitDisabled" :loading="loading" @click.stop="submit0">
{{ submitLabel || $t('general.submit') }}

View File

@ -6,10 +6,12 @@
<v-card>
<v-card-title>{{ title }}</v-card-title>
<v-card-text>
<Markdown :raw="markdown"></Markdown>
<Markdown :raw="markdown" />
</v-card-text>
<v-card-actions class="justify-end">
<v-btn text color="warning" @click="dialog = false">{{ $t('general.close') }}</v-btn>
<v-btn text color="warning" @click="dialog = false">
{{ $t('general.close') }}
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>

View File

@ -20,8 +20,12 @@
</v-form>
</v-card-text>
<v-card-actions class="justify-end">
<v-btn text color="warning" @click="dialog = false">{{ $t('general.close') }}</v-btn>
<v-btn color="success" :disabled="!validForm" :loading="loading" @click="submit0">{{ $t('general.submit') }}</v-btn>
<v-btn text color="warning" @click="dialog = false">
{{ $t('general.close') }}
</v-btn>
<v-btn color="success" :disabled="!validForm" :loading="loading" @click="submit0">
{{ $t('general.submit') }}
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>

View File

@ -2,7 +2,7 @@
<HangarModal :title="$t('visibility.modal.title', [type])" :submit="submit" no-form :submit-disabled="disableSubmit">
<template #activator="{ on, attrs }">
<v-btn :small="smallBtn" v-bind="attrs" color="warning" class="mr-1" :class="activatorClass" v-on="on">
<v-icon :small="smallBtn" left>mdi-eye</v-icon>
<v-icon :small="smallBtn" left> mdi-eye </v-icon>
{{ $t('visibility.modal.activatorBtn') }}
</v-btn>
</template>

View File

@ -7,8 +7,12 @@
<v-card-title>{{ $t('page.delete.title') }}</v-card-title>
<v-card-text>{{ $t('page.delete.text') }}</v-card-text>
<v-card-actions class="justify-end">
<v-btn text color="error" @click="dialog = false">{{ $t('general.close') }}</v-btn>
<v-btn color="warning" @click="$emit('delete')">{{ $t('general.delete') }}</v-btn>
<v-btn text color="error" @click="dialog = false">
{{ $t('general.close') }}
</v-btn>
<v-btn color="warning" @click="$emit('delete')">
{{ $t('general.delete') }}
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>

View File

@ -35,8 +35,12 @@
</v-form>
</v-card-text>
<v-card-actions class="justify-end">
<v-btn color="error" text @click="dialog = false">{{ $t('general.close') }}</v-btn>
<v-btn color="success" :disabled="!validForm" :loading="loading" @click="createPage">{{ $t('general.create') }}</v-btn>
<v-btn color="error" text @click="dialog = false">
{{ $t('general.close') }}
</v-btn>
<v-btn color="success" :disabled="!validForm" :loading="loading" @click="createPage">
{{ $t('general.create') }}
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>

View File

@ -4,7 +4,7 @@
<v-tooltip bottom>
<template #activator="{ on: tooltipOn }">
<v-btn small icon color="warning" :class="activatorClass" v-bind="attrs" v-on="{ ...dialogOn, ...tooltipOn }">
<v-icon small>mdi-pencil</v-icon>
<v-icon small> mdi-pencil </v-icon>
</v-btn>
</template>
<span>{{ $t('general.edit') }}</span>
@ -18,8 +18,12 @@
</v-form>
</v-card-text>
<v-card-actions class="justify-end">
<v-btn text color="warning" @click.stop="dialog = false">{{ $t('general.close') }}</v-btn>
<v-btn color="success" :disabled="!validForm || !edited" :loading="loading" @click.stop="submit">{{ $t('general.save') }}</v-btn>
<v-btn text color="warning" @click.stop="dialog = false">
{{ $t('general.close') }}
</v-btn>
<v-btn color="success" :disabled="!validForm || !edited" :loading="loading" @click.stop="submit">
{{ $t('general.save') }}
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>

View File

@ -6,7 +6,9 @@
<th>{{ $t('general.name') }}</th>
<th>{{ $t('general.required') }}</th>
<th>{{ $t('general.link') }}</th>
<th v-if="!noEditing">{{ $t('general.delete') }}</th>
<th v-if="!noEditing">
{{ $t('general.delete') }}
</th>
</tr>
</thead>
<tbody>
@ -109,7 +111,7 @@
</v-simple-table>
<div v-if="!noEditing" class="ma-2">
<v-btn color="primary" block @click="addNewDep">
<v-icon left>mdi-plus</v-icon>
<v-icon left> mdi-plus </v-icon>
{{ $t('general.add') }}
</v-btn>
</div>

View File

@ -4,7 +4,7 @@
<v-tooltip bottom>
<template #activator="{ on: tooltipOn }">
<v-btn small icon color="warning" :class="activatorClass" v-bind="attrs" v-on="{ ...dialogOn, ...tooltipOn }">
<v-icon small>mdi-pencil</v-icon>
<v-icon small> mdi-pencil </v-icon>
</v-btn>
</template>
<span>{{ $t('general.edit') }}</span>
@ -28,8 +28,12 @@
</v-form>
</v-card-text>
<v-card-actions class="justify-end">
<v-btn text color="warning" @click.stop="dialog = false">{{ $t('general.close') }}</v-btn>
<v-btn color="success" :disabled="!validForm || !edited" :loading="loading" @click.stop="submit">{{ $t('general.save') }}</v-btn>
<v-btn text color="warning" @click.stop="dialog = false">
{{ $t('general.close') }}
</v-btn>
<v-btn color="success" :disabled="!validForm || !edited" :loading="loading" @click.stop="submit">
{{ $t('general.save') }}
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>

View File

@ -9,7 +9,7 @@
<v-list-item-subtitle>
{{ $t('projectApproval.description', [project.changeRequester, `${project.namespace.owner}/${project.namespace.slug}`]) }}
<v-btn small icon color="primary" :to="`/${project.namespace.owner}/${project.namespace.slug}`" nuxt target="_blank">
<v-icon small>mdi-open-in-new</v-icon>
<v-icon small> mdi-open-in-new </v-icon>
</v-btn>
</v-list-item-subtitle>
</v-col>

View File

@ -10,7 +10,7 @@
<v-list-item-group v-model="selectedPlatform" color="primary" mandatory>
<v-list-item v-for="(platform, i) in Object.keys(project.recommendedVersions)" :key="i" :value="platform">
<v-list-item-icon>
<v-icon v-text="`$vuetify.icons.${platform.toLowerCase()}`"></v-icon>
<v-icon v-text="`$vuetify.icons.${platform.toLowerCase()}`" />
</v-list-item-icon>
<v-list-item-content>
{{ $store.state.platforms.get(platform).name }}
@ -32,7 +32,9 @@
:title="$t('version.page.confirmation.title', [project.name, version ? version.name : '', project.owner.name])"
:submit="download"
>
<v-alert type="error">{{ $t('version.page.confirmation.alert') }}</v-alert>
<v-alert type="error">
{{ $t('version.page.confirmation.alert') }}
</v-alert>
<em>{{ $t('version.page.confirmation.disclaimer') }}</em> </HangarModal
><v-tooltip v-if="copyButton" v-model="copySuccessful" bottom>
<template #activator="{ attrs }">

View File

@ -24,7 +24,7 @@
:disabled="!isEdited"
@click="save"
>
<v-icon left>mdi-check</v-icon>
<v-icon left> mdi-check </v-icon>
{{ $t('general.save') }}
</v-btn>
</v-card-title>
@ -36,14 +36,18 @@
:class="{ 'to-delete': member.toDelete, editing: member.editing, new: member.new }"
>
<UserAvatar :username="member.name" :avatar-url="$util.avatarUrl(member.name)" clazz="user-avatar-xs" />
<NuxtLink v-if="!isEditing" :to="'/' + member.name">{{ member.name }}</NuxtLink>
<NuxtLink v-if="!isEditing" :to="'/' + member.name">
{{ member.name }}
</NuxtLink>
<span v-else>{{ member.name }}</span>
<template v-if="isEditing && (!member.editing || member.new) && member.roleAssignable">
<v-btn v-if="!member.toDelete" icon x-small color="error" class="ml-1" @click="removeMember(member)">
<v-icon>mdi-delete</v-icon>
</v-btn>
<v-btn v-else icon x-small color="error" class="ml-1" @click="member.toDelete = false"><v-icon>mdi-undo</v-icon></v-btn>
<v-btn v-else icon x-small color="error" class="ml-1" @click="member.toDelete = false">
<v-icon>mdi-undo</v-icon>
</v-btn>
</template>
<span v-if="!member.editing" class="flex-right">

View File

@ -19,7 +19,7 @@
{{ props.item.name }}
</v-btn>
<v-btn v-else nuxt :to="`/${$route.params.author}/${$route.params.slug}`" color="info" text exact class="text-transform-unset">
<v-icon left>mdi-home</v-icon>
<v-icon left> mdi-home </v-icon>
{{ props.item.name }}
</v-btn>
</template>

View File

@ -1,10 +1,12 @@
<template>
<v-stepper-content :step="step">
<slot />
<v-btn v-if="!hideButtons" :disabled="!allowContinue" color="primary" class="mt-3" @click="$emit('continue')">{{
$t('project.new.step' + step + '.continue')
}}</v-btn>
<v-btn v-if="!hideButtons" text color="warning" class="mt-3" @click="$emit('back')">{{ $t('project.new.step' + step + '.back') }}</v-btn>
<v-btn v-if="!hideButtons" :disabled="!allowContinue" color="primary" class="mt-3" @click="$emit('continue')">
{{ $t('project.new.step' + step + '.continue') }}
</v-btn>
<v-btn v-if="!hideButtons" text color="warning" class="mt-3" @click="$emit('back')">
{{ $t('project.new.step' + step + '.back') }}
</v-btn>
</v-stepper-content>
</template>

View File

@ -8,7 +8,7 @@
<v-card-text>{{ $t(promptInfo.messageKey) }}</v-card-text>
<v-card-actions>
<v-btn small :loading="loading" @click.stop="markAsRead">
<v-icon color="success" left>mdi-check-circle</v-icon>
<v-icon color="success" left> mdi-check-circle </v-icon>
{{ $t('prompts.confirm') }}
</v-btn>
</v-card-actions>

View File

@ -4,7 +4,7 @@
<v-card-text v-text="text" />
<v-card-actions class="text-center">
<v-btn nuxt to="/" color="secondary">
<v-icon left>mdi-home</v-icon>
<v-icon left> mdi-home </v-icon>
{{ $t('general.home') }}
</v-btn>
</v-card-actions>

View File

@ -33,8 +33,13 @@
</v-col>
<v-col cols="auto">
<h1 class="d-inline">
<NuxtLink :to="'/' + project.namespace.owner">{{ project.namespace.owner }}</NuxtLink> /
<NuxtLink :to="slug">{{ project.name }}</NuxtLink>
<NuxtLink :to="'/' + project.namespace.owner">
{{ project.namespace.owner }}
</NuxtLink>
/
<NuxtLink :to="slug">
{{ project.name }}
</NuxtLink>
</h1>
<div>
<v-subheader>{{ project.description }}</v-subheader>
@ -46,8 +51,8 @@
<v-tooltip v-if="!$util.isCurrentUser(project.owner.id)" bottom>
<template #activator="{ on }">
<v-btn icon @click="toggleStar" v-on="on">
<v-icon v-if="project.userActions.starred" color="amber">mdi-star</v-icon>
<v-icon v-else color="amber">mdi-star-outline</v-icon>
<v-icon v-if="project.userActions.starred" color="amber"> mdi-star </v-icon>
<v-icon v-else color="amber"> mdi-star-outline </v-icon>
</v-btn>
</template>
<span v-if="project.userActions.starred">{{ $t('project.actions.unstar') }}</span>
@ -57,8 +62,8 @@
<v-tooltip v-if="!$util.isCurrentUser(project.owner.id)" bottom>
<template #activator="{ on }">
<v-btn icon @click="toggleWatch" v-on="on">
<v-icon v-if="project.userActions.watching">mdi-eye-off</v-icon>
<v-icon v-else>mdi-eye</v-icon>
<v-icon v-if="project.userActions.watching"> mdi-eye-off </v-icon>
<v-icon v-else> mdi-eye </v-icon>
</v-btn>
</template>
<span v-if="project.userActions.watching">{{ $t('project.actions.unwatch') }}</span>
@ -101,9 +106,11 @@
<v-row>
<v-tabs>
<v-tab v-for="tab in tabs" :key="tab.title" :exact="!!tab.exact" :to="tab.external ? '/linkout?remoteUrl=' + tab.link : tab.link" nuxt>
<v-icon left>{{ tab.icon }}</v-icon>
<v-icon left>
{{ tab.icon }}
</v-icon>
{{ tab.title }}
<v-icon v-if="tab.external" small class="mb-1 ml-1" color="primary">mdi-open-in-new</v-icon>
<v-icon v-if="tab.external" small class="mb-1 ml-1" color="primary"> mdi-open-in-new </v-icon>
</v-tab>
</v-tabs>
</v-row>

View File

@ -7,20 +7,20 @@
<v-simple-table>
<thead>
<tr>
<th><v-icon small left>mdi-tag</v-icon>{{ $t('channel.manage.channelName') }}</th>
<th><v-icon small left>mdi-format-list-numbered</v-icon>{{ $t('channel.manage.versionCount') }}</th>
<th><v-icon small left>mdi-file-find</v-icon>{{ $t('channel.manage.reviewed') }}</th>
<th><v-icon small left>mdi-pencil</v-icon>{{ $t('channel.manage.edit') }}</th>
<th v-if="channels.length !== 1"><v-icon small left>mdi-delete</v-icon>{{ $t('channel.manage.trash') }}</th>
<th><v-icon small left> mdi-tag </v-icon>{{ $t('channel.manage.channelName') }}</th>
<th><v-icon small left> mdi-format-list-numbered </v-icon>{{ $t('channel.manage.versionCount') }}</th>
<th><v-icon small left> mdi-file-find </v-icon>{{ $t('channel.manage.reviewed') }}</th>
<th><v-icon small left> mdi-pencil </v-icon>{{ $t('channel.manage.edit') }}</th>
<th v-if="channels.length !== 1"><v-icon small left> mdi-delete </v-icon>{{ $t('channel.manage.trash') }}</th>
</tr>
</thead>
<tbody>
<tr v-for="channel in channels" :key="channel.name">
<td><Tag :name="channel.name" :color="{ background: channel.color }"></Tag></td>
<td><Tag :name="channel.name" :color="{ background: channel.color }" /></td>
<td>{{ channel.versionCount }}</td>
<td>
<v-icon v-if="channel.nonReviewed">mdi-checkbox-blank-circle-outline</v-icon>
<v-icon v-else>mdi-check-circle</v-icon>
<v-icon v-if="channel.nonReviewed"> mdi-checkbox-blank-circle-outline </v-icon>
<v-icon v-else> mdi-check-circle </v-icon>
</td>
<td>
<ChannelModal :project-id="project.id" edit :channel="channel" @create="editChannel">
@ -51,7 +51,7 @@
v-bind="attrs"
v-on="on"
>
<v-icon left>mdi-plus</v-icon>
<v-icon left> mdi-plus </v-icon>
{{ $t('channel.manage.add') }}
</v-btn>
</template>

View File

@ -11,7 +11,7 @@
></iframe>
</div>
<div v-if="isLoggedIn">
<MarkdownEditor ref="editor" saveable editing :cancellable="false" :deletable="false" @save="postReply"></MarkdownEditor>
<MarkdownEditor ref="editor" saveable editing :cancellable="false" :deletable="false" @save="postReply" />
</div>
<div v-else>
<a @click="$auth.login($route.fullPath)">{{ $t('project.discuss.login') }}</a>

View File

@ -1,20 +1,30 @@
<template>
<v-card>
<v-card-title>
<span v-text="$t('flags.header')"></span>&nbsp;
<NuxtLink :to="'/' + project.namespace.owner + '/' + project.namespace.slug">{{ project.namespace.owner + '/' + project.namespace.slug }}</NuxtLink>
<span v-text="$t('flags.header')" />&nbsp;
<NuxtLink :to="'/' + project.namespace.owner + '/' + project.namespace.slug">
{{ project.namespace.owner + '/' + project.namespace.slug }}
</NuxtLink>
</v-card-title>
<v-card-text>
<v-data-table :loading="$fetchState.pending" :headers="headers" :items="flags" disable-filtering disable-sort hide-default-footer>
<template #no-data>
<v-alert type="info" class="mt-2">{{ $t('flags.noFlags') }}</v-alert>
<v-alert type="info" class="mt-2">
{{ $t('flags.noFlags') }}
</v-alert>
</template>
<template #item.user="{ item }">
{{ item.reportedByName }}
</template>
<template #item.reason="{ item }">
{{ $t(item.reason) }}
</template>
<template #item.createdAt="{ item }">
{{ $util.prettyDateTime(item.createdAt) }}
</template>
<template #item.user="{ item }">{{ item.reportedByName }}</template>
<template #item.reason="{ item }">{{ $t(item.reason) }}</template>
<template #item.createdAt="{ item }">{{ $util.prettyDateTime(item.createdAt) }}</template>
<template #item.resolved="{ item }">
<span v-if="item.resolved">{{ $t('flags.resolved', [item.resolvedByName, $util.prettyDate(item.resolvedAt)]) }}</span>
<span v-else v-text="$t('flags.notResolved')"></span>
<span v-else v-text="$t('flags.notResolved')" />
</template>
</v-data-table>
</v-card-text>

View File

@ -18,7 +18,7 @@
<v-row>
<v-col cols="12">
<v-card>
<v-card-title v-text="$t('project.info.title')"></v-card-title>
<v-card-title v-text="$t('project.info.title')" />
<v-card-text>
<DownloadButton
v-if="project.recommendedVersions && Object.keys(project.recommendedVersions).length > 0"
@ -39,7 +39,7 @@
>
<template #activator="{ on, attrs }">
<v-btn v-bind="attrs" v-on="on">
<v-icon left>mdi-currency-usd</v-icon>
<v-icon left> mdi-currency-usd </v-icon>
{{ $t('general.donate') }}
</v-btn>
</template>
@ -73,7 +73,7 @@
</v-col>
<v-col cols="12">
<v-card>
<v-card-title v-text="$t('project.promotedVersions')"></v-card-title>
<v-card-title v-text="$t('project.promotedVersions')" />
<v-card-text>
<v-list>
<v-list-item
@ -85,7 +85,7 @@
}"
>
{{ version.version }}
<Tag v-for="(tag, idx) in version.tags" :key="idx" :color="tag.color" :data="tag.displayData" :name="tag.name"></Tag>
<Tag v-for="(tag, idx) in version.tags" :key="idx" :color="tag.color" :data="tag.displayData" :name="tag.name" />
</v-list-item>
</v-list>
</v-card-text>

View File

@ -1,7 +1,7 @@
<template>
<v-card>
<v-card-title>
<span v-text="$t('notes.header')"></span>&nbsp;
<span v-text="$t('notes.header')" />&nbsp;
<NuxtLink :to="'/' + project.namespace.owner + '/' + project.namespace.slug">
{{ project.namespace.owner + '/' + project.namespace.slug }}
</NuxtLink>
@ -9,10 +9,14 @@
<v-card-text>
<v-text-field v-model.trim="text" filled :placeholder="$t('notes.placeholder')" dense hide-details @keyup.enter="addNote">
<template #append-outer>
<v-btn class="input-append-btn" color="primary" :disabled="!text" :loading="loading" @click="addNote">{{ $t('notes.addNote') }}</v-btn>
<v-btn class="input-append-btn" color="primary" :disabled="!text" :loading="loading" @click="addNote">
{{ $t('notes.addNote') }}
</v-btn>
</template>
</v-text-field>
<h2 class="mt-2">{{ $t('notes.notes') }}</h2>
<h2 class="mt-2">
{{ $t('notes.notes') }}
</h2>
<v-data-table
v-if="notes && notes.length > 0"
:headers="headers"
@ -22,7 +26,9 @@
disable-sort
hide-default-footer
>
<template #item.createdAt="{ item }">{{ $util.prettyDate(item.createdAt) }}</template>
<template #item.createdAt="{ item }">
{{ $util.prettyDate(item.createdAt) }}
</template>
</v-data-table>
<v-alert v-else type="info" prominent v-text="$t('notes.noNotes')" />
</v-card-text>

View File

@ -19,16 +19,24 @@
:disabled="!validForm.settings || settingsEqual"
@click="save"
>
<v-icon left>mdi-check</v-icon>
<v-icon left> mdi-check </v-icon>
{{ $t('project.settings.save') }}
</v-btn>
</v-card-title>
<v-card-text>
<v-tabs v-model="selectedTab" vertical>
<v-tab href="#general">{{ $t('project.settings.tabs.general') }}</v-tab>
<v-tab href="#optional">{{ $t('project.settings.tabs.optional') }}</v-tab>
<v-tab href="#management">{{ $t('project.settings.tabs.management') }}</v-tab>
<v-tab href="#donation">{{ $t('project.settings.tabs.donation') }}</v-tab>
<v-tab href="#general">
{{ $t('project.settings.tabs.general') }}
</v-tab>
<v-tab href="#optional">
{{ $t('project.settings.tabs.optional') }}
</v-tab>
<v-tab href="#management">
{{ $t('project.settings.tabs.management') }}
</v-tab>
<v-tab href="#donation">
{{ $t('project.settings.tabs.donation') }}
</v-tab>
<v-tab-item id="general">
<v-form v-model="validForm.settings">
@ -92,11 +100,11 @@
@change="onFileChange"
/>
<v-btn color="info" :disabled="!projectIcon" :loading="loading.uploadIcon" @click="uploadIcon">
<v-icon left>mdi-upload</v-icon>
<v-icon left> mdi-upload </v-icon>
{{ $t('project.settings.iconUpload') }}
</v-btn>
<v-btn color="warning" :loading="loading.resetIcon" @click="resetIcon">
<v-icon left>mdi-upload</v-icon>
<v-icon left> mdi-upload </v-icon>
{{ $t('project.settings.iconReset') }}
</v-btn>
</v-col>
@ -245,7 +253,9 @@
<p>{{ $t('project.settings.apiKeySub') }}</p>
<v-text-field v-model.trim="apiKey" dense hide-details filled>
<template #append-outer>
<v-btn class="input-append-btn" @click="generateApiKey">{{ $t('project.settings.apiKeyGenerate') }}</v-btn>
<v-btn class="input-append-btn" @click="generateApiKey">
{{ $t('project.settings.apiKeyGenerate') }}
</v-btn>
</template>
</v-text-field>
</v-col>
@ -267,7 +277,7 @@
:loading="loading.rename"
@click="rename"
>
<v-icon left>mdi-rename-box</v-icon>
<v-icon left> mdi-rename-box </v-icon>
{{ $t('project.settings.rename') }}
</v-btn>
</template>
@ -286,7 +296,9 @@
<v-col class="flex-grow-0">
<TextareaModal :title="$t('project.settings.delete')" :label="$t('general.comment')" :submit="softDelete">
<template #activator="{ on, attrs }">
<v-btn color="error" v-bind="attrs" v-on="on">{{ $t('project.settings.delete') }}</v-btn>
<v-btn color="error" v-bind="attrs" v-on="on">
{{ $t('project.settings.delete') }}
</v-btn>
</template>
</TextareaModal>
</v-col>
@ -303,7 +315,9 @@
<v-col cols="12" md="4">
<TextareaModal :title="$t('project.settings.hardDelete')" :label="$t('general.comment')" :submit="hardDelete">
<template #activator="{ on, attrs }">
<v-btn color="error" v-bind="attrs" v-on="on">{{ $t('project.settings.hardDelete') }}</v-btn>
<v-btn color="error" v-bind="attrs" v-on="on">
{{ $t('project.settings.hardDelete') }}
</v-btn>
</template>
</TextareaModal>
</v-col>

View File

@ -6,7 +6,7 @@
<v-card-text>
<v-row v-if="stargazers.result && stargazers.result.length > 0">
<v-col v-for="stargazer in stargazers.result" :key="stargazer.name" md="4">
<UserAvatar clazz="user-avatar-xs" :username="stargazer.name" :avatar-url="$util.avatarUrl(stargazer.name)"></UserAvatar>
<UserAvatar clazz="user-avatar-xs" :username="stargazer.name" :avatar-url="$util.avatarUrl(stargazer.name)" />
{{ stargazer.name }}
</v-col>
</v-row>

View File

@ -7,7 +7,7 @@
nuxt
:to="{ name: `author-slug-versions-version-platform`, params: { ...$route.params, platform: version.toLowerCase() } }"
>
<v-icon left v-text="`$vuetify.icons.${version.toLowerCase()}`"></v-icon>
<v-icon left v-text="`$vuetify.icons.${version.toLowerCase()}`" />
{{ version }}
</v-tab>
</v-tabs>

View File

@ -11,23 +11,23 @@
<i v-if="$perms.isReviewer && projectVersion.approvedBy" class="mr-1">{{
$t('version.page.adminMsg', [projectVersion.approvedBy, $util.prettyDate(projectVersion.createdAt)])
}}</i>
<v-icon v-if="projectVersion.recommended.includes(platform.enumName)" color="info" :title="$t('version.page.recommended')"
>mdi-diamond-stone</v-icon
>
<v-icon v-if="isReviewStateChecked" :title="approvalTooltip" color="success">mdi-check-circle-outline</v-icon>
<v-icon v-if="projectVersion.recommended.includes(platform.enumName)" color="info" :title="$t('version.page.recommended')">
mdi-diamond-stone
</v-icon>
<v-icon v-if="isReviewStateChecked" :title="approvalTooltip" color="success"> mdi-check-circle-outline </v-icon>
</v-subheader>
<template v-if="$perms.isReviewer">
<v-btn v-if="isReviewStateChecked" small color="success" :to="$route.path + '/reviews'" nuxt>
<v-icon left>mdi-list-status</v-icon>
<v-icon left> mdi-list-status </v-icon>
{{ $t('version.page.reviewLogs') }}
</v-btn>
<v-btn v-else-if="isUnderReview" small color="info" :to="$route.path + '/reviews'" nuxt>
<v-icon left>mdi-list-status</v-icon>
<v-icon left> mdi-list-status </v-icon>
{{ $t('version.page.reviewLogs') }}
</v-btn>
<v-btn v-else color="success" small :to="$route.path + '/reviews'" nuxt>
<v-icon left>mdi-play</v-icon>
<v-icon left> mdi-play </v-icon>
{{ $t('version.page.reviewStart') }}
</v-btn>
</template>
@ -38,7 +38,7 @@
>
<template #activator="{ on }">
<v-btn color="info" small :loading="loading.recommend" @click.stop="setRecommended" v-on="on">
<v-icon left>mdi-diamond</v-icon>
<v-icon left> mdi-diamond </v-icon>
{{ $t('version.page.setRecommended') }}
</v-btn>
</template>
@ -48,19 +48,19 @@
<TextareaModal :title="$t('version.page.delete')" :label="$t('general.comment')" :submit="deleteVersion">
<template #activator="{ on, attrs }">
<!--TODO this button doesn't seem to show up when the version is restored, you have to reload the page. Unsure why-->
<v-btn v-if="$perms.canDeleteVersion && projectVersion.visibility !== 'softDelete'" small color="error" v-bind="attrs" v-on="on">{{
$t('version.page.delete')
}}</v-btn>
<v-btn v-if="$perms.canDeleteVersion && projectVersion.visibility !== 'softDelete'" small color="error" v-bind="attrs" v-on="on">
{{ $t('version.page.delete') }}
</v-btn>
</template>
</TextareaModal>
<DownloadButton :small="true" :version="projectVersion" :project="project" :platform="platform"></DownloadButton>
<DownloadButton :small="true" :version="projectVersion" :project="project" :platform="platform" />
<v-menu v-if="$perms.canViewLogs || ($perms.isReviewer && projectVersion.visibility === 'softDelete') || $perms.canHardDeleteVersion" offset-y>
<template #activator="{ on, attrs }">
<v-btn v-ripple="false" small plain v-bind="attrs" v-on="on">
{{ $t('version.page.adminActions') }}
<v-icon right>mdi-chevron-down</v-icon>
<v-icon right> mdi-chevron-down </v-icon>
</v-btn>
</template>
<v-list>
@ -71,12 +71,16 @@
</v-list-item-title>
</v-list-item>
<v-list-item v-if="$perms.isReviewer && projectVersion.visibility === 'softDelete'" @click.stop="restoreVersion">
<v-list-item-title class="success--text">{{ $t('version.page.restore') }}</v-list-item-title>
<v-list-item-title class="success--text">
{{ $t('version.page.restore') }}
</v-list-item-title>
</v-list-item>
<TextareaModal :title="$t('version.page.hardDelete')" :submit="hardDeleteVersion" :label="$t('general.comment')">
<template #activator="{ on, attrs }">
<v-list-item v-if="$perms.canHardDeleteVersion" v-bind="attrs" v-on="on">
<v-list-item-title class="error--text">{{ $t('version.page.hardDelete') }}</v-list-item-title>
<v-list-item-title class="error--text">
{{ $t('version.page.hardDelete') }}
</v-list-item-title>
</v-list-item>
</template>
</TextareaModal>
@ -86,7 +90,9 @@
</v-row>
<v-row>
<v-col cols="12" md="8">
<v-alert v-if="requiresConfirmation" type="info" class="mb-8">{{ $t('version.page.unsafeWarning') }}</v-alert>
<v-alert v-if="requiresConfirmation" type="info" class="mb-8">
{{ $t('version.page.unsafeWarning') }}
</v-alert>
<MarkdownEditor
v-if="$perms.canEditVersion"
ref="editor"
@ -101,7 +107,7 @@
<v-card>
<v-card-subtitle>{{ $t('version.page.platform') }}<PlatformVersionEditModal :project="project" :versions="versions" /></v-card-subtitle>
<v-card-text>
<v-icon v-text="`$vuetify.icons.${platform.name.toLowerCase()}`"></v-icon>
<v-icon v-text="`$vuetify.icons.${platform.name.toLowerCase()}`" />
{{ $store.state.platforms.get($route.params.platform.toUpperCase()).name }}:
{{ platformTag.data }}
</v-card-text>

View File

@ -6,7 +6,7 @@
<div class="float-right">
<template v-if="!isReviewStateChecked">
<v-btn x-small color="info" :to="{ name: 'author-slug', params: $route.params }" nuxt exact>
<v-icon left>mdi-home</v-icon>
<v-icon left> mdi-home </v-icon>
{{ $t('reviews.projectPage') }}
</v-btn>
<v-btn
@ -16,25 +16,27 @@
nuxt
class="mr-4"
>
<v-icon left>mdi-download</v-icon>
<v-icon left> mdi-download </v-icon>
{{ $t('reviews.downloadFile') }}
</v-btn>
</template>
</div>
<div style="clear: both" class="mb-4"></div>
<div style="clear: both" class="mb-4" />
<v-divider />
<h2 class="mt-3">{{ $t('reviews.title') }}</h2>
<h2 class="mt-3">
{{ $t('reviews.title') }}
</h2>
<v-row class="my-1" dense>
<v-col class="flex-grow-0">
<v-btn class="primary" @click="$fetch">
<v-icon left>mdi-refresh</v-icon>
<v-icon left> mdi-refresh </v-icon>
{{ $t('general.refresh') }}
</v-btn>
</v-col>
<v-col v-if="!currentUserReview" class="flex-grow-0">
<v-btn color="success" :loading="loadingValues.start" @click="startReview">
<v-icon left>mdi-play</v-icon>
<v-icon left> mdi-play </v-icon>
{{ $t('reviews.startReview') }}
</v-btn>
</v-col>
@ -61,18 +63,18 @@
<TextareaModal :title="$t('reviews.stopReview')" :label="$t('general.message')" :submit="stopReview">
<template #activator="props">
<v-btn x-small color="error" v-bind="props.attrs" v-on="props.on">
<v-icon left>mdi-stop</v-icon>
<v-icon left> mdi-stop </v-icon>
{{ $t('reviews.stopReview') }}
</v-btn>
</template>
</TextareaModal>
<v-btn x-small color="success lighten-1" :loading="loadingValues.approvePartial" @click.stop="approvePartial">
<v-icon left>mdi-check-decagram-outline</v-icon>
<v-icon left> mdi-check-decagram-outline </v-icon>
{{ $t('reviews.approvePartial') }}
</v-btn>
<v-btn x-small color="success" :loading="loadingValues.approve" @click.stop="approve">
<v-icon left>mdi-check-decagram</v-icon>
<v-icon left> mdi-check-decagram </v-icon>
{{ $t('reviews.approve') }}
</v-btn>
</v-col>
@ -84,7 +86,7 @@
x-small
@click.stop="reopenReview"
>
<v-icon left>mdi-refresh</v-icon>
<v-icon left> mdi-refresh </v-icon>
{{ $t('reviews.reopenReview') }}
</v-btn>
<v-btn
@ -94,7 +96,7 @@
:loading="loadingValues.undoApproval"
@click.stop="undoApproval"
>
<v-icon left>mdi-undo</v-icon>
<v-icon left> mdi-undo </v-icon>
{{ $t('reviews.undoApproval') }}
</v-btn>
</v-col>
@ -124,14 +126,16 @@
@keydown.enter.prevent=""
/>
<v-btn block color="primary" :loading="loadingValues.send" class="mt-2" :disabled="!validForm" @click="sendMessage">
<v-icon left>mdi-send</v-icon>
<v-icon left> mdi-send </v-icon>
{{ $t('general.send') }}
</v-btn>
</v-form>
</v-list-item>
</v-list-group>
</v-list>
<v-alert v-if="!reviews.length" type="info" class="mt-2">{{ $t('reviews.notUnderReview') }}</v-alert>
<v-alert v-if="!reviews.length" type="info" class="mt-2">
{{ $t('reviews.notUnderReview') }}
</v-alert>
</div>
</template>

View File

@ -13,7 +13,9 @@
<v-row>
<v-col cols="4" md="2" lg="2">
<v-row>
<v-col cols="12">{{ version.name }}</v-col>
<v-col cols="12">
{{ version.name }}
</v-col>
<Tag :tag="getChannelTag(version)" />
</v-row>
</v-col>
@ -39,7 +41,9 @@
<v-row>
<v-col cols="12">
<v-icon>mdi-account-arrow-right</v-icon>
<NuxtLink :to="'/' + version.author">{{ version.author }}</NuxtLink>
<NuxtLink :to="'/' + version.author">
{{ version.author }}
</NuxtLink>
</v-col>
<v-col cols="12">
<v-icon>mdi-download</v-icon>
@ -75,7 +79,7 @@
nuxt
v-on="on"
>
<v-icon small>mdi-pencil</v-icon>
<v-icon small> mdi-pencil </v-icon>
</v-btn>
</template>
{{ $t('version.editChannels') }}
@ -102,7 +106,7 @@
<v-list dense>
<v-list-item v-for="platform in platforms" :key="platform.name">
<v-checkbox v-model="filter.platforms" dense hide-details :value="platform.enumName" @change="updatePlatformCheckAll" />
<Tag :name="platform.name" :color="platform.tagColor"></Tag>
<Tag :name="platform.name" :color="platform.tagColor" />
</v-list-item>
</v-list>
</v-card-text>

View File

@ -18,7 +18,9 @@
<v-form ref="newVersionForm" v-model="validForm">
<v-row justify="space-around">
<v-col cols="12">
<v-btn color="warning" block @click="reset">{{ $t('general.reset') }}</v-btn>
<v-btn color="warning" block @click="reset">
{{ $t('general.reset') }}
</v-btn>
</v-col>
<v-col :md="isFile ? 4 : 6" sm="6" cols="12">
<!-- TODO validate version string against existing versions. complex because they only have to be unique per-platform -->
@ -69,7 +71,7 @@
class="channel-select"
>
<template #prepend-inner>
<v-icon :color="currentChannel.color">mdi-square-rounded</v-icon>
<v-icon :color="currentChannel.color"> mdi-square-rounded </v-icon>
</template>
</v-select>
</v-col>
@ -78,7 +80,7 @@
<template #activator="{ on, attrs }">
<v-btn v-if="channels.length < validations.project.maxChannelCount" color="info" v-bind="attrs" v-on="on">
{{ $t('version.new.form.addChannel') }}
<v-icon right>mdi-plus</v-icon>
<v-icon right> mdi-plus </v-icon>
</v-btn>
</template>
</ChannelModal>
@ -98,7 +100,9 @@
</v-row>
</v-sheet>
<v-card color="accent darken-1" elevation="1" class="mt-6">
<v-card-title class="pb-0">{{ $t('version.new.form.platforms') }}</v-card-title>
<v-card-title class="pb-0">
{{ $t('version.new.form.platforms') }}
</v-card-title>
<v-card-text>
<v-row justify="space-around">
<v-select
@ -129,9 +133,13 @@
</v-card-text>
</v-card>
<v-card v-if="platformsForPluginDeps.length" color="accent darken-1" elevation="1" class="mt-2 pb-1">
<v-card-title class="pb-0">{{ $t('version.new.form.dependencies') }}</v-card-title>
<v-card-title class="pb-0">
{{ $t('version.new.form.dependencies') }}
</v-card-title>
<template v-for="platform in platformsForPluginDeps">
<v-card-subtitle :key="`${platform}-deps`" class="mt-3 pb-0">{{ $store.state.platforms.get(platform).name }}</v-card-subtitle>
<v-card-subtitle :key="`${platform}-deps`" class="mt-3 pb-0">
{{ $store.state.platforms.get(platform).name }}
</v-card-subtitle>
<DependencyTable
:key="`${platform}-deps-table`"
:platform="platform"
@ -165,7 +173,9 @@
<v-btn v-if="!pendingVersion" color="primary" :disabled="!canCreate" :loading="loading.create" @click="createPendingVersion">
{{ $t('general.continue') }}
</v-btn>
<v-btn v-else color="primary" :disabled="!validForm" :loading="loading.submit" @click="createVersion">{{ $t('general.create') }}</v-btn>
<v-btn v-else color="primary" :disabled="!validForm" :loading="loading.submit" @click="createVersion">
{{ $t('general.create') }}
</v-btn>
</v-card-actions>
</v-card>
</template>

View File

@ -6,7 +6,7 @@
<v-card-text>
<v-row v-if="watchers.result && watchers.result.length > 0">
<v-col v-for="watcher in watchers.result" :key="watcher.name" md="4">
<UserAvatar clazz="user-avatar-xs" :username="watcher.name" :avatar-url="$util.avatarUrl(watcher.name)"></UserAvatar>
<UserAvatar clazz="user-avatar-xs" :username="watcher.name" :avatar-url="$util.avatarUrl(watcher.name)" />
{{ watcher.name }}
</v-col>
</v-row>

View File

@ -25,7 +25,7 @@
<v-tooltip v-if="!user.isOrganization" bottom>
<template #activator="{ on }">
<v-btn icon small color="info" class="ml-n2" :href="$util.forumUrl(user.name)" v-on="on">
<v-icon small>mdi-open-in-new</v-icon>
<v-icon small> mdi-open-in-new </v-icon>
</v-btn>
</template>
<span>{{ $t('author.viewOnForums') }}</span>
@ -45,7 +45,7 @@
>
<template #activator="{ on, attrs }">
<v-btn icon small color="warning" v-bind="attrs" v-on="on">
<v-icon small>mdi-pencil</v-icon>
<v-icon small> mdi-pencil </v-icon>
</v-btn>
</template>
<v-text-field
@ -64,7 +64,9 @@
<v-tooltip v-for="btn in buttons" :key="btn.name" bottom>
<template #activator="{ on }">
<v-btn icon small :href="btn.external ? btn.url : undefined" :to="btn.external ? undefined : btn.url" :nuxt="!btn.external" v-on="on">
<v-icon small>{{ btn.icon }}</v-icon>
<v-icon small>
{{ btn.icon }}
</v-icon>
</v-btn>
</template>
<span>{{ $t(`author.tooltips.${btn.name}`) }}</span>
@ -79,9 +81,9 @@
<v-tooltip bottom>
<template #activator="{ on: onTooltip }">
<v-btn icon small v-bind="attrs" v-on="{ ...onModal, ...onTooltip }">
<v-icon small :color="user.locked ? 'success' : 'error'">{{
user.locked ? 'mdi-lock-open-outline' : 'mdi-lock-outline'
}}</v-icon>
<v-icon small :color="user.locked ? 'success' : 'error'">
{{ user.locked ? 'mdi-lock-open-outline' : 'mdi-lock-outline' }}
</v-icon>
</v-btn>
</template>
<span>{{ $t(`author.tooltips.${user.locked ? 'unlock' : 'lock'}`) }}</span>

View File

@ -1,7 +1,9 @@
<template>
<v-row>
<v-col cols="12" md="5">
<div class="text-h4 mb-4">{{ $t('apiKeys.createNew') }}</div>
<div class="text-h4 mb-4">
{{ $t('apiKeys.createNew') }}
</div>
<v-form ref="modalForm" v-model="validForm">
<v-text-field
v-model="name"
@ -14,9 +16,9 @@
:rules="[$util.$vc.require($t('apiKeys.name')), $util.$vc.maxLength(255), $util.$vc.minLength(5)]"
>
<template #append-outer>
<v-btn color="success" class="input-append-btn" :disabled="!validForm" :loading="loading" @click="create">{{
$t('apiKeys.createKey')
}}</v-btn>
<v-btn color="success" class="input-append-btn" :disabled="!validForm" :loading="loading" @click="create">
{{ $t('apiKeys.createKey') }}
</v-btn>
</template>
</v-text-field>
<v-row no-gutters>
@ -52,11 +54,21 @@
<v-simple-table>
<thead>
<tr>
<th class="text-left">{{ $t('apiKeys.name') }}</th>
<th class="text-left">{{ $t('apiKeys.key') }}</th>
<th class="text-left">{{ $t('apiKeys.keyIdentifier') }}</th>
<th class="text-left">{{ $t('apiKeys.permissions') }}</th>
<th class="text-left">{{ $t('apiKeys.delete') }}</th>
<th class="text-left">
{{ $t('apiKeys.name') }}
</th>
<th class="text-left">
{{ $t('apiKeys.key') }}
</th>
<th class="text-left">
{{ $t('apiKeys.keyIdentifier') }}
</th>
<th class="text-left">
{{ $t('apiKeys.permissions') }}
</th>
<th class="text-left">
{{ $t('apiKeys.delete') }}
</th>
</tr>
</thead>
<tbody>
@ -78,7 +90,9 @@
</tr>
<tr v-if="apiKeys.length === 0">
<td colspan="5">
<v-alert type="info" width="100%" class="mt-4">{{ $t('apiKeys.noKeys') }}</v-alert>
<v-alert type="info" width="100%" class="mt-4">
{{ $t('apiKeys.noKeys') }}
</v-alert>
</td>
</tr>
</tbody>

View File

@ -1,6 +1,8 @@
<template>
<div>
<div class="text-h4 my-2">{{ $t('userActivity.title', [$route.params.user]) }}</div>
<div class="text-h4 my-2">
{{ $t('userActivity.title', [$route.params.user]) }}
</div>
<v-row>
<v-col>
<v-card>
@ -27,7 +29,7 @@
}"
nuxt
>
<v-icon left>mdi-list-status</v-icon>
<v-icon left> mdi-list-status </v-icon>
{{ $t('version.page.reviewLogs') }}
</v-btn>
</td>

View File

@ -5,7 +5,9 @@
<v-card-text>
<v-data-table :headers="notStartedHeaders" :items="notStarted" :custom-sort="sorter" disable-pagination disable-filtering hide-default-footer>
<template #item.project="{ item }">
<NuxtLink :to="`/${item.namespace.owner}/${item.namespace.slug}`">{{ `${item.namespace.owner}/${item.namespace.slug}` }}</NuxtLink>
<NuxtLink :to="`/${item.namespace.owner}/${item.namespace.slug}`">
{{ `${item.namespace.owner}/${item.namespace.slug}` }}
</NuxtLink>
</template>
<template #item.date="{ item }">
<span class="start-date">{{ $util.prettyDateTime(item.versionCreatedAt) }}</span>
@ -22,7 +24,7 @@
</template>
<template #item.startBtn="{ item }">
<v-btn color="primary" :to="{ name: 'author-slug-versions-version-platform-reviews', params: getRouteParams(item) }" nuxt>
<v-icon left>mdi-play</v-icon>
<v-icon left> mdi-play </v-icon>
{{ $t('version.page.reviewStart') }}
</v-btn>
</template>
@ -78,7 +80,7 @@
nuxt
@click.stop=""
>
<v-icon left>mdi-list-status</v-icon>
<v-icon left> mdi-list-status </v-icon>
{{ $t('version.page.reviewLogs') }}
</v-btn>
</template>

View File

@ -5,7 +5,7 @@
<v-list v-if="flags.length > 0">
<v-list-item v-for="flag in flags" :key="flag.id">
<v-list-item-avatar>
<UserAvatar :username="flag.reportedByName" clazz="user-avatar-xs"></UserAvatar>
<UserAvatar :username="flag.reportedByName" clazz="user-avatar-xs" />
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>
@ -17,7 +17,7 @@
])
}}
<v-btn small icon color="primary" :to="`/${flag.projectNamespace.owner}/${flag.projectNamespace.slug}`" nuxt target="_blank">
<v-icon small>mdi-open-in-new</v-icon>
<v-icon small> mdi-open-in-new </v-icon>
</v-btn>
</v-list-item-title>
<v-list-item-subtitle>{{ $t('flagReview.line2', [$t(flag.reason)]) }}</v-list-item-subtitle>
@ -25,11 +25,11 @@
</v-list-item-content>
<v-list-item-action>
<v-btn small :href="$util.forumUrl(flag.reportedByName)" class="mr-1">
<v-icon small left>mdi-reply</v-icon>
<v-icon small left> mdi-reply </v-icon>
{{ $t('flagReview.msgUser') }}
</v-btn>
<v-btn small :href="$util.forumUrl(flag.projectNamespace.owner)" class="mr-1">
<v-icon small left>mdi-reply</v-icon>
<v-icon small left> mdi-reply </v-icon>
{{ $t('flagReview.msgProjectOwner') }}
</v-btn>
<VisibilityChangerModal
@ -39,13 +39,15 @@
small-btn
/>
<v-btn small color="success" :loading="loading[flag.id]" @click="resolve(flag)">
<v-icon small left>mdi-check</v-icon>
<v-icon small left> mdi-check </v-icon>
{{ $t('flagReview.markResolved') }}
</v-btn>
</v-list-item-action>
</v-list-item>
</v-list>
<v-alert v-else icon="mdi-thumb-up">{{ $t('flagReview.noFlags') }}</v-alert>
<v-alert v-else icon="mdi-thumb-up">
{{ $t('flagReview.noFlags') }}
</v-alert>
</v-card-text>
</v-card>
</template>

View File

@ -14,7 +14,9 @@
</NuxtLink>
</v-list-item>
<v-list-item v-if="!noTopicProjects || noTopicProjects.length === 0">
<v-alert type="success" width="100%" dense>{{ $t('health.empty') }}</v-alert>
<v-alert type="success" width="100%" dense>
{{ $t('health.empty') }}
</v-alert>
</v-list-item>
</v-list>
</v-card-text>
@ -29,7 +31,9 @@
{{ $t('health.jobText', [job.jobType, job.lastErrorDescriptor, $util.prettyDateTime(job.lastUpdated)]) }}
</v-list-item>
<v-list-item v-if="!erroredJobs || erroredJobs.length === 0">
<v-alert type="success" width="100%" dense>{{ $t('health.empty') }}</v-alert>
<v-alert type="success" width="100%" dense>
{{ $t('health.empty') }}
</v-alert>
</v-list-item>
</v-list>
</v-card-text>
@ -46,7 +50,9 @@
</NuxtLink>
</v-list-item>
<v-list-item v-if="!staleProjects || staleProjects.length === 0">
<v-alert type="success" width="100%" dense>{{ $t('health.empty') }}</v-alert>
<v-alert type="success" width="100%" dense>
{{ $t('health.empty') }}
</v-alert>
</v-list-item>
</v-list>
</v-card-text>
@ -64,7 +70,9 @@
</NuxtLink>
</v-list-item>
<v-list-item v-if="!nonPublicProjects || nonPublicProjects.length === 0">
<v-alert type="success" width="100%" dense>{{ $t('health.empty') }}</v-alert>
<v-alert type="success" width="100%" dense>
{{ $t('health.empty') }}
</v-alert>
</v-list-item>
</v-list>
</v-card-text>
@ -73,10 +81,10 @@
<v-col cols="12" md="6">
<v-card height="100%">
<v-card-title>{{ $t('health.noPlatform') }}</v-card-title>
<v-card-text></v-card-text>
<v-card-text />
<v-list dense>
<v-list-item>
<v-alert type="warning" width="100%" dense>TODO: Implementation</v-alert>
<v-alert type="warning" width="100%" dense> TODO: Implementation </v-alert>
</v-list-item>
<!--TODO idek what this is for?-->
<!--<v-list-item v-if="!noPlatform || noPlatform.length === 0">{{ $t('health.empty') }}</v-list-item>-->
@ -94,7 +102,9 @@
</NuxtLink>
</v-list-item>
<v-list-item v-if="!missingFiles || missingFiles.length === 0">
<v-alert type="success" width="100%" dense>{{ $t('health.empty') }}</v-alert>
<v-alert type="success" width="100%" dense>
{{ $t('health.empty') }}
</v-alert>
</v-list-item>
</v-list>
</v-card-text>

View File

@ -13,7 +13,9 @@
disable-sort
>
<template #item.user="{ item }">
<NuxtLink :to="'/' + item.userName">{{ item.userName }}</NuxtLink>
<NuxtLink :to="'/' + item.userName">
{{ item.userName }}
</NuxtLink>
</template>
<template #item.time="{ item }">
{{ $util.prettyDateTime(item.createdAt) }}
@ -43,7 +45,9 @@
<template v-if="item.contextType === 'PAGE' && item.oldState">
<MarkdownModal :markdown="item.oldState" :title="$t('userActionLog.markdownView')">
<template #activator="{ on, attrs }">
<v-btn small color="primary" v-bind="attrs" v-on="on">{{ $t('userActionLog.markdownView') }}</v-btn>
<v-btn small color="primary" v-bind="attrs" v-on="on">
{{ $t('userActionLog.markdownView') }}
</v-btn>
</template>
</MarkdownModal>
</template>
@ -59,12 +63,16 @@
<template v-if="item.contextType === 'PAGE'">
<MarkdownModal :markdown="item.newState" :title="$t('userActionLog.markdownView')">
<template #activator="{ on, attrs }">
<v-btn small color="primary" v-bind="attrs" v-on="on">{{ $t('userActionLog.markdownView') }}</v-btn>
<v-btn small color="primary" v-bind="attrs" v-on="on">
{{ $t('userActionLog.markdownView') }}
</v-btn>
</template>
</MarkdownModal>
<DiffModal :left="item.oldState" :right="item.newState" :title="$t('userActionLog.diffView')">
<template #activator="{ on, attrs }">
<v-btn small color="primary" v-bind="attrs" v-on="on">{{ $t('userActionLog.diffView') }}</v-btn>
<v-btn small color="primary" v-bind="attrs" v-on="on">
{{ $t('userActionLog.diffView') }}
</v-btn>
</template>
</DiffModal>
</template>

View File

@ -12,16 +12,16 @@
</v-menu>
<h2>{{ $t('stats.plugins') }}</h2>
<client-only>
<Chart id="stats" :data="pluginData" :options="options" bar-type="Line"></Chart>
<Chart id="stats" :data="pluginData" :options="options" bar-type="Line" />
</client-only>
<h2>{{ $t('stats.downloads') }}</h2>
<client-only>
<Chart id="downloads" :data="downloadData" :options="options" bar-type="Line"></Chart>
<Chart id="downloads" :data="downloadData" :options="options" bar-type="Line" />
</client-only>
<h2>{{ $t('stats.flags') }}</h2>
<client-only>
<Chart id="flags" :data="flagData" :options="options" bar-type="Line"></Chart>
<Chart id="flags" :data="flagData" :options="options" bar-type="Line" />
</client-only>
</v-card-text>
</v-card>

View File

@ -2,7 +2,9 @@
<div>
<h1>
{{ $t('userAdmin.title') }}
<NuxtLink :to="'/' + $route.params.user">{{ $route.params.user }}</NuxtLink>
<NuxtLink :to="'/' + $route.params.user">
{{ $route.params.user }}
</NuxtLink>
</h1>
<v-row>
<v-col md="8" cols="12">
@ -11,16 +13,22 @@
<v-card-text>
<v-data-table :items="orgList" :headers="orgConfig">
<template #item.name="{ item }">
<NuxtLink :to="'/' + item.name">{{ item.name }}</NuxtLink>
<NuxtLink :to="'/' + item.name">
{{ item.name }}
</NuxtLink>
</template>
<template #item.owner="{ item }">
<!-- todo owner -->
<NuxtLink :to="'/' + item.name.owner">{{ item.name.owner }}</NuxtLink>
<NuxtLink :to="'/' + item.name.owner">
{{ item.name.owner }}
</NuxtLink>
</template>
<template #item.role="{ item }">
{{ organizations[item.name].role.title }}
</template>
<template #item.role="{ item }"> {{ organizations[item.name].role.title }} </template>
<template #item.accepted="{ item }">
<!--suppress EqualityComparisonWithCoercionJS dont ask me why this doesnt work without this-->
<v-checkbox :value="organizations[item.name].accepted == true" readonly></v-checkbox>
<v-checkbox :value="organizations[item.name].accepted == true" readonly />
</template>
</v-data-table>
</v-card-text>
@ -30,17 +38,21 @@
<v-card-text>
<v-data-table :items="projects.result" :headers="projectsConfig">
<template #item.name="{ item }">
<NuxtLink :to="'/' + item.namespace.owner + '/' + item.name">{{ item.name }}</NuxtLink>
<NuxtLink :to="'/' + item.namespace.owner + '/' + item.name">
{{ item.name }}
</NuxtLink>
</template>
<template #item.owner="{ item }">
<NuxtLink :to="'/' + item.namespace.owner">{{ item.namespace.owner }}</NuxtLink>
<NuxtLink :to="'/' + item.namespace.owner">
{{ item.namespace.owner }}
</NuxtLink>
</template>
<template #item.role="{ item }">
<!-- todo role -->
Role {{ item.name }}
</template>
<template #item.accepted="{ item }">
<v-checkbox :value="item.visibility === 'public'" readonly></v-checkbox>
<v-checkbox :value="item.visibility === 'public'" readonly />
</template>
</v-data-table>
</v-card-text>

View File

@ -5,8 +5,12 @@
<v-simple-table>
<thead>
<tr>
<th class="text-left">{{ $t('platformVersions.platform') }}</th>
<th class="text-left">{{ $t('platformVersions.versions') }}</th>
<th class="text-left">
{{ $t('platformVersions.platform') }}
</th>
<th class="text-left">
{{ $t('platformVersions.versions') }}
</th>
</tr>
</thead>
<tbody>
@ -30,8 +34,12 @@
</v-simple-table>
</v-card-text>
<v-card-actions class="justify-end">
<v-btn text color="info" :disabled="!hasChanged" @click="reset">{{ $t('general.reset') }}</v-btn>
<v-btn color="success" :loading="loading" :disabled="!hasChanged" @click="save">{{ $t('platformVersions.saveChanges') }}</v-btn>
<v-btn text color="info" :disabled="!hasChanged" @click="reset">
{{ $t('general.reset') }}
</v-btn>
<v-btn color="success" :loading="loading" :disabled="!hasChanged" @click="save">
{{ $t('platformVersions.saveChanges') }}
</v-btn>
</v-card-actions>
</v-card>
</template>

View File

@ -1,6 +1,6 @@
<template>
<v-card color="grey lighten-2">
<div id="swagger-ui"></div>
<div id="swagger-ui" />
</v-card>
</template>

View File

@ -11,7 +11,9 @@
class="elevation-1"
>
<template #item.username="{ item }">
<NuxtLink :to="'/' + item.name">{{ item.name }}</NuxtLink>
<NuxtLink :to="'/' + item.name">
{{ item.name }}
</NuxtLink>
</template>
<template #item.pic="{ item }">
<UserAvatar :username="item.name" :avatar-url="$util.avatarUrl(item.name)" clazz="user-avatar-xs" />

View File

@ -4,16 +4,16 @@
<v-col cols="12" sm="8" md="5" offset-md="3">
<v-row justify="center" align="center">
<h1>Hangar</h1>
<v-subheader v-text="$t('hangar.subtitle')"></v-subheader>
<v-subheader v-text="$t('hangar.subtitle')" />
</v-row>
<v-row justify="center" align="center">
<v-col cols="12">
<v-text-field v-model="projectFilter" :label="$t('hangar.projectSearch.query', [projects.pagination.count])" clearable></v-text-field>
<v-text-field v-model="projectFilter" :label="$t('hangar.projectSearch.query', [projects.pagination.count])" clearable />
</v-col>
</v-row>
<v-row justify="center" align="center">
<v-col cols="12">
<ProjectList :projects="projects"></ProjectList>
<ProjectList :projects="projects" />
</v-col>
</v-row>
</v-col>
@ -21,9 +21,9 @@
<v-col cols="12" sm="2" md="2">
<HangarSponsor :sponsor="sponsor" />
<v-select></v-select>
<v-select />
<v-checkbox :label="$t('hangar.projectSearch.relevanceSort')"></v-checkbox>
<v-checkbox :label="$t('hangar.projectSearch.relevanceSort')" />
<v-list dense>
<v-subheader>Categories</v-subheader>
@ -33,7 +33,7 @@
<v-icon v-text="cat.icon" />
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title v-text="$t(`project.category.${cat.apiName}`)"></v-list-item-title>
<v-list-item-title v-text="$t(`project.category.${cat.apiName}`)" />
</v-list-item-content>
</v-list-item>
</v-list-item-group>
@ -47,7 +47,7 @@
<v-icon v-text="`$vuetify.icons.${platform.name.toLowerCase()}`" />
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title v-text="platform.name"></v-list-item-title>
<v-list-item-title v-text="platform.name" />
</v-list-item-content>
</v-list-item>
</v-list-item-group>

View File

@ -4,8 +4,12 @@
<v-card-title>{{ $t('linkout.title') }}</v-card-title>
<v-card-text v-text="$t('linkout.text', [target])" />
<v-card-actions>
<v-btn @click="$router.back()">{{ $t('linkout.abort') }}</v-btn>
<v-btn :href="target">{{ $t('linkout.continue') }}</v-btn>
<v-btn @click="$router.back()">
{{ $t('linkout.abort') }}
</v-btn>
<v-btn :href="target">
{{ $t('linkout.continue') }}
</v-btn>
</v-card-actions>
</v-card>
</v-col>

View File

@ -1,21 +1,25 @@
<template>
<v-stepper v-model="step">
<v-stepper-header>
<v-stepper-step step="1" :complete="step > 1">{{ $t('project.new.step1.title') }}</v-stepper-step>
<v-stepper-step step="1" :complete="step > 1">
{{ $t('project.new.step1.title') }}
</v-stepper-step>
<v-divider />
<v-stepper-step step="2" :complete="step > 2 && forms.step2" :rules="[() => noBasicSettingsError]"
>{{ $t('project.new.step2.title') }}<small v-show="!noBasicSettingsError">Missing Information</small></v-stepper-step
>
<v-stepper-step step="2" :complete="step > 2 && forms.step2" :rules="[() => noBasicSettingsError]">
{{ $t('project.new.step2.title') }}<small v-show="!noBasicSettingsError">Missing Information</small>
</v-stepper-step>
<v-divider />
<v-stepper-step step="3" :complete="step > 3"
>{{ $t('project.new.step3.title') }}<small>{{ $t('project.new.step3.optional') }}</small></v-stepper-step
>
<v-stepper-step step="3" :complete="step > 3">
{{ $t('project.new.step3.title') }}<small>{{ $t('project.new.step3.optional') }}</small>
</v-stepper-step>
<v-divider />
<v-stepper-step step="4" :complete="step > 4"
>{{ $t('project.new.step4.title') }}<small>{{ $t('project.new.step4.optional') }}</small></v-stepper-step
>
<v-stepper-step step="4" :complete="step > 4">
{{ $t('project.new.step4.title') }}<small>{{ $t('project.new.step4.optional') }}</small>
</v-stepper-step>
<v-divider />
<v-stepper-step step="5" :complete="!projectLoading">{{ $t('project.new.step5.title') }}</v-stepper-step>
<v-stepper-step step="5" :complete="!projectLoading">
{{ $t('project.new.step5.title') }}
</v-stepper-step>
</v-stepper-header>
<v-stepper-items>
<StepperStepContent :step="1" @back="$router.push('/')" @continue="step = 2">
@ -24,7 +28,7 @@
{{ $t('project.new.step1.title') }}
</v-card-title>
<!-- eslint-disable-next-line vue/no-v-html -->
<v-card-text v-html="$t('project.new.step1.text')"></v-card-text>
<v-card-text v-html="$t('project.new.step1.text')" />
</v-card>
</StepperStepContent>
<StepperStepContent :step="2" :allow-continue="noBasicSettingsError" @back="step = 1" @continue="step = 3">
@ -96,7 +100,7 @@
</v-card-title>
<v-container>
<div class="text-h6 pt-1">
<v-icon color="info" large style="transform: rotate(-45deg)" class="mb-1">mdi-link</v-icon>
<v-icon color="info" large style="transform: rotate(-45deg)" class="mb-1"> mdi-link </v-icon>
{{ $t('project.new.step3.links') }}
</div>
<v-divider class="mb-2" />
@ -147,7 +151,7 @@
</v-col>
</v-row>
<div class="text-h6 pt-5">
<v-icon color="info" large class="mb-1">mdi-license</v-icon>
<v-icon color="info" large class="mb-1"> mdi-license </v-icon>
{{ $t('project.new.step3.license') }}
</div>
<v-divider class="mb-2" />
@ -178,7 +182,7 @@
</v-col>
</v-row>
<div class="text-h6 pt-5">
<v-icon color="info" large class="mb-1">mdi-cloud-search</v-icon>
<v-icon color="info" large class="mb-1"> mdi-cloud-search </v-icon>
{{ $t('project.new.step3.seo') }}
</div>
<v-divider class="mb-2" />
@ -221,9 +225,9 @@
<v-textarea v-model="converter.bbCode" hide-details dense :rows="6" filled :label="$t('project.new.step4.convertLabels.bbCode')" />
<div>
<v-btn block color="primary" class="my-3" :loading="converter.loading" @click="convertBBCode">
<v-icon left large>mdi-chevron-double-down</v-icon>
<v-icon left large> mdi-chevron-double-down </v-icon>
{{ $t('project.new.step4.convert') }}
<v-icon right large>mdi-chevron-double-down</v-icon>
<v-icon right large> mdi-chevron-double-down </v-icon>
</v-btn>
</div>
<v-textarea
@ -239,7 +243,7 @@
<v-tab-item>
<v-card-text>
<v-btn block color="primary" class="my-2" :disabled="form.pageContent === converter.markdown" @click="saveAsHomePage">
<v-icon left>mdi-content-save</v-icon>
<v-icon left> mdi-content-save </v-icon>
{{ $t('project.new.step4.saveAsHomePage') }}
</v-btn>
<Markdown :raw="converter.markdown" />
@ -260,11 +264,15 @@
<StepperStepContent :step="5" hide-buttons>
<v-card>
<v-card-text class="text-center">
<v-progress-circular v-if="projectLoading" indeterminate color="red" size="50"></v-progress-circular>
<div v-if="!projectError" class="text-h5 mt-2">{{ $t('project.new.step5.text') }}</div>
<v-progress-circular v-if="projectLoading" indeterminate color="red" size="50" />
<div v-if="!projectError" class="text-h5 mt-2">
{{ $t('project.new.step5.text') }}
</div>
<template v-else>
<div class="text-h5 mt-2">{{ $t('project.new.error.create') }}</div>
<v-btn @click="retry">Retry</v-btn>
<div class="text-h5 mt-2">
{{ $t('project.new.error.create') }}
</div>
<v-btn @click="retry"> Retry </v-btn>
</template>
</v-card-text>
</v-card>

View File

@ -34,12 +34,14 @@
<v-divider vertical class="mt-2" />
<v-col v-if="!$fetchState.pending" cols="12" md="5">
<h1>{{ $t('notifications.invites') }}</h1>
<v-select v-model="filters.invite" dense filled :items="inviteFilter"></v-select>
<v-select v-model="filters.invite" dense filled :items="inviteFilter" />
<v-list v-if="filteredInvites.length">
<v-list-item v-for="(invite, index) in filteredInvites" :key="index">
<v-list-item-title>
{{ $t(!invite.accepted ? 'notifications.invited' : 'notifications.inviteAccepted', [invite.type]) }}:
<NuxtLink :to="invite.url" exact>{{ invite.name }}</NuxtLink>
<NuxtLink :to="invite.url" exact>
{{ invite.name }}
</NuxtLink>
</v-list-item-title>
<template v-if="!invite.accepted">
<v-list-item-action>

View File

@ -26,7 +26,7 @@
</v-card-text>
<v-card-actions class="justify-end">
<v-btn color="success" :disabled="!canCreate" :loading="loading" @click="create">
<v-icon left>mdi-check</v-icon>
<v-icon left> mdi-check </v-icon>
{{ $t('form.memberList.create') }}
</v-btn>
</v-card-actions>

View File

@ -11,7 +11,9 @@
class="elevation-1"
>
<template #item.username="{ item }">
<NuxtLink :to="'/' + item.name">{{ item.name }}</NuxtLink>
<NuxtLink :to="'/' + item.name">
{{ item.name }}
</NuxtLink>
</template>
<template #item.pic="{ item }">
<UserAvatar :username="item.name" :avatar-url="$util.avatarUrl(item.name)" clazz="user-avatar-xs" />

View File

@ -5,9 +5,9 @@
<div>
<v-btn block color="primary" class="my-3" :loading="converter.loading" @click="convertBBCode">
<v-icon left large>mdi-chevron-double-down</v-icon>
<v-icon left large> mdi-chevron-double-down </v-icon>
{{ $t('project.new.step4.convert') }}
<v-icon right large>mdi-chevron-double-down</v-icon>
<v-icon right large> mdi-chevron-double-down </v-icon>
</v-btn>
</div>