f7cloud_client/apps/files_downloadlimit/js/files_downloadlimit-admin.mjs.map
root 8b6a0139db f7cloud_client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:59:26 +00:00

1 line
14 KiB
Plaintext

{"version":3,"file":"files_downloadlimit-admin.mjs","sources":["../node_modules/@nextcloud/vue/node_modules/@nextcloud/initial-state/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSection-VxcVEF8L.mjs","../src/services/AdminService.ts","../src/views/AdminSettings.vue","../src/admin.ts"],"sourcesContent":["function loadState(app, key, fallback) {\n const elem = document.querySelector(`#initial-state-${app}-${key}`);\n if (elem === null) {\n if (fallback !== void 0) {\n return fallback;\n }\n throw new Error(`Could not find initial state ${key} of ${app}`);\n }\n try {\n return JSON.parse(atob(elem.value));\n } catch (e) {\n throw new Error(`Could not parse initial state ${key} of ${app}`);\n }\n}\nexport {\n loadState\n};\n","import '../assets/NcSettingsSection-D_qeKnRb.css';\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { r as register, u as t24, a as t } from \"./_l10n-BWisB7-O.mjs\";\nconst _sfc_main$1 = {\n name: \"HelpCircleIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon help-circle-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst HelpCircle = __component__$1.exports;\nregister(t24);\nconst [major] = loadState(\"core\", \"config\", { version: \"30.0\" }).version.split(\".\", 2) ?? [];\nconst isLegacy = major && Number.parseInt(major) < 30;\nconst _sfc_main = {\n name: \"NcSettingsSection\",\n components: {\n HelpCircle\n },\n props: {\n /**\n * The name of the settings section.\n * This is used for the headline and needs to be set.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Further informational description of the section.\n */\n description: {\n type: String,\n default: \"\"\n },\n /**\n * The URL for the documentation about this section\n */\n docUrl: {\n type: String,\n default: \"\"\n },\n /**\n * Limit the width of the setting's content\n *\n * Setting this to false allows unrestricted (width) settings content.\n * Note that the name and description have always a width limit.\n *\n * @deprecated Will be removed with next version and will not be used on Nextcloud 30+ (always forced to true)\n */\n limitWidth: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: true\n }\n },\n data() {\n return {\n docNameTranslated: t(\"External documentation for {name}\", {\n name: this.name\n })\n };\n },\n computed: {\n forceLimitWidth() {\n return this.limitWidth || !isLegacy;\n },\n hasDescription() {\n return this.description.length > 0;\n },\n hasDocUrl() {\n return this.docUrl.length > 0;\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"settings-section\", class: { \"settings-section--limit-width\": _vm.forceLimitWidth } }, [_c(\"h2\", { staticClass: \"settings-section__name\" }, [_vm._v(\" \" + _vm._s(_vm.name) + \" \"), _vm.hasDocUrl ? _c(\"a\", { staticClass: \"settings-section__info\", attrs: { \"href\": _vm.docUrl, \"title\": _vm.docNameTranslated, \"aria-label\": _vm.docNameTranslated, \"target\": \"_blank\", \"rel\": \"noreferrer nofollow\" } }, [_c(\"HelpCircle\", { attrs: { \"size\": 20 } })], 1) : _vm._e()]), _vm.hasDescription ? _c(\"p\", { staticClass: \"settings-section__desc\" }, [_vm._v(\" \" + _vm._s(_vm.description) + \" \")]) : _vm._e(), _vm._t(\"default\")], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"56b92b56\"\n);\nconst NcSettingsSection = __component__.exports;\nexport {\n NcSettingsSection as N\n};\n//# sourceMappingURL=NcSettingsSection-VxcVEF8L.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { logger } from '../logger.ts'\n\n/**\n * Set the default download limit for all shares.\n *\n * @param limit - The new default limit\n */\nexport async function setDefaultLimit(limit: number): Promise<boolean> {\n\ttry {\n\t\tawait axios.put(generateOcsUrl('/apps/files_downloadlimit/api/v1/limit'), {\n\t\t\tlimit,\n\t\t})\n\t\treturn true\n\t} catch (error) {\n\t\tlogger.error('Failed to set default download limit', { error })\n\t\tshowError(t('files_downloadlimit', 'Failed to set default download limit'))\n\t}\n\treturn false\n}\n\n/**\n * Unset the configured default limit\n */\nexport async function removeDefaultLimit(): Promise<boolean> {\n\ttry {\n\t\tawait axios.delete(generateOcsUrl('/apps/files_downloadlimit/api/v1/limit'))\n\t\treturn true\n\t} catch (error) {\n\t\tlogger.error('Failed to remove default download limit', { error })\n\t\tshowError(t('files_downloadlimit', 'Failed to remove default download limit'))\n\t}\n\treturn false\n}\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcSettingsSection\n\t\t:name=\"t('files_downloadlimit', 'Download limit')\"\n\t\t:description=\"t('files_downloadlimit', 'Configure the default download limit for external shares.')\">\n\t\t<NcCheckboxRadioSwitch\n\t\t\tv-model=\"enableDefaultLimit\"\n\t\t\t:loading=\"showLoading\"\n\t\t\ttype=\"switch\">\n\t\t\t{{ t('files_downloadlimit', 'Default download limit for external shares') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcTextField\n\t\t\tv-show=\"enableDefaultLimit\"\n\t\t\tv-model=\"limit\"\n\t\t\tclass=\"settings__field\"\n\t\t\t:disabled=\"!enableDefaultLimit || showLoading\"\n\t\t\t:label=\"t('files_downloadlimit', 'Set default download limit')\"\n\t\t\ttype=\"number\"\n\t\t\tmin=\"1\"\n\t\t\t:helper-text=\"helperText\"\n\t\t\t:error=\"Boolean(helperText)\"\n\t\t\t:success=\"showSuccess\" />\n\t\t<div v-show=\"!enableDefaultLimit\" class=\"settings__placeholder\" />\n\t</NcSettingsSection>\n</template>\n\n<script lang=\"ts\">\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport { defineComponent } from 'vue'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'\nimport NcTextField from '@nextcloud/vue/components/NcTextField'\nimport { removeDefaultLimit, setDefaultLimit } from '../services/AdminService.ts'\n\nconst defaultDownloadLimit = loadState<number>('files_downloadlimit', 'default-download-limit', -1)\n\nexport default defineComponent({\n\tname: 'AdminSettings',\n\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t\tNcSettingsSection,\n\t\tNcTextField,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlimit: Math.max(defaultDownloadLimit, 1),\n\t\t\tenableDefaultLimit: defaultDownloadLimit !== -1,\n\t\t\tshowLoading: false,\n\t\t\tshowSuccess: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\thelperText() {\n\t\t\tif (typeof this.limit === 'number' && this.limit <= 0) {\n\t\t\t\treturn t('files_downloadlimit', 'The minimum limit is 1')\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t},\n\n\twatch: {\n\t\tasync limit(limit: number) {\n\t\t\tif (await setDefaultLimit(limit)) {\n\t\t\t\tthis.showSuccess = true\n\t\t\t\twindow.setTimeout(() => {\n\t\t\t\t\tthis.showSuccess = false\n\t\t\t\t}, 1000)\n\t\t\t}\n\t\t},\n\n\t\tasync enableDefaultLimit(enabled: boolean, oldValue: boolean) {\n\t\t\tthis.showLoading = true\n\t\t\tlet success: boolean\n\t\t\tif (enabled) {\n\t\t\t\tsuccess = await setDefaultLimit(1)\n\t\t\t} else {\n\t\t\t\tsuccess = await removeDefaultLimit()\n\t\t\t}\n\n\t\t\tif (!success) {\n\t\t\t\tthis.enableDefaultLimit = oldValue\n\t\t\t}\n\t\t\tthis.showLoading = false\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.settings {\n\t&__field {\n\t\tmax-width: 500px;\n\t\tmargin-top: calc(3 * var(--default-grid-baseline)) !important;\n\t}\n\n\t&__placeholder {\n\t\t// ensure content does not jump when enable / disable the input\n\t\theight: calc(var(--default-clickable-area) + 3 * var(--default-grid-baseline));\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport AdminSettings from './views/AdminSettings.vue'\n\nconst instance = new Vue({\n\trender: (h) => h(AdminSettings),\n})\ninstance.$mount('#admin-download-limit')\n"],"names":["loadState","app","key","fallback","elem","_sfc_main$1","_sfc_render$1","_vm","_c","$event","_sfc_staticRenderFns$1","__component__$1","normalizeComponent","HelpCircle","register","t24","major","isLegacy","_sfc_main","t","_sfc_render","_sfc_staticRenderFns","__component__","NcSettingsSection","setDefaultLimit","limit","axios","generateOcsUrl","error","logger","showError","removeDefaultLimit","defaultDownloadLimit","defineComponent","NcCheckboxRadioSwitch","NcTextField","enabled","oldValue","success","instance","Vue","h","AdminSettings"],"mappings":"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","x_google_ignoreList":[0,1]}