diff --git a/lib/Service/ShareService.php b/lib/Service/ShareService.php index 0e54fb0eea..3cc72e7f16 100644 --- a/lib/Service/ShareService.php +++ b/lib/Service/ShareService.php @@ -640,13 +640,17 @@ public function add( $preventInvitation = true; } - $share = $this->createNewShare( - pollOrPollGroupId: $pollOrPollGroupId, - userGroup: $shareUser, - preventInvitation: $preventInvitation, - timeZone: '', - purpose: $purpose - ); + try { + $share = $this->createNewShare( + pollOrPollGroupId: $pollOrPollGroupId, + userGroup: $shareUser, + preventInvitation: $preventInvitation, + timeZone: '', + purpose: $purpose + ); + } catch (ShareAlreadyExistsException $e) { + $share = $e->getShare(); + } // TODO: extend event for pollGroups if ($share->getPollId()) { diff --git a/src/assets/scss/vars.scss b/src/assets/scss/vars.scss index a3f77dbb8c..4cc3b1de8b 100644 --- a/src/assets/scss/vars.scss +++ b/src/assets/scss/vars.scss @@ -6,6 +6,8 @@ :root, [data-theme-light] { --cap-width: 49rem; + --shadow-height: 0.7rem; + --shadow-height-inverted: -0.7rem; --color-polls-foreground-yes: #2d7b41; --color-polls-foreground-no: #db0606; --color-polls-foreground-maybe: #a37200; diff --git a/src/components/Actions/index.ts b/src/components/Actions/index.ts deleted file mode 100644 index 495e321820..0000000000 --- a/src/components/Actions/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * SPDX-FileCopyrightText: 2023 Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -export { default as ActionDelete } from './modules/ActionDelete.vue' -export { default as ActionDeleteOrphanedVotes } from './modules/ActionDeleteOrphanedVotes.vue' -export { default as ActionOpenOptionsSidebar } from './modules/ActionOpenOptionsSidebar.vue' -export { default as ActionOpenSharesSidebar } from './modules/ActionOpenSharesSidebar.vue' -export { default as ActionRegister } from './modules/ActionRegister.vue' -export { default as ActionSendConfirmed } from './modules/ActionSendConfirmed.vue' -export { default as ActionSwitchSafeTable } from './modules/ActionSwitchSafeTable.vue' -export { default as ActionToggleSidebar } from './modules/ActionToggleSidebar.vue' diff --git a/src/components/Actions/modules/ActionSendConfirmed.vue b/src/components/Actions/modules/ActionSendConfirmed.vue index e8115253ac..63267d9762 100644 --- a/src/components/Actions/modules/ActionSendConfirmed.vue +++ b/src/components/Actions/modules/ActionSendConfirmed.vue @@ -14,7 +14,7 @@ import NcButton from '@nextcloud/vue/components/NcButton' import EmailCheckIcon from 'vue-material-design-icons/EmailCheckOutline.vue' // view-comfy-outline import { PollsAPI } from '../../../Api' -import { Logger } from '../../../helpers' +import { Logger } from '../../../helpers/modules/logger' import { Confirmations } from '../../../Api/modules/polls' const route = useRoute() diff --git a/src/components/Activity/ActivityItem.vue b/src/components/Activity/ActivityItem.vue index dc3eab3152..6b80ceca9c 100644 --- a/src/components/Activity/ActivityItem.vue +++ b/src/components/Activity/ActivityItem.vue @@ -10,7 +10,8 @@ import { DateTime } from 'luxon' import NcUserBubble from '@nextcloud/vue/components/NcUserBubble' import NcRichText from '@nextcloud/vue/components/NcRichText' -import { GuestBubble, SimpleLink } from '../../helpers' +import { GuestBubble } from '../../helpers/modules/GuestBubble' +import { SimpleLink } from '../../helpers/modules/SimpleLink' const props = defineProps({ activity: { diff --git a/src/components/Base/index.ts b/src/components/Base/index.ts deleted file mode 100644 index ca24d3f625..0000000000 --- a/src/components/Base/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * SPDX-FileCopyrightText: 2023 Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -export { default as BadgeDiv } from './modules/BadgeDiv.vue' -export { default as CardDiv } from './modules/CardDiv.vue' -export { default as ConfigBox } from './modules/ConfigBox.vue' -export { default as DateBox } from './modules/DateBox.vue' -export { default as DateTimePicker } from './modules/DateTimePicker.vue' -export { default as FlexSettings } from './modules/FlexSettings.vue' -export { default as FlexSpacer } from './modules/FlexSpacer.vue' -export { default as HeaderBar } from './modules/HeaderBar.vue' -export { default as InputDiv } from './modules/InputDiv.vue' -export { default as IntersectionObserver } from './modules/IntersectionObserver.vue' -export { default as LoadingOverlay } from './modules/LoadingOverlay.vue' -export { default as QrModal } from './modules/QrModal.vue' -export { default as RadioGroupDiv } from './modules/RadioGroupDiv.vue' -export { default as Collapsible } from './modules/Collapsible.vue' diff --git a/src/components/Base/modules/BadgeDiv.vue b/src/components/Base/modules/BadgeDiv.vue index 6286dcef78..b67665ad6e 100644 --- a/src/components/Base/modules/BadgeDiv.vue +++ b/src/components/Base/modules/BadgeDiv.vue @@ -39,13 +39,13 @@ const { tag = 'span' } = defineProps<{ tag?: string }>() } &.error { - border-color: var(--color-error); + border-color: var(--color-border-error-); background-color: var(--color-error); color: var(--color-primary-element-text) !important; } &.success { - border-color: var(--color-success); + border-color: var(--color-border-success); background-color: var(--color-success); color: var(--color-primary-element-text) !important; } diff --git a/src/components/Base/modules/BadgeSmallDiv.vue b/src/components/Base/modules/BadgeSmallDiv.vue index 67ee95d75a..cb23d2e51e 100644 --- a/src/components/Base/modules/BadgeSmallDiv.vue +++ b/src/components/Base/modules/BadgeSmallDiv.vue @@ -42,18 +42,18 @@ const { tag = 'span' } = defineProps<{ tag?: string }>() } &.error { - background-color: rgba(var(--color-error-rgb), 0.2); - border-color: var(--color-error); + background-color: var(--color-error); + border-color: var(--color-border-error); } &.success { - background-color: rgba(var(--color-success-rgb), 0.2); - border-color: var(--color-success); + background-color: var(--color-success); + border-color: var(--color-border-success); } &.warning { - background-color: rgba(var(--color-warning-rgb), 0.2) !important; - border-color: var(--color-warning); + background-color: var(--color-warning); + border-color: var(--color-element-warning); } } diff --git a/src/components/Base/modules/InputDiv.vue b/src/components/Base/modules/InputDiv.vue index 98f8577301..2a3400efbc 100644 --- a/src/components/Base/modules/InputDiv.vue +++ b/src/components/Base/modules/InputDiv.vue @@ -13,7 +13,7 @@ import AlertIcon from 'vue-material-design-icons/AlertCircleOutline.vue' import ChevronLeftIcon from 'vue-material-design-icons/ChevronLeft.vue' import ChevronRightIcon from 'vue-material-design-icons/ChevronRight.vue' import Spinner from '../../AppIcons/Spinner.vue' -import { Logger } from '../../../helpers' +import { Logger } from '../../../helpers/modules/logger' import { SignalingType } from '../../../Types' import NcButton from '@nextcloud/vue/components/NcButton' @@ -285,11 +285,11 @@ const inputClass = computed(() => [ } &.error { - border-color: var(--color-error); + border-color: var(--color-border-error); } &.success { - border-color: var(--color-success); + border-color: var(--color-border-success); } } diff --git a/src/components/Base/modules/QrModal.vue b/src/components/Base/modules/QrModal.vue index 95cf1caabe..f65d9bbc4d 100644 --- a/src/components/Base/modules/QrModal.vue +++ b/src/components/Base/modules/QrModal.vue @@ -5,7 +5,7 @@ diff --git a/src/components/Shares/SharesListLocked.vue b/src/components/Shares/SharesListLocked.vue index dfe71dfad1..2e91bff7da 100644 --- a/src/components/Shares/SharesListLocked.vue +++ b/src/components/Shares/SharesListLocked.vue @@ -24,10 +24,11 @@ const configBoxProps = { - + diff --git a/src/components/Shares/SharesListPollGroup.vue b/src/components/Shares/SharesListPollGroup.vue index 289e2a8853..411cd58933 100644 --- a/src/components/Shares/SharesListPollGroup.vue +++ b/src/components/Shares/SharesListPollGroup.vue @@ -49,14 +49,15 @@ async function addShare(user: User) { :search-types="[0]" @user-selected="(user: User) => addShare(user)" /> -
- + diff --git a/src/components/Shares/SharesListUnsent.vue b/src/components/Shares/SharesListUnsent.vue index 39fd11b26c..f5b43b2235 100644 --- a/src/components/Shares/SharesListUnsent.vue +++ b/src/components/Shares/SharesListUnsent.vue @@ -14,7 +14,7 @@ import ShareItem from './ShareItem.vue' import BulkMailIcon from 'vue-material-design-icons/EmailMultipleOutline.vue' import ConfigBox from '../Base/modules/ConfigBox.vue' -import { Logger } from '../../helpers' +import { Logger } from '../../helpers/modules/logger' import { usePollStore } from '../../stores/poll' import { useSharesStore } from '../../stores/shares' @@ -72,10 +72,11 @@ async function sendAllInvitations() { - + diff --git a/src/components/SideBar/SideBarTabActivity.vue b/src/components/SideBar/SideBarTabActivity.vue index 0225d8b6bb..f2565f7520 100644 --- a/src/components/SideBar/SideBarTabActivity.vue +++ b/src/components/SideBar/SideBarTabActivity.vue @@ -38,12 +38,10 @@ onUnmounted(() => { diff --git a/src/components/SideBar/SideBarTabComments.vue b/src/components/SideBar/SideBarTabComments.vue index b28abcd451..cc9d53c2d2 100644 --- a/src/components/SideBar/SideBarTabComments.vue +++ b/src/components/SideBar/SideBarTabComments.vue @@ -53,31 +53,27 @@ watch( diff --git a/src/components/SideBar/SideBarTabConfiguration.vue b/src/components/SideBar/SideBarTabConfiguration.vue index 6820076b90..5fa005110f 100644 --- a/src/components/SideBar/SideBarTabConfiguration.vue +++ b/src/components/SideBar/SideBarTabConfiguration.vue @@ -38,71 +38,67 @@ const votesStore = useVotesStore() diff --git a/src/components/SideBar/SideBarTabDatePolls.vue b/src/components/SideBar/SideBarTabDatePolls.vue index f733d869d7..4363169ecd 100644 --- a/src/components/SideBar/SideBarTabDatePolls.vue +++ b/src/components/SideBar/SideBarTabDatePolls.vue @@ -14,16 +14,14 @@ const comboStore = useComboStore() diff --git a/src/components/SideBar/SideBarTabOptions.vue b/src/components/SideBar/SideBarTabOptions.vue index bcdf422b38..09a78992c4 100644 --- a/src/components/SideBar/SideBarTabOptions.vue +++ b/src/components/SideBar/SideBarTabOptions.vue @@ -20,6 +20,7 @@ import AddDateIcon from 'vue-material-design-icons/CalendarPlusOutline.vue' import DateOptionsIcon from 'vue-material-design-icons/CalendarMonthOutline.vue' import ShiftDateIcon from 'vue-material-design-icons/CalendarStartOutline.vue' import TextOptionsIcon from 'vue-material-design-icons/FormatListBulletedSquare.vue' +import DatePollIcon from 'vue-material-design-icons/CalendarBlankOutline.vue' import OptionsTextAddBulk from '../Options/OptionsTextAddBulk.vue' import ActionAddOption from '../Actions/modules/ActionAddOption.vue' import { Event } from '../../Types' @@ -57,67 +58,74 @@ onUnmounted(() => { diff --git a/src/components/SideBar/SideBarTabShare.vue b/src/components/SideBar/SideBarTabShare.vue index 1771dd3da7..04951a45c7 100644 --- a/src/components/SideBar/SideBarTabShare.vue +++ b/src/components/SideBar/SideBarTabShare.vue @@ -31,50 +31,7 @@ onBeforeRouteLeave(() => { - - diff --git a/src/components/SideBar/SideBarTabSharePollGroup.vue b/src/components/SideBar/SideBarTabSharePollGroup.vue index 618ae8bed3..e4583c9a2c 100644 --- a/src/components/SideBar/SideBarTabSharePollGroup.vue +++ b/src/components/SideBar/SideBarTabSharePollGroup.vue @@ -28,52 +28,8 @@ onBeforeRouteUpdate(async () => { - - diff --git a/src/components/SideBar/index.ts b/src/components/SideBar/index.ts deleted file mode 100644 index 1474bf2b14..0000000000 --- a/src/components/SideBar/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * SPDX-FileCopyrightText: 2024 Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -export { default as SideBarTabActivity } from './SideBarTabActivity.vue' -export { default as SideBarTabConfiguration } from './SideBarTabConfiguration.vue' -export { default as SideBarTabComments } from './SideBarTabComments.vue' -export { default as SideBarTabDatePolls } from './SideBarTabDatePolls.vue' -export { default as SideBarTabOptions } from './SideBarTabOptions.vue' -export { default as SideBarTabPollGroupShare } from './SideBarTabSharePollGroup.vue' -export { default as SideBarTabShare } from './SideBarTabShare.vue' diff --git a/src/components/User/UserItem.vue b/src/components/User/UserItem.vue index dbb7fdf8a4..2c08888b76 100644 --- a/src/components/User/UserItem.vue +++ b/src/components/User/UserItem.vue @@ -40,6 +40,7 @@ interface Props { description?: string label?: string type?: UserType | VirtualUserItemType + tag?: string user?: User showTypeIcon?: boolean iconSize?: number @@ -61,6 +62,7 @@ const { resolveInfo = false, description, label = '', + tag = 'div', type = '', user = { id: '', @@ -212,7 +214,7 @@ function showMenu() { } const componentClass = computed(() => [ 'user-item', - typeComputed, + typeComputed.value, { disabled, condensed, @@ -221,7 +223,7 @@ const componentClass = computed(() => [