mirror of https://github.com/doccano/doccano.git
pythondatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learningannotation-tool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
4.1 KiB
139 lines
4.1 KiB
<template>
|
|
<v-app-bar app clipped-left>
|
|
<slot name="leftDrawerIcon" />
|
|
<nuxt-link v-if="!isAuthenticated" to="/" style="line-height: 0">
|
|
<img src="~/assets/icon.png" height="48" />
|
|
</nuxt-link>
|
|
<v-toolbar-title v-if="!isAuthenticated" class="ml-2 d-none d-sm-flex">
|
|
doccano
|
|
</v-toolbar-title>
|
|
<v-btn
|
|
v-if="isAuthenticated && isIndividualProject"
|
|
text
|
|
class="d-none d-sm-flex"
|
|
style="text-transform: none"
|
|
>
|
|
<v-icon small class="mr-1">
|
|
{{ mdiHexagonMultiple }}
|
|
</v-icon>
|
|
<span> {{ currentProject.name }}</span>
|
|
</v-btn>
|
|
<div class="flex-grow-1" />
|
|
<the-color-mode-switcher />
|
|
<locale-menu />
|
|
<v-btn
|
|
v-if="isAuthenticated"
|
|
text
|
|
class="text-capitalize"
|
|
@click="$router.push(localePath('/projects'))"
|
|
>
|
|
{{ $t('header.projects') }}
|
|
</v-btn>
|
|
<v-menu v-if="!isAuthenticated" open-on-hover offset-y>
|
|
<template #activator="{ on }">
|
|
<v-btn text v-on="on">
|
|
{{ $t('home.demoDropDown') }}
|
|
<v-icon>{{ mdiMenuDown }}</v-icon>
|
|
</v-btn>
|
|
</template>
|
|
<v-list>
|
|
<v-list-item
|
|
v-for="(item, index) in items"
|
|
:key="index"
|
|
@click="$router.push('/demo/' + item.link)"
|
|
>
|
|
<v-list-item-title>{{ item.title }}</v-list-item-title>
|
|
</v-list-item>
|
|
</v-list>
|
|
</v-menu>
|
|
<v-btn v-if="!isAuthenticated" outlined @click="$router.push(localePath('/auth'))">
|
|
{{ $t('user.login') }}
|
|
</v-btn>
|
|
<v-menu v-if="isAuthenticated" offset-y z-index="200">
|
|
<template #activator="{ on }">
|
|
<v-btn on icon v-on="on">
|
|
<v-icon>{{ mdiDotsVertical }}</v-icon>
|
|
</v-btn>
|
|
</template>
|
|
<v-list>
|
|
<v-subheader>{{ getUsername }}</v-subheader>
|
|
<v-list-item>
|
|
<v-list-item-content>
|
|
<v-switch :input-value="isRTL" :label="direction" class="ms-1" @change="toggleRTL" />
|
|
</v-list-item-content>
|
|
</v-list-item>
|
|
<v-list-item @click="signout">
|
|
<v-list-item-icon>
|
|
<v-icon>{{ mdiLogout }}</v-icon>
|
|
</v-list-item-icon>
|
|
<v-list-item-content>
|
|
<v-list-item-title>
|
|
{{ $t('user.signOut') }}
|
|
</v-list-item-title>
|
|
</v-list-item-content>
|
|
</v-list-item>
|
|
</v-list>
|
|
</v-menu>
|
|
</v-app-bar>
|
|
</template>
|
|
|
|
<script>
|
|
import { mdiLogout, mdiDotsVertical, mdiMenuDown, mdiHexagonMultiple } from '@mdi/js'
|
|
import { mapGetters, mapActions } from 'vuex'
|
|
import TheColorModeSwitcher from './TheColorModeSwitcher'
|
|
import LocaleMenu from './LocaleMenu'
|
|
|
|
export default {
|
|
components: {
|
|
TheColorModeSwitcher,
|
|
LocaleMenu
|
|
},
|
|
|
|
data() {
|
|
return {
|
|
items: [
|
|
{ title: this.$t('home.demoNER'), link: 'named-entity-recognition' },
|
|
{ title: this.$t('home.demoSent'), link: 'sentiment-analysis' },
|
|
{ title: this.$t('home.demoTranslation'), link: 'translation' },
|
|
{
|
|
title: this.$t('home.demoIntenDetectSlotFil'),
|
|
link: 'intent-detection-and-slot-filling'
|
|
},
|
|
{ title: this.$t('home.demoTextToSQL'), link: 'text-to-sql' },
|
|
{ title: this.$t('home.demoImageClas'), link: 'image-classification' },
|
|
{ title: this.$t('home.demoImageCapt'), link: 'image-caption' },
|
|
{ title: this.$t('home.demoObjDetect'), link: 'object-detection' },
|
|
{ title: this.$t('home.demoPolygSegm'), link: 'segmentation' },
|
|
{ title: this.$t('home.demoSTT'), link: 'speech-to-text' }
|
|
],
|
|
mdiLogout,
|
|
mdiDotsVertical,
|
|
mdiMenuDown,
|
|
mdiHexagonMultiple
|
|
}
|
|
},
|
|
|
|
computed: {
|
|
...mapGetters('auth', ['isAuthenticated', 'getUsername']),
|
|
...mapGetters('projects', ['currentProject']),
|
|
...mapGetters('config', ['isRTL']),
|
|
|
|
isIndividualProject() {
|
|
return this.$route.name && this.$route.name.startsWith('projects-id')
|
|
},
|
|
|
|
direction() {
|
|
return this.isRTL ? 'RTL' : 'LTR'
|
|
}
|
|
},
|
|
|
|
methods: {
|
|
...mapActions('auth', ['logout']),
|
|
...mapActions('config', ['toggleRTL']),
|
|
signout() {
|
|
this.logout()
|
|
this.$router.push(this.localePath('/'))
|
|
}
|
|
}
|
|
}
|
|
</script>
|