Browse Source

enhancement: put password protect & allow download to more options

pull/2552/head
Wing-Kam Wong 2 years ago
parent
commit
765d5ec0f0
  1. 67
      packages/nc-gui/components/project/spreadsheet/components/SpreadsheetNavDrawer.vue

67
packages/nc-gui/components/project/spreadsheet/components/SpreadsheetNavDrawer.vue

@ -388,23 +388,23 @@
</v-icon> </v-icon>
</div> </div>
<v-switch <v-expansion-panels v-model="advanceOptionsPanel" class="mx-auto" flat>
<v-expansion-panel>
<v-expansion-panel-header hide-actions>
<v-spacer />
<span class="grey--text caption">More Options <v-icon color="grey" small>
mdi-chevron-{{ advanceOptionsPanel === 0 ? 'up' : 'down' }}
</v-icon></span>
</v-expansion-panel-header>
<v-expansion-panel-content>
<v-checkbox
v-model="passwordProtect" v-model="passwordProtect"
class="caption"
:label="$t('msg.info.beforeEnablePwd')"
hide-details
dense dense
@change="onPasswordProtectChange" @change="onPasswordProtectChange"
> />
<template #label>
<!-- Restrict access with a password -->
<span v-show="!passwordProtect" class="caption">
{{ $t("msg.info.beforeEnablePwd") }}
</span>
<!-- Access is password restricted -->
<span v-show="passwordProtect" class="caption">
{{ $t("msg.info.afterEnablePwd") }}
</span>
</template>
</v-switch>
<div <div
v-if="passwordProtect" v-if="passwordProtect"
class="d-flex flex-column align-center justify-center" class="d-flex flex-column align-center justify-center"
@ -441,6 +441,18 @@
{{ $t("placeholder.password.save") }} {{ $t("placeholder.password.save") }}
</v-btn> </v-btn>
</div> </div>
<v-checkbox
v-if="selectedView && selectedView.type === viewTypes.GRID"
v-model="allowDownload"
class="caption"
label="Allow Download"
hide-details
dense
@change="onAllowDownloadChange"
/>
</v-expansion-panel-content>
</v-expansion-panel>
</v-expansion-panels>
</v-container> </v-container>
</v-card> </v-card>
</v-dialog> </v-dialog>
@ -497,6 +509,7 @@ export default {
queryParams: Object queryParams: Object
}, },
data: () => ({ data: () => ({
advanceOptionsPanel: false,
webhookSliderModal: false, webhookSliderModal: false,
codeSnippetModal: false, codeSnippetModal: false,
drag: false, drag: false,
@ -512,6 +525,7 @@ export default {
searchQueryVal: '', searchQueryVal: '',
showShareLinkPassword: false, showShareLinkPassword: false,
passwordProtect: false, passwordProtect: false,
allowDownload: true,
sharedViewPassword: '', sharedViewPassword: '',
overAdvShieldIcon: false, overAdvShieldIcon: false,
overShieldIcon: false, overShieldIcon: false,
@ -525,7 +539,7 @@ export default {
[ViewTypes.GRID]: 'grid', [ViewTypes.GRID]: 'grid',
[ViewTypes.FORM]: 'form', [ViewTypes.FORM]: 'form',
[ViewTypes.GALLERY]: 'gallery' [ViewTypes.GALLERY]: 'gallery'
} },
}), }),
computed: { computed: {
isSharedBase() { isSharedBase() {
@ -710,6 +724,9 @@ export default {
this.saveShareLinkPassword() this.saveShareLinkPassword()
} }
}, },
onAllowDownloadChange() {
this.saveAllowDownload()
},
async saveShareLinkPassword() { async saveShareLinkPassword() {
try { try {
await this.$api.dbViewShare.update(this.shareLink.id, { await this.$api.dbViewShare.update(this.shareLink.id, {
@ -733,6 +750,23 @@ export default {
this.$e('a:view:share:enable-pwd') this.$e('a:view:share:enable-pwd')
}, },
async saveAllowDownload() {
try {
await this.$api.dbViewShare.update(this.shareLink.id, {
download: this.allowDownload
})
this.$toast.success('Successfully updated').goAway(3000)
} catch (e) {
this.$toast
.error(await this._extractSdkResponseErrorMsg(e))
.goAway(3000)
}
if (this.allowDownload) {
this.$e('a:view:share:enable-download')
} else {
this.$e('a:view:share:disable-download')
}
},
async loadViews() { async loadViews() {
// this.viewsList = await this.sqlOp( // this.viewsList = await this.sqlOp(
// { // {
@ -1012,4 +1046,7 @@ export default {
opacity: 0.5; opacity: 0.5;
background: grey; background: grey;
} }
.mx-auto .v-expansion-panel{
background: var(--v-backgroundColor-base)
}
</style> </style>

Loading…
Cancel
Save