Give the backups plugin a settings page, and show where a snapshot is
This commit is contained in:
@@ -66,6 +66,16 @@
|
||||
UNC path so the tech can open it directly. -->
|
||||
<template v-if="rev.storagebackend === 'share'">
|
||||
<code class="bh-path" :title="rev.sharepath">{{ rev.sharepath }}</code>
|
||||
<!--
|
||||
A copy button rather than a file:// link. Browsers block
|
||||
navigation from an https page to file://, so a link would look
|
||||
clickable and silently do nothing - worse than no link. Copy,
|
||||
then paste into Explorer's address bar.
|
||||
-->
|
||||
<button type="button" class="bh-copy" @click="copyPath(rev.sharepath)"
|
||||
:title="'Copy path for Explorer'">
|
||||
{{ copiedPath === rev.sharepath ? 'Copied' : 'Copy path' }}
|
||||
</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<button v-for="fmt in rev.formats" :key="fmt.id"
|
||||
@@ -115,6 +125,29 @@ import { useRoute, useRouter } from 'vue-router'
|
||||
import api, { settingsApi } from '@/api'
|
||||
import { formatInZone, DEFAULT_TZ } from '@/utils/datetime'
|
||||
|
||||
const copiedPath = ref('')
|
||||
|
||||
async function copyPath(path) {
|
||||
if (!path) { return }
|
||||
try {
|
||||
await navigator.clipboard.writeText(path)
|
||||
copiedPath.value = path
|
||||
setTimeout(() => { copiedPath.value = '' }, 2000)
|
||||
} catch (err) {
|
||||
// Clipboard needs a secure context and a user gesture. Both hold here, but
|
||||
// an older browser or a http:// instance will refuse - select the text so
|
||||
// the tech can copy it by hand instead of getting nothing.
|
||||
const node = document.querySelector('.bh-path')
|
||||
if (node && window.getSelection) {
|
||||
const range = document.createRange()
|
||||
range.selectNodeContents(node)
|
||||
const selection = window.getSelection()
|
||||
selection.removeAllRanges()
|
||||
selection.addRange(range)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
const assetid = route.params.assetid
|
||||
@@ -274,6 +307,16 @@ onMounted(async () => {
|
||||
font-size: 0.82rem;
|
||||
}
|
||||
.bh-path { word-break: break-all; color: var(--text-light); }
|
||||
/* Deliberately quiet: the path is the content, this is just the way to get it
|
||||
into Explorer. Sits inline after the path rather than in the actions column,
|
||||
which belongs to the revision itself. */
|
||||
.bh-copy {
|
||||
font-size: 0.72rem; margin-left: 0.4rem; padding: 0.12rem 0.4rem;
|
||||
border: 1px solid var(--border); background: transparent;
|
||||
color: var(--text-light); border-radius: 3px; cursor: pointer;
|
||||
white-space: nowrap; vertical-align: middle;
|
||||
}
|
||||
.bh-copy:hover { border-color: var(--primary); color: var(--primary); }
|
||||
.bh-actions-col { width: 22rem; }
|
||||
|
||||
.bh-btn {
|
||||
|
||||
Reference in New Issue
Block a user