mirror of
https://github.com/nextcloud/server.git
synced 2026-06-11 01:30:50 -04:00
Updates to sharing flow
- Show enforced expiry date for new shares. - Improve quick share dropdown visibility in dark mode. - Prevent expiry date from showing expire for incoming shares. by updating the check for `share.passwordExpirationTime` to equally check for `undefined`. - Move "Download permission/attribute" from custom setting (as it is just another advanced setting and not an actual permission). - Show correct text for upload/editing when "allow public uploads" is enabled or disabled by admin. Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
This commit is contained in:
parent
5ddffcb7b4
commit
a092bae720
98 changed files with 179 additions and 167 deletions
|
|
@ -238,6 +238,7 @@ export default {
|
|||
background-color: var(--color-main-background);
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
||||
border: 1px solid var(--color-border);
|
||||
padding: 4px 0;
|
||||
z-index: 1;
|
||||
|
||||
|
|
@ -256,11 +257,11 @@ export default {
|
|||
text-align: left;
|
||||
|
||||
&:hover {
|
||||
background-color: #f2f2f2;
|
||||
background-color: var(--color-background-dark);
|
||||
}
|
||||
|
||||
&.selected {
|
||||
background-color: #f0f0f0;
|
||||
background-color: var(--color-background-dark);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,13 @@
|
|||
type="radio"
|
||||
button-variant-grouped="vertical"
|
||||
@update:checked="toggleCustomPermissions">
|
||||
{{ t('files_sharing', 'Allow upload and editing') }}
|
||||
<template v-if="allowsFileDrop">
|
||||
{{ t('files_sharing', 'Allow upload and editing') }}
|
||||
</template>
|
||||
<template v-else>
|
||||
{{ t('files_sharing', 'Allow editing') }}
|
||||
</template>
|
||||
|
||||
<template #icon>
|
||||
<EditIcon :size="20" />
|
||||
</template>
|
||||
|
|
@ -132,6 +138,9 @@
|
|||
@update:checked="onPasswordProtectedByTalkChange">
|
||||
{{ t('file_sharing', 'Video verification') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
<NcCheckboxRadioSwitch v-if="!isPublicShare" :disabled="!canSetDownload" :checked.sync="canDownload">
|
||||
{{ t('file_sharing', 'Allow download') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
<NcCheckboxRadioSwitch :checked.sync="writeNoteToRecipientIsChecked">
|
||||
{{ t('file_sharing', 'Note to recipient') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
|
@ -145,7 +154,8 @@
|
|||
{{ t('file_sharing', 'Custom permissions') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
<section v-if="setCustomPermissions" class="custom-permissions-group">
|
||||
<NcCheckboxRadioSwitch :disabled="!allowsFileDrop && share.type === SHARE_TYPES.SHARE_TYPE_LINK" :checked.sync="hasRead">
|
||||
<NcCheckboxRadioSwitch :disabled="!allowsFileDrop && share.type === SHARE_TYPES.SHARE_TYPE_LINK"
|
||||
:checked.sync="hasRead">
|
||||
{{ t('file_sharing', 'Read') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
<NcCheckboxRadioSwitch v-if="isFolder" :disabled="!canSetCreate" :checked.sync="canCreate">
|
||||
|
|
@ -154,12 +164,11 @@
|
|||
<NcCheckboxRadioSwitch :disabled="!canSetEdit" :checked.sync="canEdit">
|
||||
{{ t('file_sharing', 'Update') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
<NcCheckboxRadioSwitch v-if="config.isResharingAllowed && share.type !== SHARE_TYPES.SHARE_TYPE_LINK" :disabled="!canSetReshare" :checked.sync="canReshare">
|
||||
<NcCheckboxRadioSwitch v-if="config.isResharingAllowed && share.type !== SHARE_TYPES.SHARE_TYPE_LINK"
|
||||
:disabled="!canSetReshare"
|
||||
:checked.sync="canReshare">
|
||||
{{ t('file_sharing', 'Share') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
<NcCheckboxRadioSwitch v-if="!isPublicShare" :disabled="!canSetDownload" :checked.sync="canDownload">
|
||||
{{ t('file_sharing', 'Download') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
<NcCheckboxRadioSwitch :disabled="!canSetDelete" :checked.sync="canDelete">
|
||||
{{ t('file_sharing', 'Delete') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
|
@ -542,7 +551,7 @@ export default {
|
|||
return this.share.newPassword !== undefined
|
||||
},
|
||||
passwordExpirationTime() {
|
||||
if (this.share.passwordExpirationTime === null) {
|
||||
if (!this.isValidShareAttribute(this.share.passwordExpirationTime)) {
|
||||
return null
|
||||
}
|
||||
|
||||
|
|
@ -629,9 +638,6 @@ export default {
|
|||
if (hasPermissions(this.share.permissions, ATOMIC_PERMISSIONS.SHARE)) {
|
||||
perms.push('share')
|
||||
}
|
||||
if (this.share.hasDownloadPermission) {
|
||||
perms.push('download')
|
||||
}
|
||||
const capitalizeFirstAndJoin = array => array.map((item, index) => index === 0 ? item[0].toUpperCase() + item.substring(1) : item).join(', ')
|
||||
|
||||
return capitalizeFirstAndJoin(perms)
|
||||
|
|
@ -676,7 +682,7 @@ export default {
|
|||
}
|
||||
},
|
||||
expandCustomPermissions() {
|
||||
if (!this.advancedSectionAccordionExpanded) {
|
||||
if (!this.advancedSectionAccordionExpanded) {
|
||||
this.advancedSectionAccordionExpanded = true
|
||||
}
|
||||
this.toggleCustomPermissions()
|
||||
|
|
@ -687,34 +693,24 @@ export default {
|
|||
this.setCustomPermissions = isCustomPermissions
|
||||
},
|
||||
async initializeAttributes() {
|
||||
let hasAdvancedAttributes = false
|
||||
|
||||
if (this.isNewShare) {
|
||||
if (this.isPasswordEnforced && this.isPublicShare) {
|
||||
this.share.newPassword = await GeneratePassword()
|
||||
this.advancedSectionAccordionExpanded = true
|
||||
}
|
||||
if (this.hasExpirationDate) {
|
||||
this.share.expireDate = this.defaultExpiryDate
|
||||
this.advancedSectionAccordionExpanded = true
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if (this.isValidShareAttribute(this.share.note)) {
|
||||
this.writeNoteToRecipientIsChecked = true
|
||||
hasAdvancedAttributes = true
|
||||
}
|
||||
|
||||
if (this.isValidShareAttribute(this.share.password)) {
|
||||
hasAdvancedAttributes = true
|
||||
}
|
||||
|
||||
if (this.isValidShareAttribute(this.share.expireDate)) {
|
||||
hasAdvancedAttributes = true
|
||||
}
|
||||
|
||||
if (this.isValidShareAttribute(this.share.label)) {
|
||||
hasAdvancedAttributes = true
|
||||
}
|
||||
|
||||
if (hasAdvancedAttributes) {
|
||||
if (
|
||||
this.isValidShareAttribute(this.share.password)
|
||||
|| this.isValidShareAttribute(this.share.expireDate)
|
||||
|| this.isValidShareAttribute(this.share.label)
|
||||
) {
|
||||
this.advancedSectionAccordionExpanded = true
|
||||
}
|
||||
|
||||
|
|
@ -1031,6 +1027,7 @@ export default {
|
|||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));
|
||||
|
||||
.button-group {
|
||||
display: flex;
|
||||
|
|
|
|||
2
dist/3609-3609.js
vendored
Normal file
2
dist/3609-3609.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/3609-3609.js.map
vendored
Normal file
1
dist/3609-3609.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
3
dist/485-485.js
vendored
3
dist/485-485.js
vendored
File diff suppressed because one or more lines are too long
1
dist/485-485.js.map
vendored
1
dist/485-485.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/50-50.js
vendored
4
dist/50-50.js
vendored
File diff suppressed because one or more lines are too long
2
dist/50-50.js.map
vendored
2
dist/50-50.js.map
vendored
File diff suppressed because one or more lines are too long
3
dist/5329-5329.js
vendored
Normal file
3
dist/5329-5329.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/5329-5329.js.map
vendored
Normal file
1
dist/5329-5329.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
2
dist/5912-5912.js
vendored
2
dist/5912-5912.js
vendored
File diff suppressed because one or more lines are too long
1
dist/5912-5912.js.map
vendored
1
dist/5912-5912.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/6678-6678.js
vendored
2
dist/6678-6678.js
vendored
File diff suppressed because one or more lines are too long
1
dist/6678-6678.js.map
vendored
1
dist/6678-6678.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/6870-6870.js
vendored
Normal file
2
dist/6870-6870.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/6870-6870.js.map
vendored
Normal file
1
dist/6870-6870.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
4
dist/7816-7816.js
vendored
4
dist/7816-7816.js
vendored
File diff suppressed because one or more lines are too long
2
dist/7816-7816.js.map
vendored
2
dist/7816-7816.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/comments-comments-app.js
vendored
4
dist/comments-comments-app.js
vendored
File diff suppressed because one or more lines are too long
2
dist/comments-comments-app.js.map
vendored
2
dist/comments-comments-app.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/comments-init.js
vendored
4
dist/comments-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/comments-init.js.map
vendored
2
dist/comments-init.js.map
vendored
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
18
dist/core-common.js.LICENSE.txt
vendored
18
dist/core-common.js.LICENSE.txt
vendored
|
|
@ -5,6 +5,17 @@
|
|||
* @license MIT
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Sizzle CSS Selector Engine v2.3.10
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://js.foundation/
|
||||
*
|
||||
* Date: 2023-02-14
|
||||
*/
|
||||
|
||||
/*!
|
||||
* The buffer module from node.js, for the browser.
|
||||
*
|
||||
|
|
@ -42,14 +53,17 @@
|
|||
*/
|
||||
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.7.1
|
||||
* jQuery JavaScript Library v3.6.4
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2023-08-28T13:37Z
|
||||
* Date: 2023-03-08T15:28Z
|
||||
*/
|
||||
|
||||
/*!
|
||||
|
|
|
|||
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/core-login.js
vendored
4
dist/core-login.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-login.js.map
vendored
2
dist/core-login.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-main.js
vendored
4
dist/core-main.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-main.js.map
vendored
2
dist/core-main.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-profile.js
vendored
4
dist/core-profile.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-profile.js.map
vendored
2
dist/core-profile.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-unified-search.js
vendored
4
dist/core-unified-search.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-unified-search.js.map
vendored
2
dist/core-unified-search.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-unsupported-browser-redirect.js
vendored
4
dist/core-unsupported-browser-redirect.js
vendored
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-unsupported-browser.js
vendored
4
dist/core-unsupported-browser.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-unsupported-browser.js.map
vendored
2
dist/core-unsupported-browser.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/dav-settings-personal-availability.js
vendored
4
dist/dav-settings-personal-availability.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
dist/files-init.js
vendored
4
dist/files-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-init.js.map
vendored
2
dist/files-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files-main.js
vendored
4
dist/files-main.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-main.js.map
vendored
2
dist/files-main.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files-personal-settings.js
vendored
4
dist/files-personal-settings.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-personal-settings.js.map
vendored
2
dist/files-personal-settings.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files-reference-files.js
vendored
4
dist/files-reference-files.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-reference-files.js.map
vendored
2
dist/files-reference-files.js.map
vendored
File diff suppressed because one or more lines are too long
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
4
dist/files_external-init.js
vendored
4
dist/files_external-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_external-init.js.map
vendored
2
dist/files_external-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_reminders-main.js
vendored
4
dist/files_reminders-main.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_reminders-main.js.map
vendored
2
dist/files_reminders-main.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_sharing-files_sharing_tab.js
vendored
4
dist/files_sharing-files_sharing_tab.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_sharing-files_sharing_tab.js.map
vendored
2
dist/files_sharing-files_sharing_tab.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_sharing-init.js
vendored
4
dist/files_sharing-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_sharing-init.js.map
vendored
2
dist/files_sharing-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_sharing-personal-settings.js
vendored
4
dist/files_sharing-personal-settings.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_sharing-personal-settings.js.map
vendored
2
dist/files_sharing-personal-settings.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_trashbin-main.js
vendored
4
dist/files_trashbin-main.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_trashbin-main.js.map
vendored
2
dist/files_trashbin-main.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_versions-files_versions.js
vendored
4
dist/files_versions-files_versions.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_versions-files_versions.js.map
vendored
2
dist/files_versions-files_versions.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/settings-apps-view-7418.js
vendored
4
dist/settings-apps-view-7418.js
vendored
File diff suppressed because one or more lines are too long
2
dist/settings-apps-view-7418.js.map
vendored
2
dist/settings-apps-view-7418.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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
dist/settings-vue-settings-admin-security.js
vendored
4
dist/settings-vue-settings-admin-security.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
dist/settings-vue-settings-personal-info.js
vendored
4
dist/settings-vue-settings-personal-info.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
dist/systemtags-init.js
vendored
4
dist/systemtags-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/systemtags-init.js.map
vendored
2
dist/systemtags-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/theming-personal-theming.js
vendored
4
dist/theming-personal-theming.js
vendored
File diff suppressed because one or more lines are too long
2
dist/theming-personal-theming.js.map
vendored
2
dist/theming-personal-theming.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
File diff suppressed because one or more lines are too long
4
dist/user_status-menu.js
vendored
4
dist/user_status-menu.js
vendored
File diff suppressed because one or more lines are too long
2
dist/user_status-menu.js.map
vendored
2
dist/user_status-menu.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/weather_status-weather-status.js
vendored
4
dist/weather_status-weather-status.js
vendored
File diff suppressed because one or more lines are too long
2
dist/weather_status-weather-status.js.map
vendored
2
dist/weather_status-weather-status.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
Loading…
Reference in a new issue