Fixed some unfocusable links/buttons
This commit is contained in:
parent
541e3f0e7d
commit
d4a256b2f9
|
@ -72,7 +72,7 @@
|
|||
</div>
|
||||
<div class="progress">
|
||||
<template v-if="!isLoadingAudio">
|
||||
<span role="button" class="left floated timer start" @click="setCurrentTime(0)">{{currentTimeFormatted}}</span>
|
||||
<a href="" :aria-label="labels.restart" class="left floated timer discrete start" @click.prevent="setCurrentTime(0)">{{currentTimeFormatted}}</a>
|
||||
<span class="right floated timer total">{{durationFormatted}}</span>
|
||||
</template>
|
||||
<template v-else>
|
||||
|
@ -272,7 +272,8 @@ export default {
|
|||
return {
|
||||
queue: this.$pgettext('*/*/*', 'Queue'),
|
||||
duration: this.$pgettext('*/*/*', 'Duration'),
|
||||
addArtistContentFilter: this.$pgettext('Sidebar/Player/Icon.Tooltip/Verb', 'Hide content from this artist…')
|
||||
addArtistContentFilter: this.$pgettext('Sidebar/Player/Icon.Tooltip/Verb', 'Hide content from this artist…'),
|
||||
restart: this.$pgettext('*/*/*', 'Restart track'),
|
||||
}
|
||||
},
|
||||
timeLeft () {
|
||||
|
|
|
@ -90,10 +90,10 @@
|
|||
</template>
|
||||
<div class="item collapse-button-wrapper">
|
||||
|
||||
<span
|
||||
<button
|
||||
@click="isCollapsed = !isCollapsed"
|
||||
:class="['ui', 'basic', 'big', {'vibrant': !isCollapsed}, 'inverted icon', 'collapse', 'button']">
|
||||
<i class="sidebar icon"></i></span>
|
||||
<i class="sidebar icon"></i></button>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
@ -115,7 +115,7 @@
|
|||
<section :class="['ui', 'bottom', 'attached', {active: selectedTab === 'library'}, 'tab']" :aria-label="labels.mainMenu">
|
||||
<nav class="ui vertical large fluid inverted menu" role="navigation" :aria-label="labels.mainMenu">
|
||||
<div :class="[{collapsed: !exploreExpanded}, 'collaspable item']">
|
||||
<h2 class="header" @click="exploreExpanded = true" tabindex="0" @focus="exploreExpanded = true">
|
||||
<h2 class="header" role="button" @click="exploreExpanded = true" tabindex="0" @focus="exploreExpanded = true">
|
||||
<translate translate-context="*/*/*/Verb">Explore</translate>
|
||||
<i class="angle right icon" v-if="!exploreExpanded"></i>
|
||||
</h2>
|
||||
|
@ -128,7 +128,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div :class="[{collapsed: !myLibraryExpanded}, 'collaspable item']" v-if="$store.state.auth.authenticated">
|
||||
<h3 class="header" @click="myLibraryExpanded = true" tabindex="0" @focus="myLibraryExpanded = true">
|
||||
<h3 class="header" role="button" @click="myLibraryExpanded = true" tabindex="0" @focus="myLibraryExpanded = true">
|
||||
<translate translate-context="*/*/*/Noun">My Library</translate>
|
||||
<i class="angle right icon" v-if="!myLibraryExpanded"></i>
|
||||
</h3>
|
||||
|
|
|
@ -80,15 +80,15 @@
|
|||
<td>
|
||||
<i
|
||||
:disabled="idx === 0"
|
||||
@click="move(idx, -1)" rel="button"
|
||||
@click="move(idx, -1)" role="button"
|
||||
:title="labels.up"
|
||||
:class="['up', 'arrow', {disabled: idx === 0}, 'icon']"></i>
|
||||
<i
|
||||
:disabled="idx >= local.fields.length - 1"
|
||||
@click="move(idx, 1)" rel="button"
|
||||
@click="move(idx, 1)" role="button"
|
||||
:title="labels.down"
|
||||
:class="['down', 'arrow', {disabled: idx >= local.fields.length - 1}, 'icon']"></i>
|
||||
<i @click="remove(idx)" rel="button" :title="labels.delete" class="x icon"></i>
|
||||
<i @click="remove(idx)" role="button" :title="labels.delete" class="x icon"></i>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
@ -48,13 +48,13 @@
|
|||
</p>
|
||||
<div :aria-label="labels.performAction" slot="modal-confirm"><translate translate-context="Modal/*/Button.Label/Short, Verb">Launch</translate></div>
|
||||
</dangerous-button>
|
||||
<div
|
||||
<button
|
||||
v-else
|
||||
@click="launchAction"
|
||||
:disabled="checked.length === 0"
|
||||
:aria-label="labels.performAction"
|
||||
:class="['ui', {disabled: checked.length === 0}, {'loading': actionLoading}, 'button']">
|
||||
<translate translate-context="Content/*/Button.Label/Short, Verb">Go</translate></div>
|
||||
<translate translate-context="Content/*/Button.Label/Short, Verb">Go</translate></button>
|
||||
</div>
|
||||
<div class="count field">
|
||||
<translate translate-context="Content/*/Paragraph"
|
||||
|
@ -76,7 +76,7 @@
|
|||
%{ count } on %{ total } selected
|
||||
</translate>
|
||||
<template v-if="currentAction.allowAll && checkable.length > 0 && checkable.length === checked.length">
|
||||
<a @click="selectAll = true" v-if="!selectAll">
|
||||
<a @click.prevent="selectAll = true" v-if="!selectAll" href="">
|
||||
<translate translate-context="Content/*/Link/Verb"
|
||||
key="3"
|
||||
:translate-n="objectsData.count"
|
||||
|
@ -85,7 +85,7 @@
|
|||
Select all %{ total } elements
|
||||
</translate>
|
||||
</a>
|
||||
<a @click="selectAll = false" v-else>
|
||||
<a @click.prevent="selectAll = false" v-else href="">
|
||||
<translate translate-context="Content/*/Link/Verb" key="4">Select only current page</translate>
|
||||
</a>
|
||||
</template>
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
<div v-html="html"></div>
|
||||
<template v-if="isTruncated">
|
||||
<div class="ui small hidden divider"></div>
|
||||
<a @click.stop.prevent="showMore = true" v-if="showMore === false">
|
||||
<a href="" @click.stop.prevent="showMore = true" v-if="showMore === false">
|
||||
<translate translate-context="*/*/Button,Label">Show more</translate>
|
||||
</a>
|
||||
<a @click.stop.prevent="showMore = false" v-else="showMore === true">
|
||||
<a href="" @click.stop.prevent="showMore = false" v-else="showMore === true">
|
||||
<translate translate-context="*/*/Button,Label">Show less</translate>
|
||||
</a>
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<template>
|
||||
<div class="component-file-upload">
|
||||
<div class="ui top attached tabular menu">
|
||||
<a :class="['item', {active: currentTab === 'summary'}]" @click="currentTab = 'summary'"><translate translate-context="Content/Library/Tab.Title/Short">Summary</translate></a>
|
||||
<a :class="['item', {active: currentTab === 'uploads'}]" @click="currentTab = 'uploads'">
|
||||
<a href="" :class="['item', {active: currentTab === 'summary'}]" @click.prevent="currentTab = 'summary'"><translate translate-context="Content/Library/Tab.Title/Short">Summary</translate></a>
|
||||
<a href="" :class="['item', {active: currentTab === 'uploads'}]" @click.prevent="currentTab = 'uploads'">
|
||||
<translate translate-context="Content/Library/Tab.Title/Short">Uploading</translate>
|
||||
<div v-if="files.length === 0" class="ui label">
|
||||
0
|
||||
|
@ -14,7 +14,7 @@
|
|||
{{ uploadedFilesCount + erroredFilesCount }}/{{ files.length }}
|
||||
</div>
|
||||
</a>
|
||||
<a :class="['item', {active: currentTab === 'processing'}]" @click="currentTab = 'processing'">
|
||||
<a href="" :class="['item', {active: currentTab === 'processing'}]" @click.prevent="currentTab = 'processing'">
|
||||
<translate translate-context="Content/Library/Tab.Title/Short">Processing</translate>
|
||||
<div v-if="processableFiles === 0" class="ui label">
|
||||
0
|
||||
|
|
|
@ -35,12 +35,13 @@
|
|||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span
|
||||
@click="showCandidadesModal = !showCandidadesModal"
|
||||
<a
|
||||
href=""
|
||||
@click.prevent="showCandidadesModal = !showCandidadesModal"
|
||||
v-if="checkResult"
|
||||
:class="['ui', {'success': checkResult.candidates.count > 10}, 'label']">
|
||||
{{ checkResult.candidates.count }} tracks matching filter
|
||||
</span>
|
||||
</a>
|
||||
<modal v-if="checkResult" :show.sync="showCandidadesModal">
|
||||
<h4 class="header">
|
||||
<translate translate-context="Popup/Radio/Title/Noun">Tracks matching filter</translate>
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<i class="wrench icon"></i>
|
||||
<span class="visually-hidden">{{ labels.openModeration }}</span>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('account', scope.obj.attributed_to.full_username)">{{ scope.obj.attributed_to.preferred_username }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('account', scope.obj.attributed_to.full_username)">{{ scope.obj.attributed_to.preferred_username }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<template v-if="!scope.obj.is_local">
|
||||
|
@ -70,12 +70,12 @@
|
|||
<i class="wrench icon"></i>
|
||||
<span class="visually-hidden">{{ labels.openModeration }}</span>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('domain', scope.obj.attributed_to.domain)">{{ scope.obj.attributed_to.domain }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('domain', scope.obj.attributed_to.domain)">{{ scope.obj.attributed_to.domain }}</a>
|
||||
</template>
|
||||
<span role="button" v-else class="ui tiny accent icon link label" @click="addSearchToken('domain', scope.obj.attributed_to.domain)">
|
||||
<a href="" v-else class="ui tiny accent icon link label" @click.prevent="addSearchToken('domain', scope.obj.attributed_to.domain)">
|
||||
<i class="home icon"></i>
|
||||
<translate translate-context="Content/Moderation/*/Short, Noun">Local</translate>
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ scope.obj.artist.albums_count }}
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<i class="wrench icon"></i>
|
||||
<span class="visually-hidden">{{ labels.openModeration }}</span>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('artist', scope.obj.artist.name)" :title="scope.obj.artist.name">{{ scope.obj.artist.name }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('artist', scope.obj.artist.name)" :title="scope.obj.artist.name">{{ scope.obj.artist.name }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<template v-if="!scope.obj.is_local">
|
||||
|
@ -61,12 +61,12 @@
|
|||
<i class="wrench icon"></i>
|
||||
<span class="visually-hidden">{{ labels.openModeration }}</span>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('domain', scope.obj.domain)">{{ scope.obj.domain }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('domain', scope.obj.domain)">{{ scope.obj.domain }}</a>
|
||||
</template>
|
||||
<span role="button" v-else class="ui tiny accent icon link label" @click="addSearchToken('domain', scope.obj.domain)">
|
||||
<a href="" v-else class="ui tiny accent icon link label" @click.prevent="addSearchToken('domain', scope.obj.domain)">
|
||||
<i class="home icon"></i>
|
||||
<translate translate-context="Content/Moderation/*/Short, Noun">Local</translate>
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ scope.obj.tracks_count }}
|
||||
|
|
|
@ -63,12 +63,12 @@
|
|||
<router-link :to="{name: 'manage.moderation.domains.detail', params: {id: scope.obj.domain }}">
|
||||
<i class="wrench icon"></i>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</a>
|
||||
</template>
|
||||
<span role="button" v-else class="ui tiny accent icon link label" @click="addSearchToken('domain', scope.obj.domain)">
|
||||
<a href="" v-else class="ui tiny accent icon link label" @click.prevent="addSearchToken('domain', scope.obj.domain)">
|
||||
<i class="home icon"></i>
|
||||
<translate translate-context="Content/Moderation/*/Short, Noun">Local</translate>
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ scope.obj.albums_count }}
|
||||
|
|
|
@ -62,28 +62,28 @@
|
|||
<router-link :to="{name: 'manage.moderation.accounts.detail', params: {id: scope.obj.actor.full_username }}">
|
||||
<i class="wrench icon"></i>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('account', scope.obj.actor.full_username)" :title="scope.obj.actor.full_username">{{ scope.obj.actor.preferred_username }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('account', scope.obj.actor.full_username)" :title="scope.obj.actor.full_username">{{ scope.obj.actor.preferred_username }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<template v-if="!scope.obj.is_local">
|
||||
<router-link :to="{name: 'manage.moderation.domains.detail', params: {id: scope.obj.domain }}">
|
||||
<i class="wrench icon"></i>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</a>
|
||||
</template>
|
||||
<span role="button" v-else class="ui tiny accent icon link label" @click="addSearchToken('domain', scope.obj.domain)">
|
||||
<a href="" v-else class="ui tiny accent icon link label" @click.prevent="addSearchToken('domain', scope.obj.domain)">
|
||||
<i class="home icon"></i>
|
||||
<translate translate-context="Content/Moderation/*/Short, Noun">Local</translate>
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span
|
||||
role="button"
|
||||
<a
|
||||
href=""
|
||||
class="discrete link"
|
||||
@click="addSearchToken('privacy_level', scope.obj.privacy_level)"
|
||||
@click.prevent="addSearchToken('privacy_level', scope.obj.privacy_level)"
|
||||
:title="sharedLabels.fields.privacy_level.shortChoices[scope.obj.privacy_level]">
|
||||
{{ sharedLabels.fields.privacy_level.shortChoices[scope.obj.privacy_level] }}
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ scope.obj.uploads_count }}
|
||||
|
|
|
@ -53,29 +53,29 @@
|
|||
<router-link :to="{name: 'manage.library.albums.detail', params: {id: scope.obj.album.id }}">
|
||||
<i class="wrench icon"></i>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('album_id', scope.obj.album.id)" :title="scope.obj.album.title">{{ scope.obj.album.title }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('album_id', scope.obj.album.id)" :title="scope.obj.album.title">{{ scope.obj.album.title }}</a>
|
||||
</template>
|
||||
</td>
|
||||
<td>
|
||||
<router-link :to="{name: 'manage.library.artists.detail', params: {id: scope.obj.artist.id }}">
|
||||
<i class="wrench icon"></i>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('artist_id', scope.obj.artist.id)" :title="scope.obj.artist.name">{{ scope.obj.artist.name }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('artist_id', scope.obj.artist.id)" :title="scope.obj.artist.name">{{ scope.obj.artist.name }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<template v-if="!scope.obj.is_local">
|
||||
<router-link :to="{name: 'manage.moderation.domains.detail', params: {id: scope.obj.domain }}">
|
||||
<i class="wrench icon"></i>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</a>
|
||||
</template>
|
||||
<span role="button" v-else class="ui tiny accent icon link label" @click="addSearchToken('domain', scope.obj.domain)">
|
||||
<a href="" v-else class="ui tiny accent icon link label" @click.prevent="addSearchToken('domain', scope.obj.domain)">
|
||||
<i class="home icon"></i>
|
||||
<translate translate-context="Content/Moderation/*/Short, Noun">Local</translate>
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span role="button" v-if="scope.obj.license" class="discrete link" @click="addSearchToken('license', scope.obj.license)" :title="scope.obj.license">{{ scope.obj.license }}</span>
|
||||
<a href="" v-if="scope.obj.license" class="discrete link" @click.prevent="addSearchToken('license', scope.obj.license)" :title="scope.obj.license">{{ scope.obj.license }}</a>
|
||||
<translate v-else translate-context="*/*/*">N/A</translate>
|
||||
</td>
|
||||
<td>
|
||||
|
|
|
@ -77,42 +77,42 @@
|
|||
<router-link :to="{name: 'manage.library.libraries.detail', params: {id: scope.obj.library.uuid }}">
|
||||
<i class="wrench icon"></i>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link"
|
||||
@click="addSearchToken('library_id', scope.obj.library.id)"
|
||||
<a href="" class="discrete link"
|
||||
@click.prevent="addSearchToken('library_id', scope.obj.library.id)"
|
||||
:title="scope.obj.library.name">
|
||||
{{ scope.obj.library.name | truncate(20) }}
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<router-link :to="{name: 'manage.moderation.accounts.detail', params: {id: scope.obj.library.actor.full_username }}">
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('account', scope.obj.library.actor.full_username)" :title="scope.obj.library.actor.full_username">{{ scope.obj.library.actor.preferred_username }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('account', scope.obj.library.actor.full_username)" :title="scope.obj.library.actor.full_username">{{ scope.obj.library.actor.preferred_username }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<template v-if="!scope.obj.is_local">
|
||||
<router-link :to="{name: 'manage.moderation.domains.detail', params: {id: scope.obj.domain }}">
|
||||
<i class="wrench icon"></i>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</a>
|
||||
</template>
|
||||
<span role="button" v-else class="ui tiny accent icon link label" @click="addSearchToken('domain', scope.obj.domain)">
|
||||
<a href="" v-else class="ui tiny accent icon link label" @click.prevent="addSearchToken('domain', scope.obj.domain)">
|
||||
<i class="home icon"></i>
|
||||
<translate translate-context="Content/Moderation/*/Short, Noun">Local</translate>
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span
|
||||
role="button"
|
||||
<a
|
||||
href=""
|
||||
class="discrete link"
|
||||
@click="addSearchToken('privacy_level', scope.obj.library.privacy_level)"
|
||||
@click.prevent="addSearchToken('privacy_level', scope.obj.library.privacy_level)"
|
||||
:title="sharedLabels.fields.privacy_level.shortChoices[scope.obj.library.privacy_level]">
|
||||
{{ sharedLabels.fields.privacy_level.shortChoices[scope.obj.library.privacy_level] }}
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="discrete link" @click="addSearchToken('status', scope.obj.import_status)" :title="sharedLabels.fields.import_status.choices[scope.obj.import_status].help">
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('status', scope.obj.import_status)" :title="sharedLabels.fields.import_status.choices[scope.obj.import_status].help">
|
||||
{{ sharedLabels.fields.import_status.choices[scope.obj.import_status].label }}
|
||||
</span>
|
||||
</a>
|
||||
<button class="ui tiny basic icon button" :title="sharedLabels.fields.import_status.detailTitle" @click="detailedUpload = scope.obj; showUploadDetailModal = true">
|
||||
<i class="question circle outline icon"></i>
|
||||
</button>
|
||||
|
|
|
@ -53,12 +53,12 @@
|
|||
<router-link :to="{name: 'manage.moderation.domains.detail', params: {id: scope.obj.domain }}">
|
||||
<i class="wrench icon"></i>
|
||||
</router-link>
|
||||
<span role="button" class="discrete link" @click="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</span>
|
||||
<a href="" class="discrete link" @click.prevent="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</a>
|
||||
</template>
|
||||
<span role="button" v-else class="ui tiny accent icon link label" @click="addSearchToken('domain', scope.obj.domain)">
|
||||
<a href="" v-else class="ui tiny accent icon link label" @click.prevent="addSearchToken('domain', scope.obj.domain)">
|
||||
<i class="home icon"></i>
|
||||
<translate translate-context="Content/Moderation/*/Short, Noun">Local account</translate>
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ scope.obj.uploads_count }}
|
||||
|
|
|
@ -21,12 +21,12 @@
|
|||
</td>
|
||||
<td><human-date :date="item.activity.creation_date" /></td>
|
||||
<td class="read collapsing">
|
||||
<span @click="markRead(false)" role="button" v-if="item.is_read" :title="labels.markUnread">
|
||||
<a href="" :aria-label="labels.markUnread" @click.prevent="markRead(false)" class="discrete link" v-if="item.is_read" :title="labels.markUnread">
|
||||
<i class="redo icon" />
|
||||
</span>
|
||||
<span @click="markRead(true)" role="button" v-else :title="labels.markRead">
|
||||
</a>
|
||||
<a href="" :aria-label="labels.markRead" @click.prevent="markRead(true)" class="discrete link" v-else :title="labels.markRead">
|
||||
<i class="check icon" />
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
|
|
|
@ -69,13 +69,13 @@
|
|||
<td><human-date :date="playlist.modification_date"></human-date></td>
|
||||
<td>{{ playlist.tracks_count }}</td>
|
||||
<td>
|
||||
<div
|
||||
<button
|
||||
v-if="track"
|
||||
class="ui success icon basic small right floated button"
|
||||
:title="labels.addToPlaylist"
|
||||
@click="addToPlaylist(playlist.id, false)">
|
||||
@click.prevent="addToPlaylist(playlist.id, false)">
|
||||
<i class="plus icon"></i> <translate translate-context="Popup/Playlist/Table.Button.Label/Verb">Add track</translate>
|
||||
</div>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
@ -72,13 +72,13 @@
|
|||
<input id="show-read-notifications" v-model="filters.is_read" type="checkbox">
|
||||
<label for="show-read-notifications"><translate translate-context="Content/Notifications/Form.Label/Verb">Show read notifications</translate></label>
|
||||
</div>
|
||||
<div
|
||||
<button
|
||||
v-if="filters.is_read === false && notifications.count > 0"
|
||||
@click="markAllAsRead"
|
||||
@click.prevent="markAllAsRead"
|
||||
class="ui basic labeled icon right floated button">
|
||||
<i class="ui check icon" />
|
||||
<translate translate-context="Content/Notifications/Button.Label/Verb">Mark all as read</translate>
|
||||
</div>
|
||||
</button>
|
||||
<div class="ui hidden divider" />
|
||||
|
||||
<div v-if="isLoading" :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']">
|
||||
|
|
|
@ -76,32 +76,32 @@
|
|||
<button class="ui right floated pointing dropdown icon small basic button" ref="dropdown" v-dropdown="{direction: 'downward'}">
|
||||
<i class="ellipsis vertical icon"></i>
|
||||
<div class="menu">
|
||||
<div
|
||||
role="button"
|
||||
<a
|
||||
href=""
|
||||
v-if="totalTracks > 0"
|
||||
@click="showEmbedModal = !showEmbedModal"
|
||||
@click.prevent="showEmbedModal = !showEmbedModal"
|
||||
class="basic item">
|
||||
<i class="code icon"></i>
|
||||
<translate translate-context="Content/*/Button.Label/Verb">Embed</translate>
|
||||
</div>
|
||||
</a>
|
||||
<div class="divider"></div>
|
||||
<div
|
||||
role="button"
|
||||
<a
|
||||
href=""
|
||||
class="basic item"
|
||||
v-for="obj in getReportableObjs({account: object.attributed_to, channel: object})"
|
||||
:key="obj.target.type + obj.target.id"
|
||||
@click.stop.prevent="$store.dispatch('moderation/report', obj.target)">
|
||||
<i class="share icon" /> {{ obj.label }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<template v-if="isOwner">
|
||||
<div class="divider"></div>
|
||||
<div
|
||||
<a
|
||||
class="item"
|
||||
role="button"
|
||||
@click.stop="showEditModal = true">
|
||||
href=""
|
||||
@click.stop.prevent="showEditModal = true">
|
||||
<translate translate-context="*/*/*/Verb">Edit…</translate>
|
||||
</div>
|
||||
</a>
|
||||
<dangerous-button
|
||||
:class="['ui', {loading: isLoading}, 'item']"
|
||||
v-if="object"
|
||||
|
|
|
@ -130,17 +130,19 @@
|
|||
</router-link>
|
||||
</td>
|
||||
<td>
|
||||
<span
|
||||
<a
|
||||
href=""
|
||||
class="discrete link"
|
||||
@click="addSearchToken('artist', scope.obj.track.artist.name)"
|
||||
>{{ scope.obj.track.artist.name|truncate(20) }}</span>
|
||||
@click.prevent="addSearchToken('artist', scope.obj.track.artist.name)"
|
||||
>{{ scope.obj.track.artist.name|truncate(20) }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<span
|
||||
<a
|
||||
href=""
|
||||
v-if="scope.obj.track.album"
|
||||
class="discrete link"
|
||||
@click="addSearchToken('album', scope.obj.track.album.title)"
|
||||
>{{ scope.obj.track.album.title|truncate(20) }}</span>
|
||||
@click.prevent="addSearchToken('album', scope.obj.track.album.title)"
|
||||
>{{ scope.obj.track.album.title|truncate(20) }}</a>
|
||||
</td>
|
||||
</template>
|
||||
<template v-else>
|
||||
|
@ -152,11 +154,12 @@
|
|||
<human-date :date="scope.obj.creation_date"></human-date>
|
||||
</td>
|
||||
<td>
|
||||
<span
|
||||
<a
|
||||
href=""
|
||||
class="discrete link"
|
||||
@click="addSearchToken('status', scope.obj.import_status)"
|
||||
@click.prevent="addSearchToken('status', scope.obj.import_status)"
|
||||
:title="sharedLabels.fields.import_status.choices[scope.obj.import_status].help"
|
||||
>{{ sharedLabels.fields.import_status.choices[scope.obj.import_status].label }}</span>
|
||||
>{{ sharedLabels.fields.import_status.choices[scope.obj.import_status].label }}</a>
|
||||
<button
|
||||
class="ui tiny basic icon button"
|
||||
:title="sharedLabels.fields.import_status.detailTitle"
|
||||
|
|
|
@ -65,11 +65,11 @@
|
|||
<i class="warning download icon"></i>
|
||||
<translate translate-context="Content/Library/Card.List item">Scanned with errors</translate>
|
||||
</template>
|
||||
<span class="link right floated" @click="showScan = !showScan">
|
||||
<a href="" class="link right floated" @click.prevent="showScan = !showScan">
|
||||
<translate translate-context="Content/Library/Card.Button.Label/Noun">Details</translate>
|
||||
<i v-if="showScan" class="angle down icon" />
|
||||
<i v-else class="angle right icon" />
|
||||
</span>
|
||||
</a>
|
||||
<div v-if="showScan">
|
||||
<template v-if="latestScan.modification_date">
|
||||
<translate translate-context="Content/Library/Card.List item/Noun">Last update:</translate><human-date :date="latestScan.modification_date" /><br />
|
||||
|
@ -78,9 +78,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div v-if="displayScan && canLaunchScan" class="clearfix">
|
||||
<span class="right floated link" @click="launchScan">
|
||||
<a href="" class="right floated link" @click.prevent="launchScan">
|
||||
<translate translate-context="Content/Library/Card.Button.Label/Verb">Scan now</translate> <i class="paper plane icon" />
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="extra content">
|
||||
|
|
|
@ -13,7 +13,9 @@
|
|||
</div>
|
||||
<template v-if="existingFollows && existingFollows.count > 0">
|
||||
<h2><translate translate-context="Content/Library/Title">Known libraries</translate></h2>
|
||||
<i @click="fetch()" :class="['ui', 'circular', 'refresh', 'icon']" /> <translate translate-context="Content/*/Button.Label/Short, Verb">Refresh</translate>
|
||||
<a href="" class="discrete link" @click.prevent="fetch()" >
|
||||
<i :class="['ui', 'circular', 'refresh', 'icon']" /> <translate translate-context="Content/*/Button.Label/Short, Verb">Refresh</translate>
|
||||
</a>
|
||||
<div class="ui hidden divider"></div>
|
||||
<div class="ui two cards">
|
||||
<library-card
|
||||
|
|
Loading…
Reference in New Issue