mirror of
https://github.com/HangarMC/Hangar.git
synced 2025-03-01 15:17:07 +08:00
make stylelint happy
Signed-off-by: MiniDigger <admin@minidigger.me>
This commit is contained in:
parent
3047fa6fbd
commit
57f2d17cda
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div :id="id" class="ct-chart"></div>
|
||||
<div :id="id" class="ct-chart" />
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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 />
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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') }}
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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 }">
|
||||
|
@ -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">
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -1,20 +1,30 @@
|
||||
<template>
|
||||
<v-card>
|
||||
<v-card-title>
|
||||
<span v-text="$t('flags.header')"></span>
|
||||
<NuxtLink :to="'/' + project.namespace.owner + '/' + project.namespace.slug">{{ project.namespace.owner + '/' + project.namespace.slug }}</NuxtLink>
|
||||
<span v-text="$t('flags.header')" />
|
||||
<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>
|
||||
|
@ -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>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<v-card>
|
||||
<v-card-title>
|
||||
<span v-text="$t('notes.header')"></span>
|
||||
<span v-text="$t('notes.header')" />
|
||||
<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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<v-card color="grey lighten-2">
|
||||
<div id="swagger-ui"></div>
|
||||
<div id="swagger-ui" />
|
||||
</v-card>
|
||||
</template>
|
||||
|
||||
|
@ -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" />
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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" />
|
||||
|
@ -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>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user