diff options
62 files changed, 965 insertions, 446 deletions
diff --git a/.eslintignore b/.eslintignore index b40dce6c6aa..104bf398964 100644 --- a/.eslintignore +++ b/.eslintignore @@ -6,6 +6,7 @@ node_modules/ **/js/* *.config.js tests/lib/ +apps-extra # TODO: remove when comments files is not using handlebar templates anymore apps/comments/src/templates.js
\ No newline at end of file diff --git a/apps/dav/l10n/cs.js b/apps/dav/l10n/cs.js index e9406f6c3a2..6a8bdea52e8 100644 --- a/apps/dav/l10n/cs.js +++ b/apps/dav/l10n/cs.js @@ -156,6 +156,9 @@ OC.L10N.register( "Saturday" : "sobota", "Sunday" : "neděle", "Save" : "Uložit", + "Failed to load availability" : "Nepodařilo se načíst dostupnost", + "Saved availability" : "Uložena dostupnost", + "Failed to save availability" : "Nepodařilo se uložit dostupnost", "Calendar server" : "Kalendářový server", "Send invitations to attendees" : "Poslat pozvánky na adresy účastníků", "Automatically generate a birthday calendar" : "Automaticky vytvořit kalendář s narozeninami", diff --git a/apps/dav/l10n/cs.json b/apps/dav/l10n/cs.json index 66a899594d3..05ed95c0abd 100644 --- a/apps/dav/l10n/cs.json +++ b/apps/dav/l10n/cs.json @@ -154,6 +154,9 @@ "Saturday" : "sobota", "Sunday" : "neděle", "Save" : "Uložit", + "Failed to load availability" : "Nepodařilo se načíst dostupnost", + "Saved availability" : "Uložena dostupnost", + "Failed to save availability" : "Nepodařilo se uložit dostupnost", "Calendar server" : "Kalendářový server", "Send invitations to attendees" : "Poslat pozvánky na adresy účastníků", "Automatically generate a birthday calendar" : "Automaticky vytvořit kalendář s narozeninami", diff --git a/apps/dav/l10n/de_DE.js b/apps/dav/l10n/de_DE.js index 677c38aaf82..b906c0e5465 100644 --- a/apps/dav/l10n/de_DE.js +++ b/apps/dav/l10n/de_DE.js @@ -156,6 +156,9 @@ OC.L10N.register( "Saturday" : "Samstag", "Sunday" : "Sonntag", "Save" : "Speichern", + "Failed to load availability" : "Laden der Verfügbarkeit fehlgeschlagen", + "Saved availability" : "Verfügbarkeit gespeichert", + "Failed to save availability" : "Fehler beim Speichern der Verfügbarkeit", "Calendar server" : "Kalender-Server", "Send invitations to attendees" : "Einladungen an die Teilnehmer versenden", "Automatically generate a birthday calendar" : "Automatisch einen Kalender für Geburtstage erstellen", diff --git a/apps/dav/l10n/de_DE.json b/apps/dav/l10n/de_DE.json index ea3c15aa90f..3a3510e6c82 100644 --- a/apps/dav/l10n/de_DE.json +++ b/apps/dav/l10n/de_DE.json @@ -154,6 +154,9 @@ "Saturday" : "Samstag", "Sunday" : "Sonntag", "Save" : "Speichern", + "Failed to load availability" : "Laden der Verfügbarkeit fehlgeschlagen", + "Saved availability" : "Verfügbarkeit gespeichert", + "Failed to save availability" : "Fehler beim Speichern der Verfügbarkeit", "Calendar server" : "Kalender-Server", "Send invitations to attendees" : "Einladungen an die Teilnehmer versenden", "Automatically generate a birthday calendar" : "Automatisch einen Kalender für Geburtstage erstellen", diff --git a/apps/dav/l10n/pl.js b/apps/dav/l10n/pl.js index 93f1e06069c..9fdf7171906 100644 --- a/apps/dav/l10n/pl.js +++ b/apps/dav/l10n/pl.js @@ -156,6 +156,9 @@ OC.L10N.register( "Saturday" : "Sobota", "Sunday" : "Niedziela", "Save" : "Zapisz", + "Failed to load availability" : "Nie udało się wczytać dostępności", + "Saved availability" : "Zapisana dostępność", + "Failed to save availability" : "Nie udało się zapisać dostępności", "Calendar server" : "Serwer kalendarza", "Send invitations to attendees" : "Wyślij zaproszenia do uczestników", "Automatically generate a birthday calendar" : "Automatycznie generuj kalendarz urodzin", diff --git a/apps/dav/l10n/pl.json b/apps/dav/l10n/pl.json index 25dde4e2304..5315c3b36ed 100644 --- a/apps/dav/l10n/pl.json +++ b/apps/dav/l10n/pl.json @@ -154,6 +154,9 @@ "Saturday" : "Sobota", "Sunday" : "Niedziela", "Save" : "Zapisz", + "Failed to load availability" : "Nie udało się wczytać dostępności", + "Saved availability" : "Zapisana dostępność", + "Failed to save availability" : "Nie udało się zapisać dostępności", "Calendar server" : "Serwer kalendarza", "Send invitations to attendees" : "Wyślij zaproszenia do uczestników", "Automatically generate a birthday calendar" : "Automatycznie generuj kalendarz urodzin", diff --git a/apps/dav/l10n/tr.js b/apps/dav/l10n/tr.js index 70d3736f931..6389a90b5e9 100644 --- a/apps/dav/l10n/tr.js +++ b/apps/dav/l10n/tr.js @@ -156,6 +156,9 @@ OC.L10N.register( "Saturday" : "Cumartesi", "Sunday" : "Pazar", "Save" : "Kaydet", + "Failed to load availability" : "Uygunluk yüklenemedi", + "Saved availability" : "Uygunluk kaydedildi", + "Failed to save availability" : "Uygunluk kaydedilemedi", "Calendar server" : "Takvim sunucusu", "Send invitations to attendees" : "Katılımcılara çağrıları gönder", "Automatically generate a birthday calendar" : "Doğum günü takvimi otomatik oluşturulsun", diff --git a/apps/dav/l10n/tr.json b/apps/dav/l10n/tr.json index b1ba8a73d64..1f2d1561812 100644 --- a/apps/dav/l10n/tr.json +++ b/apps/dav/l10n/tr.json @@ -154,6 +154,9 @@ "Saturday" : "Cumartesi", "Sunday" : "Pazar", "Save" : "Kaydet", + "Failed to load availability" : "Uygunluk yüklenemedi", + "Saved availability" : "Uygunluk kaydedildi", + "Failed to save availability" : "Uygunluk kaydedilemedi", "Calendar server" : "Takvim sunucusu", "Send invitations to attendees" : "Katılımcılara çağrıları gönder", "Automatically generate a birthday calendar" : "Doğum günü takvimi otomatik oluşturulsun", diff --git a/apps/dav/l10n/zh_HK.js b/apps/dav/l10n/zh_HK.js index 737d7491564..b7656743fcf 100644 --- a/apps/dav/l10n/zh_HK.js +++ b/apps/dav/l10n/zh_HK.js @@ -156,6 +156,9 @@ OC.L10N.register( "Saturday" : "星期六", "Sunday" : "星期日", "Save" : "儲存", + "Failed to load availability" : "加載可得性失敗", + "Saved availability" : "已保存可得性", + "Failed to save availability" : "保存可得性失敗", "Calendar server" : "日曆伺服器", "Send invitations to attendees" : "發送邀請函給參加者", "Automatically generate a birthday calendar" : "自動建立生日日曆", diff --git a/apps/dav/l10n/zh_HK.json b/apps/dav/l10n/zh_HK.json index 4e48e518ae6..3cae11cedf0 100644 --- a/apps/dav/l10n/zh_HK.json +++ b/apps/dav/l10n/zh_HK.json @@ -154,6 +154,9 @@ "Saturday" : "星期六", "Sunday" : "星期日", "Save" : "儲存", + "Failed to load availability" : "加載可得性失敗", + "Saved availability" : "已保存可得性", + "Failed to save availability" : "保存可得性失敗", "Calendar server" : "日曆伺服器", "Send invitations to attendees" : "發送邀請函給參加者", "Automatically generate a birthday calendar" : "自動建立生日日曆", diff --git a/apps/dav/l10n/zh_TW.js b/apps/dav/l10n/zh_TW.js index b0d273abc34..909673e3a15 100644 --- a/apps/dav/l10n/zh_TW.js +++ b/apps/dav/l10n/zh_TW.js @@ -156,6 +156,9 @@ OC.L10N.register( "Saturday" : "週六", "Sunday" : "週日", "Save" : "儲存", + "Failed to load availability" : "載入可用性失敗", + "Saved availability" : "已儲存可用性", + "Failed to save availability" : "儲存可用性失敗", "Calendar server" : "日曆伺服器", "Send invitations to attendees" : "發送邀請函給參加者", "Automatically generate a birthday calendar" : "自動生成生日日曆", diff --git a/apps/dav/l10n/zh_TW.json b/apps/dav/l10n/zh_TW.json index 09330f45a9c..a134ffb53c4 100644 --- a/apps/dav/l10n/zh_TW.json +++ b/apps/dav/l10n/zh_TW.json @@ -154,6 +154,9 @@ "Saturday" : "週六", "Sunday" : "週日", "Save" : "儲存", + "Failed to load availability" : "載入可用性失敗", + "Saved availability" : "已儲存可用性", + "Failed to save availability" : "儲存可用性失敗", "Calendar server" : "日曆伺服器", "Send invitations to attendees" : "發送邀請函給參加者", "Automatically generate a birthday calendar" : "自動生成生日日曆", diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Event.php b/apps/dav/lib/CalDAV/Activity/Provider/Event.php index 96366f54942..3ed591219af 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Event.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Event.php @@ -88,9 +88,9 @@ class Event extends Base { $params = [ 'type' => 'calendar-event', 'id' => $eventData['id'], - 'name' => $eventData['name'], - + 'name' => trim($eventData['name']) !== '' ? $eventData['name'] : $this->l->t('Untitled event'), ]; + if (isset($eventData['link']) && is_array($eventData['link']) && $this->appManager->isEnabledForUser('calendar')) { try { // The calendar app needs to be manually loaded for the routes to be loaded diff --git a/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php b/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php index 4a1205e8606..eaa7f1bc2d2 100644 --- a/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php @@ -1,4 +1,5 @@ <?php +declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @@ -115,30 +116,27 @@ class CommentPropertiesPlugin extends ServerPlugin { return $this->commentsManager->getNumberOfCommentsForObject('files', (string)$node->getId()); }); - $propFind->handle(self::PROPERTY_NAME_HREF, function () use ($node) { + $propFind->handle(self::PROPERTY_NAME_HREF, function () use ($node): ?string { return $this->getCommentsLink($node); }); - $propFind->handle(self::PROPERTY_NAME_UNREAD, function () use ($node): ?bool { + $propFind->handle(self::PROPERTY_NAME_UNREAD, function () use ($node): ?int { return $this->cachedUnreadCount[$node->getId()] ?? $this->getUnreadCount($node); }); } /** * Returns a reference to the comments node - * - * @return array|string|null */ - public function getCommentsLink(Node $node) { + public function getCommentsLink(Node $node): ?string { $href = $this->server->getBaseUri(); $entryPoint = strpos($href, '/remote.php/'); if ($entryPoint === false) { // in case we end up somewhere else, unexpectedly. return null; } - $commentsPart = 'dav/comments/files/' . rawurldecode($node->getId()); - $href = substr_replace($href, $commentsPart, $entryPoint + strlen('/remote.php/')); - return $href; + $commentsPart = 'dav/comments/files/' . rawurldecode((string)$node->getId()); + return substr_replace($href, $commentsPart, $entryPoint + strlen('/remote.php/')); } /** diff --git a/apps/dav/src/views/CalDavSettings.vue b/apps/dav/src/views/CalDavSettings.vue index f1d39abee42..714fc9a4d32 100644 --- a/apps/dav/src/views/CalDavSettings.vue +++ b/apps/dav/src/views/CalDavSettings.vue @@ -1,20 +1,17 @@ <template> - <div class="section"> - <h2>{{ $t('dav', 'Calendar server') }}</h2> + <SettingsSection :title="$t('dav', 'Calendar server')" + :doc-url="userSyncCalendarsDocUrl"> <!-- Can use v-html as: - $t passes the translated string through DOMPurify.sanitize, - replacement strings are not user-controlled. --> <!-- eslint-disable-next-line vue/no-v-html --> <p class="settings-hint" v-html="hint" /> <p> - <input id="caldavSendInvitations" - v-model="sendInvitations" - type="checkbox" - class="checkbox"> - <label for="caldavSendInvitations"> + <CheckboxRadioSwitch id="caldavSendInvitations" + :checked.sync="sendInvitations" + type="switch"> {{ $t('dav', 'Send invitations to attendees') }} - </label> - <br> + </CheckboxRadioSwitch> <!-- Can use v-html as: - $t passes the translated string through DOMPurify.sanitize, - replacement strings are not user-controlled. --> @@ -22,14 +19,12 @@ <em v-html="sendInvitationsHelpText" /> </p> <p> - <input id="caldavGenerateBirthdayCalendar" - v-model="generateBirthdayCalendar" - type="checkbox" + <CheckboxRadioSwitch id="caldavGenerateBirthdayCalendar" + :checked.sync="generateBirthdayCalendar" + type="switch" class="checkbox"> - <label for="caldavGenerateBirthdayCalendar"> {{ $t('dav', 'Automatically generate a birthday calendar') }} - </label> - <br> + </CheckboxRadioSwitch> <em> {{ $t('dav', 'Birthday calendars will be generated by a background job.') }} </em> @@ -39,14 +34,11 @@ </em> </p> <p> - <input id="caldavSendEventReminders" - v-model="sendEventReminders" - type="checkbox" - class="checkbox"> - <label for="caldavSendEventReminders"> + <CheckboxRadioSwitch id="caldavSendEventReminders" + :checked.sync="sendEventReminders" + type="switch"> {{ $t('dav', 'Send notifications for events') }} - </label> - <br> + </CheckboxRadioSwitch> <!-- Can use v-html as: - $t passes the translated string through DOMPurify.sanitize, - replacement strings are not user-controlled. --> @@ -58,47 +50,47 @@ </em> </p> <p class="indented"> - <input id="caldavSendEventRemindersToSharedGroupMembers" - v-model="sendEventRemindersToSharedGroupMembers" - type="checkbox" - class="checkbox" + <CheckboxRadioSwitch id="caldavSendEventRemindersToSharedGroupMembers" + :checked.sync="sendEventRemindersToSharedGroupMembers" + type="switch" :disabled="!sendEventReminders"> - <label for="caldavSendEventRemindersToSharedGroupMembers"> {{ $t('dav', 'Send reminder notifications to calendar sharees as well' ) }} - </label> - <br> + </CheckboxRadioSwitch> <em> {{ $t('dav', 'Reminders are always sent to organizers and attendees.' ) }} </em> </p> <p class="indented"> - <input id="caldavSendEventRemindersPush" - v-model="sendEventRemindersPush" - type="checkbox" - class="checkbox" + <CheckboxRadioSwitch id="caldavSendEventRemindersPush" + :checked.sync="sendEventRemindersPush" + type="switch" :disabled="!sendEventReminders"> - <label for="caldavSendEventRemindersPush"> {{ $t('dav', 'Enable notifications for events via push') }} - </label> + </CheckboxRadioSwitch> </p> - </div> + </SettingsSection> </template> -<style lang="scss" scoped> - .indented { - padding-left: 28px; - } -</style> - <script> import axios from '@nextcloud/axios' import { generateUrl } from '@nextcloud/router' import { loadState } from '@nextcloud/initial-state' +import SettingsSection from '@nextcloud/vue/dist/Components/SettingsSection' +import CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch' const userSyncCalendarsDocUrl = loadState('dav', 'userSyncCalendarsDocUrl', '#') export default { name: 'CalDavSettings', + components: { + CheckboxRadioSwitch, + SettingsSection, + }, + data() { + return { + userSyncCalendarsDocUrl, + } + }, computed: { hint() { const translated = this.$t( @@ -151,3 +143,18 @@ export default { }, } </script> + +<style scoped> + .indented { + padding-left: 28px; + } + /** Use deep selector to affect v-html */ + * >>> a { + text-decoration: underline; + } + .settings-hint { + margin-top: -.2em; + margin-bottom: 1em; + opacity: .7; + } +</style> diff --git a/apps/encryption/tests/Controller/SettingsControllerTest.php b/apps/encryption/tests/Controller/SettingsControllerTest.php index 0576b442f02..219e2c6ae0f 100644 --- a/apps/encryption/tests/Controller/SettingsControllerTest.php +++ b/apps/encryption/tests/Controller/SettingsControllerTest.php @@ -192,15 +192,16 @@ class SettingsControllerTest extends TestCase { ->method('get')->with('loginname')->willReturn('testUser'); $this->userManagerMock - ->expects($this->at(0)) - ->method('checkPassword') - ->with('testUserUid', 'new') - ->willReturn(false); - $this->userManagerMock - ->expects($this->at(1)) + ->expects($this->exactly(2)) ->method('checkPassword') - ->with('testUser', 'new') - ->willReturn(true); + ->withConsecutive( + ['testUserUid', 'new'], + ['testUser', 'new'], + ) + ->willReturnOnConsecutiveCalls( + false, + true, + ); diff --git a/apps/encryption/tests/Crypto/EncryptAllTest.php b/apps/encryption/tests/Crypto/EncryptAllTest.php index e5c10dd67e8..126dbec680e 100644 --- a/apps/encryption/tests/Crypto/EncryptAllTest.php +++ b/apps/encryption/tests/Crypto/EncryptAllTest.php @@ -166,9 +166,9 @@ class EncryptAllTest extends TestCase { ->getMock(); $this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(false); - $encryptAll->expects($this->at(0))->method('createKeyPairs')->with(); - $encryptAll->expects($this->at(1))->method('outputPasswords')->with(); - $encryptAll->expects($this->at(2))->method('encryptAllUsersFiles')->with(); + $encryptAll->expects($this->once())->method('createKeyPairs')->with(); + $encryptAll->expects($this->once())->method('outputPasswords')->with(); + $encryptAll->expects($this->once())->method('encryptAllUsersFiles')->with(); $encryptAll->encryptAll($this->inputInterface, $this->outputInterface); } @@ -196,7 +196,7 @@ class EncryptAllTest extends TestCase { $this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(true); $encryptAll->expects($this->never())->method('createKeyPairs'); $this->keyManager->expects($this->once())->method('validateMasterKey'); - $encryptAll->expects($this->at(0))->method('encryptAllUsersFiles')->with(); + $encryptAll->expects($this->once())->method('encryptAllUsersFiles')->with(); $encryptAll->expects($this->never())->method('outputPasswords'); $encryptAll->encryptAll($this->inputInterface, $this->outputInterface); @@ -277,8 +277,11 @@ class EncryptAllTest extends TestCase { $this->invokePrivate($encryptAll, 'output', [$this->outputInterface]); $this->invokePrivate($encryptAll, 'userPasswords', [['user1' => 'pwd1', 'user2' => 'pwd2']]); - $encryptAll->expects($this->at(0))->method('encryptUsersFiles')->with('user1'); - $encryptAll->expects($this->at(1))->method('encryptUsersFiles')->with('user2'); + $encryptAll->expects($this->exactly(2))->method('encryptUsersFiles') + ->withConsecutive( + ['user1'], + ['user2'], + ); $this->invokePrivate($encryptAll, 'encryptAllUsersFiles'); } @@ -305,16 +308,15 @@ class EncryptAllTest extends TestCase { $this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(false); - $this->view->expects($this->at(0))->method('getDirectoryContent') - ->with('/user1/files')->willReturn( + $this->view->expects($this->exactly(2))->method('getDirectoryContent') + ->withConsecutive( + ['/user1/files'], + ['/user1/files/foo'], + )->willReturnOnConsecutiveCalls( [ ['name' => 'foo', 'type' => 'dir'], ['name' => 'bar', 'type' => 'file'], - ] - ); - - $this->view->expects($this->at(3))->method('getDirectoryContent') - ->with('/user1/files/foo')->willReturn( + ], [ ['name' => 'subfile', 'type' => 'file'] ] @@ -330,8 +332,11 @@ class EncryptAllTest extends TestCase { } ); - $encryptAll->expects($this->at(1))->method('encryptFile')->with('/user1/files/bar'); - $encryptAll->expects($this->at(2))->method('encryptFile')->with('/user1/files/foo/subfile'); + $encryptAll->expects($this->exactly(2))->method('encryptFile') + ->withConsecutive( + ['/user1/files/bar'], + ['/user1/files/foo/subfile'], + ); $this->outputInterface->expects($this->any()) ->method('getFormatter') diff --git a/apps/encryption/tests/KeyManagerTest.php b/apps/encryption/tests/KeyManagerTest.php index 882080c9eab..c08f8b576d9 100644 --- a/apps/encryption/tests/KeyManagerTest.php +++ b/apps/encryption/tests/KeyManagerTest.php @@ -287,8 +287,11 @@ class KeyManagerTest extends TestCase { $this->utilMock->expects($this->once())->method('isMasterKeyEnabled') ->willReturn($useMasterKey); - $this->sessionMock->expects($this->at(0))->method('setStatus') - ->with(Session::INIT_EXECUTED); + $this->sessionMock->expects($this->exactly(2))->method('setStatus') + ->withConsecutive( + [Session::INIT_EXECUTED], + [Session::INIT_SUCCESSFUL], + ); $instance->expects($this->any())->method('getMasterKeyId')->willReturn('masterKeyId'); $instance->expects($this->any())->method('getMasterKeyPassword')->willReturn('masterKeyPassword'); @@ -404,15 +407,16 @@ class KeyManagerTest extends TestCase { $this->invokePrivate($this->instance, 'masterKeyId', ['masterKeyId']); - $this->keyStorageMock->expects($this->at(0)) - ->method('getFileKey') - ->with($path, 'fileKey', 'OC_DEFAULT_MODULE') - ->willReturn(true); - - $this->keyStorageMock->expects($this->at(1)) + $this->keyStorageMock->expects($this->exactly(2)) ->method('getFileKey') - ->with($path, $expectedUid . '.shareKey', 'OC_DEFAULT_MODULE') - ->willReturn(true); + ->withConsecutive( + [$path, 'fileKey', 'OC_DEFAULT_MODULE'], + [$path, $expectedUid . '.shareKey', 'OC_DEFAULT_MODULE'], + ) + ->willReturnOnConsecutiveCalls( + true, + true, + ); $this->utilMock->expects($this->any())->method('isMasterKeyEnabled') ->willReturn($isMasterKeyEnabled); diff --git a/apps/federatedfilesharing/src/components/AdminSettings.vue b/apps/federatedfilesharing/src/components/AdminSettings.vue index cd0f6e5beb6..b3fb2a7675b 100644 --- a/apps/federatedfilesharing/src/components/AdminSettings.vue +++ b/apps/federatedfilesharing/src/components/AdminSettings.vue @@ -124,6 +124,6 @@ export default { console.error(errorMessage, error) } }, - } + }, } </script> diff --git a/apps/files/tests/Command/DeleteOrphanedFilesTest.php b/apps/files/tests/Command/DeleteOrphanedFilesTest.php index bf266bc8229..520d3278e64 100644 --- a/apps/files/tests/Command/DeleteOrphanedFilesTest.php +++ b/apps/files/tests/Command/DeleteOrphanedFilesTest.php @@ -132,14 +132,12 @@ class DeleteOrphanedFilesTest extends TestCase { // parent folder, `files`, ´test` and `welcome.txt` => 4 elements $output - ->expects($this->at(0)) + ->expects($this->exactly(2)) ->method('writeln') - ->with('3 orphaned file cache entries deleted'); - - $output - ->expects($this->at(1)) - ->method('writeln') - ->with('1 orphaned mount entries deleted'); + ->withConsecutive( + ['3 orphaned file cache entries deleted'], + ['1 orphaned mount entries deleted'], + ); $this->command->execute($input, $output); diff --git a/apps/files/tests/Controller/ApiControllerTest.php b/apps/files/tests/Controller/ApiControllerTest.php index 73728bd6a4a..64c70fb2de6 100644 --- a/apps/files/tests/Controller/ApiControllerTest.php +++ b/apps/files/tests/Controller/ApiControllerTest.php @@ -201,12 +201,12 @@ class ApiControllerTest extends TestCase { $mode = 'mtime'; $direction = 'desc'; - $this->config->expects($this->at(0)) + $this->config->expects($this->exactly(2)) ->method('setUserValue') - ->with($this->user->getUID(), 'files', 'file_sorting', $mode); - $this->config->expects($this->at(1)) - ->method('setUserValue') - ->with($this->user->getUID(), 'files', 'file_sorting_direction', $direction); + ->withConsecutive( + [$this->user->getUID(), 'files', 'file_sorting', $mode], + [$this->user->getUID(), 'files', 'file_sorting_direction', $direction], + ); $expected = new HTTP\Response(); $actual = $this->apiController->updateFileSorting($mode, $direction); diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php index cebb50860d3..38f3670d4ca 100644 --- a/apps/files/tests/Controller/ViewControllerTest.php +++ b/apps/files/tests/Controller/ViewControllerTest.php @@ -442,11 +442,11 @@ class ViewControllerTest extends TestCase { ->with('testuser1') ->willReturn($baseFolder); - $baseFolder->expects($this->at(0)) + $baseFolder->expects($this->once()) ->method('getById') ->with(123) ->willReturn([$node]); - $baseFolder->expects($this->at(1)) + $baseFolder->expects($this->once()) ->method('getRelativePath') ->with('/testuser1/files/test/sub') ->willReturn('/test/sub'); @@ -482,11 +482,11 @@ class ViewControllerTest extends TestCase { ->method('getName') ->willReturn('somefile.txt'); - $baseFolder->expects($this->at(0)) + $baseFolder->expects($this->once()) ->method('getById') ->with(123) ->willReturn([$node]); - $baseFolder->expects($this->at(1)) + $baseFolder->expects($this->once()) ->method('getRelativePath') ->with('testuser1/files/test') ->willReturn('/test'); @@ -508,7 +508,7 @@ class ViewControllerTest extends TestCase { ->with('testuser1') ->willReturn($baseFolder); - $baseFolder->expects($this->at(0)) + $baseFolder->expects($this->once()) ->method('getById') ->with(123) ->willReturn([]); @@ -537,11 +537,11 @@ class ViewControllerTest extends TestCase { $baseFolderFiles = $this->getMockBuilder(Folder::class)->getMock(); $baseFolderTrash = $this->getMockBuilder(Folder::class)->getMock(); - $this->rootFolder->expects($this->at(0)) + $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('testuser1') ->willReturn($baseFolderFiles); - $this->rootFolder->expects($this->at(1)) + $this->rootFolder->expects($this->once()) ->method('get') ->with('testuser1/files_trashbin/files/') ->willReturn($baseFolderTrash); @@ -559,11 +559,11 @@ class ViewControllerTest extends TestCase { ->method('getName') ->willReturn('somefile.txt'); - $baseFolderTrash->expects($this->at(0)) + $baseFolderTrash->expects($this->once()) ->method('getById') ->with(123) ->willReturn([$node]); - $baseFolderTrash->expects($this->at(1)) + $baseFolderTrash->expects($this->once()) ->method('getRelativePath') ->with('testuser1/files_trashbin/files/test.d1462861890/sub') ->willReturn('/test.d1462861890/sub'); diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js index a7b7f98e702..8a2d9bc793c 100644 --- a/apps/files_sharing/l10n/zh_CN.js +++ b/apps/files_sharing/l10n/zh_CN.js @@ -194,7 +194,7 @@ OC.L10N.register( "{shareWith} by {initiator}" : "由 {initiator} 通过 {shareWith} 共享", "Shared via link by {initiator}" : "由 {initiator} 通过链接共享", "Mail share ({label})" : "邮件分享 ({label})", - "Share link ({label})" : "分享链接({标签})", + "Share link ({label})" : "分享链接({label})", "Share link" : "共享链接", "Error, please enter proper password and/or expiration date" : "错误,请输入正确的密码和/或过期日期", "No recommendations. Start typing." : "没有推荐。开始输入。", diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json index 5b578917f76..5ae95069bb0 100644 --- a/apps/files_sharing/l10n/zh_CN.json +++ b/apps/files_sharing/l10n/zh_CN.json @@ -192,7 +192,7 @@ "{shareWith} by {initiator}" : "由 {initiator} 通过 {shareWith} 共享", "Shared via link by {initiator}" : "由 {initiator} 通过链接共享", "Mail share ({label})" : "邮件分享 ({label})", - "Share link ({label})" : "分享链接({标签})", + "Share link ({label})" : "分享链接({label})", "Share link" : "共享链接", "Error, please enter proper password and/or expiration date" : "错误,请输入正确的密码和/或过期日期", "No recommendations. Start typing." : "没有推荐。开始输入。", diff --git a/apps/settings/src/admin.js b/apps/settings/src/admin.js index 833ed3e1ea9..eadc91c1759 100644 --- a/apps/settings/src/admin.js +++ b/apps/settings/src/admin.js @@ -117,7 +117,7 @@ window.addEventListener('DOMContentLoaded', () => { }, error: () => { OC.msg.finishedError('#publicShareDisclaimerStatus', t('settings', 'Not saved')) - } + }, } OC.msg.startSaving('#publicShareDisclaimerStatus') @@ -194,7 +194,7 @@ window.addEventListener('DOMContentLoaded', () => { }, error: (xhr) => { OC.msg.finishedError('#mail_settings_msg', xhr.responseJSON) - } + }, }) } @@ -214,7 +214,7 @@ window.addEventListener('DOMContentLoaded', () => { }, error: (xhr) => { OC.msg.finishedError('#mail_settings_msg', xhr.responseJSON) - } + }, }) } @@ -239,7 +239,7 @@ window.addEventListener('DOMContentLoaded', () => { }, error: (xhr) => { OC.msg.finishedError('#sendtestmail_msg', xhr.responseJSON) - } + }, }) }) diff --git a/apps/settings/src/apps.js b/apps/settings/src/apps.js index fafdb531399..61eea28f9d9 100644 --- a/apps/settings/src/apps.js +++ b/apps/settings/src/apps.js @@ -2,5 +2,5 @@ import rebuildNavigation from './service/rebuild-navigation.js' window.OC.Settings = window.OC.Settings || {} window.OC.Settings.Apps = window.OC.Settings.Apps || { - rebuildNavigation + rebuildNavigation, } diff --git a/apps/settings/src/components/BasicSettings/BackgroundJob.vue b/apps/settings/src/components/BasicSettings/BackgroundJob.vue index 5413db38f91..a785d585228 100644 --- a/apps/settings/src/components/BasicSettings/BackgroundJob.vue +++ b/apps/settings/src/components/BasicSettings/BackgroundJob.vue @@ -24,7 +24,6 @@ <SettingsSection :title="t('settings', 'Background jobs')" :description="t('settings', `For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information.`)" :doc-url="backgroundJobsDocUrl"> - <template v-if="lastCron !== 0"> <span v-if="oldExecution" class="error"> {{ t('settings', 'Last job execution ran {time}. Something seems wrong.', {time: relativeTime}) }} @@ -34,7 +33,7 @@ {{ t('settings', "Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider increasing the execution frequency.", {maxAgeRelativeTime}) }} </span> - <span class="warning" v-else-if="longExecutionCron"> + <span v-else-if="longExecutionCron" class="warning"> {{ t('settings', "Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider switching to system cron.", {maxAgeRelativeTime}) }} </span> @@ -43,7 +42,7 @@ </span> </template> - <span class="error" v-else> + <span v-else class="error"> {{ t('settings', 'Background job didn’t run yet!') }} </span> @@ -66,11 +65,11 @@ </CheckboxRadioSwitch> <em>{{ t('settings', 'cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage).') }}</em> - <CheckboxRadioSwitch type="radio" + <CheckboxRadioSwitch v-if="cliBasedCronPossible" + type="radio" :checked.sync="backgroundJobsMode" value="cron" name="backgroundJobsMode" - v-if="cliBasedCronPossible" @update:checked="onBackgroundJobModeChanged"> {{ t('settings', 'Cron (Recommended)') }} </CheckboxRadioSwitch> @@ -137,7 +136,7 @@ export default { }, longExecutionCron() { return Date.now() / 1000 - this.cronMaxAge > 12 * 3600 && this.backgroundJobsMode === 'cron' - } + }, }, methods: { async onBackgroundJobModeChanged(backgroundJobsMode) { @@ -150,10 +149,10 @@ export default { try { const { data } = await axios.post(url, { - value: backgroundJobsMode + value: backgroundJobsMode, }) this.handleResponse({ - status: data.ocs?.meta?.status + status: data.ocs?.meta?.status, }) } catch (e) { this.handleResponse({ @@ -184,7 +183,7 @@ export default { } catch (error) { console.error(error) } - } + }, }, } </script> diff --git a/apps/sharebymail/src/components/AdminSettings.vue b/apps/sharebymail/src/components/AdminSettings.vue index 29b7f051a4b..c84ded9bb2a 100644 --- a/apps/sharebymail/src/components/AdminSettings.vue +++ b/apps/sharebymail/src/components/AdminSettings.vue @@ -71,7 +71,7 @@ export default { value: stringValue, }) this.handleResponse({ - status: data.ocs?.meta?.status + status: data.ocs?.meta?.status, }) } catch (e) { this.handleResponse({ @@ -86,6 +86,6 @@ export default { console.error(errorMessage, error) } }, - } + }, } </script> diff --git a/apps/systemtags/src/app.js b/apps/systemtags/src/app.js index e7e5fea5372..9696f1edbad 100644 --- a/apps/systemtags/src/app.js +++ b/apps/systemtags/src/app.js @@ -52,7 +52,7 @@ // done if handling the event with the file list already // created. shown: true, - systemTagIds: initialTags + systemTagIds: initialTags, } ) diff --git a/apps/user_status/l10n/tr.js b/apps/user_status/l10n/tr.js index b9082b44da5..debf826b984 100644 --- a/apps/user_status/l10n/tr.js +++ b/apps/user_status/l10n/tr.js @@ -7,7 +7,7 @@ OC.L10N.register( "Out sick" : "Hasta", "Vacationing" : "Tatilde", "Working remotely" : "Uzaktan çalışıyor", - "In a call" : "Bir görüşmede", + "In a call" : "Bir çağrıda", "User status" : "Kullanıcı durumu", "View profile" : "Profili görüntüle", "Clear status message after" : "Durum iletisi şu süre sonunda kaldırılsın", diff --git a/apps/user_status/l10n/tr.json b/apps/user_status/l10n/tr.json index f0a52887536..401d5770f83 100644 --- a/apps/user_status/l10n/tr.json +++ b/apps/user_status/l10n/tr.json @@ -5,7 +5,7 @@ "Out sick" : "Hasta", "Vacationing" : "Tatilde", "Working remotely" : "Uzaktan çalışıyor", - "In a call" : "Bir görüşmede", + "In a call" : "Bir çağrıda", "User status" : "Kullanıcı durumu", "View profile" : "Profili görüntüle", "Clear status message after" : "Durum iletisi şu süre sonunda kaldırılsın", diff --git a/apps/user_status/src/menu.js b/apps/user_status/src/menu.js index c8d007d98a0..19d21939544 100644 --- a/apps/user_status/src/menu.js +++ b/apps/user_status/src/menu.js @@ -41,7 +41,7 @@ const propsData = { preloadedUserStatus: { message: userStatusData.message, icon: userStatusData.icon, - status: userStatusData.status + status: userStatusData.status, }, user: avatarDiv.dataset.user, displayName: avatarDiv.dataset.displayname, diff --git a/build/integration/composer.json b/build/integration/composer.json index 0ab212b3cdf..a9ba7980064 100644 --- a/build/integration/composer.json +++ b/build/integration/composer.json @@ -1,6 +1,7 @@ { "require-dev": { - "phpunit/phpunit": "~6.5", + "phpunit/phpunit": "^9", + "dms/phpunit-arraysubset-asserts": "^0.4", "behat/behat": "~3.10.0", "guzzlehttp/guzzle": "7.4.2", "jarnaiz/behat-junit-formatter": "^1.3", diff --git a/build/integration/features/bootstrap/AppConfiguration.php b/build/integration/features/bootstrap/AppConfiguration.php index 8cb9d1e1f02..740a8b169a6 100644 --- a/build/integration/features/bootstrap/AppConfiguration.php +++ b/build/integration/features/bootstrap/AppConfiguration.php @@ -96,9 +96,9 @@ trait AppConfiguration { $this->sendingTo('get', '/cloud/apps?filter=enabled'); $this->theHTTPStatusCodeShouldBe('200'); if ($enabled) { - Assert::assertContains('testing', $this->response->getBody()->getContents()); + Assert::assertStringContainsString('testing', $this->response->getBody()->getContents()); } else { - Assert::assertNotContains('testing', $this->response->getBody()->getContents()); + Assert::assertStringNotContainsString('testing', $this->response->getBody()->getContents()); } } diff --git a/build/integration/features/bootstrap/CommandLine.php b/build/integration/features/bootstrap/CommandLine.php index 0320f68f340..cba254551e0 100644 --- a/build/integration/features/bootstrap/CommandLine.php +++ b/build/integration/features/bootstrap/CommandLine.php @@ -141,13 +141,13 @@ trait CommandLine { * @Then /^the command output contains the text "([^"]*)"$/ */ public function theCommandOutputContainsTheText($text) { - Assert::assertContains($text, $this->lastStdOut, 'The command did not output the expected text on stdout'); + Assert::assertStringContainsString($text, $this->lastStdOut, 'The command did not output the expected text on stdout'); } /** * @Then /^the command error output contains the text "([^"]*)"$/ */ public function theCommandErrorOutputContainsTheText($text) { - Assert::assertContains($text, $this->lastStdErr, 'The command did not output the expected text on stderr'); + Assert::assertStringContainsString($text, $this->lastStdErr, 'The command did not output the expected text on stderr'); } } diff --git a/build/integration/features/bootstrap/CommandLineContext.php b/build/integration/features/bootstrap/CommandLineContext.php index 41756e448bf..afe17cd75a4 100644 --- a/build/integration/features/bootstrap/CommandLineContext.php +++ b/build/integration/features/bootstrap/CommandLineContext.php @@ -147,6 +147,6 @@ class CommandLineContext implements \Behat\Behat\Context\Context { * @Then /^transfer folder name contains "([^"]+)"$/ */ public function transferFolderNameContains($text) { - Assert::assertContains($text, $this->lastTransferPath); + Assert::assertStringContainsString($text, $this->lastTransferPath); } } diff --git a/build/integration/features/bootstrap/Provisioning.php b/build/integration/features/bootstrap/Provisioning.php index 1b01a636918..7fb4188f919 100644 --- a/build/integration/features/bootstrap/Provisioning.php +++ b/build/integration/features/bootstrap/Provisioning.php @@ -175,7 +175,7 @@ trait Provisioning { Assert::assertTrue(in_array($expected, $value['element'], true)); } } elseif (isset($value[0])) { - Assert::assertEquals($setting[1], $value[0], "", 0.0, 10, true); + Assert::assertEqualsCanonicalizing($setting[1], $value[0]); } else { Assert::assertEquals('', $setting[1]); } @@ -206,7 +206,7 @@ trait Provisioning { foreach ($settings->getRows() as $setting) { $value = json_decode(json_encode($groupDetails->{$setting[0]}), 1); if (isset($value[0])) { - Assert::assertEquals($setting[1], $value[0], "", 0.0, 10, true); + Assert::assertEqualsCanonicalizing($setting[1], $value[0]); } else { Assert::assertEquals('', $setting[1]); } @@ -399,7 +399,7 @@ trait Provisioning { $this->response = $client->get($fullUrl, $options); $groups = [$group]; $respondedArray = $this->getArrayOfGroupsResponded($this->response); - Assert::assertNotEquals($groups, $respondedArray, "", 0.0, 10, true); + Assert::assertNotEqualsCanonicalizing($groups, $respondedArray); Assert::assertEquals(200, $this->response->getStatusCode()); } @@ -658,7 +658,7 @@ trait Provisioning { $users = $usersList->getRows(); $usersSimplified = $this->simplifyArray($users); $respondedArray = $this->getArrayOfUsersResponded($this->response); - Assert::assertEquals($usersSimplified, $respondedArray, "", 0.0, 10, true); + Assert::assertEqualsCanonicalizing($usersSimplified, $respondedArray); } } @@ -698,7 +698,7 @@ trait Provisioning { $groups = $groupsList->getRows(); $groupsSimplified = $this->simplifyArray($groups); $respondedArray = $this->getArrayOfGroupsResponded($this->response); - Assert::assertEquals($groupsSimplified, $respondedArray, "", 0.0, 10, true); + Assert::assertEqualsCanonicalizing($groupsSimplified, $respondedArray); } } @@ -711,7 +711,7 @@ trait Provisioning { $groups = $groupsList->getRows(); $groupsSimplified = $this->simplifyArray($groups); $respondedArray = $this->getArrayOfSubadminsResponded($this->response); - Assert::assertEquals($groupsSimplified, $respondedArray, "", 0.0, 10, true); + Assert::assertEqualsCanonicalizing($groupsSimplified, $respondedArray); } } @@ -724,7 +724,7 @@ trait Provisioning { $apps = $appList->getRows(); $appsSimplified = $this->simplifyArray($apps); $respondedArray = $this->getArrayOfAppsResponded($this->response); - Assert::assertEquals($appsSimplified, $respondedArray, "", 0.0, 10, true); + Assert::assertEqualsCanonicalizing($appsSimplified, $respondedArray); } } @@ -1000,7 +1000,7 @@ trait Provisioning { Assert::assertFalse(in_array($expected, $value, true)); } } else { - Assert::assertNotEquals($setting[1], $value[0], "", 0.0, 10, true); + Assert::assertNotEqualsCanonicalizing($setting[1], $value[0]); } } else { Assert::assertNotEquals('', $setting[1]); diff --git a/build/integration/features/bootstrap/Trashbin.php b/build/integration/features/bootstrap/Trashbin.php index f286147e3eb..998720b67b2 100644 --- a/build/integration/features/bootstrap/Trashbin.php +++ b/build/integration/features/bootstrap/Trashbin.php @@ -22,6 +22,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/> * */ +use DMS\PHPUnitExtensions\ArraySubset\Assert as AssertArraySubset; use PHPUnit\Framework\Assert; require __DIR__ . '/../../vendor/autoload.php'; @@ -138,7 +139,7 @@ trait Trashbin { return $item['{http://nextcloud.org/ns}trashbin-filename']; }, $elementList)); - Assert::assertArraySubset([$name], array_values($trashContent)); + AssertArraySubset::assertArraySubset([$name], array_values($trashContent)); } /** diff --git a/build/psalm-baseline.xml b/build/psalm-baseline.xml index ae99d3e7e57..1f15bc09428 100644 --- a/build/psalm-baseline.xml +++ b/build/psalm-baseline.xml @@ -472,11 +472,6 @@ <code>tryTokenLogin</code> </UndefinedInterfaceMethod> </file> - <file src="apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php"> - <InvalidScalarArgument occurrences="1"> - <code>$node->getId()</code> - </InvalidScalarArgument> - </file> <file src="apps/dav/lib/Connector/Sabre/Directory.php"> <InvalidPropertyAssignmentValue occurrences="1"> <code>$nodes</code> diff --git a/console.php b/console.php index 7903ad25c70..147cff151eb 100644 --- a/console.php +++ b/console.php @@ -84,8 +84,9 @@ try { exit(1); } - if (!function_exists('pcntl_signal') && !in_array('--no-warnings', $argv)) { + if (!(function_exists('pcntl_signal') && function_exists('pcntl_signal_dispatch')) && !in_array('--no-warnings', $argv)) { echo "The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see https://www.php.net/manual/en/book.pcntl.php" . PHP_EOL; + echo "Additionally the function 'pcntl_signal' and 'pcntl_signal_dispatch' need to be enabeld in your php.ini." . PHP_EOL; } $application = new Application( diff --git a/core/l10n/ru.js b/core/l10n/ru.js index b5d525d3951..35c1143faea 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -64,27 +64,28 @@ OC.L10N.register( "The following apps have been disabled: %s" : "Были отключены следующие приложения: %s", "Already up to date" : "Не нуждается в обновлении", "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Веб-сервер ещё не настроен должным образом для синхронизации файлов: похоже, что не работоспособен интерфейс WebDAV.", - "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the {linkstart}documentation ↗{linkend}." : "Ваш веб-сервер настроен некорректно для разрешения \"{url}\". Для получения дополнительной информации смотрите нашу {linkstart}документацию ↗{linkend}.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the {linkstart}documentation ↗{linkend}." : "Веб-сервер не настроен должным образом для разрешения «{url}». Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "Your web server is not properly set up to resolve \"{url}\". This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx at it's {linkstart}documentation page ↗{linkend}. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Веб-сервер не настроен должным образом для разрешения пути «{url}». Скорее всего, это связано с конфигурацией веб-сервера, которая не была обновлена для непосредственного доступа к этой папке. Сравните свою конфигурацию с поставляемыми правилами перезаписи в файле «.htaccess» для Apache или предоставленными в документации для Nginx на {linkstart}странице документации ↗{linkend}. Для Nginx, как правило, требуется обновить строки, начинающиеся с «location ~».", "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our {linkstart}documentation ↗{linkend}." : "Веб-сервер не настроен должным образом для передачи файлов шрифтов в формате .woff2, что необходимо для правильной работы Nextcloud версии 15. Как правило, это связано с конфигурацией веб-сервера Nginx. Сравните используемую конфигурацию с рекомендуемой конфигурацией из {linkstart}документации ↗{linkend}.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP не настроен правильно для получения переменных системного окружения. Запрос getenv(\"PATH\") возвращает пустые результаты.", - "Please check the {linkstart}installation documentation ↗{linkend} for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Пожалуйста, обратитесь к {linkstart}руководству по установке ↗{linkend} для получения подсказок по настройке php на вашем сервере, особенно если используете php-fpm.", + "Please check the {linkstart}installation documentation ↗{linkend} for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Обратитесь к {linkstart}документации по установке ↗{linkend} для получения информации по правильной настройке PHP, что особенно важно в случае использования php-fpm.", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Файл конфигурации доступен только для чтения, что не позволяет изменять некоторые настройки из веб-интерфейса. Обратите внимание, что для установки обновлений потребуется разрешить запись в файл конфигурации.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "База данных не использует режиме изоляции транзакций «READ COMMITED». Такое поведение может вызвать проблемы при одновременном выполнении нескольких операций.", "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Отсутствует модуль PHP «fileinfo». Настоятельно рекомендуется включить этот модуль для улучшения определения MIME-типов файлов.", - "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the {linkstart}documentation ↗{linkend} for more information." : "Блокировка передаваемых файлов отключена, это может вызвать ошибки. Для решения проблемы включите параметр 'filelocking.enabled' в файле config.php. Для получения дополнительной информации обратитесь к {linkstart}документации ↗{linkend}.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the {linkstart}documentation ↗{linkend} for more information." : "Отключена блокировка передаваемых файлов, что может привести к состоянию гонки. Для предупреждения возможных проблем включите параметр «filelocking.enabled» в файле «config.php». Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective {linkstart}ISO 3166-1 code ↗{linkend} of the region to your config file." : "Не указан регион размещения этого сервера Nextcloud, что требуется для возможности проверки номеров телефонов без указания кода страны. Чтобы разрешить пользователям сервера указывать номера телефонов без указания кода страны, добавьте параметр «default_phone_region» с соответствующим кодом страны в соответствии с {linkstart}ISO 3166-1↗{linkend}.", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Ошибка запуска задачи планировщика с использованием интерфейса командной строки. Подробное сообщение об ошибке:", "Last background job execution ran {relativeTime}. Something seems wrong. {linkstart}Check the background job settings ↗{linkend}." : "Последняя фоновая задача была выполнена {relativeTime}. Похоже, что-то не в порядке.{linkstart}Проверьте настройки фонового задания ↗{linkend}. ", "This is the unsupported community build of Nextcloud. Given the size of this instance, performance, reliability and scalability cannot be guaranteed. Push notifications have been disabled to avoid overloading our free service. Learn more about the benefits of Nextcloud Enterprise at nextcloud.com/enterprise." : "Это неподдерживаемая сборка сообщества Nextcloud. Размер этого развёртывания не позволяет, гарантировать производительность, надежность и масштабируемость. Push-уведомления отключены, чтобы не перегружать бесплатный сервис разработчиков Nextcloud. Узнайте больше о преимуществах корпоративной версии Nextcloud на сайте nextcloud.com/enterprise.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Этот сервер не подключён к интернету: множество конечных устройств не могут быть доступны. Это означает, что не будут работать некоторые функции, такие как подключение внешнего хранилища, уведомления об обновлениях или установка сторонних приложений. Так же могут не работать удалённый доступ к файлам и отправка уведомлений по электронной почте. Для использования всех возможностей рекомендуется разрешить серверу доступ в Интернет.", - "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Не настроена система кеширования. Для увеличения производительности сервера настройте memcache. Для получения дополнительной информации смотрите нашу {linkstart}документацию ↗{linkend}.", - "No suitable source for randomness found by PHP which is highly discouraged for security reasons. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Не найден подходящий источник случайных значений для PHP, что сильно влияет на уровень безопасности. Более подробная информация доступна в {linkstart}документации ↗{linkend}.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Не найден подходящий источник случайных значений для PHP, что сильно влияет на уровень безопасности. Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Используется PHP {version}. Рекомендуется обновить PHP, чтобы воспользоваться {linkstart}улучшениями производительности и безопасности, внедрёнными PHP Group ↗{linkend}, как только новая версия будет доступна в вашем дистрибутиве. ", "Nextcloud 23 is the last release supporting PHP 7.3. Nextcloud 24 requires at least PHP 7.4." : "Nextcloud 23 - это последний релиз, поддерживающий PHP 7.3. Для Nextcloud 24 необходимо иметь минимальную версию PHP 7.4.", - "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Заголовки обратного прокси настроены неправильно, либо вы подключены к серверу Nextcloud через доверенный прокси. Если Nextcloud открыт не через доверенный прокси, то это проблема безопасности, которая может позволить атакующему подделать IP-адрес, определяемый сервером Nextcloud. Дополнительная информация содержится в {linkstart}документации ↗{linkend}.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Заголовки обратного прокси настроены неправильно, либо подключение к серверу Nextcloud осуществляется через доверенный прокси. Если Nextcloud открыт не через доверенный прокси, то это проблема безопасности, которая может позволить атакующему подделать IP-адрес, определяемый сервером Nextcloud. Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the {linkstart}memcached wiki about both modules ↗{linkend}." : "Memcached настроен на распределенный кеш, но установлен не поддерживаемый модуль PHP \"memcache\". \\OC\\Memcache\\Memcached поддерживает только модуль \"memcached\", но не \"memcache\". См. {linkstart}вики-страницу memcached об обоих модулях ↗{linkend}.", - "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the {linkstart1}documentation ↗{linkend}. ({linkstart2}List of invalid files…{linkend} / {linkstart3}Rescan…{linkend})" : "Некоторые файлы не прошли проверку целостности. Для получения дополнительной информации о том, как устранить данную проблему, смотрите нашу {linkstart1}документацию ↗{linkend}. ({linkstart2}Список проблемных файлов…{linkend} / {linkstart3}Сканировать ещё раз…{linkend})", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the {linkstart1}documentation ↗{linkend}. ({linkstart2}List of invalid files…{linkend} / {linkstart3}Rescan…{linkend})" : "Некоторые файлы не прошли проверку целостности. Дополнительная информация о том, как устранить данную проблему, представлена в {linkstart1}документации ↗{linkend}. ({linkstart2}Список проблемных файлов…{linkend} / {linkstart3}Сканировать ещё раз…{linkend})", + "The PHP OPcache module is not properly configured. See the {linkstart}documentation ↗{linkend} for more information." : "Модуль OPcache подсистемы PHP настроен некорректно. Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "Недоступна функция PHP «set_time_limit». В случае остановки выполнения сценариев во время работы это может привести к повреждению установки сервера Nextcloud. Настоятельно рекомендуется включить эту функцию.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Установленная версия PHP не поддерживает библиотеку FreeType, что приводит к неверному отображению изображений профиля и интерфейса настроек.", "Missing index \"{indexName}\" in table \"{tableName}\"." : "В таблице «{tableName}» отсутствует индекс «{indexName}».", @@ -94,9 +95,13 @@ OC.L10N.register( "Missing optional column \"{columnName}\" in table \"{tableName}\"." : "Отсутствует необязательный столбец \"{columnName}\" в таблице \"{tableName}\".", "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "В базе данных отсутствуют некоторые необязательные столбцы. Из-за того, что добавление столбцов в больших таблицах может занять некоторое время, они не добавляются автоматически, если они могут быть необязательными. Запустив «occ db:add-missing-columns», эти недостающие столбцы можно добавить вручную, пока экземпляр продолжает работать. После добавления столбцов некоторые функции могут улучшить отзывчивость или удобство использования.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "В системе не установлены рекомендуемые модули PHP. Для улучшения производительности и совместимости рекомендуется установить эти модули.", + "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Для создания значка favicon приложением «Оформления» необходимо установить и активировать модуль «imagic» подсистемы PHP. ", + "The PHP modules \"gmp\" and/or \"bcmath\" are not enabled. If you use WebAuthn passwordless authentication, these modules are required." : "Модули «gmp» и / или «bcmath» подсистемы PHP не активированы. Эти модули необходимы при использовании аутентификации без пароля WebAuth.", "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "Модуль php-imagick в этом случае не поддерживает SVG. Для лучшей совместимости рекомендуется установить его.", + "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running \"occ db:convert-filecache-bigint\" those pending changes could be applied manually. This operation needs to be made while the instance is offline. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Некоторые поля базы данных не были преобразованы в тип big int. Операция преобразования таких полей может занять продолжительное время и должа быть запущена вручную. Чтобы выполнить преобразование, необходимо включить режим обслуживания и запустить в терминале команду «occ db:convert-filecache-bigint». Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "В настоящее время в качестве механизма БД используется SQLite. Для более крупных развёртываний рекомендуется перейти к использованию других баз данных.", "This is particularly recommended when using the desktop client for file synchronisation." : "Такой переход рекомендован и при использовании приложений-клиентов для синхронизации файлов.", + "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Для перехода на другую базу данных используйте команду: «occ db:convert-type» или обратитесь к {linkstart}документации ↗{linkend}.", "The PHP memory limit is below the recommended value of 512MB." : "Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Владельцем некоторых каталогов не является учётная запись, под которой исполняется процесс web-сервера. Как правило это случается при установке вручную. Проверьте права доступа к следующим каталогам приложения:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL используется в качестве базы данных, но не поддерживает 4-байтовые символы. Чтобы иметь возможность обрабатывать 4-байтовые символы (например, смайлики) без проблем в именах файлов или комментариях, рекомендуется включить 4-байтовую поддержку в MySQL. Для получения более подробной информации обратитесь к {linkstart}документации ↗{linkend}.", @@ -180,8 +185,10 @@ OC.L10N.register( "{user} has not added any info yet" : "Пользователь {user} ещё не добавил(а) никакой информации", "Error opening the user status modal, try hard refreshing the page" : "Произошла ошибка при открытии модального окна пользователя, попробуйте обновить страницу", "Reset search" : "Очистить поиск", + "Start search" : "Запустить поиск", "Search for {name} only" : "Искать только для «{name}»", "No results for {query}" : "По запросу «{query}» ничего не найдено", + "Press enter to start searching" : "Нажмите Enter для запуска поиска", "Start typing to search" : "Начините вводить символы для поиска", "Loading more results …" : "Загрузка дополнительных результатов…", "Load more results" : "Загрузить дополнительные результаты", @@ -293,7 +300,7 @@ OC.L10N.register( "Trace" : "Трассировка", "Security warning" : "Предупреждение безопасности", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Правила файла .htaccess не выполняются. Возможно, каталог данных и файлы свободно доступны из интернета.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Информацию о правильной настройке сервера можно найти в <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">документации</a>.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Сведения о правильной настройке сервера можно найти в <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">документации</a>.", "Create an <strong>admin account</strong>" : "Создать <strong>учётную запись администратора</strong>", "Username" : "Имя пользователя", "Show password" : "Показать пароль", @@ -323,6 +330,7 @@ OC.L10N.register( "Get your own free account" : "Создайте свою бесплатную учётную запись", "Skip to main content" : "Перейти к основному содержанию", "Skip to navigation of app" : "Перейти к навигации по приложению", + "%s's homepage" : "Домашняя страница %s", "More apps" : "Ещё приложения", "More" : "Дополнительно", "More apps menu" : "Меню дополнительных приложений", @@ -337,13 +345,17 @@ OC.L10N.register( "Grant access" : "Разрешить доступ", "Alternative log in using app token" : "Войти по токену приложения", "Account access" : "Доступ к аккаунту", + "Currently logged in as %1$s (%2$s)." : "Вход в систему выполнен под именем %1$s (%2$s).", "You are about to grant %1$s access to your %2$s account." : "Вы собираетесь разрешить приложению %1$s доступ к своей учётной записи %2$s.", "Account connected" : "Аккаунт подключен", "Your client should now be connected!" : "Приложение-клиент подключено.", "You can close this window." : "Можете закрыть это окно.", "This share is password-protected" : "Доступ к этому ресурсу защищён паролем", "The password is wrong. Try again." : "Неверный пароль. Повторите попытку.", + "Please type in your email address to request a temporary password" : "Введите свой адрес эл. почты для запроса временного пароля", "Email address" : "Адрес эл. почты", + "Password sent!" : "Пароль отправлен", + "You are not authorized to request a password for this share" : "У вас недостаточно прав для запроса пароля для доступа к этому общему ресурсу", "Request password" : "Запрос пароля", "Go to %s" : "Перейти к %s", "Two-factor authentication" : "Двухфакторная аутентификация", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index 4a72277895b..06e49be8a75 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -62,27 +62,28 @@ "The following apps have been disabled: %s" : "Были отключены следующие приложения: %s", "Already up to date" : "Не нуждается в обновлении", "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Веб-сервер ещё не настроен должным образом для синхронизации файлов: похоже, что не работоспособен интерфейс WebDAV.", - "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the {linkstart}documentation ↗{linkend}." : "Ваш веб-сервер настроен некорректно для разрешения \"{url}\". Для получения дополнительной информации смотрите нашу {linkstart}документацию ↗{linkend}.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the {linkstart}documentation ↗{linkend}." : "Веб-сервер не настроен должным образом для разрешения «{url}». Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "Your web server is not properly set up to resolve \"{url}\". This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx at it's {linkstart}documentation page ↗{linkend}. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Веб-сервер не настроен должным образом для разрешения пути «{url}». Скорее всего, это связано с конфигурацией веб-сервера, которая не была обновлена для непосредственного доступа к этой папке. Сравните свою конфигурацию с поставляемыми правилами перезаписи в файле «.htaccess» для Apache или предоставленными в документации для Nginx на {linkstart}странице документации ↗{linkend}. Для Nginx, как правило, требуется обновить строки, начинающиеся с «location ~».", "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our {linkstart}documentation ↗{linkend}." : "Веб-сервер не настроен должным образом для передачи файлов шрифтов в формате .woff2, что необходимо для правильной работы Nextcloud версии 15. Как правило, это связано с конфигурацией веб-сервера Nginx. Сравните используемую конфигурацию с рекомендуемой конфигурацией из {linkstart}документации ↗{linkend}.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP не настроен правильно для получения переменных системного окружения. Запрос getenv(\"PATH\") возвращает пустые результаты.", - "Please check the {linkstart}installation documentation ↗{linkend} for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Пожалуйста, обратитесь к {linkstart}руководству по установке ↗{linkend} для получения подсказок по настройке php на вашем сервере, особенно если используете php-fpm.", + "Please check the {linkstart}installation documentation ↗{linkend} for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Обратитесь к {linkstart}документации по установке ↗{linkend} для получения информации по правильной настройке PHP, что особенно важно в случае использования php-fpm.", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Файл конфигурации доступен только для чтения, что не позволяет изменять некоторые настройки из веб-интерфейса. Обратите внимание, что для установки обновлений потребуется разрешить запись в файл конфигурации.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "База данных не использует режиме изоляции транзакций «READ COMMITED». Такое поведение может вызвать проблемы при одновременном выполнении нескольких операций.", "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Отсутствует модуль PHP «fileinfo». Настоятельно рекомендуется включить этот модуль для улучшения определения MIME-типов файлов.", - "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the {linkstart}documentation ↗{linkend} for more information." : "Блокировка передаваемых файлов отключена, это может вызвать ошибки. Для решения проблемы включите параметр 'filelocking.enabled' в файле config.php. Для получения дополнительной информации обратитесь к {linkstart}документации ↗{linkend}.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the {linkstart}documentation ↗{linkend} for more information." : "Отключена блокировка передаваемых файлов, что может привести к состоянию гонки. Для предупреждения возможных проблем включите параметр «filelocking.enabled» в файле «config.php». Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective {linkstart}ISO 3166-1 code ↗{linkend} of the region to your config file." : "Не указан регион размещения этого сервера Nextcloud, что требуется для возможности проверки номеров телефонов без указания кода страны. Чтобы разрешить пользователям сервера указывать номера телефонов без указания кода страны, добавьте параметр «default_phone_region» с соответствующим кодом страны в соответствии с {linkstart}ISO 3166-1↗{linkend}.", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Ошибка запуска задачи планировщика с использованием интерфейса командной строки. Подробное сообщение об ошибке:", "Last background job execution ran {relativeTime}. Something seems wrong. {linkstart}Check the background job settings ↗{linkend}." : "Последняя фоновая задача была выполнена {relativeTime}. Похоже, что-то не в порядке.{linkstart}Проверьте настройки фонового задания ↗{linkend}. ", "This is the unsupported community build of Nextcloud. Given the size of this instance, performance, reliability and scalability cannot be guaranteed. Push notifications have been disabled to avoid overloading our free service. Learn more about the benefits of Nextcloud Enterprise at nextcloud.com/enterprise." : "Это неподдерживаемая сборка сообщества Nextcloud. Размер этого развёртывания не позволяет, гарантировать производительность, надежность и масштабируемость. Push-уведомления отключены, чтобы не перегружать бесплатный сервис разработчиков Nextcloud. Узнайте больше о преимуществах корпоративной версии Nextcloud на сайте nextcloud.com/enterprise.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Этот сервер не подключён к интернету: множество конечных устройств не могут быть доступны. Это означает, что не будут работать некоторые функции, такие как подключение внешнего хранилища, уведомления об обновлениях или установка сторонних приложений. Так же могут не работать удалённый доступ к файлам и отправка уведомлений по электронной почте. Для использования всех возможностей рекомендуется разрешить серверу доступ в Интернет.", - "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Не настроена система кеширования. Для увеличения производительности сервера настройте memcache. Для получения дополнительной информации смотрите нашу {linkstart}документацию ↗{linkend}.", - "No suitable source for randomness found by PHP which is highly discouraged for security reasons. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Не найден подходящий источник случайных значений для PHP, что сильно влияет на уровень безопасности. Более подробная информация доступна в {linkstart}документации ↗{linkend}.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Не найден подходящий источник случайных значений для PHP, что сильно влияет на уровень безопасности. Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Используется PHP {version}. Рекомендуется обновить PHP, чтобы воспользоваться {linkstart}улучшениями производительности и безопасности, внедрёнными PHP Group ↗{linkend}, как только новая версия будет доступна в вашем дистрибутиве. ", "Nextcloud 23 is the last release supporting PHP 7.3. Nextcloud 24 requires at least PHP 7.4." : "Nextcloud 23 - это последний релиз, поддерживающий PHP 7.3. Для Nextcloud 24 необходимо иметь минимальную версию PHP 7.4.", - "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Заголовки обратного прокси настроены неправильно, либо вы подключены к серверу Nextcloud через доверенный прокси. Если Nextcloud открыт не через доверенный прокси, то это проблема безопасности, которая может позволить атакующему подделать IP-адрес, определяемый сервером Nextcloud. Дополнительная информация содержится в {linkstart}документации ↗{linkend}.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Заголовки обратного прокси настроены неправильно, либо подключение к серверу Nextcloud осуществляется через доверенный прокси. Если Nextcloud открыт не через доверенный прокси, то это проблема безопасности, которая может позволить атакующему подделать IP-адрес, определяемый сервером Nextcloud. Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the {linkstart}memcached wiki about both modules ↗{linkend}." : "Memcached настроен на распределенный кеш, но установлен не поддерживаемый модуль PHP \"memcache\". \\OC\\Memcache\\Memcached поддерживает только модуль \"memcached\", но не \"memcache\". См. {linkstart}вики-страницу memcached об обоих модулях ↗{linkend}.", - "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the {linkstart1}documentation ↗{linkend}. ({linkstart2}List of invalid files…{linkend} / {linkstart3}Rescan…{linkend})" : "Некоторые файлы не прошли проверку целостности. Для получения дополнительной информации о том, как устранить данную проблему, смотрите нашу {linkstart1}документацию ↗{linkend}. ({linkstart2}Список проблемных файлов…{linkend} / {linkstart3}Сканировать ещё раз…{linkend})", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the {linkstart1}documentation ↗{linkend}. ({linkstart2}List of invalid files…{linkend} / {linkstart3}Rescan…{linkend})" : "Некоторые файлы не прошли проверку целостности. Дополнительная информация о том, как устранить данную проблему, представлена в {linkstart1}документации ↗{linkend}. ({linkstart2}Список проблемных файлов…{linkend} / {linkstart3}Сканировать ещё раз…{linkend})", + "The PHP OPcache module is not properly configured. See the {linkstart}documentation ↗{linkend} for more information." : "Модуль OPcache подсистемы PHP настроен некорректно. Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "Недоступна функция PHP «set_time_limit». В случае остановки выполнения сценариев во время работы это может привести к повреждению установки сервера Nextcloud. Настоятельно рекомендуется включить эту функцию.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Установленная версия PHP не поддерживает библиотеку FreeType, что приводит к неверному отображению изображений профиля и интерфейса настроек.", "Missing index \"{indexName}\" in table \"{tableName}\"." : "В таблице «{tableName}» отсутствует индекс «{indexName}».", @@ -92,9 +93,13 @@ "Missing optional column \"{columnName}\" in table \"{tableName}\"." : "Отсутствует необязательный столбец \"{columnName}\" в таблице \"{tableName}\".", "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "В базе данных отсутствуют некоторые необязательные столбцы. Из-за того, что добавление столбцов в больших таблицах может занять некоторое время, они не добавляются автоматически, если они могут быть необязательными. Запустив «occ db:add-missing-columns», эти недостающие столбцы можно добавить вручную, пока экземпляр продолжает работать. После добавления столбцов некоторые функции могут улучшить отзывчивость или удобство использования.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "В системе не установлены рекомендуемые модули PHP. Для улучшения производительности и совместимости рекомендуется установить эти модули.", + "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Для создания значка favicon приложением «Оформления» необходимо установить и активировать модуль «imagic» подсистемы PHP. ", + "The PHP modules \"gmp\" and/or \"bcmath\" are not enabled. If you use WebAuthn passwordless authentication, these modules are required." : "Модули «gmp» и / или «bcmath» подсистемы PHP не активированы. Эти модули необходимы при использовании аутентификации без пароля WebAuth.", "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "Модуль php-imagick в этом случае не поддерживает SVG. Для лучшей совместимости рекомендуется установить его.", + "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running \"occ db:convert-filecache-bigint\" those pending changes could be applied manually. This operation needs to be made while the instance is offline. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Некоторые поля базы данных не были преобразованы в тип big int. Операция преобразования таких полей может занять продолжительное время и должа быть запущена вручную. Чтобы выполнить преобразование, необходимо включить режим обслуживания и запустить в терминале команду «occ db:convert-filecache-bigint». Дополнительная информация представлена в {linkstart}документации ↗{linkend}.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "В настоящее время в качестве механизма БД используется SQLite. Для более крупных развёртываний рекомендуется перейти к использованию других баз данных.", "This is particularly recommended when using the desktop client for file synchronisation." : "Такой переход рекомендован и при использовании приложений-клиентов для синхронизации файлов.", + "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Для перехода на другую базу данных используйте команду: «occ db:convert-type» или обратитесь к {linkstart}документации ↗{linkend}.", "The PHP memory limit is below the recommended value of 512MB." : "Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Владельцем некоторых каталогов не является учётная запись, под которой исполняется процесс web-сервера. Как правило это случается при установке вручную. Проверьте права доступа к следующим каталогам приложения:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL используется в качестве базы данных, но не поддерживает 4-байтовые символы. Чтобы иметь возможность обрабатывать 4-байтовые символы (например, смайлики) без проблем в именах файлов или комментариях, рекомендуется включить 4-байтовую поддержку в MySQL. Для получения более подробной информации обратитесь к {linkstart}документации ↗{linkend}.", @@ -178,8 +183,10 @@ "{user} has not added any info yet" : "Пользователь {user} ещё не добавил(а) никакой информации", "Error opening the user status modal, try hard refreshing the page" : "Произошла ошибка при открытии модального окна пользователя, попробуйте обновить страницу", "Reset search" : "Очистить поиск", + "Start search" : "Запустить поиск", "Search for {name} only" : "Искать только для «{name}»", "No results for {query}" : "По запросу «{query}» ничего не найдено", + "Press enter to start searching" : "Нажмите Enter для запуска поиска", "Start typing to search" : "Начините вводить символы для поиска", "Loading more results …" : "Загрузка дополнительных результатов…", "Load more results" : "Загрузить дополнительные результаты", @@ -291,7 +298,7 @@ "Trace" : "Трассировка", "Security warning" : "Предупреждение безопасности", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Правила файла .htaccess не выполняются. Возможно, каталог данных и файлы свободно доступны из интернета.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Информацию о правильной настройке сервера можно найти в <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">документации</a>.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Сведения о правильной настройке сервера можно найти в <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">документации</a>.", "Create an <strong>admin account</strong>" : "Создать <strong>учётную запись администратора</strong>", "Username" : "Имя пользователя", "Show password" : "Показать пароль", @@ -321,6 +328,7 @@ "Get your own free account" : "Создайте свою бесплатную учётную запись", "Skip to main content" : "Перейти к основному содержанию", "Skip to navigation of app" : "Перейти к навигации по приложению", + "%s's homepage" : "Домашняя страница %s", "More apps" : "Ещё приложения", "More" : "Дополнительно", "More apps menu" : "Меню дополнительных приложений", @@ -335,13 +343,17 @@ "Grant access" : "Разрешить доступ", "Alternative log in using app token" : "Войти по токену приложения", "Account access" : "Доступ к аккаунту", + "Currently logged in as %1$s (%2$s)." : "Вход в систему выполнен под именем %1$s (%2$s).", "You are about to grant %1$s access to your %2$s account." : "Вы собираетесь разрешить приложению %1$s доступ к своей учётной записи %2$s.", "Account connected" : "Аккаунт подключен", "Your client should now be connected!" : "Приложение-клиент подключено.", "You can close this window." : "Можете закрыть это окно.", "This share is password-protected" : "Доступ к этому ресурсу защищён паролем", "The password is wrong. Try again." : "Неверный пароль. Повторите попытку.", + "Please type in your email address to request a temporary password" : "Введите свой адрес эл. почты для запроса временного пароля", "Email address" : "Адрес эл. почты", + "Password sent!" : "Пароль отправлен", + "You are not authorized to request a password for this share" : "У вас недостаточно прав для запроса пароля для доступа к этому общему ресурсу", "Request password" : "Запрос пароля", "Go to %s" : "Перейти к %s", "Two-factor authentication" : "Двухфакторная аутентификация", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index 230246c8e3e..e99e02bfbf0 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -174,7 +174,7 @@ OC.L10N.register( "Schedule work & meetings, synced with all your devices." : "İşlerinizi ve toplantılarınızı planlayın ve tüm aygıtlarınızla eşitleyin.", "Keep your colleagues and friends in one place without leaking their private info." : "İş arkadaşlarınızın ve tanıdıklarınızın kayıtlarını kişisel bilgilerini sızdırmadan tek bir yerde tutun.", "Simple email app nicely integrated with Files, Contacts and Calendar." : "Dosyalar, Kişiler ve Takvim uygulamaları ile bir arada çalışan basit bir e-posta uygulaması.", - "Chatting, video calls, screensharing, online meetings and web conferencing – in your browser and with mobile apps." : "Sohbet, görüntülü arama, ekran paylaşımı, çevrimiçi toplantılar ve web görüşmeleri - masaüstü ve mobil için uygulamalar.", + "Chatting, video calls, screensharing, online meetings and web conferencing – in your browser and with mobile apps." : "Sohbet, görüntülü çağrı, ekran paylaşımı, çevrimiçi toplantılar ve web görüşmeleri - masaüstü ve mobil için uygulamalar.", "Collaboratively edit office documents." : "Ofis belgelerini işbirlikli düzenleme.", "Local document editing back-end used by the Collabora Online app." : "Collabora Online uygulaması ile yerel belge düzenleme altyapısı.", "Forgot password?" : "Parolamı unuttum", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index 44b419c714d..d260e05d575 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -172,7 +172,7 @@ "Schedule work & meetings, synced with all your devices." : "İşlerinizi ve toplantılarınızı planlayın ve tüm aygıtlarınızla eşitleyin.", "Keep your colleagues and friends in one place without leaking their private info." : "İş arkadaşlarınızın ve tanıdıklarınızın kayıtlarını kişisel bilgilerini sızdırmadan tek bir yerde tutun.", "Simple email app nicely integrated with Files, Contacts and Calendar." : "Dosyalar, Kişiler ve Takvim uygulamaları ile bir arada çalışan basit bir e-posta uygulaması.", - "Chatting, video calls, screensharing, online meetings and web conferencing – in your browser and with mobile apps." : "Sohbet, görüntülü arama, ekran paylaşımı, çevrimiçi toplantılar ve web görüşmeleri - masaüstü ve mobil için uygulamalar.", + "Chatting, video calls, screensharing, online meetings and web conferencing – in your browser and with mobile apps." : "Sohbet, görüntülü çağrı, ekran paylaşımı, çevrimiçi toplantılar ve web görüşmeleri - masaüstü ve mobil için uygulamalar.", "Collaboratively edit office documents." : "Ofis belgelerini işbirlikli düzenleme.", "Local document editing back-end used by the Collabora Online app." : "Collabora Online uygulaması ile yerel belge düzenleme altyapısı.", "Forgot password?" : "Parolamı unuttum", diff --git a/dist/dav-settings-admin-caldav.js b/dist/dav-settings-admin-caldav.js index 136dfe58cbd..080b23ac925 100644 --- a/dist/dav-settings-admin-caldav.js +++ b/dist/dav-settings-admin-caldav.js @@ -1,2 +1,2 @@ -!function(){"use strict";var e,n={46976:function(e,n,t){var a=t(20144),r=t(16453),s=t(9944),d=t(4820),i=t(79753),o=(0,r.loadState)("dav","userSyncCalendarsDocUrl","#"),l={name:"CalDavSettings",computed:{hint:function(){return this.$t("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="'.concat(o,'" rel="noreferrer noopener">')).replace(/\{linkclose\}/g,"</a>")},sendInvitationsHelpText:function(){return this.$t("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:function(){return this.$t("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:function(e){var n=e?"/apps/dav/enableBirthdayCalendar":"/apps/dav/disableBirthdayCalendar";d.default.post((0,i.generateUrl)(n))},sendInvitations:function(e){OCP.AppConfig.setValue("dav","sendInvitations",e?"yes":"no")},sendEventReminders:function(e){OCP.AppConfig.setValue("dav","sendEventReminders",e?"yes":"no")},sendEventRemindersToSharedGroupMembers:function(e){OCP.AppConfig.setValue("dav","sendEventRemindersToSharedGroupMembers",e?"yes":"no")},sendEventRemindersPush:function(e){OCP.AppConfig.setValue("dav","sendEventRemindersPush",e?"yes":"no")}}},c=t(93379),v=t.n(c),u=t(7795),m=t.n(u),p=t(90569),h=t.n(p),f=t(3565),b=t.n(f),y=t(19216),_=t.n(y),g=t(44589),E=t.n(g),R=t(48885),k={};k.styleTagTransform=E(),k.setAttributes=b(),k.insert=h().bind(null,"head"),k.domAPI=m(),k.insertStyleElement=_(),v()(R.Z,k),R.Z&&R.Z.locals&&R.Z.locals;var C=(0,t(51900).Z)(l,(function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"section"},[t("h2",[e._v(e._s(e.$t("dav","Calendar server")))]),e._v(" "),t("p",{staticClass:"settings-hint",domProps:{innerHTML:e._s(e.hint)}}),e._v(" "),t("p",[t("input",{directives:[{name:"model",rawName:"v-model",value:e.sendInvitations,expression:"sendInvitations"}],staticClass:"checkbox",attrs:{id:"caldavSendInvitations",type:"checkbox"},domProps:{checked:Array.isArray(e.sendInvitations)?e._i(e.sendInvitations,null)>-1:e.sendInvitations},on:{change:function(n){var t=e.sendInvitations,a=n.target,r=!!a.checked;if(Array.isArray(t)){var s=e._i(t,null);a.checked?s<0&&(e.sendInvitations=t.concat([null])):s>-1&&(e.sendInvitations=t.slice(0,s).concat(t.slice(s+1)))}else e.sendInvitations=r}}}),e._v(" "),t("label",{attrs:{for:"caldavSendInvitations"}},[e._v("\n\t\t\t"+e._s(e.$t("dav","Send invitations to attendees"))+"\n\t\t")]),e._v(" "),t("br"),e._v(" "),t("em",{domProps:{innerHTML:e._s(e.sendInvitationsHelpText)}})]),e._v(" "),t("p",[t("input",{directives:[{name:"model",rawName:"v-model",value:e.generateBirthdayCalendar,expression:"generateBirthdayCalendar"}],staticClass:"checkbox",attrs:{id:"caldavGenerateBirthdayCalendar",type:"checkbox"},domProps:{checked:Array.isArray(e.generateBirthdayCalendar)?e._i(e.generateBirthdayCalendar,null)>-1:e.generateBirthdayCalendar},on:{change:function(n){var t=e.generateBirthdayCalendar,a=n.target,r=!!a.checked;if(Array.isArray(t)){var s=e._i(t,null);a.checked?s<0&&(e.generateBirthdayCalendar=t.concat([null])):s>-1&&(e.generateBirthdayCalendar=t.slice(0,s).concat(t.slice(s+1)))}else e.generateBirthdayCalendar=r}}}),e._v(" "),t("label",{attrs:{for:"caldavGenerateBirthdayCalendar"}},[e._v("\n\t\t\t"+e._s(e.$t("dav","Automatically generate a birthday calendar"))+"\n\t\t")]),e._v(" "),t("br"),e._v(" "),t("em",[e._v("\n\t\t\t"+e._s(e.$t("dav","Birthday calendars will be generated by a background job."))+"\n\t\t")]),e._v(" "),t("br"),e._v(" "),t("em",[e._v("\n\t\t\t"+e._s(e.$t("dav","Hence they will not be available immediately after enabling but will show up after some time."))+"\n\t\t")])]),e._v(" "),t("p",[t("input",{directives:[{name:"model",rawName:"v-model",value:e.sendEventReminders,expression:"sendEventReminders"}],staticClass:"checkbox",attrs:{id:"caldavSendEventReminders",type:"checkbox"},domProps:{checked:Array.isArray(e.sendEventReminders)?e._i(e.sendEventReminders,null)>-1:e.sendEventReminders},on:{change:function(n){var t=e.sendEventReminders,a=n.target,r=!!a.checked;if(Array.isArray(t)){var s=e._i(t,null);a.checked?s<0&&(e.sendEventReminders=t.concat([null])):s>-1&&(e.sendEventReminders=t.slice(0,s).concat(t.slice(s+1)))}else e.sendEventReminders=r}}}),e._v(" "),t("label",{attrs:{for:"caldavSendEventReminders"}},[e._v("\n\t\t\t"+e._s(e.$t("dav","Send notifications for events"))+"\n\t\t")]),e._v(" "),t("br"),e._v(" "),t("em",{domProps:{innerHTML:e._s(e.sendEventRemindersHelpText)}}),e._v(" "),t("br"),e._v(" "),t("em",[e._v("\n\t\t\t"+e._s(e.$t("dav","Notifications are sent via background jobs, so these must occur often enough."))+"\n\t\t")])]),e._v(" "),t("p",{staticClass:"indented"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.sendEventRemindersToSharedGroupMembers,expression:"sendEventRemindersToSharedGroupMembers"}],staticClass:"checkbox",attrs:{id:"caldavSendEventRemindersToSharedGroupMembers",type:"checkbox",disabled:!e.sendEventReminders},domProps:{checked:Array.isArray(e.sendEventRemindersToSharedGroupMembers)?e._i(e.sendEventRemindersToSharedGroupMembers,null)>-1:e.sendEventRemindersToSharedGroupMembers},on:{change:function(n){var t=e.sendEventRemindersToSharedGroupMembers,a=n.target,r=!!a.checked;if(Array.isArray(t)){var s=e._i(t,null);a.checked?s<0&&(e.sendEventRemindersToSharedGroupMembers=t.concat([null])):s>-1&&(e.sendEventRemindersToSharedGroupMembers=t.slice(0,s).concat(t.slice(s+1)))}else e.sendEventRemindersToSharedGroupMembers=r}}}),e._v(" "),t("label",{attrs:{for:"caldavSendEventRemindersToSharedGroupMembers"}},[e._v("\n\t\t\t"+e._s(e.$t("dav","Send reminder notifications to calendar sharees as well"))+"\n\t\t")]),e._v(" "),t("br"),e._v(" "),t("em",[e._v("\n\t\t\t"+e._s(e.$t("dav","Reminders are always sent to organizers and attendees."))+"\n\t\t")])]),e._v(" "),t("p",{staticClass:"indented"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.sendEventRemindersPush,expression:"sendEventRemindersPush"}],staticClass:"checkbox",attrs:{id:"caldavSendEventRemindersPush",type:"checkbox",disabled:!e.sendEventReminders},domProps:{checked:Array.isArray(e.sendEventRemindersPush)?e._i(e.sendEventRemindersPush,null)>-1:e.sendEventRemindersPush},on:{change:function(n){var t=e.sendEventRemindersPush,a=n.target,r=!!a.checked;if(Array.isArray(t)){var s=e._i(t,null);a.checked?s<0&&(e.sendEventRemindersPush=t.concat([null])):s>-1&&(e.sendEventRemindersPush=t.slice(0,s).concat(t.slice(s+1)))}else e.sendEventRemindersPush=r}}}),e._v(" "),t("label",{attrs:{for:"caldavSendEventRemindersPush"}},[e._v("\n\t\t\t"+e._s(e.$t("dav","Enable notifications for events via push"))+"\n\t\t")])])])}),[],!1,null,"19a89582",null).exports;a.default.prototype.$t=s.translate,new(a.default.extend(C))({name:"CalDavSettingsView",data:function(){return{sendInvitations:(0,r.loadState)("dav","sendInvitations"),generateBirthdayCalendar:(0,r.loadState)("dav","generateBirthdayCalendar"),sendEventReminders:(0,r.loadState)("dav","sendEventReminders"),sendEventRemindersToSharedGroupMembers:(0,r.loadState)("dav","sendEventRemindersToSharedGroupMembers"),sendEventRemindersPush:(0,r.loadState)("dav","sendEventRemindersPush")}}}).$mount("#settings-admin-caldav")},48885:function(e,n,t){var a=t(87537),r=t.n(a),s=t(23645),d=t.n(s)()(r());d.push([e.id,".indented[data-v-19a89582]{padding-left:28px}","",{version:3,sources:["webpack://./apps/dav/src/views/CalDavSettings.vue"],names:[],mappings:"AAuFA,2BACC,iBAAA",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.indented {\n\tpadding-left: 28px;\n}\n"],sourceRoot:""}]),n.Z=d}},t={};function a(e){var r=t[e];if(void 0!==r)return r.exports;var s=t[e]={id:e,loaded:!1,exports:{}};return n[e].call(s.exports,s,s.exports,a),s.loaded=!0,s.exports}a.m=n,a.amdD=function(){throw new Error("define cannot be used indirect")},a.amdO={},e=[],a.O=function(n,t,r,s){if(!t){var d=1/0;for(c=0;c<e.length;c++){t=e[c][0],r=e[c][1],s=e[c][2];for(var i=!0,o=0;o<t.length;o++)(!1&s||d>=s)&&Object.keys(a.O).every((function(e){return a.O[e](t[o])}))?t.splice(o--,1):(i=!1,s<d&&(d=s));if(i){e.splice(c--,1);var l=r();void 0!==l&&(n=l)}}return n}s=s||0;for(var c=e.length;c>0&&e[c-1][2]>s;c--)e[c]=e[c-1];e[c]=[t,r,s]},a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,{a:n}),n},a.d=function(e,n){for(var t in n)a.o(n,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},a.j=2231,function(){a.b=document.baseURI||self.location.href;var e={2231:0};a.O.j=function(n){return 0===e[n]};var n=function(n,t){var r,s,d=t[0],i=t[1],o=t[2],l=0;if(d.some((function(n){return 0!==e[n]}))){for(r in i)a.o(i,r)&&(a.m[r]=i[r]);if(o)var c=o(a)}for(n&&n(t);l<d.length;l++)s=d[l],a.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return a.O(c)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))}();var r=a.O(void 0,[7874],(function(){return a(46976)}));r=a.O(r)}(); -//# sourceMappingURL=dav-settings-admin-caldav.js.map?v=61c319bf6e1cae626f58
\ No newline at end of file +!function(){"use strict";var t,e={14473:function(t,e,n){var a=n(20144),s=n(16453),r=n(9944),i=n(4820),d=n(79753),o=n(67776),l=n.n(o),c=n(7826),v=n.n(c),p=(0,s.loadState)("dav","userSyncCalendarsDocUrl","#"),u={name:"CalDavSettings",components:{CheckboxRadioSwitch:v(),SettingsSection:l()},data:function(){return{userSyncCalendarsDocUrl:p}},computed:{hint:function(){return this.$t("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="'.concat(p,'" rel="noreferrer noopener">')).replace(/\{linkclose\}/g,"</a>")},sendInvitationsHelpText:function(){return this.$t("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:function(){return this.$t("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:function(t){var e=t?"/apps/dav/enableBirthdayCalendar":"/apps/dav/disableBirthdayCalendar";i.default.post((0,d.generateUrl)(e))},sendInvitations:function(t){OCP.AppConfig.setValue("dav","sendInvitations",t?"yes":"no")},sendEventReminders:function(t){OCP.AppConfig.setValue("dav","sendEventReminders",t?"yes":"no")},sendEventRemindersToSharedGroupMembers:function(t){OCP.AppConfig.setValue("dav","sendEventRemindersToSharedGroupMembers",t?"yes":"no")},sendEventRemindersPush:function(t){OCP.AppConfig.setValue("dav","sendEventRemindersPush",t?"yes":"no")}}},h=n(93379),m=n.n(h),f=n(7795),b=n.n(f),g=n(90569),C=n.n(g),y=n(3565),S=n.n(y),k=n(19216),x=n.n(k),R=n(44589),A=n.n(R),w=n(39018),_={};_.styleTagTransform=A(),_.setAttributes=S(),_.insert=C().bind(null,"head"),_.domAPI=b(),_.insertStyleElement=x(),m()(w.Z,_),w.Z&&w.Z.locals&&w.Z.locals;var E=(0,n(51900).Z)(u,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("SettingsSection",{attrs:{title:t.$t("dav","Calendar server"),"doc-url":t.userSyncCalendarsDocUrl}},[n("p",{staticClass:"settings-hint",domProps:{innerHTML:t._s(t.hint)}}),t._v(" "),n("p",[n("CheckboxRadioSwitch",{attrs:{id:"caldavSendInvitations",checked:t.sendInvitations,type:"switch"},on:{"update:checked":function(e){t.sendInvitations=e}}},[t._v("\n\t\t\t"+t._s(t.$t("dav","Send invitations to attendees"))+"\n\t\t")]),t._v(" "),n("em",{domProps:{innerHTML:t._s(t.sendInvitationsHelpText)}})],1),t._v(" "),n("p",[n("CheckboxRadioSwitch",{staticClass:"checkbox",attrs:{id:"caldavGenerateBirthdayCalendar",checked:t.generateBirthdayCalendar,type:"switch"},on:{"update:checked":function(e){t.generateBirthdayCalendar=e}}},[t._v("\n\t\t\t"+t._s(t.$t("dav","Automatically generate a birthday calendar"))+"\n\t\t")]),t._v(" "),n("em",[t._v("\n\t\t\t"+t._s(t.$t("dav","Birthday calendars will be generated by a background job."))+"\n\t\t")]),t._v(" "),n("br"),t._v(" "),n("em",[t._v("\n\t\t\t"+t._s(t.$t("dav","Hence they will not be available immediately after enabling but will show up after some time."))+"\n\t\t")])],1),t._v(" "),n("p",[n("CheckboxRadioSwitch",{attrs:{id:"caldavSendEventReminders",checked:t.sendEventReminders,type:"switch"},on:{"update:checked":function(e){t.sendEventReminders=e}}},[t._v("\n\t\t\t"+t._s(t.$t("dav","Send notifications for events"))+"\n\t\t")]),t._v(" "),n("em",{domProps:{innerHTML:t._s(t.sendEventRemindersHelpText)}}),t._v(" "),n("br"),t._v(" "),n("em",[t._v("\n\t\t\t"+t._s(t.$t("dav","Notifications are sent via background jobs, so these must occur often enough."))+"\n\t\t")])],1),t._v(" "),n("p",{staticClass:"indented"},[n("CheckboxRadioSwitch",{attrs:{id:"caldavSendEventRemindersToSharedGroupMembers",checked:t.sendEventRemindersToSharedGroupMembers,type:"switch",disabled:!t.sendEventReminders},on:{"update:checked":function(e){t.sendEventRemindersToSharedGroupMembers=e}}},[t._v("\n\t\t\t"+t._s(t.$t("dav","Send reminder notifications to calendar sharees as well"))+"\n\t\t")]),t._v(" "),n("em",[t._v("\n\t\t\t"+t._s(t.$t("dav","Reminders are always sent to organizers and attendees."))+"\n\t\t")])],1),t._v(" "),n("p",{staticClass:"indented"},[n("CheckboxRadioSwitch",{attrs:{id:"caldavSendEventRemindersPush",checked:t.sendEventRemindersPush,type:"switch",disabled:!t.sendEventReminders},on:{"update:checked":function(e){t.sendEventRemindersPush=e}}},[t._v("\n\t\t\t"+t._s(t.$t("dav","Enable notifications for events via push"))+"\n\t\t")])],1)])}),[],!1,null,"12bcaa82",null).exports;a.default.prototype.$t=r.translate,new(a.default.extend(E))({name:"CalDavSettingsView",data:function(){return{sendInvitations:(0,s.loadState)("dav","sendInvitations"),generateBirthdayCalendar:(0,s.loadState)("dav","generateBirthdayCalendar"),sendEventReminders:(0,s.loadState)("dav","sendEventReminders"),sendEventRemindersToSharedGroupMembers:(0,s.loadState)("dav","sendEventRemindersToSharedGroupMembers"),sendEventRemindersPush:(0,s.loadState)("dav","sendEventRemindersPush")}}}).$mount("#settings-admin-caldav")},39018:function(t,e,n){var a=n(87537),s=n.n(a),r=n(23645),i=n.n(r)()(s());i.push([t.id,"\n.indented[data-v-12bcaa82] {\n\tpadding-left: 28px;\n}\n/** Use deep selector to affect v-html */\n*[data-v-12bcaa82] a {\n\ttext-decoration: underline;\n}\n.settings-hint[data-v-12bcaa82] {\n\tmargin-top: -.2em;\n\tmargin-bottom: 1em;\n\topacity: .7;\n}\n","",{version:3,sources:["webpack://./apps/dav/src/views/CalDavSettings.vue"],names:[],mappings:";AAmJA;CACA,kBAAA;AACA;AACA,wCAAA;AACA;CACA,0BAAA;AACA;AACA;CACA,iBAAA;CACA,kBAAA;CACA,WAAA;AACA",sourcesContent:["<template>\n\t<SettingsSection :title=\"$t('dav', 'Calendar server')\"\n\t\t:doc-url=\"userSyncCalendarsDocUrl\">\n\t\t\x3c!-- Can use v-html as:\n\t\t\t- $t passes the translated string through DOMPurify.sanitize,\n\t\t\t- replacement strings are not user-controlled. --\x3e\n\t\t\x3c!-- eslint-disable-next-line vue/no-v-html --\x3e\n\t\t<p class=\"settings-hint\" v-html=\"hint\" />\n\t\t<p>\n\t\t\t<CheckboxRadioSwitch id=\"caldavSendInvitations\"\n\t\t\t\t:checked.sync=\"sendInvitations\"\n\t\t\t\ttype=\"switch\">\n\t\t\t\t{{ $t('dav', 'Send invitations to attendees') }}\n\t\t\t</CheckboxRadioSwitch>\n\t\t\t\x3c!-- Can use v-html as:\n\t\t\t\t- $t passes the translated string through DOMPurify.sanitize,\n\t\t\t\t- replacement strings are not user-controlled. --\x3e\n\t\t\t\x3c!-- eslint-disable-next-line vue/no-v-html --\x3e\n\t\t\t<em v-html=\"sendInvitationsHelpText\" />\n\t\t</p>\n\t\t<p>\n\t\t\t<CheckboxRadioSwitch id=\"caldavGenerateBirthdayCalendar\"\n\t\t\t\t:checked.sync=\"generateBirthdayCalendar\"\n\t\t\t\ttype=\"switch\"\n\t\t\t\tclass=\"checkbox\">\n\t\t\t\t{{ $t('dav', 'Automatically generate a birthday calendar') }}\n\t\t\t</CheckboxRadioSwitch>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Birthday calendars will be generated by a background job.') }}\n\t\t\t</em>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Hence they will not be available immediately after enabling but will show up after some time.') }}\n\t\t\t</em>\n\t\t</p>\n\t\t<p>\n\t\t\t<CheckboxRadioSwitch id=\"caldavSendEventReminders\"\n\t\t\t\t:checked.sync=\"sendEventReminders\"\n\t\t\t\ttype=\"switch\">\n\t\t\t\t{{ $t('dav', 'Send notifications for events') }}\n\t\t\t</CheckboxRadioSwitch>\n\t\t\t\x3c!-- Can use v-html as:\n\t\t\t\t- $t passes the translated string through DOMPurify.sanitize,\n\t\t\t\t- replacement strings are not user-controlled. --\x3e\n\t\t\t\x3c!-- eslint-disable-next-line vue/no-v-html --\x3e\n\t\t\t<em v-html=\"sendEventRemindersHelpText\" />\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Notifications are sent via background jobs, so these must occur often enough.') }}\n\t\t\t</em>\n\t\t</p>\n\t\t<p class=\"indented\">\n\t\t\t<CheckboxRadioSwitch id=\"caldavSendEventRemindersToSharedGroupMembers\"\n\t\t\t\t:checked.sync=\"sendEventRemindersToSharedGroupMembers\"\n\t\t\t\ttype=\"switch\"\n\t\t\t\t:disabled=\"!sendEventReminders\">\n\t\t\t\t{{ $t('dav', 'Send reminder notifications to calendar sharees as well' ) }}\n\t\t\t</CheckboxRadioSwitch>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Reminders are always sent to organizers and attendees.' ) }}\n\t\t\t</em>\n\t\t</p>\n\t\t<p class=\"indented\">\n\t\t\t<CheckboxRadioSwitch id=\"caldavSendEventRemindersPush\"\n\t\t\t\t:checked.sync=\"sendEventRemindersPush\"\n\t\t\t\ttype=\"switch\"\n\t\t\t\t:disabled=\"!sendEventReminders\">\n\t\t\t\t{{ $t('dav', 'Enable notifications for events via push') }}\n\t\t\t</CheckboxRadioSwitch>\n\t\t</p>\n\t</SettingsSection>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport SettingsSection from '@nextcloud/vue/dist/Components/SettingsSection'\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\n\nconst userSyncCalendarsDocUrl = loadState('dav', 'userSyncCalendarsDocUrl', '#')\n\nexport default {\n\tname: 'CalDavSettings',\n\tcomponents: {\n\t\tCheckboxRadioSwitch,\n\t\tSettingsSection,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tuserSyncCalendarsDocUrl,\n\t\t}\n\t},\n\tcomputed: {\n\t\thint() {\n\t\t\tconst translated = this.$t(\n\t\t\t\t'dav',\n\t\t\t\t'Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.',\n\t\t\t)\n\t\t\treturn translated\n\t\t\t\t.replace('{calendarappstoreopen}', '<a target=\"_blank\" href=\"../apps/office/calendar\">')\n\t\t\t\t.replace('{calendardocopen}', `<a target=\"_blank\" href=\"${userSyncCalendarsDocUrl}\" rel=\"noreferrer noopener\">`)\n\t\t\t\t.replace(/\\{linkclose\\}/g, '</a>')\n\t\t},\n\t\tsendInvitationsHelpText() {\n\t\t\tconst translated = this.$t('dav', 'Please make sure to properly set up {emailopen}the email server{linkclose}.')\n\t\t\treturn translated\n\t\t\t\t.replace('{emailopen}', '<a href=\"../admin#mail_general_settings\">')\n\t\t\t\t.replace('{linkclose}', '</a>')\n\t\t},\n\t\tsendEventRemindersHelpText() {\n\t\t\tconst translated = this.$t('dav', 'Please make sure to properly set up {emailopen}the email server{linkclose}.')\n\t\t\treturn translated\n\t\t\t\t.replace('{emailopen}', '<a href=\"../admin#mail_general_settings\">')\n\t\t\t\t.replace('{linkclose}', '</a>')\n\t\t},\n\t},\n\twatch: {\n\t\tgenerateBirthdayCalendar(value) {\n\t\t\tconst baseUrl = value ? '/apps/dav/enableBirthdayCalendar' : '/apps/dav/disableBirthdayCalendar'\n\t\t\taxios.post(generateUrl(baseUrl))\n\t\t},\n\t\tsendInvitations(value) {\n\t\t\tOCP.AppConfig.setValue(\n\t\t\t\t'dav',\n\t\t\t\t'sendInvitations',\n\t\t\t\tvalue ? 'yes' : 'no'\n\t\t\t)\n\t\t},\n\t\tsendEventReminders(value) {\n\t\t\tOCP.AppConfig.setValue('dav', 'sendEventReminders', value ? 'yes' : 'no')\n\t\t},\n\t\tsendEventRemindersToSharedGroupMembers(value) {\n\t\t\tOCP.AppConfig.setValue(\n\t\t\t\t'dav',\n\t\t\t\t'sendEventRemindersToSharedGroupMembers',\n\t\t\t\tvalue ? 'yes' : 'no'\n\t\t\t)\n\t\t},\n\t\tsendEventRemindersPush(value) {\n\t\t\tOCP.AppConfig.setValue('dav', 'sendEventRemindersPush', value ? 'yes' : 'no')\n\t\t},\n\t},\n}\n<\/script>\n\n<style scoped>\n\t.indented {\n\t\tpadding-left: 28px;\n\t}\n\t/** Use deep selector to affect v-html */\n\t* >>> a {\n\t\ttext-decoration: underline;\n\t}\n\t.settings-hint {\n\t\tmargin-top: -.2em;\n\t\tmargin-bottom: 1em;\n\t\topacity: .7;\n\t}\n</style>\n"],sourceRoot:""}]),e.Z=i}},n={};function a(t){var s=n[t];if(void 0!==s)return s.exports;var r=n[t]={id:t,loaded:!1,exports:{}};return e[t].call(r.exports,r,r.exports,a),r.loaded=!0,r.exports}a.m=e,a.amdD=function(){throw new Error("define cannot be used indirect")},a.amdO={},t=[],a.O=function(e,n,s,r){if(!n){var i=1/0;for(c=0;c<t.length;c++){n=t[c][0],s=t[c][1],r=t[c][2];for(var d=!0,o=0;o<n.length;o++)(!1&r||i>=r)&&Object.keys(a.O).every((function(t){return a.O[t](n[o])}))?n.splice(o--,1):(d=!1,r<i&&(i=r));if(d){t.splice(c--,1);var l=s();void 0!==l&&(e=l)}}return e}r=r||0;for(var c=t.length;c>0&&t[c-1][2]>r;c--)t[c]=t[c-1];t[c]=[n,s,r]},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,{a:e}),e},a.d=function(t,e){for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},a.j=2231,function(){a.b=document.baseURI||self.location.href;var t={2231:0};a.O.j=function(e){return 0===t[e]};var e=function(e,n){var s,r,i=n[0],d=n[1],o=n[2],l=0;if(i.some((function(e){return 0!==t[e]}))){for(s in d)a.o(d,s)&&(a.m[s]=d[s]);if(o)var c=o(a)}for(e&&e(n);l<i.length;l++)r=i[l],a.o(t,r)&&t[r]&&t[r][0](),t[r]=0;return a.O(c)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))}();var s=a.O(void 0,[7874],(function(){return a(14473)}));s=a.O(s)}(); +//# sourceMappingURL=dav-settings-admin-caldav.js.map?v=8c15de20c274b713c6e0
\ No newline at end of file diff --git a/dist/dav-settings-admin-caldav.js.map b/dist/dav-settings-admin-caldav.js.map index c563738cbe3..ce9182e10f7 100644 --- a/dist/dav-settings-admin-caldav.js.map +++ b/dist/dav-settings-admin-caldav.js.map @@ -1 +1 @@ -{"version":3,"file":"dav-settings-admin-caldav.js?v=61c319bf6e1cae626f58","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/dav/src/views/CalDavSettings.vue","webpack:///nextcloud/apps/dav/src/views/CalDavSettings.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/dav/src/views/CalDavSettings.vue?36c1","webpack://nextcloud/./apps/dav/src/views/CalDavSettings.vue?bad0","webpack:///nextcloud/apps/dav/src/views/CalDavSettings.vue?vue&type=template&id=19a89582&scoped=true&","webpack:///nextcloud/apps/dav/src/settings.js","webpack:///nextcloud/apps/dav/src/views/CalDavSettings.vue?vue&type=style&index=0&id=19a89582&lang=scss&scoped=true&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","<template>\n\t<div class=\"section\">\n\t\t<h2>{{ $t('dav', 'Calendar server') }}</h2>\n\t\t<!-- Can use v-html as:\n\t\t\t- $t passes the translated string through DOMPurify.sanitize,\n\t\t\t- replacement strings are not user-controlled. -->\n\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t<p class=\"settings-hint\" v-html=\"hint\" />\n\t\t<p>\n\t\t\t<input id=\"caldavSendInvitations\"\n\t\t\t\tv-model=\"sendInvitations\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tclass=\"checkbox\">\n\t\t\t<label for=\"caldavSendInvitations\">\n\t\t\t\t{{ $t('dav', 'Send invitations to attendees') }}\n\t\t\t</label>\n\t\t\t<br>\n\t\t\t<!-- Can use v-html as:\n\t\t\t\t- $t passes the translated string through DOMPurify.sanitize,\n\t\t\t\t- replacement strings are not user-controlled. -->\n\t\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t\t<em v-html=\"sendInvitationsHelpText\" />\n\t\t</p>\n\t\t<p>\n\t\t\t<input id=\"caldavGenerateBirthdayCalendar\"\n\t\t\t\tv-model=\"generateBirthdayCalendar\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tclass=\"checkbox\">\n\t\t\t<label for=\"caldavGenerateBirthdayCalendar\">\n\t\t\t\t{{ $t('dav', 'Automatically generate a birthday calendar') }}\n\t\t\t</label>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Birthday calendars will be generated by a background job.') }}\n\t\t\t</em>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Hence they will not be available immediately after enabling but will show up after some time.') }}\n\t\t\t</em>\n\t\t</p>\n\t\t<p>\n\t\t\t<input id=\"caldavSendEventReminders\"\n\t\t\t\tv-model=\"sendEventReminders\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tclass=\"checkbox\">\n\t\t\t<label for=\"caldavSendEventReminders\">\n\t\t\t\t{{ $t('dav', 'Send notifications for events') }}\n\t\t\t</label>\n\t\t\t<br>\n\t\t\t<!-- Can use v-html as:\n\t\t\t\t- $t passes the translated string through DOMPurify.sanitize,\n\t\t\t\t- replacement strings are not user-controlled. -->\n\t\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t\t<em v-html=\"sendEventRemindersHelpText\" />\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Notifications are sent via background jobs, so these must occur often enough.') }}\n\t\t\t</em>\n\t\t</p>\n\t\t<p class=\"indented\">\n\t\t\t<input id=\"caldavSendEventRemindersToSharedGroupMembers\"\n\t\t\t\tv-model=\"sendEventRemindersToSharedGroupMembers\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tclass=\"checkbox\"\n\t\t\t\t:disabled=\"!sendEventReminders\">\n\t\t\t<label for=\"caldavSendEventRemindersToSharedGroupMembers\">\n\t\t\t\t{{ $t('dav', 'Send reminder notifications to calendar sharees as well' ) }}\n\t\t\t</label>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Reminders are always sent to organizers and attendees.' ) }}\n\t\t\t</em>\n\t\t</p>\n\t\t<p class=\"indented\">\n\t\t\t<input id=\"caldavSendEventRemindersPush\"\n\t\t\t\tv-model=\"sendEventRemindersPush\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tclass=\"checkbox\"\n\t\t\t\t:disabled=\"!sendEventReminders\">\n\t\t\t<label for=\"caldavSendEventRemindersPush\">\n\t\t\t\t{{ $t('dav', 'Enable notifications for events via push') }}\n\t\t\t</label>\n\t\t</p>\n\t</div>\n</template>\n\n<style lang=\"scss\" scoped>\n\t.indented {\n\t\tpadding-left: 28px;\n\t}\n</style>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\n\nconst userSyncCalendarsDocUrl = loadState('dav', 'userSyncCalendarsDocUrl', '#')\n\nexport default {\n\tname: 'CalDavSettings',\n\tcomputed: {\n\t\thint() {\n\t\t\tconst translated = this.$t(\n\t\t\t\t'dav',\n\t\t\t\t'Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.',\n\t\t\t)\n\t\t\treturn translated\n\t\t\t\t.replace('{calendarappstoreopen}', '<a target=\"_blank\" href=\"../apps/office/calendar\">')\n\t\t\t\t.replace('{calendardocopen}', `<a target=\"_blank\" href=\"${userSyncCalendarsDocUrl}\" rel=\"noreferrer noopener\">`)\n\t\t\t\t.replace(/\\{linkclose\\}/g, '</a>')\n\t\t},\n\t\tsendInvitationsHelpText() {\n\t\t\tconst translated = this.$t('dav', 'Please make sure to properly set up {emailopen}the email server{linkclose}.')\n\t\t\treturn translated\n\t\t\t\t.replace('{emailopen}', '<a href=\"../admin#mail_general_settings\">')\n\t\t\t\t.replace('{linkclose}', '</a>')\n\t\t},\n\t\tsendEventRemindersHelpText() {\n\t\t\tconst translated = this.$t('dav', 'Please make sure to properly set up {emailopen}the email server{linkclose}.')\n\t\t\treturn translated\n\t\t\t\t.replace('{emailopen}', '<a href=\"../admin#mail_general_settings\">')\n\t\t\t\t.replace('{linkclose}', '</a>')\n\t\t},\n\t},\n\twatch: {\n\t\tgenerateBirthdayCalendar(value) {\n\t\t\tconst baseUrl = value ? '/apps/dav/enableBirthdayCalendar' : '/apps/dav/disableBirthdayCalendar'\n\t\t\taxios.post(generateUrl(baseUrl))\n\t\t},\n\t\tsendInvitations(value) {\n\t\t\tOCP.AppConfig.setValue(\n\t\t\t\t'dav',\n\t\t\t\t'sendInvitations',\n\t\t\t\tvalue ? 'yes' : 'no'\n\t\t\t)\n\t\t},\n\t\tsendEventReminders(value) {\n\t\t\tOCP.AppConfig.setValue('dav', 'sendEventReminders', value ? 'yes' : 'no')\n\t\t},\n\t\tsendEventRemindersToSharedGroupMembers(value) {\n\t\t\tOCP.AppConfig.setValue(\n\t\t\t\t'dav',\n\t\t\t\t'sendEventRemindersToSharedGroupMembers',\n\t\t\t\tvalue ? 'yes' : 'no'\n\t\t\t)\n\t\t},\n\t\tsendEventRemindersPush(value) {\n\t\t\tOCP.AppConfig.setValue('dav', 'sendEventRemindersPush', value ? 'yes' : 'no')\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalDavSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalDavSettings.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalDavSettings.vue?vue&type=style&index=0&id=19a89582&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalDavSettings.vue?vue&type=style&index=0&id=19a89582&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CalDavSettings.vue?vue&type=template&id=19a89582&scoped=true&\"\nimport script from \"./CalDavSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./CalDavSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CalDavSettings.vue?vue&type=style&index=0&id=19a89582&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19a89582\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('dav', 'Calendar server')))]),_vm._v(\" \"),_c('p',{staticClass:\"settings-hint\",domProps:{\"innerHTML\":_vm._s(_vm.hint)}}),_vm._v(\" \"),_c('p',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sendInvitations),expression:\"sendInvitations\"}],staticClass:\"checkbox\",attrs:{\"id\":\"caldavSendInvitations\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.sendInvitations)?_vm._i(_vm.sendInvitations,null)>-1:(_vm.sendInvitations)},on:{\"change\":function($event){var $$a=_vm.sendInvitations,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.sendInvitations=$$a.concat([$$v]))}else{$$i>-1&&(_vm.sendInvitations=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.sendInvitations=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"caldavSendInvitations\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Send invitations to attendees'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',{domProps:{\"innerHTML\":_vm._s(_vm.sendInvitationsHelpText)}})]),_vm._v(\" \"),_c('p',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.generateBirthdayCalendar),expression:\"generateBirthdayCalendar\"}],staticClass:\"checkbox\",attrs:{\"id\":\"caldavGenerateBirthdayCalendar\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.generateBirthdayCalendar)?_vm._i(_vm.generateBirthdayCalendar,null)>-1:(_vm.generateBirthdayCalendar)},on:{\"change\":function($event){var $$a=_vm.generateBirthdayCalendar,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.generateBirthdayCalendar=$$a.concat([$$v]))}else{$$i>-1&&(_vm.generateBirthdayCalendar=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.generateBirthdayCalendar=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"caldavGenerateBirthdayCalendar\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Automatically generate a birthday calendar'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Birthday calendars will be generated by a background job.'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Hence they will not be available immediately after enabling but will show up after some time.'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('p',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sendEventReminders),expression:\"sendEventReminders\"}],staticClass:\"checkbox\",attrs:{\"id\":\"caldavSendEventReminders\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.sendEventReminders)?_vm._i(_vm.sendEventReminders,null)>-1:(_vm.sendEventReminders)},on:{\"change\":function($event){var $$a=_vm.sendEventReminders,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.sendEventReminders=$$a.concat([$$v]))}else{$$i>-1&&(_vm.sendEventReminders=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.sendEventReminders=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"caldavSendEventReminders\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Send notifications for events'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',{domProps:{\"innerHTML\":_vm._s(_vm.sendEventRemindersHelpText)}}),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Notifications are sent via background jobs, so these must occur often enough.'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('p',{staticClass:\"indented\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sendEventRemindersToSharedGroupMembers),expression:\"sendEventRemindersToSharedGroupMembers\"}],staticClass:\"checkbox\",attrs:{\"id\":\"caldavSendEventRemindersToSharedGroupMembers\",\"type\":\"checkbox\",\"disabled\":!_vm.sendEventReminders},domProps:{\"checked\":Array.isArray(_vm.sendEventRemindersToSharedGroupMembers)?_vm._i(_vm.sendEventRemindersToSharedGroupMembers,null)>-1:(_vm.sendEventRemindersToSharedGroupMembers)},on:{\"change\":function($event){var $$a=_vm.sendEventRemindersToSharedGroupMembers,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.sendEventRemindersToSharedGroupMembers=$$a.concat([$$v]))}else{$$i>-1&&(_vm.sendEventRemindersToSharedGroupMembers=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.sendEventRemindersToSharedGroupMembers=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"caldavSendEventRemindersToSharedGroupMembers\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Send reminder notifications to calendar sharees as well' ))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Reminders are always sent to organizers and attendees.' ))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('p',{staticClass:\"indented\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sendEventRemindersPush),expression:\"sendEventRemindersPush\"}],staticClass:\"checkbox\",attrs:{\"id\":\"caldavSendEventRemindersPush\",\"type\":\"checkbox\",\"disabled\":!_vm.sendEventReminders},domProps:{\"checked\":Array.isArray(_vm.sendEventRemindersPush)?_vm._i(_vm.sendEventRemindersPush,null)>-1:(_vm.sendEventRemindersPush)},on:{\"change\":function($event){var $$a=_vm.sendEventRemindersPush,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.sendEventRemindersPush=$$a.concat([$$v]))}else{$$i>-1&&(_vm.sendEventRemindersPush=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.sendEventRemindersPush=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"caldavSendEventRemindersPush\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Enable notifications for events via push'))+\"\\n\\t\\t\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate } from '@nextcloud/l10n'\nimport CalDavSettings from './views/CalDavSettings'\n\nVue.prototype.$t = translate\n\nconst View = Vue.extend(CalDavSettings)\nconst CalDavSettingsView = new View({\n\tname: 'CalDavSettingsView',\n\tdata() {\n\t\treturn {\n\t\t\tsendInvitations: loadState('dav', 'sendInvitations'),\n\t\t\tgenerateBirthdayCalendar: loadState(\n\t\t\t\t'dav',\n\t\t\t\t'generateBirthdayCalendar'\n\t\t\t),\n\t\t\tsendEventReminders: loadState('dav', 'sendEventReminders'),\n\t\t\tsendEventRemindersToSharedGroupMembers: loadState(\n\t\t\t\t'dav',\n\t\t\t\t'sendEventRemindersToSharedGroupMembers'\n\t\t\t),\n\t\t\tsendEventRemindersPush: loadState('dav', 'sendEventRemindersPush'),\n\t\t}\n\t},\n})\n\nCalDavSettingsView.$mount('#settings-admin-caldav')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".indented[data-v-19a89582]{padding-left:28px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dav/src/views/CalDavSettings.vue\"],\"names\":[],\"mappings\":\"AAuFA,2BACC,iBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.indented {\\n\\tpadding-left: 28px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2231;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2231: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(46976); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","staticClass","_v","_s","$t","domProps","hint","directives","name","rawName","value","expression","attrs","Array","isArray","sendInvitations","_i","on","$event","$$a","$$el","target","$$c","checked","$$i","concat","slice","sendInvitationsHelpText","generateBirthdayCalendar","sendEventReminders","sendEventRemindersHelpText","sendEventRemindersToSharedGroupMembers","sendEventRemindersPush","Vue","translate","CalDavSettings","data","loadState","$mount","___CSS_LOADER_EXPORT___","push","module","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"dav-settings-admin-caldav.js?v=8c15de20c274b713c6e0","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/dav/src/views/CalDavSettings.vue","webpack:///nextcloud/apps/dav/src/views/CalDavSettings.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/dav/src/views/CalDavSettings.vue?d001","webpack://nextcloud/./apps/dav/src/views/CalDavSettings.vue?bad0","webpack:///nextcloud/apps/dav/src/views/CalDavSettings.vue?vue&type=template&id=12bcaa82&scoped=true&","webpack:///nextcloud/apps/dav/src/settings.js","webpack:///nextcloud/apps/dav/src/views/CalDavSettings.vue?vue&type=style&index=0&id=12bcaa82&scoped=true&lang=css&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","<template>\n\t<SettingsSection :title=\"$t('dav', 'Calendar server')\"\n\t\t:doc-url=\"userSyncCalendarsDocUrl\">\n\t\t<!-- Can use v-html as:\n\t\t\t- $t passes the translated string through DOMPurify.sanitize,\n\t\t\t- replacement strings are not user-controlled. -->\n\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t<p class=\"settings-hint\" v-html=\"hint\" />\n\t\t<p>\n\t\t\t<CheckboxRadioSwitch id=\"caldavSendInvitations\"\n\t\t\t\t:checked.sync=\"sendInvitations\"\n\t\t\t\ttype=\"switch\">\n\t\t\t\t{{ $t('dav', 'Send invitations to attendees') }}\n\t\t\t</CheckboxRadioSwitch>\n\t\t\t<!-- Can use v-html as:\n\t\t\t\t- $t passes the translated string through DOMPurify.sanitize,\n\t\t\t\t- replacement strings are not user-controlled. -->\n\t\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t\t<em v-html=\"sendInvitationsHelpText\" />\n\t\t</p>\n\t\t<p>\n\t\t\t<CheckboxRadioSwitch id=\"caldavGenerateBirthdayCalendar\"\n\t\t\t\t:checked.sync=\"generateBirthdayCalendar\"\n\t\t\t\ttype=\"switch\"\n\t\t\t\tclass=\"checkbox\">\n\t\t\t\t{{ $t('dav', 'Automatically generate a birthday calendar') }}\n\t\t\t</CheckboxRadioSwitch>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Birthday calendars will be generated by a background job.') }}\n\t\t\t</em>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Hence they will not be available immediately after enabling but will show up after some time.') }}\n\t\t\t</em>\n\t\t</p>\n\t\t<p>\n\t\t\t<CheckboxRadioSwitch id=\"caldavSendEventReminders\"\n\t\t\t\t:checked.sync=\"sendEventReminders\"\n\t\t\t\ttype=\"switch\">\n\t\t\t\t{{ $t('dav', 'Send notifications for events') }}\n\t\t\t</CheckboxRadioSwitch>\n\t\t\t<!-- Can use v-html as:\n\t\t\t\t- $t passes the translated string through DOMPurify.sanitize,\n\t\t\t\t- replacement strings are not user-controlled. -->\n\t\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t\t<em v-html=\"sendEventRemindersHelpText\" />\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Notifications are sent via background jobs, so these must occur often enough.') }}\n\t\t\t</em>\n\t\t</p>\n\t\t<p class=\"indented\">\n\t\t\t<CheckboxRadioSwitch id=\"caldavSendEventRemindersToSharedGroupMembers\"\n\t\t\t\t:checked.sync=\"sendEventRemindersToSharedGroupMembers\"\n\t\t\t\ttype=\"switch\"\n\t\t\t\t:disabled=\"!sendEventReminders\">\n\t\t\t\t{{ $t('dav', 'Send reminder notifications to calendar sharees as well' ) }}\n\t\t\t</CheckboxRadioSwitch>\n\t\t\t<em>\n\t\t\t\t{{ $t('dav', 'Reminders are always sent to organizers and attendees.' ) }}\n\t\t\t</em>\n\t\t</p>\n\t\t<p class=\"indented\">\n\t\t\t<CheckboxRadioSwitch id=\"caldavSendEventRemindersPush\"\n\t\t\t\t:checked.sync=\"sendEventRemindersPush\"\n\t\t\t\ttype=\"switch\"\n\t\t\t\t:disabled=\"!sendEventReminders\">\n\t\t\t\t{{ $t('dav', 'Enable notifications for events via push') }}\n\t\t\t</CheckboxRadioSwitch>\n\t\t</p>\n\t</SettingsSection>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport SettingsSection from '@nextcloud/vue/dist/Components/SettingsSection'\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\n\nconst userSyncCalendarsDocUrl = loadState('dav', 'userSyncCalendarsDocUrl', '#')\n\nexport default {\n\tname: 'CalDavSettings',\n\tcomponents: {\n\t\tCheckboxRadioSwitch,\n\t\tSettingsSection,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tuserSyncCalendarsDocUrl,\n\t\t}\n\t},\n\tcomputed: {\n\t\thint() {\n\t\t\tconst translated = this.$t(\n\t\t\t\t'dav',\n\t\t\t\t'Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.',\n\t\t\t)\n\t\t\treturn translated\n\t\t\t\t.replace('{calendarappstoreopen}', '<a target=\"_blank\" href=\"../apps/office/calendar\">')\n\t\t\t\t.replace('{calendardocopen}', `<a target=\"_blank\" href=\"${userSyncCalendarsDocUrl}\" rel=\"noreferrer noopener\">`)\n\t\t\t\t.replace(/\\{linkclose\\}/g, '</a>')\n\t\t},\n\t\tsendInvitationsHelpText() {\n\t\t\tconst translated = this.$t('dav', 'Please make sure to properly set up {emailopen}the email server{linkclose}.')\n\t\t\treturn translated\n\t\t\t\t.replace('{emailopen}', '<a href=\"../admin#mail_general_settings\">')\n\t\t\t\t.replace('{linkclose}', '</a>')\n\t\t},\n\t\tsendEventRemindersHelpText() {\n\t\t\tconst translated = this.$t('dav', 'Please make sure to properly set up {emailopen}the email server{linkclose}.')\n\t\t\treturn translated\n\t\t\t\t.replace('{emailopen}', '<a href=\"../admin#mail_general_settings\">')\n\t\t\t\t.replace('{linkclose}', '</a>')\n\t\t},\n\t},\n\twatch: {\n\t\tgenerateBirthdayCalendar(value) {\n\t\t\tconst baseUrl = value ? '/apps/dav/enableBirthdayCalendar' : '/apps/dav/disableBirthdayCalendar'\n\t\t\taxios.post(generateUrl(baseUrl))\n\t\t},\n\t\tsendInvitations(value) {\n\t\t\tOCP.AppConfig.setValue(\n\t\t\t\t'dav',\n\t\t\t\t'sendInvitations',\n\t\t\t\tvalue ? 'yes' : 'no'\n\t\t\t)\n\t\t},\n\t\tsendEventReminders(value) {\n\t\t\tOCP.AppConfig.setValue('dav', 'sendEventReminders', value ? 'yes' : 'no')\n\t\t},\n\t\tsendEventRemindersToSharedGroupMembers(value) {\n\t\t\tOCP.AppConfig.setValue(\n\t\t\t\t'dav',\n\t\t\t\t'sendEventRemindersToSharedGroupMembers',\n\t\t\t\tvalue ? 'yes' : 'no'\n\t\t\t)\n\t\t},\n\t\tsendEventRemindersPush(value) {\n\t\t\tOCP.AppConfig.setValue('dav', 'sendEventRemindersPush', value ? 'yes' : 'no')\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n\t.indented {\n\t\tpadding-left: 28px;\n\t}\n\t/** Use deep selector to affect v-html */\n\t* >>> a {\n\t\ttext-decoration: underline;\n\t}\n\t.settings-hint {\n\t\tmargin-top: -.2em;\n\t\tmargin-bottom: 1em;\n\t\topacity: .7;\n\t}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalDavSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalDavSettings.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalDavSettings.vue?vue&type=style&index=0&id=12bcaa82&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalDavSettings.vue?vue&type=style&index=0&id=12bcaa82&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CalDavSettings.vue?vue&type=template&id=12bcaa82&scoped=true&\"\nimport script from \"./CalDavSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./CalDavSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CalDavSettings.vue?vue&type=style&index=0&id=12bcaa82&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12bcaa82\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('SettingsSection',{attrs:{\"title\":_vm.$t('dav', 'Calendar server'),\"doc-url\":_vm.userSyncCalendarsDocUrl}},[_c('p',{staticClass:\"settings-hint\",domProps:{\"innerHTML\":_vm._s(_vm.hint)}}),_vm._v(\" \"),_c('p',[_c('CheckboxRadioSwitch',{attrs:{\"id\":\"caldavSendInvitations\",\"checked\":_vm.sendInvitations,\"type\":\"switch\"},on:{\"update:checked\":function($event){_vm.sendInvitations=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Send invitations to attendees'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('em',{domProps:{\"innerHTML\":_vm._s(_vm.sendInvitationsHelpText)}})],1),_vm._v(\" \"),_c('p',[_c('CheckboxRadioSwitch',{staticClass:\"checkbox\",attrs:{\"id\":\"caldavGenerateBirthdayCalendar\",\"checked\":_vm.generateBirthdayCalendar,\"type\":\"switch\"},on:{\"update:checked\":function($event){_vm.generateBirthdayCalendar=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Automatically generate a birthday calendar'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('em',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Birthday calendars will be generated by a background job.'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Hence they will not be available immediately after enabling but will show up after some time.'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('p',[_c('CheckboxRadioSwitch',{attrs:{\"id\":\"caldavSendEventReminders\",\"checked\":_vm.sendEventReminders,\"type\":\"switch\"},on:{\"update:checked\":function($event){_vm.sendEventReminders=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Send notifications for events'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('em',{domProps:{\"innerHTML\":_vm._s(_vm.sendEventRemindersHelpText)}}),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Notifications are sent via background jobs, so these must occur often enough.'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('p',{staticClass:\"indented\"},[_c('CheckboxRadioSwitch',{attrs:{\"id\":\"caldavSendEventRemindersToSharedGroupMembers\",\"checked\":_vm.sendEventRemindersToSharedGroupMembers,\"type\":\"switch\",\"disabled\":!_vm.sendEventReminders},on:{\"update:checked\":function($event){_vm.sendEventRemindersToSharedGroupMembers=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Send reminder notifications to calendar sharees as well' ))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('em',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Reminders are always sent to organizers and attendees.' ))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('p',{staticClass:\"indented\"},[_c('CheckboxRadioSwitch',{attrs:{\"id\":\"caldavSendEventRemindersPush\",\"checked\":_vm.sendEventRemindersPush,\"type\":\"switch\",\"disabled\":!_vm.sendEventReminders},on:{\"update:checked\":function($event){_vm.sendEventRemindersPush=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Enable notifications for events via push'))+\"\\n\\t\\t\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate } from '@nextcloud/l10n'\nimport CalDavSettings from './views/CalDavSettings'\n\nVue.prototype.$t = translate\n\nconst View = Vue.extend(CalDavSettings)\nconst CalDavSettingsView = new View({\n\tname: 'CalDavSettingsView',\n\tdata() {\n\t\treturn {\n\t\t\tsendInvitations: loadState('dav', 'sendInvitations'),\n\t\t\tgenerateBirthdayCalendar: loadState(\n\t\t\t\t'dav',\n\t\t\t\t'generateBirthdayCalendar'\n\t\t\t),\n\t\t\tsendEventReminders: loadState('dav', 'sendEventReminders'),\n\t\t\tsendEventRemindersToSharedGroupMembers: loadState(\n\t\t\t\t'dav',\n\t\t\t\t'sendEventRemindersToSharedGroupMembers'\n\t\t\t),\n\t\t\tsendEventRemindersPush: loadState('dav', 'sendEventRemindersPush'),\n\t\t}\n\t},\n})\n\nCalDavSettingsView.$mount('#settings-admin-caldav')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.indented[data-v-12bcaa82] {\\n\\tpadding-left: 28px;\\n}\\n/** Use deep selector to affect v-html */\\n*[data-v-12bcaa82] a {\\n\\ttext-decoration: underline;\\n}\\n.settings-hint[data-v-12bcaa82] {\\n\\tmargin-top: -.2em;\\n\\tmargin-bottom: 1em;\\n\\topacity: .7;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dav/src/views/CalDavSettings.vue\"],\"names\":[],\"mappings\":\";AAmJA;CACA,kBAAA;AACA;AACA,wCAAA;AACA;CACA,0BAAA;AACA;AACA;CACA,iBAAA;CACA,kBAAA;CACA,WAAA;AACA\",\"sourcesContent\":[\"<template>\\n\\t<SettingsSection :title=\\\"$t('dav', 'Calendar server')\\\"\\n\\t\\t:doc-url=\\\"userSyncCalendarsDocUrl\\\">\\n\\t\\t<!-- Can use v-html as:\\n\\t\\t\\t- $t passes the translated string through DOMPurify.sanitize,\\n\\t\\t\\t- replacement strings are not user-controlled. -->\\n\\t\\t<!-- eslint-disable-next-line vue/no-v-html -->\\n\\t\\t<p class=\\\"settings-hint\\\" v-html=\\\"hint\\\" />\\n\\t\\t<p>\\n\\t\\t\\t<CheckboxRadioSwitch id=\\\"caldavSendInvitations\\\"\\n\\t\\t\\t\\t:checked.sync=\\\"sendInvitations\\\"\\n\\t\\t\\t\\ttype=\\\"switch\\\">\\n\\t\\t\\t\\t{{ $t('dav', 'Send invitations to attendees') }}\\n\\t\\t\\t</CheckboxRadioSwitch>\\n\\t\\t\\t<!-- Can use v-html as:\\n\\t\\t\\t\\t- $t passes the translated string through DOMPurify.sanitize,\\n\\t\\t\\t\\t- replacement strings are not user-controlled. -->\\n\\t\\t\\t<!-- eslint-disable-next-line vue/no-v-html -->\\n\\t\\t\\t<em v-html=\\\"sendInvitationsHelpText\\\" />\\n\\t\\t</p>\\n\\t\\t<p>\\n\\t\\t\\t<CheckboxRadioSwitch id=\\\"caldavGenerateBirthdayCalendar\\\"\\n\\t\\t\\t\\t:checked.sync=\\\"generateBirthdayCalendar\\\"\\n\\t\\t\\t\\ttype=\\\"switch\\\"\\n\\t\\t\\t\\tclass=\\\"checkbox\\\">\\n\\t\\t\\t\\t{{ $t('dav', 'Automatically generate a birthday calendar') }}\\n\\t\\t\\t</CheckboxRadioSwitch>\\n\\t\\t\\t<em>\\n\\t\\t\\t\\t{{ $t('dav', 'Birthday calendars will be generated by a background job.') }}\\n\\t\\t\\t</em>\\n\\t\\t\\t<br>\\n\\t\\t\\t<em>\\n\\t\\t\\t\\t{{ $t('dav', 'Hence they will not be available immediately after enabling but will show up after some time.') }}\\n\\t\\t\\t</em>\\n\\t\\t</p>\\n\\t\\t<p>\\n\\t\\t\\t<CheckboxRadioSwitch id=\\\"caldavSendEventReminders\\\"\\n\\t\\t\\t\\t:checked.sync=\\\"sendEventReminders\\\"\\n\\t\\t\\t\\ttype=\\\"switch\\\">\\n\\t\\t\\t\\t{{ $t('dav', 'Send notifications for events') }}\\n\\t\\t\\t</CheckboxRadioSwitch>\\n\\t\\t\\t<!-- Can use v-html as:\\n\\t\\t\\t\\t- $t passes the translated string through DOMPurify.sanitize,\\n\\t\\t\\t\\t- replacement strings are not user-controlled. -->\\n\\t\\t\\t<!-- eslint-disable-next-line vue/no-v-html -->\\n\\t\\t\\t<em v-html=\\\"sendEventRemindersHelpText\\\" />\\n\\t\\t\\t<br>\\n\\t\\t\\t<em>\\n\\t\\t\\t\\t{{ $t('dav', 'Notifications are sent via background jobs, so these must occur often enough.') }}\\n\\t\\t\\t</em>\\n\\t\\t</p>\\n\\t\\t<p class=\\\"indented\\\">\\n\\t\\t\\t<CheckboxRadioSwitch id=\\\"caldavSendEventRemindersToSharedGroupMembers\\\"\\n\\t\\t\\t\\t:checked.sync=\\\"sendEventRemindersToSharedGroupMembers\\\"\\n\\t\\t\\t\\ttype=\\\"switch\\\"\\n\\t\\t\\t\\t:disabled=\\\"!sendEventReminders\\\">\\n\\t\\t\\t\\t{{ $t('dav', 'Send reminder notifications to calendar sharees as well' ) }}\\n\\t\\t\\t</CheckboxRadioSwitch>\\n\\t\\t\\t<em>\\n\\t\\t\\t\\t{{ $t('dav', 'Reminders are always sent to organizers and attendees.' ) }}\\n\\t\\t\\t</em>\\n\\t\\t</p>\\n\\t\\t<p class=\\\"indented\\\">\\n\\t\\t\\t<CheckboxRadioSwitch id=\\\"caldavSendEventRemindersPush\\\"\\n\\t\\t\\t\\t:checked.sync=\\\"sendEventRemindersPush\\\"\\n\\t\\t\\t\\ttype=\\\"switch\\\"\\n\\t\\t\\t\\t:disabled=\\\"!sendEventReminders\\\">\\n\\t\\t\\t\\t{{ $t('dav', 'Enable notifications for events via push') }}\\n\\t\\t\\t</CheckboxRadioSwitch>\\n\\t\\t</p>\\n\\t</SettingsSection>\\n</template>\\n\\n<script>\\nimport axios from '@nextcloud/axios'\\nimport { generateUrl } from '@nextcloud/router'\\nimport { loadState } from '@nextcloud/initial-state'\\nimport SettingsSection from '@nextcloud/vue/dist/Components/SettingsSection'\\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\\n\\nconst userSyncCalendarsDocUrl = loadState('dav', 'userSyncCalendarsDocUrl', '#')\\n\\nexport default {\\n\\tname: 'CalDavSettings',\\n\\tcomponents: {\\n\\t\\tCheckboxRadioSwitch,\\n\\t\\tSettingsSection,\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tuserSyncCalendarsDocUrl,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\thint() {\\n\\t\\t\\tconst translated = this.$t(\\n\\t\\t\\t\\t'dav',\\n\\t\\t\\t\\t'Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.',\\n\\t\\t\\t)\\n\\t\\t\\treturn translated\\n\\t\\t\\t\\t.replace('{calendarappstoreopen}', '<a target=\\\"_blank\\\" href=\\\"../apps/office/calendar\\\">')\\n\\t\\t\\t\\t.replace('{calendardocopen}', `<a target=\\\"_blank\\\" href=\\\"${userSyncCalendarsDocUrl}\\\" rel=\\\"noreferrer noopener\\\">`)\\n\\t\\t\\t\\t.replace(/\\\\{linkclose\\\\}/g, '</a>')\\n\\t\\t},\\n\\t\\tsendInvitationsHelpText() {\\n\\t\\t\\tconst translated = this.$t('dav', 'Please make sure to properly set up {emailopen}the email server{linkclose}.')\\n\\t\\t\\treturn translated\\n\\t\\t\\t\\t.replace('{emailopen}', '<a href=\\\"../admin#mail_general_settings\\\">')\\n\\t\\t\\t\\t.replace('{linkclose}', '</a>')\\n\\t\\t},\\n\\t\\tsendEventRemindersHelpText() {\\n\\t\\t\\tconst translated = this.$t('dav', 'Please make sure to properly set up {emailopen}the email server{linkclose}.')\\n\\t\\t\\treturn translated\\n\\t\\t\\t\\t.replace('{emailopen}', '<a href=\\\"../admin#mail_general_settings\\\">')\\n\\t\\t\\t\\t.replace('{linkclose}', '</a>')\\n\\t\\t},\\n\\t},\\n\\twatch: {\\n\\t\\tgenerateBirthdayCalendar(value) {\\n\\t\\t\\tconst baseUrl = value ? '/apps/dav/enableBirthdayCalendar' : '/apps/dav/disableBirthdayCalendar'\\n\\t\\t\\taxios.post(generateUrl(baseUrl))\\n\\t\\t},\\n\\t\\tsendInvitations(value) {\\n\\t\\t\\tOCP.AppConfig.setValue(\\n\\t\\t\\t\\t'dav',\\n\\t\\t\\t\\t'sendInvitations',\\n\\t\\t\\t\\tvalue ? 'yes' : 'no'\\n\\t\\t\\t)\\n\\t\\t},\\n\\t\\tsendEventReminders(value) {\\n\\t\\t\\tOCP.AppConfig.setValue('dav', 'sendEventReminders', value ? 'yes' : 'no')\\n\\t\\t},\\n\\t\\tsendEventRemindersToSharedGroupMembers(value) {\\n\\t\\t\\tOCP.AppConfig.setValue(\\n\\t\\t\\t\\t'dav',\\n\\t\\t\\t\\t'sendEventRemindersToSharedGroupMembers',\\n\\t\\t\\t\\tvalue ? 'yes' : 'no'\\n\\t\\t\\t)\\n\\t\\t},\\n\\t\\tsendEventRemindersPush(value) {\\n\\t\\t\\tOCP.AppConfig.setValue('dav', 'sendEventRemindersPush', value ? 'yes' : 'no')\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style scoped>\\n\\t.indented {\\n\\t\\tpadding-left: 28px;\\n\\t}\\n\\t/** Use deep selector to affect v-html */\\n\\t* >>> a {\\n\\t\\ttext-decoration: underline;\\n\\t}\\n\\t.settings-hint {\\n\\t\\tmargin-top: -.2em;\\n\\t\\tmargin-bottom: 1em;\\n\\t\\topacity: .7;\\n\\t}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2231;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2231: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(14473); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","attrs","$t","userSyncCalendarsDocUrl","staticClass","domProps","_s","hint","_v","sendInvitations","on","$event","sendInvitationsHelpText","generateBirthdayCalendar","sendEventReminders","sendEventRemindersHelpText","sendEventRemindersToSharedGroupMembers","sendEventRemindersPush","Vue","translate","CalDavSettings","name","data","loadState","$mount","___CSS_LOADER_EXPORT___","push","module","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/federatedfilesharing-vue-settings-admin.js b/dist/federatedfilesharing-vue-settings-admin.js index 4e1864f5768..76900843487 100644 --- a/dist/federatedfilesharing-vue-settings-admin.js +++ b/dist/federatedfilesharing-vue-settings-admin.js @@ -1,3 +1,3 @@ /*! For license information please see federatedfilesharing-vue-settings-admin.js.LICENSE.txt */ -!function(){"use strict";var e,r={12690:function(e,r,n){var o=n(20144),a=n(22200),i=n(9944),s=(n(73317),n(16453)),d=n(7826),u=n.n(d),l=n(67776),c=n.n(l),h=n(26932),f=n(4820),v=n(79753),p=n(10128),g=n.n(p);function S(e,r,n,t,o,a,i){try{var s=e[a](i),d=s.value}catch(e){return void n(e)}s.done?r(d):Promise.resolve(d).then(t,o)}function b(e){return function(){var r=this,n=arguments;return new Promise((function(t,o){var a=e.apply(r,n);function i(e){S(a,t,o,i,s,"next",e)}function s(e){S(a,t,o,i,s,"throw",e)}i(void 0)}))}}var k={name:"AdminSettings",components:{CheckboxRadioSwitch:u(),SettingsSection:c()},data:function(){return{outgoingServer2serverShareEnabled:(0,s.loadState)("federatedfilesharing","outgoingServer2serverShareEnabled"),incomingServer2serverShareEnabled:(0,s.loadState)("federatedfilesharing","incomingServer2serverShareEnabled"),outgoingServer2serverGroupShareEnabled:(0,s.loadState)("federatedfilesharing","outgoingServer2serverGroupShareEnabled"),incomingServer2serverGroupShareEnabled:(0,s.loadState)("federatedfilesharing","incomingServer2serverGroupShareEnabled"),federatedGroupSharingSupported:(0,s.loadState)("federatedfilesharing","federatedGroupSharingSupported"),lookupServerEnabled:(0,s.loadState)("federatedfilesharing","lookupServerEnabled"),lookupServerUploadEnabled:(0,s.loadState)("federatedfilesharing","lookupServerUploadEnabled"),internalOnly:(0,s.loadState)("federatedfilesharing","internalOnly"),sharingFederatedDocUrl:(0,s.loadState)("federatedfilesharing","sharingFederatedDocUrl")}},methods:{update:function(e,r){var n=this;return b(regeneratorRuntime.mark((function o(){var a,i,s,d,u,l;return regeneratorRuntime.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,g()();case 2:return a=(0,v.generateOcsUrl)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"files_sharing",key:e}),i=r?"yes":"no",o.prev=4,o.next=7,f.default.post(a,{value:i});case 7:u=o.sent,l=u.data,n.handleResponse({status:null===(s=l.ocs)||void 0===s||null===(d=s.meta)||void 0===d?void 0:d.status}),o.next=15;break;case 12:o.prev=12,o.t0=o.catch(4),n.handleResponse({errorMessage:t("federatedfilesharing","Unable to update federated files sharing config"),error:o.t0});case 15:case"end":return o.stop()}}),o,null,[[4,12]])})))()},handleResponse:function(e){return b(regeneratorRuntime.mark((function r(){var n,t,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:n=e.status,t=e.errorMessage,o=e.error,"ok"!==n&&((0,h.x2)(t),console.error(t,o));case 2:case"end":return r.stop()}}),r)})))()}}},m=(0,n(51900).Z)(k,(function(){var e=this,r=e.$createElement,n=e._self._c||r;return n("SettingsSection",{attrs:{title:e.t("federatedfilesharing","Federated Cloud Sharing"),description:e.t("federatedfilesharing","Adjust how people can share between servers. This includes shares between users on this server as well if they are using federated sharing."),"doc-url":e.sharingFederatedDocUrl}},[n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.outgoingServer2serverShareEnabled},on:{"update:checked":[function(r){e.outgoingServer2serverShareEnabled=r},function(r){return e.update("outgoing_server2server_share_enabled",e.outgoingServer2serverShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow users on this server to send shares to other servers (this option also allows WebDAV access to public shares)"))+"\n\t")]),e._v(" "),n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.incomingServer2serverShareEnabled},on:{"update:checked":[function(r){e.incomingServer2serverShareEnabled=r},function(r){return e.update("incoming_server2server_share_enabled",e.incomingServer2serverShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow users on this server to receive shares from other servers"))+"\n\t")]),e._v(" "),e.federatedGroupSharingSupported?n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.outgoingServer2serverGroupShareEnabled},on:{"update:checked":[function(r){e.outgoingServer2serverGroupShareEnabled=r},function(r){return e.update("outgoing_server2server_group_share_enabled",e.outgoingServer2serverGroupShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow users on this server to send shares to groups on other servers"))+"\n\t")]):e._e(),e._v(" "),e.federatedGroupSharingSupported?n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.incomingServer2serverGroupShareEnabled},on:{"update:checked":[function(r){e.incomingServer2serverGroupShareEnabled=r},function(r){return e.update("incoming_server2server_group_share_enabled",e.incomingServer2serverGroupShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow users on this server to receive group shares from other servers"))+"\n\t")]):e._e(),e._v(" "),n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.lookupServerEnabled},on:{"update:checked":[function(r){e.lookupServerEnabled=r},function(r){return e.update("lookupServerEnabled",e.lookupServerEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Search global and public address book for users"))+"\n\t")]),e._v(" "),n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.lookupServerUploadEnabled},on:{"update:checked":[function(r){e.lookupServerUploadEnabled=r},function(r){return e.update("lookupServerUploadEnabled",e.lookupServerUploadEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow users to publish their data to a global and public address book"))+"\n\t")])],1)}),[],!1,null,null,null).exports;n.nc=btoa((0,a.getRequestToken)()),o.default.mixin({methods:{t:i.translate}}),(0,s.loadState)("federatedfilesharing","internalOnly",!1)||(new(o.default.extend(m))).$mount("#vue-admin-federated")}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={id:e,loaded:!1,exports:{}};return r[e].call(a.exports,a,a.exports,o),a.loaded=!0,a.exports}o.m=r,o.amdD=function(){throw new Error("define cannot be used indirect")},o.amdO={},e=[],o.O=function(r,n,t,a){if(!n){var i=1/0;for(l=0;l<e.length;l++){n=e[l][0],t=e[l][1],a=e[l][2];for(var s=!0,d=0;d<n.length;d++)(!1&a||i>=a)&&Object.keys(o.O).every((function(e){return o.O[e](n[d])}))?n.splice(d--,1):(s=!1,a<i&&(i=a));if(s){e.splice(l--,1);var u=t();void 0!==u&&(r=u)}}return r}a=a||0;for(var l=e.length;l>0&&e[l-1][2]>a;l--)e[l]=e[l-1];e[l]=[n,t,a]},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,{a:r}),r},o.d=function(e,r){for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},o.j=7220,function(){o.b=document.baseURI||self.location.href;var e={7220:0};o.O.j=function(r){return 0===e[r]};var r=function(r,n){var t,a,i=n[0],s=n[1],d=n[2],u=0;if(i.some((function(r){return 0!==e[r]}))){for(t in s)o.o(s,t)&&(o.m[t]=s[t]);if(d)var l=d(o)}for(r&&r(n);u<i.length;u++)a=i[u],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return o.O(l)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))}();var a=o.O(void 0,[7874],(function(){return o(12690)}));a=o.O(a)}(); -//# sourceMappingURL=federatedfilesharing-vue-settings-admin.js.map?v=a37e0282921c84b7c482
\ No newline at end of file +!function(){"use strict";var e,r={70689:function(e,r,n){var o=n(20144),a=n(22200),i=n(9944),s=(n(73317),n(16453)),d=n(7826),u=n.n(d),l=n(67776),c=n.n(l),h=n(26932),f=n(4820),v=n(79753),p=n(10128),g=n.n(p);function S(e,r,n,t,o,a,i){try{var s=e[a](i),d=s.value}catch(e){return void n(e)}s.done?r(d):Promise.resolve(d).then(t,o)}function b(e){return function(){var r=this,n=arguments;return new Promise((function(t,o){var a=e.apply(r,n);function i(e){S(a,t,o,i,s,"next",e)}function s(e){S(a,t,o,i,s,"throw",e)}i(void 0)}))}}var k={name:"AdminSettings",components:{CheckboxRadioSwitch:u(),SettingsSection:c()},data:function(){return{outgoingServer2serverShareEnabled:(0,s.loadState)("federatedfilesharing","outgoingServer2serverShareEnabled"),incomingServer2serverShareEnabled:(0,s.loadState)("federatedfilesharing","incomingServer2serverShareEnabled"),outgoingServer2serverGroupShareEnabled:(0,s.loadState)("federatedfilesharing","outgoingServer2serverGroupShareEnabled"),incomingServer2serverGroupShareEnabled:(0,s.loadState)("federatedfilesharing","incomingServer2serverGroupShareEnabled"),federatedGroupSharingSupported:(0,s.loadState)("federatedfilesharing","federatedGroupSharingSupported"),lookupServerEnabled:(0,s.loadState)("federatedfilesharing","lookupServerEnabled"),lookupServerUploadEnabled:(0,s.loadState)("federatedfilesharing","lookupServerUploadEnabled"),internalOnly:(0,s.loadState)("federatedfilesharing","internalOnly"),sharingFederatedDocUrl:(0,s.loadState)("federatedfilesharing","sharingFederatedDocUrl")}},methods:{update:function(e,r){var n=this;return b(regeneratorRuntime.mark((function o(){var a,i,s,d,u,l;return regeneratorRuntime.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,g()();case 2:return a=(0,v.generateOcsUrl)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"files_sharing",key:e}),i=r?"yes":"no",o.prev=4,o.next=7,f.default.post(a,{value:i});case 7:u=o.sent,l=u.data,n.handleResponse({status:null===(s=l.ocs)||void 0===s||null===(d=s.meta)||void 0===d?void 0:d.status}),o.next=15;break;case 12:o.prev=12,o.t0=o.catch(4),n.handleResponse({errorMessage:t("federatedfilesharing","Unable to update federated files sharing config"),error:o.t0});case 15:case"end":return o.stop()}}),o,null,[[4,12]])})))()},handleResponse:function(e){return b(regeneratorRuntime.mark((function r(){var n,t,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:n=e.status,t=e.errorMessage,o=e.error,"ok"!==n&&((0,h.x2)(t),console.error(t,o));case 2:case"end":return r.stop()}}),r)})))()}}},m=(0,n(51900).Z)(k,(function(){var e=this,r=e.$createElement,n=e._self._c||r;return n("SettingsSection",{attrs:{title:e.t("federatedfilesharing","Federated Cloud Sharing"),description:e.t("federatedfilesharing","Adjust how people can share between servers. This includes shares between users on this server as well if they are using federated sharing."),"doc-url":e.sharingFederatedDocUrl}},[n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.outgoingServer2serverShareEnabled},on:{"update:checked":[function(r){e.outgoingServer2serverShareEnabled=r},function(r){return e.update("outgoing_server2server_share_enabled",e.outgoingServer2serverShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow users on this server to send shares to other servers (this option also allows WebDAV access to public shares)"))+"\n\t")]),e._v(" "),n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.incomingServer2serverShareEnabled},on:{"update:checked":[function(r){e.incomingServer2serverShareEnabled=r},function(r){return e.update("incoming_server2server_share_enabled",e.incomingServer2serverShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow users on this server to receive shares from other servers"))+"\n\t")]),e._v(" "),e.federatedGroupSharingSupported?n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.outgoingServer2serverGroupShareEnabled},on:{"update:checked":[function(r){e.outgoingServer2serverGroupShareEnabled=r},function(r){return e.update("outgoing_server2server_group_share_enabled",e.outgoingServer2serverGroupShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow users on this server to send shares to groups on other servers"))+"\n\t")]):e._e(),e._v(" "),e.federatedGroupSharingSupported?n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.incomingServer2serverGroupShareEnabled},on:{"update:checked":[function(r){e.incomingServer2serverGroupShareEnabled=r},function(r){return e.update("incoming_server2server_group_share_enabled",e.incomingServer2serverGroupShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow users on this server to receive group shares from other servers"))+"\n\t")]):e._e(),e._v(" "),n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.lookupServerEnabled},on:{"update:checked":[function(r){e.lookupServerEnabled=r},function(r){return e.update("lookupServerEnabled",e.lookupServerEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Search global and public address book for users"))+"\n\t")]),e._v(" "),n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.lookupServerUploadEnabled},on:{"update:checked":[function(r){e.lookupServerUploadEnabled=r},function(r){return e.update("lookupServerUploadEnabled",e.lookupServerUploadEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow users to publish their data to a global and public address book"))+"\n\t")])],1)}),[],!1,null,null,null).exports;n.nc=btoa((0,a.getRequestToken)()),o.default.mixin({methods:{t:i.translate}}),(0,s.loadState)("federatedfilesharing","internalOnly",!1)||(new(o.default.extend(m))).$mount("#vue-admin-federated")}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={id:e,loaded:!1,exports:{}};return r[e].call(a.exports,a,a.exports,o),a.loaded=!0,a.exports}o.m=r,o.amdD=function(){throw new Error("define cannot be used indirect")},o.amdO={},e=[],o.O=function(r,n,t,a){if(!n){var i=1/0;for(l=0;l<e.length;l++){n=e[l][0],t=e[l][1],a=e[l][2];for(var s=!0,d=0;d<n.length;d++)(!1&a||i>=a)&&Object.keys(o.O).every((function(e){return o.O[e](n[d])}))?n.splice(d--,1):(s=!1,a<i&&(i=a));if(s){e.splice(l--,1);var u=t();void 0!==u&&(r=u)}}return r}a=a||0;for(var l=e.length;l>0&&e[l-1][2]>a;l--)e[l]=e[l-1];e[l]=[n,t,a]},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,{a:r}),r},o.d=function(e,r){for(var n in r)o.o(r,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},o.j=7220,function(){o.b=document.baseURI||self.location.href;var e={7220:0};o.O.j=function(r){return 0===e[r]};var r=function(r,n){var t,a,i=n[0],s=n[1],d=n[2],u=0;if(i.some((function(r){return 0!==e[r]}))){for(t in s)o.o(s,t)&&(o.m[t]=s[t]);if(d)var l=d(o)}for(r&&r(n);u<i.length;u++)a=i[u],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return o.O(l)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))}();var a=o.O(void 0,[7874],(function(){return o(70689)}));a=o.O(a)}(); +//# sourceMappingURL=federatedfilesharing-vue-settings-admin.js.map?v=e61fb83e082e19d63ad6
\ No newline at end of file diff --git a/dist/federatedfilesharing-vue-settings-admin.js.map b/dist/federatedfilesharing-vue-settings-admin.js.map index b89e9e6e3c1..2f7e5e60778 100644 --- a/dist/federatedfilesharing-vue-settings-admin.js.map +++ b/dist/federatedfilesharing-vue-settings-admin.js.map @@ -1 +1 @@ -{"version":3,"file":"federatedfilesharing-vue-settings-admin.js?v=a37e0282921c84b7c482","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/federatedfilesharing/src/components/AdminSettings.vue?3636","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue?vue&type=template&id=90b5bd3e&","webpack:///nextcloud/apps/federatedfilesharing/src/main-admin.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","<!--\n\t- @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @author Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<SettingsSection :title=\"t('federatedfilesharing', 'Federated Cloud Sharing')\"\n\t\t:description=\"t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between users on this server as well if they are using federated sharing.')\"\n\t\t:doc-url=\"sharingFederatedDocUrl\">\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow users on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow users on this server to receive shares from other servers') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow users on this server to send shares to groups on other servers') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow users on this server to receive group shares from other servers') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"lookupServerEnabled\"\n\t\t\t@update:checked=\"update('lookupServerEnabled', lookupServerEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Search global and public address book for users') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"lookupServerUploadEnabled\"\n\t\t\t@update:checked=\"update('lookupServerUploadEnabled', lookupServerUploadEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow users to publish their data to a global and public address book') }}\n\t\t</CheckboxRadioSwitch>\n\t</SettingsSection>\n</template>\n\n<script>\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\nimport SettingsSection from '@nextcloud/vue/dist/Components/SettingsSection'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport confirmPassword from '@nextcloud/password-confirmation'\n\nexport default {\n\tname: 'AdminSettings',\n\n\tcomponents: {\n\t\tCheckboxRadioSwitch,\n\t\tSettingsSection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\toutgoingServer2serverShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverShareEnabled'),\n\t\t\tincomingServer2serverShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverShareEnabled'),\n\t\t\toutgoingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverGroupShareEnabled'),\n\t\t\tincomingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverGroupShareEnabled'),\n\t\t\tfederatedGroupSharingSupported: loadState('federatedfilesharing', 'federatedGroupSharingSupported'),\n\t\t\tlookupServerEnabled: loadState('federatedfilesharing', 'lookupServerEnabled'),\n\t\t\tlookupServerUploadEnabled: loadState('federatedfilesharing', 'lookupServerUploadEnabled'),\n\t\t\tinternalOnly: loadState('federatedfilesharing', 'internalOnly'),\n\t\t\tsharingFederatedDocUrl: loadState('federatedfilesharing', 'sharingFederatedDocUrl'),\n\t\t}\n\t},\n\tmethods: {\n\t\tasync update(key, value) {\n\t\t\tawait confirmPassword()\n\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'files_sharing',\n\t\t\t\tkey,\n\t\t\t})\n\n\t\t\tconst stringValue = value ? 'yes' : 'no'\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(url, {\n\t\t\t\t\tvalue: stringValue,\n\t\t\t\t})\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tstatus: data.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('federatedfilesharing', 'Unable to update federated files sharing config'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tasync handleResponse({ status, errorMessage, error }) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tconsole.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t}\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdminSettings.vue?vue&type=template&id=90b5bd3e&\"\nimport script from \"./AdminSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./AdminSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('SettingsSection',{attrs:{\"title\":_vm.t('federatedfilesharing', 'Federated Cloud Sharing'),\"description\":_vm.t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between users on this server as well if they are using federated sharing.'),\"doc-url\":_vm.sharingFederatedDocUrl}},[_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.outgoingServer2serverShareEnabled},on:{\"update:checked\":[function($event){_vm.outgoingServer2serverShareEnabled=$event},function($event){return _vm.update('outgoing_server2server_share_enabled', _vm.outgoingServer2serverShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow users on this server to send shares to other servers (this option also allows WebDAV access to public shares)'))+\"\\n\\t\")]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.incomingServer2serverShareEnabled},on:{\"update:checked\":[function($event){_vm.incomingServer2serverShareEnabled=$event},function($event){return _vm.update('incoming_server2server_share_enabled', _vm.incomingServer2serverShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow users on this server to receive shares from other servers'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.federatedGroupSharingSupported)?_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.outgoingServer2serverGroupShareEnabled},on:{\"update:checked\":[function($event){_vm.outgoingServer2serverGroupShareEnabled=$event},function($event){return _vm.update('outgoing_server2server_group_share_enabled', _vm.outgoingServer2serverGroupShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow users on this server to send shares to groups on other servers'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.federatedGroupSharingSupported)?_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.incomingServer2serverGroupShareEnabled},on:{\"update:checked\":[function($event){_vm.incomingServer2serverGroupShareEnabled=$event},function($event){return _vm.update('incoming_server2server_group_share_enabled', _vm.incomingServer2serverGroupShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow users on this server to receive group shares from other servers'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.lookupServerEnabled},on:{\"update:checked\":[function($event){_vm.lookupServerEnabled=$event},function($event){return _vm.update('lookupServerEnabled', _vm.lookupServerEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Search global and public address book for users'))+\"\\n\\t\")]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.lookupServerUploadEnabled},on:{\"update:checked\":[function($event){_vm.lookupServerUploadEnabled=$event},function($event){return _vm.update('lookupServerUploadEnabled', _vm.lookupServerUploadEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow users to publish their data to a global and public address book'))+\"\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n *\n * @author Carl Schwan <carl@carlschwan.eu>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { translate as t } from '@nextcloud/l10n'\nimport '@nextcloud/dialogs/styles/toast.scss'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AdminSettings from './components/AdminSettings'\n\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst internalOnly = loadState('federatedfilesharing', 'internalOnly', false)\n\nif (!internalOnly) {\n\tconst AdminSettingsView = Vue.extend(AdminSettings)\n\tnew AdminSettingsView().$mount('#vue-admin-federated')\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7220;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7220: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(12690); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","_vm","this","_h","$createElement","_c","_self","attrs","t","sharingFederatedDocUrl","outgoingServer2serverShareEnabled","on","$event","update","_v","_s","incomingServer2serverShareEnabled","outgoingServer2serverGroupShareEnabled","_e","incomingServer2serverGroupShareEnabled","lookupServerEnabled","lookupServerUploadEnabled","__webpack_nonce__","btoa","getRequestToken","Vue","methods","loadState","AdminSettings","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","push","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"federatedfilesharing-vue-settings-admin.js?v=e61fb83e082e19d63ad6","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/federatedfilesharing/src/components/AdminSettings.vue?3636","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue?vue&type=template&id=1e565416&","webpack:///nextcloud/apps/federatedfilesharing/src/main-admin.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","<!--\n\t- @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @author Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<SettingsSection :title=\"t('federatedfilesharing', 'Federated Cloud Sharing')\"\n\t\t:description=\"t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between users on this server as well if they are using federated sharing.')\"\n\t\t:doc-url=\"sharingFederatedDocUrl\">\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow users on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow users on this server to receive shares from other servers') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow users on this server to send shares to groups on other servers') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow users on this server to receive group shares from other servers') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"lookupServerEnabled\"\n\t\t\t@update:checked=\"update('lookupServerEnabled', lookupServerEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Search global and public address book for users') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"lookupServerUploadEnabled\"\n\t\t\t@update:checked=\"update('lookupServerUploadEnabled', lookupServerUploadEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow users to publish their data to a global and public address book') }}\n\t\t</CheckboxRadioSwitch>\n\t</SettingsSection>\n</template>\n\n<script>\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\nimport SettingsSection from '@nextcloud/vue/dist/Components/SettingsSection'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport confirmPassword from '@nextcloud/password-confirmation'\n\nexport default {\n\tname: 'AdminSettings',\n\n\tcomponents: {\n\t\tCheckboxRadioSwitch,\n\t\tSettingsSection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\toutgoingServer2serverShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverShareEnabled'),\n\t\t\tincomingServer2serverShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverShareEnabled'),\n\t\t\toutgoingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverGroupShareEnabled'),\n\t\t\tincomingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverGroupShareEnabled'),\n\t\t\tfederatedGroupSharingSupported: loadState('federatedfilesharing', 'federatedGroupSharingSupported'),\n\t\t\tlookupServerEnabled: loadState('federatedfilesharing', 'lookupServerEnabled'),\n\t\t\tlookupServerUploadEnabled: loadState('federatedfilesharing', 'lookupServerUploadEnabled'),\n\t\t\tinternalOnly: loadState('federatedfilesharing', 'internalOnly'),\n\t\t\tsharingFederatedDocUrl: loadState('federatedfilesharing', 'sharingFederatedDocUrl'),\n\t\t}\n\t},\n\tmethods: {\n\t\tasync update(key, value) {\n\t\t\tawait confirmPassword()\n\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'files_sharing',\n\t\t\t\tkey,\n\t\t\t})\n\n\t\t\tconst stringValue = value ? 'yes' : 'no'\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(url, {\n\t\t\t\t\tvalue: stringValue,\n\t\t\t\t})\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tstatus: data.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('federatedfilesharing', 'Unable to update federated files sharing config'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tasync handleResponse({ status, errorMessage, error }) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tconsole.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdminSettings.vue?vue&type=template&id=1e565416&\"\nimport script from \"./AdminSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./AdminSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('SettingsSection',{attrs:{\"title\":_vm.t('federatedfilesharing', 'Federated Cloud Sharing'),\"description\":_vm.t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between users on this server as well if they are using federated sharing.'),\"doc-url\":_vm.sharingFederatedDocUrl}},[_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.outgoingServer2serverShareEnabled},on:{\"update:checked\":[function($event){_vm.outgoingServer2serverShareEnabled=$event},function($event){return _vm.update('outgoing_server2server_share_enabled', _vm.outgoingServer2serverShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow users on this server to send shares to other servers (this option also allows WebDAV access to public shares)'))+\"\\n\\t\")]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.incomingServer2serverShareEnabled},on:{\"update:checked\":[function($event){_vm.incomingServer2serverShareEnabled=$event},function($event){return _vm.update('incoming_server2server_share_enabled', _vm.incomingServer2serverShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow users on this server to receive shares from other servers'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.federatedGroupSharingSupported)?_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.outgoingServer2serverGroupShareEnabled},on:{\"update:checked\":[function($event){_vm.outgoingServer2serverGroupShareEnabled=$event},function($event){return _vm.update('outgoing_server2server_group_share_enabled', _vm.outgoingServer2serverGroupShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow users on this server to send shares to groups on other servers'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.federatedGroupSharingSupported)?_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.incomingServer2serverGroupShareEnabled},on:{\"update:checked\":[function($event){_vm.incomingServer2serverGroupShareEnabled=$event},function($event){return _vm.update('incoming_server2server_group_share_enabled', _vm.incomingServer2serverGroupShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow users on this server to receive group shares from other servers'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.lookupServerEnabled},on:{\"update:checked\":[function($event){_vm.lookupServerEnabled=$event},function($event){return _vm.update('lookupServerEnabled', _vm.lookupServerEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Search global and public address book for users'))+\"\\n\\t\")]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.lookupServerUploadEnabled},on:{\"update:checked\":[function($event){_vm.lookupServerUploadEnabled=$event},function($event){return _vm.update('lookupServerUploadEnabled', _vm.lookupServerUploadEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow users to publish their data to a global and public address book'))+\"\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n *\n * @author Carl Schwan <carl@carlschwan.eu>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { translate as t } from '@nextcloud/l10n'\nimport '@nextcloud/dialogs/styles/toast.scss'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AdminSettings from './components/AdminSettings'\n\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst internalOnly = loadState('federatedfilesharing', 'internalOnly', false)\n\nif (!internalOnly) {\n\tconst AdminSettingsView = Vue.extend(AdminSettings)\n\tnew AdminSettingsView().$mount('#vue-admin-federated')\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7220;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7220: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(70689); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","_vm","this","_h","$createElement","_c","_self","attrs","t","sharingFederatedDocUrl","outgoingServer2serverShareEnabled","on","$event","update","_v","_s","incomingServer2serverShareEnabled","outgoingServer2serverGroupShareEnabled","_e","incomingServer2serverGroupShareEnabled","lookupServerEnabled","lookupServerUploadEnabled","__webpack_nonce__","btoa","getRequestToken","Vue","methods","loadState","AdminSettings","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","push","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/settings-apps.js.map b/dist/settings-apps.js.map index b5e13a00aeb..e949a9aa5b4 100644 --- a/dist/settings-apps.js.map +++ b/dist/settings-apps.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-apps.js?v=707d427ce8cb96a7aded","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/settings/src/apps.js","webpack:///nextcloud/apps/settings/src/service/rebuild-navigation.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import rebuildNavigation from './service/rebuild-navigation.js'\n\nwindow.OC.Settings = window.OC.Settings || {}\nwindow.OC.Settings.Apps = window.OC.Settings.Apps || {\n\trebuildNavigation\n}\n","import axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default () => {\n\treturn axios.get(generateOcsUrl('core/navigation', 2) + '/apps?format=json')\n\t\t.then(({ data }) => {\n\t\t\tif (data.ocs.meta.statuscode !== 200) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst addedApps = {}\n\t\t\tconst navEntries = data.ocs.data\n\t\t\tconst container = document.querySelector('#navigation #apps ul')\n\n\t\t\t// remove disabled apps\n\t\t\tnavEntries.forEach((entry) => {\n\t\t\t\tif (!container.querySelector('li[data-id=\"' + entry.id + '\"]')) {\n\t\t\t\t\taddedApps[entry.id] = true\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tcontainer.querySelectorAll('li[data-id]').forEach((el, index) => {\n\t\t\t\tconst id = el.dataset.id\n\t\t\t\t// remove all apps that are not in the correct order\n\t\t\t\tif (!navEntries[index] || (navEntries[index] && navEntries[index].id !== id)) {\n\t\t\t\t\tel.remove()\n\t\t\t\t\tdocument.querySelector(`#appmenu li[data-id=${id}]`).remove()\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tlet previousEntry = {}\n\t\t\t// add enabled apps to #navigation and #appmenu\n\t\t\tnavEntries.forEach((entry) => {\n\t\t\t\tif (container.querySelector(`li[data-id=\"${entry.id}\"]`) === null) {\n\t\t\t\t\tconst li = document.createElement('li')\n\t\t\t\t\tli.dataset.id = entry.id\n\t\t\t\t\tconst img = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" alt=\"\">\n\t\t\t\t\t <defs>\n\t\t\t\t\t <filter id=\"invertMenuMore-${entry.id}\"><feColorMatrix in=\"SourceGraphic\" type=\"matrix\" values=\"-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0\"></feColorMatrix></filter>\n\t\t\t\t\t <mask id=\"hole\">\n\t\t\t\t\t <rect width=\"100%\" height=\"100%\" fill=\"white\"></rect>\n\t\t\t\t\t\t<circle r=\"4.5\" cx=\"17\" cy=\"3\" fill=\"black\"></circle>\n\t\t\t\t\t </mask>\n\t\t\t\t\t </defs>\n\t\t\t\t\t <image x=\"0\" y=\"0\" width=\"16\" height=\"16\" filter=\"url(#invertMenuMore-${entry.id})\" preserveAspectRatio=\"xMinYMin meet\" xlink:href=\"${entry.icon}\" class=\"app-icon\" />\n\t\t\t\t\t</svg>`\n\n\t\t\t\t\tconst imgElement = document.createElement('template')\n\t\t\t\t\timgElement.innerHTML = img\n\n\t\t\t\t\tconst a = document.createElement('a')\n\t\t\t\t\ta.setAttribute('href', entry.href)\n\n\t\t\t\t\tconst filename = document.createElement('span')\n\t\t\t\t\tfilename.appendChild(document.createTextNode(entry.name))\n\n\t\t\t\t\tconst loading = document.createElement('div')\n\t\t\t\t\tloading.setAttribute('class', 'unread-counter')\n\t\t\t\t\tloading.style.display = 'none'\n\n\t\t\t\t\t// draw attention to the newly added app entry\n\t\t\t\t\t// by flashing twice the more apps menu\n\t\t\t\t\tif (addedApps[entry.id]) {\n\t\t\t\t\t\ta.classList.add('animated')\n\t\t\t\t\t}\n\n\t\t\t\t\ta.prepend(imgElement.content.firstChild, loading, filename)\n\t\t\t\t\tli.append(a)\n\n\t\t\t\t\t// add app icon to the navigation\n\t\t\t\t\tconst previousElement = document.querySelector(`#navigation li[data-id=${previousEntry.id}]`)\n\t\t\t\t\tif (previousElement) {\n\t\t\t\t\t\tpreviousElement.insertAdjacentElement('afterend', li)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdocument.querySelector('#navigation #apps ul').prepend(li)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (document.getElementById('appmenu').querySelector(`li[data-id=\"${entry.id}\"]`) === null) {\n\t\t\t\t\tconst li = document.createElement('li')\n\t\t\t\t\tli.dataset.id = entry.id\n\t\t\t\t\t// Generating svg embedded image (see layout.user.php)\n\t\t\t\t\tlet img\n\t\t\t\t\tif (OCA.Theming && OCA.Theming.inverted) {\n\t\t\t\t\t\timg = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" alt=\"\">\n\t\t\t\t\t\t <defs>\n\t\t\t\t\t\t <filter id=\"invert\"><feColorMatrix in=\"SourceGraphic\" type=\"matrix\" values=\"-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0\" /></filter>\n\t\t\t\t\t\t </defs>\n\t\t\t\t\t\t <image x=\"0\" y=\"0\" width=\"20\" height=\"20\" preserveAspectRatio=\"xMinYMin meet\" filter=\"url(#invert)\" xlink:href=\"${entry.icon}\" class=\"app-icon\" />\n\t\t\t\t\t\t</svg>`\n\t\t\t\t\t} else {\n\t\t\t\t\t\timg = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" alt=\"\">\n\t\t\t\t\t\t <image x=\"0\" y=\"0\" width=\"20\" height=\"20\" preserveAspectRatio=\"xMinYMin meet\" xlink:href=\"${entry.icon}\" class=\"app-icon\" />\n\t\t\t\t\t\t</svg>`\n\t\t\t\t\t}\n\t\t\t\t\tconst imgElement = document.createElement('template')\n\t\t\t\t\timgElement.innerHTML = img\n\n\t\t\t\t\tconst a = document.createElement('a')\n\t\t\t\t\ta.setAttribute('href', entry.href)\n\n\t\t\t\t\tconst filename = document.createElement('span')\n\t\t\t\t\tfilename.appendChild(document.createTextNode(entry.name))\n\n\t\t\t\t\tconst loading = document.createElement('div')\n\t\t\t\t\tloading.setAttribute('class', 'icon-loading-dark')\n\t\t\t\t\tloading.style.display = 'none'\n\n\t\t\t\t\t// draw attention to the newly added app entry\n\t\t\t\t\t// by flashing twice the more apps menu\n\t\t\t\t\tif (addedApps[entry.id]) {\n\t\t\t\t\t\ta.classList.add('animated')\n\t\t\t\t\t}\n\n\t\t\t\t\ta.prepend(loading, filename, imgElement.content.firstChild)\n\t\t\t\t\tli.append(a)\n\n\t\t\t\t\t// add app icon to the navigation\n\t\t\t\t\tconst previousElement = document.querySelector('#appmenu li[data-id=' + previousEntry.id + ']')\n\t\t\t\t\tif (previousElement) {\n\t\t\t\t\t\tpreviousElement.insertAdjacentElement('afterend', li)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdocument.queryElementById('appmenu').prepend(li)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpreviousEntry = entry\n\t\t\t})\n\t\t\twindow.dispatchEvent(new Event('resize'))\n\t\t})\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1647;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1647: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(49983); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","window","OC","Settings","Apps","rebuildNavigation","axios","generateOcsUrl","then","data","ocs","meta","statuscode","addedApps","navEntries","container","document","querySelector","forEach","entry","id","querySelectorAll","el","index","dataset","remove","previousEntry","li","createElement","img","icon","imgElement","innerHTML","a","setAttribute","href","filename","appendChild","createTextNode","name","loading","style","display","classList","add","prepend","content","firstChild","append","previousElement","insertAdjacentElement","getElementById","OCA","Theming","inverted","queryElementById","dispatchEvent","Event","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","get","g","globalThis","this","Function","e","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","baseURI","self","location","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","bind","push","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"settings-apps.js?v=707d427ce8cb96a7aded","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/settings/src/apps.js","webpack:///nextcloud/apps/settings/src/service/rebuild-navigation.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import rebuildNavigation from './service/rebuild-navigation.js'\n\nwindow.OC.Settings = window.OC.Settings || {}\nwindow.OC.Settings.Apps = window.OC.Settings.Apps || {\n\trebuildNavigation,\n}\n","import axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default () => {\n\treturn axios.get(generateOcsUrl('core/navigation', 2) + '/apps?format=json')\n\t\t.then(({ data }) => {\n\t\t\tif (data.ocs.meta.statuscode !== 200) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst addedApps = {}\n\t\t\tconst navEntries = data.ocs.data\n\t\t\tconst container = document.querySelector('#navigation #apps ul')\n\n\t\t\t// remove disabled apps\n\t\t\tnavEntries.forEach((entry) => {\n\t\t\t\tif (!container.querySelector('li[data-id=\"' + entry.id + '\"]')) {\n\t\t\t\t\taddedApps[entry.id] = true\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tcontainer.querySelectorAll('li[data-id]').forEach((el, index) => {\n\t\t\t\tconst id = el.dataset.id\n\t\t\t\t// remove all apps that are not in the correct order\n\t\t\t\tif (!navEntries[index] || (navEntries[index] && navEntries[index].id !== id)) {\n\t\t\t\t\tel.remove()\n\t\t\t\t\tdocument.querySelector(`#appmenu li[data-id=${id}]`).remove()\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tlet previousEntry = {}\n\t\t\t// add enabled apps to #navigation and #appmenu\n\t\t\tnavEntries.forEach((entry) => {\n\t\t\t\tif (container.querySelector(`li[data-id=\"${entry.id}\"]`) === null) {\n\t\t\t\t\tconst li = document.createElement('li')\n\t\t\t\t\tli.dataset.id = entry.id\n\t\t\t\t\tconst img = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" alt=\"\">\n\t\t\t\t\t <defs>\n\t\t\t\t\t <filter id=\"invertMenuMore-${entry.id}\"><feColorMatrix in=\"SourceGraphic\" type=\"matrix\" values=\"-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0\"></feColorMatrix></filter>\n\t\t\t\t\t <mask id=\"hole\">\n\t\t\t\t\t <rect width=\"100%\" height=\"100%\" fill=\"white\"></rect>\n\t\t\t\t\t\t<circle r=\"4.5\" cx=\"17\" cy=\"3\" fill=\"black\"></circle>\n\t\t\t\t\t </mask>\n\t\t\t\t\t </defs>\n\t\t\t\t\t <image x=\"0\" y=\"0\" width=\"16\" height=\"16\" filter=\"url(#invertMenuMore-${entry.id})\" preserveAspectRatio=\"xMinYMin meet\" xlink:href=\"${entry.icon}\" class=\"app-icon\" />\n\t\t\t\t\t</svg>`\n\n\t\t\t\t\tconst imgElement = document.createElement('template')\n\t\t\t\t\timgElement.innerHTML = img\n\n\t\t\t\t\tconst a = document.createElement('a')\n\t\t\t\t\ta.setAttribute('href', entry.href)\n\n\t\t\t\t\tconst filename = document.createElement('span')\n\t\t\t\t\tfilename.appendChild(document.createTextNode(entry.name))\n\n\t\t\t\t\tconst loading = document.createElement('div')\n\t\t\t\t\tloading.setAttribute('class', 'unread-counter')\n\t\t\t\t\tloading.style.display = 'none'\n\n\t\t\t\t\t// draw attention to the newly added app entry\n\t\t\t\t\t// by flashing twice the more apps menu\n\t\t\t\t\tif (addedApps[entry.id]) {\n\t\t\t\t\t\ta.classList.add('animated')\n\t\t\t\t\t}\n\n\t\t\t\t\ta.prepend(imgElement.content.firstChild, loading, filename)\n\t\t\t\t\tli.append(a)\n\n\t\t\t\t\t// add app icon to the navigation\n\t\t\t\t\tconst previousElement = document.querySelector(`#navigation li[data-id=${previousEntry.id}]`)\n\t\t\t\t\tif (previousElement) {\n\t\t\t\t\t\tpreviousElement.insertAdjacentElement('afterend', li)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdocument.querySelector('#navigation #apps ul').prepend(li)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (document.getElementById('appmenu').querySelector(`li[data-id=\"${entry.id}\"]`) === null) {\n\t\t\t\t\tconst li = document.createElement('li')\n\t\t\t\t\tli.dataset.id = entry.id\n\t\t\t\t\t// Generating svg embedded image (see layout.user.php)\n\t\t\t\t\tlet img\n\t\t\t\t\tif (OCA.Theming && OCA.Theming.inverted) {\n\t\t\t\t\t\timg = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" alt=\"\">\n\t\t\t\t\t\t <defs>\n\t\t\t\t\t\t <filter id=\"invert\"><feColorMatrix in=\"SourceGraphic\" type=\"matrix\" values=\"-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0\" /></filter>\n\t\t\t\t\t\t </defs>\n\t\t\t\t\t\t <image x=\"0\" y=\"0\" width=\"20\" height=\"20\" preserveAspectRatio=\"xMinYMin meet\" filter=\"url(#invert)\" xlink:href=\"${entry.icon}\" class=\"app-icon\" />\n\t\t\t\t\t\t</svg>`\n\t\t\t\t\t} else {\n\t\t\t\t\t\timg = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" alt=\"\">\n\t\t\t\t\t\t <image x=\"0\" y=\"0\" width=\"20\" height=\"20\" preserveAspectRatio=\"xMinYMin meet\" xlink:href=\"${entry.icon}\" class=\"app-icon\" />\n\t\t\t\t\t\t</svg>`\n\t\t\t\t\t}\n\t\t\t\t\tconst imgElement = document.createElement('template')\n\t\t\t\t\timgElement.innerHTML = img\n\n\t\t\t\t\tconst a = document.createElement('a')\n\t\t\t\t\ta.setAttribute('href', entry.href)\n\n\t\t\t\t\tconst filename = document.createElement('span')\n\t\t\t\t\tfilename.appendChild(document.createTextNode(entry.name))\n\n\t\t\t\t\tconst loading = document.createElement('div')\n\t\t\t\t\tloading.setAttribute('class', 'icon-loading-dark')\n\t\t\t\t\tloading.style.display = 'none'\n\n\t\t\t\t\t// draw attention to the newly added app entry\n\t\t\t\t\t// by flashing twice the more apps menu\n\t\t\t\t\tif (addedApps[entry.id]) {\n\t\t\t\t\t\ta.classList.add('animated')\n\t\t\t\t\t}\n\n\t\t\t\t\ta.prepend(loading, filename, imgElement.content.firstChild)\n\t\t\t\t\tli.append(a)\n\n\t\t\t\t\t// add app icon to the navigation\n\t\t\t\t\tconst previousElement = document.querySelector('#appmenu li[data-id=' + previousEntry.id + ']')\n\t\t\t\t\tif (previousElement) {\n\t\t\t\t\t\tpreviousElement.insertAdjacentElement('afterend', li)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdocument.queryElementById('appmenu').prepend(li)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpreviousEntry = entry\n\t\t\t})\n\t\t\twindow.dispatchEvent(new Event('resize'))\n\t\t})\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1647;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1647: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(49983); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","window","OC","Settings","Apps","rebuildNavigation","axios","generateOcsUrl","then","data","ocs","meta","statuscode","addedApps","navEntries","container","document","querySelector","forEach","entry","id","querySelectorAll","el","index","dataset","remove","previousEntry","li","createElement","img","icon","imgElement","innerHTML","a","setAttribute","href","filename","appendChild","createTextNode","name","loading","style","display","classList","add","prepend","content","firstChild","append","previousElement","insertAdjacentElement","getElementById","OCA","Theming","inverted","queryElementById","dispatchEvent","Event","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","get","g","globalThis","this","Function","e","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","baseURI","self","location","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","bind","push","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/settings-legacy-admin.js.map b/dist/settings-legacy-admin.js.map index fd75b9308da..13c8acdee8e 100644 --- a/dist/settings-legacy-admin.js.map +++ b/dist/settings-legacy-admin.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-legacy-admin.js?v=7d5dee9513a670ec587d","mappings":"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","sources":["webpack:///nextcloud/apps/settings/src/admin.js","webpack:///nextcloud/webpack/startup"],"sourcesContent":["window.addEventListener('DOMContentLoaded', () => {\n\t$('#excludedGroups,#linksExcludedGroups,#passwordsExcludedGroups').each(function(index, element) {\n\t\tOC.Settings.setupGroupsSelect($(element))\n\t\t$(element).change((ev) => {\n\t\t\tlet groups = ev.val || []\n\t\t\tgroups = JSON.stringify(groups)\n\t\t\tOCP.AppConfig.setValue('core', $(this).attr('name'), groups)\n\t\t})\n\t})\n\n\t$('#loglevel').change(() => {\n\t\t$.post(OC.generateUrl('/settings/admin/log/level'), { level: $(this).val() }, () => {\n\t\t\tOC.Log.reload()\n\t\t})\n\t})\n\n\t$('#shareAPIEnabled').change(() => {\n\t\t$('#shareAPI p:not(#enable)').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#enableEncryption').change(() => {\n\t\t$('#encryptionAPI div#EncryptionWarning').toggleClass('hidden')\n\t})\n\n\t$('#reallyEnableEncryption').click(() => {\n\t\t$('#encryptionAPI div#EncryptionWarning').toggleClass('hidden')\n\t\t$('#encryptionAPI div#EncryptionSettingsArea').toggleClass('hidden')\n\t\tOCP.AppConfig.setValue('core', 'encryption_enabled', 'yes')\n\t\t$('#enableEncryption').attr('disabled', 'disabled')\n\t})\n\n\t$('#startmigration').click((event) => {\n\t\t$(window).on('beforeunload.encryption', (e) => {\n\t\t\treturn t('settings', 'Migration in progress. Please wait until the migration is finished')\n\t\t})\n\t\tevent.preventDefault()\n\t\t$('#startmigration').prop('disabled', true)\n\t\tOC.msg.startAction('#startmigration_msg', t('settings', 'Migration started …'))\n\t\t$.post(OC.generateUrl('/settings/admin/startmigration'), '', function(data) {\n\t\t\tOC.msg.finishedAction('#startmigration_msg', data)\n\t\t\tif (data.status === 'success') {\n\t\t\t\t$('#encryptionAPI div#selectEncryptionModules').toggleClass('hidden')\n\t\t\t\t$('#encryptionAPI div#migrationWarning').toggleClass('hidden')\n\t\t\t} else {\n\t\t\t\t$('#startmigration').prop('disabled', false)\n\t\t\t}\n\t\t\t$(window).off('beforeunload.encryption')\n\n\t\t})\n\t})\n\n\t$('#shareapiExpireAfterNDays').on('input', function() {\n\t\tthis.value = this.value.replace(/\\D/g, '')\n\t})\n\n\t$('#shareAPI input:not(.noJSAutoUpdate)').change(function() {\n\t\tlet value = $(this).val()\n\t\tif ($(this).attr('type') === 'checkbox') {\n\t\t\tif (this.checked) {\n\t\t\t\tvalue = 'yes'\n\t\t\t} else {\n\t\t\t\tvalue = 'no'\n\t\t\t}\n\t\t}\n\t\tOCP.AppConfig.setValue('core', $(this).attr('name'), value)\n\t})\n\n\t$('#shareapiDefaultExpireDate').change(function() {\n\t\t$('setDefaultExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiDefaultInternalExpireDate').change(function() {\n\t\t$('#setDefaultInternalExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiDefaultRemoteExpireDate').change(function() {\n\t\t$('#setDefaultRemoteExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#enforceLinkPassword').change(function() {\n\t\t$('#selectPasswordsExcludedGroups').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#publicShareDisclaimer').change(function() {\n\t\t$('#publicShareDisclaimerText').toggleClass('hidden', !this.checked)\n\t\tif (!this.checked) {\n\t\t\tsavePublicShareDisclaimerText('')\n\t\t}\n\t})\n\n\t$('#shareApiDefaultPermissionsSection input').change(function(ev) {\n\t\tconst $el = $('#shareApiDefaultPermissions')\n\t\tconst $target = $(ev.target)\n\n\t\tlet value = $el.val()\n\t\tif ($target.is(':checked')) {\n\t\t\tvalue = value | $target.val()\n\t\t} else {\n\t\t\tvalue = value & ~$target.val()\n\t\t}\n\n\t\t// always set read permission\n\t\tvalue |= OC.PERMISSION_READ\n\n\t\t// this will trigger the field's change event and will save it\n\t\t$el.val(value).change()\n\n\t\tev.preventDefault()\n\n\t\treturn false\n\t})\n\n\tconst savePublicShareDisclaimerText = _.debounce(function(value) {\n\t\tconst options = {\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#publicShareDisclaimerStatus', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: () => {\n\t\t\t\tOC.msg.finishedError('#publicShareDisclaimerStatus', t('settings', 'Not saved'))\n\t\t\t}\n\t\t}\n\n\t\tOC.msg.startSaving('#publicShareDisclaimerStatus')\n\t\tif (_.isString(value) && value !== '') {\n\t\t\tOCP.AppConfig.setValue('core', 'shareapi_public_link_disclaimertext', value, options)\n\t\t} else {\n\t\t\t$('#publicShareDisclaimerText').val('')\n\t\t\tOCP.AppConfig.deleteKey('core', 'shareapi_public_link_disclaimertext', options)\n\t\t}\n\t}, 500)\n\n\t$('#publicShareDisclaimerText').on('change, keyup', function() {\n\t\tsavePublicShareDisclaimerText(this.value)\n\t})\n\n\t$('#shareapi_allow_share_dialog_user_enumeration').on('change', function() {\n\t\t$('#shareapi_restrict_user_enumeration_to_group_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_to_phone_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_combinewarning_setting').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapi_restrict_user_enumeration_full_match').on('change', function() {\n\t\t$('#shareapi_restrict_user_enumeration_full_match_userid_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_full_match_email_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_full_match_ignore_second_display_name_setting').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#allowLinks').change(function() {\n\t\t$('#publicLinkSettings').toggleClass('hidden', !this.checked)\n\t\t$('#setDefaultExpireDate').toggleClass('hidden', !(this.checked && $('#shareapiDefaultExpireDate')[0].checked))\n\t})\n\n\t$('#mail_smtpauth').change(function() {\n\t\tif (!this.checked) {\n\t\t\t$('#mail_credentials').addClass('hidden')\n\t\t} else {\n\t\t\t$('#mail_credentials').removeClass('hidden')\n\t\t}\n\t})\n\n\t$('#mail_smtpmode').change(function() {\n\t\tif ($(this).val() !== 'smtp') {\n\t\t\t$('#setting_smtpauth').addClass('hidden')\n\t\t\t$('#setting_smtphost').addClass('hidden')\n\t\t\t$('#mail_smtpsecure_label').addClass('hidden')\n\t\t\t$('#mail_smtpsecure').addClass('hidden')\n\t\t\t$('#mail_credentials').addClass('hidden')\n\t\t\t$('#mail_sendmailmode_label, #mail_sendmailmode').removeClass('hidden')\n\t\t} else {\n\t\t\t$('#setting_smtpauth').removeClass('hidden')\n\t\t\t$('#setting_smtphost').removeClass('hidden')\n\t\t\t$('#mail_smtpsecure_label').removeClass('hidden')\n\t\t\t$('#mail_smtpsecure').removeClass('hidden')\n\t\t\tif ($('#mail_smtpauth').is(':checked')) {\n\t\t\t\t$('#mail_credentials').removeClass('hidden')\n\t\t\t}\n\t\t\t$('#mail_sendmailmode_label, #mail_sendmailmode').addClass('hidden')\n\t\t}\n\t})\n\n\tconst changeEmailSettings = function() {\n\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(changeEmailSettings)\n\t\t\treturn\n\t\t}\n\n\t\tOC.msg.startSaving('#mail_settings_msg')\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailsettings'),\n\t\t\ttype: 'POST',\n\t\t\tdata: $('#mail_general_settings_form').serialize(),\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#mail_settings_msg', xhr.responseJSON)\n\t\t\t}\n\t\t})\n\t}\n\n\tconst toggleEmailCredentials = function() {\n\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(toggleEmailCredentials)\n\t\t\treturn\n\t\t}\n\n\t\tOC.msg.startSaving('#mail_settings_msg')\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailsettings/credentials'),\n\t\t\ttype: 'POST',\n\t\t\tdata: $('#mail_credentials_settings').serialize(),\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#mail_settings_msg', xhr.responseJSON)\n\t\t\t}\n\t\t})\n\t}\n\n\t$('#mail_general_settings_form').change(changeEmailSettings)\n\t$('#mail_credentials_settings_submit').click(toggleEmailCredentials)\n\t$('#mail_smtppassword').click(() => {\n\t\tif (this.type === 'text' && this.value === '********') {\n\t\t\tthis.type = 'password'\n\t\t\tthis.value = ''\n\t\t}\n\t})\n\n\t$('#sendtestemail').click((event) => {\n\t\tevent.preventDefault()\n\t\tOC.msg.startAction('#sendtestmail_msg', t('settings', 'Sending…'))\n\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailtest'),\n\t\t\ttype: 'POST',\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#sendtestmail_msg', t('settings', 'Email sent'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#sendtestmail_msg', xhr.responseJSON)\n\t\t\t}\n\t\t})\n\t})\n\n\t$('#allowGroupSharing').change(() => {\n\t\t$('#allowGroupSharing').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiExcludeGroups').change(() => {\n\t\t$('#selectExcludedGroups').toggleClass('hidden', !this.checked)\n\t})\n\n\tconst setupChecks = () => {\n\t\t// run setup checks then gather error messages\n\t\t$.when(\n\t\t\tOC.SetupChecks.checkWebDAV(),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('GET', '/.well-known/webfinger', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true, [200, 404], true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('GET', '/.well-known/nodeinfo', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true, [200, 404], true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('PROPFIND', '/.well-known/caldav', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('PROPFIND', '/.well-known/carddav', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkProviderUrl(OC.getRootPath() + '/ocm-provider/', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkProviderUrl(OC.getRootPath() + '/ocs-provider/', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkSetup(),\n\t\t\tOC.SetupChecks.checkGeneric(),\n\t\t\tOC.SetupChecks.checkWOFF2Loading(OC.filePath('core', '', 'fonts/NotoSans-Regular-latin.woff2'), OC.theme.docPlaceholderUrl),\n\t\t\tOC.SetupChecks.checkDataProtected()\n\t\t).then((check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11) => {\n\t\t\tconst messages = [].concat(check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11)\n\t\t\tconst $el = $('#postsetupchecks')\n\t\t\t$('#security-warning-state-loading').addClass('hidden')\n\n\t\t\tlet hasMessages = false\n\t\t\tconst $errorsEl = $el.find('.errors')\n\t\t\tconst $warningsEl = $el.find('.warnings')\n\t\t\tconst $infoEl = $el.find('.info')\n\n\t\t\tfor (let i = 0; i < messages.length; i++) {\n\t\t\t\tswitch (messages[i].type) {\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_INFO:\n\t\t\t\t\t$infoEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t\tbreak\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_WARNING:\n\t\t\t\t\t$warningsEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t\tbreak\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_ERROR:\n\t\t\t\tdefault:\n\t\t\t\t\t$errorsEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($errorsEl.find('li').length > 0) {\n\t\t\t\t$errorsEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\t\t\tif ($warningsEl.find('li').length > 0) {\n\t\t\t\t$warningsEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\t\t\tif ($infoEl.find('li').length > 0) {\n\t\t\t\t$infoEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\n\t\t\tif (hasMessages) {\n\t\t\t\t$('#postsetupchecks-hint').removeClass('hidden')\n\t\t\t\tif ($errorsEl.find('li').length > 0) {\n\t\t\t\t\t$('#security-warning-state-failure').removeClass('hidden')\n\t\t\t\t} else {\n\t\t\t\t\t$('#security-warning-state-warning').removeClass('hidden')\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst securityWarning = $('#security-warning')\n\t\t\t\tif (securityWarning.children('ul').children().length === 0) {\n\t\t\t\t\t$('#security-warning-state-ok').removeClass('hidden')\n\t\t\t\t} else {\n\t\t\t\t\t$('#security-warning-state-failure').removeClass('hidden')\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tif (document.getElementById('security-warning') !== null) {\n\t\tsetupChecks()\n\t}\n})\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = {};\n__webpack_modules__[39583]();\n"],"names":["window","addEventListener","$","each","index","element","OC","Settings","setupGroupsSelect","change","ev","groups","val","JSON","stringify","OCP","AppConfig","setValue","attr","post","generateUrl","level","Log","reload","toggleClass","checked","click","event","on","e","t","preventDefault","prop","msg","startAction","data","finishedAction","status","off","this","value","replace","savePublicShareDisclaimerText","$el","$target","target","is","PERMISSION_READ","_","debounce","options","success","finishedSuccess","error","finishedError","startSaving","isString","deleteKey","removeClass","addClass","changeEmailSettings","PasswordConfirmation","requiresPasswordConfirmation","requirePasswordConfirmation","ajax","url","type","serialize","xhr","responseJSON","toggleEmailCredentials","document","getElementById","when","SetupChecks","checkWebDAV","checkWellKnownUrl","theme","docPlaceholderUrl","checkProviderUrl","getRootPath","checkSetup","checkGeneric","checkWOFF2Loading","filePath","checkDataProtected","then","check1","check2","check3","check4","check5","check6","check7","check8","check9","check10","check11","messages","concat","hasMessages","$errorsEl","find","$warningsEl","$infoEl","i","length","MESSAGE_TYPE_INFO","append","MESSAGE_TYPE_WARNING","MESSAGE_TYPE_ERROR","children"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"settings-legacy-admin.js?v=7d5dee9513a670ec587d","mappings":"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","sources":["webpack:///nextcloud/apps/settings/src/admin.js","webpack:///nextcloud/webpack/startup"],"sourcesContent":["window.addEventListener('DOMContentLoaded', () => {\n\t$('#excludedGroups,#linksExcludedGroups,#passwordsExcludedGroups').each(function(index, element) {\n\t\tOC.Settings.setupGroupsSelect($(element))\n\t\t$(element).change((ev) => {\n\t\t\tlet groups = ev.val || []\n\t\t\tgroups = JSON.stringify(groups)\n\t\t\tOCP.AppConfig.setValue('core', $(this).attr('name'), groups)\n\t\t})\n\t})\n\n\t$('#loglevel').change(() => {\n\t\t$.post(OC.generateUrl('/settings/admin/log/level'), { level: $(this).val() }, () => {\n\t\t\tOC.Log.reload()\n\t\t})\n\t})\n\n\t$('#shareAPIEnabled').change(() => {\n\t\t$('#shareAPI p:not(#enable)').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#enableEncryption').change(() => {\n\t\t$('#encryptionAPI div#EncryptionWarning').toggleClass('hidden')\n\t})\n\n\t$('#reallyEnableEncryption').click(() => {\n\t\t$('#encryptionAPI div#EncryptionWarning').toggleClass('hidden')\n\t\t$('#encryptionAPI div#EncryptionSettingsArea').toggleClass('hidden')\n\t\tOCP.AppConfig.setValue('core', 'encryption_enabled', 'yes')\n\t\t$('#enableEncryption').attr('disabled', 'disabled')\n\t})\n\n\t$('#startmigration').click((event) => {\n\t\t$(window).on('beforeunload.encryption', (e) => {\n\t\t\treturn t('settings', 'Migration in progress. Please wait until the migration is finished')\n\t\t})\n\t\tevent.preventDefault()\n\t\t$('#startmigration').prop('disabled', true)\n\t\tOC.msg.startAction('#startmigration_msg', t('settings', 'Migration started …'))\n\t\t$.post(OC.generateUrl('/settings/admin/startmigration'), '', function(data) {\n\t\t\tOC.msg.finishedAction('#startmigration_msg', data)\n\t\t\tif (data.status === 'success') {\n\t\t\t\t$('#encryptionAPI div#selectEncryptionModules').toggleClass('hidden')\n\t\t\t\t$('#encryptionAPI div#migrationWarning').toggleClass('hidden')\n\t\t\t} else {\n\t\t\t\t$('#startmigration').prop('disabled', false)\n\t\t\t}\n\t\t\t$(window).off('beforeunload.encryption')\n\n\t\t})\n\t})\n\n\t$('#shareapiExpireAfterNDays').on('input', function() {\n\t\tthis.value = this.value.replace(/\\D/g, '')\n\t})\n\n\t$('#shareAPI input:not(.noJSAutoUpdate)').change(function() {\n\t\tlet value = $(this).val()\n\t\tif ($(this).attr('type') === 'checkbox') {\n\t\t\tif (this.checked) {\n\t\t\t\tvalue = 'yes'\n\t\t\t} else {\n\t\t\t\tvalue = 'no'\n\t\t\t}\n\t\t}\n\t\tOCP.AppConfig.setValue('core', $(this).attr('name'), value)\n\t})\n\n\t$('#shareapiDefaultExpireDate').change(function() {\n\t\t$('setDefaultExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiDefaultInternalExpireDate').change(function() {\n\t\t$('#setDefaultInternalExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiDefaultRemoteExpireDate').change(function() {\n\t\t$('#setDefaultRemoteExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#enforceLinkPassword').change(function() {\n\t\t$('#selectPasswordsExcludedGroups').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#publicShareDisclaimer').change(function() {\n\t\t$('#publicShareDisclaimerText').toggleClass('hidden', !this.checked)\n\t\tif (!this.checked) {\n\t\t\tsavePublicShareDisclaimerText('')\n\t\t}\n\t})\n\n\t$('#shareApiDefaultPermissionsSection input').change(function(ev) {\n\t\tconst $el = $('#shareApiDefaultPermissions')\n\t\tconst $target = $(ev.target)\n\n\t\tlet value = $el.val()\n\t\tif ($target.is(':checked')) {\n\t\t\tvalue = value | $target.val()\n\t\t} else {\n\t\t\tvalue = value & ~$target.val()\n\t\t}\n\n\t\t// always set read permission\n\t\tvalue |= OC.PERMISSION_READ\n\n\t\t// this will trigger the field's change event and will save it\n\t\t$el.val(value).change()\n\n\t\tev.preventDefault()\n\n\t\treturn false\n\t})\n\n\tconst savePublicShareDisclaimerText = _.debounce(function(value) {\n\t\tconst options = {\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#publicShareDisclaimerStatus', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: () => {\n\t\t\t\tOC.msg.finishedError('#publicShareDisclaimerStatus', t('settings', 'Not saved'))\n\t\t\t},\n\t\t}\n\n\t\tOC.msg.startSaving('#publicShareDisclaimerStatus')\n\t\tif (_.isString(value) && value !== '') {\n\t\t\tOCP.AppConfig.setValue('core', 'shareapi_public_link_disclaimertext', value, options)\n\t\t} else {\n\t\t\t$('#publicShareDisclaimerText').val('')\n\t\t\tOCP.AppConfig.deleteKey('core', 'shareapi_public_link_disclaimertext', options)\n\t\t}\n\t}, 500)\n\n\t$('#publicShareDisclaimerText').on('change, keyup', function() {\n\t\tsavePublicShareDisclaimerText(this.value)\n\t})\n\n\t$('#shareapi_allow_share_dialog_user_enumeration').on('change', function() {\n\t\t$('#shareapi_restrict_user_enumeration_to_group_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_to_phone_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_combinewarning_setting').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapi_restrict_user_enumeration_full_match').on('change', function() {\n\t\t$('#shareapi_restrict_user_enumeration_full_match_userid_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_full_match_email_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_full_match_ignore_second_display_name_setting').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#allowLinks').change(function() {\n\t\t$('#publicLinkSettings').toggleClass('hidden', !this.checked)\n\t\t$('#setDefaultExpireDate').toggleClass('hidden', !(this.checked && $('#shareapiDefaultExpireDate')[0].checked))\n\t})\n\n\t$('#mail_smtpauth').change(function() {\n\t\tif (!this.checked) {\n\t\t\t$('#mail_credentials').addClass('hidden')\n\t\t} else {\n\t\t\t$('#mail_credentials').removeClass('hidden')\n\t\t}\n\t})\n\n\t$('#mail_smtpmode').change(function() {\n\t\tif ($(this).val() !== 'smtp') {\n\t\t\t$('#setting_smtpauth').addClass('hidden')\n\t\t\t$('#setting_smtphost').addClass('hidden')\n\t\t\t$('#mail_smtpsecure_label').addClass('hidden')\n\t\t\t$('#mail_smtpsecure').addClass('hidden')\n\t\t\t$('#mail_credentials').addClass('hidden')\n\t\t\t$('#mail_sendmailmode_label, #mail_sendmailmode').removeClass('hidden')\n\t\t} else {\n\t\t\t$('#setting_smtpauth').removeClass('hidden')\n\t\t\t$('#setting_smtphost').removeClass('hidden')\n\t\t\t$('#mail_smtpsecure_label').removeClass('hidden')\n\t\t\t$('#mail_smtpsecure').removeClass('hidden')\n\t\t\tif ($('#mail_smtpauth').is(':checked')) {\n\t\t\t\t$('#mail_credentials').removeClass('hidden')\n\t\t\t}\n\t\t\t$('#mail_sendmailmode_label, #mail_sendmailmode').addClass('hidden')\n\t\t}\n\t})\n\n\tconst changeEmailSettings = function() {\n\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(changeEmailSettings)\n\t\t\treturn\n\t\t}\n\n\t\tOC.msg.startSaving('#mail_settings_msg')\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailsettings'),\n\t\t\ttype: 'POST',\n\t\t\tdata: $('#mail_general_settings_form').serialize(),\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#mail_settings_msg', xhr.responseJSON)\n\t\t\t},\n\t\t})\n\t}\n\n\tconst toggleEmailCredentials = function() {\n\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(toggleEmailCredentials)\n\t\t\treturn\n\t\t}\n\n\t\tOC.msg.startSaving('#mail_settings_msg')\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailsettings/credentials'),\n\t\t\ttype: 'POST',\n\t\t\tdata: $('#mail_credentials_settings').serialize(),\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#mail_settings_msg', xhr.responseJSON)\n\t\t\t},\n\t\t})\n\t}\n\n\t$('#mail_general_settings_form').change(changeEmailSettings)\n\t$('#mail_credentials_settings_submit').click(toggleEmailCredentials)\n\t$('#mail_smtppassword').click(() => {\n\t\tif (this.type === 'text' && this.value === '********') {\n\t\t\tthis.type = 'password'\n\t\t\tthis.value = ''\n\t\t}\n\t})\n\n\t$('#sendtestemail').click((event) => {\n\t\tevent.preventDefault()\n\t\tOC.msg.startAction('#sendtestmail_msg', t('settings', 'Sending…'))\n\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailtest'),\n\t\t\ttype: 'POST',\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#sendtestmail_msg', t('settings', 'Email sent'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#sendtestmail_msg', xhr.responseJSON)\n\t\t\t},\n\t\t})\n\t})\n\n\t$('#allowGroupSharing').change(() => {\n\t\t$('#allowGroupSharing').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiExcludeGroups').change(() => {\n\t\t$('#selectExcludedGroups').toggleClass('hidden', !this.checked)\n\t})\n\n\tconst setupChecks = () => {\n\t\t// run setup checks then gather error messages\n\t\t$.when(\n\t\t\tOC.SetupChecks.checkWebDAV(),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('GET', '/.well-known/webfinger', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true, [200, 404], true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('GET', '/.well-known/nodeinfo', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true, [200, 404], true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('PROPFIND', '/.well-known/caldav', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('PROPFIND', '/.well-known/carddav', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkProviderUrl(OC.getRootPath() + '/ocm-provider/', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkProviderUrl(OC.getRootPath() + '/ocs-provider/', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkSetup(),\n\t\t\tOC.SetupChecks.checkGeneric(),\n\t\t\tOC.SetupChecks.checkWOFF2Loading(OC.filePath('core', '', 'fonts/NotoSans-Regular-latin.woff2'), OC.theme.docPlaceholderUrl),\n\t\t\tOC.SetupChecks.checkDataProtected()\n\t\t).then((check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11) => {\n\t\t\tconst messages = [].concat(check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11)\n\t\t\tconst $el = $('#postsetupchecks')\n\t\t\t$('#security-warning-state-loading').addClass('hidden')\n\n\t\t\tlet hasMessages = false\n\t\t\tconst $errorsEl = $el.find('.errors')\n\t\t\tconst $warningsEl = $el.find('.warnings')\n\t\t\tconst $infoEl = $el.find('.info')\n\n\t\t\tfor (let i = 0; i < messages.length; i++) {\n\t\t\t\tswitch (messages[i].type) {\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_INFO:\n\t\t\t\t\t$infoEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t\tbreak\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_WARNING:\n\t\t\t\t\t$warningsEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t\tbreak\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_ERROR:\n\t\t\t\tdefault:\n\t\t\t\t\t$errorsEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($errorsEl.find('li').length > 0) {\n\t\t\t\t$errorsEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\t\t\tif ($warningsEl.find('li').length > 0) {\n\t\t\t\t$warningsEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\t\t\tif ($infoEl.find('li').length > 0) {\n\t\t\t\t$infoEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\n\t\t\tif (hasMessages) {\n\t\t\t\t$('#postsetupchecks-hint').removeClass('hidden')\n\t\t\t\tif ($errorsEl.find('li').length > 0) {\n\t\t\t\t\t$('#security-warning-state-failure').removeClass('hidden')\n\t\t\t\t} else {\n\t\t\t\t\t$('#security-warning-state-warning').removeClass('hidden')\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst securityWarning = $('#security-warning')\n\t\t\t\tif (securityWarning.children('ul').children().length === 0) {\n\t\t\t\t\t$('#security-warning-state-ok').removeClass('hidden')\n\t\t\t\t} else {\n\t\t\t\t\t$('#security-warning-state-failure').removeClass('hidden')\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tif (document.getElementById('security-warning') !== null) {\n\t\tsetupChecks()\n\t}\n})\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = {};\n__webpack_modules__[39583]();\n"],"names":["window","addEventListener","$","each","index","element","OC","Settings","setupGroupsSelect","change","ev","groups","val","JSON","stringify","OCP","AppConfig","setValue","attr","post","generateUrl","level","Log","reload","toggleClass","checked","click","event","on","e","t","preventDefault","prop","msg","startAction","data","finishedAction","status","off","this","value","replace","savePublicShareDisclaimerText","$el","$target","target","is","PERMISSION_READ","_","debounce","options","success","finishedSuccess","error","finishedError","startSaving","isString","deleteKey","removeClass","addClass","changeEmailSettings","PasswordConfirmation","requiresPasswordConfirmation","requirePasswordConfirmation","ajax","url","type","serialize","xhr","responseJSON","toggleEmailCredentials","document","getElementById","when","SetupChecks","checkWebDAV","checkWellKnownUrl","theme","docPlaceholderUrl","checkProviderUrl","getRootPath","checkSetup","checkGeneric","checkWOFF2Loading","filePath","checkDataProtected","then","check1","check2","check3","check4","check5","check6","check7","check8","check9","check10","check11","messages","concat","hasMessages","$errorsEl","find","$warningsEl","$infoEl","i","length","MESSAGE_TYPE_INFO","append","MESSAGE_TYPE_WARNING","MESSAGE_TYPE_ERROR","children"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/settings-vue-settings-admin-basic-settings.js b/dist/settings-vue-settings-admin-basic-settings.js index 6705caf2357..3b68d86d576 100644 --- a/dist/settings-vue-settings-admin-basic-settings.js +++ b/dist/settings-vue-settings-admin-basic-settings.js @@ -1,3 +1,3 @@ /*! For license information please see settings-vue-settings-admin-basic-settings.js.LICENSE.txt */ -!function(){var e,n={93365:function(e,n,t){var r={"./af":36026,"./af.js":36026,"./ar":28093,"./ar-dz":41943,"./ar-dz.js":41943,"./ar-kw":23969,"./ar-kw.js":23969,"./ar-ly":40594,"./ar-ly.js":40594,"./ar-ma":18369,"./ar-ma.js":18369,"./ar-sa":32579,"./ar-sa.js":32579,"./ar-tn":76442,"./ar-tn.js":76442,"./ar.js":28093,"./az":86425,"./az.js":86425,"./be":22004,"./be.js":22004,"./bg":42982,"./bg.js":42982,"./bm":21067,"./bm.js":21067,"./bn":8366,"./bn-bd":63837,"./bn-bd.js":63837,"./bn.js":8366,"./bo":95040,"./bo.js":95040,"./br":521,"./br.js":521,"./bs":83242,"./bs.js":83242,"./ca":73046,"./ca.js":73046,"./cs":25794,"./cs.js":25794,"./cv":28231,"./cv.js":28231,"./cy":10927,"./cy.js":10927,"./da":42832,"./da.js":42832,"./de":29415,"./de-at":3331,"./de-at.js":3331,"./de-ch":45524,"./de-ch.js":45524,"./de.js":29415,"./dv":44700,"./dv.js":44700,"./el":88752,"./el.js":88752,"./en-au":90444,"./en-au.js":90444,"./en-ca":65959,"./en-ca.js":65959,"./en-gb":62762,"./en-gb.js":62762,"./en-ie":40909,"./en-ie.js":40909,"./en-il":79909,"./en-il.js":79909,"./en-in":87942,"./en-in.js":87942,"./en-nz":75200,"./en-nz.js":75200,"./en-sg":21415,"./en-sg.js":21415,"./eo":27447,"./eo.js":27447,"./es":86756,"./es-do":47049,"./es-do.js":47049,"./es-mx":15915,"./es-mx.js":15915,"./es-us":57133,"./es-us.js":57133,"./es.js":86756,"./et":72182,"./et.js":72182,"./eu":14419,"./eu.js":14419,"./fa":2916,"./fa.js":2916,"./fi":49964,"./fi.js":49964,"./fil":16448,"./fil.js":16448,"./fo":26094,"./fo.js":26094,"./fr":35833,"./fr-ca":56994,"./fr-ca.js":56994,"./fr-ch":2740,"./fr-ch.js":2740,"./fr.js":35833,"./fy":69542,"./fy.js":69542,"./ga":93264,"./ga.js":93264,"./gd":77457,"./gd.js":77457,"./gl":83043,"./gl.js":83043,"./gom-deva":24034,"./gom-deva.js":24034,"./gom-latn":28379,"./gom-latn.js":28379,"./gu":406,"./gu.js":406,"./he":73219,"./he.js":73219,"./hi":99834,"./hi.js":99834,"./hr":28754,"./hr.js":28754,"./hu":93945,"./hu.js":93945,"./hy-am":81319,"./hy-am.js":81319,"./id":24875,"./id.js":24875,"./is":23724,"./is.js":23724,"./it":79906,"./it-ch":34303,"./it-ch.js":34303,"./it.js":79906,"./ja":77105,"./ja.js":77105,"./jv":15026,"./jv.js":15026,"./ka":67416,"./ka.js":67416,"./kk":79734,"./kk.js":79734,"./km":60757,"./km.js":60757,"./kn":58369,"./kn.js":58369,"./ko":77687,"./ko.js":77687,"./ku":95544,"./ku.js":95544,"./ky":85431,"./ky.js":85431,"./lb":13613,"./lb.js":13613,"./lo":34252,"./lo.js":34252,"./lt":84619,"./lt.js":84619,"./lv":93760,"./lv.js":93760,"./me":93393,"./me.js":93393,"./mi":12369,"./mi.js":12369,"./mk":48664,"./mk.js":48664,"./ml":23099,"./ml.js":23099,"./mn":98539,"./mn.js":98539,"./mr":778,"./mr.js":778,"./ms":39970,"./ms-my":82625,"./ms-my.js":82625,"./ms.js":39970,"./mt":15714,"./mt.js":15714,"./my":53055,"./my.js":53055,"./nb":73945,"./nb.js":73945,"./ne":63645,"./ne.js":63645,"./nl":4829,"./nl-be":12823,"./nl-be.js":12823,"./nl.js":4829,"./nn":23756,"./nn.js":23756,"./oc-lnc":41228,"./oc-lnc.js":41228,"./pa-in":97877,"./pa-in.js":97877,"./pl":53066,"./pl.js":53066,"./pt":28677,"./pt-br":81592,"./pt-br.js":81592,"./pt.js":28677,"./ro":32722,"./ro.js":32722,"./ru":59138,"./ru.js":59138,"./sd":32568,"./sd.js":32568,"./se":49753,"./se.js":49753,"./si":58024,"./si.js":58024,"./sk":31058,"./sk.js":31058,"./sl":43452,"./sl.js":43452,"./sq":2795,"./sq.js":2795,"./sr":26976,"./sr-cyrl":38819,"./sr-cyrl.js":38819,"./sr.js":26976,"./ss":7467,"./ss.js":7467,"./sv":42787,"./sv.js":42787,"./sw":80298,"./sw.js":80298,"./ta":57532,"./ta.js":57532,"./te":76076,"./te.js":76076,"./tet":40452,"./tet.js":40452,"./tg":64794,"./tg.js":64794,"./th":48245,"./th.js":48245,"./tk":8870,"./tk.js":8870,"./tl-ph":36056,"./tl-ph.js":36056,"./tlh":15249,"./tlh.js":15249,"./tr":22053,"./tr.js":22053,"./tzl":39871,"./tzl.js":39871,"./tzm":39574,"./tzm-latn":19210,"./tzm-latn.js":19210,"./tzm.js":39574,"./ug-cn":91532,"./ug-cn.js":91532,"./uk":11432,"./uk.js":11432,"./ur":88523,"./ur.js":88523,"./uz":54958,"./uz-latn":68735,"./uz-latn.js":68735,"./uz.js":54958,"./vi":83398,"./vi.js":83398,"./x-pseudo":56665,"./x-pseudo.js":56665,"./yo":11642,"./yo.js":11642,"./zh-cn":5462,"./zh-cn.js":5462,"./zh-hk":92530,"./zh-hk.js":92530,"./zh-mo":41650,"./zh-mo.js":41650,"./zh-tw":97333,"./zh-tw.js":97333};function s(e){var n=a(e);return t(n)}function a(e){if(!t.o(r,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return r[e]}s.keys=function(){return Object.keys(r)},s.resolve=a,e.exports=s,s.id=93365},15860:function(e,n,r){"use strict";var s=r(20144),a=r(22200),o=r(16453),i=r(9944),c=(r(73317),(0,r(17499).IY)().setApp("settings").detectUser().build()),l=r(26932),u=r(4820),d=r(79753),g=r(10128),p=r.n(g);function f(e,n,t,r,s,a,o){try{var i=e[a](o),c=i.value}catch(e){return void t(e)}i.done?n(c):Promise.resolve(c).then(r,s)}var b,v,A,m=function(){var e,n=(e=regeneratorRuntime.mark((function e(n){var t,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=n?"1":"0",t=(0,d.generateOcsUrl)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"settings",key:"profile_enabled_by_default"}),e.next=4,p()();case 4:return e.next=6,u.default.post(t,{value:n});case 6:return r=e.sent,e.abrupt("return",r.data);case 8:case"end":return e.stop()}}),e)})),function(){var n=this,t=arguments;return new Promise((function(r,s){var a=e.apply(n,t);function o(e){f(a,r,s,o,i,"next",e)}function i(e){f(a,r,s,o,i,"throw",e)}o(void 0)}))});return function(e){return n.apply(this,arguments)}}();function h(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var j=Object.freeze({ADDRESS:"address",AVATAR:"avatar",BIOGRAPHY:"biography",DISPLAYNAME:"displayname",EMAIL_COLLECTION:"additional_mail",EMAIL:"email",HEADLINE:"headline",NOTIFICATION_EMAIL:"notify_email",ORGANISATION:"organisation",PHONE:"phone",PROFILE_ENABLED:"profile_enabled",ROLE:"role",TWITTER:"twitter",WEBSITE:"website"}),E=Object.freeze({ADDRESS:(0,i.translate)("settings","Address"),AVATAR:(0,i.translate)("settings","Avatar"),BIOGRAPHY:(0,i.translate)("settings","About"),DISPLAYNAME:(0,i.translate)("settings","Full name"),EMAIL_COLLECTION:(0,i.translate)("settings","Additional email"),EMAIL:(0,i.translate)("settings","Email"),HEADLINE:(0,i.translate)("settings","Headline"),ORGANISATION:(0,i.translate)("settings","Organisation"),PHONE:(0,i.translate)("settings","Phone number"),PROFILE_ENABLED:(0,i.translate)("settings","Profile"),ROLE:(0,i.translate)("settings","Role"),TWITTER:(0,i.translate)("settings","Twitter"),WEBSITE:(0,i.translate)("settings","Website")}),k=(Object.freeze({PROFILE_VISIBILITY:(0,i.translate)("settings","Profile visibility")}),Object.freeze((h(b={},E.ADDRESS,j.ADDRESS),h(b,E.AVATAR,j.AVATAR),h(b,E.BIOGRAPHY,j.BIOGRAPHY),h(b,E.DISPLAYNAME,j.DISPLAYNAME),h(b,E.EMAIL_COLLECTION,j.EMAIL_COLLECTION),h(b,E.EMAIL,j.EMAIL),h(b,E.HEADLINE,j.HEADLINE),h(b,E.ORGANISATION,j.ORGANISATION),h(b,E.PHONE,j.PHONE),h(b,E.PROFILE_ENABLED,j.PROFILE_ENABLED),h(b,E.ROLE,j.ROLE),h(b,E.TWITTER,j.TWITTER),h(b,E.WEBSITE,j.WEBSITE),b)),Object.freeze({LANGUAGE:"language"}),Object.freeze({LANGUAGE:(0,i.translate)("settings","Language")}),Object.freeze({PRIVATE:"v2-private",LOCAL:"v2-local",FEDERATED:"v2-federated",PUBLISHED:"v2-published"}));Object.freeze((h(v={},E.ADDRESS,[k.LOCAL,k.PRIVATE]),h(v,E.AVATAR,[k.LOCAL,k.PRIVATE]),h(v,E.BIOGRAPHY,[k.LOCAL,k.PRIVATE]),h(v,E.DISPLAYNAME,[k.LOCAL]),h(v,E.EMAIL_COLLECTION,[k.LOCAL]),h(v,E.EMAIL,[k.LOCAL]),h(v,E.HEADLINE,[k.LOCAL,k.PRIVATE]),h(v,E.ORGANISATION,[k.LOCAL,k.PRIVATE]),h(v,E.PHONE,[k.LOCAL,k.PRIVATE]),h(v,E.PROFILE_ENABLED,[k.LOCAL,k.PRIVATE]),h(v,E.ROLE,[k.LOCAL,k.PRIVATE]),h(v,E.TWITTER,[k.LOCAL,k.PRIVATE]),h(v,E.WEBSITE,[k.LOCAL,k.PRIVATE]),v)),Object.freeze([E.BIOGRAPHY,E.HEADLINE,E.ORGANISATION,E.ROLE]),Object.freeze((h(A={},k.PRIVATE,{name:k.PRIVATE,displayName:(0,i.translate)("settings","Private"),tooltip:(0,i.translate)("settings","Only visible to people matched via phone number integration through Talk on mobile"),tooltipDisabled:(0,i.translate)("settings","Not available as this property is required for core functionality including file sharing and calendar invitations"),iconClass:"icon-phone"}),h(A,k.LOCAL,{name:k.LOCAL,displayName:(0,i.translate)("settings","Local"),tooltip:(0,i.translate)("settings","Only visible to people on this instance and guests"),iconClass:"icon-password"}),h(A,k.FEDERATED,{name:k.FEDERATED,displayName:(0,i.translate)("settings","Federated"),tooltip:(0,i.translate)("settings","Only synchronize to trusted servers"),tooltipDisabled:(0,i.translate)("settings","Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions"),iconClass:"icon-contacts-dark"}),h(A,k.PUBLISHED,{name:k.PUBLISHED,displayName:(0,i.translate)("settings","Published"),tooltip:(0,i.translate)("settings","Synchronize to trusted servers and the global and public address book"),tooltipDisabled:(0,i.translate)("settings","Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions"),iconClass:"icon-link"}),A)),k.LOCAL,Object.freeze({NOT_VERIFIED:0,VERIFICATION_IN_PROGRESS:1,VERIFIED:2});var C=r(7826),O=r.n(C);function y(e,n,t,r,s,a,o){try{var i=e[a](o),c=i.value}catch(e){return void t(e)}i.done?n(c):Promise.resolve(c).then(r,s)}function I(e){return function(){var n=this,t=arguments;return new Promise((function(r,s){var a=e.apply(n,t);function o(e){y(a,r,s,o,i,"next",e)}function i(e){y(a,r,s,o,i,"throw",e)}o(void 0)}))}}var R=(0,o.loadState)("settings","profileEnabledByDefault",!0),L={name:"ProfileSettings",components:{CheckboxRadioSwitch:O()},data:function(){return{initialProfileEnabledByDefault:R}},methods:{onProfileDefaultChange:function(e){var n=this;return I(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("boolean"!=typeof e){t.next=3;break}return t.next=3,n.updateProfileDefault(e);case 3:case"end":return t.stop()}}),t)})))()},updateProfileDefault:function(e){var n=this;return I(regeneratorRuntime.mark((function r(){var s,a,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,m(e);case 3:o=r.sent,n.handleResponse({isEnabled:e,status:null===(s=o.ocs)||void 0===s||null===(a=s.meta)||void 0===a?void 0:a.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update profile default setting"),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},handleResponse:function(e){var n=e.isEnabled,t=e.status,r=e.errorMessage,s=e.error;"ok"===t?this.initialProfileEnabledByDefault=n:((0,l.x2)(r),this.logger.error(r,s))}}},x=r(51900),w=(0,x.Z)(L,(function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"section",attrs:{id:"profile-settings"}},[t("h2",{staticClass:"inlineblock"},[e._v("\n\t\t"+e._s(e.t("settings","Profile"))+"\n\t")]),e._v(" "),t("p",{staticClass:"settings-hint"},[e._v("\n\t\t"+e._s(e.t("settings","Enable or disable profile by default for new users."))+"\n\t")]),e._v(" "),t("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.initialProfileEnabledByDefault},on:{"update:checked":[function(n){e.initialProfileEnabledByDefault=n},e.onProfileDefaultChange]}},[e._v("\n\t\t"+e._s(e.t("settings","Enable"))+"\n\t")])],1)}),[],!1,null,"414249e6",null).exports,T=r(67776),P=r.n(T),_=r(80351),S=r.n(_);function D(e,n,t,r,s,a,o){try{var i=e[a](o),c=i.value}catch(e){return void t(e)}i.done?n(c):Promise.resolve(c).then(r,s)}function N(e){return function(){var n=this,t=arguments;return new Promise((function(r,s){var a=e.apply(n,t);function o(e){D(a,r,s,o,i,"next",e)}function i(e){D(a,r,s,o,i,"throw",e)}o(void 0)}))}}var B=(0,o.loadState)("settings","lastCron"),M=(0,o.loadState)("settings","cronMaxAge",""),z=(0,o.loadState)("settings","backgroundJobsMode","cron"),H=(0,o.loadState)("settings","cliBasedCronPossible",!0),J=(0,o.loadState)("settings","cliBasedCronUser","www-data"),U=(0,o.loadState)("settings","backgroundJobsDocUrl"),V={name:"BackgroundJob",components:{CheckboxRadioSwitch:O(),SettingsSection:P()},data:function(){return{lastCron:B,cronMaxAge:M,backgroundJobsMode:z,cliBasedCronPossible:H,cliBasedCronUser:J,backgroundJobsDocUrl:U,relativeTime:S()(1e3*B).fromNow(),maxAgeRelativeTime:S()(1e3*M).fromNow()}},computed:{cronLabel:function(){var e=t("settings","Use system cron service to call the cron.php file every 5 minutes. Recommended for all instances.");return this.cliBasedCronPossible&&(e+=" "+t("settings",'The cron.php needs to be executed by the system user "{user}".',{user:this.cliBasedCronUser})),e},oldExecution:function(){return Date.now()/1e3-this.lastCron>600},longExecutionNotCron:function(){return Date.now()/1e3-this.cronMaxAge>43200&&"cron"!==this.backgroundJobsMode},longExecutionCron:function(){return Date.now()/1e3-this.cronMaxAge>43200&&"cron"===this.backgroundJobsMode}},methods:{onBackgroundJobModeChanged:function(e){var n=this;return N(regeneratorRuntime.mark((function r(){var s,a,o,i,c;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return s=(0,d.generateOcsUrl)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"core",key:"backgroundjobs_mode"}),r.next=3,p()();case 3:return r.prev=3,r.next=6,u.default.post(s,{value:e});case 6:i=r.sent,c=i.data,n.handleResponse({status:null===(a=c.ocs)||void 0===a||null===(o=a.meta)||void 0===o?void 0:o.status}),r.next=14;break;case 11:r.prev=11,r.t0=r.catch(3),n.handleResponse({errorMessage:t("settings","Unable to update background job mode"),error:r.t0});case 14:case"end":return r.stop()}}),r,null,[[3,11]])})))()},handleResponse:function(e){var n=this;return N(regeneratorRuntime.mark((function t(){var r,s,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.status,s=e.errorMessage,a=e.error,"ok"!==r){t.next=6;break}return t.next=4,n.deleteError();case 4:t.next=8;break;case 6:(0,l.x2)(s),console.error(s,a);case 8:case"end":return t.stop()}}),t)})))()},deleteError:function(){return N(regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=(0,d.generateOcsUrl)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"core",key:"cronErrors"}),e.next=3,p()();case 3:return e.prev=3,e.next=6,u.default.delete(n);case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),console.error(e.t0);case 11:case"end":return e.stop()}}),e,null,[[3,8]])})))()}}},F=V,G=r(93379),W=r.n(G),Y=r(7795),q=r.n(Y),Z=r(90569),$=r.n(Z),X=r(3565),K=r.n(X),Q=r(19216),ee=r.n(Q),ne=r(44589),te=r.n(ne),re=r(47084),se={};se.styleTagTransform=te(),se.setAttributes=K(),se.insert=$().bind(null,"head"),se.domAPI=q(),se.insertStyleElement=ee(),W()(re.Z,se),re.Z&&re.Z.locals&&re.Z.locals;var ae=(0,x.Z)(F,(function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("SettingsSection",{attrs:{title:e.t("settings","Background jobs"),description:e.t("settings","For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information."),"doc-url":e.backgroundJobsDocUrl}},[0!==e.lastCron?[e.oldExecution?t("span",{staticClass:"error"},[e._v("\n\t\t\t"+e._s(e.t("settings","Last job execution ran {time}. Something seems wrong.",{time:e.relativeTime}))+"\n\t\t")]):e.longExecutionNotCron?t("span",{staticClass:"warning"},[e._v("\n\t\t\t"+e._s(e.t("settings","Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider increasing the execution frequency.",{maxAgeRelativeTime:e.maxAgeRelativeTime}))+"\n\t\t")]):e.longExecutionCron?t("span",{staticClass:"warning"},[e._v("\n\t\t\t"+e._s(e.t("settings","Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider switching to system cron.",{maxAgeRelativeTime:e.maxAgeRelativeTime}))+"\n\t\t")]):t("span",[e._v("\n\t\t\t"+e._s(e.t("settings","Last job ran {relativeTime}.",{relativeTime:e.relativeTime}))+"\n\t\t")])]:t("span",{staticClass:"error"},[e._v("\n\t\t"+e._s(e.t("settings","Background job didn’t run yet!"))+"\n\t")]),e._v(" "),t("CheckboxRadioSwitch",{staticClass:"ajaxSwitch",attrs:{type:"radio",checked:e.backgroundJobsMode,name:"backgroundJobsMode",value:"ajax"},on:{"update:checked":[function(n){e.backgroundJobsMode=n},e.onBackgroundJobModeChanged]}},[e._v("\n\t\t"+e._s(e.t("settings","AJAX"))+"\n\t")]),e._v(" "),t("em",[e._v(e._s(e.t("settings","Execute one task with each page loaded. Use case: Single user instance.")))]),e._v(" "),t("CheckboxRadioSwitch",{attrs:{type:"radio",checked:e.backgroundJobsMode,name:"backgroundJobsMode",value:"webcron"},on:{"update:checked":[function(n){e.backgroundJobsMode=n},e.onBackgroundJobModeChanged]}},[e._v("\n\t\t"+e._s(e.t("settings","Webcron"))+"\n\t")]),e._v(" "),t("em",[e._v(e._s(e.t("settings","cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage).")))]),e._v(" "),e.cliBasedCronPossible?t("CheckboxRadioSwitch",{attrs:{type:"radio",checked:e.backgroundJobsMode,value:"cron",name:"backgroundJobsMode"},on:{"update:checked":[function(n){e.backgroundJobsMode=n},e.onBackgroundJobModeChanged]}},[e._v("\n\t\t"+e._s(e.t("settings","Cron (Recommended)"))+"\n\t")]):e._e(),e._v(" "),e.cliBasedCronPossible?t("em",[e._v(e._s(e.cronLabel))]):t("em",[e._v("\n\t\t{{ t('settings', 'To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details.', {\n\t\t\tlinkstart: '"),t("a",{attrs:{href:"https://www.php.net/manual/en/book.posix.php"}},[e._v("',\n\t\t\tlinkend: '")]),e._v("',\n\t\t}) }}\n\t")])],2)}),[],!1,null,"35620333",null).exports;r.nc=btoa((0,a.getRequestToken)());var oe=(0,o.loadState)("settings","profileEnabledGlobally",!0);s.default.mixin({props:{logger:c},methods:{t:i.translate}}),(new(s.default.extend(ae))).$mount("#vue-admin-background-job"),oe&&(new(s.default.extend(w))).$mount("#vue-admin-profile-settings")},47084:function(e,n,t){"use strict";var r=t(87537),s=t.n(r),a=t(23645),o=t.n(a)()(s());o.push([e.id,".error[data-v-35620333]{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-primary-text);background-color:var(--color-error);width:initial}.warning[data-v-35620333]{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-primary-text);background-color:var(--color-warning);width:initial}.ajaxSwitch[data-v-35620333]{margin-top:1rem}","",{version:3,sources:["webpack://./apps/settings/src/components/BasicSettings/BackgroundJob.vue"],names:[],mappings:"AAgMA,wBACC,cAAA,CACA,WAAA,CACA,kCAAA,CACA,+BAAA,CACA,mCAAA,CACA,aAAA,CAED,0BACC,cAAA,CACA,WAAA,CACA,kCAAA,CACA,+BAAA,CACA,qCAAA,CACA,aAAA,CAED,6BACC,eAAA",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.error {\n\tmargin-top: 8px;\n\tpadding: 5px;\n\tborder-radius: var(--border-radius);\n\tcolor: var(--color-primary-text);\n\tbackground-color: var(--color-error);\n\twidth: initial;\n}\n.warning {\n\tmargin-top: 8px;\n\tpadding: 5px;\n\tborder-radius: var(--border-radius);\n\tcolor: var(--color-primary-text);\n\tbackground-color: var(--color-warning);\n\twidth: initial;\n}\n.ajaxSwitch {\n\tmargin-top: 1rem;\n}\n"],sourceRoot:""}]),n.Z=o}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(a.exports,a,a.exports,s),a.loaded=!0,a.exports}s.m=n,s.amdD=function(){throw new Error("define cannot be used indirect")},s.amdO={},e=[],s.O=function(n,t,r,a){if(!t){var o=1/0;for(u=0;u<e.length;u++){t=e[u][0],r=e[u][1],a=e[u][2];for(var i=!0,c=0;c<t.length;c++)(!1&a||o>=a)&&Object.keys(s.O).every((function(e){return s.O[e](t[c])}))?t.splice(c--,1):(i=!1,a<o&&(o=a));if(i){e.splice(u--,1);var l=r();void 0!==l&&(n=l)}}return n}a=a||0;for(var u=e.length;u>0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[t,r,a]},s.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(n,{a:n}),n},s.d=function(e,n){for(var t in n)s.o(n,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},s.j=6192,function(){s.b=document.baseURI||self.location.href;var e={6192:0};s.O.j=function(n){return 0===e[n]};var n=function(n,t){var r,a,o=t[0],i=t[1],c=t[2],l=0;if(o.some((function(n){return 0!==e[n]}))){for(r in i)s.o(i,r)&&(s.m[r]=i[r]);if(c)var u=c(s)}for(n&&n(t);l<o.length;l++)a=o[l],s.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return s.O(u)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))}();var a=s.O(void 0,[7874],(function(){return s(15860)}));a=s.O(a)}(); -//# sourceMappingURL=settings-vue-settings-admin-basic-settings.js.map?v=e970f6944c5a9ada36bb
\ No newline at end of file +!function(){var e,n={93365:function(e,n,t){var r={"./af":36026,"./af.js":36026,"./ar":28093,"./ar-dz":41943,"./ar-dz.js":41943,"./ar-kw":23969,"./ar-kw.js":23969,"./ar-ly":40594,"./ar-ly.js":40594,"./ar-ma":18369,"./ar-ma.js":18369,"./ar-sa":32579,"./ar-sa.js":32579,"./ar-tn":76442,"./ar-tn.js":76442,"./ar.js":28093,"./az":86425,"./az.js":86425,"./be":22004,"./be.js":22004,"./bg":42982,"./bg.js":42982,"./bm":21067,"./bm.js":21067,"./bn":8366,"./bn-bd":63837,"./bn-bd.js":63837,"./bn.js":8366,"./bo":95040,"./bo.js":95040,"./br":521,"./br.js":521,"./bs":83242,"./bs.js":83242,"./ca":73046,"./ca.js":73046,"./cs":25794,"./cs.js":25794,"./cv":28231,"./cv.js":28231,"./cy":10927,"./cy.js":10927,"./da":42832,"./da.js":42832,"./de":29415,"./de-at":3331,"./de-at.js":3331,"./de-ch":45524,"./de-ch.js":45524,"./de.js":29415,"./dv":44700,"./dv.js":44700,"./el":88752,"./el.js":88752,"./en-au":90444,"./en-au.js":90444,"./en-ca":65959,"./en-ca.js":65959,"./en-gb":62762,"./en-gb.js":62762,"./en-ie":40909,"./en-ie.js":40909,"./en-il":79909,"./en-il.js":79909,"./en-in":87942,"./en-in.js":87942,"./en-nz":75200,"./en-nz.js":75200,"./en-sg":21415,"./en-sg.js":21415,"./eo":27447,"./eo.js":27447,"./es":86756,"./es-do":47049,"./es-do.js":47049,"./es-mx":15915,"./es-mx.js":15915,"./es-us":57133,"./es-us.js":57133,"./es.js":86756,"./et":72182,"./et.js":72182,"./eu":14419,"./eu.js":14419,"./fa":2916,"./fa.js":2916,"./fi":49964,"./fi.js":49964,"./fil":16448,"./fil.js":16448,"./fo":26094,"./fo.js":26094,"./fr":35833,"./fr-ca":56994,"./fr-ca.js":56994,"./fr-ch":2740,"./fr-ch.js":2740,"./fr.js":35833,"./fy":69542,"./fy.js":69542,"./ga":93264,"./ga.js":93264,"./gd":77457,"./gd.js":77457,"./gl":83043,"./gl.js":83043,"./gom-deva":24034,"./gom-deva.js":24034,"./gom-latn":28379,"./gom-latn.js":28379,"./gu":406,"./gu.js":406,"./he":73219,"./he.js":73219,"./hi":99834,"./hi.js":99834,"./hr":28754,"./hr.js":28754,"./hu":93945,"./hu.js":93945,"./hy-am":81319,"./hy-am.js":81319,"./id":24875,"./id.js":24875,"./is":23724,"./is.js":23724,"./it":79906,"./it-ch":34303,"./it-ch.js":34303,"./it.js":79906,"./ja":77105,"./ja.js":77105,"./jv":15026,"./jv.js":15026,"./ka":67416,"./ka.js":67416,"./kk":79734,"./kk.js":79734,"./km":60757,"./km.js":60757,"./kn":58369,"./kn.js":58369,"./ko":77687,"./ko.js":77687,"./ku":95544,"./ku.js":95544,"./ky":85431,"./ky.js":85431,"./lb":13613,"./lb.js":13613,"./lo":34252,"./lo.js":34252,"./lt":84619,"./lt.js":84619,"./lv":93760,"./lv.js":93760,"./me":93393,"./me.js":93393,"./mi":12369,"./mi.js":12369,"./mk":48664,"./mk.js":48664,"./ml":23099,"./ml.js":23099,"./mn":98539,"./mn.js":98539,"./mr":778,"./mr.js":778,"./ms":39970,"./ms-my":82625,"./ms-my.js":82625,"./ms.js":39970,"./mt":15714,"./mt.js":15714,"./my":53055,"./my.js":53055,"./nb":73945,"./nb.js":73945,"./ne":63645,"./ne.js":63645,"./nl":4829,"./nl-be":12823,"./nl-be.js":12823,"./nl.js":4829,"./nn":23756,"./nn.js":23756,"./oc-lnc":41228,"./oc-lnc.js":41228,"./pa-in":97877,"./pa-in.js":97877,"./pl":53066,"./pl.js":53066,"./pt":28677,"./pt-br":81592,"./pt-br.js":81592,"./pt.js":28677,"./ro":32722,"./ro.js":32722,"./ru":59138,"./ru.js":59138,"./sd":32568,"./sd.js":32568,"./se":49753,"./se.js":49753,"./si":58024,"./si.js":58024,"./sk":31058,"./sk.js":31058,"./sl":43452,"./sl.js":43452,"./sq":2795,"./sq.js":2795,"./sr":26976,"./sr-cyrl":38819,"./sr-cyrl.js":38819,"./sr.js":26976,"./ss":7467,"./ss.js":7467,"./sv":42787,"./sv.js":42787,"./sw":80298,"./sw.js":80298,"./ta":57532,"./ta.js":57532,"./te":76076,"./te.js":76076,"./tet":40452,"./tet.js":40452,"./tg":64794,"./tg.js":64794,"./th":48245,"./th.js":48245,"./tk":8870,"./tk.js":8870,"./tl-ph":36056,"./tl-ph.js":36056,"./tlh":15249,"./tlh.js":15249,"./tr":22053,"./tr.js":22053,"./tzl":39871,"./tzl.js":39871,"./tzm":39574,"./tzm-latn":19210,"./tzm-latn.js":19210,"./tzm.js":39574,"./ug-cn":91532,"./ug-cn.js":91532,"./uk":11432,"./uk.js":11432,"./ur":88523,"./ur.js":88523,"./uz":54958,"./uz-latn":68735,"./uz-latn.js":68735,"./uz.js":54958,"./vi":83398,"./vi.js":83398,"./x-pseudo":56665,"./x-pseudo.js":56665,"./yo":11642,"./yo.js":11642,"./zh-cn":5462,"./zh-cn.js":5462,"./zh-hk":92530,"./zh-hk.js":92530,"./zh-mo":41650,"./zh-mo.js":41650,"./zh-tw":97333,"./zh-tw.js":97333};function s(e){var n=a(e);return t(n)}function a(e){if(!t.o(r,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return r[e]}s.keys=function(){return Object.keys(r)},s.resolve=a,e.exports=s,s.id=93365},76100:function(e,n,r){"use strict";var s=r(20144),a=r(22200),o=r(16453),i=r(9944),c=(r(73317),(0,r(17499).IY)().setApp("settings").detectUser().build()),l=r(26932),u=r(4820),d=r(79753),g=r(10128),p=r.n(g);function b(e,n,t,r,s,a,o){try{var i=e[a](o),c=i.value}catch(e){return void t(e)}i.done?n(c):Promise.resolve(c).then(r,s)}var f,v,A,m=function(){var e,n=(e=regeneratorRuntime.mark((function e(n){var t,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=n?"1":"0",t=(0,d.generateOcsUrl)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"settings",key:"profile_enabled_by_default"}),e.next=4,p()();case 4:return e.next=6,u.default.post(t,{value:n});case 6:return r=e.sent,e.abrupt("return",r.data);case 8:case"end":return e.stop()}}),e)})),function(){var n=this,t=arguments;return new Promise((function(r,s){var a=e.apply(n,t);function o(e){b(a,r,s,o,i,"next",e)}function i(e){b(a,r,s,o,i,"throw",e)}o(void 0)}))});return function(e){return n.apply(this,arguments)}}();function h(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var j=Object.freeze({ADDRESS:"address",AVATAR:"avatar",BIOGRAPHY:"biography",DISPLAYNAME:"displayname",EMAIL_COLLECTION:"additional_mail",EMAIL:"email",HEADLINE:"headline",NOTIFICATION_EMAIL:"notify_email",ORGANISATION:"organisation",PHONE:"phone",PROFILE_ENABLED:"profile_enabled",ROLE:"role",TWITTER:"twitter",WEBSITE:"website"}),E=Object.freeze({ADDRESS:(0,i.translate)("settings","Address"),AVATAR:(0,i.translate)("settings","Avatar"),BIOGRAPHY:(0,i.translate)("settings","About"),DISPLAYNAME:(0,i.translate)("settings","Full name"),EMAIL_COLLECTION:(0,i.translate)("settings","Additional email"),EMAIL:(0,i.translate)("settings","Email"),HEADLINE:(0,i.translate)("settings","Headline"),ORGANISATION:(0,i.translate)("settings","Organisation"),PHONE:(0,i.translate)("settings","Phone number"),PROFILE_ENABLED:(0,i.translate)("settings","Profile"),ROLE:(0,i.translate)("settings","Role"),TWITTER:(0,i.translate)("settings","Twitter"),WEBSITE:(0,i.translate)("settings","Website")}),k=(Object.freeze({PROFILE_VISIBILITY:(0,i.translate)("settings","Profile visibility")}),Object.freeze((h(f={},E.ADDRESS,j.ADDRESS),h(f,E.AVATAR,j.AVATAR),h(f,E.BIOGRAPHY,j.BIOGRAPHY),h(f,E.DISPLAYNAME,j.DISPLAYNAME),h(f,E.EMAIL_COLLECTION,j.EMAIL_COLLECTION),h(f,E.EMAIL,j.EMAIL),h(f,E.HEADLINE,j.HEADLINE),h(f,E.ORGANISATION,j.ORGANISATION),h(f,E.PHONE,j.PHONE),h(f,E.PROFILE_ENABLED,j.PROFILE_ENABLED),h(f,E.ROLE,j.ROLE),h(f,E.TWITTER,j.TWITTER),h(f,E.WEBSITE,j.WEBSITE),f)),Object.freeze({LANGUAGE:"language"}),Object.freeze({LANGUAGE:(0,i.translate)("settings","Language")}),Object.freeze({PRIVATE:"v2-private",LOCAL:"v2-local",FEDERATED:"v2-federated",PUBLISHED:"v2-published"}));Object.freeze((h(v={},E.ADDRESS,[k.LOCAL,k.PRIVATE]),h(v,E.AVATAR,[k.LOCAL,k.PRIVATE]),h(v,E.BIOGRAPHY,[k.LOCAL,k.PRIVATE]),h(v,E.DISPLAYNAME,[k.LOCAL]),h(v,E.EMAIL_COLLECTION,[k.LOCAL]),h(v,E.EMAIL,[k.LOCAL]),h(v,E.HEADLINE,[k.LOCAL,k.PRIVATE]),h(v,E.ORGANISATION,[k.LOCAL,k.PRIVATE]),h(v,E.PHONE,[k.LOCAL,k.PRIVATE]),h(v,E.PROFILE_ENABLED,[k.LOCAL,k.PRIVATE]),h(v,E.ROLE,[k.LOCAL,k.PRIVATE]),h(v,E.TWITTER,[k.LOCAL,k.PRIVATE]),h(v,E.WEBSITE,[k.LOCAL,k.PRIVATE]),v)),Object.freeze([E.BIOGRAPHY,E.HEADLINE,E.ORGANISATION,E.ROLE]),Object.freeze((h(A={},k.PRIVATE,{name:k.PRIVATE,displayName:(0,i.translate)("settings","Private"),tooltip:(0,i.translate)("settings","Only visible to people matched via phone number integration through Talk on mobile"),tooltipDisabled:(0,i.translate)("settings","Not available as this property is required for core functionality including file sharing and calendar invitations"),iconClass:"icon-phone"}),h(A,k.LOCAL,{name:k.LOCAL,displayName:(0,i.translate)("settings","Local"),tooltip:(0,i.translate)("settings","Only visible to people on this instance and guests"),iconClass:"icon-password"}),h(A,k.FEDERATED,{name:k.FEDERATED,displayName:(0,i.translate)("settings","Federated"),tooltip:(0,i.translate)("settings","Only synchronize to trusted servers"),tooltipDisabled:(0,i.translate)("settings","Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions"),iconClass:"icon-contacts-dark"}),h(A,k.PUBLISHED,{name:k.PUBLISHED,displayName:(0,i.translate)("settings","Published"),tooltip:(0,i.translate)("settings","Synchronize to trusted servers and the global and public address book"),tooltipDisabled:(0,i.translate)("settings","Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions"),iconClass:"icon-link"}),A)),k.LOCAL,Object.freeze({NOT_VERIFIED:0,VERIFICATION_IN_PROGRESS:1,VERIFIED:2});var C=r(7826),O=r.n(C);function y(e,n,t,r,s,a,o){try{var i=e[a](o),c=i.value}catch(e){return void t(e)}i.done?n(c):Promise.resolve(c).then(r,s)}function I(e){return function(){var n=this,t=arguments;return new Promise((function(r,s){var a=e.apply(n,t);function o(e){y(a,r,s,o,i,"next",e)}function i(e){y(a,r,s,o,i,"throw",e)}o(void 0)}))}}var L=(0,o.loadState)("settings","profileEnabledByDefault",!0),R={name:"ProfileSettings",components:{CheckboxRadioSwitch:O()},data:function(){return{initialProfileEnabledByDefault:L}},methods:{onProfileDefaultChange:function(e){var n=this;return I(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("boolean"!=typeof e){t.next=3;break}return t.next=3,n.updateProfileDefault(e);case 3:case"end":return t.stop()}}),t)})))()},updateProfileDefault:function(e){var n=this;return I(regeneratorRuntime.mark((function r(){var s,a,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,m(e);case 3:o=r.sent,n.handleResponse({isEnabled:e,status:null===(s=o.ocs)||void 0===s||null===(a=s.meta)||void 0===a?void 0:a.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update profile default setting"),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},handleResponse:function(e){var n=e.isEnabled,t=e.status,r=e.errorMessage,s=e.error;"ok"===t?this.initialProfileEnabledByDefault=n:((0,l.x2)(r),this.logger.error(r,s))}}},x=r(51900),w=(0,x.Z)(R,(function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"section",attrs:{id:"profile-settings"}},[t("h2",{staticClass:"inlineblock"},[e._v("\n\t\t"+e._s(e.t("settings","Profile"))+"\n\t")]),e._v(" "),t("p",{staticClass:"settings-hint"},[e._v("\n\t\t"+e._s(e.t("settings","Enable or disable profile by default for new users."))+"\n\t")]),e._v(" "),t("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.initialProfileEnabledByDefault},on:{"update:checked":[function(n){e.initialProfileEnabledByDefault=n},e.onProfileDefaultChange]}},[e._v("\n\t\t"+e._s(e.t("settings","Enable"))+"\n\t")])],1)}),[],!1,null,"414249e6",null).exports,T=r(67776),P=r.n(T),_=r(80351),S=r.n(_);function D(e,n,t,r,s,a,o){try{var i=e[a](o),c=i.value}catch(e){return void t(e)}i.done?n(c):Promise.resolve(c).then(r,s)}function N(e){return function(){var n=this,t=arguments;return new Promise((function(r,s){var a=e.apply(n,t);function o(e){D(a,r,s,o,i,"next",e)}function i(e){D(a,r,s,o,i,"throw",e)}o(void 0)}))}}var B=(0,o.loadState)("settings","lastCron"),M=(0,o.loadState)("settings","cronMaxAge",""),z=(0,o.loadState)("settings","backgroundJobsMode","cron"),H=(0,o.loadState)("settings","cliBasedCronPossible",!0),J=(0,o.loadState)("settings","cliBasedCronUser","www-data"),U=(0,o.loadState)("settings","backgroundJobsDocUrl"),V={name:"BackgroundJob",components:{CheckboxRadioSwitch:O(),SettingsSection:P()},data:function(){return{lastCron:B,cronMaxAge:M,backgroundJobsMode:z,cliBasedCronPossible:H,cliBasedCronUser:J,backgroundJobsDocUrl:U,relativeTime:S()(1e3*B).fromNow(),maxAgeRelativeTime:S()(1e3*M).fromNow()}},computed:{cronLabel:function(){var e=t("settings","Use system cron service to call the cron.php file every 5 minutes. Recommended for all instances.");return this.cliBasedCronPossible&&(e+=" "+t("settings",'The cron.php needs to be executed by the system user "{user}".',{user:this.cliBasedCronUser})),e},oldExecution:function(){return Date.now()/1e3-this.lastCron>600},longExecutionNotCron:function(){return Date.now()/1e3-this.cronMaxAge>43200&&"cron"!==this.backgroundJobsMode},longExecutionCron:function(){return Date.now()/1e3-this.cronMaxAge>43200&&"cron"===this.backgroundJobsMode}},methods:{onBackgroundJobModeChanged:function(e){var n=this;return N(regeneratorRuntime.mark((function r(){var s,a,o,i,c;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return s=(0,d.generateOcsUrl)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"core",key:"backgroundjobs_mode"}),r.next=3,p()();case 3:return r.prev=3,r.next=6,u.default.post(s,{value:e});case 6:i=r.sent,c=i.data,n.handleResponse({status:null===(a=c.ocs)||void 0===a||null===(o=a.meta)||void 0===o?void 0:o.status}),r.next=14;break;case 11:r.prev=11,r.t0=r.catch(3),n.handleResponse({errorMessage:t("settings","Unable to update background job mode"),error:r.t0});case 14:case"end":return r.stop()}}),r,null,[[3,11]])})))()},handleResponse:function(e){var n=this;return N(regeneratorRuntime.mark((function t(){var r,s,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.status,s=e.errorMessage,a=e.error,"ok"!==r){t.next=6;break}return t.next=4,n.deleteError();case 4:t.next=8;break;case 6:(0,l.x2)(s),console.error(s,a);case 8:case"end":return t.stop()}}),t)})))()},deleteError:function(){return N(regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=(0,d.generateOcsUrl)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"core",key:"cronErrors"}),e.next=3,p()();case 3:return e.prev=3,e.next=6,u.default.delete(n);case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),console.error(e.t0);case 11:case"end":return e.stop()}}),e,null,[[3,8]])})))()}}},F=V,G=r(93379),W=r.n(G),Y=r(7795),q=r.n(Y),Z=r(90569),$=r.n(Z),X=r(3565),K=r.n(X),Q=r(19216),ee=r.n(Q),ne=r(44589),te=r.n(ne),re=r(31012),se={};se.styleTagTransform=te(),se.setAttributes=K(),se.insert=$().bind(null,"head"),se.domAPI=q(),se.insertStyleElement=ee(),W()(re.Z,se),re.Z&&re.Z.locals&&re.Z.locals;var ae=(0,x.Z)(F,(function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("SettingsSection",{attrs:{title:e.t("settings","Background jobs"),description:e.t("settings","For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information."),"doc-url":e.backgroundJobsDocUrl}},[0!==e.lastCron?[e.oldExecution?t("span",{staticClass:"error"},[e._v("\n\t\t\t"+e._s(e.t("settings","Last job execution ran {time}. Something seems wrong.",{time:e.relativeTime}))+"\n\t\t")]):e.longExecutionNotCron?t("span",{staticClass:"warning"},[e._v("\n\t\t\t"+e._s(e.t("settings","Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider increasing the execution frequency.",{maxAgeRelativeTime:e.maxAgeRelativeTime}))+"\n\t\t")]):e.longExecutionCron?t("span",{staticClass:"warning"},[e._v("\n\t\t\t"+e._s(e.t("settings","Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider switching to system cron.",{maxAgeRelativeTime:e.maxAgeRelativeTime}))+"\n\t\t")]):t("span",[e._v("\n\t\t\t"+e._s(e.t("settings","Last job ran {relativeTime}.",{relativeTime:e.relativeTime}))+"\n\t\t")])]:t("span",{staticClass:"error"},[e._v("\n\t\t"+e._s(e.t("settings","Background job didn’t run yet!"))+"\n\t")]),e._v(" "),t("CheckboxRadioSwitch",{staticClass:"ajaxSwitch",attrs:{type:"radio",checked:e.backgroundJobsMode,name:"backgroundJobsMode",value:"ajax"},on:{"update:checked":[function(n){e.backgroundJobsMode=n},e.onBackgroundJobModeChanged]}},[e._v("\n\t\t"+e._s(e.t("settings","AJAX"))+"\n\t")]),e._v(" "),t("em",[e._v(e._s(e.t("settings","Execute one task with each page loaded. Use case: Single user instance.")))]),e._v(" "),t("CheckboxRadioSwitch",{attrs:{type:"radio",checked:e.backgroundJobsMode,name:"backgroundJobsMode",value:"webcron"},on:{"update:checked":[function(n){e.backgroundJobsMode=n},e.onBackgroundJobModeChanged]}},[e._v("\n\t\t"+e._s(e.t("settings","Webcron"))+"\n\t")]),e._v(" "),t("em",[e._v(e._s(e.t("settings","cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage).")))]),e._v(" "),e.cliBasedCronPossible?t("CheckboxRadioSwitch",{attrs:{type:"radio",checked:e.backgroundJobsMode,value:"cron",name:"backgroundJobsMode"},on:{"update:checked":[function(n){e.backgroundJobsMode=n},e.onBackgroundJobModeChanged]}},[e._v("\n\t\t"+e._s(e.t("settings","Cron (Recommended)"))+"\n\t")]):e._e(),e._v(" "),e.cliBasedCronPossible?t("em",[e._v(e._s(e.cronLabel))]):t("em",[e._v("\n\t\t{{ t('settings', 'To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details.', {\n\t\t\tlinkstart: '"),t("a",{attrs:{href:"https://www.php.net/manual/en/book.posix.php"}},[e._v("',\n\t\t\tlinkend: '")]),e._v("',\n\t\t}) }}\n\t")])],2)}),[],!1,null,"b877239e",null).exports;r.nc=btoa((0,a.getRequestToken)());var oe=(0,o.loadState)("settings","profileEnabledGlobally",!0);s.default.mixin({props:{logger:c},methods:{t:i.translate}}),(new(s.default.extend(ae))).$mount("#vue-admin-background-job"),oe&&(new(s.default.extend(w))).$mount("#vue-admin-profile-settings")},31012:function(e,n,t){"use strict";var r=t(87537),s=t.n(r),a=t(23645),o=t.n(a)()(s());o.push([e.id,".error[data-v-b877239e]{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-primary-text);background-color:var(--color-error);width:initial}.warning[data-v-b877239e]{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-primary-text);background-color:var(--color-warning);width:initial}.ajaxSwitch[data-v-b877239e]{margin-top:1rem}","",{version:3,sources:["webpack://./apps/settings/src/components/BasicSettings/BackgroundJob.vue"],names:[],mappings:"AA+LA,wBACC,cAAA,CACA,WAAA,CACA,kCAAA,CACA,+BAAA,CACA,mCAAA,CACA,aAAA,CAED,0BACC,cAAA,CACA,WAAA,CACA,kCAAA,CACA,+BAAA,CACA,qCAAA,CACA,aAAA,CAED,6BACC,eAAA",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.error {\n\tmargin-top: 8px;\n\tpadding: 5px;\n\tborder-radius: var(--border-radius);\n\tcolor: var(--color-primary-text);\n\tbackground-color: var(--color-error);\n\twidth: initial;\n}\n.warning {\n\tmargin-top: 8px;\n\tpadding: 5px;\n\tborder-radius: var(--border-radius);\n\tcolor: var(--color-primary-text);\n\tbackground-color: var(--color-warning);\n\twidth: initial;\n}\n.ajaxSwitch {\n\tmargin-top: 1rem;\n}\n"],sourceRoot:""}]),n.Z=o}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(a.exports,a,a.exports,s),a.loaded=!0,a.exports}s.m=n,s.amdD=function(){throw new Error("define cannot be used indirect")},s.amdO={},e=[],s.O=function(n,t,r,a){if(!t){var o=1/0;for(u=0;u<e.length;u++){t=e[u][0],r=e[u][1],a=e[u][2];for(var i=!0,c=0;c<t.length;c++)(!1&a||o>=a)&&Object.keys(s.O).every((function(e){return s.O[e](t[c])}))?t.splice(c--,1):(i=!1,a<o&&(o=a));if(i){e.splice(u--,1);var l=r();void 0!==l&&(n=l)}}return n}a=a||0;for(var u=e.length;u>0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[t,r,a]},s.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(n,{a:n}),n},s.d=function(e,n){for(var t in n)s.o(n,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},s.j=6192,function(){s.b=document.baseURI||self.location.href;var e={6192:0};s.O.j=function(n){return 0===e[n]};var n=function(n,t){var r,a,o=t[0],i=t[1],c=t[2],l=0;if(o.some((function(n){return 0!==e[n]}))){for(r in i)s.o(i,r)&&(s.m[r]=i[r]);if(c)var u=c(s)}for(n&&n(t);l<o.length;l++)a=o[l],s.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return s.O(u)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))}();var a=s.O(void 0,[7874],(function(){return s(76100)}));a=s.O(a)}(); +//# sourceMappingURL=settings-vue-settings-admin-basic-settings.js.map?v=bf80d49e4289c7f0116e
\ No newline at end of file diff --git a/dist/settings-vue-settings-admin-basic-settings.js.map b/dist/settings-vue-settings-admin-basic-settings.js.map index 233e0ec112d..fa0670bd43e 100644 --- a/dist/settings-vue-settings-admin-basic-settings.js.map +++ b/dist/settings-vue-settings-admin-basic-settings.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-vue-settings-admin-basic-settings.js?v=e970f6944c5a9ada36bb","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/@nextcloud/moment/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/apps/settings/src/logger.js","webpack:///nextcloud/apps/settings/src/service/ProfileService.js","webpack:///nextcloud/apps/settings/src/constants/AccountPropertyConstants.js","webpack:///nextcloud/apps/settings/src/components/BasicSettings/ProfileSettings.vue","webpack:///nextcloud/apps/settings/src/components/BasicSettings/ProfileSettings.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/utils/validate.js","webpack://nextcloud/./apps/settings/src/components/BasicSettings/ProfileSettings.vue?cd3c","webpack:///nextcloud/apps/settings/src/components/BasicSettings/ProfileSettings.vue?vue&type=template&id=414249e6&scoped=true&","webpack:///nextcloud/apps/settings/src/components/BasicSettings/BackgroundJob.vue","webpack:///nextcloud/apps/settings/src/components/BasicSettings/BackgroundJob.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/BasicSettings/BackgroundJob.vue?3bca","webpack://nextcloud/./apps/settings/src/components/BasicSettings/BackgroundJob.vue?e6cc","webpack:///nextcloud/apps/settings/src/components/BasicSettings/BackgroundJob.vue?vue&type=template&id=35620333&scoped=true&","webpack:///nextcloud/apps/settings/src/main-admin-basic-settings.js","webpack:///nextcloud/apps/settings/src/components/BasicSettings/BackgroundJob.vue?vue&type=style&index=0&id=35620333&lang=scss&scoped=true&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var map = {\n\t\"./af\": 36026,\n\t\"./af.js\": 36026,\n\t\"./ar\": 28093,\n\t\"./ar-dz\": 41943,\n\t\"./ar-dz.js\": 41943,\n\t\"./ar-kw\": 23969,\n\t\"./ar-kw.js\": 23969,\n\t\"./ar-ly\": 40594,\n\t\"./ar-ly.js\": 40594,\n\t\"./ar-ma\": 18369,\n\t\"./ar-ma.js\": 18369,\n\t\"./ar-sa\": 32579,\n\t\"./ar-sa.js\": 32579,\n\t\"./ar-tn\": 76442,\n\t\"./ar-tn.js\": 76442,\n\t\"./ar.js\": 28093,\n\t\"./az\": 86425,\n\t\"./az.js\": 86425,\n\t\"./be\": 22004,\n\t\"./be.js\": 22004,\n\t\"./bg\": 42982,\n\t\"./bg.js\": 42982,\n\t\"./bm\": 21067,\n\t\"./bm.js\": 21067,\n\t\"./bn\": 8366,\n\t\"./bn-bd\": 63837,\n\t\"./bn-bd.js\": 63837,\n\t\"./bn.js\": 8366,\n\t\"./bo\": 95040,\n\t\"./bo.js\": 95040,\n\t\"./br\": 521,\n\t\"./br.js\": 521,\n\t\"./bs\": 83242,\n\t\"./bs.js\": 83242,\n\t\"./ca\": 73046,\n\t\"./ca.js\": 73046,\n\t\"./cs\": 25794,\n\t\"./cs.js\": 25794,\n\t\"./cv\": 28231,\n\t\"./cv.js\": 28231,\n\t\"./cy\": 10927,\n\t\"./cy.js\": 10927,\n\t\"./da\": 42832,\n\t\"./da.js\": 42832,\n\t\"./de\": 29415,\n\t\"./de-at\": 3331,\n\t\"./de-at.js\": 3331,\n\t\"./de-ch\": 45524,\n\t\"./de-ch.js\": 45524,\n\t\"./de.js\": 29415,\n\t\"./dv\": 44700,\n\t\"./dv.js\": 44700,\n\t\"./el\": 88752,\n\t\"./el.js\": 88752,\n\t\"./en-au\": 90444,\n\t\"./en-au.js\": 90444,\n\t\"./en-ca\": 65959,\n\t\"./en-ca.js\": 65959,\n\t\"./en-gb\": 62762,\n\t\"./en-gb.js\": 62762,\n\t\"./en-ie\": 40909,\n\t\"./en-ie.js\": 40909,\n\t\"./en-il\": 79909,\n\t\"./en-il.js\": 79909,\n\t\"./en-in\": 87942,\n\t\"./en-in.js\": 87942,\n\t\"./en-nz\": 75200,\n\t\"./en-nz.js\": 75200,\n\t\"./en-sg\": 21415,\n\t\"./en-sg.js\": 21415,\n\t\"./eo\": 27447,\n\t\"./eo.js\": 27447,\n\t\"./es\": 86756,\n\t\"./es-do\": 47049,\n\t\"./es-do.js\": 47049,\n\t\"./es-mx\": 15915,\n\t\"./es-mx.js\": 15915,\n\t\"./es-us\": 57133,\n\t\"./es-us.js\": 57133,\n\t\"./es.js\": 86756,\n\t\"./et\": 72182,\n\t\"./et.js\": 72182,\n\t\"./eu\": 14419,\n\t\"./eu.js\": 14419,\n\t\"./fa\": 2916,\n\t\"./fa.js\": 2916,\n\t\"./fi\": 49964,\n\t\"./fi.js\": 49964,\n\t\"./fil\": 16448,\n\t\"./fil.js\": 16448,\n\t\"./fo\": 26094,\n\t\"./fo.js\": 26094,\n\t\"./fr\": 35833,\n\t\"./fr-ca\": 56994,\n\t\"./fr-ca.js\": 56994,\n\t\"./fr-ch\": 2740,\n\t\"./fr-ch.js\": 2740,\n\t\"./fr.js\": 35833,\n\t\"./fy\": 69542,\n\t\"./fy.js\": 69542,\n\t\"./ga\": 93264,\n\t\"./ga.js\": 93264,\n\t\"./gd\": 77457,\n\t\"./gd.js\": 77457,\n\t\"./gl\": 83043,\n\t\"./gl.js\": 83043,\n\t\"./gom-deva\": 24034,\n\t\"./gom-deva.js\": 24034,\n\t\"./gom-latn\": 28379,\n\t\"./gom-latn.js\": 28379,\n\t\"./gu\": 406,\n\t\"./gu.js\": 406,\n\t\"./he\": 73219,\n\t\"./he.js\": 73219,\n\t\"./hi\": 99834,\n\t\"./hi.js\": 99834,\n\t\"./hr\": 28754,\n\t\"./hr.js\": 28754,\n\t\"./hu\": 93945,\n\t\"./hu.js\": 93945,\n\t\"./hy-am\": 81319,\n\t\"./hy-am.js\": 81319,\n\t\"./id\": 24875,\n\t\"./id.js\": 24875,\n\t\"./is\": 23724,\n\t\"./is.js\": 23724,\n\t\"./it\": 79906,\n\t\"./it-ch\": 34303,\n\t\"./it-ch.js\": 34303,\n\t\"./it.js\": 79906,\n\t\"./ja\": 77105,\n\t\"./ja.js\": 77105,\n\t\"./jv\": 15026,\n\t\"./jv.js\": 15026,\n\t\"./ka\": 67416,\n\t\"./ka.js\": 67416,\n\t\"./kk\": 79734,\n\t\"./kk.js\": 79734,\n\t\"./km\": 60757,\n\t\"./km.js\": 60757,\n\t\"./kn\": 58369,\n\t\"./kn.js\": 58369,\n\t\"./ko\": 77687,\n\t\"./ko.js\": 77687,\n\t\"./ku\": 95544,\n\t\"./ku.js\": 95544,\n\t\"./ky\": 85431,\n\t\"./ky.js\": 85431,\n\t\"./lb\": 13613,\n\t\"./lb.js\": 13613,\n\t\"./lo\": 34252,\n\t\"./lo.js\": 34252,\n\t\"./lt\": 84619,\n\t\"./lt.js\": 84619,\n\t\"./lv\": 93760,\n\t\"./lv.js\": 93760,\n\t\"./me\": 93393,\n\t\"./me.js\": 93393,\n\t\"./mi\": 12369,\n\t\"./mi.js\": 12369,\n\t\"./mk\": 48664,\n\t\"./mk.js\": 48664,\n\t\"./ml\": 23099,\n\t\"./ml.js\": 23099,\n\t\"./mn\": 98539,\n\t\"./mn.js\": 98539,\n\t\"./mr\": 778,\n\t\"./mr.js\": 778,\n\t\"./ms\": 39970,\n\t\"./ms-my\": 82625,\n\t\"./ms-my.js\": 82625,\n\t\"./ms.js\": 39970,\n\t\"./mt\": 15714,\n\t\"./mt.js\": 15714,\n\t\"./my\": 53055,\n\t\"./my.js\": 53055,\n\t\"./nb\": 73945,\n\t\"./nb.js\": 73945,\n\t\"./ne\": 63645,\n\t\"./ne.js\": 63645,\n\t\"./nl\": 4829,\n\t\"./nl-be\": 12823,\n\t\"./nl-be.js\": 12823,\n\t\"./nl.js\": 4829,\n\t\"./nn\": 23756,\n\t\"./nn.js\": 23756,\n\t\"./oc-lnc\": 41228,\n\t\"./oc-lnc.js\": 41228,\n\t\"./pa-in\": 97877,\n\t\"./pa-in.js\": 97877,\n\t\"./pl\": 53066,\n\t\"./pl.js\": 53066,\n\t\"./pt\": 28677,\n\t\"./pt-br\": 81592,\n\t\"./pt-br.js\": 81592,\n\t\"./pt.js\": 28677,\n\t\"./ro\": 32722,\n\t\"./ro.js\": 32722,\n\t\"./ru\": 59138,\n\t\"./ru.js\": 59138,\n\t\"./sd\": 32568,\n\t\"./sd.js\": 32568,\n\t\"./se\": 49753,\n\t\"./se.js\": 49753,\n\t\"./si\": 58024,\n\t\"./si.js\": 58024,\n\t\"./sk\": 31058,\n\t\"./sk.js\": 31058,\n\t\"./sl\": 43452,\n\t\"./sl.js\": 43452,\n\t\"./sq\": 2795,\n\t\"./sq.js\": 2795,\n\t\"./sr\": 26976,\n\t\"./sr-cyrl\": 38819,\n\t\"./sr-cyrl.js\": 38819,\n\t\"./sr.js\": 26976,\n\t\"./ss\": 7467,\n\t\"./ss.js\": 7467,\n\t\"./sv\": 42787,\n\t\"./sv.js\": 42787,\n\t\"./sw\": 80298,\n\t\"./sw.js\": 80298,\n\t\"./ta\": 57532,\n\t\"./ta.js\": 57532,\n\t\"./te\": 76076,\n\t\"./te.js\": 76076,\n\t\"./tet\": 40452,\n\t\"./tet.js\": 40452,\n\t\"./tg\": 64794,\n\t\"./tg.js\": 64794,\n\t\"./th\": 48245,\n\t\"./th.js\": 48245,\n\t\"./tk\": 8870,\n\t\"./tk.js\": 8870,\n\t\"./tl-ph\": 36056,\n\t\"./tl-ph.js\": 36056,\n\t\"./tlh\": 15249,\n\t\"./tlh.js\": 15249,\n\t\"./tr\": 22053,\n\t\"./tr.js\": 22053,\n\t\"./tzl\": 39871,\n\t\"./tzl.js\": 39871,\n\t\"./tzm\": 39574,\n\t\"./tzm-latn\": 19210,\n\t\"./tzm-latn.js\": 19210,\n\t\"./tzm.js\": 39574,\n\t\"./ug-cn\": 91532,\n\t\"./ug-cn.js\": 91532,\n\t\"./uk\": 11432,\n\t\"./uk.js\": 11432,\n\t\"./ur\": 88523,\n\t\"./ur.js\": 88523,\n\t\"./uz\": 54958,\n\t\"./uz-latn\": 68735,\n\t\"./uz-latn.js\": 68735,\n\t\"./uz.js\": 54958,\n\t\"./vi\": 83398,\n\t\"./vi.js\": 83398,\n\t\"./x-pseudo\": 56665,\n\t\"./x-pseudo.js\": 56665,\n\t\"./yo\": 11642,\n\t\"./yo.js\": 11642,\n\t\"./zh-cn\": 5462,\n\t\"./zh-cn.js\": 5462,\n\t\"./zh-hk\": 92530,\n\t\"./zh-hk.js\": 92530,\n\t\"./zh-mo\": 41650,\n\t\"./zh-mo.js\": 41650,\n\t\"./zh-tw\": 97333,\n\t\"./zh-tw.js\": 97333\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 93365;","/**\n * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('settings')\n\t.detectUser()\n\t.build()\n","/**\n * @copyright 2021 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport confirmPassword from '@nextcloud/password-confirmation'\n\n/**\n * Save the visibility of the profile parameter\n *\n * @param {string} paramId the profile parameter ID\n * @param {string} visibility the visibility\n * @return {object}\n */\nexport const saveProfileParameterVisibility = async (paramId, visibility) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('/profile/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tparamId,\n\t\tvisibility,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save profile default\n *\n * @param {boolean} isEnabled the default\n * @return {object}\n */\nexport const saveProfileDefault = async (isEnabled) => {\n\t// Convert to string for compatibility\n\tisEnabled = isEnabled ? '1' : '0'\n\n\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\tappId: 'settings',\n\t\tkey: 'profile_enabled_by_default',\n\t})\n\n\tawait confirmPassword()\n\n\tconst res = await axios.post(url, {\n\t\tvalue: isEnabled,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * SYNC to be kept in sync with `lib/public/Accounts/IAccountManager.php`\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/** Enum of account properties */\nexport const ACCOUNT_PROPERTY_ENUM = Object.freeze({\n\tADDRESS: 'address',\n\tAVATAR: 'avatar',\n\tBIOGRAPHY: 'biography',\n\tDISPLAYNAME: 'displayname',\n\tEMAIL_COLLECTION: 'additional_mail',\n\tEMAIL: 'email',\n\tHEADLINE: 'headline',\n\tNOTIFICATION_EMAIL: 'notify_email',\n\tORGANISATION: 'organisation',\n\tPHONE: 'phone',\n\tPROFILE_ENABLED: 'profile_enabled',\n\tROLE: 'role',\n\tTWITTER: 'twitter',\n\tWEBSITE: 'website',\n})\n\n/** Enum of account properties to human readable account property names */\nexport const ACCOUNT_PROPERTY_READABLE_ENUM = Object.freeze({\n\tADDRESS: t('settings', 'Address'),\n\tAVATAR: t('settings', 'Avatar'),\n\tBIOGRAPHY: t('settings', 'About'),\n\tDISPLAYNAME: t('settings', 'Full name'),\n\tEMAIL_COLLECTION: t('settings', 'Additional email'),\n\tEMAIL: t('settings', 'Email'),\n\tHEADLINE: t('settings', 'Headline'),\n\tORGANISATION: t('settings', 'Organisation'),\n\tPHONE: t('settings', 'Phone number'),\n\tPROFILE_ENABLED: t('settings', 'Profile'),\n\tROLE: t('settings', 'Role'),\n\tTWITTER: t('settings', 'Twitter'),\n\tWEBSITE: t('settings', 'Website'),\n})\n\n/** Enum of profile specific sections to human readable names */\nexport const PROFILE_READABLE_ENUM = Object.freeze({\n\tPROFILE_VISIBILITY: t('settings', 'Profile visibility'),\n})\n\n/** Enum of readable account properties to account property keys used by the server */\nexport const PROPERTY_READABLE_KEYS_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: ACCOUNT_PROPERTY_ENUM.ADDRESS,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: ACCOUNT_PROPERTY_ENUM.AVATAR,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: ACCOUNT_PROPERTY_ENUM.BIOGRAPHY,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: ACCOUNT_PROPERTY_ENUM.DISPLAYNAME,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: ACCOUNT_PROPERTY_ENUM.EMAIL,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: ACCOUNT_PROPERTY_ENUM.HEADLINE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: ACCOUNT_PROPERTY_ENUM.ORGANISATION,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: ACCOUNT_PROPERTY_ENUM.PHONE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: ACCOUNT_PROPERTY_ENUM.ROLE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: ACCOUNT_PROPERTY_ENUM.TWITTER,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: ACCOUNT_PROPERTY_ENUM.WEBSITE,\n})\n\n/**\n * Enum of account setting properties\n *\n * Account setting properties unlike account properties do not support scopes*\n */\nexport const ACCOUNT_SETTING_PROPERTY_ENUM = Object.freeze({\n\tLANGUAGE: 'language',\n})\n\n/** Enum of account setting properties to human readable setting properties */\nexport const ACCOUNT_SETTING_PROPERTY_READABLE_ENUM = Object.freeze({\n\tLANGUAGE: t('settings', 'Language'),\n})\n\n/** Enum of scopes */\nexport const SCOPE_ENUM = Object.freeze({\n\tPRIVATE: 'v2-private',\n\tLOCAL: 'v2-local',\n\tFEDERATED: 'v2-federated',\n\tPUBLISHED: 'v2-published',\n})\n\n/** Enum of readable account properties to supported scopes */\nexport const PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n})\n\n/** List of readable account properties which aren't published to the lookup server */\nexport const UNPUBLISHED_READABLE_PROPERTIES = Object.freeze([\n\tACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,\n\tACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,\n\tACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,\n\tACCOUNT_PROPERTY_READABLE_ENUM.ROLE,\n])\n\n/** Scope suffix */\nexport const SCOPE_SUFFIX = 'Scope'\n\n/**\n * Enum of scope names to properties\n *\n * Used for federation control*\n */\nexport const SCOPE_PROPERTY_ENUM = Object.freeze({\n\t[SCOPE_ENUM.PRIVATE]: {\n\t\tname: SCOPE_ENUM.PRIVATE,\n\t\tdisplayName: t('settings', 'Private'),\n\t\ttooltip: t('settings', 'Only visible to people matched via phone number integration through Talk on mobile'),\n\t\ttooltipDisabled: t('settings', 'Not available as this property is required for core functionality including file sharing and calendar invitations'),\n\t\ticonClass: 'icon-phone',\n\t},\n\t[SCOPE_ENUM.LOCAL]: {\n\t\tname: SCOPE_ENUM.LOCAL,\n\t\tdisplayName: t('settings', 'Local'),\n\t\ttooltip: t('settings', 'Only visible to people on this instance and guests'),\n\t\t// tooltipDisabled is not required here as this scope is supported by all account properties\n\t\ticonClass: 'icon-password',\n\t},\n\t[SCOPE_ENUM.FEDERATED]: {\n\t\tname: SCOPE_ENUM.FEDERATED,\n\t\tdisplayName: t('settings', 'Federated'),\n\t\ttooltip: t('settings', 'Only synchronize to trusted servers'),\n\t\ttooltipDisabled: t('settings', 'Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions'),\n\t\ticonClass: 'icon-contacts-dark',\n\t},\n\t[SCOPE_ENUM.PUBLISHED]: {\n\t\tname: SCOPE_ENUM.PUBLISHED,\n\t\tdisplayName: t('settings', 'Published'),\n\t\ttooltip: t('settings', 'Synchronize to trusted servers and the global and public address book'),\n\t\ttooltipDisabled: t('settings', 'Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions'),\n\t\ticonClass: 'icon-link',\n\t},\n})\n\n/** Default additional email scope */\nexport const DEFAULT_ADDITIONAL_EMAIL_SCOPE = SCOPE_ENUM.LOCAL\n\n/** Enum of verification constants, according to IAccountManager */\nexport const VERIFICATION_ENUM = Object.freeze({\n\tNOT_VERIFIED: 0,\n\tVERIFICATION_IN_PROGRESS: 1,\n\tVERIFIED: 2,\n})\n\n/**\n * Email validation regex\n *\n * Sourced from https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/regexp/ascii.ts*\n */\n// eslint-disable-next-line no-control-regex\nexport const VALIDATE_EMAIL_REGEX = /^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/i\n","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div id=\"profile-settings\"\n\t\tclass=\"section\">\n\t\t<h2 class=\"inlineblock\">\n\t\t\t{{ t('settings', 'Profile') }}\n\t\t</h2>\n\n\t\t<p class=\"settings-hint\">\n\t\t\t{{ t('settings', 'Enable or disable profile by default for new users.') }}\n\t\t</p>\n\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"initialProfileEnabledByDefault\"\n\t\t\t@update:checked=\"onProfileDefaultChange\">\n\t\t\t{{ t('settings', 'Enable') }}\n\t\t</CheckboxRadioSwitch>\n\t</div>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\n\nimport { saveProfileDefault } from '../../service/ProfileService'\nimport { validateBoolean } from '../../utils/validate'\n\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\n\nconst profileEnabledByDefault = loadState('settings', 'profileEnabledByDefault', true)\n\nexport default {\n\tname: 'ProfileSettings',\n\n\tcomponents: {\n\t\tCheckboxRadioSwitch,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialProfileEnabledByDefault: profileEnabledByDefault,\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasync onProfileDefaultChange(isEnabled) {\n\t\t\tif (validateBoolean(isEnabled)) {\n\t\t\t\tawait this.updateProfileDefault(isEnabled)\n\t\t\t}\n\t\t},\n\n\t\tasync updateProfileDefault(isEnabled) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await saveProfileDefault(isEnabled)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tisEnabled,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update profile default setting'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ isEnabled, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialProfileEnabledByDefault = isEnabled\n\t\t\t} else {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tthis.logger.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSettings.vue?vue&type=script&lang=js&\"","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * Frontend validators, less strict than backend validators\n *\n * TODO add nice validation errors for Profile page settings modal\n */\n\nimport { VALIDATE_EMAIL_REGEX } from '../constants/AccountPropertyConstants'\n\n/**\n * Validate the string input\n *\n * Generic validator just to check that input is not an empty string*\n *\n * @param {string} input the input\n * @return {boolean}\n */\nexport function validateStringInput(input) {\n\treturn input !== ''\n}\n\n/**\n * Validate the email input\n *\n * Compliant with PHP core FILTER_VALIDATE_EMAIL validator*\n *\n * Reference implementation https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/index.ts*\n *\n * @param {string} input the input\n * @return {boolean}\n */\nexport function validateEmail(input) {\n\treturn typeof input === 'string'\n\t\t&& VALIDATE_EMAIL_REGEX.test(input)\n\t\t&& input.slice(-1) !== '\\n'\n\t\t&& input.length <= 320\n\t\t&& encodeURIComponent(input).replace(/%../g, 'x').length <= 320\n}\n\n/**\n * Validate the language input\n *\n * @param {object} input the input\n * @return {boolean}\n */\nexport function validateLanguage(input) {\n\treturn input.code !== ''\n\t\t&& input.name !== ''\n\t\t&& input.name !== undefined\n}\n\n/**\n * Validate boolean input\n *\n * @param {boolean} input the input\n * @return {boolean}\n */\nexport function validateBoolean(input) {\n\treturn typeof input === 'boolean'\n}\n","import { render, staticRenderFns } from \"./ProfileSettings.vue?vue&type=template&id=414249e6&scoped=true&\"\nimport script from \"./ProfileSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"414249e6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section\",attrs:{\"id\":\"profile-settings\"}},[_c('h2',{staticClass:\"inlineblock\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Profile'))+\"\\n\\t\")]),_vm._v(\" \"),_c('p',{staticClass:\"settings-hint\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Enable or disable profile by default for new users.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.initialProfileEnabledByDefault},on:{\"update:checked\":[function($event){_vm.initialProfileEnabledByDefault=$event},_vm.onProfileDefaultChange]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Enable'))+\"\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @author Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<SettingsSection :title=\"t('settings', 'Background jobs')\"\n\t\t:description=\"t('settings', `For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information.`)\"\n\t\t:doc-url=\"backgroundJobsDocUrl\">\n\n\t\t<template v-if=\"lastCron !== 0\">\n\t\t\t<span v-if=\"oldExecution\" class=\"error\">\n\t\t\t\t{{ t('settings', 'Last job execution ran {time}. Something seems wrong.', {time: relativeTime}) }}\n\t\t\t</span>\n\n\t\t\t<span v-else-if=\"longExecutionNotCron\" class=\"warning\">\n\t\t\t\t{{ t('settings', \"Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider increasing the execution frequency.\", {maxAgeRelativeTime}) }}\n\t\t\t</span>\n\n\t\t\t<span class=\"warning\" v-else-if=\"longExecutionCron\">\n\t\t\t\t{{ t('settings', \"Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider switching to system cron.\", {maxAgeRelativeTime}) }}\n\t\t\t</span>\n\n\t\t\t<span v-else>\n\t\t\t\t{{ t('settings', 'Last job ran {relativeTime}.', {relativeTime}) }}\n\t\t\t</span>\n\t\t</template>\n\n\t\t<span class=\"error\" v-else>\n\t\t\t{{ t('settings', 'Background job didn’t run yet!') }}\n\t\t</span>\n\n\t\t<CheckboxRadioSwitch type=\"radio\"\n\t\t\t:checked.sync=\"backgroundJobsMode\"\n\t\t\tname=\"backgroundJobsMode\"\n\t\t\tvalue=\"ajax\"\n\t\t\tclass=\"ajaxSwitch\"\n\t\t\t@update:checked=\"onBackgroundJobModeChanged\">\n\t\t\t{{ t('settings', 'AJAX') }}\n\t\t</CheckboxRadioSwitch>\n\t\t<em>{{ t('settings', 'Execute one task with each page loaded. Use case: Single user instance.') }}</em>\n\n\t\t<CheckboxRadioSwitch type=\"radio\"\n\t\t\t:checked.sync=\"backgroundJobsMode\"\n\t\t\tname=\"backgroundJobsMode\"\n\t\t\tvalue=\"webcron\"\n\t\t\t@update:checked=\"onBackgroundJobModeChanged\">\n\t\t\t{{ t('settings', 'Webcron') }}\n\t\t</CheckboxRadioSwitch>\n\t\t<em>{{ t('settings', 'cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage).') }}</em>\n\n\t\t<CheckboxRadioSwitch type=\"radio\"\n\t\t\t:checked.sync=\"backgroundJobsMode\"\n\t\t\tvalue=\"cron\"\n\t\t\tname=\"backgroundJobsMode\"\n\t\t\tv-if=\"cliBasedCronPossible\"\n\t\t\t@update:checked=\"onBackgroundJobModeChanged\">\n\t\t\t{{ t('settings', 'Cron (Recommended)') }}\n\t\t</CheckboxRadioSwitch>\n\t\t<em v-if=\"cliBasedCronPossible\">{{ cronLabel }}</em>\n\t\t<em v-else>\n\t\t\t{{ t('settings', 'To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details.', {\n\t\t\t\tlinkstart: '<a href=\"https://www.php.net/manual/en/book.posix.php\">',\n\t\t\t\tlinkend: '</a>',\n\t\t\t}) }}\n\t\t</em>\n\t</SettingsSection>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\nimport SettingsSection from '@nextcloud/vue/dist/Components/SettingsSection'\nimport moment from '@nextcloud/moment'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport confirmPassword from '@nextcloud/password-confirmation'\n\nconst lastCron = loadState('settings', 'lastCron')\nconst cronMaxAge = loadState('settings', 'cronMaxAge', '')\nconst backgroundJobsMode = loadState('settings', 'backgroundJobsMode', 'cron')\nconst cliBasedCronPossible = loadState('settings', 'cliBasedCronPossible', true)\nconst cliBasedCronUser = loadState('settings', 'cliBasedCronUser', 'www-data')\nconst backgroundJobsDocUrl = loadState('settings', 'backgroundJobsDocUrl')\n\nexport default {\n\tname: 'BackgroundJob',\n\n\tcomponents: {\n\t\tCheckboxRadioSwitch,\n\t\tSettingsSection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlastCron,\n\t\t\tcronMaxAge,\n\t\t\tbackgroundJobsMode,\n\t\t\tcliBasedCronPossible,\n\t\t\tcliBasedCronUser,\n\t\t\tbackgroundJobsDocUrl,\n\t\t\trelativeTime: moment(lastCron * 1000).fromNow(),\n\t\t\tmaxAgeRelativeTime: moment(cronMaxAge * 1000).fromNow(),\n\t\t}\n\t},\n\tcomputed: {\n\t\tcronLabel() {\n\t\t\tlet desc = t('settings', 'Use system cron service to call the cron.php file every 5 minutes. Recommended for all instances.')\n\t\t\tif (this.cliBasedCronPossible) {\n\t\t\t\tdesc += ' ' + t('settings', 'The cron.php needs to be executed by the system user \"{user}\".', { user: this.cliBasedCronUser })\n\t\t\t}\n\t\t\treturn desc\n\t\t},\n\t\toldExecution() {\n\t\t\treturn Date.now() / 1000 - this.lastCron > 600\n\t\t},\n\t\tlongExecutionNotCron() {\n\t\t\treturn Date.now() / 1000 - this.cronMaxAge > 12 * 3600 && this.backgroundJobsMode !== 'cron'\n\t\t},\n\t\tlongExecutionCron() {\n\t\t\treturn Date.now() / 1000 - this.cronMaxAge > 12 * 3600 && this.backgroundJobsMode === 'cron'\n\t\t}\n\t},\n\tmethods: {\n\t\tasync onBackgroundJobModeChanged(backgroundJobsMode) {\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'core',\n\t\t\t\tkey: 'backgroundjobs_mode',\n\t\t\t})\n\n\t\t\tawait confirmPassword()\n\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(url, {\n\t\t\t\t\tvalue: backgroundJobsMode\n\t\t\t\t})\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tstatus: data.ocs?.meta?.status\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update background job mode'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tasync handleResponse({ status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tawait this.deleteError()\n\t\t\t} else {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tconsole.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t\tasync deleteError() {\n\t\t\t// clear cron errors on background job mode change\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'core',\n\t\t\t\tkey: 'cronErrors',\n\t\t\t})\n\n\t\t\tawait confirmPassword()\n\n\t\t\ttry {\n\t\t\t\tawait axios.delete(url)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t}\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.error {\n\tmargin-top: 8px;\n\tpadding: 5px;\n\tborder-radius: var(--border-radius);\n\tcolor: var(--color-primary-text);\n\tbackground-color: var(--color-error);\n\twidth: initial;\n}\n.warning {\n\tmargin-top: 8px;\n\tpadding: 5px;\n\tborder-radius: var(--border-radius);\n\tcolor: var(--color-primary-text);\n\tbackground-color: var(--color-warning);\n\twidth: initial;\n}\n.ajaxSwitch {\n\tmargin-top: 1rem;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundJob.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundJob.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundJob.vue?vue&type=style&index=0&id=35620333&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundJob.vue?vue&type=style&index=0&id=35620333&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BackgroundJob.vue?vue&type=template&id=35620333&scoped=true&\"\nimport script from \"./BackgroundJob.vue?vue&type=script&lang=js&\"\nexport * from \"./BackgroundJob.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BackgroundJob.vue?vue&type=style&index=0&id=35620333&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35620333\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('SettingsSection',{attrs:{\"title\":_vm.t('settings', 'Background jobs'),\"description\":_vm.t('settings', \"For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information.\"),\"doc-url\":_vm.backgroundJobsDocUrl}},[(_vm.lastCron !== 0)?[(_vm.oldExecution)?_c('span',{staticClass:\"error\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Last job execution ran {time}. Something seems wrong.', {time: _vm.relativeTime}))+\"\\n\\t\\t\")]):(_vm.longExecutionNotCron)?_c('span',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', \"Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider increasing the execution frequency.\", {maxAgeRelativeTime: _vm.maxAgeRelativeTime}))+\"\\n\\t\\t\")]):(_vm.longExecutionCron)?_c('span',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', \"Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider switching to system cron.\", {maxAgeRelativeTime: _vm.maxAgeRelativeTime}))+\"\\n\\t\\t\")]):_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Last job ran {relativeTime}.', {relativeTime: _vm.relativeTime}))+\"\\n\\t\\t\")])]:_c('span',{staticClass:\"error\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Background job didn’t run yet!'))+\"\\n\\t\")]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{staticClass:\"ajaxSwitch\",attrs:{\"type\":\"radio\",\"checked\":_vm.backgroundJobsMode,\"name\":\"backgroundJobsMode\",\"value\":\"ajax\"},on:{\"update:checked\":[function($event){_vm.backgroundJobsMode=$event},_vm.onBackgroundJobModeChanged]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'AJAX'))+\"\\n\\t\")]),_vm._v(\" \"),_c('em',[_vm._v(_vm._s(_vm.t('settings', 'Execute one task with each page loaded. Use case: Single user instance.')))]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"checked\":_vm.backgroundJobsMode,\"name\":\"backgroundJobsMode\",\"value\":\"webcron\"},on:{\"update:checked\":[function($event){_vm.backgroundJobsMode=$event},_vm.onBackgroundJobModeChanged]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Webcron'))+\"\\n\\t\")]),_vm._v(\" \"),_c('em',[_vm._v(_vm._s(_vm.t('settings', 'cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage).')))]),_vm._v(\" \"),(_vm.cliBasedCronPossible)?_c('CheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"checked\":_vm.backgroundJobsMode,\"value\":\"cron\",\"name\":\"backgroundJobsMode\"},on:{\"update:checked\":[function($event){_vm.backgroundJobsMode=$event},_vm.onBackgroundJobModeChanged]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Cron (Recommended)'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.cliBasedCronPossible)?_c('em',[_vm._v(_vm._s(_vm.cronLabel))]):_c('em',[_vm._v(\"\\n\\t\\t{{ t('settings', 'To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details.', {\\n\\t\\t\\tlinkstart: '\"),_c('a',{attrs:{\"href\":\"https://www.php.net/manual/en/book.posix.php\"}},[_vm._v(\"',\\n\\t\\t\\tlinkend: '\")]),_vm._v(\"',\\n\\t\\t}) }}\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport '@nextcloud/dialogs/styles/toast.scss'\n\nimport logger from './logger'\n\nimport ProfileSettings from './components/BasicSettings/ProfileSettings'\nimport BackgroundJob from './components/BasicSettings/BackgroundJob'\n\n__webpack_nonce__ = btoa(getRequestToken())\n\nconst profileEnabledGlobally = loadState('settings', 'profileEnabledGlobally', true)\n\nVue.mixin({\n\tprops: {\n\t\tlogger,\n\t},\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst BackgroundJobView = Vue.extend(BackgroundJob)\nnew BackgroundJobView().$mount('#vue-admin-background-job')\n\nif (profileEnabledGlobally) {\n\tconst ProfileSettingsView = Vue.extend(ProfileSettings)\n\tnew ProfileSettingsView().$mount('#vue-admin-profile-settings')\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".error[data-v-35620333]{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-primary-text);background-color:var(--color-error);width:initial}.warning[data-v-35620333]{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-primary-text);background-color:var(--color-warning);width:initial}.ajaxSwitch[data-v-35620333]{margin-top:1rem}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/BasicSettings/BackgroundJob.vue\"],\"names\":[],\"mappings\":\"AAgMA,wBACC,cAAA,CACA,WAAA,CACA,kCAAA,CACA,+BAAA,CACA,mCAAA,CACA,aAAA,CAED,0BACC,cAAA,CACA,WAAA,CACA,kCAAA,CACA,+BAAA,CACA,qCAAA,CACA,aAAA,CAED,6BACC,eAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.error {\\n\\tmargin-top: 8px;\\n\\tpadding: 5px;\\n\\tborder-radius: var(--border-radius);\\n\\tcolor: var(--color-primary-text);\\n\\tbackground-color: var(--color-error);\\n\\twidth: initial;\\n}\\n.warning {\\n\\tmargin-top: 8px;\\n\\tpadding: 5px;\\n\\tborder-radius: var(--border-radius);\\n\\tcolor: var(--color-primary-text);\\n\\tbackground-color: var(--color-warning);\\n\\twidth: initial;\\n}\\n.ajaxSwitch {\\n\\tmargin-top: 1rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 6192;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t6192: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(15860); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","getLoggerBuilder","setApp","detectUser","build","saveProfileDefault","isEnabled","url","generateOcsUrl","appId","key","confirmPassword","axios","value","res","data","ACCOUNT_PROPERTY_ENUM","freeze","ADDRESS","AVATAR","BIOGRAPHY","DISPLAYNAME","EMAIL_COLLECTION","EMAIL","HEADLINE","NOTIFICATION_EMAIL","ORGANISATION","PHONE","PROFILE_ENABLED","ROLE","TWITTER","WEBSITE","ACCOUNT_PROPERTY_READABLE_ENUM","t","SCOPE_ENUM","PROFILE_VISIBILITY","LANGUAGE","PRIVATE","LOCAL","FEDERATED","PUBLISHED","name","displayName","tooltip","tooltipDisabled","iconClass","NOT_VERIFIED","VERIFICATION_IN_PROGRESS","VERIFIED","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","_s","initialProfileEnabledByDefault","on","$event","onProfileDefaultChange","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","backgroundJobsDocUrl","lastCron","time","relativeTime","maxAgeRelativeTime","backgroundJobsMode","onBackgroundJobModeChanged","_e","cronLabel","__webpack_nonce__","btoa","getRequestToken","profileEnabledGlobally","loadState","Vue","props","logger","methods","BackgroundJob","$mount","ProfileSettings","___CSS_LOADER_EXPORT___","push","__webpack_module_cache__","moduleId","cachedModule","undefined","loaded","__webpack_modules__","call","m","amdD","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"settings-vue-settings-admin-basic-settings.js?v=bf80d49e4289c7f0116e","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/@nextcloud/moment/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/apps/settings/src/logger.js","webpack:///nextcloud/apps/settings/src/service/ProfileService.js","webpack:///nextcloud/apps/settings/src/constants/AccountPropertyConstants.js","webpack:///nextcloud/apps/settings/src/components/BasicSettings/ProfileSettings.vue","webpack:///nextcloud/apps/settings/src/components/BasicSettings/ProfileSettings.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/utils/validate.js","webpack://nextcloud/./apps/settings/src/components/BasicSettings/ProfileSettings.vue?cd3c","webpack:///nextcloud/apps/settings/src/components/BasicSettings/ProfileSettings.vue?vue&type=template&id=414249e6&scoped=true&","webpack:///nextcloud/apps/settings/src/components/BasicSettings/BackgroundJob.vue","webpack:///nextcloud/apps/settings/src/components/BasicSettings/BackgroundJob.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/BasicSettings/BackgroundJob.vue?e0bd","webpack://nextcloud/./apps/settings/src/components/BasicSettings/BackgroundJob.vue?e6cc","webpack:///nextcloud/apps/settings/src/components/BasicSettings/BackgroundJob.vue?vue&type=template&id=b877239e&scoped=true&","webpack:///nextcloud/apps/settings/src/main-admin-basic-settings.js","webpack:///nextcloud/apps/settings/src/components/BasicSettings/BackgroundJob.vue?vue&type=style&index=0&id=b877239e&lang=scss&scoped=true&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var map = {\n\t\"./af\": 36026,\n\t\"./af.js\": 36026,\n\t\"./ar\": 28093,\n\t\"./ar-dz\": 41943,\n\t\"./ar-dz.js\": 41943,\n\t\"./ar-kw\": 23969,\n\t\"./ar-kw.js\": 23969,\n\t\"./ar-ly\": 40594,\n\t\"./ar-ly.js\": 40594,\n\t\"./ar-ma\": 18369,\n\t\"./ar-ma.js\": 18369,\n\t\"./ar-sa\": 32579,\n\t\"./ar-sa.js\": 32579,\n\t\"./ar-tn\": 76442,\n\t\"./ar-tn.js\": 76442,\n\t\"./ar.js\": 28093,\n\t\"./az\": 86425,\n\t\"./az.js\": 86425,\n\t\"./be\": 22004,\n\t\"./be.js\": 22004,\n\t\"./bg\": 42982,\n\t\"./bg.js\": 42982,\n\t\"./bm\": 21067,\n\t\"./bm.js\": 21067,\n\t\"./bn\": 8366,\n\t\"./bn-bd\": 63837,\n\t\"./bn-bd.js\": 63837,\n\t\"./bn.js\": 8366,\n\t\"./bo\": 95040,\n\t\"./bo.js\": 95040,\n\t\"./br\": 521,\n\t\"./br.js\": 521,\n\t\"./bs\": 83242,\n\t\"./bs.js\": 83242,\n\t\"./ca\": 73046,\n\t\"./ca.js\": 73046,\n\t\"./cs\": 25794,\n\t\"./cs.js\": 25794,\n\t\"./cv\": 28231,\n\t\"./cv.js\": 28231,\n\t\"./cy\": 10927,\n\t\"./cy.js\": 10927,\n\t\"./da\": 42832,\n\t\"./da.js\": 42832,\n\t\"./de\": 29415,\n\t\"./de-at\": 3331,\n\t\"./de-at.js\": 3331,\n\t\"./de-ch\": 45524,\n\t\"./de-ch.js\": 45524,\n\t\"./de.js\": 29415,\n\t\"./dv\": 44700,\n\t\"./dv.js\": 44700,\n\t\"./el\": 88752,\n\t\"./el.js\": 88752,\n\t\"./en-au\": 90444,\n\t\"./en-au.js\": 90444,\n\t\"./en-ca\": 65959,\n\t\"./en-ca.js\": 65959,\n\t\"./en-gb\": 62762,\n\t\"./en-gb.js\": 62762,\n\t\"./en-ie\": 40909,\n\t\"./en-ie.js\": 40909,\n\t\"./en-il\": 79909,\n\t\"./en-il.js\": 79909,\n\t\"./en-in\": 87942,\n\t\"./en-in.js\": 87942,\n\t\"./en-nz\": 75200,\n\t\"./en-nz.js\": 75200,\n\t\"./en-sg\": 21415,\n\t\"./en-sg.js\": 21415,\n\t\"./eo\": 27447,\n\t\"./eo.js\": 27447,\n\t\"./es\": 86756,\n\t\"./es-do\": 47049,\n\t\"./es-do.js\": 47049,\n\t\"./es-mx\": 15915,\n\t\"./es-mx.js\": 15915,\n\t\"./es-us\": 57133,\n\t\"./es-us.js\": 57133,\n\t\"./es.js\": 86756,\n\t\"./et\": 72182,\n\t\"./et.js\": 72182,\n\t\"./eu\": 14419,\n\t\"./eu.js\": 14419,\n\t\"./fa\": 2916,\n\t\"./fa.js\": 2916,\n\t\"./fi\": 49964,\n\t\"./fi.js\": 49964,\n\t\"./fil\": 16448,\n\t\"./fil.js\": 16448,\n\t\"./fo\": 26094,\n\t\"./fo.js\": 26094,\n\t\"./fr\": 35833,\n\t\"./fr-ca\": 56994,\n\t\"./fr-ca.js\": 56994,\n\t\"./fr-ch\": 2740,\n\t\"./fr-ch.js\": 2740,\n\t\"./fr.js\": 35833,\n\t\"./fy\": 69542,\n\t\"./fy.js\": 69542,\n\t\"./ga\": 93264,\n\t\"./ga.js\": 93264,\n\t\"./gd\": 77457,\n\t\"./gd.js\": 77457,\n\t\"./gl\": 83043,\n\t\"./gl.js\": 83043,\n\t\"./gom-deva\": 24034,\n\t\"./gom-deva.js\": 24034,\n\t\"./gom-latn\": 28379,\n\t\"./gom-latn.js\": 28379,\n\t\"./gu\": 406,\n\t\"./gu.js\": 406,\n\t\"./he\": 73219,\n\t\"./he.js\": 73219,\n\t\"./hi\": 99834,\n\t\"./hi.js\": 99834,\n\t\"./hr\": 28754,\n\t\"./hr.js\": 28754,\n\t\"./hu\": 93945,\n\t\"./hu.js\": 93945,\n\t\"./hy-am\": 81319,\n\t\"./hy-am.js\": 81319,\n\t\"./id\": 24875,\n\t\"./id.js\": 24875,\n\t\"./is\": 23724,\n\t\"./is.js\": 23724,\n\t\"./it\": 79906,\n\t\"./it-ch\": 34303,\n\t\"./it-ch.js\": 34303,\n\t\"./it.js\": 79906,\n\t\"./ja\": 77105,\n\t\"./ja.js\": 77105,\n\t\"./jv\": 15026,\n\t\"./jv.js\": 15026,\n\t\"./ka\": 67416,\n\t\"./ka.js\": 67416,\n\t\"./kk\": 79734,\n\t\"./kk.js\": 79734,\n\t\"./km\": 60757,\n\t\"./km.js\": 60757,\n\t\"./kn\": 58369,\n\t\"./kn.js\": 58369,\n\t\"./ko\": 77687,\n\t\"./ko.js\": 77687,\n\t\"./ku\": 95544,\n\t\"./ku.js\": 95544,\n\t\"./ky\": 85431,\n\t\"./ky.js\": 85431,\n\t\"./lb\": 13613,\n\t\"./lb.js\": 13613,\n\t\"./lo\": 34252,\n\t\"./lo.js\": 34252,\n\t\"./lt\": 84619,\n\t\"./lt.js\": 84619,\n\t\"./lv\": 93760,\n\t\"./lv.js\": 93760,\n\t\"./me\": 93393,\n\t\"./me.js\": 93393,\n\t\"./mi\": 12369,\n\t\"./mi.js\": 12369,\n\t\"./mk\": 48664,\n\t\"./mk.js\": 48664,\n\t\"./ml\": 23099,\n\t\"./ml.js\": 23099,\n\t\"./mn\": 98539,\n\t\"./mn.js\": 98539,\n\t\"./mr\": 778,\n\t\"./mr.js\": 778,\n\t\"./ms\": 39970,\n\t\"./ms-my\": 82625,\n\t\"./ms-my.js\": 82625,\n\t\"./ms.js\": 39970,\n\t\"./mt\": 15714,\n\t\"./mt.js\": 15714,\n\t\"./my\": 53055,\n\t\"./my.js\": 53055,\n\t\"./nb\": 73945,\n\t\"./nb.js\": 73945,\n\t\"./ne\": 63645,\n\t\"./ne.js\": 63645,\n\t\"./nl\": 4829,\n\t\"./nl-be\": 12823,\n\t\"./nl-be.js\": 12823,\n\t\"./nl.js\": 4829,\n\t\"./nn\": 23756,\n\t\"./nn.js\": 23756,\n\t\"./oc-lnc\": 41228,\n\t\"./oc-lnc.js\": 41228,\n\t\"./pa-in\": 97877,\n\t\"./pa-in.js\": 97877,\n\t\"./pl\": 53066,\n\t\"./pl.js\": 53066,\n\t\"./pt\": 28677,\n\t\"./pt-br\": 81592,\n\t\"./pt-br.js\": 81592,\n\t\"./pt.js\": 28677,\n\t\"./ro\": 32722,\n\t\"./ro.js\": 32722,\n\t\"./ru\": 59138,\n\t\"./ru.js\": 59138,\n\t\"./sd\": 32568,\n\t\"./sd.js\": 32568,\n\t\"./se\": 49753,\n\t\"./se.js\": 49753,\n\t\"./si\": 58024,\n\t\"./si.js\": 58024,\n\t\"./sk\": 31058,\n\t\"./sk.js\": 31058,\n\t\"./sl\": 43452,\n\t\"./sl.js\": 43452,\n\t\"./sq\": 2795,\n\t\"./sq.js\": 2795,\n\t\"./sr\": 26976,\n\t\"./sr-cyrl\": 38819,\n\t\"./sr-cyrl.js\": 38819,\n\t\"./sr.js\": 26976,\n\t\"./ss\": 7467,\n\t\"./ss.js\": 7467,\n\t\"./sv\": 42787,\n\t\"./sv.js\": 42787,\n\t\"./sw\": 80298,\n\t\"./sw.js\": 80298,\n\t\"./ta\": 57532,\n\t\"./ta.js\": 57532,\n\t\"./te\": 76076,\n\t\"./te.js\": 76076,\n\t\"./tet\": 40452,\n\t\"./tet.js\": 40452,\n\t\"./tg\": 64794,\n\t\"./tg.js\": 64794,\n\t\"./th\": 48245,\n\t\"./th.js\": 48245,\n\t\"./tk\": 8870,\n\t\"./tk.js\": 8870,\n\t\"./tl-ph\": 36056,\n\t\"./tl-ph.js\": 36056,\n\t\"./tlh\": 15249,\n\t\"./tlh.js\": 15249,\n\t\"./tr\": 22053,\n\t\"./tr.js\": 22053,\n\t\"./tzl\": 39871,\n\t\"./tzl.js\": 39871,\n\t\"./tzm\": 39574,\n\t\"./tzm-latn\": 19210,\n\t\"./tzm-latn.js\": 19210,\n\t\"./tzm.js\": 39574,\n\t\"./ug-cn\": 91532,\n\t\"./ug-cn.js\": 91532,\n\t\"./uk\": 11432,\n\t\"./uk.js\": 11432,\n\t\"./ur\": 88523,\n\t\"./ur.js\": 88523,\n\t\"./uz\": 54958,\n\t\"./uz-latn\": 68735,\n\t\"./uz-latn.js\": 68735,\n\t\"./uz.js\": 54958,\n\t\"./vi\": 83398,\n\t\"./vi.js\": 83398,\n\t\"./x-pseudo\": 56665,\n\t\"./x-pseudo.js\": 56665,\n\t\"./yo\": 11642,\n\t\"./yo.js\": 11642,\n\t\"./zh-cn\": 5462,\n\t\"./zh-cn.js\": 5462,\n\t\"./zh-hk\": 92530,\n\t\"./zh-hk.js\": 92530,\n\t\"./zh-mo\": 41650,\n\t\"./zh-mo.js\": 41650,\n\t\"./zh-tw\": 97333,\n\t\"./zh-tw.js\": 97333\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 93365;","/**\n * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('settings')\n\t.detectUser()\n\t.build()\n","/**\n * @copyright 2021 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport confirmPassword from '@nextcloud/password-confirmation'\n\n/**\n * Save the visibility of the profile parameter\n *\n * @param {string} paramId the profile parameter ID\n * @param {string} visibility the visibility\n * @return {object}\n */\nexport const saveProfileParameterVisibility = async (paramId, visibility) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('/profile/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tparamId,\n\t\tvisibility,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save profile default\n *\n * @param {boolean} isEnabled the default\n * @return {object}\n */\nexport const saveProfileDefault = async (isEnabled) => {\n\t// Convert to string for compatibility\n\tisEnabled = isEnabled ? '1' : '0'\n\n\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\tappId: 'settings',\n\t\tkey: 'profile_enabled_by_default',\n\t})\n\n\tawait confirmPassword()\n\n\tconst res = await axios.post(url, {\n\t\tvalue: isEnabled,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * SYNC to be kept in sync with `lib/public/Accounts/IAccountManager.php`\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/** Enum of account properties */\nexport const ACCOUNT_PROPERTY_ENUM = Object.freeze({\n\tADDRESS: 'address',\n\tAVATAR: 'avatar',\n\tBIOGRAPHY: 'biography',\n\tDISPLAYNAME: 'displayname',\n\tEMAIL_COLLECTION: 'additional_mail',\n\tEMAIL: 'email',\n\tHEADLINE: 'headline',\n\tNOTIFICATION_EMAIL: 'notify_email',\n\tORGANISATION: 'organisation',\n\tPHONE: 'phone',\n\tPROFILE_ENABLED: 'profile_enabled',\n\tROLE: 'role',\n\tTWITTER: 'twitter',\n\tWEBSITE: 'website',\n})\n\n/** Enum of account properties to human readable account property names */\nexport const ACCOUNT_PROPERTY_READABLE_ENUM = Object.freeze({\n\tADDRESS: t('settings', 'Address'),\n\tAVATAR: t('settings', 'Avatar'),\n\tBIOGRAPHY: t('settings', 'About'),\n\tDISPLAYNAME: t('settings', 'Full name'),\n\tEMAIL_COLLECTION: t('settings', 'Additional email'),\n\tEMAIL: t('settings', 'Email'),\n\tHEADLINE: t('settings', 'Headline'),\n\tORGANISATION: t('settings', 'Organisation'),\n\tPHONE: t('settings', 'Phone number'),\n\tPROFILE_ENABLED: t('settings', 'Profile'),\n\tROLE: t('settings', 'Role'),\n\tTWITTER: t('settings', 'Twitter'),\n\tWEBSITE: t('settings', 'Website'),\n})\n\n/** Enum of profile specific sections to human readable names */\nexport const PROFILE_READABLE_ENUM = Object.freeze({\n\tPROFILE_VISIBILITY: t('settings', 'Profile visibility'),\n})\n\n/** Enum of readable account properties to account property keys used by the server */\nexport const PROPERTY_READABLE_KEYS_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: ACCOUNT_PROPERTY_ENUM.ADDRESS,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: ACCOUNT_PROPERTY_ENUM.AVATAR,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: ACCOUNT_PROPERTY_ENUM.BIOGRAPHY,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: ACCOUNT_PROPERTY_ENUM.DISPLAYNAME,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: ACCOUNT_PROPERTY_ENUM.EMAIL,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: ACCOUNT_PROPERTY_ENUM.HEADLINE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: ACCOUNT_PROPERTY_ENUM.ORGANISATION,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: ACCOUNT_PROPERTY_ENUM.PHONE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: ACCOUNT_PROPERTY_ENUM.ROLE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: ACCOUNT_PROPERTY_ENUM.TWITTER,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: ACCOUNT_PROPERTY_ENUM.WEBSITE,\n})\n\n/**\n * Enum of account setting properties\n *\n * Account setting properties unlike account properties do not support scopes*\n */\nexport const ACCOUNT_SETTING_PROPERTY_ENUM = Object.freeze({\n\tLANGUAGE: 'language',\n})\n\n/** Enum of account setting properties to human readable setting properties */\nexport const ACCOUNT_SETTING_PROPERTY_READABLE_ENUM = Object.freeze({\n\tLANGUAGE: t('settings', 'Language'),\n})\n\n/** Enum of scopes */\nexport const SCOPE_ENUM = Object.freeze({\n\tPRIVATE: 'v2-private',\n\tLOCAL: 'v2-local',\n\tFEDERATED: 'v2-federated',\n\tPUBLISHED: 'v2-published',\n})\n\n/** Enum of readable account properties to supported scopes */\nexport const PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n})\n\n/** List of readable account properties which aren't published to the lookup server */\nexport const UNPUBLISHED_READABLE_PROPERTIES = Object.freeze([\n\tACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,\n\tACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,\n\tACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,\n\tACCOUNT_PROPERTY_READABLE_ENUM.ROLE,\n])\n\n/** Scope suffix */\nexport const SCOPE_SUFFIX = 'Scope'\n\n/**\n * Enum of scope names to properties\n *\n * Used for federation control*\n */\nexport const SCOPE_PROPERTY_ENUM = Object.freeze({\n\t[SCOPE_ENUM.PRIVATE]: {\n\t\tname: SCOPE_ENUM.PRIVATE,\n\t\tdisplayName: t('settings', 'Private'),\n\t\ttooltip: t('settings', 'Only visible to people matched via phone number integration through Talk on mobile'),\n\t\ttooltipDisabled: t('settings', 'Not available as this property is required for core functionality including file sharing and calendar invitations'),\n\t\ticonClass: 'icon-phone',\n\t},\n\t[SCOPE_ENUM.LOCAL]: {\n\t\tname: SCOPE_ENUM.LOCAL,\n\t\tdisplayName: t('settings', 'Local'),\n\t\ttooltip: t('settings', 'Only visible to people on this instance and guests'),\n\t\t// tooltipDisabled is not required here as this scope is supported by all account properties\n\t\ticonClass: 'icon-password',\n\t},\n\t[SCOPE_ENUM.FEDERATED]: {\n\t\tname: SCOPE_ENUM.FEDERATED,\n\t\tdisplayName: t('settings', 'Federated'),\n\t\ttooltip: t('settings', 'Only synchronize to trusted servers'),\n\t\ttooltipDisabled: t('settings', 'Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions'),\n\t\ticonClass: 'icon-contacts-dark',\n\t},\n\t[SCOPE_ENUM.PUBLISHED]: {\n\t\tname: SCOPE_ENUM.PUBLISHED,\n\t\tdisplayName: t('settings', 'Published'),\n\t\ttooltip: t('settings', 'Synchronize to trusted servers and the global and public address book'),\n\t\ttooltipDisabled: t('settings', 'Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions'),\n\t\ticonClass: 'icon-link',\n\t},\n})\n\n/** Default additional email scope */\nexport const DEFAULT_ADDITIONAL_EMAIL_SCOPE = SCOPE_ENUM.LOCAL\n\n/** Enum of verification constants, according to IAccountManager */\nexport const VERIFICATION_ENUM = Object.freeze({\n\tNOT_VERIFIED: 0,\n\tVERIFICATION_IN_PROGRESS: 1,\n\tVERIFIED: 2,\n})\n\n/**\n * Email validation regex\n *\n * Sourced from https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/regexp/ascii.ts*\n */\n// eslint-disable-next-line no-control-regex\nexport const VALIDATE_EMAIL_REGEX = /^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/i\n","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div id=\"profile-settings\"\n\t\tclass=\"section\">\n\t\t<h2 class=\"inlineblock\">\n\t\t\t{{ t('settings', 'Profile') }}\n\t\t</h2>\n\n\t\t<p class=\"settings-hint\">\n\t\t\t{{ t('settings', 'Enable or disable profile by default for new users.') }}\n\t\t</p>\n\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"initialProfileEnabledByDefault\"\n\t\t\t@update:checked=\"onProfileDefaultChange\">\n\t\t\t{{ t('settings', 'Enable') }}\n\t\t</CheckboxRadioSwitch>\n\t</div>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\n\nimport { saveProfileDefault } from '../../service/ProfileService'\nimport { validateBoolean } from '../../utils/validate'\n\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\n\nconst profileEnabledByDefault = loadState('settings', 'profileEnabledByDefault', true)\n\nexport default {\n\tname: 'ProfileSettings',\n\n\tcomponents: {\n\t\tCheckboxRadioSwitch,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialProfileEnabledByDefault: profileEnabledByDefault,\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasync onProfileDefaultChange(isEnabled) {\n\t\t\tif (validateBoolean(isEnabled)) {\n\t\t\t\tawait this.updateProfileDefault(isEnabled)\n\t\t\t}\n\t\t},\n\n\t\tasync updateProfileDefault(isEnabled) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await saveProfileDefault(isEnabled)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tisEnabled,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update profile default setting'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ isEnabled, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialProfileEnabledByDefault = isEnabled\n\t\t\t} else {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tthis.logger.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSettings.vue?vue&type=script&lang=js&\"","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * Frontend validators, less strict than backend validators\n *\n * TODO add nice validation errors for Profile page settings modal\n */\n\nimport { VALIDATE_EMAIL_REGEX } from '../constants/AccountPropertyConstants'\n\n/**\n * Validate the string input\n *\n * Generic validator just to check that input is not an empty string*\n *\n * @param {string} input the input\n * @return {boolean}\n */\nexport function validateStringInput(input) {\n\treturn input !== ''\n}\n\n/**\n * Validate the email input\n *\n * Compliant with PHP core FILTER_VALIDATE_EMAIL validator*\n *\n * Reference implementation https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/index.ts*\n *\n * @param {string} input the input\n * @return {boolean}\n */\nexport function validateEmail(input) {\n\treturn typeof input === 'string'\n\t\t&& VALIDATE_EMAIL_REGEX.test(input)\n\t\t&& input.slice(-1) !== '\\n'\n\t\t&& input.length <= 320\n\t\t&& encodeURIComponent(input).replace(/%../g, 'x').length <= 320\n}\n\n/**\n * Validate the language input\n *\n * @param {object} input the input\n * @return {boolean}\n */\nexport function validateLanguage(input) {\n\treturn input.code !== ''\n\t\t&& input.name !== ''\n\t\t&& input.name !== undefined\n}\n\n/**\n * Validate boolean input\n *\n * @param {boolean} input the input\n * @return {boolean}\n */\nexport function validateBoolean(input) {\n\treturn typeof input === 'boolean'\n}\n","import { render, staticRenderFns } from \"./ProfileSettings.vue?vue&type=template&id=414249e6&scoped=true&\"\nimport script from \"./ProfileSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"414249e6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section\",attrs:{\"id\":\"profile-settings\"}},[_c('h2',{staticClass:\"inlineblock\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Profile'))+\"\\n\\t\")]),_vm._v(\" \"),_c('p',{staticClass:\"settings-hint\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Enable or disable profile by default for new users.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.initialProfileEnabledByDefault},on:{\"update:checked\":[function($event){_vm.initialProfileEnabledByDefault=$event},_vm.onProfileDefaultChange]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Enable'))+\"\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @author Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<SettingsSection :title=\"t('settings', 'Background jobs')\"\n\t\t:description=\"t('settings', `For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information.`)\"\n\t\t:doc-url=\"backgroundJobsDocUrl\">\n\t\t<template v-if=\"lastCron !== 0\">\n\t\t\t<span v-if=\"oldExecution\" class=\"error\">\n\t\t\t\t{{ t('settings', 'Last job execution ran {time}. Something seems wrong.', {time: relativeTime}) }}\n\t\t\t</span>\n\n\t\t\t<span v-else-if=\"longExecutionNotCron\" class=\"warning\">\n\t\t\t\t{{ t('settings', \"Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider increasing the execution frequency.\", {maxAgeRelativeTime}) }}\n\t\t\t</span>\n\n\t\t\t<span v-else-if=\"longExecutionCron\" class=\"warning\">\n\t\t\t\t{{ t('settings', \"Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider switching to system cron.\", {maxAgeRelativeTime}) }}\n\t\t\t</span>\n\n\t\t\t<span v-else>\n\t\t\t\t{{ t('settings', 'Last job ran {relativeTime}.', {relativeTime}) }}\n\t\t\t</span>\n\t\t</template>\n\n\t\t<span v-else class=\"error\">\n\t\t\t{{ t('settings', 'Background job didn’t run yet!') }}\n\t\t</span>\n\n\t\t<CheckboxRadioSwitch type=\"radio\"\n\t\t\t:checked.sync=\"backgroundJobsMode\"\n\t\t\tname=\"backgroundJobsMode\"\n\t\t\tvalue=\"ajax\"\n\t\t\tclass=\"ajaxSwitch\"\n\t\t\t@update:checked=\"onBackgroundJobModeChanged\">\n\t\t\t{{ t('settings', 'AJAX') }}\n\t\t</CheckboxRadioSwitch>\n\t\t<em>{{ t('settings', 'Execute one task with each page loaded. Use case: Single user instance.') }}</em>\n\n\t\t<CheckboxRadioSwitch type=\"radio\"\n\t\t\t:checked.sync=\"backgroundJobsMode\"\n\t\t\tname=\"backgroundJobsMode\"\n\t\t\tvalue=\"webcron\"\n\t\t\t@update:checked=\"onBackgroundJobModeChanged\">\n\t\t\t{{ t('settings', 'Webcron') }}\n\t\t</CheckboxRadioSwitch>\n\t\t<em>{{ t('settings', 'cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage).') }}</em>\n\n\t\t<CheckboxRadioSwitch v-if=\"cliBasedCronPossible\"\n\t\t\ttype=\"radio\"\n\t\t\t:checked.sync=\"backgroundJobsMode\"\n\t\t\tvalue=\"cron\"\n\t\t\tname=\"backgroundJobsMode\"\n\t\t\t@update:checked=\"onBackgroundJobModeChanged\">\n\t\t\t{{ t('settings', 'Cron (Recommended)') }}\n\t\t</CheckboxRadioSwitch>\n\t\t<em v-if=\"cliBasedCronPossible\">{{ cronLabel }}</em>\n\t\t<em v-else>\n\t\t\t{{ t('settings', 'To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details.', {\n\t\t\t\tlinkstart: '<a href=\"https://www.php.net/manual/en/book.posix.php\">',\n\t\t\t\tlinkend: '</a>',\n\t\t\t}) }}\n\t\t</em>\n\t</SettingsSection>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\nimport SettingsSection from '@nextcloud/vue/dist/Components/SettingsSection'\nimport moment from '@nextcloud/moment'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport confirmPassword from '@nextcloud/password-confirmation'\n\nconst lastCron = loadState('settings', 'lastCron')\nconst cronMaxAge = loadState('settings', 'cronMaxAge', '')\nconst backgroundJobsMode = loadState('settings', 'backgroundJobsMode', 'cron')\nconst cliBasedCronPossible = loadState('settings', 'cliBasedCronPossible', true)\nconst cliBasedCronUser = loadState('settings', 'cliBasedCronUser', 'www-data')\nconst backgroundJobsDocUrl = loadState('settings', 'backgroundJobsDocUrl')\n\nexport default {\n\tname: 'BackgroundJob',\n\n\tcomponents: {\n\t\tCheckboxRadioSwitch,\n\t\tSettingsSection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlastCron,\n\t\t\tcronMaxAge,\n\t\t\tbackgroundJobsMode,\n\t\t\tcliBasedCronPossible,\n\t\t\tcliBasedCronUser,\n\t\t\tbackgroundJobsDocUrl,\n\t\t\trelativeTime: moment(lastCron * 1000).fromNow(),\n\t\t\tmaxAgeRelativeTime: moment(cronMaxAge * 1000).fromNow(),\n\t\t}\n\t},\n\tcomputed: {\n\t\tcronLabel() {\n\t\t\tlet desc = t('settings', 'Use system cron service to call the cron.php file every 5 minutes. Recommended for all instances.')\n\t\t\tif (this.cliBasedCronPossible) {\n\t\t\t\tdesc += ' ' + t('settings', 'The cron.php needs to be executed by the system user \"{user}\".', { user: this.cliBasedCronUser })\n\t\t\t}\n\t\t\treturn desc\n\t\t},\n\t\toldExecution() {\n\t\t\treturn Date.now() / 1000 - this.lastCron > 600\n\t\t},\n\t\tlongExecutionNotCron() {\n\t\t\treturn Date.now() / 1000 - this.cronMaxAge > 12 * 3600 && this.backgroundJobsMode !== 'cron'\n\t\t},\n\t\tlongExecutionCron() {\n\t\t\treturn Date.now() / 1000 - this.cronMaxAge > 12 * 3600 && this.backgroundJobsMode === 'cron'\n\t\t},\n\t},\n\tmethods: {\n\t\tasync onBackgroundJobModeChanged(backgroundJobsMode) {\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'core',\n\t\t\t\tkey: 'backgroundjobs_mode',\n\t\t\t})\n\n\t\t\tawait confirmPassword()\n\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(url, {\n\t\t\t\t\tvalue: backgroundJobsMode,\n\t\t\t\t})\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tstatus: data.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update background job mode'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tasync handleResponse({ status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tawait this.deleteError()\n\t\t\t} else {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tconsole.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t\tasync deleteError() {\n\t\t\t// clear cron errors on background job mode change\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'core',\n\t\t\t\tkey: 'cronErrors',\n\t\t\t})\n\n\t\t\tawait confirmPassword()\n\n\t\t\ttry {\n\t\t\t\tawait axios.delete(url)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.error {\n\tmargin-top: 8px;\n\tpadding: 5px;\n\tborder-radius: var(--border-radius);\n\tcolor: var(--color-primary-text);\n\tbackground-color: var(--color-error);\n\twidth: initial;\n}\n.warning {\n\tmargin-top: 8px;\n\tpadding: 5px;\n\tborder-radius: var(--border-radius);\n\tcolor: var(--color-primary-text);\n\tbackground-color: var(--color-warning);\n\twidth: initial;\n}\n.ajaxSwitch {\n\tmargin-top: 1rem;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundJob.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundJob.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundJob.vue?vue&type=style&index=0&id=b877239e&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundJob.vue?vue&type=style&index=0&id=b877239e&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BackgroundJob.vue?vue&type=template&id=b877239e&scoped=true&\"\nimport script from \"./BackgroundJob.vue?vue&type=script&lang=js&\"\nexport * from \"./BackgroundJob.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BackgroundJob.vue?vue&type=style&index=0&id=b877239e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b877239e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('SettingsSection',{attrs:{\"title\":_vm.t('settings', 'Background jobs'),\"description\":_vm.t('settings', \"For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information.\"),\"doc-url\":_vm.backgroundJobsDocUrl}},[(_vm.lastCron !== 0)?[(_vm.oldExecution)?_c('span',{staticClass:\"error\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Last job execution ran {time}. Something seems wrong.', {time: _vm.relativeTime}))+\"\\n\\t\\t\")]):(_vm.longExecutionNotCron)?_c('span',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', \"Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider increasing the execution frequency.\", {maxAgeRelativeTime: _vm.maxAgeRelativeTime}))+\"\\n\\t\\t\")]):(_vm.longExecutionCron)?_c('span',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', \"Some jobs haven’t been executed since {maxAgeRelativeTime}. Please consider switching to system cron.\", {maxAgeRelativeTime: _vm.maxAgeRelativeTime}))+\"\\n\\t\\t\")]):_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Last job ran {relativeTime}.', {relativeTime: _vm.relativeTime}))+\"\\n\\t\\t\")])]:_c('span',{staticClass:\"error\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Background job didn’t run yet!'))+\"\\n\\t\")]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{staticClass:\"ajaxSwitch\",attrs:{\"type\":\"radio\",\"checked\":_vm.backgroundJobsMode,\"name\":\"backgroundJobsMode\",\"value\":\"ajax\"},on:{\"update:checked\":[function($event){_vm.backgroundJobsMode=$event},_vm.onBackgroundJobModeChanged]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'AJAX'))+\"\\n\\t\")]),_vm._v(\" \"),_c('em',[_vm._v(_vm._s(_vm.t('settings', 'Execute one task with each page loaded. Use case: Single user instance.')))]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"checked\":_vm.backgroundJobsMode,\"name\":\"backgroundJobsMode\",\"value\":\"webcron\"},on:{\"update:checked\":[function($event){_vm.backgroundJobsMode=$event},_vm.onBackgroundJobModeChanged]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Webcron'))+\"\\n\\t\")]),_vm._v(\" \"),_c('em',[_vm._v(_vm._s(_vm.t('settings', 'cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage).')))]),_vm._v(\" \"),(_vm.cliBasedCronPossible)?_c('CheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"checked\":_vm.backgroundJobsMode,\"value\":\"cron\",\"name\":\"backgroundJobsMode\"},on:{\"update:checked\":[function($event){_vm.backgroundJobsMode=$event},_vm.onBackgroundJobModeChanged]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Cron (Recommended)'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.cliBasedCronPossible)?_c('em',[_vm._v(_vm._s(_vm.cronLabel))]):_c('em',[_vm._v(\"\\n\\t\\t{{ t('settings', 'To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details.', {\\n\\t\\t\\tlinkstart: '\"),_c('a',{attrs:{\"href\":\"https://www.php.net/manual/en/book.posix.php\"}},[_vm._v(\"',\\n\\t\\t\\tlinkend: '\")]),_vm._v(\"',\\n\\t\\t}) }}\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport '@nextcloud/dialogs/styles/toast.scss'\n\nimport logger from './logger'\n\nimport ProfileSettings from './components/BasicSettings/ProfileSettings'\nimport BackgroundJob from './components/BasicSettings/BackgroundJob'\n\n__webpack_nonce__ = btoa(getRequestToken())\n\nconst profileEnabledGlobally = loadState('settings', 'profileEnabledGlobally', true)\n\nVue.mixin({\n\tprops: {\n\t\tlogger,\n\t},\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst BackgroundJobView = Vue.extend(BackgroundJob)\nnew BackgroundJobView().$mount('#vue-admin-background-job')\n\nif (profileEnabledGlobally) {\n\tconst ProfileSettingsView = Vue.extend(ProfileSettings)\n\tnew ProfileSettingsView().$mount('#vue-admin-profile-settings')\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".error[data-v-b877239e]{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-primary-text);background-color:var(--color-error);width:initial}.warning[data-v-b877239e]{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-primary-text);background-color:var(--color-warning);width:initial}.ajaxSwitch[data-v-b877239e]{margin-top:1rem}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/BasicSettings/BackgroundJob.vue\"],\"names\":[],\"mappings\":\"AA+LA,wBACC,cAAA,CACA,WAAA,CACA,kCAAA,CACA,+BAAA,CACA,mCAAA,CACA,aAAA,CAED,0BACC,cAAA,CACA,WAAA,CACA,kCAAA,CACA,+BAAA,CACA,qCAAA,CACA,aAAA,CAED,6BACC,eAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.error {\\n\\tmargin-top: 8px;\\n\\tpadding: 5px;\\n\\tborder-radius: var(--border-radius);\\n\\tcolor: var(--color-primary-text);\\n\\tbackground-color: var(--color-error);\\n\\twidth: initial;\\n}\\n.warning {\\n\\tmargin-top: 8px;\\n\\tpadding: 5px;\\n\\tborder-radius: var(--border-radius);\\n\\tcolor: var(--color-primary-text);\\n\\tbackground-color: var(--color-warning);\\n\\twidth: initial;\\n}\\n.ajaxSwitch {\\n\\tmargin-top: 1rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 6192;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t6192: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(76100); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","getLoggerBuilder","setApp","detectUser","build","saveProfileDefault","isEnabled","url","generateOcsUrl","appId","key","confirmPassword","axios","value","res","data","ACCOUNT_PROPERTY_ENUM","freeze","ADDRESS","AVATAR","BIOGRAPHY","DISPLAYNAME","EMAIL_COLLECTION","EMAIL","HEADLINE","NOTIFICATION_EMAIL","ORGANISATION","PHONE","PROFILE_ENABLED","ROLE","TWITTER","WEBSITE","ACCOUNT_PROPERTY_READABLE_ENUM","t","SCOPE_ENUM","PROFILE_VISIBILITY","LANGUAGE","PRIVATE","LOCAL","FEDERATED","PUBLISHED","name","displayName","tooltip","tooltipDisabled","iconClass","NOT_VERIFIED","VERIFICATION_IN_PROGRESS","VERIFIED","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","_s","initialProfileEnabledByDefault","on","$event","onProfileDefaultChange","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","backgroundJobsDocUrl","lastCron","time","relativeTime","maxAgeRelativeTime","backgroundJobsMode","onBackgroundJobModeChanged","_e","cronLabel","__webpack_nonce__","btoa","getRequestToken","profileEnabledGlobally","loadState","Vue","props","logger","methods","BackgroundJob","$mount","ProfileSettings","___CSS_LOADER_EXPORT___","push","__webpack_module_cache__","moduleId","cachedModule","undefined","loaded","__webpack_modules__","call","m","amdD","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/sharebymail-vue-settings-admin-sharebymail.js b/dist/sharebymail-vue-settings-admin-sharebymail.js index 5bfa38aee58..f22686cac12 100644 --- a/dist/sharebymail-vue-settings-admin-sharebymail.js +++ b/dist/sharebymail-vue-settings-admin-sharebymail.js @@ -1,3 +1,3 @@ /*! For license information please see sharebymail-vue-settings-admin-sharebymail.js.LICENSE.txt */ -!function(){"use strict";var e,n={92328:function(e,n,r){var o=r(20144),a=r(22200),i=r(9944),s=(r(73317),r(7826)),u=r.n(s),c=r(67776),l=r.n(c),d=r(16453),f=r(26932),p=r(4820),h=r(79753),v=r(10128),m=r.n(v);function y(e,t,n,r,o,a,i){try{var s=e[a](i),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,o)}function b(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){y(a,r,o,i,s,"next",e)}function s(e){y(a,r,o,i,s,"throw",e)}i(void 0)}))}}var w={name:"AdminSettings",components:{CheckboxRadioSwitch:u(),SettingsSection:l()},data:function(){return{sendPasswordMail:(0,d.loadState)("sharebymail","sendPasswordMail"),replyToInitiator:(0,d.loadState)("sharebymail","replyToInitiator")}},methods:{update:function(e,n){var r=this;return b(regeneratorRuntime.mark((function o(){var a,i,s,u,c,l;return regeneratorRuntime.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,m()();case 2:return a=(0,h.generateOcsUrl)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"sharebymail",key:e}),i=n?"yes":"no",o.prev=4,o.next=7,p.default.post(a,{value:i});case 7:c=o.sent,l=c.data,r.handleResponse({status:null===(s=l.ocs)||void 0===s||null===(u=s.meta)||void 0===u?void 0:u.status}),o.next=15;break;case 12:o.prev=12,o.t0=o.catch(4),r.handleResponse({errorMessage:t("sharebymail","Unable to update share by mail config"),error:o.t0});case 15:case"end":return o.stop()}}),o,null,[[4,12]])})))()},handleResponse:function(e){return b(regeneratorRuntime.mark((function t(){var n,r,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.status,r=e.errorMessage,o=e.error,"ok"!==n&&((0,f.x2)(r),console.error(r,o));case 2:case"end":return t.stop()}}),t)})))()}}},g=(0,r(51900).Z)(w,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SettingsSection",{attrs:{title:e.t("sharebymail","Share by mail"),description:e.t("sharebymail","Allows users to share a personalized link to a file or folder by putting in an email address.")}},[n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.sendPasswordMail},on:{"update:checked":[function(t){e.sendPasswordMail=t},function(t){return e.update("sendpasswordmail",e.sendPasswordMail)}]}},[e._v("\n\t\t"+e._s(e.t("sharebymail","Send password by mail"))+"\n\t")]),e._v(" "),n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.replyToInitiator},on:{"update:checked":[function(t){e.replyToInitiator=t},function(t){return e.update("replyToInitiator",e.replyToInitiator)}]}},[e._v("\n\t\t"+e._s(e.t("sharebymail","Reply to initiator"))+"\n\t")])],1)}),[],!1,null,null,null).exports;r.nc=btoa((0,a.getRequestToken)()),o.default.mixin({methods:{t:i.translate}}),(new(o.default.extend(g))).$mount("#vue-admin-sharebymail")}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(a.exports,a,a.exports,o),a.loaded=!0,a.exports}o.m=n,o.amdD=function(){throw new Error("define cannot be used indirect")},o.amdO={},e=[],o.O=function(t,n,r,a){if(!n){var i=1/0;for(l=0;l<e.length;l++){n=e[l][0],r=e[l][1],a=e[l][2];for(var s=!0,u=0;u<n.length;u++)(!1&a||i>=a)&&Object.keys(o.O).every((function(e){return o.O[e](n[u])}))?n.splice(u--,1):(s=!1,a<i&&(i=a));if(s){e.splice(l--,1);var c=r();void 0!==c&&(t=c)}}return t}a=a||0;for(var l=e.length;l>0&&e[l-1][2]>a;l--)e[l]=e[l-1];e[l]=[n,r,a]},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},o.j=3173,function(){o.b=document.baseURI||self.location.href;var e={3173:0};o.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,a,i=n[0],s=n[1],u=n[2],c=0;if(i.some((function(t){return 0!==e[t]}))){for(r in s)o.o(s,r)&&(o.m[r]=s[r]);if(u)var l=u(o)}for(t&&t(n);c<i.length;c++)a=i[c],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return o.O(l)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var a=o.O(void 0,[7874],(function(){return o(92328)}));a=o.O(a)}(); -//# sourceMappingURL=sharebymail-vue-settings-admin-sharebymail.js.map?v=ce2293be73e039f5d908
\ No newline at end of file +!function(){"use strict";var e,n={23653:function(e,n,r){var o=r(20144),a=r(22200),i=r(9944),s=(r(73317),r(7826)),u=r.n(s),c=r(67776),l=r.n(c),d=r(16453),f=r(26932),p=r(4820),h=r(79753),v=r(10128),m=r.n(v);function y(e,t,n,r,o,a,i){try{var s=e[a](i),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,o)}function b(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){y(a,r,o,i,s,"next",e)}function s(e){y(a,r,o,i,s,"throw",e)}i(void 0)}))}}var w={name:"AdminSettings",components:{CheckboxRadioSwitch:u(),SettingsSection:l()},data:function(){return{sendPasswordMail:(0,d.loadState)("sharebymail","sendPasswordMail"),replyToInitiator:(0,d.loadState)("sharebymail","replyToInitiator")}},methods:{update:function(e,n){var r=this;return b(regeneratorRuntime.mark((function o(){var a,i,s,u,c,l;return regeneratorRuntime.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,m()();case 2:return a=(0,h.generateOcsUrl)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"sharebymail",key:e}),i=n?"yes":"no",o.prev=4,o.next=7,p.default.post(a,{value:i});case 7:c=o.sent,l=c.data,r.handleResponse({status:null===(s=l.ocs)||void 0===s||null===(u=s.meta)||void 0===u?void 0:u.status}),o.next=15;break;case 12:o.prev=12,o.t0=o.catch(4),r.handleResponse({errorMessage:t("sharebymail","Unable to update share by mail config"),error:o.t0});case 15:case"end":return o.stop()}}),o,null,[[4,12]])})))()},handleResponse:function(e){return b(regeneratorRuntime.mark((function t(){var n,r,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.status,r=e.errorMessage,o=e.error,"ok"!==n&&((0,f.x2)(r),console.error(r,o));case 2:case"end":return t.stop()}}),t)})))()}}},g=(0,r(51900).Z)(w,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("SettingsSection",{attrs:{title:e.t("sharebymail","Share by mail"),description:e.t("sharebymail","Allows users to share a personalized link to a file or folder by putting in an email address.")}},[n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.sendPasswordMail},on:{"update:checked":[function(t){e.sendPasswordMail=t},function(t){return e.update("sendpasswordmail",e.sendPasswordMail)}]}},[e._v("\n\t\t"+e._s(e.t("sharebymail","Send password by mail"))+"\n\t")]),e._v(" "),n("CheckboxRadioSwitch",{attrs:{type:"switch",checked:e.replyToInitiator},on:{"update:checked":[function(t){e.replyToInitiator=t},function(t){return e.update("replyToInitiator",e.replyToInitiator)}]}},[e._v("\n\t\t"+e._s(e.t("sharebymail","Reply to initiator"))+"\n\t")])],1)}),[],!1,null,null,null).exports;r.nc=btoa((0,a.getRequestToken)()),o.default.mixin({methods:{t:i.translate}}),(new(o.default.extend(g))).$mount("#vue-admin-sharebymail")}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(a.exports,a,a.exports,o),a.loaded=!0,a.exports}o.m=n,o.amdD=function(){throw new Error("define cannot be used indirect")},o.amdO={},e=[],o.O=function(t,n,r,a){if(!n){var i=1/0;for(l=0;l<e.length;l++){n=e[l][0],r=e[l][1],a=e[l][2];for(var s=!0,u=0;u<n.length;u++)(!1&a||i>=a)&&Object.keys(o.O).every((function(e){return o.O[e](n[u])}))?n.splice(u--,1):(s=!1,a<i&&(i=a));if(s){e.splice(l--,1);var c=r();void 0!==c&&(t=c)}}return t}a=a||0;for(var l=e.length;l>0&&e[l-1][2]>a;l--)e[l]=e[l-1];e[l]=[n,r,a]},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},o.j=3173,function(){o.b=document.baseURI||self.location.href;var e={3173:0};o.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,a,i=n[0],s=n[1],u=n[2],c=0;if(i.some((function(t){return 0!==e[t]}))){for(r in s)o.o(s,r)&&(o.m[r]=s[r]);if(u)var l=u(o)}for(t&&t(n);c<i.length;c++)a=i[c],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return o.O(l)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var a=o.O(void 0,[7874],(function(){return o(23653)}));a=o.O(a)}(); +//# sourceMappingURL=sharebymail-vue-settings-admin-sharebymail.js.map?v=b744b09a06a265516a3b
\ No newline at end of file diff --git a/dist/sharebymail-vue-settings-admin-sharebymail.js.map b/dist/sharebymail-vue-settings-admin-sharebymail.js.map index 5acd3eee387..5c3048474ef 100644 --- a/dist/sharebymail-vue-settings-admin-sharebymail.js.map +++ b/dist/sharebymail-vue-settings-admin-sharebymail.js.map @@ -1 +1 @@ -{"version":3,"file":"sharebymail-vue-settings-admin-sharebymail.js?v=ce2293be73e039f5d908","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/sharebymail/src/components/AdminSettings.vue","webpack:///nextcloud/apps/sharebymail/src/components/AdminSettings.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/sharebymail/src/components/AdminSettings.vue?493c","webpack:///nextcloud/apps/sharebymail/src/components/AdminSettings.vue?vue&type=template&id=4935dc42&","webpack:///nextcloud/apps/sharebymail/src/main-admin.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","<!--\n\t- @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @author Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<SettingsSection :title=\"t('sharebymail', 'Share by mail')\"\n\t\t:description=\"t('sharebymail', 'Allows users to share a personalized link to a file or folder by putting in an email address.')\">\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"sendPasswordMail\"\n\t\t\t@update:checked=\"update('sendpasswordmail', sendPasswordMail)\">\n\t\t\t{{ t('sharebymail', 'Send password by mail') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"replyToInitiator\"\n\t\t\t@update:checked=\"update('replyToInitiator', replyToInitiator)\">\n\t\t\t{{ t('sharebymail', 'Reply to initiator') }}\n\t\t</CheckboxRadioSwitch>\n\t</SettingsSection>\n</template>\n\n<script>\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\nimport SettingsSection from '@nextcloud/vue/dist/Components/SettingsSection'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport confirmPassword from '@nextcloud/password-confirmation'\n\nexport default {\n\tname: 'AdminSettings',\n\tcomponents: {\n\t\tCheckboxRadioSwitch,\n\t\tSettingsSection,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsendPasswordMail: loadState('sharebymail', 'sendPasswordMail'),\n\t\t\treplyToInitiator: loadState('sharebymail', 'replyToInitiator'),\n\t\t}\n\t},\n\tmethods: {\n\t\tasync update(key, value) {\n\t\t\tawait confirmPassword()\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'sharebymail',\n\t\t\t\tkey,\n\t\t\t})\n\t\t\tconst stringValue = value ? 'yes' : 'no'\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(url, {\n\t\t\t\t\tvalue: stringValue,\n\t\t\t\t})\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tstatus: data.ocs?.meta?.status\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('sharebymail', 'Unable to update share by mail config'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tasync handleResponse({ status, errorMessage, error }) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tconsole.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t}\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdminSettings.vue?vue&type=template&id=4935dc42&\"\nimport script from \"./AdminSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./AdminSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('SettingsSection',{attrs:{\"title\":_vm.t('sharebymail', 'Share by mail'),\"description\":_vm.t('sharebymail', 'Allows users to share a personalized link to a file or folder by putting in an email address.')}},[_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.sendPasswordMail},on:{\"update:checked\":[function($event){_vm.sendPasswordMail=$event},function($event){return _vm.update('sendpasswordmail', _vm.sendPasswordMail)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('sharebymail', 'Send password by mail'))+\"\\n\\t\")]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.replyToInitiator},on:{\"update:checked\":[function($event){_vm.replyToInitiator=$event},function($event){return _vm.update('replyToInitiator', _vm.replyToInitiator)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('sharebymail', 'Reply to initiator'))+\"\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n *\n * @author Carl Schwan <carl@carlschwan.eu>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { translate as t } from '@nextcloud/l10n'\nimport '@nextcloud/dialogs/styles/toast.scss'\n\nimport AdminSettings from './components/AdminSettings'\n\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst AdminSettingsView = Vue.extend(AdminSettings)\nnew AdminSettingsView().$mount('#vue-admin-sharebymail')\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 3173;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3173: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(92328); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","_vm","this","_h","$createElement","_c","_self","attrs","t","sendPasswordMail","on","$event","update","_v","_s","replyToInitiator","__webpack_nonce__","btoa","getRequestToken","Vue","methods","AdminSettings","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","push","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"sharebymail-vue-settings-admin-sharebymail.js?v=b744b09a06a265516a3b","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/sharebymail/src/components/AdminSettings.vue","webpack:///nextcloud/apps/sharebymail/src/components/AdminSettings.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/sharebymail/src/components/AdminSettings.vue?493c","webpack:///nextcloud/apps/sharebymail/src/components/AdminSettings.vue?vue&type=template&id=741c4380&","webpack:///nextcloud/apps/sharebymail/src/main-admin.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","<!--\n\t- @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @author Carl Schwan <carl@carlschwan.eu>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<SettingsSection :title=\"t('sharebymail', 'Share by mail')\"\n\t\t:description=\"t('sharebymail', 'Allows users to share a personalized link to a file or folder by putting in an email address.')\">\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"sendPasswordMail\"\n\t\t\t@update:checked=\"update('sendpasswordmail', sendPasswordMail)\">\n\t\t\t{{ t('sharebymail', 'Send password by mail') }}\n\t\t</CheckboxRadioSwitch>\n\n\t\t<CheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"replyToInitiator\"\n\t\t\t@update:checked=\"update('replyToInitiator', replyToInitiator)\">\n\t\t\t{{ t('sharebymail', 'Reply to initiator') }}\n\t\t</CheckboxRadioSwitch>\n\t</SettingsSection>\n</template>\n\n<script>\nimport CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/CheckboxRadioSwitch'\nimport SettingsSection from '@nextcloud/vue/dist/Components/SettingsSection'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport confirmPassword from '@nextcloud/password-confirmation'\n\nexport default {\n\tname: 'AdminSettings',\n\tcomponents: {\n\t\tCheckboxRadioSwitch,\n\t\tSettingsSection,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsendPasswordMail: loadState('sharebymail', 'sendPasswordMail'),\n\t\t\treplyToInitiator: loadState('sharebymail', 'replyToInitiator'),\n\t\t}\n\t},\n\tmethods: {\n\t\tasync update(key, value) {\n\t\t\tawait confirmPassword()\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'sharebymail',\n\t\t\t\tkey,\n\t\t\t})\n\t\t\tconst stringValue = value ? 'yes' : 'no'\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(url, {\n\t\t\t\t\tvalue: stringValue,\n\t\t\t\t})\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tstatus: data.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('sharebymail', 'Unable to update share by mail config'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tasync handleResponse({ status, errorMessage, error }) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tconsole.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdminSettings.vue?vue&type=template&id=741c4380&\"\nimport script from \"./AdminSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./AdminSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('SettingsSection',{attrs:{\"title\":_vm.t('sharebymail', 'Share by mail'),\"description\":_vm.t('sharebymail', 'Allows users to share a personalized link to a file or folder by putting in an email address.')}},[_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.sendPasswordMail},on:{\"update:checked\":[function($event){_vm.sendPasswordMail=$event},function($event){return _vm.update('sendpasswordmail', _vm.sendPasswordMail)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('sharebymail', 'Send password by mail'))+\"\\n\\t\")]),_vm._v(\" \"),_c('CheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.replyToInitiator},on:{\"update:checked\":[function($event){_vm.replyToInitiator=$event},function($event){return _vm.update('replyToInitiator', _vm.replyToInitiator)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('sharebymail', 'Reply to initiator'))+\"\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Carl Schwan <carl@carlschwan.eu>\n *\n * @author Carl Schwan <carl@carlschwan.eu>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { translate as t } from '@nextcloud/l10n'\nimport '@nextcloud/dialogs/styles/toast.scss'\n\nimport AdminSettings from './components/AdminSettings'\n\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst AdminSettingsView = Vue.extend(AdminSettings)\nnew AdminSettingsView().$mount('#vue-admin-sharebymail')\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 3173;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3173: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(23653); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","_vm","this","_h","$createElement","_c","_self","attrs","t","sendPasswordMail","on","$event","update","_v","_s","replyToInitiator","__webpack_nonce__","btoa","getRequestToken","Vue","methods","AdminSettings","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","push","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/systemtags-systemtags.js.map b/dist/systemtags-systemtags.js.map index 95386570a55..752aa7b9b83 100644 --- a/dist/systemtags-systemtags.js.map +++ b/dist/systemtags-systemtags.js.map @@ -1 +1 @@ -{"version":3,"file":"systemtags-systemtags.js?v=09c136c6d5f75e5b73dc","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/systemtags/src/app.js","webpack:///nextcloud/apps/systemtags/src/filesplugin.js","webpack://nextcloud/./apps/systemtags/src/css/systemtagsfilelist.scss?3cf4","webpack:///nextcloud/apps/systemtags/src/systemtags.js","webpack:///nextcloud/apps/systemtags/src/systemtagsfilelist.js","webpack:///nextcloud/apps/systemtags/src/systemtagsinfoview.js","webpack:///nextcloud/apps/systemtags/src/css/systemtagsfilelist.scss","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\n * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author Daniel Calviño Sánchez <danxuliu@gmail.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Vincent Petry <vincent@nextcloud.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\tif (!OCA.SystemTags) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.SystemTags = {}\n\t}\n\n\tOCA.SystemTags.App = {\n\n\t\tinitFileList($el) {\n\t\t\tif (this._fileList) {\n\t\t\t\treturn this._fileList\n\t\t\t}\n\n\t\t\tconst tagsParam = (new URL(window.location.href)).searchParams.get('tags')\n\t\t\tconst initialTags = tagsParam ? tagsParam.split(',').map(parseInt) : []\n\n\t\t\tthis._fileList = new OCA.SystemTags.FileList(\n\t\t\t\t$el,\n\t\t\t\t{\n\t\t\t\t\tid: 'systemtags',\n\t\t\t\t\tfileActions: this._createFileActions(),\n\t\t\t\t\tconfig: OCA.Files.App.getFilesConfig(),\n\t\t\t\t\t// The file list is created when a \"show\" event is handled,\n\t\t\t\t\t// so it should be marked as \"shown\" like it would have been\n\t\t\t\t\t// done if handling the event with the file list already\n\t\t\t\t\t// created.\n\t\t\t\t\tshown: true,\n\t\t\t\t\tsystemTagIds: initialTags\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tthis._fileList.appName = t('systemtags', 'Tags')\n\t\t\treturn this._fileList\n\t\t},\n\n\t\tremoveFileList() {\n\t\t\tif (this._fileList) {\n\t\t\t\tthis._fileList.$fileList.empty()\n\t\t\t}\n\t\t},\n\n\t\t_createFileActions() {\n\t\t\t// inherit file actions from the files app\n\t\t\tconst fileActions = new OCA.Files.FileActions()\n\t\t\t// note: not merging the legacy actions because legacy apps are not\n\t\t\t// compatible with the sharing overview and need to be adapted first\n\t\t\tfileActions.registerDefaultActions()\n\t\t\tfileActions.merge(OCA.Files.fileActions)\n\n\t\t\tif (!this._globalActionsInitialized) {\n\t\t\t\t// in case actions are registered later\n\t\t\t\tthis._onActionsUpdated = _.bind(this._onActionsUpdated, this)\n\t\t\t\tOCA.Files.fileActions.on('setDefault.app-systemtags', this._onActionsUpdated)\n\t\t\t\tOCA.Files.fileActions.on('registerAction.app-systemtags', this._onActionsUpdated)\n\t\t\t\tthis._globalActionsInitialized = true\n\t\t\t}\n\n\t\t\t// when the user clicks on a folder, redirect to the corresponding\n\t\t\t// folder in the files app instead of opening it directly\n\t\t\tfileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function(filename, context) {\n\t\t\t\tOCA.Files.App.setActiveView('files', { silent: true })\n\t\t\t\tOCA.Files.App.fileList.changeDirectory(OC.joinPaths(context.$file.attr('data-path'), filename), true, true)\n\t\t\t})\n\t\t\tfileActions.setDefault('dir', 'Open')\n\t\t\treturn fileActions\n\t\t},\n\n\t\t_onActionsUpdated(ev) {\n\t\t\tif (!this._fileList) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (ev.action) {\n\t\t\t\tthis._fileList.fileActions.registerAction(ev.action)\n\t\t\t} else if (ev.defaultAction) {\n\t\t\t\tthis._fileList.fileActions.setDefault(\n\t\t\t\t\tev.defaultAction.mime,\n\t\t\t\t\tev.defaultAction.name\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Destroy the app\n\t\t */\n\t\tdestroy() {\n\t\t\tOCA.Files.fileActions.off('setDefault.app-systemtags', this._onActionsUpdated)\n\t\t\tOCA.Files.fileActions.off('registerAction.app-systemtags', this._onActionsUpdated)\n\t\t\tthis.removeFileList()\n\t\t\tthis._fileList = null\n\t\t\tdelete this._globalActionsInitialized\n\t\t},\n\t}\n\n})()\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\t$('#app-content-systemtagsfilter').on('show', function(e) {\n\t\tOCA.SystemTags.App.initFileList($(e.target))\n\t})\n\t$('#app-content-systemtagsfilter').on('hide', function() {\n\t\tOCA.SystemTags.App.removeFileList()\n\t})\n})\n","/**\n * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com>\n *\n * @author Joas Schilling <coding@schilljs.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Vincent Petry <vincent@nextcloud.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\tOCA.SystemTags = _.extend({}, OCA.SystemTags)\n\tif (!OCA.SystemTags) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.SystemTags = {}\n\t}\n\n\t/**\n\t * @namespace\n\t */\n\tOCA.SystemTags.FilesPlugin = {\n\t\tignoreLists: [\n\t\t\t'trashbin',\n\t\t\t'files.public',\n\t\t],\n\n\t\tattach(fileList) {\n\t\t\tif (this.ignoreLists.indexOf(fileList.id) >= 0) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// only create and attach once\n\t\t\t// FIXME: this should likely be done on a different code path now\n\t\t\t// for the sidebar to only have it registered once\n\t\t\tif (!OCA.SystemTags.View) {\n\t\t\t\tconst systemTagsInfoView = new OCA.SystemTags.SystemTagsInfoView()\n\t\t\t\tfileList.registerDetailView(systemTagsInfoView)\n\t\t\t\tOCA.SystemTags.View = systemTagsInfoView\n\t\t\t}\n\t\t},\n\t}\n\n})()\n\nOC.Plugins.register('OCA.Files.FileList', OCA.SystemTags.FilesPlugin)\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./systemtagsfilelist.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./systemtagsfilelist.scss\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport './app'\nimport './systemtagsfilelist'\nimport './filesplugin'\nimport './systemtagsinfoview'\nimport './css/systemtagsfilelist.scss'\n\nwindow.OCA.SystemTags = OCA.SystemTags\n","/**\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * @author Joas Schilling <coding@schilljs.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Vincent Petry <vincent@nextcloud.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\t/**\n\t * @class OCA.SystemTags.FileList\n\t * @augments OCA.Files.FileList\n\t *\n\t * @classdesc SystemTags file list.\n\t * Contains a list of files filtered by system tags.\n\t *\n\t * @param {object} $el container element with existing markup for the #controls and a table\n\t * @param {Array} [options] map of options, see other parameters\n\t * @param {Array.<string>} [options.systemTagIds] array of system tag ids to\n\t * filter by\n\t */\n\tconst FileList = function($el, options) {\n\t\tthis.initialize($el, options)\n\t}\n\tFileList.prototype = _.extend(\n\t\t{},\n\t\tOCA.Files.FileList.prototype,\n\t\t/** @lends OCA.SystemTags.FileList.prototype */ {\n\t\t\tid: 'systemtagsfilter',\n\t\t\tappName: t('systemtags', 'Tagged files'),\n\n\t\t\t/**\n\t\t\t * Array of system tag ids to filter by\n\t\t\t *\n\t\t\t * @type {Array.<string>}\n\t\t\t */\n\t\t\t_systemTagIds: [],\n\t\t\t_lastUsedTags: [],\n\n\t\t\t_clientSideSort: true,\n\t\t\t_allowSelection: false,\n\n\t\t\t_filterField: null,\n\n\t\t\t/**\n\t\t\t * @private\n\t\t\t * @param {object} $el container element\n\t\t\t * @param {object} [options] map of options, see other parameters\n\t\t\t */\n\t\t\tinitialize($el, options) {\n\t\t\t\tOCA.Files.FileList.prototype.initialize.apply(this, arguments)\n\t\t\t\tif (this.initialized) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (options && options.systemTagIds) {\n\t\t\t\t\tthis._systemTagIds = options.systemTagIds\n\t\t\t\t}\n\n\t\t\t\tOC.Plugins.attach('OCA.SystemTags.FileList', this)\n\n\t\t\t\tconst $controls = this.$el.find('#controls').empty()\n\n\t\t\t\t_.defer(_.bind(this._getLastUsedTags, this))\n\t\t\t\tthis._initFilterField($controls)\n\t\t\t},\n\n\t\t\tdestroy() {\n\t\t\t\tthis.$filterField.remove()\n\n\t\t\t\tOCA.Files.FileList.prototype.destroy.apply(this, arguments)\n\t\t\t},\n\n\t\t\t_getLastUsedTags() {\n\t\t\t\tconst self = this\n\t\t\t\t$.ajax({\n\t\t\t\t\ttype: 'GET',\n\t\t\t\t\turl: OC.generateUrl('/apps/systemtags/lastused'),\n\t\t\t\t\tsuccess(response) {\n\t\t\t\t\t\tself._lastUsedTags = response\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t_initFilterField($container) {\n\t\t\t\tconst self = this\n\t\t\t\tthis.$filterField = $('<input type=\"hidden\" name=\"tags\"/>')\n\t\t\t\tthis.$filterField.val(this._systemTagIds.join(','))\n\t\t\t\t$container.append(this.$filterField)\n\t\t\t\tthis.$filterField.select2({\n\t\t\t\t\tplaceholder: t('systemtags', 'Select tags to filter by'),\n\t\t\t\t\tallowClear: false,\n\t\t\t\t\tmultiple: true,\n\t\t\t\t\ttoggleSelect: true,\n\t\t\t\t\tseparator: ',',\n\t\t\t\t\tquery: _.bind(this._queryTagsAutocomplete, this),\n\n\t\t\t\t\tid(tag) {\n\t\t\t\t\t\treturn tag.id\n\t\t\t\t\t},\n\n\t\t\t\t\tinitSelection(element, callback) {\n\t\t\t\t\t\tconst val = $(element)\n\t\t\t\t\t\t\t.val()\n\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\tif (val) {\n\t\t\t\t\t\t\tconst tagIds = val.split(',')\n\t\t\t\t\t\t\tconst tags = []\n\n\t\t\t\t\t\t\tOC.SystemTags.collection.fetch({\n\t\t\t\t\t\t\t\tsuccess() {\n\t\t\t\t\t\t\t\t\t_.each(tagIds, function(tagId) {\n\t\t\t\t\t\t\t\t\t\tconst tag = OC.SystemTags.collection.get(\n\t\t\t\t\t\t\t\t\t\t\ttagId\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\tif (!_.isUndefined(tag)) {\n\t\t\t\t\t\t\t\t\t\t\ttags.push(tag.toJSON())\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\tcallback(tags)\n\t\t\t\t\t\t\t\t\tself._onTagsChanged({ target: element })\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// eslint-disable-next-line n/no-callback-literal\n\t\t\t\t\t\t\tcallback([])\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\tformatResult(tag) {\n\t\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag)\n\t\t\t\t\t},\n\n\t\t\t\t\tformatSelection(tag) {\n\t\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag)[0]\n\t\t\t\t\t\t\t.outerHTML\n\t\t\t\t\t},\n\n\t\t\t\t\tsortResults(results) {\n\t\t\t\t\t\tresults.sort(function(a, b) {\n\t\t\t\t\t\t\tconst aLastUsed = self._lastUsedTags.indexOf(a.id)\n\t\t\t\t\t\t\tconst bLastUsed = self._lastUsedTags.indexOf(b.id)\n\n\t\t\t\t\t\t\tif (aLastUsed !== bLastUsed) {\n\t\t\t\t\t\t\t\tif (bLastUsed === -1) {\n\t\t\t\t\t\t\t\t\treturn -1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (aLastUsed === -1) {\n\t\t\t\t\t\t\t\t\treturn 1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn aLastUsed < bLastUsed ? -1 : 1\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Both not found\n\t\t\t\t\t\t\treturn OC.Util.naturalSortCompare(a.name, b.name)\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn results\n\t\t\t\t\t},\n\n\t\t\t\t\tescapeMarkup(m) {\n\t\t\t\t\t\t// prevent double markup escape\n\t\t\t\t\t\treturn m\n\t\t\t\t\t},\n\t\t\t\t\tformatNoMatches() {\n\t\t\t\t\t\treturn t('systemtags', 'No tags found')\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tthis.$filterField.on(\n\t\t\t\t\t'change',\n\t\t\t\t\t_.bind(this._onTagsChanged, this)\n\t\t\t\t)\n\t\t\t\treturn this.$filterField\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Autocomplete function for dropdown results\n\t\t\t *\n\t\t\t * @param {object} query select2 query object\n\t\t\t */\n\t\t\t_queryTagsAutocomplete(query) {\n\t\t\t\tOC.SystemTags.collection.fetch({\n\t\t\t\t\tsuccess() {\n\t\t\t\t\t\tconst results = OC.SystemTags.collection.filterByName(\n\t\t\t\t\t\t\tquery.term\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tquery.callback({\n\t\t\t\t\t\t\tresults: _.invoke(results, 'toJSON'),\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Event handler for when the URL changed\n\t\t\t *\n\t\t\t * @param {Event} e the urlchanged event\n\t\t\t */\n\t\t\t_onUrlChanged(e) {\n\t\t\t\tif (e.dir) {\n\t\t\t\t\tconst tags = _.filter(e.dir.split('/'), function(val) {\n\t\t\t\t\t\treturn val.trim() !== ''\n\t\t\t\t\t})\n\t\t\t\t\tthis.$filterField.select2('val', tags || [])\n\t\t\t\t\tthis._systemTagIds = tags\n\t\t\t\t\tthis.reload()\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t_onTagsChanged(ev) {\n\t\t\t\tconst val = $(ev.target)\n\t\t\t\t\t.val()\n\t\t\t\t\t.trim()\n\t\t\t\tif (val !== '') {\n\t\t\t\t\tthis._systemTagIds = val.split(',')\n\t\t\t\t} else {\n\t\t\t\t\tthis._systemTagIds = []\n\t\t\t\t}\n\n\t\t\t\tthis.$el.trigger(\n\t\t\t\t\t$.Event('changeDirectory', {\n\t\t\t\t\t\tdir: this._systemTagIds.join('/'),\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\tthis.reload()\n\t\t\t},\n\n\t\t\tupdateEmptyContent() {\n\t\t\t\tconst dir = this.getCurrentDirectory()\n\t\t\t\tif (dir === '/') {\n\t\t\t\t\t// root has special permissions\n\t\t\t\t\tif (!this._systemTagIds.length) {\n\t\t\t\t\t\t// no tags selected\n\t\t\t\t\t\tthis.$el\n\t\t\t\t\t\t\t.find('#emptycontent')\n\t\t\t\t\t\t\t.html(\n\t\t\t\t\t\t\t\t'<div class=\"icon-systemtags\"></div>'\n\t\t\t\t\t\t\t\t\t+ '<h2>'\n\t\t\t\t\t\t\t\t\t+ t(\n\t\t\t\t\t\t\t\t\t\t'systemtags',\n\t\t\t\t\t\t\t\t\t\t'Please select tags to filter by'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t+ '</h2>'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// tags selected but no results\n\t\t\t\t\t\tthis.$el\n\t\t\t\t\t\t\t.find('#emptycontent')\n\t\t\t\t\t\t\t.html(\n\t\t\t\t\t\t\t\t'<div class=\"icon-systemtags\"></div>'\n\t\t\t\t\t\t\t\t\t+ '<h2>'\n\t\t\t\t\t\t\t\t\t+ t(\n\t\t\t\t\t\t\t\t\t\t'systemtags',\n\t\t\t\t\t\t\t\t\t\t'No files found for the selected tags'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t+ '</h2>'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tthis.$el\n\t\t\t\t\t\t.find('#emptycontent')\n\t\t\t\t\t\t.toggleClass('hidden', !this.isEmpty)\n\t\t\t\t\tthis.$el\n\t\t\t\t\t\t.find('#filestable thead th')\n\t\t\t\t\t\t.toggleClass('hidden', this.isEmpty)\n\t\t\t\t} else {\n\t\t\t\t\tOCA.Files.FileList.prototype.updateEmptyContent.apply(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\targuments\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tgetDirectoryPermissions() {\n\t\t\t\treturn OC.PERMISSION_READ | OC.PERMISSION_DELETE\n\t\t\t},\n\n\t\t\tupdateStorageStatistics() {\n\t\t\t\t// no op because it doesn't have\n\t\t\t\t// storage info like free space / used space\n\t\t\t},\n\n\t\t\treload() {\n\t\t\t\t// there is only root\n\t\t\t\tthis._setCurrentDir('/', false)\n\n\t\t\t\tif (!this._systemTagIds.length) {\n\t\t\t\t\t// don't reload\n\t\t\t\t\tthis.updateEmptyContent()\n\t\t\t\t\tthis.setFiles([])\n\t\t\t\t\treturn $.Deferred().resolve()\n\t\t\t\t}\n\n\t\t\t\tthis._selectedFiles = {}\n\t\t\t\tthis._selectionSummary.clear()\n\t\t\t\tif (this._currentFileModel) {\n\t\t\t\t\tthis._currentFileModel.off()\n\t\t\t\t}\n\t\t\t\tthis._currentFileModel = null\n\t\t\t\tthis.$el.find('.select-all').prop('checked', false)\n\t\t\t\tthis.showMask()\n\t\t\t\tthis._reloadCall = this.filesClient.getFilteredFiles(\n\t\t\t\t\t{\n\t\t\t\t\t\tsystemTagIds: this._systemTagIds,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tproperties: this._getWebdavProperties(),\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tif (this._detailsView) {\n\t\t\t\t\t// close sidebar\n\t\t\t\t\tthis._updateDetailsView(null)\n\t\t\t\t}\n\t\t\t\tconst callBack = this.reloadCallback.bind(this)\n\t\t\t\treturn this._reloadCall.then(callBack, callBack)\n\t\t\t},\n\n\t\t\treloadCallback(status, result) {\n\t\t\t\tif (result) {\n\t\t\t\t\t// prepend empty dir info because original handler\n\t\t\t\t\tresult.unshift({})\n\t\t\t\t}\n\n\t\t\t\treturn OCA.Files.FileList.prototype.reloadCallback.call(\n\t\t\t\t\tthis,\n\t\t\t\t\tstatus,\n\t\t\t\t\tresult\n\t\t\t\t)\n\t\t\t},\n\t\t}\n\t)\n\n\tOCA.SystemTags.FileList = FileList\n})()\n","/**\n * Copyright (c) 2015\n *\n * @author Daniel Calviño Sánchez <danxuliu@gmail.com>\n * @author Joas Schilling <coding@schilljs.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Vincent Petry <vincent@nextcloud.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function(OCA) {\n\n\t/**\n\t * @param {any} model -\n\t */\n\tfunction modelToSelection(model) {\n\t\tconst data = model.toJSON()\n\t\tif (!OC.isUserAdmin() && !data.canAssign) {\n\t\t\tdata.locked = true\n\t\t}\n\t\treturn data\n\t}\n\n\t/**\n\t * @class OCA.SystemTags.SystemTagsInfoView\n\t * @classdesc\n\t *\n\t * Displays a file's system tags\n\t *\n\t */\n\tconst SystemTagsInfoView = OCA.Files.DetailFileInfoView.extend(\n\t\t/** @lends OCA.SystemTags.SystemTagsInfoView.prototype */ {\n\n\t\t\t_rendered: false,\n\n\t\t\tclassName: 'systemTagsInfoView',\n\t\t\tname: 'systemTags',\n\n\t\t\t/* required by the new files sidebar to check if the view is unique */\n\t\t\tid: 'systemTagsInfoView',\n\n\t\t\t/**\n\t\t\t * @type {OC.SystemTags.SystemTagsInputField}\n\t\t\t */\n\t\t\t_inputView: null,\n\n\t\t\tinitialize(options) {\n\t\t\t\tconst self = this\n\t\t\t\toptions = options || {}\n\n\t\t\t\tthis._inputView = new OC.SystemTags.SystemTagsInputField({\n\t\t\t\t\tmultiple: true,\n\t\t\t\t\tallowActions: true,\n\t\t\t\t\tallowCreate: true,\n\t\t\t\t\tisAdmin: OC.isUserAdmin(),\n\t\t\t\t\tinitSelection(element, callback) {\n\t\t\t\t\t\tcallback(self.selectedTagsCollection.map(modelToSelection))\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tthis.selectedTagsCollection = new OC.SystemTags.SystemTagsMappingCollection([], { objectType: 'files' })\n\n\t\t\t\tthis._inputView.collection.on('change:name', this._onTagRenamedGlobally, this)\n\t\t\t\tthis._inputView.collection.on('remove', this._onTagDeletedGlobally, this)\n\n\t\t\t\tthis._inputView.on('select', this._onSelectTag, this)\n\t\t\t\tthis._inputView.on('deselect', this._onDeselectTag, this)\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Event handler whenever a tag was selected\n\t\t\t *\n\t\t\t * @param {object} tag the tag to create\n\t\t\t */\n\t\t\t_onSelectTag(tag) {\n\t\t\t// create a mapping entry for this tag\n\t\t\t\tthis.selectedTagsCollection.create(tag.toJSON())\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Event handler whenever a tag gets deselected.\n\t\t\t * Removes the selected tag from the mapping collection.\n\t\t\t *\n\t\t\t * @param {string} tagId tag id\n\t\t\t */\n\t\t\t_onDeselectTag(tagId) {\n\t\t\t\tthis.selectedTagsCollection.get(tagId).destroy()\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Event handler whenever a tag was renamed globally.\n\t\t\t *\n\t\t\t * This will automatically adjust the tag mapping collection to\n\t\t\t * container the new name.\n\t\t\t *\n\t\t\t * @param {OC.Backbone.Model} changedTag tag model that has changed\n\t\t\t */\n\t\t\t_onTagRenamedGlobally(changedTag) {\n\t\t\t// also rename it in the selection, if applicable\n\t\t\t\tconst selectedTagMapping = this.selectedTagsCollection.get(changedTag.id)\n\t\t\t\tif (selectedTagMapping) {\n\t\t\t\t\tselectedTagMapping.set(changedTag.toJSON())\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Event handler whenever a tag was deleted globally.\n\t\t\t *\n\t\t\t * This will automatically adjust the tag mapping collection to\n\t\t\t * container the new name.\n\t\t\t *\n\t\t\t * @param {OC.Backbone.Model} tagId tag model that has changed\n\t\t\t */\n\t\t\t_onTagDeletedGlobally(tagId) {\n\t\t\t// also rename it in the selection, if applicable\n\t\t\t\tthis.selectedTagsCollection.remove(tagId)\n\t\t\t},\n\n\t\t\tsetFileInfo(fileInfo) {\n\t\t\t\tconst self = this\n\t\t\t\tif (!this._rendered) {\n\t\t\t\t\tthis.render()\n\t\t\t\t}\n\n\t\t\t\tif (fileInfo) {\n\t\t\t\t\tthis.selectedTagsCollection.setObjectId(fileInfo.id)\n\t\t\t\t\tthis.selectedTagsCollection.fetch({\n\t\t\t\t\t\tsuccess(collection) {\n\t\t\t\t\t\t\tcollection.fetched = true\n\n\t\t\t\t\t\t\tconst appliedTags = collection.map(modelToSelection)\n\t\t\t\t\t\t\tself._inputView.setData(appliedTags)\n\t\t\t\t\t\t\tif (appliedTags.length > 0) {\n\t\t\t\t\t\t\t\tself.show()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tthis.hide()\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Renders this details view\n\t\t\t */\n\t\t\trender() {\n\t\t\t\tthis.$el.append(this._inputView.$el)\n\t\t\t\tthis._inputView.render()\n\t\t\t},\n\n\t\t\tisVisible() {\n\t\t\t\treturn !this.$el.hasClass('hidden')\n\t\t\t},\n\n\t\t\tshow() {\n\t\t\t\tthis.$el.removeClass('hidden')\n\t\t\t},\n\n\t\t\thide() {\n\t\t\t\tthis.$el.addClass('hidden')\n\t\t\t},\n\n\t\t\ttoggle() {\n\t\t\t\tthis.$el.toggleClass('hidden')\n\t\t\t},\n\n\t\t\topenDropdown() {\n\t\t\t\tthis.$el.find('.systemTagsInputField').select2('open')\n\t\t\t},\n\n\t\t\tremove() {\n\t\t\t\tthis._inputView.remove()\n\t\t\t},\n\t\t})\n\n\tOCA.SystemTags.SystemTagsInfoView = SystemTagsInfoView\n\n})(OCA)\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#app-content-systemtagsfilter .select2-container{width:30%;margin-left:10px}#app-sidebar .app-sidebar-header__action .tag-label{cursor:pointer;padding:13px 0;display:flex;color:var(--color-text-light);position:relative;margin-top:-20px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/systemtags/src/css/systemtagsfilelist.scss\"],\"names\":[],\"mappings\":\"AASA,iDACC,SAAA,CACA,gBAAA,CAGD,oDACC,cAAA,CACA,cAAA,CACA,YAAA,CACA,6BAAA,CACA,iBAAA,CACA,gBAAA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2016\\n *\\n * This file is licensed under the Affero General Public License version 3\\n * or later.\\n *\\n * See the COPYING-README file.\\n *\\n */\\n#app-content-systemtagsfilter .select2-container {\\n\\twidth: 30%;\\n\\tmargin-left: 10px;\\n}\\n\\n#app-sidebar .app-sidebar-header__action .tag-label {\\n\\tcursor: pointer;\\n\\tpadding: 13px 0;\\n\\tdisplay: flex;\\n\\tcolor: var(--color-text-light);\\n\\tposition: relative;\\n\\tmargin-top: -20px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 9698;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t9698: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(19294); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","OCA","SystemTags","App","initFileList","$el","this","_fileList","tagsParam","URL","window","location","href","searchParams","get","initialTags","split","map","parseInt","FileList","id","fileActions","_createFileActions","config","Files","getFilesConfig","shown","systemTagIds","appName","t","removeFileList","$fileList","empty","FileActions","registerDefaultActions","merge","_globalActionsInitialized","_onActionsUpdated","_","bind","on","register","OC","PERMISSION_READ","filename","context","setActiveView","silent","fileList","changeDirectory","joinPaths","$file","attr","setDefault","ev","action","registerAction","defaultAction","mime","name","destroy","off","addEventListener","$","e","target","extend","FilesPlugin","ignoreLists","attach","indexOf","View","systemTagsInfoView","SystemTagsInfoView","registerDetailView","Plugins","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","initialize","prototype","_systemTagIds","_lastUsedTags","_clientSideSort","_allowSelection","_filterField","apply","arguments","initialized","$controls","find","defer","_getLastUsedTags","_initFilterField","$filterField","remove","self","ajax","type","url","generateUrl","success","response","$container","val","join","append","select2","placeholder","allowClear","multiple","toggleSelect","separator","query","_queryTagsAutocomplete","tag","initSelection","element","callback","trim","tagIds","tags","collection","fetch","each","tagId","isUndefined","push","toJSON","_onTagsChanged","formatResult","getDescriptiveTag","formatSelection","outerHTML","sortResults","results","sort","a","b","aLastUsed","bLastUsed","Util","naturalSortCompare","escapeMarkup","m","formatNoMatches","filterByName","term","invoke","_onUrlChanged","dir","filter","reload","trigger","Event","updateEmptyContent","getCurrentDirectory","length","html","toggleClass","isEmpty","getDirectoryPermissions","PERMISSION_DELETE","updateStorageStatistics","_setCurrentDir","setFiles","Deferred","resolve","_selectedFiles","_selectionSummary","clear","_currentFileModel","prop","showMask","_reloadCall","filesClient","getFilteredFiles","properties","_getWebdavProperties","_detailsView","_updateDetailsView","callBack","reloadCallback","then","status","result","unshift","call","modelToSelection","model","data","isUserAdmin","canAssign","locked","DetailFileInfoView","_rendered","className","_inputView","SystemTagsInputField","allowActions","allowCreate","isAdmin","selectedTagsCollection","SystemTagsMappingCollection","objectType","_onTagRenamedGlobally","_onTagDeletedGlobally","_onSelectTag","_onDeselectTag","create","changedTag","selectedTagMapping","set","setFileInfo","fileInfo","render","setObjectId","fetched","appliedTags","setData","show","hide","isVisible","hasClass","removeClass","addClass","toggle","openDropdown","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","amdD","Error","amdO","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","g","globalThis","Function","obj","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","document","baseURI","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"systemtags-systemtags.js?v=09c136c6d5f75e5b73dc","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/systemtags/src/app.js","webpack:///nextcloud/apps/systemtags/src/filesplugin.js","webpack://nextcloud/./apps/systemtags/src/css/systemtagsfilelist.scss?3cf4","webpack:///nextcloud/apps/systemtags/src/systemtags.js","webpack:///nextcloud/apps/systemtags/src/systemtagsfilelist.js","webpack:///nextcloud/apps/systemtags/src/systemtagsinfoview.js","webpack:///nextcloud/apps/systemtags/src/css/systemtagsfilelist.scss","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\n * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author Daniel Calviño Sánchez <danxuliu@gmail.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Vincent Petry <vincent@nextcloud.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\tif (!OCA.SystemTags) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.SystemTags = {}\n\t}\n\n\tOCA.SystemTags.App = {\n\n\t\tinitFileList($el) {\n\t\t\tif (this._fileList) {\n\t\t\t\treturn this._fileList\n\t\t\t}\n\n\t\t\tconst tagsParam = (new URL(window.location.href)).searchParams.get('tags')\n\t\t\tconst initialTags = tagsParam ? tagsParam.split(',').map(parseInt) : []\n\n\t\t\tthis._fileList = new OCA.SystemTags.FileList(\n\t\t\t\t$el,\n\t\t\t\t{\n\t\t\t\t\tid: 'systemtags',\n\t\t\t\t\tfileActions: this._createFileActions(),\n\t\t\t\t\tconfig: OCA.Files.App.getFilesConfig(),\n\t\t\t\t\t// The file list is created when a \"show\" event is handled,\n\t\t\t\t\t// so it should be marked as \"shown\" like it would have been\n\t\t\t\t\t// done if handling the event with the file list already\n\t\t\t\t\t// created.\n\t\t\t\t\tshown: true,\n\t\t\t\t\tsystemTagIds: initialTags,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tthis._fileList.appName = t('systemtags', 'Tags')\n\t\t\treturn this._fileList\n\t\t},\n\n\t\tremoveFileList() {\n\t\t\tif (this._fileList) {\n\t\t\t\tthis._fileList.$fileList.empty()\n\t\t\t}\n\t\t},\n\n\t\t_createFileActions() {\n\t\t\t// inherit file actions from the files app\n\t\t\tconst fileActions = new OCA.Files.FileActions()\n\t\t\t// note: not merging the legacy actions because legacy apps are not\n\t\t\t// compatible with the sharing overview and need to be adapted first\n\t\t\tfileActions.registerDefaultActions()\n\t\t\tfileActions.merge(OCA.Files.fileActions)\n\n\t\t\tif (!this._globalActionsInitialized) {\n\t\t\t\t// in case actions are registered later\n\t\t\t\tthis._onActionsUpdated = _.bind(this._onActionsUpdated, this)\n\t\t\t\tOCA.Files.fileActions.on('setDefault.app-systemtags', this._onActionsUpdated)\n\t\t\t\tOCA.Files.fileActions.on('registerAction.app-systemtags', this._onActionsUpdated)\n\t\t\t\tthis._globalActionsInitialized = true\n\t\t\t}\n\n\t\t\t// when the user clicks on a folder, redirect to the corresponding\n\t\t\t// folder in the files app instead of opening it directly\n\t\t\tfileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function(filename, context) {\n\t\t\t\tOCA.Files.App.setActiveView('files', { silent: true })\n\t\t\t\tOCA.Files.App.fileList.changeDirectory(OC.joinPaths(context.$file.attr('data-path'), filename), true, true)\n\t\t\t})\n\t\t\tfileActions.setDefault('dir', 'Open')\n\t\t\treturn fileActions\n\t\t},\n\n\t\t_onActionsUpdated(ev) {\n\t\t\tif (!this._fileList) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (ev.action) {\n\t\t\t\tthis._fileList.fileActions.registerAction(ev.action)\n\t\t\t} else if (ev.defaultAction) {\n\t\t\t\tthis._fileList.fileActions.setDefault(\n\t\t\t\t\tev.defaultAction.mime,\n\t\t\t\t\tev.defaultAction.name\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Destroy the app\n\t\t */\n\t\tdestroy() {\n\t\t\tOCA.Files.fileActions.off('setDefault.app-systemtags', this._onActionsUpdated)\n\t\t\tOCA.Files.fileActions.off('registerAction.app-systemtags', this._onActionsUpdated)\n\t\t\tthis.removeFileList()\n\t\t\tthis._fileList = null\n\t\t\tdelete this._globalActionsInitialized\n\t\t},\n\t}\n\n})()\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\t$('#app-content-systemtagsfilter').on('show', function(e) {\n\t\tOCA.SystemTags.App.initFileList($(e.target))\n\t})\n\t$('#app-content-systemtagsfilter').on('hide', function() {\n\t\tOCA.SystemTags.App.removeFileList()\n\t})\n})\n","/**\n * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com>\n *\n * @author Joas Schilling <coding@schilljs.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Vincent Petry <vincent@nextcloud.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\tOCA.SystemTags = _.extend({}, OCA.SystemTags)\n\tif (!OCA.SystemTags) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.SystemTags = {}\n\t}\n\n\t/**\n\t * @namespace\n\t */\n\tOCA.SystemTags.FilesPlugin = {\n\t\tignoreLists: [\n\t\t\t'trashbin',\n\t\t\t'files.public',\n\t\t],\n\n\t\tattach(fileList) {\n\t\t\tif (this.ignoreLists.indexOf(fileList.id) >= 0) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// only create and attach once\n\t\t\t// FIXME: this should likely be done on a different code path now\n\t\t\t// for the sidebar to only have it registered once\n\t\t\tif (!OCA.SystemTags.View) {\n\t\t\t\tconst systemTagsInfoView = new OCA.SystemTags.SystemTagsInfoView()\n\t\t\t\tfileList.registerDetailView(systemTagsInfoView)\n\t\t\t\tOCA.SystemTags.View = systemTagsInfoView\n\t\t\t}\n\t\t},\n\t}\n\n})()\n\nOC.Plugins.register('OCA.Files.FileList', OCA.SystemTags.FilesPlugin)\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./systemtagsfilelist.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./systemtagsfilelist.scss\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport './app'\nimport './systemtagsfilelist'\nimport './filesplugin'\nimport './systemtagsinfoview'\nimport './css/systemtagsfilelist.scss'\n\nwindow.OCA.SystemTags = OCA.SystemTags\n","/**\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * @author Joas Schilling <coding@schilljs.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Vincent Petry <vincent@nextcloud.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\t/**\n\t * @class OCA.SystemTags.FileList\n\t * @augments OCA.Files.FileList\n\t *\n\t * @classdesc SystemTags file list.\n\t * Contains a list of files filtered by system tags.\n\t *\n\t * @param {object} $el container element with existing markup for the #controls and a table\n\t * @param {Array} [options] map of options, see other parameters\n\t * @param {Array.<string>} [options.systemTagIds] array of system tag ids to\n\t * filter by\n\t */\n\tconst FileList = function($el, options) {\n\t\tthis.initialize($el, options)\n\t}\n\tFileList.prototype = _.extend(\n\t\t{},\n\t\tOCA.Files.FileList.prototype,\n\t\t/** @lends OCA.SystemTags.FileList.prototype */ {\n\t\t\tid: 'systemtagsfilter',\n\t\t\tappName: t('systemtags', 'Tagged files'),\n\n\t\t\t/**\n\t\t\t * Array of system tag ids to filter by\n\t\t\t *\n\t\t\t * @type {Array.<string>}\n\t\t\t */\n\t\t\t_systemTagIds: [],\n\t\t\t_lastUsedTags: [],\n\n\t\t\t_clientSideSort: true,\n\t\t\t_allowSelection: false,\n\n\t\t\t_filterField: null,\n\n\t\t\t/**\n\t\t\t * @private\n\t\t\t * @param {object} $el container element\n\t\t\t * @param {object} [options] map of options, see other parameters\n\t\t\t */\n\t\t\tinitialize($el, options) {\n\t\t\t\tOCA.Files.FileList.prototype.initialize.apply(this, arguments)\n\t\t\t\tif (this.initialized) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (options && options.systemTagIds) {\n\t\t\t\t\tthis._systemTagIds = options.systemTagIds\n\t\t\t\t}\n\n\t\t\t\tOC.Plugins.attach('OCA.SystemTags.FileList', this)\n\n\t\t\t\tconst $controls = this.$el.find('#controls').empty()\n\n\t\t\t\t_.defer(_.bind(this._getLastUsedTags, this))\n\t\t\t\tthis._initFilterField($controls)\n\t\t\t},\n\n\t\t\tdestroy() {\n\t\t\t\tthis.$filterField.remove()\n\n\t\t\t\tOCA.Files.FileList.prototype.destroy.apply(this, arguments)\n\t\t\t},\n\n\t\t\t_getLastUsedTags() {\n\t\t\t\tconst self = this\n\t\t\t\t$.ajax({\n\t\t\t\t\ttype: 'GET',\n\t\t\t\t\turl: OC.generateUrl('/apps/systemtags/lastused'),\n\t\t\t\t\tsuccess(response) {\n\t\t\t\t\t\tself._lastUsedTags = response\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t_initFilterField($container) {\n\t\t\t\tconst self = this\n\t\t\t\tthis.$filterField = $('<input type=\"hidden\" name=\"tags\"/>')\n\t\t\t\tthis.$filterField.val(this._systemTagIds.join(','))\n\t\t\t\t$container.append(this.$filterField)\n\t\t\t\tthis.$filterField.select2({\n\t\t\t\t\tplaceholder: t('systemtags', 'Select tags to filter by'),\n\t\t\t\t\tallowClear: false,\n\t\t\t\t\tmultiple: true,\n\t\t\t\t\ttoggleSelect: true,\n\t\t\t\t\tseparator: ',',\n\t\t\t\t\tquery: _.bind(this._queryTagsAutocomplete, this),\n\n\t\t\t\t\tid(tag) {\n\t\t\t\t\t\treturn tag.id\n\t\t\t\t\t},\n\n\t\t\t\t\tinitSelection(element, callback) {\n\t\t\t\t\t\tconst val = $(element)\n\t\t\t\t\t\t\t.val()\n\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\tif (val) {\n\t\t\t\t\t\t\tconst tagIds = val.split(',')\n\t\t\t\t\t\t\tconst tags = []\n\n\t\t\t\t\t\t\tOC.SystemTags.collection.fetch({\n\t\t\t\t\t\t\t\tsuccess() {\n\t\t\t\t\t\t\t\t\t_.each(tagIds, function(tagId) {\n\t\t\t\t\t\t\t\t\t\tconst tag = OC.SystemTags.collection.get(\n\t\t\t\t\t\t\t\t\t\t\ttagId\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\tif (!_.isUndefined(tag)) {\n\t\t\t\t\t\t\t\t\t\t\ttags.push(tag.toJSON())\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\tcallback(tags)\n\t\t\t\t\t\t\t\t\tself._onTagsChanged({ target: element })\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// eslint-disable-next-line n/no-callback-literal\n\t\t\t\t\t\t\tcallback([])\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\tformatResult(tag) {\n\t\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag)\n\t\t\t\t\t},\n\n\t\t\t\t\tformatSelection(tag) {\n\t\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag)[0]\n\t\t\t\t\t\t\t.outerHTML\n\t\t\t\t\t},\n\n\t\t\t\t\tsortResults(results) {\n\t\t\t\t\t\tresults.sort(function(a, b) {\n\t\t\t\t\t\t\tconst aLastUsed = self._lastUsedTags.indexOf(a.id)\n\t\t\t\t\t\t\tconst bLastUsed = self._lastUsedTags.indexOf(b.id)\n\n\t\t\t\t\t\t\tif (aLastUsed !== bLastUsed) {\n\t\t\t\t\t\t\t\tif (bLastUsed === -1) {\n\t\t\t\t\t\t\t\t\treturn -1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (aLastUsed === -1) {\n\t\t\t\t\t\t\t\t\treturn 1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn aLastUsed < bLastUsed ? -1 : 1\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Both not found\n\t\t\t\t\t\t\treturn OC.Util.naturalSortCompare(a.name, b.name)\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn results\n\t\t\t\t\t},\n\n\t\t\t\t\tescapeMarkup(m) {\n\t\t\t\t\t\t// prevent double markup escape\n\t\t\t\t\t\treturn m\n\t\t\t\t\t},\n\t\t\t\t\tformatNoMatches() {\n\t\t\t\t\t\treturn t('systemtags', 'No tags found')\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tthis.$filterField.on(\n\t\t\t\t\t'change',\n\t\t\t\t\t_.bind(this._onTagsChanged, this)\n\t\t\t\t)\n\t\t\t\treturn this.$filterField\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Autocomplete function for dropdown results\n\t\t\t *\n\t\t\t * @param {object} query select2 query object\n\t\t\t */\n\t\t\t_queryTagsAutocomplete(query) {\n\t\t\t\tOC.SystemTags.collection.fetch({\n\t\t\t\t\tsuccess() {\n\t\t\t\t\t\tconst results = OC.SystemTags.collection.filterByName(\n\t\t\t\t\t\t\tquery.term\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tquery.callback({\n\t\t\t\t\t\t\tresults: _.invoke(results, 'toJSON'),\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Event handler for when the URL changed\n\t\t\t *\n\t\t\t * @param {Event} e the urlchanged event\n\t\t\t */\n\t\t\t_onUrlChanged(e) {\n\t\t\t\tif (e.dir) {\n\t\t\t\t\tconst tags = _.filter(e.dir.split('/'), function(val) {\n\t\t\t\t\t\treturn val.trim() !== ''\n\t\t\t\t\t})\n\t\t\t\t\tthis.$filterField.select2('val', tags || [])\n\t\t\t\t\tthis._systemTagIds = tags\n\t\t\t\t\tthis.reload()\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t_onTagsChanged(ev) {\n\t\t\t\tconst val = $(ev.target)\n\t\t\t\t\t.val()\n\t\t\t\t\t.trim()\n\t\t\t\tif (val !== '') {\n\t\t\t\t\tthis._systemTagIds = val.split(',')\n\t\t\t\t} else {\n\t\t\t\t\tthis._systemTagIds = []\n\t\t\t\t}\n\n\t\t\t\tthis.$el.trigger(\n\t\t\t\t\t$.Event('changeDirectory', {\n\t\t\t\t\t\tdir: this._systemTagIds.join('/'),\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\tthis.reload()\n\t\t\t},\n\n\t\t\tupdateEmptyContent() {\n\t\t\t\tconst dir = this.getCurrentDirectory()\n\t\t\t\tif (dir === '/') {\n\t\t\t\t\t// root has special permissions\n\t\t\t\t\tif (!this._systemTagIds.length) {\n\t\t\t\t\t\t// no tags selected\n\t\t\t\t\t\tthis.$el\n\t\t\t\t\t\t\t.find('#emptycontent')\n\t\t\t\t\t\t\t.html(\n\t\t\t\t\t\t\t\t'<div class=\"icon-systemtags\"></div>'\n\t\t\t\t\t\t\t\t\t+ '<h2>'\n\t\t\t\t\t\t\t\t\t+ t(\n\t\t\t\t\t\t\t\t\t\t'systemtags',\n\t\t\t\t\t\t\t\t\t\t'Please select tags to filter by'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t+ '</h2>'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// tags selected but no results\n\t\t\t\t\t\tthis.$el\n\t\t\t\t\t\t\t.find('#emptycontent')\n\t\t\t\t\t\t\t.html(\n\t\t\t\t\t\t\t\t'<div class=\"icon-systemtags\"></div>'\n\t\t\t\t\t\t\t\t\t+ '<h2>'\n\t\t\t\t\t\t\t\t\t+ t(\n\t\t\t\t\t\t\t\t\t\t'systemtags',\n\t\t\t\t\t\t\t\t\t\t'No files found for the selected tags'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t+ '</h2>'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tthis.$el\n\t\t\t\t\t\t.find('#emptycontent')\n\t\t\t\t\t\t.toggleClass('hidden', !this.isEmpty)\n\t\t\t\t\tthis.$el\n\t\t\t\t\t\t.find('#filestable thead th')\n\t\t\t\t\t\t.toggleClass('hidden', this.isEmpty)\n\t\t\t\t} else {\n\t\t\t\t\tOCA.Files.FileList.prototype.updateEmptyContent.apply(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\targuments\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tgetDirectoryPermissions() {\n\t\t\t\treturn OC.PERMISSION_READ | OC.PERMISSION_DELETE\n\t\t\t},\n\n\t\t\tupdateStorageStatistics() {\n\t\t\t\t// no op because it doesn't have\n\t\t\t\t// storage info like free space / used space\n\t\t\t},\n\n\t\t\treload() {\n\t\t\t\t// there is only root\n\t\t\t\tthis._setCurrentDir('/', false)\n\n\t\t\t\tif (!this._systemTagIds.length) {\n\t\t\t\t\t// don't reload\n\t\t\t\t\tthis.updateEmptyContent()\n\t\t\t\t\tthis.setFiles([])\n\t\t\t\t\treturn $.Deferred().resolve()\n\t\t\t\t}\n\n\t\t\t\tthis._selectedFiles = {}\n\t\t\t\tthis._selectionSummary.clear()\n\t\t\t\tif (this._currentFileModel) {\n\t\t\t\t\tthis._currentFileModel.off()\n\t\t\t\t}\n\t\t\t\tthis._currentFileModel = null\n\t\t\t\tthis.$el.find('.select-all').prop('checked', false)\n\t\t\t\tthis.showMask()\n\t\t\t\tthis._reloadCall = this.filesClient.getFilteredFiles(\n\t\t\t\t\t{\n\t\t\t\t\t\tsystemTagIds: this._systemTagIds,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tproperties: this._getWebdavProperties(),\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tif (this._detailsView) {\n\t\t\t\t\t// close sidebar\n\t\t\t\t\tthis._updateDetailsView(null)\n\t\t\t\t}\n\t\t\t\tconst callBack = this.reloadCallback.bind(this)\n\t\t\t\treturn this._reloadCall.then(callBack, callBack)\n\t\t\t},\n\n\t\t\treloadCallback(status, result) {\n\t\t\t\tif (result) {\n\t\t\t\t\t// prepend empty dir info because original handler\n\t\t\t\t\tresult.unshift({})\n\t\t\t\t}\n\n\t\t\t\treturn OCA.Files.FileList.prototype.reloadCallback.call(\n\t\t\t\t\tthis,\n\t\t\t\t\tstatus,\n\t\t\t\t\tresult\n\t\t\t\t)\n\t\t\t},\n\t\t}\n\t)\n\n\tOCA.SystemTags.FileList = FileList\n})()\n","/**\n * Copyright (c) 2015\n *\n * @author Daniel Calviño Sánchez <danxuliu@gmail.com>\n * @author Joas Schilling <coding@schilljs.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Vincent Petry <vincent@nextcloud.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function(OCA) {\n\n\t/**\n\t * @param {any} model -\n\t */\n\tfunction modelToSelection(model) {\n\t\tconst data = model.toJSON()\n\t\tif (!OC.isUserAdmin() && !data.canAssign) {\n\t\t\tdata.locked = true\n\t\t}\n\t\treturn data\n\t}\n\n\t/**\n\t * @class OCA.SystemTags.SystemTagsInfoView\n\t * @classdesc\n\t *\n\t * Displays a file's system tags\n\t *\n\t */\n\tconst SystemTagsInfoView = OCA.Files.DetailFileInfoView.extend(\n\t\t/** @lends OCA.SystemTags.SystemTagsInfoView.prototype */ {\n\n\t\t\t_rendered: false,\n\n\t\t\tclassName: 'systemTagsInfoView',\n\t\t\tname: 'systemTags',\n\n\t\t\t/* required by the new files sidebar to check if the view is unique */\n\t\t\tid: 'systemTagsInfoView',\n\n\t\t\t/**\n\t\t\t * @type {OC.SystemTags.SystemTagsInputField}\n\t\t\t */\n\t\t\t_inputView: null,\n\n\t\t\tinitialize(options) {\n\t\t\t\tconst self = this\n\t\t\t\toptions = options || {}\n\n\t\t\t\tthis._inputView = new OC.SystemTags.SystemTagsInputField({\n\t\t\t\t\tmultiple: true,\n\t\t\t\t\tallowActions: true,\n\t\t\t\t\tallowCreate: true,\n\t\t\t\t\tisAdmin: OC.isUserAdmin(),\n\t\t\t\t\tinitSelection(element, callback) {\n\t\t\t\t\t\tcallback(self.selectedTagsCollection.map(modelToSelection))\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tthis.selectedTagsCollection = new OC.SystemTags.SystemTagsMappingCollection([], { objectType: 'files' })\n\n\t\t\t\tthis._inputView.collection.on('change:name', this._onTagRenamedGlobally, this)\n\t\t\t\tthis._inputView.collection.on('remove', this._onTagDeletedGlobally, this)\n\n\t\t\t\tthis._inputView.on('select', this._onSelectTag, this)\n\t\t\t\tthis._inputView.on('deselect', this._onDeselectTag, this)\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Event handler whenever a tag was selected\n\t\t\t *\n\t\t\t * @param {object} tag the tag to create\n\t\t\t */\n\t\t\t_onSelectTag(tag) {\n\t\t\t// create a mapping entry for this tag\n\t\t\t\tthis.selectedTagsCollection.create(tag.toJSON())\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Event handler whenever a tag gets deselected.\n\t\t\t * Removes the selected tag from the mapping collection.\n\t\t\t *\n\t\t\t * @param {string} tagId tag id\n\t\t\t */\n\t\t\t_onDeselectTag(tagId) {\n\t\t\t\tthis.selectedTagsCollection.get(tagId).destroy()\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Event handler whenever a tag was renamed globally.\n\t\t\t *\n\t\t\t * This will automatically adjust the tag mapping collection to\n\t\t\t * container the new name.\n\t\t\t *\n\t\t\t * @param {OC.Backbone.Model} changedTag tag model that has changed\n\t\t\t */\n\t\t\t_onTagRenamedGlobally(changedTag) {\n\t\t\t// also rename it in the selection, if applicable\n\t\t\t\tconst selectedTagMapping = this.selectedTagsCollection.get(changedTag.id)\n\t\t\t\tif (selectedTagMapping) {\n\t\t\t\t\tselectedTagMapping.set(changedTag.toJSON())\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Event handler whenever a tag was deleted globally.\n\t\t\t *\n\t\t\t * This will automatically adjust the tag mapping collection to\n\t\t\t * container the new name.\n\t\t\t *\n\t\t\t * @param {OC.Backbone.Model} tagId tag model that has changed\n\t\t\t */\n\t\t\t_onTagDeletedGlobally(tagId) {\n\t\t\t// also rename it in the selection, if applicable\n\t\t\t\tthis.selectedTagsCollection.remove(tagId)\n\t\t\t},\n\n\t\t\tsetFileInfo(fileInfo) {\n\t\t\t\tconst self = this\n\t\t\t\tif (!this._rendered) {\n\t\t\t\t\tthis.render()\n\t\t\t\t}\n\n\t\t\t\tif (fileInfo) {\n\t\t\t\t\tthis.selectedTagsCollection.setObjectId(fileInfo.id)\n\t\t\t\t\tthis.selectedTagsCollection.fetch({\n\t\t\t\t\t\tsuccess(collection) {\n\t\t\t\t\t\t\tcollection.fetched = true\n\n\t\t\t\t\t\t\tconst appliedTags = collection.map(modelToSelection)\n\t\t\t\t\t\t\tself._inputView.setData(appliedTags)\n\t\t\t\t\t\t\tif (appliedTags.length > 0) {\n\t\t\t\t\t\t\t\tself.show()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tthis.hide()\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Renders this details view\n\t\t\t */\n\t\t\trender() {\n\t\t\t\tthis.$el.append(this._inputView.$el)\n\t\t\t\tthis._inputView.render()\n\t\t\t},\n\n\t\t\tisVisible() {\n\t\t\t\treturn !this.$el.hasClass('hidden')\n\t\t\t},\n\n\t\t\tshow() {\n\t\t\t\tthis.$el.removeClass('hidden')\n\t\t\t},\n\n\t\t\thide() {\n\t\t\t\tthis.$el.addClass('hidden')\n\t\t\t},\n\n\t\t\ttoggle() {\n\t\t\t\tthis.$el.toggleClass('hidden')\n\t\t\t},\n\n\t\t\topenDropdown() {\n\t\t\t\tthis.$el.find('.systemTagsInputField').select2('open')\n\t\t\t},\n\n\t\t\tremove() {\n\t\t\t\tthis._inputView.remove()\n\t\t\t},\n\t\t})\n\n\tOCA.SystemTags.SystemTagsInfoView = SystemTagsInfoView\n\n})(OCA)\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#app-content-systemtagsfilter .select2-container{width:30%;margin-left:10px}#app-sidebar .app-sidebar-header__action .tag-label{cursor:pointer;padding:13px 0;display:flex;color:var(--color-text-light);position:relative;margin-top:-20px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/systemtags/src/css/systemtagsfilelist.scss\"],\"names\":[],\"mappings\":\"AASA,iDACC,SAAA,CACA,gBAAA,CAGD,oDACC,cAAA,CACA,cAAA,CACA,YAAA,CACA,6BAAA,CACA,iBAAA,CACA,gBAAA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2016\\n *\\n * This file is licensed under the Affero General Public License version 3\\n * or later.\\n *\\n * See the COPYING-README file.\\n *\\n */\\n#app-content-systemtagsfilter .select2-container {\\n\\twidth: 30%;\\n\\tmargin-left: 10px;\\n}\\n\\n#app-sidebar .app-sidebar-header__action .tag-label {\\n\\tcursor: pointer;\\n\\tpadding: 13px 0;\\n\\tdisplay: flex;\\n\\tcolor: var(--color-text-light);\\n\\tposition: relative;\\n\\tmargin-top: -20px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 9698;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t9698: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(19294); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","OCA","SystemTags","App","initFileList","$el","this","_fileList","tagsParam","URL","window","location","href","searchParams","get","initialTags","split","map","parseInt","FileList","id","fileActions","_createFileActions","config","Files","getFilesConfig","shown","systemTagIds","appName","t","removeFileList","$fileList","empty","FileActions","registerDefaultActions","merge","_globalActionsInitialized","_onActionsUpdated","_","bind","on","register","OC","PERMISSION_READ","filename","context","setActiveView","silent","fileList","changeDirectory","joinPaths","$file","attr","setDefault","ev","action","registerAction","defaultAction","mime","name","destroy","off","addEventListener","$","e","target","extend","FilesPlugin","ignoreLists","attach","indexOf","View","systemTagsInfoView","SystemTagsInfoView","registerDetailView","Plugins","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","initialize","prototype","_systemTagIds","_lastUsedTags","_clientSideSort","_allowSelection","_filterField","apply","arguments","initialized","$controls","find","defer","_getLastUsedTags","_initFilterField","$filterField","remove","self","ajax","type","url","generateUrl","success","response","$container","val","join","append","select2","placeholder","allowClear","multiple","toggleSelect","separator","query","_queryTagsAutocomplete","tag","initSelection","element","callback","trim","tagIds","tags","collection","fetch","each","tagId","isUndefined","push","toJSON","_onTagsChanged","formatResult","getDescriptiveTag","formatSelection","outerHTML","sortResults","results","sort","a","b","aLastUsed","bLastUsed","Util","naturalSortCompare","escapeMarkup","m","formatNoMatches","filterByName","term","invoke","_onUrlChanged","dir","filter","reload","trigger","Event","updateEmptyContent","getCurrentDirectory","length","html","toggleClass","isEmpty","getDirectoryPermissions","PERMISSION_DELETE","updateStorageStatistics","_setCurrentDir","setFiles","Deferred","resolve","_selectedFiles","_selectionSummary","clear","_currentFileModel","prop","showMask","_reloadCall","filesClient","getFilteredFiles","properties","_getWebdavProperties","_detailsView","_updateDetailsView","callBack","reloadCallback","then","status","result","unshift","call","modelToSelection","model","data","isUserAdmin","canAssign","locked","DetailFileInfoView","_rendered","className","_inputView","SystemTagsInputField","allowActions","allowCreate","isAdmin","selectedTagsCollection","SystemTagsMappingCollection","objectType","_onTagRenamedGlobally","_onTagDeletedGlobally","_onSelectTag","_onDeselectTag","create","changedTag","selectedTagMapping","set","setFileInfo","fileInfo","render","setObjectId","fetched","appliedTags","setData","show","hide","isVisible","hasClass","removeClass","addClass","toggle","openDropdown","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","amdD","Error","amdO","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","g","globalThis","Function","obj","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","document","baseURI","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/user_status-menu.js.map b/dist/user_status-menu.js.map index 6a53d41ab26..c3704b389e4 100644 --- a/dist/user_status-menu.js.map +++ b/dist/user_status-menu.js.map @@ -1 +1 @@ -{"version":3,"file":"user_status-menu.js?v=254715d31618ef74e539","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@nextcloud/moment/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/apps/user_status/src/services/heartbeatService.js","webpack:///nextcloud/apps/user_status/src/UserStatus.vue","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?6585","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?d74a","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=template&id=24d48be7&scoped=true&","webpack:///nextcloud/apps/user_status/src/services/predefinedStatusService.js","webpack:///nextcloud/apps/user_status/src/store/predefinedStatuses.js","webpack:///nextcloud/apps/user_status/src/services/statusService.js","webpack:///nextcloud/apps/user_status/src/services/clearAtService.js","webpack:///nextcloud/apps/user_status/src/store/userStatus.js","webpack:///nextcloud/apps/user_status/src/store/index.js","webpack:///nextcloud/apps/user_status/src/menu.js","webpack:///nextcloud/apps/user_status/src/mixins/OnlineStatusMixin.js","webpack:///nextcloud/apps/user_status/src/services/dateService.js","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=style&index=0&id=24d48be7&lang=scss&scoped=true&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var map = {\n\t\"./af\": 36026,\n\t\"./af.js\": 36026,\n\t\"./ar\": 28093,\n\t\"./ar-dz\": 41943,\n\t\"./ar-dz.js\": 41943,\n\t\"./ar-kw\": 23969,\n\t\"./ar-kw.js\": 23969,\n\t\"./ar-ly\": 40594,\n\t\"./ar-ly.js\": 40594,\n\t\"./ar-ma\": 18369,\n\t\"./ar-ma.js\": 18369,\n\t\"./ar-sa\": 32579,\n\t\"./ar-sa.js\": 32579,\n\t\"./ar-tn\": 76442,\n\t\"./ar-tn.js\": 76442,\n\t\"./ar.js\": 28093,\n\t\"./az\": 86425,\n\t\"./az.js\": 86425,\n\t\"./be\": 22004,\n\t\"./be.js\": 22004,\n\t\"./bg\": 42982,\n\t\"./bg.js\": 42982,\n\t\"./bm\": 21067,\n\t\"./bm.js\": 21067,\n\t\"./bn\": 8366,\n\t\"./bn-bd\": 63837,\n\t\"./bn-bd.js\": 63837,\n\t\"./bn.js\": 8366,\n\t\"./bo\": 95040,\n\t\"./bo.js\": 95040,\n\t\"./br\": 521,\n\t\"./br.js\": 521,\n\t\"./bs\": 83242,\n\t\"./bs.js\": 83242,\n\t\"./ca\": 73046,\n\t\"./ca.js\": 73046,\n\t\"./cs\": 25794,\n\t\"./cs.js\": 25794,\n\t\"./cv\": 28231,\n\t\"./cv.js\": 28231,\n\t\"./cy\": 10927,\n\t\"./cy.js\": 10927,\n\t\"./da\": 42832,\n\t\"./da.js\": 42832,\n\t\"./de\": 29415,\n\t\"./de-at\": 3331,\n\t\"./de-at.js\": 3331,\n\t\"./de-ch\": 45524,\n\t\"./de-ch.js\": 45524,\n\t\"./de.js\": 29415,\n\t\"./dv\": 44700,\n\t\"./dv.js\": 44700,\n\t\"./el\": 88752,\n\t\"./el.js\": 88752,\n\t\"./en-au\": 90444,\n\t\"./en-au.js\": 90444,\n\t\"./en-ca\": 65959,\n\t\"./en-ca.js\": 65959,\n\t\"./en-gb\": 62762,\n\t\"./en-gb.js\": 62762,\n\t\"./en-ie\": 40909,\n\t\"./en-ie.js\": 40909,\n\t\"./en-il\": 79909,\n\t\"./en-il.js\": 79909,\n\t\"./en-in\": 87942,\n\t\"./en-in.js\": 87942,\n\t\"./en-nz\": 75200,\n\t\"./en-nz.js\": 75200,\n\t\"./en-sg\": 21415,\n\t\"./en-sg.js\": 21415,\n\t\"./eo\": 27447,\n\t\"./eo.js\": 27447,\n\t\"./es\": 86756,\n\t\"./es-do\": 47049,\n\t\"./es-do.js\": 47049,\n\t\"./es-mx\": 15915,\n\t\"./es-mx.js\": 15915,\n\t\"./es-us\": 57133,\n\t\"./es-us.js\": 57133,\n\t\"./es.js\": 86756,\n\t\"./et\": 72182,\n\t\"./et.js\": 72182,\n\t\"./eu\": 14419,\n\t\"./eu.js\": 14419,\n\t\"./fa\": 2916,\n\t\"./fa.js\": 2916,\n\t\"./fi\": 49964,\n\t\"./fi.js\": 49964,\n\t\"./fil\": 16448,\n\t\"./fil.js\": 16448,\n\t\"./fo\": 26094,\n\t\"./fo.js\": 26094,\n\t\"./fr\": 35833,\n\t\"./fr-ca\": 56994,\n\t\"./fr-ca.js\": 56994,\n\t\"./fr-ch\": 2740,\n\t\"./fr-ch.js\": 2740,\n\t\"./fr.js\": 35833,\n\t\"./fy\": 69542,\n\t\"./fy.js\": 69542,\n\t\"./ga\": 93264,\n\t\"./ga.js\": 93264,\n\t\"./gd\": 77457,\n\t\"./gd.js\": 77457,\n\t\"./gl\": 83043,\n\t\"./gl.js\": 83043,\n\t\"./gom-deva\": 24034,\n\t\"./gom-deva.js\": 24034,\n\t\"./gom-latn\": 28379,\n\t\"./gom-latn.js\": 28379,\n\t\"./gu\": 406,\n\t\"./gu.js\": 406,\n\t\"./he\": 73219,\n\t\"./he.js\": 73219,\n\t\"./hi\": 99834,\n\t\"./hi.js\": 99834,\n\t\"./hr\": 28754,\n\t\"./hr.js\": 28754,\n\t\"./hu\": 93945,\n\t\"./hu.js\": 93945,\n\t\"./hy-am\": 81319,\n\t\"./hy-am.js\": 81319,\n\t\"./id\": 24875,\n\t\"./id.js\": 24875,\n\t\"./is\": 23724,\n\t\"./is.js\": 23724,\n\t\"./it\": 79906,\n\t\"./it-ch\": 34303,\n\t\"./it-ch.js\": 34303,\n\t\"./it.js\": 79906,\n\t\"./ja\": 77105,\n\t\"./ja.js\": 77105,\n\t\"./jv\": 15026,\n\t\"./jv.js\": 15026,\n\t\"./ka\": 67416,\n\t\"./ka.js\": 67416,\n\t\"./kk\": 79734,\n\t\"./kk.js\": 79734,\n\t\"./km\": 60757,\n\t\"./km.js\": 60757,\n\t\"./kn\": 58369,\n\t\"./kn.js\": 58369,\n\t\"./ko\": 77687,\n\t\"./ko.js\": 77687,\n\t\"./ku\": 95544,\n\t\"./ku.js\": 95544,\n\t\"./ky\": 85431,\n\t\"./ky.js\": 85431,\n\t\"./lb\": 13613,\n\t\"./lb.js\": 13613,\n\t\"./lo\": 34252,\n\t\"./lo.js\": 34252,\n\t\"./lt\": 84619,\n\t\"./lt.js\": 84619,\n\t\"./lv\": 93760,\n\t\"./lv.js\": 93760,\n\t\"./me\": 93393,\n\t\"./me.js\": 93393,\n\t\"./mi\": 12369,\n\t\"./mi.js\": 12369,\n\t\"./mk\": 48664,\n\t\"./mk.js\": 48664,\n\t\"./ml\": 23099,\n\t\"./ml.js\": 23099,\n\t\"./mn\": 98539,\n\t\"./mn.js\": 98539,\n\t\"./mr\": 778,\n\t\"./mr.js\": 778,\n\t\"./ms\": 39970,\n\t\"./ms-my\": 82625,\n\t\"./ms-my.js\": 82625,\n\t\"./ms.js\": 39970,\n\t\"./mt\": 15714,\n\t\"./mt.js\": 15714,\n\t\"./my\": 53055,\n\t\"./my.js\": 53055,\n\t\"./nb\": 73945,\n\t\"./nb.js\": 73945,\n\t\"./ne\": 63645,\n\t\"./ne.js\": 63645,\n\t\"./nl\": 4829,\n\t\"./nl-be\": 12823,\n\t\"./nl-be.js\": 12823,\n\t\"./nl.js\": 4829,\n\t\"./nn\": 23756,\n\t\"./nn.js\": 23756,\n\t\"./oc-lnc\": 41228,\n\t\"./oc-lnc.js\": 41228,\n\t\"./pa-in\": 97877,\n\t\"./pa-in.js\": 97877,\n\t\"./pl\": 53066,\n\t\"./pl.js\": 53066,\n\t\"./pt\": 28677,\n\t\"./pt-br\": 81592,\n\t\"./pt-br.js\": 81592,\n\t\"./pt.js\": 28677,\n\t\"./ro\": 32722,\n\t\"./ro.js\": 32722,\n\t\"./ru\": 59138,\n\t\"./ru.js\": 59138,\n\t\"./sd\": 32568,\n\t\"./sd.js\": 32568,\n\t\"./se\": 49753,\n\t\"./se.js\": 49753,\n\t\"./si\": 58024,\n\t\"./si.js\": 58024,\n\t\"./sk\": 31058,\n\t\"./sk.js\": 31058,\n\t\"./sl\": 43452,\n\t\"./sl.js\": 43452,\n\t\"./sq\": 2795,\n\t\"./sq.js\": 2795,\n\t\"./sr\": 26976,\n\t\"./sr-cyrl\": 38819,\n\t\"./sr-cyrl.js\": 38819,\n\t\"./sr.js\": 26976,\n\t\"./ss\": 7467,\n\t\"./ss.js\": 7467,\n\t\"./sv\": 42787,\n\t\"./sv.js\": 42787,\n\t\"./sw\": 80298,\n\t\"./sw.js\": 80298,\n\t\"./ta\": 57532,\n\t\"./ta.js\": 57532,\n\t\"./te\": 76076,\n\t\"./te.js\": 76076,\n\t\"./tet\": 40452,\n\t\"./tet.js\": 40452,\n\t\"./tg\": 64794,\n\t\"./tg.js\": 64794,\n\t\"./th\": 48245,\n\t\"./th.js\": 48245,\n\t\"./tk\": 8870,\n\t\"./tk.js\": 8870,\n\t\"./tl-ph\": 36056,\n\t\"./tl-ph.js\": 36056,\n\t\"./tlh\": 15249,\n\t\"./tlh.js\": 15249,\n\t\"./tr\": 22053,\n\t\"./tr.js\": 22053,\n\t\"./tzl\": 39871,\n\t\"./tzl.js\": 39871,\n\t\"./tzm\": 39574,\n\t\"./tzm-latn\": 19210,\n\t\"./tzm-latn.js\": 19210,\n\t\"./tzm.js\": 39574,\n\t\"./ug-cn\": 91532,\n\t\"./ug-cn.js\": 91532,\n\t\"./uk\": 11432,\n\t\"./uk.js\": 11432,\n\t\"./ur\": 88523,\n\t\"./ur.js\": 88523,\n\t\"./uz\": 54958,\n\t\"./uz-latn\": 68735,\n\t\"./uz-latn.js\": 68735,\n\t\"./uz.js\": 54958,\n\t\"./vi\": 83398,\n\t\"./vi.js\": 83398,\n\t\"./x-pseudo\": 56665,\n\t\"./x-pseudo.js\": 56665,\n\t\"./yo\": 11642,\n\t\"./yo.js\": 11642,\n\t\"./zh-cn\": 5462,\n\t\"./zh-cn.js\": 5462,\n\t\"./zh-hk\": 92530,\n\t\"./zh-hk.js\": 92530,\n\t\"./zh-mo\": 41650,\n\t\"./zh-mo.js\": 41650,\n\t\"./zh-tw\": 97333,\n\t\"./zh-tw.js\": 97333\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 93365;","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\n\n/**\n * Sends a heartbeat\n *\n * @param {boolean} isAway Whether or not the user is active\n * @return {Promise<void>}\n */\nconst sendHeartbeat = async (isAway) => {\n\tconst url = generateUrl('/apps/user_status/heartbeat')\n\tconst response = await HttpClient.put(url, {\n\t\tstatus: isAway ? 'away' : 'online',\n\t})\n\treturn response.data\n}\n\nexport {\n\tsendHeartbeat,\n}\n","<!--\n - @copyright Copyright (c) 2020 Georg Ehrke <oc.list@georgehrke.com>\n - @author Georg Ehrke <oc.list@georgehrke.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li>\n\t\t<div class=\"user-status-menu-item\">\n\t\t\t<!-- Username display -->\n\t\t\t<a v-if=\"!inline\"\n\t\t\t\tclass=\"user-status-menu-item__header\"\n\t\t\t\t:href=\"profilePageLink\"\n\t\t\t\t@click=\"loadProfilePage\">\n\t\t\t\t<div class=\"user-status-menu-item__header-content\">\n\t\t\t\t\t<div class=\"user-status-menu-item__header-content-displayname\">{{ displayName }}</div>\n\t\t\t\t\t<div v-if=\"!loadingProfilePage\" class=\"user-status-menu-item__header-content-placeholder\" />\n\t\t\t\t\t<div v-else class=\"icon-loading-small\" />\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"profileEnabled\">\n\t\t\t\t\t{{ t('user_status', 'View profile') }}\n\t\t\t\t</div>\n\t\t\t</a>\n\n\t\t\t<!-- Status modal toggle -->\n\t\t\t<toggle :is=\"inline ? 'button' : 'a'\"\n\t\t\t\t:class=\"{'user-status-menu-item__toggle--inline': inline}\"\n\t\t\t\tclass=\"user-status-menu-item__toggle\"\n\t\t\t\thref=\"#\"\n\t\t\t\t@click.prevent.stop=\"openModal\">\n\t\t\t\t<span :class=\"statusIcon\" class=\"user-status-menu-item__toggle-icon\" />\n\t\t\t\t{{ visibleMessage }}\n\t\t\t</toggle>\n\t\t</div>\n\n\t\t<!-- Status management modal -->\n\t\t<SetStatusModal v-if=\"isModalOpen\"\n\t\t\t@close=\"closeModal\" />\n\t</li>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport debounce from 'debounce'\n\nimport { sendHeartbeat } from './services/heartbeatService'\nimport OnlineStatusMixin from './mixins/OnlineStatusMixin'\n\nconst { profileEnabled } = loadState('user_status', 'profileEnabled', false)\n\nexport default {\n\tname: 'UserStatus',\n\n\tcomponents: {\n\t\tSetStatusModal: () => import(/* webpackChunkName: 'user-status-modal' */'./components/SetStatusModal'),\n\t},\n\tmixins: [OnlineStatusMixin],\n\n\tprops: {\n\t\tinline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdisplayName: getCurrentUser().displayName,\n\t\t\theartbeatInterval: null,\n\t\t\tisAway: false,\n\t\t\tisModalOpen: false,\n\t\t\tloadingProfilePage: false,\n\t\t\tmouseMoveListener: null,\n\t\t\tprofileEnabled,\n\t\t\tsetAwayTimeout: null,\n\t\t}\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * The profile page link\n\t\t *\n\t\t * @return {string | null}\n\t\t */\n\t\tprofilePageLink() {\n\t\t\tif (this.profileEnabled) {\n\t\t\t\treturn generateUrl('/u/{userId}', { userId: getCurrentUser().uid })\n\t\t\t}\n\t\t\t// Since an anchor element is used rather than a button,\n\t\t\t// this hack removes href if the profile is disabled so that disabling pointer-events is not needed to prevent a click from opening a page\n\t\t\t// and to allow the hover event for styling\n\t\t\treturn null\n\t\t},\n\t},\n\n\t/**\n\t * Loads the current user's status from initial state\n\t * and stores it in Vuex\n\t */\n\tmounted() {\n\t\tsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t\tsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\n\t\tthis.$store.dispatch('loadStatusFromInitialState')\n\n\t\tif (OC.config.session_keepalive) {\n\t\t\t// Send the latest status to the server every 5 minutes\n\t\t\tthis.heartbeatInterval = setInterval(this._backgroundHeartbeat.bind(this), 1000 * 60 * 5)\n\t\t\tthis.setAwayTimeout = () => {\n\t\t\t\tthis.isAway = true\n\t\t\t}\n\t\t\t// Catch mouse movements, but debounce to once every 30 seconds\n\t\t\tthis.mouseMoveListener = debounce(() => {\n\t\t\t\tconst wasAway = this.isAway\n\t\t\t\tthis.isAway = false\n\t\t\t\t// Reset the two minute counter\n\t\t\t\tclearTimeout(this.setAwayTimeout)\n\t\t\t\t// If the user did not move the mouse within two minutes,\n\t\t\t\t// mark them as away\n\t\t\t\tsetTimeout(this.setAwayTimeout, 1000 * 60 * 2)\n\n\t\t\t\tif (wasAway) {\n\t\t\t\t\tthis._backgroundHeartbeat()\n\t\t\t\t}\n\t\t\t}, 1000 * 2, true)\n\t\t\twindow.addEventListener('mousemove', this.mouseMoveListener, {\n\t\t\t\tcapture: true,\n\t\t\t\tpassive: true,\n\t\t\t})\n\n\t\t\tthis._backgroundHeartbeat()\n\t\t}\n\t\tsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t},\n\n\t/**\n\t * Some housekeeping before destroying the component\n\t */\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t\tunsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t\twindow.removeEventListener('mouseMove', this.mouseMoveListener)\n\t\tclearInterval(this.heartbeatInterval)\n\t\tunsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t},\n\n\tmethods: {\n\t\thandleDisplayNameUpdate(displayName) {\n\t\t\tthis.displayName = displayName\n\t\t},\n\n\t\thandleProfileEnabledUpdate(profileEnabled) {\n\t\t\tthis.profileEnabled = profileEnabled\n\t\t},\n\n\t\tloadProfilePage() {\n\t\t\tif (this.profileEnabled) {\n\t\t\t\tthis.loadingProfilePage = true\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Opens the modal to set a custom status\n\t\t */\n\t\topenModal() {\n\t\t\tthis.isModalOpen = true\n\t\t},\n\t\t/**\n\t\t * Closes the modal\n\t\t */\n\t\tcloseModal() {\n\t\t\tthis.isModalOpen = false\n\t\t},\n\n\t\t/**\n\t\t * Sends the status heartbeat to the server\n\t\t *\n\t\t * @return {Promise<void>}\n\t\t * @private\n\t\t */\n\t\tasync _backgroundHeartbeat() {\n\t\t\ttry {\n\t\t\t\tconst status = await sendHeartbeat(this.isAway)\n\t\t\t\tif (status?.userId) {\n\t\t\t\t\tthis.$store.dispatch('setStatusFromHeartbeat', status)\n\t\t\t\t} else {\n\t\t\t\t\tawait this.$store.dispatch('reFetchStatusFromServer')\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.debug('Failed sending heartbeat, got: ' + error.response?.status)\n\t\t\t}\n\t\t},\n\t\thandleUserStatusUpdated(state) {\n\t\t\tif (OC.getCurrentUser().uid === state.userId) {\n\t\t\t\tthis.$store.dispatch('setStatusFromObject', {\n\t\t\t\t\tstatus: state.status,\n\t\t\t\t\ticon: state.icon,\n\t\t\t\t\tmessage: state.message,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-status-menu-item {\n\t&__header {\n\t\tdisplay: flex !important;\n\t\tflex-direction: column !important;\n\t\twidth: auto !important;\n\t\theight: 44px * 1.5 !important;\n\t\tpadding: 10px 12px 5px 12px !important;\n\t\talign-items: flex-start !important;\n\t\tcolor: var(--color-main-text) !important;\n\n\t\t&:focus-visible {\n\t\t\tpadding: 6px 8px 1px 8px !important;\n\t\t\tmargin: 2px !important;\n\t\t}\n\n\t\t&:not([href]) {\n\t\t\theight: var(--header-menu-item-height) !important;\n\t\t\tcolor: var(--color-text-maxcontrast) !important;\n\t\t\tcursor: default !important;\n\n\t\t\t& * {\n\t\t\t\tcursor: default !important;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: transparent !important;\n\t\t\t}\n\t\t}\n\n\t\t&-content {\n\t\t\tdisplay: inline-flex !important;\n\t\t\tfont-weight: bold !important;\n\t\t\tgap: 0 10px !important;\n\t\t\twidth: auto;\n\n\t\t\t&-displayname {\n\t\t\t\twidth: auto;\n\t\t\t}\n\n\t\t\t&-placeholder {\n\t\t\t\twidth: 16px !important;\n\t\t\t\theight: 24px !important;\n\t\t\t\tmargin-right: 10px !important;\n\t\t\t\tvisibility: hidden !important;\n\t\t\t}\n\t\t}\n\n\t\tspan {\n\t\t\tcolor: var(--color-text-maxcontrast) !important;\n\t\t}\n\t}\n\n\t&__toggle {\n\t\t&-icon {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tmargin-right: 10px;\n\t\t\topacity: 1 !important;\n\t\t\tbackground-size: 16px;\n\t\t}\n\n\t\t// In dashboard\n\t\t&--inline {\n\t\t\twidth: auto;\n\t\t\tmin-width: 44px;\n\t\t\theight: 44px;\n\t\t\tmargin: 0;\n\t\t\tborder: 0;\n\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\tbackground-color: var(--color-background-translucent);\n\t\t\tfont-size: inherit;\n\t\t\tfont-weight: normal;\n\n\t\t\t-webkit-backdrop-filter: var(--background-blur);\n\t\t\tbackdrop-filter: var(--background-blur);\n\n\t\t\t&:active,\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\t\t\t&:focus {\n\t\t\t\tbox-shadow: 0 0 0 2px var(--color-main-text) !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\nli {\n\tlist-style-type: none;\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.vue?vue&type=style&index=0&id=24d48be7&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.vue?vue&type=style&index=0&id=24d48be7&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserStatus.vue?vue&type=template&id=24d48be7&scoped=true&\"\nimport script from \"./UserStatus.vue?vue&type=script&lang=js&\"\nexport * from \"./UserStatus.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserStatus.vue?vue&type=style&index=0&id=24d48be7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24d48be7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[_c('div',{staticClass:\"user-status-menu-item\"},[(!_vm.inline)?_c('a',{staticClass:\"user-status-menu-item__header\",attrs:{\"href\":_vm.profilePageLink},on:{\"click\":_vm.loadProfilePage}},[_c('div',{staticClass:\"user-status-menu-item__header-content\"},[_c('div',{staticClass:\"user-status-menu-item__header-content-displayname\"},[_vm._v(_vm._s(_vm.displayName))]),_vm._v(\" \"),(!_vm.loadingProfilePage)?_c('div',{staticClass:\"user-status-menu-item__header-content-placeholder\"}):_c('div',{staticClass:\"icon-loading-small\"})]),_vm._v(\" \"),(_vm.profileEnabled)?_c('div',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('user_status', 'View profile'))+\"\\n\\t\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c(_vm.inline ? 'button' : 'a',{tag:\"toggle\",staticClass:\"user-status-menu-item__toggle\",class:{'user-status-menu-item__toggle--inline': _vm.inline},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openModal.apply(null, arguments)}}},[_c('span',{staticClass:\"user-status-menu-item__toggle-icon\",class:_vm.statusIcon}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.visibleMessage)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.isModalOpen)?_c('SetStatusModal',{on:{\"close\":_vm.closeModal}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches all predefined statuses from the server\n *\n * @return {Promise<void>}\n */\nconst fetchAllPredefinedStatuses = async () => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/predefined_statuses?format=json')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\nexport {\n\tfetchAllPredefinedStatuses,\n}\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { fetchAllPredefinedStatuses } from '../services/predefinedStatusService'\n\nconst state = {\n\tpredefinedStatuses: [],\n}\n\nconst mutations = {\n\n\t/**\n\t * Adds a predefined status to the state\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} status The status to add\n\t */\n\taddPredefinedStatus(state, status) {\n\t\tstate.predefinedStatuses.push(status)\n\t},\n}\n\nconst getters = {}\n\nconst actions = {\n\n\t/**\n\t * Loads all predefined statuses from the server\n\t *\n\t * @param {object} vuex The Vuex components\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state -\n\t */\n\tasync loadAllPredefinedStatuses({ state, commit }) {\n\t\tif (state.predefinedStatuses.length > 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst statuses = await fetchAllPredefinedStatuses()\n\t\tfor (const status of statuses) {\n\t\t\tcommit('addPredefinedStatus', status)\n\t\t}\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches the current user-status\n *\n * @return {Promise<object>}\n */\nconst fetchCurrentStatus = async () => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Sets the status\n *\n * @param {string} statusType The status (online / away / dnd / invisible)\n * @return {Promise<void>}\n */\nconst setStatus = async (statusType) => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/status')\n\tawait HttpClient.put(url, {\n\t\tstatusType,\n\t})\n}\n\n/**\n * Sets a message based on our predefined statuses\n *\n * @param {string} messageId The id of the message, taken from predefined status service\n * @param {number | null} clearAt When to automatically clean the status\n * @return {Promise<void>}\n */\nconst setPredefinedMessage = async (messageId, clearAt = null) => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message/predefined?format=json')\n\tawait HttpClient.put(url, {\n\t\tmessageId,\n\t\tclearAt,\n\t})\n}\n\n/**\n * Sets a custom message\n *\n * @param {string} message The user-defined message\n * @param {string | null} statusIcon The user-defined icon\n * @param {number | null} clearAt When to automatically clean the status\n * @return {Promise<void>}\n */\nconst setCustomMessage = async (message, statusIcon = null, clearAt = null) => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message/custom?format=json')\n\tawait HttpClient.put(url, {\n\t\tmessage,\n\t\tstatusIcon,\n\t\tclearAt,\n\t})\n}\n\n/**\n * Clears the current status of the user\n *\n * @return {Promise<void>}\n */\nconst clearMessage = async () => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message?format=json')\n\tawait HttpClient.delete(url)\n}\n\nexport {\n\tfetchCurrentStatus,\n\tsetStatus,\n\tsetCustomMessage,\n\tsetPredefinedMessage,\n\tclearMessage,\n}\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport {\n\tdateFactory,\n} from './dateService'\nimport moment from '@nextcloud/moment'\n\n/**\n * Calculates the actual clearAt timestamp\n *\n * @param {object | null} clearAt The clear-at config\n * @return {number | null}\n */\nconst getTimestampForClearAt = (clearAt) => {\n\tif (clearAt === null) {\n\t\treturn null\n\t}\n\n\tconst date = dateFactory()\n\n\tif (clearAt.type === 'period') {\n\t\tdate.setSeconds(date.getSeconds() + clearAt.time)\n\t\treturn Math.floor(date.getTime() / 1000)\n\t}\n\tif (clearAt.type === 'end-of') {\n\t\tswitch (clearAt.time) {\n\t\tcase 'day':\n\t\tcase 'week':\n\t\t\treturn Number(moment(date).endOf(clearAt.time).format('X'))\n\t\t}\n\t}\n\t// This is not an officially supported type\n\t// but only used internally to show the remaining time\n\t// in the Set Status Modal\n\tif (clearAt.type === '_time') {\n\t\treturn clearAt.time\n\t}\n\n\treturn null\n}\n\nexport {\n\tgetTimestampForClearAt,\n}\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport {\n\tfetchCurrentStatus,\n\tsetStatus,\n\tsetPredefinedMessage,\n\tsetCustomMessage,\n\tclearMessage,\n} from '../services/statusService'\nimport { loadState } from '@nextcloud/initial-state'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getTimestampForClearAt } from '../services/clearAtService'\nimport { emit } from '@nextcloud/event-bus'\n\nconst state = {\n\t// Status (online / away / dnd / invisible / offline)\n\tstatus: null,\n\t// Whether or not the status is user-defined\n\tstatusIsUserDefined: null,\n\t// A custom message set by the user\n\tmessage: null,\n\t// The icon selected by the user\n\ticon: null,\n\t// When to automatically clean the status\n\tclearAt: null,\n\t// Whether or not the message is predefined\n\t// (and can automatically be translated by Nextcloud)\n\tmessageIsPredefined: null,\n\t// The id of the message in case it's predefined\n\tmessageId: null,\n}\n\nconst mutations = {\n\n\t/**\n\t * Sets a new status\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.statusType The new status type\n\t */\n\tsetStatus(state, { statusType }) {\n\t\tstate.status = statusType\n\t\tstate.statusIsUserDefined = true\n\t},\n\n\t/**\n\t * Sets a message using a predefined message\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.messageId The messageId\n\t * @param {number | null} data.clearAt When to automatically clear the status\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t */\n\tsetPredefinedMessage(state, { messageId, clearAt, message, icon }) {\n\t\tstate.messageId = messageId\n\t\tstate.messageIsPredefined = true\n\n\t\tstate.message = message\n\t\tstate.icon = icon\n\t\tstate.clearAt = clearAt\n\t},\n\n\t/**\n\t * Sets a custom message\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {number} data.clearAt When to automatically clear the status\n\t */\n\tsetCustomMessage(state, { message, icon, clearAt }) {\n\t\tstate.messageId = null\n\t\tstate.messageIsPredefined = false\n\n\t\tstate.message = message\n\t\tstate.icon = icon\n\t\tstate.clearAt = clearAt\n\t},\n\n\t/**\n\t * Clears the status\n\t *\n\t * @param {object} state The Vuex state\n\t */\n\tclearMessage(state) {\n\t\tstate.messageId = null\n\t\tstate.messageIsPredefined = false\n\n\t\tstate.message = null\n\t\tstate.icon = null\n\t\tstate.clearAt = null\n\t},\n\n\t/**\n\t * Loads the status from initial state\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.status The status type\n\t * @param {boolean} data.statusIsUserDefined Whether or not this status is user-defined\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {number} data.clearAt When to automatically clear the status\n\t * @param {boolean} data.messageIsPredefined Whether or not the message is predefined\n\t * @param {string} data.messageId The id of the predefined message\n\t */\n\tloadStatusFromServer(state, { status, statusIsUserDefined, message, icon, clearAt, messageIsPredefined, messageId }) {\n\t\tstate.status = status\n\t\tstate.statusIsUserDefined = statusIsUserDefined\n\t\tstate.message = message\n\t\tstate.icon = icon\n\t\tstate.clearAt = clearAt\n\t\tstate.messageIsPredefined = messageIsPredefined\n\t\tstate.messageId = messageId\n\t},\n}\n\nconst getters = {}\n\nconst actions = {\n\n\t/**\n\t * Sets a new status\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.statusType The new status type\n\t * @return {Promise<void>}\n\t */\n\tasync setStatus({ commit, state }, { statusType }) {\n\t\tawait setStatus(statusType)\n\t\tcommit('setStatus', { statusType })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Update status from 'user_status:status.updated' update.\n\t * This doesn't trigger another 'user_status:status.updated'\n\t * event.\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {string} status The new status\n\t * @return {Promise<void>}\n\t */\n\tasync setStatusFromObject({ commit, state }, status) {\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Sets a message using a predefined message\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} vuex.rootState The Vuex root state\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.messageId The messageId\n\t * @param {object | null} data.clearAt When to automatically clear the status\n\t * @return {Promise<void>}\n\t */\n\tasync setPredefinedMessage({ commit, rootState, state }, { messageId, clearAt }) {\n\t\tconst resolvedClearAt = getTimestampForClearAt(clearAt)\n\n\t\tawait setPredefinedMessage(messageId, resolvedClearAt)\n\t\tconst status = rootState.predefinedStatuses.predefinedStatuses.find((status) => status.id === messageId)\n\t\tconst { message, icon } = status\n\n\t\tcommit('setPredefinedMessage', { messageId, clearAt: resolvedClearAt, message, icon })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Sets a custom message\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {object | null} data.clearAt When to automatically clear the status\n\t * @return {Promise<void>}\n\t */\n\tasync setCustomMessage({ commit, state }, { message, icon, clearAt }) {\n\t\tconst resolvedClearAt = getTimestampForClearAt(clearAt)\n\n\t\tawait setCustomMessage(message, icon, resolvedClearAt)\n\t\tcommit('setCustomMessage', { message, icon, clearAt: resolvedClearAt })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Clears the status\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @return {Promise<void>}\n\t */\n\tasync clearMessage({ commit, state }) {\n\t\tawait clearMessage()\n\t\tcommit('clearMessage')\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Re-fetches the status from the server\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @return {Promise<void>}\n\t */\n\tasync reFetchStatusFromServer({ commit }) {\n\t\tconst status = await fetchCurrentStatus()\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Stores the status we got in the reply of the heartbeat\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} status The data destructuring object\n\t * @param {string} status.status The status type\n\t * @param {boolean} status.statusIsUserDefined Whether or not this status is user-defined\n\t * @param {string} status.message The message\n\t * @param {string} status.icon The icon\n\t * @param {number} status.clearAt When to automatically clear the status\n\t * @param {boolean} status.messageIsPredefined Whether or not the message is predefined\n\t * @param {string} status.messageId The id of the predefined message\n\t * @return {Promise<void>}\n\t */\n\tasync setStatusFromHeartbeat({ commit }, status) {\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Loads the server from the initial state\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t */\n\tloadStatusFromInitialState({ commit }) {\n\t\tconst status = loadState('user_status', 'status')\n\t\tcommit('loadStatusFromServer', status)\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport predefinedStatuses from './predefinedStatuses'\nimport userStatus from './userStatus'\n\nVue.use(Vuex)\n\nexport default new Store({\n\tmodules: {\n\t\tpredefinedStatuses,\n\t\tuserStatus,\n\t},\n\tstrict: true,\n})\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport UserStatus from './UserStatus'\nimport store from './store'\nimport Avatar from '@nextcloud/vue/dist/Components/Avatar'\nimport { loadState } from '@nextcloud/initial-state'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.prototype.t = t\nVue.prototype.$t = t\n\nconst avatarDiv = document.getElementById('avatardiv-menu')\nconst userStatusData = loadState('user_status', 'status')\nconst propsData = {\n\tpreloadedUserStatus: {\n\t\tmessage: userStatusData.message,\n\t\ticon: userStatusData.icon,\n\t\tstatus: userStatusData.status\n\t},\n\tuser: avatarDiv.dataset.user,\n\tdisplayName: avatarDiv.dataset.displayname,\n\turl: avatarDiv.dataset.avatar,\n\tdisableMenu: true,\n\tdisableTooltip: true,\n}\n\nconst AvatarInMenu = Vue.extend(Avatar)\nnew AvatarInMenu({ propsData }).$mount('#avatardiv-menu')\n\n// Register settings menu entry\nexport default new Vue({\n\tel: 'li[data-id=\"user_status-menuitem\"]',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UserStatusRoot',\n\trender: h => h(UserStatus),\n\tstore,\n})\n\n// Register dashboard status\ndocument.addEventListener('DOMContentLoaded', function() {\n\tif (!OCA.Dashboard) {\n\t\treturn\n\t}\n\n\tOCA.Dashboard.registerStatus('status', (el) => {\n\t\tconst Dashboard = Vue.extend(UserStatus)\n\t\treturn new Dashboard({\n\t\t\tpropsData: {\n\t\t\t\tinline: true,\n\t\t\t},\n\t\t\tstore,\n\t\t}).$mount(el)\n\t})\n})\n","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { mapState } from 'vuex'\nimport { showError } from '@nextcloud/dialogs'\n\nexport default {\n\tcomputed: {\n\t\t...mapState({\n\t\t\tstatusType: state => state.userStatus.status,\n\t\t\tstatusIsUserDefined: state => state.userStatus.statusIsUserDefined,\n\t\t\tcustomIcon: state => state.userStatus.icon,\n\t\t\tcustomMessage: state => state.userStatus.message,\n\t\t}),\n\n\t\t/**\n\t\t * The message displayed in the top right corner\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tvisibleMessage() {\n\t\t\tif (this.customIcon && this.customMessage) {\n\t\t\t\treturn `${this.customIcon} ${this.customMessage}`\n\t\t\t}\n\n\t\t\tif (this.customMessage) {\n\t\t\t\treturn this.customMessage\n\t\t\t}\n\n\t\t\tif (this.statusIsUserDefined) {\n\t\t\t\tswitch (this.statusType) {\n\t\t\t\tcase 'online':\n\t\t\t\t\treturn this.$t('user_status', 'Online')\n\n\t\t\t\tcase 'away':\n\t\t\t\t\treturn this.$t('user_status', 'Away')\n\n\t\t\t\tcase 'dnd':\n\t\t\t\t\treturn this.$t('user_status', 'Do not disturb')\n\n\t\t\t\tcase 'invisible':\n\t\t\t\t\treturn this.$t('user_status', 'Invisible')\n\n\t\t\t\tcase 'offline':\n\t\t\t\t\treturn this.$t('user_status', 'Offline')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.$t('user_status', 'Set status')\n\t\t},\n\n\t\t/**\n\t\t * The status indicator icon\n\t\t *\n\t\t * @return {string | null}\n\t\t */\n\t\tstatusIcon() {\n\t\t\tswitch (this.statusType) {\n\t\t\tcase 'online':\n\t\t\t\treturn 'icon-user-status-online'\n\n\t\t\tcase 'away':\n\t\t\t\treturn 'icon-user-status-away'\n\n\t\t\tcase 'dnd':\n\t\t\t\treturn 'icon-user-status-dnd'\n\n\t\t\tcase 'invisible':\n\t\t\tcase 'offline':\n\t\t\t\treturn 'icon-user-status-invisible'\n\t\t\t}\n\n\t\t\treturn ''\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Changes the user-status\n\t\t *\n\t\t * @param {string} statusType (online / away / dnd / invisible)\n\t\t */\n\t\tasync changeStatus(statusType) {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('setStatus', { statusType })\n\t\t\t} catch (err) {\n\t\t\t\tshowError(this.$t('user_status', 'There was an error saving the new status'))\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst dateFactory = () => {\n\treturn new Date()\n}\n\nexport {\n\tdateFactory,\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".user-status-menu-item__header[data-v-24d48be7]{display:flex !important;flex-direction:column !important;width:auto !important;height:66px !important;padding:10px 12px 5px 12px !important;align-items:flex-start !important;color:var(--color-main-text) !important}.user-status-menu-item__header[data-v-24d48be7]:focus-visible{padding:6px 8px 1px 8px !important;margin:2px !important}.user-status-menu-item__header[data-v-24d48be7]:not([href]){height:var(--header-menu-item-height) !important;color:var(--color-text-maxcontrast) !important;cursor:default !important}.user-status-menu-item__header:not([href]) *[data-v-24d48be7]{cursor:default !important}.user-status-menu-item__header[data-v-24d48be7]:not([href]):hover{background-color:rgba(0,0,0,0) !important}.user-status-menu-item__header-content[data-v-24d48be7]{display:inline-flex !important;font-weight:bold !important;gap:0 10px !important;width:auto}.user-status-menu-item__header-content-displayname[data-v-24d48be7]{width:auto}.user-status-menu-item__header-content-placeholder[data-v-24d48be7]{width:16px !important;height:24px !important;margin-right:10px !important;visibility:hidden !important}.user-status-menu-item__header span[data-v-24d48be7]{color:var(--color-text-maxcontrast) !important}.user-status-menu-item__toggle-icon[data-v-24d48be7]{width:16px;height:16px;margin-right:10px;opacity:1 !important;background-size:16px}.user-status-menu-item__toggle--inline[data-v-24d48be7]{width:auto;min-width:44px;height:44px;margin:0;border:0;border-radius:var(--border-radius-pill);background-color:var(--color-background-translucent);font-size:inherit;font-weight:normal;-webkit-backdrop-filter:var(--background-blur);backdrop-filter:var(--background-blur)}.user-status-menu-item__toggle--inline[data-v-24d48be7]:active,.user-status-menu-item__toggle--inline[data-v-24d48be7]:hover,.user-status-menu-item__toggle--inline[data-v-24d48be7]:focus{background-color:var(--color-background-hover)}.user-status-menu-item__toggle--inline[data-v-24d48be7]:focus{box-shadow:0 0 0 2px var(--color-main-text) !important}li[data-v-24d48be7]{list-style-type:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/UserStatus.vue\"],\"names\":[],\"mappings\":\"AAgOC,gDACC,uBAAA,CACA,gCAAA,CACA,qBAAA,CACA,sBAAA,CACA,qCAAA,CACA,iCAAA,CACA,uCAAA,CAEA,8DACC,kCAAA,CACA,qBAAA,CAGD,4DACC,gDAAA,CACA,8CAAA,CACA,yBAAA,CAEA,8DACC,yBAAA,CAGD,kEACC,yCAAA,CAIF,wDACC,8BAAA,CACA,2BAAA,CACA,qBAAA,CACA,UAAA,CAEA,oEACC,UAAA,CAGD,oEACC,qBAAA,CACA,sBAAA,CACA,4BAAA,CACA,4BAAA,CAIF,qDACC,8CAAA,CAKD,qDACC,UAAA,CACA,WAAA,CACA,iBAAA,CACA,oBAAA,CACA,oBAAA,CAID,wDACC,UAAA,CACA,cAAA,CACA,WAAA,CACA,QAAA,CACA,QAAA,CACA,uCAAA,CACA,oDAAA,CACA,iBAAA,CACA,kBAAA,CAEA,8CAAA,CACA,sCAAA,CAEA,2LAGC,8CAAA,CAED,8DACC,sDAAA,CAMJ,oBACC,oBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.user-status-menu-item {\\n\\t&__header {\\n\\t\\tdisplay: flex !important;\\n\\t\\tflex-direction: column !important;\\n\\t\\twidth: auto !important;\\n\\t\\theight: 44px * 1.5 !important;\\n\\t\\tpadding: 10px 12px 5px 12px !important;\\n\\t\\talign-items: flex-start !important;\\n\\t\\tcolor: var(--color-main-text) !important;\\n\\n\\t\\t&:focus-visible {\\n\\t\\t\\tpadding: 6px 8px 1px 8px !important;\\n\\t\\t\\tmargin: 2px !important;\\n\\t\\t}\\n\\n\\t\\t&:not([href]) {\\n\\t\\t\\theight: var(--header-menu-item-height) !important;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\t\\t\\tcursor: default !important;\\n\\n\\t\\t\\t& * {\\n\\t\\t\\t\\tcursor: default !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground-color: transparent !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-content {\\n\\t\\t\\tdisplay: inline-flex !important;\\n\\t\\t\\tfont-weight: bold !important;\\n\\t\\t\\tgap: 0 10px !important;\\n\\t\\t\\twidth: auto;\\n\\n\\t\\t\\t&-displayname {\\n\\t\\t\\t\\twidth: auto;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-placeholder {\\n\\t\\t\\t\\twidth: 16px !important;\\n\\t\\t\\t\\theight: 24px !important;\\n\\t\\t\\t\\tmargin-right: 10px !important;\\n\\t\\t\\t\\tvisibility: hidden !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\tspan {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__toggle {\\n\\t\\t&-icon {\\n\\t\\t\\twidth: 16px;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\tmargin-right: 10px;\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t\\tbackground-size: 16px;\\n\\t\\t}\\n\\n\\t\\t// In dashboard\\n\\t\\t&--inline {\\n\\t\\t\\twidth: auto;\\n\\t\\t\\tmin-width: 44px;\\n\\t\\t\\theight: 44px;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tborder: 0;\\n\\t\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\t\\tbackground-color: var(--color-background-translucent);\\n\\t\\t\\tfont-size: inherit;\\n\\t\\t\\tfont-weight: normal;\\n\\n\\t\\t\\t-webkit-backdrop-filter: var(--background-blur);\\n\\t\\t\\tbackdrop-filter: var(--background-blur);\\n\\n\\t\\t\\t&:active,\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t}\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-main-text) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\nli {\\n\\tlist-style-type: none;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"user-status-modal\" + \"-\" + chunkId + \".js?v=\" + \"3f331fd4343acdf15116\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2613;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2613: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(75176); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","sendHeartbeat","isAway","url","generateUrl","HttpClient","status","response","data","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","component","_vm","this","_h","$createElement","_c","_self","staticClass","inline","_e","attrs","profilePageLink","on","loadProfilePage","_v","_s","displayName","loadingProfilePage","t","tag","class","$event","preventDefault","stopPropagation","openModal","apply","arguments","statusIcon","visibleMessage","closeModal","fetchAllPredefinedStatuses","generateOcsUrl","ocs","actions","loadAllPredefinedStatuses","state","commit","predefinedStatuses","length","statuses","mutations","addPredefinedStatus","push","getters","fetchCurrentStatus","setStatus","statusType","setPredefinedMessage","messageId","clearAt","setCustomMessage","message","clearMessage","getTimestampForClearAt","date","dateFactory","type","setSeconds","getSeconds","time","Math","floor","getTime","Number","moment","endOf","format","statusIsUserDefined","icon","messageIsPredefined","loadStatusFromServer","emit","userId","getCurrentUser","uid","setStatusFromObject","rootState","resolvedClearAt","find","reFetchStatusFromServer","setStatusFromHeartbeat","loadStatusFromInitialState","loadState","Vue","Vuex","Store","modules","userStatus","strict","__webpack_nonce__","btoa","getRequestToken","avatarDiv","document","getElementById","userStatusData","propsData","preloadedUserStatus","user","dataset","displayname","avatar","disableMenu","disableTooltip","Avatar","$mount","el","name","render","h","UserStatus","store","addEventListener","OCA","Dashboard","registerStatus","computed","mapState","customIcon","customMessage","$t","methods","changeStatus","$store","dispatch","showError","console","debug","Date","___CSS_LOADER_EXPORT___","__webpack_module_cache__","moduleId","cachedModule","undefined","loaded","__webpack_modules__","call","m","amdD","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","key","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","importScripts","location","currentScript","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","reject","error","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"user_status-menu.js?v=254715d31618ef74e539","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@nextcloud/moment/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/apps/user_status/src/services/heartbeatService.js","webpack:///nextcloud/apps/user_status/src/UserStatus.vue","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?6585","webpack://nextcloud/./apps/user_status/src/UserStatus.vue?d74a","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=template&id=24d48be7&scoped=true&","webpack:///nextcloud/apps/user_status/src/services/predefinedStatusService.js","webpack:///nextcloud/apps/user_status/src/store/predefinedStatuses.js","webpack:///nextcloud/apps/user_status/src/services/statusService.js","webpack:///nextcloud/apps/user_status/src/services/clearAtService.js","webpack:///nextcloud/apps/user_status/src/store/userStatus.js","webpack:///nextcloud/apps/user_status/src/store/index.js","webpack:///nextcloud/apps/user_status/src/menu.js","webpack:///nextcloud/apps/user_status/src/mixins/OnlineStatusMixin.js","webpack:///nextcloud/apps/user_status/src/services/dateService.js","webpack:///nextcloud/apps/user_status/src/UserStatus.vue?vue&type=style&index=0&id=24d48be7&lang=scss&scoped=true&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var map = {\n\t\"./af\": 36026,\n\t\"./af.js\": 36026,\n\t\"./ar\": 28093,\n\t\"./ar-dz\": 41943,\n\t\"./ar-dz.js\": 41943,\n\t\"./ar-kw\": 23969,\n\t\"./ar-kw.js\": 23969,\n\t\"./ar-ly\": 40594,\n\t\"./ar-ly.js\": 40594,\n\t\"./ar-ma\": 18369,\n\t\"./ar-ma.js\": 18369,\n\t\"./ar-sa\": 32579,\n\t\"./ar-sa.js\": 32579,\n\t\"./ar-tn\": 76442,\n\t\"./ar-tn.js\": 76442,\n\t\"./ar.js\": 28093,\n\t\"./az\": 86425,\n\t\"./az.js\": 86425,\n\t\"./be\": 22004,\n\t\"./be.js\": 22004,\n\t\"./bg\": 42982,\n\t\"./bg.js\": 42982,\n\t\"./bm\": 21067,\n\t\"./bm.js\": 21067,\n\t\"./bn\": 8366,\n\t\"./bn-bd\": 63837,\n\t\"./bn-bd.js\": 63837,\n\t\"./bn.js\": 8366,\n\t\"./bo\": 95040,\n\t\"./bo.js\": 95040,\n\t\"./br\": 521,\n\t\"./br.js\": 521,\n\t\"./bs\": 83242,\n\t\"./bs.js\": 83242,\n\t\"./ca\": 73046,\n\t\"./ca.js\": 73046,\n\t\"./cs\": 25794,\n\t\"./cs.js\": 25794,\n\t\"./cv\": 28231,\n\t\"./cv.js\": 28231,\n\t\"./cy\": 10927,\n\t\"./cy.js\": 10927,\n\t\"./da\": 42832,\n\t\"./da.js\": 42832,\n\t\"./de\": 29415,\n\t\"./de-at\": 3331,\n\t\"./de-at.js\": 3331,\n\t\"./de-ch\": 45524,\n\t\"./de-ch.js\": 45524,\n\t\"./de.js\": 29415,\n\t\"./dv\": 44700,\n\t\"./dv.js\": 44700,\n\t\"./el\": 88752,\n\t\"./el.js\": 88752,\n\t\"./en-au\": 90444,\n\t\"./en-au.js\": 90444,\n\t\"./en-ca\": 65959,\n\t\"./en-ca.js\": 65959,\n\t\"./en-gb\": 62762,\n\t\"./en-gb.js\": 62762,\n\t\"./en-ie\": 40909,\n\t\"./en-ie.js\": 40909,\n\t\"./en-il\": 79909,\n\t\"./en-il.js\": 79909,\n\t\"./en-in\": 87942,\n\t\"./en-in.js\": 87942,\n\t\"./en-nz\": 75200,\n\t\"./en-nz.js\": 75200,\n\t\"./en-sg\": 21415,\n\t\"./en-sg.js\": 21415,\n\t\"./eo\": 27447,\n\t\"./eo.js\": 27447,\n\t\"./es\": 86756,\n\t\"./es-do\": 47049,\n\t\"./es-do.js\": 47049,\n\t\"./es-mx\": 15915,\n\t\"./es-mx.js\": 15915,\n\t\"./es-us\": 57133,\n\t\"./es-us.js\": 57133,\n\t\"./es.js\": 86756,\n\t\"./et\": 72182,\n\t\"./et.js\": 72182,\n\t\"./eu\": 14419,\n\t\"./eu.js\": 14419,\n\t\"./fa\": 2916,\n\t\"./fa.js\": 2916,\n\t\"./fi\": 49964,\n\t\"./fi.js\": 49964,\n\t\"./fil\": 16448,\n\t\"./fil.js\": 16448,\n\t\"./fo\": 26094,\n\t\"./fo.js\": 26094,\n\t\"./fr\": 35833,\n\t\"./fr-ca\": 56994,\n\t\"./fr-ca.js\": 56994,\n\t\"./fr-ch\": 2740,\n\t\"./fr-ch.js\": 2740,\n\t\"./fr.js\": 35833,\n\t\"./fy\": 69542,\n\t\"./fy.js\": 69542,\n\t\"./ga\": 93264,\n\t\"./ga.js\": 93264,\n\t\"./gd\": 77457,\n\t\"./gd.js\": 77457,\n\t\"./gl\": 83043,\n\t\"./gl.js\": 83043,\n\t\"./gom-deva\": 24034,\n\t\"./gom-deva.js\": 24034,\n\t\"./gom-latn\": 28379,\n\t\"./gom-latn.js\": 28379,\n\t\"./gu\": 406,\n\t\"./gu.js\": 406,\n\t\"./he\": 73219,\n\t\"./he.js\": 73219,\n\t\"./hi\": 99834,\n\t\"./hi.js\": 99834,\n\t\"./hr\": 28754,\n\t\"./hr.js\": 28754,\n\t\"./hu\": 93945,\n\t\"./hu.js\": 93945,\n\t\"./hy-am\": 81319,\n\t\"./hy-am.js\": 81319,\n\t\"./id\": 24875,\n\t\"./id.js\": 24875,\n\t\"./is\": 23724,\n\t\"./is.js\": 23724,\n\t\"./it\": 79906,\n\t\"./it-ch\": 34303,\n\t\"./it-ch.js\": 34303,\n\t\"./it.js\": 79906,\n\t\"./ja\": 77105,\n\t\"./ja.js\": 77105,\n\t\"./jv\": 15026,\n\t\"./jv.js\": 15026,\n\t\"./ka\": 67416,\n\t\"./ka.js\": 67416,\n\t\"./kk\": 79734,\n\t\"./kk.js\": 79734,\n\t\"./km\": 60757,\n\t\"./km.js\": 60757,\n\t\"./kn\": 58369,\n\t\"./kn.js\": 58369,\n\t\"./ko\": 77687,\n\t\"./ko.js\": 77687,\n\t\"./ku\": 95544,\n\t\"./ku.js\": 95544,\n\t\"./ky\": 85431,\n\t\"./ky.js\": 85431,\n\t\"./lb\": 13613,\n\t\"./lb.js\": 13613,\n\t\"./lo\": 34252,\n\t\"./lo.js\": 34252,\n\t\"./lt\": 84619,\n\t\"./lt.js\": 84619,\n\t\"./lv\": 93760,\n\t\"./lv.js\": 93760,\n\t\"./me\": 93393,\n\t\"./me.js\": 93393,\n\t\"./mi\": 12369,\n\t\"./mi.js\": 12369,\n\t\"./mk\": 48664,\n\t\"./mk.js\": 48664,\n\t\"./ml\": 23099,\n\t\"./ml.js\": 23099,\n\t\"./mn\": 98539,\n\t\"./mn.js\": 98539,\n\t\"./mr\": 778,\n\t\"./mr.js\": 778,\n\t\"./ms\": 39970,\n\t\"./ms-my\": 82625,\n\t\"./ms-my.js\": 82625,\n\t\"./ms.js\": 39970,\n\t\"./mt\": 15714,\n\t\"./mt.js\": 15714,\n\t\"./my\": 53055,\n\t\"./my.js\": 53055,\n\t\"./nb\": 73945,\n\t\"./nb.js\": 73945,\n\t\"./ne\": 63645,\n\t\"./ne.js\": 63645,\n\t\"./nl\": 4829,\n\t\"./nl-be\": 12823,\n\t\"./nl-be.js\": 12823,\n\t\"./nl.js\": 4829,\n\t\"./nn\": 23756,\n\t\"./nn.js\": 23756,\n\t\"./oc-lnc\": 41228,\n\t\"./oc-lnc.js\": 41228,\n\t\"./pa-in\": 97877,\n\t\"./pa-in.js\": 97877,\n\t\"./pl\": 53066,\n\t\"./pl.js\": 53066,\n\t\"./pt\": 28677,\n\t\"./pt-br\": 81592,\n\t\"./pt-br.js\": 81592,\n\t\"./pt.js\": 28677,\n\t\"./ro\": 32722,\n\t\"./ro.js\": 32722,\n\t\"./ru\": 59138,\n\t\"./ru.js\": 59138,\n\t\"./sd\": 32568,\n\t\"./sd.js\": 32568,\n\t\"./se\": 49753,\n\t\"./se.js\": 49753,\n\t\"./si\": 58024,\n\t\"./si.js\": 58024,\n\t\"./sk\": 31058,\n\t\"./sk.js\": 31058,\n\t\"./sl\": 43452,\n\t\"./sl.js\": 43452,\n\t\"./sq\": 2795,\n\t\"./sq.js\": 2795,\n\t\"./sr\": 26976,\n\t\"./sr-cyrl\": 38819,\n\t\"./sr-cyrl.js\": 38819,\n\t\"./sr.js\": 26976,\n\t\"./ss\": 7467,\n\t\"./ss.js\": 7467,\n\t\"./sv\": 42787,\n\t\"./sv.js\": 42787,\n\t\"./sw\": 80298,\n\t\"./sw.js\": 80298,\n\t\"./ta\": 57532,\n\t\"./ta.js\": 57532,\n\t\"./te\": 76076,\n\t\"./te.js\": 76076,\n\t\"./tet\": 40452,\n\t\"./tet.js\": 40452,\n\t\"./tg\": 64794,\n\t\"./tg.js\": 64794,\n\t\"./th\": 48245,\n\t\"./th.js\": 48245,\n\t\"./tk\": 8870,\n\t\"./tk.js\": 8870,\n\t\"./tl-ph\": 36056,\n\t\"./tl-ph.js\": 36056,\n\t\"./tlh\": 15249,\n\t\"./tlh.js\": 15249,\n\t\"./tr\": 22053,\n\t\"./tr.js\": 22053,\n\t\"./tzl\": 39871,\n\t\"./tzl.js\": 39871,\n\t\"./tzm\": 39574,\n\t\"./tzm-latn\": 19210,\n\t\"./tzm-latn.js\": 19210,\n\t\"./tzm.js\": 39574,\n\t\"./ug-cn\": 91532,\n\t\"./ug-cn.js\": 91532,\n\t\"./uk\": 11432,\n\t\"./uk.js\": 11432,\n\t\"./ur\": 88523,\n\t\"./ur.js\": 88523,\n\t\"./uz\": 54958,\n\t\"./uz-latn\": 68735,\n\t\"./uz-latn.js\": 68735,\n\t\"./uz.js\": 54958,\n\t\"./vi\": 83398,\n\t\"./vi.js\": 83398,\n\t\"./x-pseudo\": 56665,\n\t\"./x-pseudo.js\": 56665,\n\t\"./yo\": 11642,\n\t\"./yo.js\": 11642,\n\t\"./zh-cn\": 5462,\n\t\"./zh-cn.js\": 5462,\n\t\"./zh-hk\": 92530,\n\t\"./zh-hk.js\": 92530,\n\t\"./zh-mo\": 41650,\n\t\"./zh-mo.js\": 41650,\n\t\"./zh-tw\": 97333,\n\t\"./zh-tw.js\": 97333\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 93365;","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\n\n/**\n * Sends a heartbeat\n *\n * @param {boolean} isAway Whether or not the user is active\n * @return {Promise<void>}\n */\nconst sendHeartbeat = async (isAway) => {\n\tconst url = generateUrl('/apps/user_status/heartbeat')\n\tconst response = await HttpClient.put(url, {\n\t\tstatus: isAway ? 'away' : 'online',\n\t})\n\treturn response.data\n}\n\nexport {\n\tsendHeartbeat,\n}\n","<!--\n - @copyright Copyright (c) 2020 Georg Ehrke <oc.list@georgehrke.com>\n - @author Georg Ehrke <oc.list@georgehrke.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li>\n\t\t<div class=\"user-status-menu-item\">\n\t\t\t<!-- Username display -->\n\t\t\t<a v-if=\"!inline\"\n\t\t\t\tclass=\"user-status-menu-item__header\"\n\t\t\t\t:href=\"profilePageLink\"\n\t\t\t\t@click=\"loadProfilePage\">\n\t\t\t\t<div class=\"user-status-menu-item__header-content\">\n\t\t\t\t\t<div class=\"user-status-menu-item__header-content-displayname\">{{ displayName }}</div>\n\t\t\t\t\t<div v-if=\"!loadingProfilePage\" class=\"user-status-menu-item__header-content-placeholder\" />\n\t\t\t\t\t<div v-else class=\"icon-loading-small\" />\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"profileEnabled\">\n\t\t\t\t\t{{ t('user_status', 'View profile') }}\n\t\t\t\t</div>\n\t\t\t</a>\n\n\t\t\t<!-- Status modal toggle -->\n\t\t\t<toggle :is=\"inline ? 'button' : 'a'\"\n\t\t\t\t:class=\"{'user-status-menu-item__toggle--inline': inline}\"\n\t\t\t\tclass=\"user-status-menu-item__toggle\"\n\t\t\t\thref=\"#\"\n\t\t\t\t@click.prevent.stop=\"openModal\">\n\t\t\t\t<span :class=\"statusIcon\" class=\"user-status-menu-item__toggle-icon\" />\n\t\t\t\t{{ visibleMessage }}\n\t\t\t</toggle>\n\t\t</div>\n\n\t\t<!-- Status management modal -->\n\t\t<SetStatusModal v-if=\"isModalOpen\"\n\t\t\t@close=\"closeModal\" />\n\t</li>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport debounce from 'debounce'\n\nimport { sendHeartbeat } from './services/heartbeatService'\nimport OnlineStatusMixin from './mixins/OnlineStatusMixin'\n\nconst { profileEnabled } = loadState('user_status', 'profileEnabled', false)\n\nexport default {\n\tname: 'UserStatus',\n\n\tcomponents: {\n\t\tSetStatusModal: () => import(/* webpackChunkName: 'user-status-modal' */'./components/SetStatusModal'),\n\t},\n\tmixins: [OnlineStatusMixin],\n\n\tprops: {\n\t\tinline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdisplayName: getCurrentUser().displayName,\n\t\t\theartbeatInterval: null,\n\t\t\tisAway: false,\n\t\t\tisModalOpen: false,\n\t\t\tloadingProfilePage: false,\n\t\t\tmouseMoveListener: null,\n\t\t\tprofileEnabled,\n\t\t\tsetAwayTimeout: null,\n\t\t}\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * The profile page link\n\t\t *\n\t\t * @return {string | null}\n\t\t */\n\t\tprofilePageLink() {\n\t\t\tif (this.profileEnabled) {\n\t\t\t\treturn generateUrl('/u/{userId}', { userId: getCurrentUser().uid })\n\t\t\t}\n\t\t\t// Since an anchor element is used rather than a button,\n\t\t\t// this hack removes href if the profile is disabled so that disabling pointer-events is not needed to prevent a click from opening a page\n\t\t\t// and to allow the hover event for styling\n\t\t\treturn null\n\t\t},\n\t},\n\n\t/**\n\t * Loads the current user's status from initial state\n\t * and stores it in Vuex\n\t */\n\tmounted() {\n\t\tsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t\tsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\n\t\tthis.$store.dispatch('loadStatusFromInitialState')\n\n\t\tif (OC.config.session_keepalive) {\n\t\t\t// Send the latest status to the server every 5 minutes\n\t\t\tthis.heartbeatInterval = setInterval(this._backgroundHeartbeat.bind(this), 1000 * 60 * 5)\n\t\t\tthis.setAwayTimeout = () => {\n\t\t\t\tthis.isAway = true\n\t\t\t}\n\t\t\t// Catch mouse movements, but debounce to once every 30 seconds\n\t\t\tthis.mouseMoveListener = debounce(() => {\n\t\t\t\tconst wasAway = this.isAway\n\t\t\t\tthis.isAway = false\n\t\t\t\t// Reset the two minute counter\n\t\t\t\tclearTimeout(this.setAwayTimeout)\n\t\t\t\t// If the user did not move the mouse within two minutes,\n\t\t\t\t// mark them as away\n\t\t\t\tsetTimeout(this.setAwayTimeout, 1000 * 60 * 2)\n\n\t\t\t\tif (wasAway) {\n\t\t\t\t\tthis._backgroundHeartbeat()\n\t\t\t\t}\n\t\t\t}, 1000 * 2, true)\n\t\t\twindow.addEventListener('mousemove', this.mouseMoveListener, {\n\t\t\t\tcapture: true,\n\t\t\t\tpassive: true,\n\t\t\t})\n\n\t\t\tthis._backgroundHeartbeat()\n\t\t}\n\t\tsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t},\n\n\t/**\n\t * Some housekeeping before destroying the component\n\t */\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t\tunsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t\twindow.removeEventListener('mouseMove', this.mouseMoveListener)\n\t\tclearInterval(this.heartbeatInterval)\n\t\tunsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t},\n\n\tmethods: {\n\t\thandleDisplayNameUpdate(displayName) {\n\t\t\tthis.displayName = displayName\n\t\t},\n\n\t\thandleProfileEnabledUpdate(profileEnabled) {\n\t\t\tthis.profileEnabled = profileEnabled\n\t\t},\n\n\t\tloadProfilePage() {\n\t\t\tif (this.profileEnabled) {\n\t\t\t\tthis.loadingProfilePage = true\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Opens the modal to set a custom status\n\t\t */\n\t\topenModal() {\n\t\t\tthis.isModalOpen = true\n\t\t},\n\t\t/**\n\t\t * Closes the modal\n\t\t */\n\t\tcloseModal() {\n\t\t\tthis.isModalOpen = false\n\t\t},\n\n\t\t/**\n\t\t * Sends the status heartbeat to the server\n\t\t *\n\t\t * @return {Promise<void>}\n\t\t * @private\n\t\t */\n\t\tasync _backgroundHeartbeat() {\n\t\t\ttry {\n\t\t\t\tconst status = await sendHeartbeat(this.isAway)\n\t\t\t\tif (status?.userId) {\n\t\t\t\t\tthis.$store.dispatch('setStatusFromHeartbeat', status)\n\t\t\t\t} else {\n\t\t\t\t\tawait this.$store.dispatch('reFetchStatusFromServer')\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.debug('Failed sending heartbeat, got: ' + error.response?.status)\n\t\t\t}\n\t\t},\n\t\thandleUserStatusUpdated(state) {\n\t\t\tif (OC.getCurrentUser().uid === state.userId) {\n\t\t\t\tthis.$store.dispatch('setStatusFromObject', {\n\t\t\t\t\tstatus: state.status,\n\t\t\t\t\ticon: state.icon,\n\t\t\t\t\tmessage: state.message,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-status-menu-item {\n\t&__header {\n\t\tdisplay: flex !important;\n\t\tflex-direction: column !important;\n\t\twidth: auto !important;\n\t\theight: 44px * 1.5 !important;\n\t\tpadding: 10px 12px 5px 12px !important;\n\t\talign-items: flex-start !important;\n\t\tcolor: var(--color-main-text) !important;\n\n\t\t&:focus-visible {\n\t\t\tpadding: 6px 8px 1px 8px !important;\n\t\t\tmargin: 2px !important;\n\t\t}\n\n\t\t&:not([href]) {\n\t\t\theight: var(--header-menu-item-height) !important;\n\t\t\tcolor: var(--color-text-maxcontrast) !important;\n\t\t\tcursor: default !important;\n\n\t\t\t& * {\n\t\t\t\tcursor: default !important;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: transparent !important;\n\t\t\t}\n\t\t}\n\n\t\t&-content {\n\t\t\tdisplay: inline-flex !important;\n\t\t\tfont-weight: bold !important;\n\t\t\tgap: 0 10px !important;\n\t\t\twidth: auto;\n\n\t\t\t&-displayname {\n\t\t\t\twidth: auto;\n\t\t\t}\n\n\t\t\t&-placeholder {\n\t\t\t\twidth: 16px !important;\n\t\t\t\theight: 24px !important;\n\t\t\t\tmargin-right: 10px !important;\n\t\t\t\tvisibility: hidden !important;\n\t\t\t}\n\t\t}\n\n\t\tspan {\n\t\t\tcolor: var(--color-text-maxcontrast) !important;\n\t\t}\n\t}\n\n\t&__toggle {\n\t\t&-icon {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tmargin-right: 10px;\n\t\t\topacity: 1 !important;\n\t\t\tbackground-size: 16px;\n\t\t}\n\n\t\t// In dashboard\n\t\t&--inline {\n\t\t\twidth: auto;\n\t\t\tmin-width: 44px;\n\t\t\theight: 44px;\n\t\t\tmargin: 0;\n\t\t\tborder: 0;\n\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\tbackground-color: var(--color-background-translucent);\n\t\t\tfont-size: inherit;\n\t\t\tfont-weight: normal;\n\n\t\t\t-webkit-backdrop-filter: var(--background-blur);\n\t\t\tbackdrop-filter: var(--background-blur);\n\n\t\t\t&:active,\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\t\t\t&:focus {\n\t\t\t\tbox-shadow: 0 0 0 2px var(--color-main-text) !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\nli {\n\tlist-style-type: none;\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.vue?vue&type=style&index=0&id=24d48be7&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserStatus.vue?vue&type=style&index=0&id=24d48be7&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserStatus.vue?vue&type=template&id=24d48be7&scoped=true&\"\nimport script from \"./UserStatus.vue?vue&type=script&lang=js&\"\nexport * from \"./UserStatus.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserStatus.vue?vue&type=style&index=0&id=24d48be7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24d48be7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[_c('div',{staticClass:\"user-status-menu-item\"},[(!_vm.inline)?_c('a',{staticClass:\"user-status-menu-item__header\",attrs:{\"href\":_vm.profilePageLink},on:{\"click\":_vm.loadProfilePage}},[_c('div',{staticClass:\"user-status-menu-item__header-content\"},[_c('div',{staticClass:\"user-status-menu-item__header-content-displayname\"},[_vm._v(_vm._s(_vm.displayName))]),_vm._v(\" \"),(!_vm.loadingProfilePage)?_c('div',{staticClass:\"user-status-menu-item__header-content-placeholder\"}):_c('div',{staticClass:\"icon-loading-small\"})]),_vm._v(\" \"),(_vm.profileEnabled)?_c('div',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('user_status', 'View profile'))+\"\\n\\t\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c(_vm.inline ? 'button' : 'a',{tag:\"toggle\",staticClass:\"user-status-menu-item__toggle\",class:{'user-status-menu-item__toggle--inline': _vm.inline},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openModal.apply(null, arguments)}}},[_c('span',{staticClass:\"user-status-menu-item__toggle-icon\",class:_vm.statusIcon}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.visibleMessage)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.isModalOpen)?_c('SetStatusModal',{on:{\"close\":_vm.closeModal}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches all predefined statuses from the server\n *\n * @return {Promise<void>}\n */\nconst fetchAllPredefinedStatuses = async () => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/predefined_statuses?format=json')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\nexport {\n\tfetchAllPredefinedStatuses,\n}\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { fetchAllPredefinedStatuses } from '../services/predefinedStatusService'\n\nconst state = {\n\tpredefinedStatuses: [],\n}\n\nconst mutations = {\n\n\t/**\n\t * Adds a predefined status to the state\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} status The status to add\n\t */\n\taddPredefinedStatus(state, status) {\n\t\tstate.predefinedStatuses.push(status)\n\t},\n}\n\nconst getters = {}\n\nconst actions = {\n\n\t/**\n\t * Loads all predefined statuses from the server\n\t *\n\t * @param {object} vuex The Vuex components\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state -\n\t */\n\tasync loadAllPredefinedStatuses({ state, commit }) {\n\t\tif (state.predefinedStatuses.length > 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst statuses = await fetchAllPredefinedStatuses()\n\t\tfor (const status of statuses) {\n\t\t\tcommit('addPredefinedStatus', status)\n\t\t}\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Fetches the current user-status\n *\n * @return {Promise<object>}\n */\nconst fetchCurrentStatus = async () => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Sets the status\n *\n * @param {string} statusType The status (online / away / dnd / invisible)\n * @return {Promise<void>}\n */\nconst setStatus = async (statusType) => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/status')\n\tawait HttpClient.put(url, {\n\t\tstatusType,\n\t})\n}\n\n/**\n * Sets a message based on our predefined statuses\n *\n * @param {string} messageId The id of the message, taken from predefined status service\n * @param {number | null} clearAt When to automatically clean the status\n * @return {Promise<void>}\n */\nconst setPredefinedMessage = async (messageId, clearAt = null) => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message/predefined?format=json')\n\tawait HttpClient.put(url, {\n\t\tmessageId,\n\t\tclearAt,\n\t})\n}\n\n/**\n * Sets a custom message\n *\n * @param {string} message The user-defined message\n * @param {string | null} statusIcon The user-defined icon\n * @param {number | null} clearAt When to automatically clean the status\n * @return {Promise<void>}\n */\nconst setCustomMessage = async (message, statusIcon = null, clearAt = null) => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message/custom?format=json')\n\tawait HttpClient.put(url, {\n\t\tmessage,\n\t\tstatusIcon,\n\t\tclearAt,\n\t})\n}\n\n/**\n * Clears the current status of the user\n *\n * @return {Promise<void>}\n */\nconst clearMessage = async () => {\n\tconst url = generateOcsUrl('apps/user_status/api/v1/user_status/message?format=json')\n\tawait HttpClient.delete(url)\n}\n\nexport {\n\tfetchCurrentStatus,\n\tsetStatus,\n\tsetCustomMessage,\n\tsetPredefinedMessage,\n\tclearMessage,\n}\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport {\n\tdateFactory,\n} from './dateService'\nimport moment from '@nextcloud/moment'\n\n/**\n * Calculates the actual clearAt timestamp\n *\n * @param {object | null} clearAt The clear-at config\n * @return {number | null}\n */\nconst getTimestampForClearAt = (clearAt) => {\n\tif (clearAt === null) {\n\t\treturn null\n\t}\n\n\tconst date = dateFactory()\n\n\tif (clearAt.type === 'period') {\n\t\tdate.setSeconds(date.getSeconds() + clearAt.time)\n\t\treturn Math.floor(date.getTime() / 1000)\n\t}\n\tif (clearAt.type === 'end-of') {\n\t\tswitch (clearAt.time) {\n\t\tcase 'day':\n\t\tcase 'week':\n\t\t\treturn Number(moment(date).endOf(clearAt.time).format('X'))\n\t\t}\n\t}\n\t// This is not an officially supported type\n\t// but only used internally to show the remaining time\n\t// in the Set Status Modal\n\tif (clearAt.type === '_time') {\n\t\treturn clearAt.time\n\t}\n\n\treturn null\n}\n\nexport {\n\tgetTimestampForClearAt,\n}\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport {\n\tfetchCurrentStatus,\n\tsetStatus,\n\tsetPredefinedMessage,\n\tsetCustomMessage,\n\tclearMessage,\n} from '../services/statusService'\nimport { loadState } from '@nextcloud/initial-state'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getTimestampForClearAt } from '../services/clearAtService'\nimport { emit } from '@nextcloud/event-bus'\n\nconst state = {\n\t// Status (online / away / dnd / invisible / offline)\n\tstatus: null,\n\t// Whether or not the status is user-defined\n\tstatusIsUserDefined: null,\n\t// A custom message set by the user\n\tmessage: null,\n\t// The icon selected by the user\n\ticon: null,\n\t// When to automatically clean the status\n\tclearAt: null,\n\t// Whether or not the message is predefined\n\t// (and can automatically be translated by Nextcloud)\n\tmessageIsPredefined: null,\n\t// The id of the message in case it's predefined\n\tmessageId: null,\n}\n\nconst mutations = {\n\n\t/**\n\t * Sets a new status\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.statusType The new status type\n\t */\n\tsetStatus(state, { statusType }) {\n\t\tstate.status = statusType\n\t\tstate.statusIsUserDefined = true\n\t},\n\n\t/**\n\t * Sets a message using a predefined message\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.messageId The messageId\n\t * @param {number | null} data.clearAt When to automatically clear the status\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t */\n\tsetPredefinedMessage(state, { messageId, clearAt, message, icon }) {\n\t\tstate.messageId = messageId\n\t\tstate.messageIsPredefined = true\n\n\t\tstate.message = message\n\t\tstate.icon = icon\n\t\tstate.clearAt = clearAt\n\t},\n\n\t/**\n\t * Sets a custom message\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {number} data.clearAt When to automatically clear the status\n\t */\n\tsetCustomMessage(state, { message, icon, clearAt }) {\n\t\tstate.messageId = null\n\t\tstate.messageIsPredefined = false\n\n\t\tstate.message = message\n\t\tstate.icon = icon\n\t\tstate.clearAt = clearAt\n\t},\n\n\t/**\n\t * Clears the status\n\t *\n\t * @param {object} state The Vuex state\n\t */\n\tclearMessage(state) {\n\t\tstate.messageId = null\n\t\tstate.messageIsPredefined = false\n\n\t\tstate.message = null\n\t\tstate.icon = null\n\t\tstate.clearAt = null\n\t},\n\n\t/**\n\t * Loads the status from initial state\n\t *\n\t * @param {object} state The Vuex state\n\t * @param {object} data The destructuring object\n\t * @param {string} data.status The status type\n\t * @param {boolean} data.statusIsUserDefined Whether or not this status is user-defined\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {number} data.clearAt When to automatically clear the status\n\t * @param {boolean} data.messageIsPredefined Whether or not the message is predefined\n\t * @param {string} data.messageId The id of the predefined message\n\t */\n\tloadStatusFromServer(state, { status, statusIsUserDefined, message, icon, clearAt, messageIsPredefined, messageId }) {\n\t\tstate.status = status\n\t\tstate.statusIsUserDefined = statusIsUserDefined\n\t\tstate.message = message\n\t\tstate.icon = icon\n\t\tstate.clearAt = clearAt\n\t\tstate.messageIsPredefined = messageIsPredefined\n\t\tstate.messageId = messageId\n\t},\n}\n\nconst getters = {}\n\nconst actions = {\n\n\t/**\n\t * Sets a new status\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.statusType The new status type\n\t * @return {Promise<void>}\n\t */\n\tasync setStatus({ commit, state }, { statusType }) {\n\t\tawait setStatus(statusType)\n\t\tcommit('setStatus', { statusType })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Update status from 'user_status:status.updated' update.\n\t * This doesn't trigger another 'user_status:status.updated'\n\t * event.\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {string} status The new status\n\t * @return {Promise<void>}\n\t */\n\tasync setStatusFromObject({ commit, state }, status) {\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Sets a message using a predefined message\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} vuex.rootState The Vuex root state\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.messageId The messageId\n\t * @param {object | null} data.clearAt When to automatically clear the status\n\t * @return {Promise<void>}\n\t */\n\tasync setPredefinedMessage({ commit, rootState, state }, { messageId, clearAt }) {\n\t\tconst resolvedClearAt = getTimestampForClearAt(clearAt)\n\n\t\tawait setPredefinedMessage(messageId, resolvedClearAt)\n\t\tconst status = rootState.predefinedStatuses.predefinedStatuses.find((status) => status.id === messageId)\n\t\tconst { message, icon } = status\n\n\t\tcommit('setPredefinedMessage', { messageId, clearAt: resolvedClearAt, message, icon })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Sets a custom message\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @param {object} data The data destructuring object\n\t * @param {string} data.message The message\n\t * @param {string} data.icon The icon\n\t * @param {object | null} data.clearAt When to automatically clear the status\n\t * @return {Promise<void>}\n\t */\n\tasync setCustomMessage({ commit, state }, { message, icon, clearAt }) {\n\t\tconst resolvedClearAt = getTimestampForClearAt(clearAt)\n\n\t\tawait setCustomMessage(message, icon, resolvedClearAt)\n\t\tcommit('setCustomMessage', { message, icon, clearAt: resolvedClearAt })\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Clears the status\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} vuex.state The Vuex state object\n\t * @return {Promise<void>}\n\t */\n\tasync clearMessage({ commit, state }) {\n\t\tawait clearMessage()\n\t\tcommit('clearMessage')\n\t\temit('user_status:status.updated', {\n\t\t\tstatus: state.status,\n\t\t\tmessage: state.message,\n\t\t\ticon: state.icon,\n\t\t\tclearAt: state.clearAt,\n\t\t\tuserId: getCurrentUser()?.uid,\n\t\t})\n\t},\n\n\t/**\n\t * Re-fetches the status from the server\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @return {Promise<void>}\n\t */\n\tasync reFetchStatusFromServer({ commit }) {\n\t\tconst status = await fetchCurrentStatus()\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Stores the status we got in the reply of the heartbeat\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t * @param {object} status The data destructuring object\n\t * @param {string} status.status The status type\n\t * @param {boolean} status.statusIsUserDefined Whether or not this status is user-defined\n\t * @param {string} status.message The message\n\t * @param {string} status.icon The icon\n\t * @param {number} status.clearAt When to automatically clear the status\n\t * @param {boolean} status.messageIsPredefined Whether or not the message is predefined\n\t * @param {string} status.messageId The id of the predefined message\n\t * @return {Promise<void>}\n\t */\n\tasync setStatusFromHeartbeat({ commit }, status) {\n\t\tcommit('loadStatusFromServer', status)\n\t},\n\n\t/**\n\t * Loads the server from the initial state\n\t *\n\t * @param {object} vuex The Vuex destructuring object\n\t * @param {Function} vuex.commit The Vuex commit function\n\t */\n\tloadStatusFromInitialState({ commit }) {\n\t\tconst status = loadState('user_status', 'status')\n\t\tcommit('loadStatusFromServer', status)\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport predefinedStatuses from './predefinedStatuses'\nimport userStatus from './userStatus'\n\nVue.use(Vuex)\n\nexport default new Store({\n\tmodules: {\n\t\tpredefinedStatuses,\n\t\tuserStatus,\n\t},\n\tstrict: true,\n})\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport UserStatus from './UserStatus'\nimport store from './store'\nimport Avatar from '@nextcloud/vue/dist/Components/Avatar'\nimport { loadState } from '@nextcloud/initial-state'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.prototype.t = t\nVue.prototype.$t = t\n\nconst avatarDiv = document.getElementById('avatardiv-menu')\nconst userStatusData = loadState('user_status', 'status')\nconst propsData = {\n\tpreloadedUserStatus: {\n\t\tmessage: userStatusData.message,\n\t\ticon: userStatusData.icon,\n\t\tstatus: userStatusData.status,\n\t},\n\tuser: avatarDiv.dataset.user,\n\tdisplayName: avatarDiv.dataset.displayname,\n\turl: avatarDiv.dataset.avatar,\n\tdisableMenu: true,\n\tdisableTooltip: true,\n}\n\nconst AvatarInMenu = Vue.extend(Avatar)\nnew AvatarInMenu({ propsData }).$mount('#avatardiv-menu')\n\n// Register settings menu entry\nexport default new Vue({\n\tel: 'li[data-id=\"user_status-menuitem\"]',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UserStatusRoot',\n\trender: h => h(UserStatus),\n\tstore,\n})\n\n// Register dashboard status\ndocument.addEventListener('DOMContentLoaded', function() {\n\tif (!OCA.Dashboard) {\n\t\treturn\n\t}\n\n\tOCA.Dashboard.registerStatus('status', (el) => {\n\t\tconst Dashboard = Vue.extend(UserStatus)\n\t\treturn new Dashboard({\n\t\t\tpropsData: {\n\t\t\t\tinline: true,\n\t\t\t},\n\t\t\tstore,\n\t\t}).$mount(el)\n\t})\n})\n","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { mapState } from 'vuex'\nimport { showError } from '@nextcloud/dialogs'\n\nexport default {\n\tcomputed: {\n\t\t...mapState({\n\t\t\tstatusType: state => state.userStatus.status,\n\t\t\tstatusIsUserDefined: state => state.userStatus.statusIsUserDefined,\n\t\t\tcustomIcon: state => state.userStatus.icon,\n\t\t\tcustomMessage: state => state.userStatus.message,\n\t\t}),\n\n\t\t/**\n\t\t * The message displayed in the top right corner\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tvisibleMessage() {\n\t\t\tif (this.customIcon && this.customMessage) {\n\t\t\t\treturn `${this.customIcon} ${this.customMessage}`\n\t\t\t}\n\n\t\t\tif (this.customMessage) {\n\t\t\t\treturn this.customMessage\n\t\t\t}\n\n\t\t\tif (this.statusIsUserDefined) {\n\t\t\t\tswitch (this.statusType) {\n\t\t\t\tcase 'online':\n\t\t\t\t\treturn this.$t('user_status', 'Online')\n\n\t\t\t\tcase 'away':\n\t\t\t\t\treturn this.$t('user_status', 'Away')\n\n\t\t\t\tcase 'dnd':\n\t\t\t\t\treturn this.$t('user_status', 'Do not disturb')\n\n\t\t\t\tcase 'invisible':\n\t\t\t\t\treturn this.$t('user_status', 'Invisible')\n\n\t\t\t\tcase 'offline':\n\t\t\t\t\treturn this.$t('user_status', 'Offline')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.$t('user_status', 'Set status')\n\t\t},\n\n\t\t/**\n\t\t * The status indicator icon\n\t\t *\n\t\t * @return {string | null}\n\t\t */\n\t\tstatusIcon() {\n\t\t\tswitch (this.statusType) {\n\t\t\tcase 'online':\n\t\t\t\treturn 'icon-user-status-online'\n\n\t\t\tcase 'away':\n\t\t\t\treturn 'icon-user-status-away'\n\n\t\t\tcase 'dnd':\n\t\t\t\treturn 'icon-user-status-dnd'\n\n\t\t\tcase 'invisible':\n\t\t\tcase 'offline':\n\t\t\t\treturn 'icon-user-status-invisible'\n\t\t\t}\n\n\t\t\treturn ''\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Changes the user-status\n\t\t *\n\t\t * @param {string} statusType (online / away / dnd / invisible)\n\t\t */\n\t\tasync changeStatus(statusType) {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('setStatus', { statusType })\n\t\t\t} catch (err) {\n\t\t\t\tshowError(this.$t('user_status', 'There was an error saving the new status'))\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst dateFactory = () => {\n\treturn new Date()\n}\n\nexport {\n\tdateFactory,\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".user-status-menu-item__header[data-v-24d48be7]{display:flex !important;flex-direction:column !important;width:auto !important;height:66px !important;padding:10px 12px 5px 12px !important;align-items:flex-start !important;color:var(--color-main-text) !important}.user-status-menu-item__header[data-v-24d48be7]:focus-visible{padding:6px 8px 1px 8px !important;margin:2px !important}.user-status-menu-item__header[data-v-24d48be7]:not([href]){height:var(--header-menu-item-height) !important;color:var(--color-text-maxcontrast) !important;cursor:default !important}.user-status-menu-item__header:not([href]) *[data-v-24d48be7]{cursor:default !important}.user-status-menu-item__header[data-v-24d48be7]:not([href]):hover{background-color:rgba(0,0,0,0) !important}.user-status-menu-item__header-content[data-v-24d48be7]{display:inline-flex !important;font-weight:bold !important;gap:0 10px !important;width:auto}.user-status-menu-item__header-content-displayname[data-v-24d48be7]{width:auto}.user-status-menu-item__header-content-placeholder[data-v-24d48be7]{width:16px !important;height:24px !important;margin-right:10px !important;visibility:hidden !important}.user-status-menu-item__header span[data-v-24d48be7]{color:var(--color-text-maxcontrast) !important}.user-status-menu-item__toggle-icon[data-v-24d48be7]{width:16px;height:16px;margin-right:10px;opacity:1 !important;background-size:16px}.user-status-menu-item__toggle--inline[data-v-24d48be7]{width:auto;min-width:44px;height:44px;margin:0;border:0;border-radius:var(--border-radius-pill);background-color:var(--color-background-translucent);font-size:inherit;font-weight:normal;-webkit-backdrop-filter:var(--background-blur);backdrop-filter:var(--background-blur)}.user-status-menu-item__toggle--inline[data-v-24d48be7]:active,.user-status-menu-item__toggle--inline[data-v-24d48be7]:hover,.user-status-menu-item__toggle--inline[data-v-24d48be7]:focus{background-color:var(--color-background-hover)}.user-status-menu-item__toggle--inline[data-v-24d48be7]:focus{box-shadow:0 0 0 2px var(--color-main-text) !important}li[data-v-24d48be7]{list-style-type:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/UserStatus.vue\"],\"names\":[],\"mappings\":\"AAgOC,gDACC,uBAAA,CACA,gCAAA,CACA,qBAAA,CACA,sBAAA,CACA,qCAAA,CACA,iCAAA,CACA,uCAAA,CAEA,8DACC,kCAAA,CACA,qBAAA,CAGD,4DACC,gDAAA,CACA,8CAAA,CACA,yBAAA,CAEA,8DACC,yBAAA,CAGD,kEACC,yCAAA,CAIF,wDACC,8BAAA,CACA,2BAAA,CACA,qBAAA,CACA,UAAA,CAEA,oEACC,UAAA,CAGD,oEACC,qBAAA,CACA,sBAAA,CACA,4BAAA,CACA,4BAAA,CAIF,qDACC,8CAAA,CAKD,qDACC,UAAA,CACA,WAAA,CACA,iBAAA,CACA,oBAAA,CACA,oBAAA,CAID,wDACC,UAAA,CACA,cAAA,CACA,WAAA,CACA,QAAA,CACA,QAAA,CACA,uCAAA,CACA,oDAAA,CACA,iBAAA,CACA,kBAAA,CAEA,8CAAA,CACA,sCAAA,CAEA,2LAGC,8CAAA,CAED,8DACC,sDAAA,CAMJ,oBACC,oBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.user-status-menu-item {\\n\\t&__header {\\n\\t\\tdisplay: flex !important;\\n\\t\\tflex-direction: column !important;\\n\\t\\twidth: auto !important;\\n\\t\\theight: 44px * 1.5 !important;\\n\\t\\tpadding: 10px 12px 5px 12px !important;\\n\\t\\talign-items: flex-start !important;\\n\\t\\tcolor: var(--color-main-text) !important;\\n\\n\\t\\t&:focus-visible {\\n\\t\\t\\tpadding: 6px 8px 1px 8px !important;\\n\\t\\t\\tmargin: 2px !important;\\n\\t\\t}\\n\\n\\t\\t&:not([href]) {\\n\\t\\t\\theight: var(--header-menu-item-height) !important;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\t\\t\\tcursor: default !important;\\n\\n\\t\\t\\t& * {\\n\\t\\t\\t\\tcursor: default !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground-color: transparent !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-content {\\n\\t\\t\\tdisplay: inline-flex !important;\\n\\t\\t\\tfont-weight: bold !important;\\n\\t\\t\\tgap: 0 10px !important;\\n\\t\\t\\twidth: auto;\\n\\n\\t\\t\\t&-displayname {\\n\\t\\t\\t\\twidth: auto;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-placeholder {\\n\\t\\t\\t\\twidth: 16px !important;\\n\\t\\t\\t\\theight: 24px !important;\\n\\t\\t\\t\\tmargin-right: 10px !important;\\n\\t\\t\\t\\tvisibility: hidden !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\tspan {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__toggle {\\n\\t\\t&-icon {\\n\\t\\t\\twidth: 16px;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\tmargin-right: 10px;\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t\\tbackground-size: 16px;\\n\\t\\t}\\n\\n\\t\\t// In dashboard\\n\\t\\t&--inline {\\n\\t\\t\\twidth: auto;\\n\\t\\t\\tmin-width: 44px;\\n\\t\\t\\theight: 44px;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tborder: 0;\\n\\t\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\t\\tbackground-color: var(--color-background-translucent);\\n\\t\\t\\tfont-size: inherit;\\n\\t\\t\\tfont-weight: normal;\\n\\n\\t\\t\\t-webkit-backdrop-filter: var(--background-blur);\\n\\t\\t\\tbackdrop-filter: var(--background-blur);\\n\\n\\t\\t\\t&:active,\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t}\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-main-text) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\nli {\\n\\tlist-style-type: none;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"user-status-modal\" + \"-\" + chunkId + \".js?v=\" + \"3f331fd4343acdf15116\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2613;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2613: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(75176); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","sendHeartbeat","isAway","url","generateUrl","HttpClient","status","response","data","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","component","_vm","this","_h","$createElement","_c","_self","staticClass","inline","_e","attrs","profilePageLink","on","loadProfilePage","_v","_s","displayName","loadingProfilePage","t","tag","class","$event","preventDefault","stopPropagation","openModal","apply","arguments","statusIcon","visibleMessage","closeModal","fetchAllPredefinedStatuses","generateOcsUrl","ocs","actions","loadAllPredefinedStatuses","state","commit","predefinedStatuses","length","statuses","mutations","addPredefinedStatus","push","getters","fetchCurrentStatus","setStatus","statusType","setPredefinedMessage","messageId","clearAt","setCustomMessage","message","clearMessage","getTimestampForClearAt","date","dateFactory","type","setSeconds","getSeconds","time","Math","floor","getTime","Number","moment","endOf","format","statusIsUserDefined","icon","messageIsPredefined","loadStatusFromServer","emit","userId","getCurrentUser","uid","setStatusFromObject","rootState","resolvedClearAt","find","reFetchStatusFromServer","setStatusFromHeartbeat","loadStatusFromInitialState","loadState","Vue","Vuex","Store","modules","userStatus","strict","__webpack_nonce__","btoa","getRequestToken","avatarDiv","document","getElementById","userStatusData","propsData","preloadedUserStatus","user","dataset","displayname","avatar","disableMenu","disableTooltip","Avatar","$mount","el","name","render","h","UserStatus","store","addEventListener","OCA","Dashboard","registerStatus","computed","mapState","customIcon","customMessage","$t","methods","changeStatus","$store","dispatch","showError","console","debug","Date","___CSS_LOADER_EXPORT___","__webpack_module_cache__","moduleId","cachedModule","undefined","loaded","__webpack_modules__","call","m","amdD","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","key","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","importScripts","location","currentScript","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","reject","error","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js index e03728a80cb..f6262e13b40 100644 --- a/lib/l10n/tr.js +++ b/lib/l10n/tr.js @@ -97,7 +97,7 @@ OC.L10N.register( "Email" : "E-posta", "Mail %s" : "E-posta gönder: %s", "Phone" : "Telefon", - "Call %s" : "Ara: %s", + "Call %s" : "Çağrı gönder: %s", "Twitter" : "Twitter", "View %s on Twitter" : "Twitter üzerinde bak: %s", "Website" : "Web sitesi", diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json index 84fb4177d06..894fca744d5 100644 --- a/lib/l10n/tr.json +++ b/lib/l10n/tr.json @@ -95,7 +95,7 @@ "Email" : "E-posta", "Mail %s" : "E-posta gönder: %s", "Phone" : "Telefon", - "Call %s" : "Ara: %s", + "Call %s" : "Çağrı gönder: %s", "Twitter" : "Twitter", "View %s on Twitter" : "Twitter üzerinde bak: %s", "Website" : "Web sitesi", diff --git a/tests/acceptance/composer.json b/tests/acceptance/composer.json index a2ec896d94e..25f74d463d8 100644 --- a/tests/acceptance/composer.json +++ b/tests/acceptance/composer.json @@ -4,7 +4,7 @@ "behat/mink": "1.8.1", "behat/mink-extension": "2.3.1", "behat/mink-selenium2-driver": "1.4.0", - "phpunit/phpunit": "6.5.14" + "phpunit/phpunit": "9.5.19" }, "autoload": { "psr-4": { diff --git a/tests/acceptance/composer.lock b/tests/acceptance/composer.lock index 20d93036ba9..b199c6fd0b1 100644 --- a/tests/acceptance/composer.lock +++ b/tests/acceptance/composer.lock @@ -1,10 +1,10 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d2c44a0ea2452a05e7f45d8ca6ef0387", + "content-hash": "0b9561c5aa752c7c6746fc2d13e2e7cb", "packages": [], "packages-dev": [ { @@ -531,29 +531,82 @@ "time": "2020-11-13T09:40:50+00:00" }, { + "name": "nikic/php-parser", + "version": "v4.13.2", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "210577fe3cf7badcc5814d99455df46564f3c077" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077", + "reference": "210577fe3cf7badcc5814d99455df46564f3c077", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2021-11-30T19:35:32+00:00" + }, + { "name": "phar-io/manifest", - "version": "1.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { "ext-dom": "*", "ext-phar": "*", - "phar-io/version": "^1.0.1", - "php": "^5.6 || ^7.0" + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -583,24 +636,24 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2017-03-05T18:14:27+00:00" + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", - "version": "1.0.1", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -630,7 +683,7 @@ } ], "description": "Library for handling version information and constraints", - "time": "2017-03-05T17:38:23+00:00" + "time": "2022-02-21T01:04:05+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -780,33 +833,33 @@ }, { "name": "phpspec/prophecy", - "version": "v1.10.3", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "451c3cd1418cf640de218914901e51b064abb093" + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", - "reference": "451c3cd1418cf640de218914901e51b064abb093", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.2", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5 || ^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "phpspec/phpspec": "^6.0 || ^7.0", + "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -839,44 +892,48 @@ "spy", "stub" ], - "time": "2020-03-05T15:02:03+00:00" + "time": "2021-12-08T12:19:24+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "5.3.2", + "version": "9.2.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c89677919c5dd6d3b3852f230a663118762218ac" + "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac", - "reference": "c89677919c5dd6d3b3852f230a663118762218ac", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f", + "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-xmlwriter": "*", - "php": "^7.0", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^2.0.1", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" + "nikic/php-parser": "^4.13.0", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-xdebug": "^2.5.5" + "ext-pcov": "*", + "ext-xdebug": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.3.x-dev" + "dev-master": "9.2-dev" } }, "autoload": { @@ -902,29 +959,38 @@ "testing", "xunit" ], - "time": "2018-04-06T15:36:58+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-03-07T09:28:20+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "1.4.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -939,7 +1005,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -949,26 +1015,99 @@ "filesystem", "iterator" ], - "time": "2017-11-27T13:52:08+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" }, { "name": "phpunit/php-text-template", - "version": "1.2.1", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -990,32 +1129,38 @@ "keywords": [ "template" ], - "time": "2015-06-21T13:50:34+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" }, { "name": "phpunit/php-timer", - "version": "1.0.9", + "version": "5.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -1030,7 +1175,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -1039,7 +1184,13 @@ "keywords": [ "timer" ], - "time": "2017-02-26T11:10:40+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" }, { "name": "phpunit/php-token-stream", @@ -1093,53 +1244,55 @@ }, { "name": "phpunit/phpunit", - "version": "6.5.14", + "version": "9.5.19", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7" + "reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bac23fe7ff13dbdb461481f706f0e9fe746334b7", - "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/35ea4b7f3acabb26f4bb640f8c30866c401da807", + "reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807", "shasum": "" }, "require": { + "doctrine/instantiator": "^1.3.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", - "myclabs/deep-copy": "^1.6.1", - "phar-io/manifest": "^1.0.1", - "phar-io/version": "^1.0", - "php": "^7.0", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^5.3", - "phpunit/php-file-iterator": "^1.4.3", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^1.0.9", - "phpunit/phpunit-mock-objects": "^5.0.9", - "sebastian/comparator": "^2.1", - "sebastian/diff": "^2.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2", - "phpunit/dbunit": "<3.0" + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpspec/prophecy": "^1.12.1", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.5", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.3", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.0", + "sebastian/version": "^3.0.2" }, "require-dev": { - "ext-pdo": "*" + "ext-pdo": "*", + "phpspec/prophecy-phpunit": "^2.0.1" }, "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "^1.1" + "ext-soap": "*", + "ext-xdebug": "*" }, "bin": [ "phpunit" @@ -1147,10 +1300,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "6.5.x-dev" + "dev-master": "9.5-dev" } }, "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], "classmap": [ "src/" ] @@ -1173,67 +1329,17 @@ "testing", "xunit" ], - "time": "2019-02-01T05:22:47+00:00" - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "5.0.10", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f", - "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.5", - "php": "^7.0", - "phpunit/php-text-template": "^1.2.1", - "sebastian/exporter": "^3.1" - }, - "conflict": { - "phpunit/phpunit": "<6.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.5.11" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "funding": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" } ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "abandoned": true, - "time": "2018-08-09T05:50:03+00:00" + "time": "2022-03-15T09:57:31+00:00" }, { "name": "psr/container", @@ -1331,29 +1437,133 @@ "time": "2019-01-08T18:20:26+00:00" }, { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -1373,34 +1583,40 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2020-11-30T08:15:22+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" }, { "name": "sebastian/comparator", - "version": "2.1.3", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" + "reference": "55f4261989e546dc112258c7a75935a81a7ce382" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/diff": "^2.0 || ^3.0", - "sebastian/exporter": "^3.1" + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.4" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1414,6 +1630,10 @@ ], "authors": [ { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" }, @@ -1424,10 +1644,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -1437,27 +1653,34 @@ "compare", "equality" ], - "time": "2018-02-01T13:46:46+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:49:45+00:00" }, { - "name": "sebastian/diff", - "version": "2.0.1", + "name": "sebastian/complexity", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", "shasum": "" }, "require": { - "php": "^7.0" + "nikic/php-parser": "^4.7", + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.2" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { @@ -1476,45 +1699,110 @@ ], "authors": [ { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ - "diff" + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2017-08-03T08:09:46+00:00" + "time": "2020-10-26T13:10:38+00:00" }, { "name": "sebastian/environment", - "version": "3.1.0", + "version": "5.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + "reference": "388b6ced16caa751030f6a69e588299fa09200ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.1" + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -1539,34 +1827,40 @@ "environment", "hhvm" ], - "time": "2017-07-01T08:51:00+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:52:38+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" + "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", - "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1601,32 +1895,41 @@ } ], "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], - "time": "2020-11-30T07:47:53+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-11-11T14:18:36+00:00" }, { "name": "sebastian/global-state", - "version": "2.0.0", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "ext-dom": "*", + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-uopz": "*" @@ -1634,7 +1937,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -1657,34 +1960,93 @@ "keywords": [ "global state" ], - "time": "2017-04-27T15:39:26+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.4", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1704,32 +2066,38 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2020-11-30T07:40:27+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.2", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -1749,32 +2117,38 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2020-11-30T07:37:18+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.1", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1802,29 +2176,38 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2020-11-30T07:34:24+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" }, { "name": "sebastian/resource-operations", - "version": "1.0.0", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { - "php": ">=5.6.0" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1844,29 +2227,87 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28T20:34:47+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", + "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-03-15T09:54:48+00:00" }, { "name": "sebastian/version", - "version": "2.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "reference": "c6c1022351a901512170118436c764e473f6de8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1887,7 +2328,13 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" }, { "name": "symfony/config", @@ -3167,5 +3614,6 @@ "prefer-stable": false, "prefer-lowest": false, "platform": [], - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "1.1.0" } diff --git a/tests/acceptance/features/bootstrap/PublicShareContext.php b/tests/acceptance/features/bootstrap/PublicShareContext.php index 2895202ed7f..6e4957c9ce3 100644 --- a/tests/acceptance/features/bootstrap/PublicShareContext.php +++ b/tests/acceptance/features/bootstrap/PublicShareContext.php @@ -227,7 +227,7 @@ class PublicShareContext implements Context, ActorAwareInterface { * @Then I see that the shared file preview shows the text :text */ public function iSeeThatTheSharedFilePreviewShowsTheText($text) { - Assert::assertContains($text, $this->actor->find(self::textPreview(), 10)->getText()); + Assert::assertStringContainsString($text, $this->actor->find(self::textPreview(), 10)->getText()); } /** |