1 line
88 KiB
Plaintext
1 line
88 KiB
Plaintext
{"version":3,"sources":["webpack:///./apps/settings/src/components/AppList/AppItem.vue?4422","webpack:///./apps/settings/src/components/AppDetails.vue?10d3","webpack:///./apps/settings/src/components/AppList/AppItem.vue?57ce","webpack:///./apps/settings/src/components/AppList/AppItem.vue?80be","webpack:///./apps/settings/src/components/AppDetails.vue?c217","webpack:///./apps/settings/src/components/AppDetails.vue?d15b","webpack:///./apps/settings/src/views/Apps.vue?f7c8","webpack:///./apps/settings/src/components/AppList/AppScore.vue?5862","webpack:///apps/settings/src/components/AppList/AppScore.vue","webpack:///./apps/settings/src/components/AppList/AppScore.vue","webpack:///./apps/settings/src/components/AppList/AppScore.vue?bad3","webpack:///./apps/settings/src/components/AppManagement.vue?9197","webpack:///apps/settings/src/components/AppManagement.vue","webpack:///./apps/settings/src/components/AppManagement.vue","webpack:///./apps/settings/src/components/SvgFilterMixin.vue?0fa6","webpack:///apps/settings/src/components/SvgFilterMixin.vue","webpack:///./apps/settings/src/components/SvgFilterMixin.vue","webpack:///./apps/settings/src/components/AppList/AppItem.vue?6d51","webpack:///apps/settings/src/components/AppList/AppItem.vue","webpack:///./apps/settings/src/components/AppList/AppItem.vue","webpack:///./apps/settings/src/components/AppList/AppItem.vue?eb1d","webpack:///./apps/settings/src/components/PrefixMixin.vue?4fe7","webpack:///apps/settings/src/components/PrefixMixin.vue","webpack:///./apps/settings/src/components/PrefixMixin.vue","webpack:///./apps/settings/src/components/AppList.vue?ff65","webpack:///apps/settings/src/components/AppList.vue","webpack:///./apps/settings/src/components/AppList.vue","webpack:///./apps/settings/src/components/AppList.vue?bb44","webpack:///./apps/settings/src/components/AppDetails.vue?0b0a","webpack:///apps/settings/src/components/AppDetails.vue","webpack:///./apps/settings/src/components/AppDetails.vue","webpack:///./apps/settings/src/components/AppDetails.vue?0237","webpack:///apps/settings/src/views/Apps.vue","webpack:///./apps/settings/src/views/Apps.vue?53fc","webpack:///./apps/settings/src/views/Apps.vue"],"names":["content","module","i","locals","exports","add","default","push","_h","this","$createElement","_self","_c","staticClass","attrs","scoreImage","_vm","class","selected","isSelected","on","showAppDetails","listView","app","preview","screenshot","_e","_v","filterId","filterUrl","_s","name","summary","version","appstoreData","releases","level","directives","rawName","value","t","expression","modifiers","hasRating","score","error","loading","id","update","installing","$event","stopPropagation","remove","disable","active","canInstall","isCompatible","forceEnableButtonText","forceEnable","enableButtonText","enable","installed","useBundleView","useListView","store","useAppStoreView","_l","key","category","bundle","bundleToggleText","toggleBundle","bundleApps","search","searchApps","length","apps","staticStyle","previewAsIcon","ratingOverall","a","index","author","licence","canLimitToGroups","prefix","domProps","Array","isArray","groupCheckedAppsData","_i","$$a","$$el","target","$$c","checked","$$v","$$i","concat","slice","setGroupLimit","isLimitedToGroups","groups","appGroups","addGroupLimitation","removeGroupLimitation","asyncFindGroup","slot","dep","internal","appstoreUrl","website","bugs","documentation","user","admin","developer","renderMarkdown","currentApp","loadingList","item","searchQuery","hideAppDetails"],"mappings":"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","file":"vue-4.js?v=d3aafdd78fca9d072049","sourcesContent":["// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../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!./AppItem.vue?vue&type=style&index=0&id=4c2d595a&scoped=true&lang=css&\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"abc3afd6\", content, true, {});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../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!./AppDetails.vue?vue&type=style&index=0&id=46598ca8&scoped=true&lang=css&\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5cbce4f5\", content, true, {});","import mod from \"-!../../../../../node_modules/vue-style-loader/index.js!../../../../../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!./AppItem.vue?vue&type=style&index=0&id=4c2d595a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/vue-style-loader/index.js!../../../../../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!./AppItem.vue?vue&type=style&index=0&id=4c2d595a&scoped=true&lang=css&\"","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\n.force[data-v-4c2d595a] {\\n\\tbackground: var(--color-main-background);\\n\\tborder-color: var(--color-error);\\n\\tcolor: var(--color-error);\\n}\\n.force[data-v-4c2d595a]:hover,\\n.force[data-v-4c2d595a]:active {\\n\\tbackground: var(--color-error);\\n\\tborder-color: var(--color-error) !important;\\n\\tcolor: var(--color-main-background);\\n}\\n\", \"\"]);\n","import mod from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../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!./AppDetails.vue?vue&type=style&index=0&id=46598ca8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../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!./AppDetails.vue?vue&type=style&index=0&id=46598ca8&scoped=true&lang=css&\"","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\n.force[data-v-46598ca8] {\\n\\tbackground: var(--color-main-background);\\n\\tborder-color: var(--color-error);\\n\\tcolor: var(--color-error);\\n}\\n.force[data-v-46598ca8]:hover,\\n.force[data-v-46598ca8]:active {\\n\\tbackground: var(--color-error);\\n\\tborder-color: var(--color-error) !important;\\n\\tcolor: var(--color-main-background);\\n}\\n\", \"\"]);\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Content',{class:{ 'with-app-sidebar': _vm.currentApp},attrs:{\"app-name\":\"settings\",\"content-class\":{ 'icon-loading': _vm.loadingList },\"navigation-class\":{ 'icon-loading': _vm.loading }}},[_c('AppNavigation',[_c('ul',{attrs:{\"id\":\"appscategories\"}},_vm._l((_vm.menu),function(item){return _c('AppNavigationItem',{key:item.key,attrs:{\"item\":item}})}),1)]),_vm._v(\" \"),_c('AppContent',{staticClass:\"app-settings-content\",class:{ 'icon-loading': _vm.loadingList }},[_c('AppList',{attrs:{\"category\":_vm.category,\"app\":_vm.currentApp,\"search\":_vm.searchQuery}})],1),_vm._v(\" \"),(_vm.id && _vm.currentApp)?_c('AppSidebar',{on:{\"close\":_vm.hideAppDetails}},[_c('AppDetails',{attrs:{\"category\":_vm.category,\"app\":_vm.currentApp}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.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!./AppScore.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\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<img :src=\"scoreImage\" class=\"app-score-image\">\n</template>\n<script>\nexport default {\n\tname: 'AppScore',\n\tprops: ['score'],\n\tcomputed: {\n\t\tscoreImage() {\n\t\t\tlet score = Math.round(this.score * 10)\n\t\t\tlet imageName = 'rating/s' + score + '.svg'\n\t\t\treturn OC.imagePath('core', imageName)\n\t\t}\n\t}\n}\n</script>\n","import { render, staticRenderFns } from \"./AppScore.vue?vue&type=template&id=d03e40e8&\"\nimport script from \"./AppScore.vue?vue&type=script&lang=js&\"\nexport * from \"./AppScore.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('img',{staticClass:\"app-score-image\",attrs:{\"src\":_vm.scoreImage}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppManagement.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!./AppManagement.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\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<script>\nexport default {\n\tcomputed: {\n\t\tappGroups() {\n\t\t\treturn this.app.groups.map(group => { return { id: group, name: group } })\n\t\t},\n\t\tloading() {\n\t\t\tlet self = this\n\t\t\treturn function(id) {\n\t\t\t\treturn self.$store.getters.loading(id)\n\t\t\t}\n\t\t},\n\t\tinstalling() {\n\t\t\treturn this.$store.getters.loading('install')\n\t\t},\n\t\tenableButtonText() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'Download and enable')\n\t\t\t}\n\t\t\treturn t('settings', 'Enable')\n\t\t},\n\t\tforceEnableButtonText() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'Enable untested app')\n\t\t\t}\n\t\t\treturn t('settings', 'Enable untested app')\n\t\t},\n\t\tenableButtonTooltip() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'The app will be downloaded from the app store')\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tforceEnableButtonTooltip() {\n\t\t\tconst base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.')\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn base + ' ' + t('settings', 'The app will be downloaded from the app store')\n\t\t\t}\n\t\t\treturn base\n\t\t}\n\t},\n\tmounted() {\n\t\tif (this.app.groups.length > 0) {\n\t\t\tthis.groupCheckedAppsData = true\n\t\t}\n\t},\n\tmethods: {\n\t\tasyncFindGroup(query) {\n\t\t\treturn this.$store.dispatch('getGroups', { search: query, limit: 5, offset: 0 })\n\t\t},\n\t\tisLimitedToGroups(app) {\n\t\t\tif (this.app.groups.length || this.groupCheckedAppsData) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tsetGroupLimit: function() {\n\t\t\tif (!this.groupCheckedAppsData) {\n\t\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: [] })\n\t\t\t}\n\t\t},\n\t\tcanLimitToGroups(app) {\n\t\t\tif ((app.types && app.types.includes('filesystem'))\n\t\t\t\t\t|| app.types.includes('prelogin')\n\t\t\t\t\t|| app.types.includes('authentication')\n\t\t\t\t\t|| app.types.includes('logging')\n\t\t\t\t\t|| app.types.includes('prevent_group_restriction')) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\taddGroupLimitation(group) {\n\t\t\tlet groups = this.app.groups.concat([]).concat([group.id])\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: groups })\n\t\t},\n\t\tremoveGroupLimitation(group) {\n\t\t\tlet currentGroups = this.app.groups.concat([])\n\t\t\tlet index = currentGroups.indexOf(group.id)\n\t\t\tif (index > -1) {\n\t\t\t\tcurrentGroups.splice(index, 1)\n\t\t\t}\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: currentGroups })\n\t\t},\n\t\tforceEnable(appId) {\n\t\t\tthis.$store.dispatch('forceEnableApp', { appId: appId, groups: [] })\n\t\t\t\t.then((response) => { OC.Settings.Apps.rebuildNavigation() })\n\t\t\t\t.catch((error) => { OC.Notification.show(error) })\n\t\t},\n\t\tenable(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId: appId, groups: [] })\n\t\t\t\t.then((response) => { OC.Settings.Apps.rebuildNavigation() })\n\t\t\t\t.catch((error) => { OC.Notification.show(error) })\n\t\t},\n\t\tdisable(appId) {\n\t\t\tthis.$store.dispatch('disableApp', { appId: appId })\n\t\t\t\t.then((response) => { OC.Settings.Apps.rebuildNavigation() })\n\t\t\t\t.catch((error) => { OC.Notification.show(error) })\n\t\t},\n\t\tremove(appId) {\n\t\t\tthis.$store.dispatch('uninstallApp', { appId: appId })\n\t\t\t\t.then((response) => { OC.Settings.Apps.rebuildNavigation() })\n\t\t\t\t.catch((error) => { OC.Notification.show(error) })\n\t\t},\n\t\tinstall(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId: appId })\n\t\t\t\t.then((response) => { OC.Settings.Apps.rebuildNavigation() })\n\t\t\t\t.catch((error) => { OC.Notification.show(error) })\n\t\t},\n\t\tupdate(appId) {\n\t\t\tthis.$store.dispatch('updateApp', { appId: appId })\n\t\t\t\t.then((response) => { OC.Settings.Apps.rebuildNavigation() })\n\t\t\t\t.catch((error) => { OC.Notification.show(error) })\n\t\t}\n\t}\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./AppManagement.vue?vue&type=script&lang=js&\"\nexport * from \"./AppManagement.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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgFilterMixin.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!./SvgFilterMixin.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\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<script>\nexport default {\n\tname: 'SvgFilterMixin',\n\tdata() {\n\t\treturn {\n\t\t\tfilterId: ''\n\t\t}\n\t},\n\tcomputed: {\n\t\tfilterUrl() {\n\t\t\treturn `url(#${this.filterId})`\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.filterId = 'invertIconApps' + Math.floor((Math.random() * 100)) + new Date().getSeconds() + new Date().getMilliseconds()\n\t}\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./SvgFilterMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./SvgFilterMixin.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","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.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!./AppItem.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\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<div class=\"section\" :class=\"{ selected: isSelected }\" @click=\"showAppDetails\">\n\t\t<div class=\"app-image app-image-icon\" @click=\"showAppDetails\">\n\t\t\t<div v-if=\"(listView && !app.preview) || (!listView && !app.screenshot)\" class=\"icon-settings-dark\" />\n\n\t\t\t<svg v-if=\"listView && app.preview\"\n\t\t\t\twidth=\"32\"\n\t\t\t\theight=\"32\"\n\t\t\t\tviewBox=\"0 0 32 32\">\n\t\t\t\t<defs><filter :id=\"filterId\"><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></defs>\n\t\t\t\t<image x=\"0\"\n\t\t\t\t\ty=\"0\"\n\t\t\t\t\twidth=\"32\"\n\t\t\t\t\theight=\"32\"\n\t\t\t\t\tpreserveAspectRatio=\"xMinYMin meet\"\n\t\t\t\t\t:filter=\"filterUrl\"\n\t\t\t\t\t:xlink:href=\"app.preview\"\n\t\t\t\t\tclass=\"app-icon\" />\n\t\t\t</svg>\n\n\t\t\t<img v-if=\"!listView && app.screenshot\" :src=\"app.screenshot\" width=\"100%\">\n\t\t</div>\n\t\t<div class=\"app-name\" @click=\"showAppDetails\">\n\t\t\t{{ app.name }}\n\t\t</div>\n\t\t<div v-if=\"!listView\" class=\"app-summary\">\n\t\t\t{{ app.summary }}\n\t\t</div>\n\t\t<div v-if=\"listView\" class=\"app-version\">\n\t\t\t<span v-if=\"app.version\">{{ app.version }}</span>\n\t\t\t<span v-else-if=\"app.appstoreData.releases[0].version\">{{ app.appstoreData.releases[0].version }}</span>\n\t\t</div>\n\n\t\t<div class=\"app-level\">\n\t\t\t<span v-if=\"app.level === 300\"\n\t\t\t\tv-tooltip.auto=\"t('settings', 'This app is supported via your current Nextcloud subscription.')\"\n\t\t\t\tclass=\"supported icon-checkmark-color\">\n\t\t\t\t{{ t('settings', 'Supported') }}</span>\n\t\t\t<span v-if=\"app.level === 200\"\n\t\t\t\tv-tooltip.auto=\"t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')\"\n\t\t\t\tclass=\"official icon-checkmark\">\n\t\t\t\t{{ t('settings', 'Featured') }}</span>\n\t\t\t<AppScore v-if=\"hasRating && !listView\" :score=\"app.score\" />\n\t\t</div>\n\n\t\t<div class=\"actions\">\n\t\t\t<div v-if=\"app.error\" class=\"warning\">\n\t\t\t\t{{ app.error }}\n\t\t\t</div>\n\t\t\t<div v-if=\"loading(app.id)\" class=\"icon icon-loading-small\" />\n\t\t\t<input v-if=\"app.update\"\n\t\t\t\tclass=\"update primary\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t:value=\"t('settings', 'Update to {update}', {update:app.update})\"\n\t\t\t\t:disabled=\"installing || loading(app.id)\"\n\t\t\t\t@click.stop=\"update(app.id)\">\n\t\t\t<input v-if=\"app.canUnInstall\"\n\t\t\t\tclass=\"uninstall\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t:value=\"t('settings', 'Remove')\"\n\t\t\t\t:disabled=\"installing || loading(app.id)\"\n\t\t\t\t@click.stop=\"remove(app.id)\">\n\t\t\t<input v-if=\"app.active\"\n\t\t\t\tclass=\"enable\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t:value=\"t('settings','Disable')\"\n\t\t\t\t:disabled=\"installing || loading(app.id)\"\n\t\t\t\t@click.stop=\"disable(app.id)\">\n\t\t\t<input v-if=\"!app.active && (app.canInstall || app.isCompatible)\"\n\t\t\t\tv-tooltip.auto=\"enableButtonTooltip\"\n\t\t\t\tclass=\"enable\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t:value=\"enableButtonText\"\n\t\t\t\t:disabled=\"!app.canInstall || installing || loading(app.id)\"\n\t\t\t\t@click.stop=\"enable(app.id)\">\n\t\t\t<input v-else-if=\"!app.active\"\n\t\t\t\tv-tooltip.auto=\"forceEnableButtonTooltip\"\n\t\t\t\tclass=\"enable force\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t:value=\"forceEnableButtonText\"\n\t\t\t\t:disabled=\"installing || loading(app.id)\"\n\t\t\t\t@click.stop=\"forceEnable(app.id)\">\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport AppScore from './AppScore'\nimport AppManagement from '../AppManagement'\nimport SvgFilterMixin from '../SvgFilterMixin'\n\nexport default {\n\tname: 'AppItem',\n\tcomponents: {\n\t\tAppScore\n\t},\n\tmixins: [AppManagement, SvgFilterMixin],\n\tprops: {\n\t\tapp: {},\n\t\tcategory: {},\n\t\tlistView: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisSelected: false,\n\t\t\tscrolled: false\n\t\t}\n\t},\n\tcomputed: {\n\t\thasRating() {\n\t\t\treturn this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5\n\t\t}\n\t},\n\twatch: {\n\t\t'$route.params.id': function(id) {\n\t\t\tthis.isSelected = (this.app.id === id)\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.isSelected = (this.app.id === this.$route.params.id)\n\t},\n\twatchers: {\n\n\t},\n\tmethods: {\n\t\tasync showAppDetails(event) {\n\t\t\tif (event.currentTarget.tagName === 'INPUT' || event.currentTarget.tagName === 'A') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait this.$router.push({\n\t\t\t\t\tname: 'apps-details',\n\t\t\t\t\tparams: { category: this.category, id: this.app.id }\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\t// we already view this app\n\t\t\t}\n\t\t},\n\t\tprefix(prefix, content) {\n\t\t\treturn prefix + '_' + content\n\t\t}\n\t}\n}\n</script>\n\n<style scoped>\n\t.force {\n\t\tbackground: var(--color-main-background);\n\t\tborder-color: var(--color-error);\n\t\tcolor: var(--color-error);\n\t}\n\t.force:hover,\n\t.force:active {\n\t\tbackground: var(--color-error);\n\t\tborder-color: var(--color-error) !important;\n\t\tcolor: var(--color-main-background);\n\t}\n</style>\n","import { render, staticRenderFns } from \"./AppItem.vue?vue&type=template&id=4c2d595a&scoped=true&\"\nimport script from \"./AppItem.vue?vue&type=script&lang=js&\"\nexport * from \"./AppItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppItem.vue?vue&type=style&index=0&id=4c2d595a&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 \"4c2d595a\",\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\",class:{ selected: _vm.isSelected },on:{\"click\":_vm.showAppDetails}},[_c('div',{staticClass:\"app-image app-image-icon\",on:{\"click\":_vm.showAppDetails}},[((_vm.listView && !_vm.app.preview) || (!_vm.listView && !_vm.app.screenshot))?_c('div',{staticClass:\"icon-settings-dark\"}):_vm._e(),_vm._v(\" \"),(_vm.listView && _vm.app.preview)?_c('svg',{attrs:{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"0 0 32 32\"}},[_c('defs',[_c('filter',{attrs:{\"id\":_vm.filterId}},[_c('feColorMatrix',{attrs:{\"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\"}})],1)]),_vm._v(\" \"),_c('image',{staticClass:\"app-icon\",attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"32\",\"height\":\"32\",\"preserveAspectRatio\":\"xMinYMin meet\",\"filter\":_vm.filterUrl,\"xlink:href\":_vm.app.preview}})]):_vm._e(),_vm._v(\" \"),(!_vm.listView && _vm.app.screenshot)?_c('img',{attrs:{\"src\":_vm.app.screenshot,\"width\":\"100%\"}}):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"app-name\",on:{\"click\":_vm.showAppDetails}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.name)+\"\\n\\t\")]),_vm._v(\" \"),(!_vm.listView)?_c('div',{staticClass:\"app-summary\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.summary)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.listView)?_c('div',{staticClass:\"app-version\"},[(_vm.app.version)?_c('span',[_vm._v(_vm._s(_vm.app.version))]):(_vm.app.appstoreData.releases[0].version)?_c('span',[_vm._v(_vm._s(_vm.app.appstoreData.releases[0].version))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"app-level\"},[(_vm.app.level === 300)?_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.t('settings', 'This app is supported via your current Nextcloud subscription.')),expression:\"t('settings', 'This app is supported via your current Nextcloud subscription.')\",modifiers:{\"auto\":true}}],staticClass:\"supported icon-checkmark-color\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Supported')))]):_vm._e(),_vm._v(\" \"),(_vm.app.level === 200)?_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')),expression:\"t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')\",modifiers:{\"auto\":true}}],staticClass:\"official icon-checkmark\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Featured')))]):_vm._e(),_vm._v(\" \"),(_vm.hasRating && !_vm.listView)?_c('AppScore',{attrs:{\"score\":_vm.app.score}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"actions\"},[(_vm.app.error)?_c('div',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.app.error)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.loading(_vm.app.id))?_c('div',{staticClass:\"icon icon-loading-small\"}):_vm._e(),_vm._v(\" \"),(_vm.app.update)?_c('input',{staticClass:\"update primary\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings', 'Update to {update}', {update:_vm.app.update}),\"disabled\":_vm.installing || _vm.loading(_vm.app.id)},on:{\"click\":function($event){$event.stopPropagation();return _vm.update(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.canUnInstall)?_c('input',{staticClass:\"uninstall\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings', 'Remove'),\"disabled\":_vm.installing || _vm.loading(_vm.app.id)},on:{\"click\":function($event){$event.stopPropagation();return _vm.remove(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.active)?_c('input',{staticClass:\"enable\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings','Disable'),\"disabled\":_vm.installing || _vm.loading(_vm.app.id)},on:{\"click\":function($event){$event.stopPropagation();return _vm.disable(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(!_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible))?_c('input',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.enableButtonTooltip),expression:\"enableButtonTooltip\",modifiers:{\"auto\":true}}],staticClass:\"enable\",attrs:{\"type\":\"button\",\"value\":_vm.enableButtonText,\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.loading(_vm.app.id)},on:{\"click\":function($event){$event.stopPropagation();return _vm.enable(_vm.app.id)}}}):(!_vm.app.active)?_c('input',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.forceEnableButtonTooltip),expression:\"forceEnableButtonTooltip\",modifiers:{\"auto\":true}}],staticClass:\"enable force\",attrs:{\"type\":\"button\",\"value\":_vm.forceEnableButtonText,\"disabled\":_vm.installing || _vm.loading(_vm.app.id)},on:{\"click\":function($event){$event.stopPropagation();return _vm.forceEnable(_vm.app.id)}}}):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrefixMixin.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!./PrefixMixin.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\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<script>\nexport default {\n\tname: 'PrefixMixin',\n\tmethods: {\n\t\tprefix(prefix, content) {\n\t\t\treturn prefix + '_' + content\n\t\t}\n\t}\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./PrefixMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./PrefixMixin.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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.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!./AppList.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\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<div id=\"app-content-inner\">\n\t\t<div id=\"apps-list\" class=\"apps-list\" :class=\"{installed: (useBundleView || useListView), store: useAppStoreView}\">\n\t\t\t<template v-if=\"useListView\">\n\t\t\t\t<transition-group name=\"app-list\" tag=\"div\" class=\"apps-list-container\">\n\t\t\t\t\t<AppItem v-for=\"app in apps\"\n\t\t\t\t\t\t:key=\"app.id\"\n\t\t\t\t\t\t:app=\"app\"\n\t\t\t\t\t\t:category=\"category\" />\n\t\t\t\t</transition-group>\n\t\t\t</template>\n\t\t\t<transition-group v-if=\"useBundleView\"\n\t\t\t\tname=\"app-list\"\n\t\t\t\ttag=\"div\"\n\t\t\t\tclass=\"apps-list-container\">\n\t\t\t\t<template v-for=\"bundle in bundles\">\n\t\t\t\t\t<div :key=\"bundle.id\" class=\"apps-header\">\n\t\t\t\t\t\t<div class=\"app-image\" />\n\t\t\t\t\t\t<h2>{{ bundle.name }} <input type=\"button\" :value=\"bundleToggleText(bundle.id)\" @click=\"toggleBundle(bundle.id)\"></h2>\n\t\t\t\t\t\t<div class=\"app-version\" />\n\t\t\t\t\t\t<div class=\"app-level\" />\n\t\t\t\t\t\t<div class=\"app-groups\" />\n\t\t\t\t\t\t<div class=\"actions\">\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<AppItem v-for=\"app in bundleApps(bundle.id)\"\n\t\t\t\t\t\t:key=\"bundle.id + app.id\"\n\t\t\t\t\t\t:app=\"app\"\n\t\t\t\t\t\t:category=\"category\" />\n\t\t\t\t</template>\n\t\t\t</transition-group>\n\t\t\t<template v-if=\"useAppStoreView\">\n\t\t\t\t<AppItem v-for=\"app in apps\"\n\t\t\t\t\t:key=\"app.id\"\n\t\t\t\t\t:app=\"app\"\n\t\t\t\t\t:category=\"category\"\n\t\t\t\t\t:list-view=\"false\" />\n\t\t\t</template>\n\t\t</div>\n\n\t\t<div id=\"apps-list-search\" class=\"apps-list installed\">\n\t\t\t<div class=\"apps-list-container\">\n\t\t\t\t<template v-if=\"search !== '' && searchApps.length > 0\">\n\t\t\t\t\t<div class=\"section\">\n\t\t\t\t\t\t<div />\n\t\t\t\t\t\t<td colspan=\"5\">\n\t\t\t\t\t\t\t<h2>{{ t('settings', 'Results from other categories') }}</h2>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</div>\n\t\t\t\t\t<AppItem v-for=\"app in searchApps\"\n\t\t\t\t\t\t:key=\"app.id\"\n\t\t\t\t\t\t:app=\"app\"\n\t\t\t\t\t\t:category=\"category\"\n\t\t\t\t\t\t:list-view=\"true\" />\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div v-if=\"search !== '' && !loading && searchApps.length === 0 && apps.length === 0\" id=\"apps-list-empty\" class=\"emptycontent emptycontent-search\">\n\t\t\t<div id=\"app-list-empty-icon\" class=\"icon-settings-dark\" />\n\t\t\t<h2>{{ t('settings', 'No apps found for your version') }}</h2>\n\t\t</div>\n\n\t\t<div id=\"searchresults\" />\n\t</div>\n</template>\n\n<script>\nimport AppItem from './AppList/AppItem'\nimport PrefixMixin from './PrefixMixin'\n\nexport default {\n\tname: 'AppList',\n\tcomponents: {\n\t\tAppItem\n\t},\n\tmixins: [PrefixMixin],\n\tprops: ['category', 'app', 'search'],\n\tcomputed: {\n\t\tloading() {\n\t\t\treturn this.$store.getters.loading('list')\n\t\t},\n\t\tapps() {\n\t\t\tlet apps = this.$store.getters.getAllApps\n\t\t\t\t.filter(app => app.name.toLowerCase().search(this.search.toLowerCase()) !== -1)\n\t\t\t\t.sort(function(a, b) {\n\t\t\t\t\tconst sortStringA = '' + (a.active ? 0 : 1) + (a.update ? 0 : 1) + a.name\n\t\t\t\t\tconst sortStringB = '' + (b.active ? 0 : 1) + (b.update ? 0 : 1) + b.name\n\t\t\t\t\treturn OC.Util.naturalSortCompare(sortStringA, sortStringB)\n\t\t\t\t})\n\n\t\t\tif (this.category === 'installed') {\n\t\t\t\treturn apps.filter(app => app.installed)\n\t\t\t}\n\t\t\tif (this.category === 'enabled') {\n\t\t\t\treturn apps.filter(app => app.active && app.installed)\n\t\t\t}\n\t\t\tif (this.category === 'disabled') {\n\t\t\t\treturn apps.filter(app => !app.active && app.installed)\n\t\t\t}\n\t\t\tif (this.category === 'app-bundles') {\n\t\t\t\treturn apps.filter(app => app.bundles)\n\t\t\t}\n\t\t\tif (this.category === 'updates') {\n\t\t\t\treturn apps.filter(app => app.update)\n\t\t\t}\n\t\t\t// filter app store categories\n\t\t\treturn apps.filter(app => {\n\t\t\t\treturn app.appstore && app.category !== undefined\n\t\t\t\t\t&& (app.category === this.category || app.category.indexOf(this.category) > -1)\n\t\t\t})\n\t\t},\n\t\tbundles() {\n\t\t\treturn this.$store.getters.getServerData.bundles.filter(bundle => this.bundleApps(bundle.id).length > 0)\n\t\t},\n\t\tbundleApps() {\n\t\t\treturn function(bundle) {\n\t\t\t\treturn this.$store.getters.getAllApps\n\t\t\t\t\t.filter(app => app.bundleId === bundle)\n\t\t\t}\n\t\t},\n\t\tsearchApps() {\n\t\t\tif (this.search === '') {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn this.$store.getters.getAllApps\n\t\t\t\t.filter(app => {\n\t\t\t\t\tif (app.name.toLowerCase().search(this.search.toLowerCase()) !== -1) {\n\t\t\t\t\t\treturn (!this.apps.find(_app => _app.id === app.id))\n\t\t\t\t\t}\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t},\n\t\tuseAppStoreView() {\n\t\t\treturn !this.useListView && !this.useBundleView\n\t\t},\n\t\tuseListView() {\n\t\t\treturn (this.category === 'installed' || this.category === 'enabled' || this.category === 'disabled' || this.category === 'updates')\n\t\t},\n\t\tuseBundleView() {\n\t\t\treturn (this.category === 'app-bundles')\n\t\t},\n\t\tallBundlesEnabled() {\n\t\t\tlet self = this\n\t\t\treturn function(id) {\n\t\t\t\treturn self.bundleApps(id).filter(app => !app.active).length === 0\n\t\t\t}\n\t\t},\n\t\tbundleToggleText() {\n\t\t\tlet self = this\n\t\t\treturn function(id) {\n\t\t\t\tif (self.allBundlesEnabled(id)) {\n\t\t\t\t\treturn t('settings', 'Disable all')\n\t\t\t\t}\n\t\t\t\treturn t('settings', 'Enable all')\n\t\t\t}\n\t\t}\n\t},\n\tmethods: {\n\t\ttoggleBundle(id) {\n\t\t\tif (this.allBundlesEnabled(id)) {\n\t\t\t\treturn this.disableBundle(id)\n\t\t\t}\n\t\t\treturn this.enableBundle(id)\n\t\t},\n\t\tenableBundle(id) {\n\t\t\tlet apps = this.bundleApps(id).map(app => app.id)\n\t\t\tthis.$store.dispatch('enableApp', { appId: apps, groups: [] })\n\t\t\t\t.catch((error) => { console.error(error); OC.Notification.show(error) })\n\t\t},\n\t\tdisableBundle(id) {\n\t\t\tlet apps = this.bundleApps(id).map(app => app.id)\n\t\t\tthis.$store.dispatch('disableApp', { appId: apps, groups: [] })\n\t\t\t\t.catch((error) => { OC.Notification.show(error) })\n\t\t}\n\t}\n}\n</script>\n","import { render, staticRenderFns } from \"./AppList.vue?vue&type=template&id=59682d92&\"\nimport script from \"./AppList.vue?vue&type=script&lang=js&\"\nexport * from \"./AppList.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('div',{attrs:{\"id\":\"app-content-inner\"}},[_c('div',{staticClass:\"apps-list\",class:{installed: (_vm.useBundleView || _vm.useListView), store: _vm.useAppStoreView},attrs:{\"id\":\"apps-list\"}},[(_vm.useListView)?[_c('transition-group',{staticClass:\"apps-list-container\",attrs:{\"name\":\"app-list\",\"tag\":\"div\"}},_vm._l((_vm.apps),function(app){return _c('AppItem',{key:app.id,attrs:{\"app\":app,\"category\":_vm.category}})}),1)]:_vm._e(),_vm._v(\" \"),(_vm.useBundleView)?_c('transition-group',{staticClass:\"apps-list-container\",attrs:{\"name\":\"app-list\",\"tag\":\"div\"}},[_vm._l((_vm.bundles),function(bundle){return [_c('div',{key:bundle.id,staticClass:\"apps-header\"},[_c('div',{staticClass:\"app-image\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(bundle.name)+\" \"),_c('input',{attrs:{\"type\":\"button\",\"value\":_vm.bundleToggleText(bundle.id)},on:{\"click\":function($event){return _vm.toggleBundle(bundle.id)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"app-version\"}),_vm._v(\" \"),_c('div',{staticClass:\"app-level\"}),_vm._v(\" \"),_c('div',{staticClass:\"app-groups\"}),_vm._v(\" \"),_c('div',{staticClass:\"actions\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\")])]),_vm._v(\" \"),_vm._l((_vm.bundleApps(bundle.id)),function(app){return _c('AppItem',{key:bundle.id + app.id,attrs:{\"app\":app,\"category\":_vm.category}})})]})],2):_vm._e(),_vm._v(\" \"),(_vm.useAppStoreView)?_vm._l((_vm.apps),function(app){return _c('AppItem',{key:app.id,attrs:{\"app\":app,\"category\":_vm.category,\"list-view\":false}})}):_vm._e()],2),_vm._v(\" \"),_c('div',{staticClass:\"apps-list installed\",attrs:{\"id\":\"apps-list-search\"}},[_c('div',{staticClass:\"apps-list-container\"},[(_vm.search !== '' && _vm.searchApps.length > 0)?[_c('div',{staticClass:\"section\"},[_c('div'),_vm._v(\" \"),_c('td',{attrs:{\"colspan\":\"5\"}},[_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'Results from other categories')))])])]),_vm._v(\" \"),_vm._l((_vm.searchApps),function(app){return _c('AppItem',{key:app.id,attrs:{\"app\":app,\"category\":_vm.category,\"list-view\":true}})})]:_vm._e()],2)]),_vm._v(\" \"),(_vm.search !== '' && !_vm.loading && _vm.searchApps.length === 0 && _vm.apps.length === 0)?_c('div',{staticClass:\"emptycontent emptycontent-search\",attrs:{\"id\":\"apps-list-empty\"}},[_c('div',{staticClass:\"icon-settings-dark\",attrs:{\"id\":\"app-list-empty-icon\"}}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'No apps found for your version')))])]):_vm._e(),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"searchresults\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetails.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!./AppDetails.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\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<div id=\"app-details-view\" style=\"padding: 20px;\">\n\t\t<h2>\n\t\t\t<div v-if=\"!app.preview\" class=\"icon-settings-dark\" />\n\t\t\t<svg v-if=\"app.previewAsIcon && app.preview\"\n\t\t\t\twidth=\"32\"\n\t\t\t\theight=\"32\"\n\t\t\t\tviewBox=\"0 0 32 32\">\n\t\t\t\t<defs><filter :id=\"filterId\"><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></defs>\n\t\t\t\t<image x=\"0\"\n\t\t\t\t\ty=\"0\"\n\t\t\t\t\twidth=\"32\"\n\t\t\t\t\theight=\"32\"\n\t\t\t\t\tpreserveAspectRatio=\"xMinYMin meet\"\n\t\t\t\t\t:filter=\"filterUrl\"\n\t\t\t\t\t:xlink:href=\"app.preview\"\n\t\t\t\t\tclass=\"app-icon\" />\n\t\t\t</svg>\n\t\t\t{{ app.name }}\n\t\t</h2>\n\t\t<img v-if=\"app.screenshot\" :src=\"app.screenshot\" width=\"100%\">\n\t\t<div v-if=\"app.level === 300 || app.level === 200 || hasRating\" class=\"app-level\">\n\t\t\t<span v-if=\"app.level === 300\"\n\t\t\t\tv-tooltip.auto=\"t('settings', 'This app is supported via your current Nextcloud subscription.')\"\n\t\t\t\tclass=\"supported icon-checkmark-color\">\n\t\t\t\t{{ t('settings', 'Supported') }}</span>\n\t\t\t<span v-if=\"app.level === 200\"\n\t\t\t\tv-tooltip.auto=\"t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')\"\n\t\t\t\tclass=\"official icon-checkmark\">\n\t\t\t\t{{ t('settings', 'Featured') }}</span>\n\t\t\t<AppScore v-if=\"hasRating\" :score=\"app.appstoreData.ratingOverall\" />\n\t\t</div>\n\n\t\t<div v-if=\"author\" class=\"app-author\">\n\t\t\t{{ t('settings', 'by') }}\n\t\t\t<span v-for=\"(a, index) in author\" :key=\"index\">\n\t\t\t\t<a v-if=\"a['@attributes'] && a['@attributes']['homepage']\" :href=\"a['@attributes']['homepage']\">{{ a['@value'] }}</a><span v-else-if=\"a['@value']\">{{ a['@value'] }}</span><span v-else>{{ a }}</span><span v-if=\"index+1 < author.length\">, </span>\n\t\t\t</span>\n\t\t</div>\n\t\t<div v-if=\"licence\" class=\"app-licence\">\n\t\t\t{{ licence }}\n\t\t</div>\n\t\t<div class=\"actions\">\n\t\t\t<div class=\"actions-buttons\">\n\t\t\t\t<input v-if=\"app.update\"\n\t\t\t\t\tclass=\"update primary\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t:value=\"t('settings', 'Update to {version}', {version: app.update})\"\n\t\t\t\t\t:disabled=\"installing || loading(app.id)\"\n\t\t\t\t\t@click=\"update(app.id)\">\n\t\t\t\t<input v-if=\"app.canUnInstall\"\n\t\t\t\t\tclass=\"uninstall\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t:value=\"t('settings', 'Remove')\"\n\t\t\t\t\t:disabled=\"installing || loading(app.id)\"\n\t\t\t\t\t@click=\"remove(app.id)\">\n\t\t\t\t<input v-if=\"app.active\"\n\t\t\t\t\tclass=\"enable\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t:value=\"t('settings','Disable')\"\n\t\t\t\t\t:disabled=\"installing || loading(app.id)\"\n\t\t\t\t\t@click=\"disable(app.id)\">\n\t\t\t\t<input v-if=\"!app.active && (app.canInstall || app.isCompatible)\"\n\t\t\t\t\tv-tooltip.auto=\"enableButtonTooltip\"\n\t\t\t\t\tclass=\"enable primary\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t:value=\"enableButtonText\"\n\t\t\t\t\t:disabled=\"!app.canInstall || installing || loading(app.id)\"\n\t\t\t\t\t@click=\"enable(app.id)\">\n\t\t\t\t<input v-else-if=\"!app.active\"\n\t\t\t\t\tv-tooltip.auto=\"forceEnableButtonTooltip\"\n\t\t\t\t\tclass=\"enable force\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t:value=\"forceEnableButtonText\"\n\t\t\t\t\t:disabled=\"installing || loading(app.id)\"\n\t\t\t\t\t@click=\"forceEnable(app.id)\">\n\t\t\t</div>\n\t\t\t<div class=\"app-groups\">\n\t\t\t\t<div v-if=\"app.active && canLimitToGroups(app)\" class=\"groups-enable\">\n\t\t\t\t\t<input :id=\"prefix('groups_enable', app.id)\"\n\t\t\t\t\t\tv-model=\"groupCheckedAppsData\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t:value=\"app.id\"\n\t\t\t\t\t\tclass=\"groups-enable__checkbox checkbox\"\n\t\t\t\t\t\t@change=\"setGroupLimit\">\n\t\t\t\t\t<label :for=\"prefix('groups_enable', app.id)\">{{ t('settings', 'Limit to groups') }}</label>\n\t\t\t\t\t<input type=\"hidden\"\n\t\t\t\t\t\tclass=\"group_select\"\n\t\t\t\t\t\t:title=\"t('settings', 'All')\"\n\t\t\t\t\t\tvalue=\"\">\n\t\t\t\t\t<Multiselect v-if=\"isLimitedToGroups(app)\"\n\t\t\t\t\t\t:options=\"groups\"\n\t\t\t\t\t\t:value=\"appGroups\"\n\t\t\t\t\t\t:options-limit=\"5\"\n\t\t\t\t\t\t:placeholder=\"t('settings', 'Limit app usage to groups')\"\n\t\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t\ttrack-by=\"id\"\n\t\t\t\t\t\tclass=\"multiselect-vue\"\n\t\t\t\t\t\t:multiple=\"true\"\n\t\t\t\t\t\t:close-on-select=\"false\"\n\t\t\t\t\t\t:tag-width=\"60\"\n\t\t\t\t\t\t@select=\"addGroupLimitation\"\n\t\t\t\t\t\t@remove=\"removeGroupLimitation\"\n\t\t\t\t\t\t@search-change=\"asyncFindGroup\">\n\t\t\t\t\t\t<span slot=\"noResult\">{{ t('settings', 'No results') }}</span>\n\t\t\t\t\t</Multiselect>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<ul class=\"app-dependencies\">\n\t\t\t<li v-if=\"app.missingMinOwnCloudVersion\">\n\t\t\t\t{{ t('settings', 'This app has no minimum Nextcloud version assigned. This will be an error in the future.') }}\n\t\t\t</li>\n\t\t\t<li v-if=\"app.missingMaxOwnCloudVersion\">\n\t\t\t\t{{ t('settings', 'This app has no maximum Nextcloud version assigned. This will be an error in the future.') }}\n\t\t\t</li>\n\t\t\t<li v-if=\"!app.canInstall\">\n\t\t\t\t{{ t('settings', 'This app cannot be installed because the following dependencies are not fulfilled:') }}\n\t\t\t\t<ul class=\"missing-dependencies\">\n\t\t\t\t\t<li v-for=\"(dep, index) in app.missingDependencies\" :key=\"index\">\n\t\t\t\t\t\t{{ dep }}\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t</ul>\n\n\t\t<p class=\"documentation\">\n\t\t\t<a v-if=\"!app.internal\"\n\t\t\t\tclass=\"appslink\"\n\t\t\t\t:href=\"appstoreUrl\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer noopener\">{{ t('settings', 'View in store') }} ↗</a>\n\n\t\t\t<a v-if=\"app.website\"\n\t\t\t\tclass=\"appslink\"\n\t\t\t\t:href=\"app.website\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer noopener\">{{ t('settings', 'Visit website') }} ↗</a>\n\t\t\t<a v-if=\"app.bugs\"\n\t\t\t\tclass=\"appslink\"\n\t\t\t\t:href=\"app.bugs\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer noopener\">{{ t('settings', 'Report a bug') }} ↗</a>\n\n\t\t\t<a v-if=\"app.documentation && app.documentation.user\"\n\t\t\t\tclass=\"appslink\"\n\t\t\t\t:href=\"app.documentation.user\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer noopener\">{{ t('settings', 'User documentation') }} ↗</a>\n\t\t\t<a v-if=\"app.documentation && app.documentation.admin\"\n\t\t\t\tclass=\"appslink\"\n\t\t\t\t:href=\"app.documentation.admin\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer noopener\">{{ t('settings', 'Admin documentation') }} ↗</a>\n\t\t\t<a v-if=\"app.documentation && app.documentation.developer\"\n\t\t\t\tclass=\"appslink\"\n\t\t\t\t:href=\"app.documentation.developer\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer noopener\">{{ t('settings', 'Developer documentation') }} ↗</a>\n\t\t</p>\n\n\t\t<div class=\"app-description\" v-html=\"renderMarkdown\" />\n\t</div>\n</template>\n\n<script>\nimport { Multiselect } from 'nextcloud-vue'\nimport marked from 'marked'\nimport dompurify from 'dompurify'\n\nimport AppScore from './AppList/AppScore'\nimport AppManagement from './AppManagement'\nimport PrefixMixin from './PrefixMixin'\nimport SvgFilterMixin from './SvgFilterMixin'\n\nexport default {\n\tname: 'AppDetails',\n\tcomponents: {\n\t\tMultiselect,\n\t\tAppScore\n\t},\n\tmixins: [AppManagement, PrefixMixin, SvgFilterMixin],\n\tprops: ['category', 'app'],\n\tdata() {\n\t\treturn {\n\t\t\tgroupCheckedAppsData: false\n\t\t}\n\t},\n\tcomputed: {\n\t\tappstoreUrl() {\n\t\t\treturn `https://apps.nextcloud.com/apps/${this.app.id}`\n\t\t},\n\t\tlicence() {\n\t\t\tif (this.app.licence) {\n\t\t\t\treturn t('settings', '{license}-licensed', { license: ('' + this.app.licence).toUpperCase() })\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\thasRating() {\n\t\t\treturn this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5\n\t\t},\n\t\tauthor() {\n\t\t\tif (typeof this.app.author === 'string') {\n\t\t\t\treturn [\n\t\t\t\t\t{\n\t\t\t\t\t\t'@value': this.app.author\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t\tif (this.app.author['@value']) {\n\t\t\t\treturn [this.app.author]\n\t\t\t}\n\t\t\treturn this.app.author\n\t\t},\n\t\tappGroups() {\n\t\t\treturn this.app.groups.map(group => { return { id: group, name: group } })\n\t\t},\n\t\tgroups() {\n\t\t\treturn this.$store.getters.getGroups\n\t\t\t\t.filter(group => group.id !== 'disabled')\n\t\t\t\t.sort((a, b) => a.name.localeCompare(b.name))\n\t\t},\n\t\trenderMarkdown() {\n\t\t\tvar renderer = new marked.Renderer()\n\t\t\trenderer.link = function(href, title, text) {\n\t\t\t\ttry {\n\t\t\t\t\tvar prot = decodeURIComponent(unescape(href))\n\t\t\t\t\t\t.replace(/[^\\w:]/g, '')\n\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\n\t\t\t\tif (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\n\t\t\t\tvar out = '<a href=\"' + href + '\" rel=\"noreferrer noopener\"'\n\t\t\t\tif (title) {\n\t\t\t\t\tout += ' title=\"' + title + '\"'\n\t\t\t\t}\n\t\t\t\tout += '>' + text + '</a>'\n\t\t\t\treturn out\n\t\t\t}\n\t\t\trenderer.image = function(href, title, text) {\n\t\t\t\tif (text) {\n\t\t\t\t\treturn text\n\t\t\t\t}\n\t\t\t\treturn title\n\t\t\t}\n\t\t\trenderer.blockquote = function(quote) {\n\t\t\t\treturn quote\n\t\t\t}\n\t\t\treturn dompurify.sanitize(\n\t\t\t\tmarked(this.app.description.trim(), {\n\t\t\t\t\trenderer: renderer,\n\t\t\t\t\tgfm: false,\n\t\t\t\t\thighlight: false,\n\t\t\t\t\ttables: false,\n\t\t\t\t\tbreaks: false,\n\t\t\t\t\tpedantic: false,\n\t\t\t\t\tsanitize: true,\n\t\t\t\t\tsmartLists: true,\n\t\t\t\t\tsmartypants: false\n\t\t\t\t}),\n\t\t\t\t{\n\t\t\t\t\tSAFE_FOR_JQUERY: true,\n\t\t\t\t\tALLOWED_TAGS: [\n\t\t\t\t\t\t'strong',\n\t\t\t\t\t\t'p',\n\t\t\t\t\t\t'a',\n\t\t\t\t\t\t'ul',\n\t\t\t\t\t\t'ol',\n\t\t\t\t\t\t'li',\n\t\t\t\t\t\t'em',\n\t\t\t\t\t\t'del',\n\t\t\t\t\t\t'blockquote'\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\t},\n\tmounted() {\n\t\tif (this.app.groups.length > 0) {\n\t\t\tthis.groupCheckedAppsData = true\n\t\t}\n\t}\n}\n</script>\n\n<style scoped>\n\t.force {\n\t\tbackground: var(--color-main-background);\n\t\tborder-color: var(--color-error);\n\t\tcolor: var(--color-error);\n\t}\n\t.force:hover,\n\t.force:active {\n\t\tbackground: var(--color-error);\n\t\tborder-color: var(--color-error) !important;\n\t\tcolor: var(--color-main-background);\n\t}\n</style>\n","import { render, staticRenderFns } from \"./AppDetails.vue?vue&type=template&id=46598ca8&scoped=true&\"\nimport script from \"./AppDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./AppDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppDetails.vue?vue&type=style&index=0&id=46598ca8&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 \"46598ca8\",\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',{staticStyle:{\"padding\":\"20px\"},attrs:{\"id\":\"app-details-view\"}},[_c('h2',[(!_vm.app.preview)?_c('div',{staticClass:\"icon-settings-dark\"}):_vm._e(),_vm._v(\" \"),(_vm.app.previewAsIcon && _vm.app.preview)?_c('svg',{attrs:{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"0 0 32 32\"}},[_c('defs',[_c('filter',{attrs:{\"id\":_vm.filterId}},[_c('feColorMatrix',{attrs:{\"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\"}})],1)]),_vm._v(\" \"),_c('image',{staticClass:\"app-icon\",attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"32\",\"height\":\"32\",\"preserveAspectRatio\":\"xMinYMin meet\",\"filter\":_vm.filterUrl,\"xlink:href\":_vm.app.preview}})]):_vm._e(),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.name)+\"\\n\\t\")]),_vm._v(\" \"),(_vm.app.screenshot)?_c('img',{attrs:{\"src\":_vm.app.screenshot,\"width\":\"100%\"}}):_vm._e(),_vm._v(\" \"),(_vm.app.level === 300 || _vm.app.level === 200 || _vm.hasRating)?_c('div',{staticClass:\"app-level\"},[(_vm.app.level === 300)?_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.t('settings', 'This app is supported via your current Nextcloud subscription.')),expression:\"t('settings', 'This app is supported via your current Nextcloud subscription.')\",modifiers:{\"auto\":true}}],staticClass:\"supported icon-checkmark-color\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Supported')))]):_vm._e(),_vm._v(\" \"),(_vm.app.level === 200)?_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')),expression:\"t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')\",modifiers:{\"auto\":true}}],staticClass:\"official icon-checkmark\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Featured')))]):_vm._e(),_vm._v(\" \"),(_vm.hasRating)?_c('AppScore',{attrs:{\"score\":_vm.app.appstoreData.ratingOverall}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.author)?_c('div',{staticClass:\"app-author\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'by'))+\"\\n\\t\\t\"),_vm._l((_vm.author),function(a,index){return _c('span',{key:index},[(a['@attributes'] && a['@attributes']['homepage'])?_c('a',{attrs:{\"href\":a['@attributes']['homepage']}},[_vm._v(_vm._s(a['@value']))]):(a['@value'])?_c('span',[_vm._v(_vm._s(a['@value']))]):_c('span',[_vm._v(_vm._s(a))]),(index+1 < _vm.author.length)?_c('span',[_vm._v(\", \")]):_vm._e()])})],2):_vm._e(),_vm._v(\" \"),(_vm.licence)?_c('div',{staticClass:\"app-licence\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.licence)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"actions\"},[_c('div',{staticClass:\"actions-buttons\"},[(_vm.app.update)?_c('input',{staticClass:\"update primary\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings', 'Update to {version}', {version: _vm.app.update}),\"disabled\":_vm.installing || _vm.loading(_vm.app.id)},on:{\"click\":function($event){return _vm.update(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.canUnInstall)?_c('input',{staticClass:\"uninstall\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings', 'Remove'),\"disabled\":_vm.installing || _vm.loading(_vm.app.id)},on:{\"click\":function($event){return _vm.remove(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.active)?_c('input',{staticClass:\"enable\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings','Disable'),\"disabled\":_vm.installing || _vm.loading(_vm.app.id)},on:{\"click\":function($event){return _vm.disable(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(!_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible))?_c('input',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.enableButtonTooltip),expression:\"enableButtonTooltip\",modifiers:{\"auto\":true}}],staticClass:\"enable primary\",attrs:{\"type\":\"button\",\"value\":_vm.enableButtonText,\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.loading(_vm.app.id)},on:{\"click\":function($event){return _vm.enable(_vm.app.id)}}}):(!_vm.app.active)?_c('input',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.forceEnableButtonTooltip),expression:\"forceEnableButtonTooltip\",modifiers:{\"auto\":true}}],staticClass:\"enable force\",attrs:{\"type\":\"button\",\"value\":_vm.forceEnableButtonText,\"disabled\":_vm.installing || _vm.loading(_vm.app.id)},on:{\"click\":function($event){return _vm.forceEnable(_vm.app.id)}}}):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"app-groups\"},[(_vm.app.active && _vm.canLimitToGroups(_vm.app))?_c('div',{staticClass:\"groups-enable\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.groupCheckedAppsData),expression:\"groupCheckedAppsData\"}],staticClass:\"groups-enable__checkbox checkbox\",attrs:{\"id\":_vm.prefix('groups_enable', _vm.app.id),\"type\":\"checkbox\"},domProps:{\"value\":_vm.app.id,\"checked\":Array.isArray(_vm.groupCheckedAppsData)?_vm._i(_vm.groupCheckedAppsData,_vm.app.id)>-1:(_vm.groupCheckedAppsData)},on:{\"change\":[function($event){var $$a=_vm.groupCheckedAppsData,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=_vm.app.id,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.groupCheckedAppsData=$$a.concat([$$v]))}else{$$i>-1&&(_vm.groupCheckedAppsData=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.groupCheckedAppsData=$$c}},_vm.setGroupLimit]}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":_vm.prefix('groups_enable', _vm.app.id)}},[_vm._v(_vm._s(_vm.t('settings', 'Limit to groups')))]),_vm._v(\" \"),_c('input',{staticClass:\"group_select\",attrs:{\"type\":\"hidden\",\"title\":_vm.t('settings', 'All'),\"value\":\"\"}}),_vm._v(\" \"),(_vm.isLimitedToGroups(_vm.app))?_c('Multiselect',{staticClass:\"multiselect-vue\",attrs:{\"options\":_vm.groups,\"value\":_vm.appGroups,\"options-limit\":5,\"placeholder\":_vm.t('settings', 'Limit app usage to groups'),\"label\":\"name\",\"track-by\":\"id\",\"multiple\":true,\"close-on-select\":false,\"tag-width\":60},on:{\"select\":_vm.addGroupLimitation,\"remove\":_vm.removeGroupLimitation,\"search-change\":_vm.asyncFindGroup}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(_vm._s(_vm.t('settings', 'No results')))])]):_vm._e()],1):_vm._e()])]),_vm._v(\" \"),_c('ul',{staticClass:\"app-dependencies\"},[(_vm.app.missingMinOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app has no minimum Nextcloud version assigned. This will be an error in the future.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.missingMaxOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app has no maximum Nextcloud version assigned. This will be an error in the future.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.app.canInstall)?_c('li',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app cannot be installed because the following dependencies are not fulfilled:'))+\"\\n\\t\\t\\t\"),_c('ul',{staticClass:\"missing-dependencies\"},_vm._l((_vm.app.missingDependencies),function(dep,index){return _c('li',{key:index},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(dep)+\"\\n\\t\\t\\t\\t\")])}),0)]):_vm._e()]),_vm._v(\" \"),_c('p',{staticClass:\"documentation\"},[(!_vm.app.internal)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.appstoreUrl,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'View in store'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.website)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.website,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Visit website'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.bugs)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.bugs,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Report a bug'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.documentation && _vm.app.documentation.user)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.documentation.user,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'User documentation'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.documentation && _vm.app.documentation.admin)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.documentation.admin,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Admin documentation'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.documentation && _vm.app.documentation.developer)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.documentation.developer,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Developer documentation'))+\" ↗\")]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"app-description\",domProps:{\"innerHTML\":_vm._s(_vm.renderMarkdown)}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\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<Content app-name=\"settings\"\n\t\t:class=\"{ 'with-app-sidebar': currentApp}\"\n\t\t:content-class=\"{ 'icon-loading': loadingList }\"\n\t\t:navigation-class=\"{ 'icon-loading': loading }\">\n\t\t<AppNavigation>\n\t\t\t<ul id=\"appscategories\">\n\t\t\t\t<AppNavigationItem v-for=\"item in menu\" :key=\"item.key\" :item=\"item\" />\n\t\t\t</ul>\n\t\t</AppNavigation>\n\t\t<AppContent class=\"app-settings-content\" :class=\"{ 'icon-loading': loadingList }\">\n\t\t\t<AppList :category=\"category\" :app=\"currentApp\" :search=\"searchQuery\" />\n\t\t</AppContent>\n\t\t<AppSidebar v-if=\"id && currentApp\" @close=\"hideAppDetails\">\n\t\t\t<AppDetails :category=\"category\" :app=\"currentApp\" />\n\t\t</AppSidebar>\n\t</Content>\n</template>\n\n<script>\nimport {\n\tAppContent,\n\tAppNavigation,\n\tAppNavigationItem,\n\tAppSidebar,\n\tContent\n} from 'nextcloud-vue'\nimport AppList from '../components/AppList'\nimport Vue from 'vue'\nimport VueLocalStorage from 'vue-localstorage'\nimport AppDetails from '../components/AppDetails'\n\nVue.use(VueLocalStorage)\n\nexport default {\n\tname: 'Apps',\n\tcomponents: {\n\t\tAppContent,\n\t\tAppNavigation,\n\t\tAppNavigationItem,\n\t\tAppSidebar,\n\t\tContent,\n\t\tAppDetails,\n\t\tAppList\n\t},\n\tprops: {\n\t\tcategory: {\n\t\t\ttype: String,\n\t\t\tdefault: 'installed'\n\t\t},\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsearchQuery: ''\n\t\t}\n\t},\n\tcomputed: {\n\t\tloading() {\n\t\t\treturn this.$store.getters.loading('categories')\n\t\t},\n\t\tloadingList() {\n\t\t\treturn this.$store.getters.loading('list')\n\t\t},\n\t\tcurrentApp() {\n\t\t\treturn this.apps.find(app => app.id === this.id)\n\t\t},\n\t\tcategories() {\n\t\t\treturn this.$store.getters.getCategories\n\t\t},\n\t\tapps() {\n\t\t\treturn this.$store.getters.getAllApps\n\t\t},\n\t\tupdateCount() {\n\t\t\treturn this.$store.getters.getUpdateCount\n\t\t},\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\n\t\t// BUILD APP NAVIGATION MENU OBJECT\n\t\tmenu() {\n\t\t\t// Data provided php side\n\t\t\tlet categories = this.$store.getters.getCategories\n\t\t\tcategories = Array.isArray(categories) ? categories : []\n\n\t\t\t// Map groups\n\t\t\tcategories = categories.map(category => {\n\t\t\t\tlet item = {}\n\t\t\t\titem.id = 'app-category-' + category.ident\n\t\t\t\titem.icon = 'icon-category-' + category.ident\n\t\t\t\titem.classes = []\t\t\t\t\t\t\t// empty classes, active will be set later\n\t\t\t\titem.router = {\t\t\t\t\t\t\t\t// router link to\n\t\t\t\t\tname: 'apps-category',\n\t\t\t\t\tparams: { category: category.ident }\n\t\t\t\t}\n\t\t\t\titem.text = category.displayName\n\n\t\t\t\treturn item\n\t\t\t})\n\n\t\t\t// Add everyone group\n\t\t\tlet defaultCategories = [\n\t\t\t\t{\n\t\t\t\t\tid: 'app-category-your-apps',\n\t\t\t\t\tclasses: [],\n\t\t\t\t\trouter: { name: 'apps' },\n\t\t\t\t\ticon: 'icon-category-installed',\n\t\t\t\t\ttext: t('settings', 'Your apps')\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'app-category-enabled',\n\t\t\t\t\tclasses: [],\n\t\t\t\t\ticon: 'icon-category-enabled',\n\t\t\t\t\trouter: { name: 'apps-category', params: { category: 'enabled' } },\n\t\t\t\t\ttext: t('settings', 'Active apps')\n\t\t\t\t}, {\n\t\t\t\t\tid: 'app-category-disabled',\n\t\t\t\t\tclasses: [],\n\t\t\t\t\ticon: 'icon-category-disabled',\n\t\t\t\t\trouter: { name: 'apps-category', params: { category: 'disabled' } },\n\t\t\t\t\ttext: t('settings', 'Disabled apps')\n\t\t\t\t}\n\t\t\t]\n\n\t\t\tif (!this.settings.appstoreEnabled) {\n\t\t\t\treturn defaultCategories\n\t\t\t}\n\n\t\t\tif (this.$store.getters.getUpdateCount > 0) {\n\t\t\t\tdefaultCategories.push({\n\t\t\t\t\tid: 'app-category-updates',\n\t\t\t\t\tclasses: [],\n\t\t\t\t\ticon: 'icon-download',\n\t\t\t\t\trouter: { name: 'apps-category', params: { category: 'updates' } },\n\t\t\t\t\ttext: t('settings', 'Updates'),\n\t\t\t\t\tutils: { counter: this.$store.getters.getUpdateCount }\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tdefaultCategories.push({\n\t\t\t\tid: 'app-category-app-bundles',\n\t\t\t\tclasses: [],\n\t\t\t\ticon: 'icon-category-app-bundles',\n\t\t\t\trouter: { name: 'apps-category', params: { category: 'app-bundles' } },\n\t\t\t\ttext: t('settings', 'App bundles')\n\t\t\t})\n\n\t\t\tcategories = defaultCategories.concat(categories)\n\n\t\t\t// Set current group as active\n\t\t\tlet activeGroup = categories.findIndex(group => group.id === 'app-category-' + this.category)\n\t\t\tif (activeGroup >= 0) {\n\t\t\t\tcategories[activeGroup].classes.push('active')\n\t\t\t} else {\n\t\t\t\tcategories[0].classes.push('active')\n\t\t\t}\n\n\t\t\tcategories.push({\n\t\t\t\tid: 'app-developer-docs',\n\t\t\t\tclasses: [],\n\t\t\t\thref: this.settings.developerDocumentation,\n\t\t\t\ttext: t('settings', 'Developer documentation') + ' ↗'\n\t\t\t})\n\n\t\t\t// Return\n\t\t\treturn categories\n\t\t}\n\t},\n\twatch: {\n\t\tcategory: function(val, old) {\n\t\t\tthis.setSearch('')\n\t\t}\n\t},\n\tbeforeMount() {\n\t\tthis.$store.dispatch('getCategories')\n\t\tthis.$store.dispatch('getAllApps')\n\t\tthis.$store.dispatch('getGroups', { offset: 0, limit: 5 })\n\t\tthis.$store.commit('setUpdateCount', this.$store.getters.getServerData.updateCount)\n\t},\n\tmounted() {\n\t\t/**\n\t\t * Register search\n\t\t */\n\t\tthis.appSearch = new OCA.Search(this.setSearch, this.resetSearch)\n\t},\n\tmethods: {\n\t\tsetSearch(query) {\n\t\t\tthis.searchQuery = query\n\t\t},\n\t\tresetSearch() {\n\t\t\tthis.setSearch('')\n\t\t},\n\t\thideAppDetails() {\n\t\t\tthis.$router.push({\n\t\t\t\tname: 'apps-category',\n\t\t\t\tparams: { category: this.category }\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!./Apps.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!./Apps.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Apps.vue?vue&type=template&id=66f8eae7&\"\nimport script from \"./Apps.vue?vue&type=script&lang=js&\"\nexport * from \"./Apps.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"],"sourceRoot":""} |