mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
refactor(files_versions): Migrate to Vue3
Signed-off-by: Louis Chmn <louis@chmn.me>
This commit is contained in:
parent
2103410dac
commit
8dc64d794c
83 changed files with 1331 additions and 1665 deletions
|
|
@ -23,6 +23,7 @@ class LoadAdditionalListener implements IEventListener {
|
|||
|
||||
// TODO: make sure to only include the sidebar script when
|
||||
// we properly split it between files list and sidebar
|
||||
Util::addScript(Application::APP_ID, 'files_versions');
|
||||
Util::addStyle(Application::APP_ID, 'sidebar-tab');
|
||||
Util::addScript(Application::APP_ID, 'sidebar-tab');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ class LoadSidebarListener implements IEventListener {
|
|||
|
||||
// TODO: make sure to only include the sidebar script when
|
||||
// we properly split it between files list and sidebar
|
||||
Util::addScript(Application::APP_ID, 'files_versions');
|
||||
Util::addStyle(Application::APP_ID, 'sidebar-tab');
|
||||
Util::addScript(Application::APP_ID, 'sidebar-tab');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
<span v-if="versionLabel">•</span>
|
||||
<NcAvatar
|
||||
class="avatar"
|
||||
:user="version.author"
|
||||
:user="version.author ?? undefined"
|
||||
:size="20"
|
||||
disable-menu
|
||||
disable-tooltip
|
||||
|
|
@ -130,8 +130,9 @@
|
|||
</NcListItem>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import type { PropType } from 'vue'
|
||||
import type { LegacyFileInfo } from '../../../files/src/services/FileInfo.ts'
|
||||
import type { Version } from '../utils/versions.ts'
|
||||
|
||||
import { getCurrentUser } from '@nextcloud/auth'
|
||||
|
|
@ -141,8 +142,7 @@ import { t } from '@nextcloud/l10n'
|
|||
import moment from '@nextcloud/moment'
|
||||
import { joinPaths } from '@nextcloud/paths'
|
||||
import { getRootUrl } from '@nextcloud/router'
|
||||
import Tooltip from '@nextcloud/vue/directives/Tooltip'
|
||||
import { defineComponent } from 'vue'
|
||||
import { computed, nextTick, ref } from 'vue'
|
||||
import NcActionButton from '@nextcloud/vue/components/NcActionButton'
|
||||
import NcActionLink from '@nextcloud/vue/components/NcActionLink'
|
||||
import NcAvatar from '@nextcloud/vue/components/NcAvatar'
|
||||
|
|
@ -155,193 +155,176 @@ import Pencil from 'vue-material-design-icons/PencilOutline.vue'
|
|||
import Delete from 'vue-material-design-icons/TrashCanOutline.vue'
|
||||
import Download from 'vue-material-design-icons/TrayArrowDown.vue'
|
||||
|
||||
const hasPermission = (permissions: number, permission: number): boolean => (permissions & permission) !== 0
|
||||
|
||||
export default defineComponent({
|
||||
name: 'VersionEntry',
|
||||
|
||||
components: {
|
||||
NcActionLink,
|
||||
NcActionButton,
|
||||
NcAvatar,
|
||||
NcDateTime,
|
||||
NcListItem,
|
||||
BackupRestore,
|
||||
Download,
|
||||
FileCompare,
|
||||
Pencil,
|
||||
Delete,
|
||||
ImageOffOutline,
|
||||
const props = defineProps({
|
||||
version: {
|
||||
type: Object as PropType<Version>,
|
||||
required: true,
|
||||
},
|
||||
|
||||
directives: {
|
||||
tooltip: Tooltip,
|
||||
fileInfo: {
|
||||
type: Object as PropType<LegacyFileInfo>,
|
||||
required: true,
|
||||
},
|
||||
|
||||
props: {
|
||||
version: {
|
||||
type: Object as PropType<Version>,
|
||||
required: true,
|
||||
},
|
||||
|
||||
fileInfo: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
|
||||
isCurrent: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
isFirstVersion: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
loadPreview: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
canView: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
canCompare: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
isCurrent: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
emits: ['click', 'compare', 'restore', 'delete', 'label-update-request'],
|
||||
|
||||
data() {
|
||||
return {
|
||||
previewLoaded: false,
|
||||
previewErrored: false,
|
||||
capabilities: loadState('core', 'capabilities', { files: { version_labeling: false, version_deletion: false } }),
|
||||
}
|
||||
isFirstVersion: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
computed: {
|
||||
humanReadableSize() {
|
||||
return formatFileSize(this.version.size)
|
||||
},
|
||||
|
||||
versionLabel(): string {
|
||||
const label = this.version.label ?? ''
|
||||
|
||||
if (this.isCurrent) {
|
||||
if (label === '') {
|
||||
return t('files_versions', 'Current version')
|
||||
} else {
|
||||
return `${label} (${t('files_versions', 'Current version')})`
|
||||
}
|
||||
}
|
||||
|
||||
if (this.isFirstVersion && label === '') {
|
||||
return t('files_versions', 'Initial version')
|
||||
}
|
||||
|
||||
return label
|
||||
},
|
||||
|
||||
versionAuthor() {
|
||||
if (!this.version.author || !this.version.authorName) {
|
||||
return ''
|
||||
}
|
||||
|
||||
if (this.version.author === getCurrentUser()?.uid) {
|
||||
return t('files_versions', 'You')
|
||||
}
|
||||
|
||||
return this.version.authorName ?? this.version.author
|
||||
},
|
||||
|
||||
versionHumanExplicitDate(): string {
|
||||
return moment(this.version.mtime).format('LLLL')
|
||||
},
|
||||
|
||||
downloadURL(): string {
|
||||
if (this.isCurrent) {
|
||||
return getRootUrl() + joinPaths('/remote.php/webdav', this.fileInfo.path, this.fileInfo.name)
|
||||
} else {
|
||||
return getRootUrl() + this.version.url
|
||||
}
|
||||
},
|
||||
|
||||
enableLabeling(): boolean {
|
||||
return this.capabilities.files.version_labeling === true
|
||||
},
|
||||
|
||||
enableDeletion(): boolean {
|
||||
return this.capabilities.files.version_deletion === true
|
||||
},
|
||||
|
||||
hasDeletePermissions(): boolean {
|
||||
return hasPermission(this.fileInfo.permissions, Permission.DELETE)
|
||||
},
|
||||
|
||||
hasUpdatePermissions(): boolean {
|
||||
return hasPermission(this.fileInfo.permissions, Permission.UPDATE)
|
||||
},
|
||||
|
||||
isDownloadable(): boolean {
|
||||
if ((this.fileInfo.permissions & Permission.READ) === 0) {
|
||||
return false
|
||||
}
|
||||
|
||||
// If the mount type is a share, ensure it got download permissions.
|
||||
if (this.fileInfo.mountType === 'shared') {
|
||||
const downloadAttribute = this.fileInfo.shareAttributes
|
||||
.find((attribute) => attribute.scope === 'permissions' && attribute.key === 'download') || {}
|
||||
// If the download attribute is set to false, the file is not downloadable
|
||||
if (downloadAttribute?.value === false) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
loadPreview: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
methods: {
|
||||
labelUpdate() {
|
||||
this.$emit('label-update-request')
|
||||
},
|
||||
canView: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
restoreVersion() {
|
||||
this.$emit('restore', this.version)
|
||||
},
|
||||
|
||||
async deleteVersion() {
|
||||
// Let @nc-vue properly remove the popover before we delete the version.
|
||||
// This prevents @nc-vue from throwing a error.
|
||||
await this.$nextTick()
|
||||
await this.$nextTick()
|
||||
this.$emit('delete', this.version)
|
||||
},
|
||||
|
||||
click() {
|
||||
if (!this.canView) {
|
||||
window.location.href = this.downloadURL
|
||||
return
|
||||
}
|
||||
this.$emit('click', { version: this.version })
|
||||
},
|
||||
|
||||
compareVersion() {
|
||||
if (!this.canView) {
|
||||
throw new Error('Cannot compare version of this file')
|
||||
}
|
||||
this.$emit('compare', { version: this.version })
|
||||
},
|
||||
|
||||
t,
|
||||
canCompare: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
})
|
||||
|
||||
const emit = defineEmits(['click', 'compare', 'restore', 'delete', 'label-update-request'])
|
||||
|
||||
const hasPermission = (permissions: number, permission: number): boolean => (permissions & permission) !== 0
|
||||
|
||||
const previewLoaded = ref(false)
|
||||
const previewErrored = ref(false)
|
||||
const capabilities = ref(loadState('core', 'capabilities', { files: { version_labeling: false, version_deletion: false } }))
|
||||
|
||||
const humanReadableSize = computed(() => {
|
||||
return formatFileSize(props.version.size)
|
||||
})
|
||||
|
||||
const versionLabel = computed(() => {
|
||||
const label = props.version.label ?? ''
|
||||
|
||||
if (props.isCurrent) {
|
||||
if (label === '') {
|
||||
return t('files_versions', 'Current version')
|
||||
} else {
|
||||
return `${label} (${t('files_versions', 'Current version')})`
|
||||
}
|
||||
}
|
||||
|
||||
if (props.isFirstVersion && label === '') {
|
||||
return t('files_versions', 'Initial version')
|
||||
}
|
||||
|
||||
return label
|
||||
})
|
||||
|
||||
const versionAuthor = computed(() => {
|
||||
if (!props.version.author || !props.version.authorName) {
|
||||
return ''
|
||||
}
|
||||
|
||||
if (props.version.author === getCurrentUser()?.uid) {
|
||||
return t('files_versions', 'You')
|
||||
}
|
||||
|
||||
return props.version.authorName ?? props.version.author
|
||||
})
|
||||
|
||||
const versionHumanExplicitDate = computed(() => {
|
||||
return moment(props.version.mtime).format('LLLL')
|
||||
})
|
||||
|
||||
const downloadURL = computed(() => {
|
||||
if (props.isCurrent) {
|
||||
return getRootUrl() + joinPaths('/remote.php/webdav', props.fileInfo.path, props.fileInfo.name)
|
||||
} else {
|
||||
return getRootUrl() + props.version.url
|
||||
}
|
||||
})
|
||||
|
||||
const enableLabeling = computed(() => {
|
||||
return capabilities.value.files.version_labeling === true
|
||||
})
|
||||
|
||||
const enableDeletion = computed(() => {
|
||||
return capabilities.value.files.version_deletion === true
|
||||
})
|
||||
|
||||
const hasDeletePermissions = computed(() => {
|
||||
return hasPermission(props.fileInfo.permissions, Permission.DELETE)
|
||||
})
|
||||
|
||||
const hasUpdatePermissions = computed(() => {
|
||||
return hasPermission(props.fileInfo.permissions, Permission.UPDATE)
|
||||
})
|
||||
|
||||
const isDownloadable = computed(() => {
|
||||
if ((props.fileInfo.permissions & Permission.READ) === 0) {
|
||||
return false
|
||||
}
|
||||
|
||||
// If the mount type is a share, ensure it got download permissions.
|
||||
if (props.fileInfo.mountType === 'shared') {
|
||||
const downloadAttribute = props.fileInfo.shareAttributes
|
||||
.find((attribute) => attribute.scope === 'permissions' && attribute.key === 'download') || {}
|
||||
// If the download attribute is set to false, the file is not downloadable
|
||||
if (downloadAttribute?.value === false) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
})
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function labelUpdate() {
|
||||
emit('label-update-request')
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function restoreVersion() {
|
||||
emit('restore', props.version)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
async function deleteVersion() {
|
||||
// Let @nc-vue properly remove the popover before we delete the version.
|
||||
// This prevents @nc-vue from throwing a error.
|
||||
await nextTick()
|
||||
await nextTick()
|
||||
emit('delete', props.version)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function click() {
|
||||
if (!props.canView) {
|
||||
window.location.href = downloadURL.value
|
||||
return
|
||||
}
|
||||
emit('click', { version: props.version })
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function compareVersion() {
|
||||
if (!props.canView) {
|
||||
throw new Error('Cannot compare version of this file')
|
||||
}
|
||||
emit('compare', { version: props.version })
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@
|
|||
size="normal"
|
||||
:name="t('files_versions', 'Name this version')"
|
||||
@update:open="$emit('update:open', $event)"
|
||||
@submit="setVersionLabel(editedVersionLabel)">
|
||||
@submit="setVersionLabel(internalLabel)">
|
||||
<NcTextField
|
||||
ref="labelInput"
|
||||
v-model="internalLabel"
|
||||
class="version-label-modal__input"
|
||||
:label="t('files_versions', 'Version name')"
|
||||
:placeholder="t('files_versions', 'Version name')"
|
||||
:value.sync="editedVersionLabel" />
|
||||
:placeholder="t('files_versions', 'Version name')" />
|
||||
|
||||
<p class="version-label-modal__info">
|
||||
{{ t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.') }}
|
||||
|
|
@ -25,96 +25,76 @@
|
|||
</NcDialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import svgCheck from '@mdi/svg/svg/check.svg?raw'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { defineComponent } from 'vue'
|
||||
import { computed, nextTick, ref, useTemplateRef, watchEffect } from 'vue'
|
||||
import NcDialog from '@nextcloud/vue/components/NcDialog'
|
||||
import NcTextField from '@nextcloud/vue/components/NcTextField'
|
||||
|
||||
type Focusable = Vue & { focus: () => void }
|
||||
|
||||
export default defineComponent({
|
||||
name: 'VersionLabelDialog',
|
||||
components: {
|
||||
NcDialog,
|
||||
NcTextField,
|
||||
const props = defineProps({
|
||||
open: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
props: {
|
||||
open: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
versionLabel: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
editedVersionLabel: '',
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
dialogButtons() {
|
||||
const buttons: unknown[] = []
|
||||
if (this.versionLabel.trim() === '') {
|
||||
// If there is no label just offer a cancel action that just closes the dialog
|
||||
buttons.push({
|
||||
label: t('files_versions', 'Cancel'),
|
||||
})
|
||||
} else {
|
||||
// If there is already a label set, offer to remove the version label
|
||||
buttons.push({
|
||||
label: t('files_versions', 'Remove version name'),
|
||||
type: 'reset',
|
||||
variant: 'error',
|
||||
callback: () => { this.setVersionLabel('') },
|
||||
})
|
||||
}
|
||||
return [
|
||||
...buttons,
|
||||
{
|
||||
label: t('files_versions', 'Save version name'),
|
||||
icon: svgCheck,
|
||||
type: 'submit',
|
||||
variant: 'primary',
|
||||
},
|
||||
]
|
||||
},
|
||||
},
|
||||
|
||||
watch: {
|
||||
versionLabel: {
|
||||
immediate: true,
|
||||
handler(label) {
|
||||
this.editedVersionLabel = label ?? ''
|
||||
},
|
||||
},
|
||||
|
||||
open: {
|
||||
immediate: true,
|
||||
handler(open) {
|
||||
if (open) {
|
||||
this.$nextTick(() => (this.$refs.labelInput as Focusable).focus())
|
||||
}
|
||||
this.editedVersionLabel = this.versionLabel
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
setVersionLabel(label: string) {
|
||||
this.$emit('label-update', label)
|
||||
},
|
||||
|
||||
t,
|
||||
label: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
})
|
||||
|
||||
const emit = defineEmits(['update:open', 'update:label'])
|
||||
|
||||
const labelInput = useTemplateRef('labelInput')
|
||||
|
||||
const internalLabel = ref('')
|
||||
|
||||
const dialogButtons = computed(() => {
|
||||
const buttons: unknown[] = []
|
||||
if (props.label.trim() === '') {
|
||||
// If there is no label just offer a cancel action that just closes the dialog
|
||||
buttons.push({
|
||||
label: t('files_versions', 'Cancel'),
|
||||
})
|
||||
} else {
|
||||
// If there is already a label set, offer to remove the version label
|
||||
buttons.push({
|
||||
label: t('files_versions', 'Remove version name'),
|
||||
type: 'reset',
|
||||
variant: 'error',
|
||||
callback: () => { setVersionLabel('') },
|
||||
})
|
||||
}
|
||||
return [
|
||||
...buttons,
|
||||
{
|
||||
label: t('files_versions', 'Save version name'),
|
||||
icon: svgCheck,
|
||||
type: 'submit',
|
||||
variant: 'primary',
|
||||
},
|
||||
]
|
||||
})
|
||||
|
||||
watchEffect(() => {
|
||||
internalLabel.value = props.label ?? ''
|
||||
})
|
||||
|
||||
watchEffect(() => {
|
||||
if (props.open) {
|
||||
nextTick(() => labelInput.value?.focus())
|
||||
}
|
||||
internalLabel.value = props.label
|
||||
})
|
||||
|
||||
/**
|
||||
*
|
||||
* @param label - The new label
|
||||
*/
|
||||
function setVersionLabel(label: string) {
|
||||
emit('update:label', label)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
|
|
|||
|
|
@ -28,14 +28,14 @@ import {
|
|||
|
||||
defineComponent,
|
||||
} from 'vue'
|
||||
import logger from '../utils/logger.js'
|
||||
import logger from '../utils/logger.ts'
|
||||
|
||||
interface RowItem {
|
||||
export interface RowItem {
|
||||
id: string // Unique id for the item.
|
||||
key?: string // Unique key for the item.
|
||||
}
|
||||
|
||||
interface Row {
|
||||
export interface Row {
|
||||
key: string // Unique key for the row.
|
||||
height: number // The height of the row.
|
||||
sectionKey: string // Unique key for the row.
|
||||
|
|
|
|||
|
|
@ -1,60 +0,0 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import BackupRestore from '@mdi/svg/svg/backup-restore.svg?raw'
|
||||
import { n, t } from '@nextcloud/l10n'
|
||||
import VTooltipPlugin from 'v-tooltip'
|
||||
import Vue from 'vue'
|
||||
import VersionTab from './views/VersionTab.vue'
|
||||
|
||||
Vue.prototype.t = t
|
||||
Vue.prototype.n = n
|
||||
|
||||
Vue.use(VTooltipPlugin)
|
||||
|
||||
// Init Sharing tab component
|
||||
const View = Vue.extend(VersionTab)
|
||||
let TabInstance = null
|
||||
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
if (OCA.Files?.Sidebar === undefined) {
|
||||
return
|
||||
}
|
||||
|
||||
OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({
|
||||
id: 'version_vue',
|
||||
name: t('files_versions', 'Versions'),
|
||||
iconSvg: BackupRestore,
|
||||
|
||||
async mount(el, fileInfo, context) {
|
||||
if (TabInstance) {
|
||||
TabInstance.$destroy()
|
||||
}
|
||||
TabInstance = new View({
|
||||
// Better integration with vue parent component
|
||||
parent: context,
|
||||
})
|
||||
// Only mount after we have all the info we need
|
||||
await TabInstance.update(fileInfo)
|
||||
TabInstance.$mount(el)
|
||||
},
|
||||
update(fileInfo) {
|
||||
TabInstance.update(fileInfo)
|
||||
},
|
||||
setIsActive(isActive) {
|
||||
if (!TabInstance) {
|
||||
return
|
||||
}
|
||||
TabInstance.setIsActive(isActive)
|
||||
},
|
||||
destroy() {
|
||||
TabInstance.$destroy()
|
||||
TabInstance = null
|
||||
},
|
||||
enabled(fileInfo) {
|
||||
return !(fileInfo?.isDirectory() ?? true)
|
||||
},
|
||||
}))
|
||||
})
|
||||
50
apps/files_versions/src/sidebar_tab.ts
Normal file
50
apps/files_versions/src/sidebar_tab.ts
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import type { App, ComponentPublicInstance } from 'vue'
|
||||
|
||||
import BackupRestore from '@mdi/svg/svg/backup-restore.svg?raw'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { createApp } from 'vue'
|
||||
import FilesVersionsSidebarTab from './views/FilesVersionsSidebarTab.vue'
|
||||
|
||||
// Init FilesVersions tab component
|
||||
let filesVersionsTabApp: App<Element> | null = null
|
||||
let filesVersionsTabInstance: ComponentPublicInstance<typeof FilesVersionsSidebarTab> | null = null
|
||||
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
if (window.OCA.Files?.Sidebar === undefined) {
|
||||
return
|
||||
}
|
||||
|
||||
window.OCA.Files.Sidebar.registerTab(new window.OCA.Files.Sidebar.Tab({
|
||||
id: 'files_versions',
|
||||
name: t('files_versions', 'Versions'),
|
||||
iconSvg: BackupRestore,
|
||||
|
||||
async mount(el, fileInfo) {
|
||||
// destroy previous instance if available
|
||||
if (filesVersionsTabApp) {
|
||||
filesVersionsTabApp.unmount()
|
||||
}
|
||||
filesVersionsTabApp = createApp(FilesVersionsSidebarTab)
|
||||
filesVersionsTabInstance = filesVersionsTabApp.mount(el)
|
||||
filesVersionsTabInstance.update(fileInfo)
|
||||
},
|
||||
update(fileInfo) {
|
||||
filesVersionsTabInstance!.update(fileInfo)
|
||||
},
|
||||
setIsActive(isActive) {
|
||||
filesVersionsTabInstance?.setIsActive(isActive)
|
||||
},
|
||||
destroy() {
|
||||
filesVersionsTabApp?.unmount()
|
||||
filesVersionsTabApp = null
|
||||
},
|
||||
enabled(fileInfo) {
|
||||
return !(fileInfo?.isDirectory() ?? true)
|
||||
},
|
||||
}))
|
||||
})
|
||||
|
|
@ -12,9 +12,9 @@ import axios from '@nextcloud/axios'
|
|||
import moment from '@nextcloud/moment'
|
||||
import { encodePath, joinPaths } from '@nextcloud/paths'
|
||||
import { generateRemoteUrl, generateUrl } from '@nextcloud/router'
|
||||
import client from '../utils/davClient.js'
|
||||
import davRequest from '../utils/davRequest.js'
|
||||
import logger from '../utils/logger.js'
|
||||
import client from '../utils/davClient.ts'
|
||||
import davRequest from '../utils/davRequest.ts'
|
||||
import logger from '../utils/logger.ts'
|
||||
|
||||
export interface Version {
|
||||
fileId: string // The id of the file associated to the version.
|
||||
|
|
|
|||
315
apps/files_versions/src/views/FilesVersionsSidebarTab.vue
Normal file
315
apps/files_versions/src/views/FilesVersionsSidebarTab.vue
Normal file
|
|
@ -0,0 +1,315 @@
|
|||
<!--
|
||||
- SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-->
|
||||
<template>
|
||||
<div v-if="fileInfo !== null" class="versions-tab__container">
|
||||
<VirtualScrolling
|
||||
:sections="sections"
|
||||
:header-height="0">
|
||||
<template #default="{ visibleSections }">
|
||||
<ul :aria-label="t('files_versions', 'File versions')" data-files-versions-versions-list>
|
||||
<template v-if="visibleSections.length === 1">
|
||||
<VersionEntry
|
||||
v-for="(row) of visibleSections[0].rows"
|
||||
:key="row.items[0].version.mtime"
|
||||
:can-view="canView"
|
||||
:can-compare="canCompare"
|
||||
:load-preview="isActive"
|
||||
:version="row.items[0].version"
|
||||
:file-info="fileInfo"
|
||||
:is-current="row.items[0].version.mtime === fileInfo.mtime"
|
||||
:is-first-version="row.items[0].version.mtime === initialVersionMtime"
|
||||
@click="openVersion"
|
||||
@compare="compareVersion"
|
||||
@restore="handleRestore"
|
||||
@label-update-request="handleLabelUpdateRequest(row.items[0].version)"
|
||||
@delete="handleDelete" />
|
||||
</template>
|
||||
</ul>
|
||||
</template>
|
||||
<template #loader>
|
||||
<NcLoadingIcon v-if="loading" class="files-list-viewer__loader" />
|
||||
</template>
|
||||
</VirtualScrolling>
|
||||
<VersionLabelDialog
|
||||
v-if="editedVersion"
|
||||
v-model:open="showVersionLabelForm"
|
||||
:label="editedVersion.label"
|
||||
@update:label="handleLabelUpdate" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import type { LegacyFileInfo } from '../../../files/src/services/FileInfo.ts'
|
||||
import type { Version } from '../utils/versions.ts'
|
||||
|
||||
import { getCurrentUser } from '@nextcloud/auth'
|
||||
import { showError, showSuccess } from '@nextcloud/dialogs'
|
||||
import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { useIsMobile } from '@nextcloud/vue/composables/useIsMobile'
|
||||
import path from 'path'
|
||||
import { computed, onBeforeUnmount, onMounted, ref } from 'vue'
|
||||
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
|
||||
import VersionEntry from '../components/VersionEntry.vue'
|
||||
import VersionLabelDialog from '../components/VersionLabelDialog.vue'
|
||||
import VirtualScrolling from '../components/VirtualScrolling.vue'
|
||||
import logger from '../utils/logger.ts'
|
||||
import { deleteVersion, fetchVersions, restoreVersion, setVersionLabel } from '../utils/versions.ts'
|
||||
|
||||
const isMobile = useIsMobile()
|
||||
|
||||
const fileInfo = ref<LegacyFileInfo | null>(null)
|
||||
const isActive = ref<boolean>(false)
|
||||
const versions = ref<Version[]>([])
|
||||
const loading = ref(false)
|
||||
const showVersionLabelForm = ref(false)
|
||||
const editedVersion = ref<Version | null>(null)
|
||||
|
||||
/**
|
||||
* Order versions by mtime.
|
||||
* Put the current version at the top.
|
||||
*/
|
||||
const orderedVersions = computed(() => {
|
||||
return [...versions.value].sort((a, b) => {
|
||||
if (fileInfo.value === null) {
|
||||
return 0
|
||||
}
|
||||
|
||||
if (a.mtime === fileInfo.value.mtime) {
|
||||
return -1
|
||||
} else if (b.mtime === fileInfo.value.mtime) {
|
||||
return 1
|
||||
} else {
|
||||
return b.mtime - a.mtime
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
const sections = computed(() => {
|
||||
const rows = orderedVersions.value.map((version) => ({ key: version.mtime.toString(), height: 68, sectionKey: 'versions', items: [{ id: version.mtime.toString(), version }] }))
|
||||
return [{ key: 'versions', rows, height: 68 * orderedVersions.value.length }]
|
||||
})
|
||||
|
||||
/**
|
||||
* Return the mtime of the first version to display "Initial version" label
|
||||
*/
|
||||
const initialVersionMtime = computed(() => {
|
||||
return versions.value
|
||||
.map((version) => version.mtime)
|
||||
.reduce((a, b) => Math.min(a, b))
|
||||
})
|
||||
|
||||
const viewerFileInfo = computed(() => {
|
||||
if (fileInfo.value === null) {
|
||||
return null
|
||||
}
|
||||
|
||||
// We need to remap bitmask to dav permissions as the file info we have is converted through client.js
|
||||
let davPermissions = ''
|
||||
if (fileInfo.value.permissions & 1) {
|
||||
davPermissions += 'R'
|
||||
}
|
||||
if (fileInfo.value.permissions & 2) {
|
||||
davPermissions += 'W'
|
||||
}
|
||||
if (fileInfo.value.permissions & 8) {
|
||||
davPermissions += 'D'
|
||||
}
|
||||
return {
|
||||
...fileInfo.value,
|
||||
mime: fileInfo.value.mimetype,
|
||||
basename: fileInfo.value.name,
|
||||
filename: fileInfo.value.path + '/' + fileInfo.value.name,
|
||||
permissions: davPermissions,
|
||||
fileid: fileInfo.value.id,
|
||||
}
|
||||
})
|
||||
|
||||
const canView = computed(() => {
|
||||
if (fileInfo.value === null) {
|
||||
return false
|
||||
}
|
||||
|
||||
return window.OCA.Viewer?.mimetypesCompare?.includes(fileInfo.value.mimetype)
|
||||
})
|
||||
|
||||
const canCompare = computed(() => {
|
||||
return !isMobile.value
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
subscribe('files_versions:restore:restored', fetchVersions)
|
||||
})
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
unsubscribe('files_versions:restore:restored', fetchVersions)
|
||||
})
|
||||
|
||||
defineExpose({
|
||||
/**
|
||||
* Update current fileInfo and fetch new data
|
||||
*
|
||||
* @param _fileInfo the current file FileInfo
|
||||
*/
|
||||
async update(_fileInfo: LegacyFileInfo) {
|
||||
fileInfo.value = _fileInfo
|
||||
resetState()
|
||||
internalFetchVersions()
|
||||
},
|
||||
|
||||
/**
|
||||
* @param _isActive whether the tab is active
|
||||
*/
|
||||
async setIsActive(_isActive: boolean) {
|
||||
isActive.value = _isActive
|
||||
},
|
||||
})
|
||||
|
||||
/**
|
||||
* Get the existing versions infos
|
||||
*/
|
||||
async function internalFetchVersions() {
|
||||
try {
|
||||
loading.value = true
|
||||
versions.value = await fetchVersions(fileInfo.value)
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle restored event from Version.vue
|
||||
*
|
||||
* @param version The version to restore
|
||||
*/
|
||||
async function handleRestore(version: Version) {
|
||||
// Update local copy of fileInfo as rendering depends on it.
|
||||
const oldFileInfo = fileInfo.value
|
||||
fileInfo.value = {
|
||||
...fileInfo.value,
|
||||
size: version.size,
|
||||
mtime: version.mtime,
|
||||
}
|
||||
|
||||
const restoreStartedEventState = {
|
||||
preventDefault: false,
|
||||
fileInfo: fileInfo.value,
|
||||
version,
|
||||
}
|
||||
emit('files_versions:restore:requested', restoreStartedEventState)
|
||||
if (restoreStartedEventState.preventDefault) {
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
await restoreVersion(version)
|
||||
if (version.label) {
|
||||
showSuccess(t('files_versions', `${version.label} restored`))
|
||||
} else if (version.mtime === initialVersionMtime.value) {
|
||||
showSuccess(t('files_versions', 'Initial version restored'))
|
||||
} else {
|
||||
showSuccess(t('files_versions', 'Version restored'))
|
||||
}
|
||||
emit('files_versions:restore:restored', version)
|
||||
} catch {
|
||||
fileInfo.value = oldFileInfo
|
||||
showError(t('files_versions', 'Could not restore version'))
|
||||
emit('files_versions:restore:failed', version)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle label-updated event from Version.vue
|
||||
*
|
||||
* @param version The version to update
|
||||
*/
|
||||
function handleLabelUpdateRequest(version: Version) {
|
||||
showVersionLabelForm.value = true
|
||||
editedVersion.value = version
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle label-updated event from Version.vue
|
||||
*
|
||||
* @param newLabel The new label
|
||||
*/
|
||||
async function handleLabelUpdate(newLabel: string) {
|
||||
if (editedVersion.value === null) {
|
||||
throw new Error('editedVersion should be set at that point')
|
||||
}
|
||||
|
||||
const oldLabel = editedVersion.value.label
|
||||
editedVersion.value.label = newLabel
|
||||
showVersionLabelForm.value = false
|
||||
|
||||
try {
|
||||
await setVersionLabel(editedVersion.value, newLabel)
|
||||
editedVersion.value = null
|
||||
} catch (exception) {
|
||||
editedVersion.value!.label = oldLabel
|
||||
showError(t('files_versions', 'Could not set version label'))
|
||||
logger.error('Could not set version label', { exception })
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle deleted event from Version.vue
|
||||
*
|
||||
* @param version The version to delete
|
||||
*/
|
||||
async function handleDelete(version: Version) {
|
||||
const index = versions.value.indexOf(version)
|
||||
versions.value.splice(index, 1)
|
||||
|
||||
try {
|
||||
await deleteVersion(version)
|
||||
} catch {
|
||||
versions.value.push(version)
|
||||
showError(t('files_versions', 'Could not delete version'))
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset the current view to its default state
|
||||
*/
|
||||
function resetState() {
|
||||
versions.value = []
|
||||
}
|
||||
|
||||
function openVersion({ version }: { version: Version }) {
|
||||
if (fileInfo.value === null) {
|
||||
return
|
||||
}
|
||||
|
||||
// Open current file view instead of read only
|
||||
if (version.mtime === fileInfo.value.mtime) {
|
||||
window.OCA.Viewer.open({ fileInfo: viewerFileInfo.value })
|
||||
return
|
||||
}
|
||||
|
||||
window.OCA.Viewer.open({
|
||||
fileInfo: {
|
||||
...version,
|
||||
// Versions previews are too small for our use case, so we override previewUrl
|
||||
// to either point to the original file or original version.
|
||||
filename: version.mtime === fileInfo.value.mtime ? path.join('files', getCurrentUser()?.uid ?? '', fileInfo.value.path, fileInfo.value.name) : version.filename,
|
||||
previewUrl: undefined,
|
||||
},
|
||||
enableSidebar: false,
|
||||
})
|
||||
}
|
||||
|
||||
function compareVersion({ version }: { version: Version }) {
|
||||
const _versions = versions.value.map((version) => ({ ...version, previewUrl: undefined }))
|
||||
|
||||
window.OCA.Viewer.compare(viewerFileInfo.value, _versions.find((v) => v.source === version.source))
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.versions-tab__container {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,316 +0,0 @@
|
|||
<!--
|
||||
- SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-->
|
||||
<template>
|
||||
<div class="versions-tab__container">
|
||||
<VirtualScrolling
|
||||
v-slot="{ visibleSections }"
|
||||
:sections="sections"
|
||||
:header-height="0">
|
||||
<ul :aria-label="t('files_versions', 'File versions')" data-files-versions-versions-list>
|
||||
<template v-if="visibleSections.length === 1">
|
||||
<VersionEntry
|
||||
v-for="(row) of visibleSections[0].rows"
|
||||
:key="row.items[0].mtime"
|
||||
:can-view="canView"
|
||||
:can-compare="canCompare"
|
||||
:load-preview="isActive"
|
||||
:version="row.items[0]"
|
||||
:file-info="fileInfo"
|
||||
:is-current="row.items[0].mtime === fileInfo.mtime"
|
||||
:is-first-version="row.items[0].mtime === initialVersionMtime"
|
||||
@click="openVersion"
|
||||
@compare="compareVersion"
|
||||
@restore="handleRestore"
|
||||
@label-update-request="handleLabelUpdateRequest(row.items[0])"
|
||||
@delete="handleDelete" />
|
||||
</template>
|
||||
</ul>
|
||||
<NcLoadingIcon v-if="loading" slot="loader" class="files-list-viewer__loader" />
|
||||
</VirtualScrolling>
|
||||
<VersionLabelDialog
|
||||
v-if="editedVersion"
|
||||
:open.sync="showVersionLabelForm"
|
||||
:version-label="editedVersion.label"
|
||||
@label-update="handleLabelUpdate" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getCurrentUser } from '@nextcloud/auth'
|
||||
import { showError, showSuccess } from '@nextcloud/dialogs'
|
||||
import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'
|
||||
import { useIsMobile } from '@nextcloud/vue/composables/useIsMobile'
|
||||
import path from 'path'
|
||||
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
|
||||
import VersionEntry from '../components/VersionEntry.vue'
|
||||
import VersionLabelDialog from '../components/VersionLabelDialog.vue'
|
||||
import VirtualScrolling from '../components/VirtualScrolling.vue'
|
||||
import logger from '../utils/logger.js'
|
||||
import { deleteVersion, fetchVersions, restoreVersion, setVersionLabel } from '../utils/versions.ts'
|
||||
|
||||
export default {
|
||||
name: 'VersionTab',
|
||||
components: {
|
||||
VersionEntry,
|
||||
VirtualScrolling,
|
||||
VersionLabelDialog,
|
||||
NcLoadingIcon,
|
||||
},
|
||||
|
||||
setup() {
|
||||
return {
|
||||
isMobile: useIsMobile(),
|
||||
}
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
fileInfo: null,
|
||||
isActive: false,
|
||||
/** @type {import('../utils/versions.ts').Version[]} */
|
||||
versions: [],
|
||||
loading: false,
|
||||
showVersionLabelForm: false,
|
||||
editedVersion: null,
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
sections() {
|
||||
const rows = this.orderedVersions.map((version) => ({ key: version.mtime, height: 68, sectionKey: 'versions', items: [version] }))
|
||||
return [{ key: 'versions', rows, height: 68 * this.orderedVersions.length }]
|
||||
},
|
||||
|
||||
/**
|
||||
* Order versions by mtime.
|
||||
* Put the current version at the top.
|
||||
*
|
||||
* @return {import('../utils/versions.ts').Version[]}
|
||||
*/
|
||||
orderedVersions() {
|
||||
return [...this.versions].sort((a, b) => {
|
||||
if (a.mtime === this.fileInfo.mtime) {
|
||||
return -1
|
||||
} else if (b.mtime === this.fileInfo.mtime) {
|
||||
return 1
|
||||
} else {
|
||||
return b.mtime - a.mtime
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* Return the mtime of the first version to display "Initial version" label
|
||||
*
|
||||
* @return {number}
|
||||
*/
|
||||
initialVersionMtime() {
|
||||
return this.versions
|
||||
.map((version) => version.mtime)
|
||||
.reduce((a, b) => Math.min(a, b))
|
||||
},
|
||||
|
||||
viewerFileInfo() {
|
||||
// We need to remap bitmask to dav permissions as the file info we have is converted through client.js
|
||||
let davPermissions = ''
|
||||
if (this.fileInfo.permissions & 1) {
|
||||
davPermissions += 'R'
|
||||
}
|
||||
if (this.fileInfo.permissions & 2) {
|
||||
davPermissions += 'W'
|
||||
}
|
||||
if (this.fileInfo.permissions & 8) {
|
||||
davPermissions += 'D'
|
||||
}
|
||||
return {
|
||||
...this.fileInfo,
|
||||
mime: this.fileInfo.mimetype,
|
||||
basename: this.fileInfo.name,
|
||||
filename: this.fileInfo.path + '/' + this.fileInfo.name,
|
||||
permissions: davPermissions,
|
||||
fileid: this.fileInfo.id,
|
||||
}
|
||||
},
|
||||
|
||||
/** @return {boolean} */
|
||||
canView() {
|
||||
return window.OCA.Viewer?.mimetypesCompare?.includes(this.fileInfo.mimetype)
|
||||
},
|
||||
|
||||
canCompare() {
|
||||
return !this.isMobile
|
||||
},
|
||||
},
|
||||
|
||||
mounted() {
|
||||
subscribe('files_versions:restore:restored', this.fetchVersions)
|
||||
},
|
||||
|
||||
beforeUnmount() {
|
||||
unsubscribe('files_versions:restore:restored', this.fetchVersions)
|
||||
},
|
||||
|
||||
methods: {
|
||||
/**
|
||||
* Update current fileInfo and fetch new data
|
||||
*
|
||||
* @param {object} fileInfo the current file FileInfo
|
||||
*/
|
||||
async update(fileInfo) {
|
||||
this.fileInfo = fileInfo
|
||||
this.resetState()
|
||||
this.fetchVersions()
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {boolean} isActive whether the tab is active
|
||||
*/
|
||||
async setIsActive(isActive) {
|
||||
this.isActive = isActive
|
||||
},
|
||||
|
||||
/**
|
||||
* Get the existing versions infos
|
||||
*/
|
||||
async fetchVersions() {
|
||||
try {
|
||||
this.loading = true
|
||||
this.versions = await fetchVersions(this.fileInfo)
|
||||
} finally {
|
||||
this.loading = false
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Handle restored event from Version.vue
|
||||
*
|
||||
* @param {import('../utils/versions.ts').Version} version The version to restore
|
||||
*/
|
||||
async handleRestore(version) {
|
||||
// Update local copy of fileInfo as rendering depends on it.
|
||||
const oldFileInfo = this.fileInfo
|
||||
this.fileInfo = {
|
||||
...this.fileInfo,
|
||||
size: version.size,
|
||||
mtime: version.mtime,
|
||||
}
|
||||
|
||||
const restoreStartedEventState = {
|
||||
preventDefault: false,
|
||||
fileInfo: this.fileInfo,
|
||||
version,
|
||||
}
|
||||
emit('files_versions:restore:requested', restoreStartedEventState)
|
||||
if (restoreStartedEventState.preventDefault) {
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
await restoreVersion(version)
|
||||
if (version.label) {
|
||||
showSuccess(t('files_versions', `${version.label} restored`))
|
||||
} else if (version.mtime === this.initialVersionMtime) {
|
||||
showSuccess(t('files_versions', 'Initial version restored'))
|
||||
} else {
|
||||
showSuccess(t('files_versions', 'Version restored'))
|
||||
}
|
||||
emit('files_versions:restore:restored', version)
|
||||
} catch {
|
||||
this.fileInfo = oldFileInfo
|
||||
showError(t('files_versions', 'Could not restore version'))
|
||||
emit('files_versions:restore:failed', version)
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Handle label-updated event from Version.vue
|
||||
*
|
||||
* @param {import('../utils/versions.ts').Version} version The version to update
|
||||
*/
|
||||
handleLabelUpdateRequest(version) {
|
||||
this.showVersionLabelForm = true
|
||||
this.editedVersion = version
|
||||
},
|
||||
|
||||
/**
|
||||
* Handle label-updated event from Version.vue
|
||||
*
|
||||
* @param {string} newLabel The new label
|
||||
*/
|
||||
async handleLabelUpdate(newLabel) {
|
||||
const oldLabel = this.editedVersion.label
|
||||
this.editedVersion.label = newLabel
|
||||
this.showVersionLabelForm = false
|
||||
|
||||
try {
|
||||
await setVersionLabel(this.editedVersion, newLabel)
|
||||
this.editedVersion = null
|
||||
} catch (exception) {
|
||||
this.editedVersion.label = oldLabel
|
||||
showError(this.t('files_versions', 'Could not set version label'))
|
||||
logger.error('Could not set version label', { exception })
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Handle deleted event from Version.vue
|
||||
*
|
||||
* @param {import('../utils/versions.ts').Version} version The version to delete
|
||||
*/
|
||||
async handleDelete(version) {
|
||||
const index = this.versions.indexOf(version)
|
||||
this.versions.splice(index, 1)
|
||||
|
||||
try {
|
||||
await deleteVersion(version)
|
||||
} catch {
|
||||
this.versions.push(version)
|
||||
showError(t('files_versions', 'Could not delete version'))
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Reset the current view to its default state
|
||||
*/
|
||||
resetState() {
|
||||
this.$set(this, 'versions', [])
|
||||
},
|
||||
|
||||
openVersion({ version }) {
|
||||
// Open current file view instead of read only
|
||||
if (version.mtime === this.fileInfo.mtime) {
|
||||
OCA.Viewer.open({ fileInfo: this.viewerFileInfo })
|
||||
return
|
||||
}
|
||||
|
||||
// Versions previews are too small for our use case, so we override previewUrl
|
||||
// which makes the viewer render the original file.
|
||||
// We also point to the original filename if the version is the current one.
|
||||
const versions = this.versions.map((version) => ({
|
||||
...version,
|
||||
filename: version.mtime === this.fileInfo.mtime ? path.join('files', getCurrentUser()?.uid ?? '', this.fileInfo.path, this.fileInfo.name) : version.filename,
|
||||
previewUrl: undefined,
|
||||
}))
|
||||
|
||||
OCA.Viewer.open({
|
||||
fileInfo: versions.find((v) => v.source === version.source),
|
||||
enableSidebar: false,
|
||||
})
|
||||
},
|
||||
|
||||
compareVersion({ version }) {
|
||||
const versions = this.versions.map((version) => ({ ...version, previewUrl: undefined }))
|
||||
|
||||
OCA.Viewer.compare(this.viewerFileInfo, versions.find((v) => v.source === version.source))
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.versions-tab__container {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -60,9 +60,6 @@ module.exports = {
|
|||
files_trashbin: {
|
||||
init: path.join(__dirname, 'apps/files_trashbin/src', 'files-init.ts'),
|
||||
},
|
||||
files_versions: {
|
||||
files_versions: path.join(__dirname, 'apps/files_versions/src', 'files_versions_tab.js'),
|
||||
},
|
||||
oauth2: {
|
||||
oauth2: path.join(__dirname, 'apps/oauth2/src', 'main.js'),
|
||||
},
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@ const modules = {
|
|||
sharebymail: {
|
||||
'admin-settings': resolve(import.meta.dirname, 'apps/sharebymail/src', 'settings-admin.ts'),
|
||||
},
|
||||
files_versions: {
|
||||
'sidebar-tab': resolve(import.meta.dirname, 'apps/files_versions/src', 'sidebar_tab.ts'),
|
||||
},
|
||||
}
|
||||
|
||||
// convert modules to modules entries prefied with the app id
|
||||
|
|
|
|||
|
|
@ -26,17 +26,17 @@ export function openVersionsPanel(fileName: string) {
|
|||
|
||||
// Open the versions tab
|
||||
cy.window().then((win) => {
|
||||
win.OCA.Files.Sidebar.setActiveTab('version_vue')
|
||||
win.OCA.Files.Sidebar.setActiveTab('files_versions')
|
||||
win.OCA.Files.Sidebar.open(`/${fileName}`)
|
||||
})
|
||||
|
||||
// Wait for the versions list to be fetched
|
||||
cy.wait('@getVersions')
|
||||
cy.get('#tab-version_vue').should('be.visible', { timeout: 10000 })
|
||||
cy.get('#tab-files_versions').should('be.visible', { timeout: 10000 })
|
||||
}
|
||||
|
||||
export function toggleVersionMenu(index: number) {
|
||||
cy.get('#tab-version_vue [data-files-versions-version]')
|
||||
cy.get('#tab-files_versions [data-files-versions-version]')
|
||||
.eq(index)
|
||||
.find('button')
|
||||
.click()
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ describe('Versions creation', () => {
|
|||
cy.visit('/apps/files')
|
||||
openVersionsPanel(randomFileName)
|
||||
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').should('have.length', 3)
|
||||
cy.get('[data-files-versions-version]').eq(0).contains('Current version')
|
||||
cy.get('[data-files-versions-version]').eq(2).contains('Initial version')
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ describe('Versions expiration', () => {
|
|||
cy.visit('/apps/files')
|
||||
openVersionsPanel(randomFileName)
|
||||
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').should('have.length', 1)
|
||||
cy.get('[data-files-versions-version]').eq(0).contains('Current version')
|
||||
})
|
||||
|
|
@ -45,7 +45,7 @@ describe('Versions expiration', () => {
|
|||
cy.visit('/apps/files')
|
||||
openVersionsPanel(randomFileName)
|
||||
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').should('have.length', 2)
|
||||
cy.get('[data-files-versions-version]').eq(0).contains('Current version')
|
||||
cy.get('[data-files-versions-version]').eq(1).contains('v1')
|
||||
|
|
|
|||
|
|
@ -28,18 +28,18 @@ describe('Versions naming', () => {
|
|||
|
||||
it('Names the versions', () => {
|
||||
nameVersion(2, 'v1')
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').eq(2).contains('v1')
|
||||
cy.get('[data-files-versions-version]').eq(2).contains('Initial version').should('not.exist')
|
||||
})
|
||||
|
||||
nameVersion(1, 'v2')
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').eq(1).contains('v2')
|
||||
})
|
||||
|
||||
nameVersion(0, 'v3')
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').eq(0).contains('v3 (Current version)')
|
||||
})
|
||||
})
|
||||
|
|
@ -53,18 +53,18 @@ describe('Versions naming', () => {
|
|||
|
||||
it('Names the versions', () => {
|
||||
nameVersion(2, 'v1 - shared')
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').eq(2).contains('v1 - shared')
|
||||
cy.get('[data-files-versions-version]').eq(2).contains('Initial version').should('not.exist')
|
||||
})
|
||||
|
||||
nameVersion(1, 'v2 - shared')
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').eq(1).contains('v2 - shared')
|
||||
})
|
||||
|
||||
nameVersion(0, 'v3 - shared')
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').eq(0).contains('v3 - shared (Current version)')
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ describe('Versions restoration', () => {
|
|||
it('Restores initial version', () => {
|
||||
restoreVersion(2)
|
||||
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').should('have.length', 3)
|
||||
cy.get('[data-files-versions-version]').eq(0).contains('Current version')
|
||||
cy.get('[data-files-versions-version]').eq(2).contains('Initial version').should('not.exist')
|
||||
|
|
@ -53,7 +53,7 @@ describe('Versions restoration', () => {
|
|||
|
||||
it('Restores initial version', () => {
|
||||
restoreVersion(2)
|
||||
cy.get('#tab-version_vue').within(() => {
|
||||
cy.get('#tab-files_versions').within(() => {
|
||||
cy.get('[data-files-versions-version]').should('have.length', 3)
|
||||
cy.get('[data-files-versions-version]').eq(0).contains('Current version')
|
||||
cy.get('[data-files-versions-version]').eq(2).contains('Initial version').should('not.exist')
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,6 @@
|
|||
SPDX-License-Identifier: (MIT AND BSD-3-Clause)
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
SPDX-License-Identifier: BSD-3-Clause
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: ISC
|
||||
|
|
@ -8,6 +9,7 @@ SPDX-FileCopyrightText:
|
|||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
|
||||
SPDX-FileCopyrightText: Arnout Kazemier
|
||||
SPDX-FileCopyrightText: Austin Andrews
|
||||
SPDX-FileCopyrightText: Borys Serebrov
|
||||
SPDX-FileCopyrightText: Calvin Metcalf
|
||||
SPDX-FileCopyrightText: Calvin Metcalf <calvin.metcalf@gmail.com>
|
||||
|
|
@ -39,6 +41,7 @@ SPDX-FileCopyrightText: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)
|
|||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
|
||||
SPDX-FileCopyrightText: Raynos <raynos2@gmail.com>
|
||||
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
|
||||
SPDX-FileCopyrightText: Roeland Jago Douma
|
||||
SPDX-FileCopyrightText: Sindre Sorhus
|
||||
SPDX-FileCopyrightText: Varun A P
|
||||
|
|
@ -67,6 +70,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- @floating-ui/utils
|
||||
- version: 0.2.10
|
||||
- license: MIT
|
||||
- @mdi/svg
|
||||
- version: 7.4.47
|
||||
- license: Apache-2.0
|
||||
- @nextcloud/browser-storage
|
||||
- version: 0.4.0
|
||||
- license: GPL-3.0-or-later
|
||||
|
|
@ -379,6 +385,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- vm-browserify
|
||||
- version: 1.1.2
|
||||
- license: MIT
|
||||
- vue-material-design-icons
|
||||
- version: 5.3.1
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 4.6.3
|
||||
- license: MIT
|
||||
1
dist/TrayArrowDown-D26Art6z.chunk.mjs.map
vendored
Normal file
1
dist/TrayArrowDown-D26Art6z.chunk.mjs.map
vendored
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,6 @@
|
|||
SPDX-License-Identifier: (MIT AND BSD-3-Clause)
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
SPDX-License-Identifier: BSD-3-Clause
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: ISC
|
||||
|
|
@ -8,6 +9,7 @@ SPDX-FileCopyrightText:
|
|||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
|
||||
SPDX-FileCopyrightText: Arnout Kazemier
|
||||
SPDX-FileCopyrightText: Austin Andrews
|
||||
SPDX-FileCopyrightText: Borys Serebrov
|
||||
SPDX-FileCopyrightText: Calvin Metcalf
|
||||
SPDX-FileCopyrightText: Calvin Metcalf <calvin.metcalf@gmail.com>
|
||||
|
|
@ -39,6 +41,7 @@ SPDX-FileCopyrightText: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)
|
|||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
|
||||
SPDX-FileCopyrightText: Raynos <raynos2@gmail.com>
|
||||
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
|
||||
SPDX-FileCopyrightText: Roeland Jago Douma
|
||||
SPDX-FileCopyrightText: Sindre Sorhus
|
||||
SPDX-FileCopyrightText: Varun A P
|
||||
|
|
@ -67,6 +70,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- @floating-ui/utils
|
||||
- version: 0.2.10
|
||||
- license: MIT
|
||||
- @mdi/svg
|
||||
- version: 7.4.47
|
||||
- license: Apache-2.0
|
||||
- @nextcloud/browser-storage
|
||||
- version: 0.4.0
|
||||
- license: GPL-3.0-or-later
|
||||
|
|
@ -379,6 +385,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- vm-browserify
|
||||
- version: 1.1.2
|
||||
- license: MIT
|
||||
- vue-material-design-icons
|
||||
- version: 5.3.1
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 4.6.3
|
||||
- license: MIT
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
dist/core-common.js
vendored
4
dist/core-common.js
vendored
File diff suppressed because one or more lines are too long
7
dist/core-common.js.license
vendored
7
dist/core-common.js.license
vendored
|
|
@ -31,7 +31,6 @@ SPDX-FileCopyrightText: Varun A P
|
|||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)
|
||||
SPDX-FileCopyrightText: Thorsten Lünborg
|
||||
SPDX-FileCopyrightText: The Babel Team (https://babel.dev/team)
|
||||
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
|
||||
SPDX-FileCopyrightText: Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)
|
||||
SPDX-FileCopyrightText: Sindre Sorhus
|
||||
|
|
@ -112,9 +111,6 @@ SPDX-FileCopyrightText:
|
|||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @babel/runtime
|
||||
- version: 7.28.4
|
||||
- license: MIT
|
||||
- @ctrl/tinycolor
|
||||
- version: 3.6.1
|
||||
- license: MIT
|
||||
|
|
@ -949,9 +945,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- util
|
||||
- version: 0.12.5
|
||||
- license: MIT
|
||||
- v-tooltip
|
||||
- version: 2.1.3
|
||||
- license: MIT
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
|
|
|
|||
2
dist/core-common.js.map
vendored
2
dist/core-common.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/dashboard-main.js
vendored
4
dist/dashboard-main.js
vendored
File diff suppressed because one or more lines are too long
2
dist/dashboard-main.js.map
vendored
2
dist/dashboard-main.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/dav-settings-admin-caldav.mjs
vendored
2
dist/dav-settings-admin-caldav.mjs
vendored
|
|
@ -1,2 +1,2 @@
|
|||
import{l as i,_ as f,N as g,a as b,c as R,b as E,d as C,t as m,r as p,o as S,w as r,e as n,f as c,g as u,h as l,i as V}from"./_plugin-vue_export-helper-DvKvVMbC.chunk.mjs";const h=i("dav","userSyncCalendarsDocUrl","#"),k={name:"CalDavSettings",components:{NcCheckboxRadioSwitch:b,NcSettingsSection:g},setup(){return{t:m}},data(){return{userSyncCalendarsDocUrl:h,sendInvitations:i("dav","sendInvitations"),generateBirthdayCalendar:i("dav","generateBirthdayCalendar"),sendEventReminders:i("dav","sendEventReminders"),sendEventRemindersToSharedUsers:i("dav","sendEventRemindersToSharedUsers"),sendEventRemindersPush:i("dav","sendEventRemindersPush")}},computed:{hint(){return m("dav","Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.").replace("{calendarappstoreopen}",'<a target="_blank" href="../apps/office/calendar">').replace("{calendardocopen}",`<a target="_blank" href="${h}" rel="noreferrer noopener">`).replace(/\{linkclose\}/g,"</a>")},sendInvitationsHelpText(){return m("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'<a href="../admin#mail_general_settings">').replace("{linkclose}","</a>")},sendEventRemindersHelpText(){return m("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'<a href="../admin#mail_general_settings">').replace("{linkclose}","</a>")}},watch:{generateBirthdayCalendar(d){const e=d?"/apps/dav/enableBirthdayCalendar":"/apps/dav/disableBirthdayCalendar";E.post(C(e))},sendInvitations(d){OCP.AppConfig.setValue("dav","sendInvitations",d?"yes":"no")},sendEventReminders(d){OCP.AppConfig.setValue("dav","sendEventReminders",d?"yes":"no")},sendEventRemindersToSharedUsers(d){OCP.AppConfig.setValue("dav","sendEventRemindersToSharedUsers",d?"yes":"no")},sendEventRemindersPush(d){OCP.AppConfig.setValue("dav","sendEventRemindersPush",d?"yes":"no")}}},T=["innerHTML"],w=["innerHTML"],_=["innerHTML"],U={class:"indented"},P={class:"indented"};function H(d,e,x,s,a,v){const o=p("NcCheckboxRadioSwitch"),y=p("NcSettingsSection");return S(),R(y,{name:s.t("dav","Calendar server"),"doc-url":a.userSyncCalendarsDocUrl},{default:r(()=>[n("p",{class:"settings-hint",innerHTML:v.hint},null,8,T),n("p",null,[c(o,{id:"caldavSendInvitations",modelValue:a.sendInvitations,"onUpdate:modelValue":e[0]||(e[0]=t=>a.sendInvitations=t),type:"switch"},{default:r(()=>[u(l(s.t("dav","Send invitations to attendees")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:v.sendInvitationsHelpText},null,8,w)]),n("p",null,[c(o,{id:"caldavGenerateBirthdayCalendar",modelValue:a.generateBirthdayCalendar,"onUpdate:modelValue":e[1]||(e[1]=t=>a.generateBirthdayCalendar=t),type:"switch",class:"checkbox"},{default:r(()=>[u(l(s.t("dav","Automatically generate a birthday calendar")),1)]),_:1},8,["modelValue"]),n("em",null,l(s.t("dav","Birthday calendars will be generated by a background job.")),1),e[5]||(e[5]=n("br",null,null,-1)),n("em",null,l(s.t("dav","Hence they will not be available immediately after enabling but will show up after some time.")),1)]),n("p",null,[c(o,{id:"caldavSendEventReminders",modelValue:a.sendEventReminders,"onUpdate:modelValue":e[2]||(e[2]=t=>a.sendEventReminders=t),type:"switch"},{default:r(()=>[u(l(s.t("dav","Send notifications for events")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:v.sendEventRemindersHelpText},null,8,_),e[6]||(e[6]=n("br",null,null,-1)),n("em",null,l(s.t("dav","Notifications are sent via background jobs, so these must occur often enough.")),1)]),n("p",U,[c(o,{id:"caldavSendEventRemindersToSharedGroupMembers",modelValue:a.sendEventRemindersToSharedUsers,"onUpdate:modelValue":e[3]||(e[3]=t=>a.sendEventRemindersToSharedUsers=t),type:"switch",disabled:!a.sendEventReminders},{default:r(()=>[u(l(s.t("dav","Send reminder notifications to calendar sharees as well")),1)]),_:1},8,["modelValue","disabled"]),n("em",null,l(s.t("dav","Reminders are always sent to organizers and attendees.")),1)]),n("p",P,[c(o,{id:"caldavSendEventRemindersPush",modelValue:a.sendEventRemindersPush,"onUpdate:modelValue":e[4]||(e[4]=t=>a.sendEventRemindersPush=t),type:"switch",disabled:!a.sendEventReminders},{default:r(()=>[u(l(s.t("dav","Enable notifications for events via push")),1)]),_:1},8,["modelValue","disabled"])])]),_:1},8,["name","doc-url"])}const I=f(k,[["render",H],["__scopeId","data-v-84465bd0"]]),B=V(I);B.mount("#settings-admin-caldav");
|
||||
import{l as i,_ as f,N as g,a as b,c as R,b as E,d as C,t as m,r as p,o as S,w as r,e as n,f as c,g as u,h as l,i as V}from"./_plugin-vue_export-helper-TkuKx9Bs.chunk.mjs";const h=i("dav","userSyncCalendarsDocUrl","#"),k={name:"CalDavSettings",components:{NcCheckboxRadioSwitch:b,NcSettingsSection:g},setup(){return{t:m}},data(){return{userSyncCalendarsDocUrl:h,sendInvitations:i("dav","sendInvitations"),generateBirthdayCalendar:i("dav","generateBirthdayCalendar"),sendEventReminders:i("dav","sendEventReminders"),sendEventRemindersToSharedUsers:i("dav","sendEventRemindersToSharedUsers"),sendEventRemindersPush:i("dav","sendEventRemindersPush")}},computed:{hint(){return m("dav","Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.").replace("{calendarappstoreopen}",'<a target="_blank" href="../apps/office/calendar">').replace("{calendardocopen}",`<a target="_blank" href="${h}" rel="noreferrer noopener">`).replace(/\{linkclose\}/g,"</a>")},sendInvitationsHelpText(){return m("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'<a href="../admin#mail_general_settings">').replace("{linkclose}","</a>")},sendEventRemindersHelpText(){return m("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'<a href="../admin#mail_general_settings">').replace("{linkclose}","</a>")}},watch:{generateBirthdayCalendar(d){const e=d?"/apps/dav/enableBirthdayCalendar":"/apps/dav/disableBirthdayCalendar";E.post(C(e))},sendInvitations(d){OCP.AppConfig.setValue("dav","sendInvitations",d?"yes":"no")},sendEventReminders(d){OCP.AppConfig.setValue("dav","sendEventReminders",d?"yes":"no")},sendEventRemindersToSharedUsers(d){OCP.AppConfig.setValue("dav","sendEventRemindersToSharedUsers",d?"yes":"no")},sendEventRemindersPush(d){OCP.AppConfig.setValue("dav","sendEventRemindersPush",d?"yes":"no")}}},T=["innerHTML"],w=["innerHTML"],_=["innerHTML"],U={class:"indented"},P={class:"indented"};function H(d,e,x,s,a,v){const o=p("NcCheckboxRadioSwitch"),y=p("NcSettingsSection");return S(),R(y,{name:s.t("dav","Calendar server"),"doc-url":a.userSyncCalendarsDocUrl},{default:r(()=>[n("p",{class:"settings-hint",innerHTML:v.hint},null,8,T),n("p",null,[c(o,{id:"caldavSendInvitations",modelValue:a.sendInvitations,"onUpdate:modelValue":e[0]||(e[0]=t=>a.sendInvitations=t),type:"switch"},{default:r(()=>[u(l(s.t("dav","Send invitations to attendees")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:v.sendInvitationsHelpText},null,8,w)]),n("p",null,[c(o,{id:"caldavGenerateBirthdayCalendar",modelValue:a.generateBirthdayCalendar,"onUpdate:modelValue":e[1]||(e[1]=t=>a.generateBirthdayCalendar=t),type:"switch",class:"checkbox"},{default:r(()=>[u(l(s.t("dav","Automatically generate a birthday calendar")),1)]),_:1},8,["modelValue"]),n("em",null,l(s.t("dav","Birthday calendars will be generated by a background job.")),1),e[5]||(e[5]=n("br",null,null,-1)),n("em",null,l(s.t("dav","Hence they will not be available immediately after enabling but will show up after some time.")),1)]),n("p",null,[c(o,{id:"caldavSendEventReminders",modelValue:a.sendEventReminders,"onUpdate:modelValue":e[2]||(e[2]=t=>a.sendEventReminders=t),type:"switch"},{default:r(()=>[u(l(s.t("dav","Send notifications for events")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:v.sendEventRemindersHelpText},null,8,_),e[6]||(e[6]=n("br",null,null,-1)),n("em",null,l(s.t("dav","Notifications are sent via background jobs, so these must occur often enough.")),1)]),n("p",U,[c(o,{id:"caldavSendEventRemindersToSharedGroupMembers",modelValue:a.sendEventRemindersToSharedUsers,"onUpdate:modelValue":e[3]||(e[3]=t=>a.sendEventRemindersToSharedUsers=t),type:"switch",disabled:!a.sendEventReminders},{default:r(()=>[u(l(s.t("dav","Send reminder notifications to calendar sharees as well")),1)]),_:1},8,["modelValue","disabled"]),n("em",null,l(s.t("dav","Reminders are always sent to organizers and attendees.")),1)]),n("p",P,[c(o,{id:"caldavSendEventRemindersPush",modelValue:a.sendEventRemindersPush,"onUpdate:modelValue":e[4]||(e[4]=t=>a.sendEventRemindersPush=t),type:"switch",disabled:!a.sendEventReminders},{default:r(()=>[u(l(s.t("dav","Enable notifications for events via push")),1)]),_:1},8,["modelValue","disabled"])])]),_:1},8,["name","doc-url"])}const I=f(k,[["render",H],["__scopeId","data-v-84465bd0"]]),B=V(I);B.mount("#settings-admin-caldav");
|
||||
//# sourceMappingURL=dav-settings-admin-caldav.mjs.map
|
||||
|
|
|
|||
2
dist/dav-settings-admin-example-content.css
vendored
2
dist/dav-settings-admin-example-content.css
vendored
|
|
@ -1,4 +1,4 @@
|
|||
/* extracted by css-entry-points-plugin */
|
||||
@import './dav-dav-settings-admin-example-content-BvfG00pA.chunk.css';
|
||||
@import './_plugin-vue_export-helper-BE4hS1RR.chunk.css';
|
||||
@import './index-hZPKu-D6-nyVG1sMv.chunk.css';
|
||||
@import './TrayArrowDown-nyVG1sMv.chunk.css';
|
||||
2
dist/dav-settings-admin-example-content.mjs
vendored
2
dist/dav-settings-admin-example-content.mjs
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
dist/dav-settings-personal-availability.css
vendored
2
dist/dav-settings-personal-availability.css
vendored
|
|
@ -1,4 +1,4 @@
|
|||
/* extracted by css-entry-points-plugin */
|
||||
@import './dav-dav-settings-personal-availability-Cj5tXAon.chunk.css';
|
||||
@import './_plugin-vue_export-helper-BE4hS1RR.chunk.css';
|
||||
@import './index-hZPKu-D6-nyVG1sMv.chunk.css';
|
||||
@import './TrayArrowDown-nyVG1sMv.chunk.css';
|
||||
33
dist/dav-settings-personal-availability.mjs
vendored
33
dist/dav-settings-personal-availability.mjs
vendored
File diff suppressed because one or more lines are too long
|
|
@ -6,7 +6,6 @@ SPDX-License-Identifier: MPL-2.0
|
|||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Nick Singleton
|
||||
SPDX-FileCopyrightText: Perry Mitchell <perry@perrymitchell.net>
|
||||
SPDX-FileCopyrightText: Philipp Kewisch
|
||||
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
|
||||
SPDX-FileCopyrightText: uuid developers
|
||||
|
|
@ -36,6 +35,3 @@ This file is generated from multiple sources. Included packages:
|
|||
- vue-material-design-icons
|
||||
- version: 5.3.1
|
||||
- license: MIT
|
||||
- webdav
|
||||
- version: 5.8.0
|
||||
- license: MIT
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -6,7 +6,6 @@ SPDX-License-Identifier: MPL-2.0
|
|||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Nick Singleton
|
||||
SPDX-FileCopyrightText: Perry Mitchell <perry@perrymitchell.net>
|
||||
SPDX-FileCopyrightText: Philipp Kewisch
|
||||
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
|
||||
SPDX-FileCopyrightText: uuid developers
|
||||
|
|
@ -36,6 +35,3 @@ This file is generated from multiple sources. Included packages:
|
|||
- vue-material-design-icons
|
||||
- version: 5.3.1
|
||||
- license: MIT
|
||||
- webdav
|
||||
- version: 5.8.0
|
||||
- license: MIT
|
||||
|
|
|
|||
4
dist/files-sidebar.js
vendored
4
dist/files-sidebar.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-sidebar.js.map
vendored
2
dist/files-sidebar.js.map
vendored
File diff suppressed because one or more lines are too long
1
dist/files_versions-files_versions-sidebar-tab-4BohXFH5.chunk.css
vendored
Normal file
1
dist/files_versions-files_versions-sidebar-tab-4BohXFH5.chunk.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.version[data-v-e3870fc8]{display:flex;flex-direction:row}.version__info[data-v-e3870fc8]{display:flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--color-main-text);font-weight:500;overflow:hidden}.version__info__label[data-v-e3870fc8]{font-weight:700;overflow:hidden;text-overflow:ellipsis;min-width:110px}.version__info__author_name[data-v-e3870fc8],.version__info__date[data-v-e3870fc8]{overflow:hidden;text-overflow:ellipsis}.version__info__subline[data-v-e3870fc8]{color:var(--color-text-maxcontrast)}.version__image[data-v-e3870fc8]{width:3rem;height:3rem;border:1px solid var(--color-border);border-radius:var(--border-radius-large);display:flex;justify-content:center;color:var(--color-main-text)}.version-label-modal__info[data-v-6a69577b]{color:var(--color-text-maxcontrast);margin-block:calc(3 * var(--default-grid-baseline))}.version-label-modal__input[data-v-6a69577b]{margin-block-start:calc(2 * var(--default-grid-baseline))}.vs-container[data-v-52b628a8]{overflow-y:scroll;height:100%}.vs-rows-container[data-v-52b628a8]{box-sizing:border-box;will-change:scroll-position,padding;contain:layout paint style}.versions-tab__container{height:100%}
|
||||
2
dist/files_versions-files_versions.js
vendored
2
dist/files_versions-files_versions.js
vendored
File diff suppressed because one or more lines are too long
881
dist/files_versions-files_versions.js.license
vendored
881
dist/files_versions-files_versions.js.license
vendored
|
|
@ -1,881 +0,0 @@
|
|||
SPDX-License-Identifier: MIT
|
||||
SPDX-License-Identifier: ISC
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: BSD-3-Clause
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-License-Identifier: (MIT AND BSD-3-Clause)
|
||||
SPDX-FileCopyrightText: string_decoder developers
|
||||
SPDX-FileCopyrightText: ripemd160 developers
|
||||
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
|
||||
SPDX-FileCopyrightText: readable-stream developers
|
||||
SPDX-FileCopyrightText: qs developers
|
||||
SPDX-FileCopyrightText: p-queue developers
|
||||
SPDX-FileCopyrightText: omahlama
|
||||
SPDX-FileCopyrightText: jden <jason@denizac.org>
|
||||
SPDX-FileCopyrightText: inline-style-parser developers
|
||||
SPDX-FileCopyrightText: inherits developers
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: defunctzombie
|
||||
SPDX-FileCopyrightText: debounce developers
|
||||
SPDX-FileCopyrightText: date-fns developers
|
||||
SPDX-FileCopyrightText: chenkai
|
||||
SPDX-FileCopyrightText: browserify-sign developers
|
||||
SPDX-FileCopyrightText: browserify-rsa developers
|
||||
SPDX-FileCopyrightText: atomiks
|
||||
SPDX-FileCopyrightText: Varun A P
|
||||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)
|
||||
SPDX-FileCopyrightText: The Babel Team (https://babel.dev/team)
|
||||
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
|
||||
SPDX-FileCopyrightText: Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)
|
||||
SPDX-FileCopyrightText: Sindre Sorhus
|
||||
SPDX-FileCopyrightText: Shuhei Kagawa
|
||||
SPDX-FileCopyrightText: Scott Cooper <scttcper@gmail.com>
|
||||
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
|
||||
SPDX-FileCopyrightText: Roeland Jago Douma
|
||||
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
|
||||
SPDX-FileCopyrightText: Raynos <raynos2@gmail.com>
|
||||
SPDX-FileCopyrightText: Perry Mitchell <perry@perrymitchell.net>
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch)
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorb.de> (http://vorb.de)
|
||||
SPDX-FileCopyrightText: OpenJS Foundation and other contributors
|
||||
SPDX-FileCopyrightText: Olivier Scherrer <pode.fr@gmail.com>
|
||||
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)
|
||||
SPDX-FileCopyrightText: Max <max@nextcloud.com>
|
||||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Mathias Bynens
|
||||
SPDX-FileCopyrightText: Mathias Buus (@mafintosh)
|
||||
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
|
||||
SPDX-FileCopyrightText: Kirill Fomichev <fanatid@ya.ru> (https://github.com/fanatid)
|
||||
SPDX-FileCopyrightText: Julian Gruber
|
||||
SPDX-FileCopyrightText: Joyent
|
||||
SPDX-FileCopyrightText: José F. Romaniello <jfromaniello@gmail.com> (http://joseoncode.com)
|
||||
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
|
||||
SPDX-FileCopyrightText: Jordan Harband <ljharb@gmail.com>
|
||||
SPDX-FileCopyrightText: Jordan Harband
|
||||
SPDX-FileCopyrightText: Jordan Harbamd <ljharb@gmail.com>
|
||||
SPDX-FileCopyrightText: Jonas Schade <derzade@gmail.com>
|
||||
SPDX-FileCopyrightText: John-David Dalton <john.david.dalton@gmail.com>
|
||||
SPDX-FileCopyrightText: John Hiesey
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: James Halliday
|
||||
SPDX-FileCopyrightText: Jacob Clevenger<https://github.com/wheatjs>
|
||||
SPDX-FileCopyrightText: Iskren Ivov Chernev <iskren.chernev@gmail.com> (https://github.com/ichernev)
|
||||
SPDX-FileCopyrightText: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
|
||||
SPDX-FileCopyrightText: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)
|
||||
SPDX-FileCopyrightText: Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com)
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
SPDX-FileCopyrightText: Guillaume Chau
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
SPDX-FileCopyrightText: Fedor Indutny <fedor@indutny.com>
|
||||
SPDX-FileCopyrightText: Fedor Indutny
|
||||
SPDX-FileCopyrightText: Evan You
|
||||
SPDX-FileCopyrightText: Eugene Sharygin <eush77@gmail.com>
|
||||
SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris)
|
||||
SPDX-FileCopyrightText: Eduardo San Martin Morote
|
||||
SPDX-FileCopyrightText: Dylan Piercey <pierceydylan@gmail.com>
|
||||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
SPDX-FileCopyrightText: Dominic Tarr <dominic.tarr@gmail.com> (dominictarr.com)
|
||||
SPDX-FileCopyrightText: David Clark
|
||||
SPDX-FileCopyrightText: Daniel Cousens
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Calvin Metcalf <calvin.metcalf@gmail.com>
|
||||
SPDX-FileCopyrightText: Calvin Metcalf
|
||||
SPDX-FileCopyrightText: Borys Serebrov
|
||||
SPDX-FileCopyrightText: Ben Drucker
|
||||
SPDX-FileCopyrightText: Austin Andrews
|
||||
SPDX-FileCopyrightText: Arnout Kazemier
|
||||
SPDX-FileCopyrightText: Antoni Andre <antoniandre.web@gmail.com>
|
||||
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
|
||||
SPDX-FileCopyrightText: Anthony Fu <anthonyfu117@hotmail.com>
|
||||
SPDX-FileCopyrightText: Andrea Giammarchi
|
||||
SPDX-FileCopyrightText: Amit Gupta (https://solothought.com)
|
||||
SPDX-FileCopyrightText: Amit Gupta (https://amitkumargupta.work/)
|
||||
SPDX-FileCopyrightText: Alkemics
|
||||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
SPDX-FileCopyrightText:
|
||||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @babel/runtime
|
||||
- version: 7.28.4
|
||||
- license: MIT
|
||||
- @ctrl/tinycolor
|
||||
- version: 3.6.1
|
||||
- license: MIT
|
||||
- @floating-ui/core
|
||||
- version: 1.7.3
|
||||
- license: MIT
|
||||
- @floating-ui/dom
|
||||
- version: 1.7.4
|
||||
- license: MIT
|
||||
- @floating-ui/utils
|
||||
- version: 0.2.10
|
||||
- license: MIT
|
||||
- @mdi/svg
|
||||
- version: 7.4.47
|
||||
- license: Apache-2.0
|
||||
- @nextcloud/auth
|
||||
- version: 2.5.3
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/axios
|
||||
- version: 2.5.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/browser-storage
|
||||
- version: 0.5.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/capabilities
|
||||
- version: 1.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @ckpack/vue-color
|
||||
- version: 1.6.0
|
||||
- license: MIT
|
||||
- @nextcloud/browser-storage
|
||||
- version: 0.4.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue
|
||||
- version: 9.0.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/core
|
||||
- version: 13.9.0
|
||||
- license: MIT
|
||||
- @vueuse/shared
|
||||
- version: 13.9.0
|
||||
- license: MIT
|
||||
- eventemitter3
|
||||
- version: 5.0.1
|
||||
- license: MIT
|
||||
- p-queue
|
||||
- version: 9.0.0
|
||||
- license: MIT
|
||||
- rehype-react
|
||||
- version: 8.0.0
|
||||
- license: MIT
|
||||
- splitpanes
|
||||
- version: 4.0.4
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 4.6.3
|
||||
- license: MIT
|
||||
- vue-select
|
||||
- version: 4.0.0-beta.6
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 3.5.22
|
||||
- license: MIT
|
||||
- @nextcloud/dialogs
|
||||
- version: 7.1.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- semver
|
||||
- version: 7.7.2
|
||||
- license: ISC
|
||||
- @nextcloud/event-bus
|
||||
- version: 3.3.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.12.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 3.0.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/l10n
|
||||
- version: 3.4.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/logger
|
||||
- version: 3.0.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/moment
|
||||
- version: 1.3.5
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/paths
|
||||
- version: 2.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/router
|
||||
- version: 3.0.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/sharing
|
||||
- version: 0.3.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/browser-storage
|
||||
- version: 0.4.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue
|
||||
- version: 8.31.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @ungap/structured-clone
|
||||
- version: 1.3.0
|
||||
- license: ISC
|
||||
- @vue/devtools-api
|
||||
- version: 6.6.4
|
||||
- license: MIT
|
||||
- @vue/reactivity
|
||||
- version: 3.5.22
|
||||
- license: MIT
|
||||
- @vue/runtime-core
|
||||
- version: 3.5.22
|
||||
- license: MIT
|
||||
- @vue/runtime-dom
|
||||
- version: 3.5.22
|
||||
- license: MIT
|
||||
- @vue/shared
|
||||
- version: 3.5.22
|
||||
- license: MIT
|
||||
- @vueuse/components
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/core
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/shared
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- bn.js
|
||||
- version: 4.12.2
|
||||
- license: MIT
|
||||
- asn1.js
|
||||
- version: 4.10.1
|
||||
- license: MIT
|
||||
- available-typed-arrays
|
||||
- version: 1.0.7
|
||||
- license: MIT
|
||||
- axios
|
||||
- version: 1.12.2
|
||||
- license: MIT
|
||||
- balanced-match
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
- base-64
|
||||
- version: 1.0.0
|
||||
- license: MIT
|
||||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- blurhash
|
||||
- version: 2.0.5
|
||||
- license: MIT
|
||||
- bn.js
|
||||
- version: 5.2.2
|
||||
- license: MIT
|
||||
- brace-expansion
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- brorand
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- browserify-aes
|
||||
- version: 1.2.0
|
||||
- license: MIT
|
||||
- browserify-cipher
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
- browserify-des
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
- browserify-rsa
|
||||
- version: 4.1.1
|
||||
- license: MIT
|
||||
- browserify-sign
|
||||
- version: 4.2.5
|
||||
- license: ISC
|
||||
- buffer-xor
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- buffer
|
||||
- version: 5.7.1
|
||||
- license: MIT
|
||||
- builtin-status-codes
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- byte-length
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
- call-bind-apply-helpers
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
- call-bind
|
||||
- version: 1.0.8
|
||||
- license: MIT
|
||||
- call-bound
|
||||
- version: 1.0.4
|
||||
- license: MIT
|
||||
- cancelable-promise
|
||||
- version: 4.3.1
|
||||
- license: MIT
|
||||
- charenc
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- cipher-base
|
||||
- version: 1.0.7
|
||||
- license: MIT
|
||||
- comma-separated-tokens
|
||||
- version: 2.0.3
|
||||
- license: MIT
|
||||
- core-util-is
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- bn.js
|
||||
- version: 4.12.2
|
||||
- license: MIT
|
||||
- create-ecdh
|
||||
- version: 4.0.4
|
||||
- license: MIT
|
||||
- create-hash
|
||||
- version: 1.2.0
|
||||
- license: MIT
|
||||
- create-hmac
|
||||
- version: 1.1.7
|
||||
- license: MIT
|
||||
- crypt
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- crypto-browserify
|
||||
- version: 3.12.1
|
||||
- license: MIT
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- date-fns
|
||||
- version: 4.1.0
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 2.2.0
|
||||
- license: MIT
|
||||
- decode-named-character-reference
|
||||
- version: 1.2.0
|
||||
- license: MIT
|
||||
- define-data-property
|
||||
- version: 1.1.4
|
||||
- license: MIT
|
||||
- des.js
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- devlop
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- bn.js
|
||||
- version: 4.12.2
|
||||
- license: MIT
|
||||
- diffie-hellman
|
||||
- version: 5.0.3
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.2.7
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- dunder-proto
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
- bn.js
|
||||
- version: 4.12.2
|
||||
- license: MIT
|
||||
- elliptic
|
||||
- version: 6.6.1
|
||||
- license: MIT
|
||||
- emoji-mart-vue-fast
|
||||
- version: 15.0.5
|
||||
- license: BSD-3-Clause
|
||||
- es-define-property
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
- es-errors
|
||||
- version: 1.3.0
|
||||
- license: MIT
|
||||
- es-object-atoms
|
||||
- version: 1.1.1
|
||||
- license: MIT
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- estree-util-is-identifier-name
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- events
|
||||
- version: 3.3.0
|
||||
- license: MIT
|
||||
- evp_bytestokey
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- extend
|
||||
- version: 3.0.2
|
||||
- license: MIT
|
||||
- floating-vue
|
||||
- version: 1.0.0-beta.19
|
||||
- license: MIT
|
||||
- focus-trap
|
||||
- version: 7.6.5
|
||||
- license: MIT
|
||||
- for-each
|
||||
- version: 0.3.5
|
||||
- license: MIT
|
||||
- function-bind
|
||||
- version: 1.1.2
|
||||
- license: MIT
|
||||
- generator-function
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- get-intrinsic
|
||||
- version: 1.3.0
|
||||
- license: MIT
|
||||
- get-proto
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
- gopd
|
||||
- version: 1.2.0
|
||||
- license: MIT
|
||||
- has-property-descriptors
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
- has-symbols
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- has-tostringtag
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
- hash-base
|
||||
- version: 3.0.5
|
||||
- license: MIT
|
||||
- hash.js
|
||||
- version: 1.1.7
|
||||
- license: MIT
|
||||
- hasown
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- hast-util-is-element
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- hast-util-whitespace
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- property-information
|
||||
- version: 7.1.0
|
||||
- license: MIT
|
||||
- hast-util-to-jsx-runtime
|
||||
- version: 2.3.6
|
||||
- license: MIT
|
||||
- hmac-drbg
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
- hot-patcher
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- https-browserify
|
||||
- version: 1.0.0
|
||||
- license: MIT
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- inherits
|
||||
- version: 2.0.4
|
||||
- license: ISC
|
||||
- is-absolute-url
|
||||
- version: 4.0.1
|
||||
- license: MIT
|
||||
- is-arguments
|
||||
- version: 1.2.0
|
||||
- license: MIT
|
||||
- is-buffer
|
||||
- version: 1.1.6
|
||||
- license: MIT
|
||||
- is-callable
|
||||
- version: 1.2.7
|
||||
- license: MIT
|
||||
- is-generator-function
|
||||
- version: 1.1.2
|
||||
- license: MIT
|
||||
- is-regex
|
||||
- version: 1.2.1
|
||||
- license: MIT
|
||||
- is-typed-array
|
||||
- version: 1.1.15
|
||||
- license: MIT
|
||||
- isarray
|
||||
- version: 1.0.0
|
||||
- license: MIT
|
||||
- jquery
|
||||
- version: 3.7.1
|
||||
- license: MIT
|
||||
- layerr
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- linkifyjs
|
||||
- version: 4.3.2
|
||||
- license: MIT
|
||||
- lodash
|
||||
- version: 4.17.21
|
||||
- license: MIT
|
||||
- material-colors
|
||||
- version: 1.2.6
|
||||
- license: ISC
|
||||
- math-intrinsics
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- md5.js
|
||||
- version: 1.3.5
|
||||
- license: MIT
|
||||
- md5
|
||||
- version: 2.3.0
|
||||
- license: BSD-3-Clause
|
||||
- mdast-squeeze-paragraphs
|
||||
- version: 6.0.0
|
||||
- license: MIT
|
||||
- escape-string-regexp
|
||||
- version: 5.0.0
|
||||
- license: MIT
|
||||
- mdast-util-find-and-replace
|
||||
- version: 3.0.2
|
||||
- license: MIT
|
||||
- mdast-util-from-markdown
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- mdast-util-newline-to-break
|
||||
- version: 2.0.0
|
||||
- license: MIT
|
||||
- mdast-util-to-hast
|
||||
- version: 13.2.0
|
||||
- license: MIT
|
||||
- mdast-util-to-string
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- micromark-core-commonmark
|
||||
- version: 2.0.3
|
||||
- license: MIT
|
||||
- micromark-factory-destination
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-factory-label
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-factory-space
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-factory-title
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-factory-whitespace
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-character
|
||||
- version: 2.1.1
|
||||
- license: MIT
|
||||
- micromark-util-chunked
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-classify-character
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-combine-extensions
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-decode-numeric-character-reference
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- micromark-util-decode-string
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-encode
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-html-tag-name
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-normalize-identifier
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-resolve-all
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-sanitize-uri
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- micromark-util-subtokenize
|
||||
- version: 2.1.0
|
||||
- license: MIT
|
||||
- micromark
|
||||
- version: 4.0.2
|
||||
- license: MIT
|
||||
- bn.js
|
||||
- version: 4.12.2
|
||||
- license: MIT
|
||||
- miller-rabin
|
||||
- version: 4.0.1
|
||||
- license: MIT
|
||||
- minimalistic-assert
|
||||
- version: 1.0.1
|
||||
- license: ISC
|
||||
- minimalistic-crypto-utils
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
- moment
|
||||
- version: 2.30.1
|
||||
- license: MIT
|
||||
- nested-property
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- object-inspect
|
||||
- version: 1.13.4
|
||||
- license: MIT
|
||||
- parse-asn1
|
||||
- version: 5.1.9
|
||||
- license: ISC
|
||||
- path-posix
|
||||
- version: 1.0.0
|
||||
- license: ISC
|
||||
- inherits
|
||||
- version: 2.0.3
|
||||
- license: ISC
|
||||
- util
|
||||
- version: 0.10.4
|
||||
- license: MIT
|
||||
- path
|
||||
- version: 0.12.7
|
||||
- license: MIT
|
||||
- pbkdf2
|
||||
- version: 3.1.5
|
||||
- license: MIT
|
||||
- possible-typed-array-names
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- process-nextick-args
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- license: MIT
|
||||
- bn.js
|
||||
- version: 4.12.2
|
||||
- license: MIT
|
||||
- public-encrypt
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
- punycode
|
||||
- version: 1.4.1
|
||||
- license: MIT
|
||||
- qs
|
||||
- version: 6.14.0
|
||||
- license: BSD-3-Clause
|
||||
- querystringify
|
||||
- version: 2.2.0
|
||||
- license: MIT
|
||||
- randombytes
|
||||
- version: 2.1.0
|
||||
- license: MIT
|
||||
- randomfill
|
||||
- version: 1.0.4
|
||||
- license: MIT
|
||||
- safe-buffer
|
||||
- version: 5.1.2
|
||||
- license: MIT
|
||||
- string_decoder
|
||||
- version: 1.1.1
|
||||
- license: MIT
|
||||
- readable-stream
|
||||
- version: 2.3.8
|
||||
- license: MIT
|
||||
- rehype-external-links
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- remark-breaks
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- remark-parse
|
||||
- version: 11.0.0
|
||||
- license: MIT
|
||||
- remark-rehype
|
||||
- version: 11.1.2
|
||||
- license: MIT
|
||||
- remark-unlink-protocols
|
||||
- version: 1.0.0
|
||||
- license: MIT
|
||||
- requires-port
|
||||
- version: 1.0.0
|
||||
- license: MIT
|
||||
- hash-base
|
||||
- version: 3.1.2
|
||||
- license: MIT
|
||||
- ripemd160
|
||||
- version: 2.0.3
|
||||
- license: MIT
|
||||
- safe-buffer
|
||||
- version: 5.2.1
|
||||
- license: MIT
|
||||
- safe-regex-test
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- set-function-length
|
||||
- version: 1.2.2
|
||||
- license: MIT
|
||||
- sha.js
|
||||
- version: 2.4.12
|
||||
- license: (MIT AND BSD-3-Clause)
|
||||
- side-channel-list
|
||||
- version: 1.0.0
|
||||
- license: MIT
|
||||
- side-channel-map
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
- side-channel-weakmap
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
- side-channel
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- space-separated-tokens
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- readable-stream
|
||||
- version: 3.6.2
|
||||
- license: MIT
|
||||
- stream-browserify
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- readable-stream
|
||||
- version: 3.6.2
|
||||
- license: MIT
|
||||
- stream-http
|
||||
- version: 3.2.0
|
||||
- license: MIT
|
||||
- string_decoder
|
||||
- version: 1.3.0
|
||||
- license: MIT
|
||||
- striptags
|
||||
- version: 3.2.0
|
||||
- license: MIT
|
||||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- inline-style-parser
|
||||
- version: 0.2.4
|
||||
- license: MIT
|
||||
- style-to-object
|
||||
- version: 1.0.11
|
||||
- license: MIT
|
||||
- style-to-js
|
||||
- version: 1.1.18
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.2.0
|
||||
- license: MIT
|
||||
- isarray
|
||||
- version: 2.0.5
|
||||
- license: MIT
|
||||
- to-buffer
|
||||
- version: 1.2.2
|
||||
- license: MIT
|
||||
- toastify-js
|
||||
- version: 1.12.0
|
||||
- license: MIT
|
||||
- tributejs
|
||||
- version: 5.1.3
|
||||
- license: MIT
|
||||
- trim-lines
|
||||
- version: 3.0.1
|
||||
- license: MIT
|
||||
- trough
|
||||
- version: 2.2.0
|
||||
- license: MIT
|
||||
- typed-array-buffer
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- typescript-event-target
|
||||
- version: 1.1.1
|
||||
- license: MIT
|
||||
- unified
|
||||
- version: 11.0.5
|
||||
- license: MIT
|
||||
- unist-builder
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- unist-util-is
|
||||
- version: 6.0.0
|
||||
- license: MIT
|
||||
- unist-util-position
|
||||
- version: 5.0.0
|
||||
- license: MIT
|
||||
- unist-util-stringify-position
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- unist-util-visit-parents
|
||||
- version: 6.0.1
|
||||
- license: MIT
|
||||
- unist-util-visit
|
||||
- version: 5.0.0
|
||||
- license: MIT
|
||||
- url-join
|
||||
- version: 5.0.0
|
||||
- license: MIT
|
||||
- url-parse
|
||||
- version: 1.5.10
|
||||
- license: MIT
|
||||
- url
|
||||
- version: 0.11.4
|
||||
- license: MIT
|
||||
- util-deprecate
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
- util
|
||||
- version: 0.12.5
|
||||
- license: MIT
|
||||
- v-tooltip
|
||||
- version: 2.1.3
|
||||
- license: MIT
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
- vfile
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- vm-browserify
|
||||
- version: 1.1.2
|
||||
- license: MIT
|
||||
- vue-demi
|
||||
- version: 0.14.10
|
||||
- license: MIT
|
||||
- vue-loader
|
||||
- version: 15.11.1
|
||||
- license: MIT
|
||||
- vue-material-design-icons
|
||||
- version: 5.3.1
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 2.7.16
|
||||
- license: MIT
|
||||
- fast-xml-parser
|
||||
- version: 4.5.3
|
||||
- license: MIT
|
||||
- minimatch
|
||||
- version: 9.0.5
|
||||
- license: ISC
|
||||
- strnum
|
||||
- version: 1.1.2
|
||||
- license: MIT
|
||||
- webdav
|
||||
- version: 5.8.0
|
||||
- license: MIT
|
||||
- webpack
|
||||
- version: 5.102.0
|
||||
- license: MIT
|
||||
- which-typed-array
|
||||
- version: 1.1.19
|
||||
- license: MIT
|
||||
- xtend
|
||||
- version: 4.0.2
|
||||
- license: MIT
|
||||
- nextcloud
|
||||
- version: 1.0.0
|
||||
- license: AGPL-3.0-or-later
|
||||
1
dist/files_versions-files_versions.js.map
vendored
1
dist/files_versions-files_versions.js.map
vendored
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
files_versions-files_versions.js.license
|
||||
4
dist/files_versions-sidebar-tab.css
vendored
Normal file
4
dist/files_versions-sidebar-tab.css
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
/* extracted by css-entry-points-plugin */
|
||||
@import './files_versions-files_versions-sidebar-tab-4BohXFH5.chunk.css';
|
||||
@import './_plugin-vue_export-helper-BE4hS1RR.chunk.css';
|
||||
@import './TrayArrowDown-nyVG1sMv.chunk.css';
|
||||
397
dist/files_versions-sidebar-tab.mjs
vendored
Normal file
397
dist/files_versions-sidebar-tab.mjs
vendored
Normal file
File diff suppressed because one or more lines are too long
68
dist/files_versions-sidebar-tab.mjs.license
vendored
Normal file
68
dist/files_versions-sidebar-tab.mjs.license
vendored
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: MIT
|
||||
SPDX-FileCopyrightText: Alkemics
|
||||
SPDX-FileCopyrightText: Andris Reinman
|
||||
SPDX-FileCopyrightText: Austin Andrews
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Denis Pushkarev
|
||||
SPDX-FileCopyrightText: Iskren Ivov Chernev <iskren.chernev@gmail.com> (https://github.com/ichernev)
|
||||
SPDX-FileCopyrightText: James Halliday
|
||||
SPDX-FileCopyrightText: John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
|
||||
SPDX-FileCopyrightText: string_decoder developers
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @mdi/svg
|
||||
- version: 7.4.47
|
||||
- license: Apache-2.0
|
||||
- @nextcloud/files
|
||||
- version: 3.12.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/l10n
|
||||
- version: 1.6.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/moment
|
||||
- version: 1.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/paths
|
||||
- version: 2.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/sharing
|
||||
- version: 0.2.5
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue
|
||||
- version: 9.0.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- cancelable-promise
|
||||
- version: 4.3.1
|
||||
- license: MIT
|
||||
- core-js
|
||||
- version: 3.46.0
|
||||
- license: MIT
|
||||
- lodash.get
|
||||
- version: 4.4.2
|
||||
- license: MIT
|
||||
- moment
|
||||
- version: 2.30.1
|
||||
- license: MIT
|
||||
- nextcloud-ui
|
||||
- version: 1.0.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- node-gettext
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- path-browserify
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
- string_decoder
|
||||
- version: 1.1.1
|
||||
- license: MIT
|
||||
- vue-material-design-icons
|
||||
- version: 5.3.1
|
||||
- license: MIT
|
||||
1
dist/files_versions-sidebar-tab.mjs.map
vendored
Normal file
1
dist/files_versions-sidebar-tab.mjs.map
vendored
Normal file
File diff suppressed because one or more lines are too long
68
dist/files_versions-sidebar-tab.mjs.map.license
vendored
Normal file
68
dist/files_versions-sidebar-tab.mjs.map.license
vendored
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: MIT
|
||||
SPDX-FileCopyrightText: Alkemics
|
||||
SPDX-FileCopyrightText: Andris Reinman
|
||||
SPDX-FileCopyrightText: Austin Andrews
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Denis Pushkarev
|
||||
SPDX-FileCopyrightText: Iskren Ivov Chernev <iskren.chernev@gmail.com> (https://github.com/ichernev)
|
||||
SPDX-FileCopyrightText: James Halliday
|
||||
SPDX-FileCopyrightText: John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
|
||||
SPDX-FileCopyrightText: string_decoder developers
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @mdi/svg
|
||||
- version: 7.4.47
|
||||
- license: Apache-2.0
|
||||
- @nextcloud/files
|
||||
- version: 3.12.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/l10n
|
||||
- version: 1.6.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/moment
|
||||
- version: 1.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/paths
|
||||
- version: 2.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/sharing
|
||||
- version: 0.2.5
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue
|
||||
- version: 9.0.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- cancelable-promise
|
||||
- version: 4.3.1
|
||||
- license: MIT
|
||||
- core-js
|
||||
- version: 3.46.0
|
||||
- license: MIT
|
||||
- lodash.get
|
||||
- version: 4.4.2
|
||||
- license: MIT
|
||||
- moment
|
||||
- version: 2.30.1
|
||||
- license: MIT
|
||||
- nextcloud-ui
|
||||
- version: 1.0.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- node-gettext
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- path-browserify
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
- string_decoder
|
||||
- version: 1.1.1
|
||||
- license: MIT
|
||||
- vue-material-design-icons
|
||||
- version: 5.3.1
|
||||
- license: MIT
|
||||
11
dist/index-CfphtJqj.chunk.mjs
vendored
Normal file
11
dist/index-CfphtJqj.chunk.mjs
vendored
Normal file
File diff suppressed because one or more lines are too long
11
dist/index-CfphtJqj.chunk.mjs.license
vendored
Normal file
11
dist/index-CfphtJqj.chunk.mjs.license
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
SPDX-License-Identifier: MIT
|
||||
SPDX-FileCopyrightText: Perry Mitchell <perry@perrymitchell.net>
|
||||
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- vue-material-design-icons
|
||||
- version: 5.3.1
|
||||
- license: MIT
|
||||
- webdav
|
||||
- version: 5.8.0
|
||||
- license: MIT
|
||||
1
dist/index-CfphtJqj.chunk.mjs.map
vendored
Normal file
1
dist/index-CfphtJqj.chunk.mjs.map
vendored
Normal file
File diff suppressed because one or more lines are too long
11
dist/index-CfphtJqj.chunk.mjs.map.license
vendored
Normal file
11
dist/index-CfphtJqj.chunk.mjs.map.license
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
SPDX-License-Identifier: MIT
|
||||
SPDX-FileCopyrightText: Perry Mitchell <perry@perrymitchell.net>
|
||||
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- vue-material-design-icons
|
||||
- version: 5.3.1
|
||||
- license: MIT
|
||||
- webdav
|
||||
- version: 5.8.0
|
||||
- license: MIT
|
||||
1
dist/index-hZPKu-D6-DGE8lsH0.chunk.mjs.map
vendored
1
dist/index-hZPKu-D6-DGE8lsH0.chunk.mjs.map
vendored
File diff suppressed because one or more lines are too long
2
dist/logger-Cbb8pkmX.chunk.mjs
vendored
2
dist/logger-Cbb8pkmX.chunk.mjs
vendored
|
|
@ -1,2 +0,0 @@
|
|||
import{g as t}from"./index-hZPKu-D6-DGE8lsH0.chunk.mjs";const o=t().setApp("dav").detectUser().build();export{o as l};
|
||||
//# sourceMappingURL=logger-Cbb8pkmX.chunk.mjs.map
|
||||
2
dist/logger-Zb8_gTh1.chunk.mjs
vendored
Normal file
2
dist/logger-Zb8_gTh1.chunk.mjs
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
import{g as t}from"./TrayArrowDown-D26Art6z.chunk.mjs";const o=t().setApp("dav").detectUser().build();export{o as l};
|
||||
//# sourceMappingURL=logger-Zb8_gTh1.chunk.mjs.map
|
||||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"logger-Cbb8pkmX.chunk.mjs","sources":["../build/frontend/apps/dav/src/service/logger.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder()\n\t.setApp('dav')\n\t.detectUser()\n\t.build()\n"],"names":["logger","getLoggerBuilder"],"mappings":"wDAOO,MAAMA,EAASC,IACpB,OAAO,KAAK,EACZ,WAAA,EACA,MAAA"}
|
||||
{"version":3,"file":"logger-Zb8_gTh1.chunk.mjs","sources":["../build/frontend/apps/dav/src/service/logger.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder()\n\t.setApp('dav')\n\t.detectUser()\n\t.build()\n"],"names":["logger","getLoggerBuilder"],"mappings":"uDAOO,MAAMA,EAASC,IACpB,OAAO,KAAK,EACZ,WAAA,EACA,MAAA"}
|
||||
4
dist/settings-users-3239.js
vendored
4
dist/settings-users-3239.js
vendored
File diff suppressed because one or more lines are too long
2
dist/settings-users-3239.js.map
vendored
2
dist/settings-users-3239.js.map
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -25,7 +25,6 @@ SPDX-FileCopyrightText: Varun A P
|
|||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)
|
||||
SPDX-FileCopyrightText: Thorsten Lünborg
|
||||
SPDX-FileCopyrightText: The Babel Team (https://babel.dev/team)
|
||||
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
|
||||
SPDX-FileCopyrightText: Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)
|
||||
SPDX-FileCopyrightText: Sindre Sorhus
|
||||
|
|
@ -54,7 +53,6 @@ SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
|||
SPDX-FileCopyrightText: James Halliday
|
||||
SPDX-FileCopyrightText: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
|
||||
SPDX-FileCopyrightText: Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com)
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
SPDX-FileCopyrightText: Guillaume Chau
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
|
|
@ -83,9 +81,6 @@ SPDX-FileCopyrightText:
|
|||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @babel/runtime
|
||||
- version: 7.28.4
|
||||
- license: MIT
|
||||
- @ctrl/tinycolor
|
||||
- version: 3.6.1
|
||||
- license: MIT
|
||||
|
|
@ -701,9 +696,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- util-deprecate
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
- v-tooltip
|
||||
- version: 2.1.3
|
||||
- license: MIT
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -24,7 +24,6 @@ SPDX-FileCopyrightText: atomiks
|
|||
SPDX-FileCopyrightText: Varun A P
|
||||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)
|
||||
SPDX-FileCopyrightText: The Babel Team (https://babel.dev/team)
|
||||
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
|
||||
SPDX-FileCopyrightText: Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)
|
||||
SPDX-FileCopyrightText: Sindre Sorhus
|
||||
|
|
@ -81,9 +80,6 @@ SPDX-FileCopyrightText:
|
|||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @babel/runtime
|
||||
- version: 7.28.4
|
||||
- license: MIT
|
||||
- @chenfengyuan/vue-qrcode
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
|
|
@ -690,9 +686,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- util-deprecate
|
||||
- version: 1.0.2
|
||||
- license: MIT
|
||||
- v-tooltip
|
||||
- version: 2.1.3
|
||||
- license: MIT
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
2
dist/sharebymail-admin-settings.css
vendored
2
dist/sharebymail-admin-settings.css
vendored
|
|
@ -1,3 +1,3 @@
|
|||
/* extracted by css-entry-points-plugin */
|
||||
@import './_plugin-vue_export-helper-BE4hS1RR.chunk.css';
|
||||
@import './index-hZPKu-D6-nyVG1sMv.chunk.css';
|
||||
@import './TrayArrowDown-nyVG1sMv.chunk.css';
|
||||
2
dist/sharebymail-admin-settings.mjs
vendored
2
dist/sharebymail-admin-settings.mjs
vendored
File diff suppressed because one or more lines are too long
2
dist/sharebymail-admin-settings.mjs.map
vendored
2
dist/sharebymail-admin-settings.mjs.map
vendored
File diff suppressed because one or more lines are too long
4
dist/user_ldap-main.js
vendored
4
dist/user_ldap-main.js
vendored
File diff suppressed because one or more lines are too long
2
dist/user_ldap-main.js.map
vendored
2
dist/user_ldap-main.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/workflowengine-workflowengine.js
vendored
4
dist/workflowengine-workflowengine.js
vendored
File diff suppressed because one or more lines are too long
2
dist/workflowengine-workflowengine.js.map
vendored
2
dist/workflowengine-workflowengine.js.map
vendored
File diff suppressed because one or more lines are too long
46
package-lock.json
generated
46
package-lock.json
generated
|
|
@ -14,6 +14,7 @@
|
|||
"@nextcloud/axios": "^2.5.2",
|
||||
"@nextcloud/calendar-availability-vue": "^3.0.0",
|
||||
"@nextcloud/dialogs": "^7.1.0",
|
||||
"@nextcloud/moment": "^1.2.1",
|
||||
"@nextcloud/password-confirmation": "^6.0.1",
|
||||
"@nextcloud/paths": "^2.2.1",
|
||||
"@nextcloud/vue": "^9.0.1",
|
||||
|
|
@ -2385,6 +2386,29 @@
|
|||
"npm": "^10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@nextcloud/moment": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@nextcloud/moment/-/moment-1.2.1.tgz",
|
||||
"integrity": "sha512-v/yfrZ4Jo8YM1v0DLXKjRLwKOhzE4Y6DcgyZAM1vJ5jOMvkHpICuTDJRw8oOtrr/1H6FqI6EMZcYogeGD+rwSA==",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@nextcloud/l10n": "^1.4.1",
|
||||
"core-js": "^3.21.1",
|
||||
"jed": "^1.1.1",
|
||||
"moment": "^2.29.2",
|
||||
"node-gettext": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@nextcloud/moment/node_modules/@nextcloud/l10n": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@nextcloud/l10n/-/l10n-1.6.0.tgz",
|
||||
"integrity": "sha512-aKGlgrwN9OiafN791sYus0shfwNeU3PlrH6Oi9ISma6iJSvN6a8aJM8WGKCJ9pqBaTR5PrDuckuM/WnybBWb6A==",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"core-js": "^3.6.4",
|
||||
"node-gettext": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@nextcloud/password-confirmation": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@nextcloud/password-confirmation/-/password-confirmation-6.0.1.tgz",
|
||||
|
|
@ -10215,6 +10239,12 @@
|
|||
"@pkgjs/parseargs": "^0.11.0"
|
||||
}
|
||||
},
|
||||
"node_modules/jed": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz",
|
||||
"integrity": "sha512-z35ZSEcXHxLW4yumw0dF6L464NT36vmx3wxJw8MDpraBcWuNVgUPZgPJKcu1HekNgwlMFNqol7i/IpSbjhqwqA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/jju": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
|
||||
|
|
@ -10977,6 +11007,13 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash.get": {
|
||||
"version": "4.4.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
|
||||
"integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
|
||||
"deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash.merge": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
||||
|
|
@ -12128,7 +12165,6 @@
|
|||
"version": "2.30.1",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
|
||||
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
|
|
@ -12241,6 +12277,14 @@
|
|||
"url": "https://opencollective.com/node-fetch"
|
||||
}
|
||||
},
|
||||
"node_modules/node-gettext": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/node-gettext/-/node-gettext-3.0.0.tgz",
|
||||
"integrity": "sha512-/VRYibXmVoN6tnSAY2JWhNRhWYJ8Cd844jrZU/DwLVoI4vBI6ceYbd8i42sYZ9uOgDH3S7vslIKOWV/ZrT2YBA==",
|
||||
"dependencies": {
|
||||
"lodash.get": "^4.4.2"
|
||||
}
|
||||
},
|
||||
"node_modules/node-releases": {
|
||||
"version": "2.0.26",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz",
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@
|
|||
"@nextcloud/axios": "^2.5.2",
|
||||
"@nextcloud/calendar-availability-vue": "^3.0.0",
|
||||
"@nextcloud/dialogs": "^7.1.0",
|
||||
"@nextcloud/moment": "^1.2.1",
|
||||
"@nextcloud/password-confirmation": "^6.0.1",
|
||||
"@nextcloud/paths": "^2.2.1",
|
||||
"@nextcloud/vue": "^9.0.1",
|
||||
|
|
|
|||
Loading…
Reference in a new issue