From bb025508b2140f1e0ada91bf314a67d1caa72a08 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Sun, 10 Dec 2023 00:28:23 +0000 Subject: [PATCH 01/45] Fix(l10n): Update translations from Transifex Signed-off-by: Nextcloud bot --- l10n/tr.js | 2 ++ l10n/tr.json | 2 ++ l10n/zh_HK.js | 2 ++ l10n/zh_HK.json | 2 ++ 4 files changed, 8 insertions(+) diff --git a/l10n/tr.js b/l10n/tr.js index a9b1c3cb1b..f0e35f46b3 100644 --- a/l10n/tr.js +++ b/l10n/tr.js @@ -310,7 +310,9 @@ OC.L10N.register( "Remove group" : "Grubu sil", "Remove attendee" : "Katılımcıyı çıkar", "_%n member_::_%n members_" : ["%n üye","%n üye"], + "Search for emails, users, contacts or groups" : "E-posta, kullanıcı, kişi ya da grup arayın", "No match found" : "Herhangi bir sonuç bulunamadı", + "Note that members of circles get invited but are not synced yet." : "Çevre üyelerinin çağrıldığını ancak henüz eşitlenmediğini unutmayın.", "(organizer)" : "(düzenleyen)", "To send out invitations and handle responses, [linkopen]add your email address in personal settings[linkclose]." : "Çağrı göndermek ve yanıtları işlemek için, [linkopen]kişisel ayarlar bölümünden e-posta adresinizi ekleyin[linkclose].", "Remove color" : "Rengi kaldır", diff --git a/l10n/tr.json b/l10n/tr.json index 30529e4935..cd61ecf08e 100644 --- a/l10n/tr.json +++ b/l10n/tr.json @@ -308,7 +308,9 @@ "Remove group" : "Grubu sil", "Remove attendee" : "Katılımcıyı çıkar", "_%n member_::_%n members_" : ["%n üye","%n üye"], + "Search for emails, users, contacts or groups" : "E-posta, kullanıcı, kişi ya da grup arayın", "No match found" : "Herhangi bir sonuç bulunamadı", + "Note that members of circles get invited but are not synced yet." : "Çevre üyelerinin çağrıldığını ancak henüz eşitlenmediğini unutmayın.", "(organizer)" : "(düzenleyen)", "To send out invitations and handle responses, [linkopen]add your email address in personal settings[linkclose]." : "Çağrı göndermek ve yanıtları işlemek için, [linkopen]kişisel ayarlar bölümünden e-posta adresinizi ekleyin[linkclose].", "Remove color" : "Rengi kaldır", diff --git a/l10n/zh_HK.js b/l10n/zh_HK.js index 95ec30e5f8..ae39770b80 100644 --- a/l10n/zh_HK.js +++ b/l10n/zh_HK.js @@ -310,7 +310,9 @@ OC.L10N.register( "Remove group" : "移除群組", "Remove attendee" : "移除參與者", "_%n member_::_%n members_" : ["%n 個成員"], + "Search for emails, users, contacts or groups" : "搜尋電子郵件、用戶、聯絡人或群組", "No match found" : "找不到符合的項目", + "Note that members of circles get invited but are not synced yet." : "請注意,社交圈子成員已收到邀請,但尚未同步。", "(organizer)" : "(主辦人)", "To send out invitations and handle responses, [linkopen]add your email address in personal settings[linkclose]." : "若要送出邀請函並處理回覆,[linkopen] 請到個人設定頁加入您的電郵地址 [linkclose]", "Remove color" : "移除顏色", diff --git a/l10n/zh_HK.json b/l10n/zh_HK.json index 0312bae695..a2f3d1bcae 100644 --- a/l10n/zh_HK.json +++ b/l10n/zh_HK.json @@ -308,7 +308,9 @@ "Remove group" : "移除群組", "Remove attendee" : "移除參與者", "_%n member_::_%n members_" : ["%n 個成員"], + "Search for emails, users, contacts or groups" : "搜尋電子郵件、用戶、聯絡人或群組", "No match found" : "找不到符合的項目", + "Note that members of circles get invited but are not synced yet." : "請注意,社交圈子成員已收到邀請,但尚未同步。", "(organizer)" : "(主辦人)", "To send out invitations and handle responses, [linkopen]add your email address in personal settings[linkclose]." : "若要送出邀請函並處理回覆,[linkopen] 請到個人設定頁加入您的電郵地址 [linkclose]", "Remove color" : "移除顏色", From 541bd6979f7a2283e39c5bf0f514d4a9e683e8f5 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Mon, 11 Dec 2023 00:34:55 +0000 Subject: [PATCH 02/45] Fix(l10n): Update translations from Transifex Signed-off-by: Nextcloud bot --- l10n/ast.js | 2 ++ l10n/ast.json | 2 ++ l10n/en_GB.js | 2 ++ l10n/en_GB.json | 2 ++ l10n/uk.js | 2 ++ l10n/uk.json | 2 ++ 6 files changed, 12 insertions(+) diff --git a/l10n/ast.js b/l10n/ast.js index dbb3b88c12..59f8895c76 100644 --- a/l10n/ast.js +++ b/l10n/ast.js @@ -47,6 +47,7 @@ OC.L10N.register( "_week_::_weeks_" : ["selmana","selmanes"], "Accept" : "Aceptar", "Decline" : "Refugar", + "Send email" : "Unviar un corréu electrónicu", "_month_::_months_" : ["mes","meses"], "_year_::_years_" : ["añu","años"], "Suggestions" : "Suxerencies", @@ -85,6 +86,7 @@ OC.L10N.register( "Cinema" : "Cine", "Graduation" : "Graduación", "Inspection" : "Inspeición", + "Mail" : "Corréu electrónicu", "Soccer" : "Fútbol", "Basketball" : "Baloncestu", "Museum" : "Muséu", diff --git a/l10n/ast.json b/l10n/ast.json index a04c78f374..ea171f7686 100644 --- a/l10n/ast.json +++ b/l10n/ast.json @@ -45,6 +45,7 @@ "_week_::_weeks_" : ["selmana","selmanes"], "Accept" : "Aceptar", "Decline" : "Refugar", + "Send email" : "Unviar un corréu electrónicu", "_month_::_months_" : ["mes","meses"], "_year_::_years_" : ["añu","años"], "Suggestions" : "Suxerencies", @@ -83,6 +84,7 @@ "Cinema" : "Cine", "Graduation" : "Graduación", "Inspection" : "Inspeición", + "Mail" : "Corréu electrónicu", "Soccer" : "Fútbol", "Basketball" : "Baloncestu", "Museum" : "Muséu", diff --git a/l10n/en_GB.js b/l10n/en_GB.js index 87d9b08365..0bbcabf098 100644 --- a/l10n/en_GB.js +++ b/l10n/en_GB.js @@ -310,7 +310,9 @@ OC.L10N.register( "Remove group" : "Remove group", "Remove attendee" : "Remove attendee", "_%n member_::_%n members_" : ["%n member","%n members"], + "Search for emails, users, contacts or groups" : "Search for emails, users, contacts or groups", "No match found" : "No match found", + "Note that members of circles get invited but are not synced yet." : "Note that members of circles get invited but are not synced yet.", "(organizer)" : "(organiser)", "To send out invitations and handle responses, [linkopen]add your email address in personal settings[linkclose]." : "To send out invitations and handle responses, [linkopen]add your email address in personal settings[linkclose].", "Remove color" : "Remove colour", diff --git a/l10n/en_GB.json b/l10n/en_GB.json index 01398c9432..cc8d161f42 100644 --- a/l10n/en_GB.json +++ b/l10n/en_GB.json @@ -308,7 +308,9 @@ "Remove group" : "Remove group", "Remove attendee" : "Remove attendee", "_%n member_::_%n members_" : ["%n member","%n members"], + "Search for emails, users, contacts or groups" : "Search for emails, users, contacts or groups", "No match found" : "No match found", + "Note that members of circles get invited but are not synced yet." : "Note that members of circles get invited but are not synced yet.", "(organizer)" : "(organiser)", "To send out invitations and handle responses, [linkopen]add your email address in personal settings[linkclose]." : "To send out invitations and handle responses, [linkopen]add your email address in personal settings[linkclose].", "Remove color" : "Remove colour", diff --git a/l10n/uk.js b/l10n/uk.js index 4d71fbff37..387f4cf591 100644 --- a/l10n/uk.js +++ b/l10n/uk.js @@ -310,7 +310,9 @@ OC.L10N.register( "Remove group" : "Вилучити групу", "Remove attendee" : "Вилучити учасника", "_%n member_::_%n members_" : ["%n учасник","%n учасника","%n учасників","%n учасників"], + "Search for emails, users, contacts or groups" : "Пошук імейлів, користувачів, контактів або груп", "No match found" : "Збігів не знайдено", + "Note that members of circles get invited but are not synced yet." : "Зверніть увагу, що учасники кіл отримують запрошення, але поки ще не синхронізовані.", "(organizer)" : "(організатор)", "To send out invitations and handle responses, [linkopen]add your email address in personal settings[linkclose]." : "Для надсилання запрошень та отримання відповіді, [linkopen]додайте ел.адресу в особистих налаштуваннях[linkclose].", "Remove color" : "Вилучити колір", diff --git a/l10n/uk.json b/l10n/uk.json index aad4d2e211..1c321aaee0 100644 --- a/l10n/uk.json +++ b/l10n/uk.json @@ -308,7 +308,9 @@ "Remove group" : "Вилучити групу", "Remove attendee" : "Вилучити учасника", "_%n member_::_%n members_" : ["%n учасник","%n учасника","%n учасників","%n учасників"], + "Search for emails, users, contacts or groups" : "Пошук імейлів, користувачів, контактів або груп", "No match found" : "Збігів не знайдено", + "Note that members of circles get invited but are not synced yet." : "Зверніть увагу, що учасники кіл отримують запрошення, але поки ще не синхронізовані.", "(organizer)" : "(організатор)", "To send out invitations and handle responses, [linkopen]add your email address in personal settings[linkclose]." : "Для надсилання запрошень та отримання відповіді, [linkopen]додайте ел.адресу в особистих налаштуваннях[linkclose].", "Remove color" : "Вилучити колір", From 5ac3078e6d92f67aedcaf59849a3b851c30f8ef0 Mon Sep 17 00:00:00 2001 From: escoand Date: Tue, 12 Dec 2023 08:58:20 +0100 Subject: [PATCH 03/45] use two different entry points Signed-off-by: escoand --- lib/Controller/ViewController.php | 2 + .../CalendarList/CalendarListNew.vue | 16 +++- ...e => PublicCalendarSubscriptionPicker.vue} | 73 +++++++++++++------ src/store/settings.js | 6 +- src/views/Calendar.vue | 1 + tests/javascript/unit/store/settings.test.js | 5 ++ .../unit/Controller/ViewControllerTest.php | 12 ++- 7 files changed, 84 insertions(+), 31 deletions(-) rename src/components/Subscription/{HolidaySubscriptionPicker.vue => PublicCalendarSubscriptionPicker.vue} (61%) diff --git a/lib/Controller/ViewController.php b/lib/Controller/ViewController.php index afc14aba29..e22bf89754 100644 --- a/lib/Controller/ViewController.php +++ b/lib/Controller/ViewController.php @@ -120,6 +120,7 @@ public function index():TemplateResponse { } $canSubscribeLink = $this->config->getAppValue('dav', 'allow_calendar_link_subscriptions', 'yes') === 'yes'; $showResources = $this->config->getAppValue($this->appName, 'showResources', 'yes') === 'yes'; + $publicCalendars = $this->config->getAppValue($this->appName, 'publicCalendars', ''); $talkEnabled = $this->appManager->isEnabledForUser('spreed'); $talkApiVersion = version_compare($this->appManager->getAppVersion('spreed'), '12.0.0', '>=') ? 'v4' : 'v1'; @@ -152,6 +153,7 @@ public function index():TemplateResponse { $this->initialStateService->provideInitialState('can_subscribe_link', $canSubscribeLink); $this->initialStateService->provideInitialState('show_resources', $showResources); $this->initialStateService->provideInitialState('isCirclesEnabled', $isCirclesEnabled && $isCircleVersionCompatible); + $this->initialStateService->provideInitialState('publicCalendars', $publicCalendars); return new TemplateResponse($this->appName, 'main'); } diff --git a/src/components/AppNavigation/CalendarList/CalendarListNew.vue b/src/components/AppNavigation/CalendarList/CalendarListNew.vue index 1b21b91d41..bf01d37b76 100644 --- a/src/components/AppNavigation/CalendarList/CalendarListNew.vue +++ b/src/components/AppNavigation/CalendarList/CalendarListNew.vue @@ -98,9 +98,19 @@ + + {{ t('calendar', 'Add custom public calendar') }} + + @@ -136,7 +146,7 @@ export default { AppNavigationItem, CalendarBlank, CalendarCheck, - HolidaySubscriptionPicker: () => import(/* webpackChunkName: "holiday-subscription-picker" */ '../../Subscription/HolidaySubscriptionPicker.vue'), + PublicCalendarSubscriptionPicker: () => import(/* webpackChunkName: "public-calendar-subscription-picker" */ '../../Subscription/PublicCalendarSubscriptionPicker.vue'), LinkVariant, Plus, Web, @@ -158,11 +168,13 @@ export default { showCreateSubscriptionInput: false, showCreateSubscriptionSaving: false, showHolidaySubscriptionPicker: false, + showPublicCalendarSubscriptionPicker: false, } }, computed: { ...mapState({ canSubscribeLink: state => state.settings.canSubscribeLink, + hasPublicCalendars: state => Boolean(state.settings.publicCalendars), }), }, watch: { diff --git a/src/components/Subscription/HolidaySubscriptionPicker.vue b/src/components/Subscription/PublicCalendarSubscriptionPicker.vue similarity index 61% rename from src/components/Subscription/HolidaySubscriptionPicker.vue rename to src/components/Subscription/PublicCalendarSubscriptionPicker.vue index eca757a722..1bfb943dc6 100644 --- a/src/components/Subscription/HolidaySubscriptionPicker.vue +++ b/src/components/Subscription/PublicCalendarSubscriptionPicker.vue @@ -21,22 +21,29 @@