diff --git a/apps/settings/css/settings.scss b/apps/settings/css/settings.scss index d9073b9a138..e2b9099f5d3 100644 --- a/apps/settings/css/settings.scss +++ b/apps/settings/css/settings.scss @@ -1021,6 +1021,9 @@ span.version { } .apps-list { + $toolbar-padding: 8px; + $toolbar-height: 44px + $toolbar-padding * 2; + .section { cursor: pointer; } @@ -1033,14 +1036,17 @@ span.version { margin-left: 10px; } - .counter { - padding-left: $header-height; - padding-top: 10px; + .toolbar { + height: $toolbar-height; + padding: $toolbar-padding; + // Leave room for app-navigation-toggle + padding-left: $toolbar-height; width: 100%; background-color: var(--color-main-background); position: fixed; z-index: 1; - height: $header-height; + display: flex; + align-items: center; } &.installed { @@ -1048,7 +1054,7 @@ span.version { display: table; width: 100%; height: auto; - margin-top: $header-height; + margin-top: $toolbar-height; } margin-bottom: 100px; diff --git a/apps/settings/src/components/AdminTwoFactor.vue b/apps/settings/src/components/AdminTwoFactor.vue index 2f568913124..bfec05e331b 100644 --- a/apps/settings/src/components/AdminTwoFactor.vue +++ b/apps/settings/src/components/AdminTwoFactor.vue @@ -55,12 +55,12 @@
- +
@@ -68,6 +68,8 @@ \\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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.app},attrs:{\"app-name\":\"settings\",\"content-class\":{ 'icon-loading': _vm.loadingList },\"navigation-class\":{ 'icon-loading': _vm.loading }}},[_c('AppNavigation',{scopedSlots:_vm._u([{key:\"list\",fn:function(){return [_c('AppNavigationItem',{attrs:{\"id\":\"app-category-your-apps\",\"to\":{ name: 'apps' },\"exact\":true,\"icon\":\"icon-category-installed\",\"title\":_vm.t('settings', 'Your apps')}}),_vm._v(\" \"),_c('AppNavigationItem',{attrs:{\"id\":\"app-category-enabled\",\"to\":{ name: 'apps-category', params: { category: 'enabled' } },\"icon\":\"icon-category-enabled\",\"title\":_vm.t('settings', 'Active apps')}}),_vm._v(\" \"),_c('AppNavigationItem',{attrs:{\"id\":\"app-category-disabled\",\"to\":{ name: 'apps-category', params: { category: 'disabled' } },\"icon\":\"icon-category-disabled\",\"title\":_vm.t('settings', 'Disabled apps')}}),_vm._v(\" \"),(_vm.updateCount > 0)?_c('AppNavigationItem',{attrs:{\"id\":\"app-category-updates\",\"to\":{ name: 'apps-category', params: { category: 'updates' } },\"icon\":\"icon-download\",\"title\":_vm.t('settings', 'Updates')}},[_c('AppNavigationCounter',{attrs:{\"slot\":\"counter\"},slot:\"counter\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.updateCount)+\"\\n\\t\\t\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),_c('AppNavigationItem',{attrs:{\"id\":\"app-category-your-bundles\",\"to\":{ name: 'apps-category', params: { category: 'app-bundles' } },\"icon\":\"icon-category-app-bundles\",\"title\":_vm.t('settings', 'App bundles')}}),_vm._v(\" \"),_c('AppNavigationSpacer'),_vm._v(\" \"),(_vm.settings.appstoreEnabled)?[_c('AppNavigationItem',{attrs:{\"id\":\"app-category-featured\",\"to\":{ name: 'apps-category', params: { category: 'featured' } },\"icon\":\"icon-favorite\",\"title\":_vm.t('settings', 'Featured apps')}}),_vm._v(\" \"),_vm._l((_vm.categories),function(cat){return _c('AppNavigationItem',{key:'icon-category-' + cat.ident,attrs:{\"icon\":'icon-category-' + cat.ident,\"to\":{\n\t\t\t\t\t\tname: 'apps-category',\n\t\t\t\t\t\tparams: { category: cat.ident },\n\t\t\t\t\t},\"title\":cat.displayName}})})]:_vm._e(),_vm._v(\" \"),_c('AppNavigationItem',{attrs:{\"id\":\"app-developer-docs\",\"href\":\"settings.developerDocumentation\",\"title\":_vm.t('settings', 'Developer documentation') + ' ↗'}})]},proxy:true}])}),_vm._v(\" \"),_c('AppContent',{staticClass:\"app-settings-content\",class:{ 'icon-loading': _vm.loadingList }},[_c('AppList',{attrs:{\"category\":_vm.category,\"app\":_vm.app,\"search\":_vm.searchQuery}})],1),_vm._v(\" \"),(_vm.id && _vm.app)?_c('AppSidebar',_vm._b({class:{'app-sidebar--without-background': !_vm.appSidebar.background},on:{\"close\":_vm.hideAppDetails},scopedSlots:_vm._u([(!_vm.appSidebar.background)?{key:\"header\",fn:function(){return [_c('div',{staticClass:\"app-sidebar-header__figure--default-app-icon icon-settings-dark\"})]},proxy:true}:null,{key:\"description\",fn:function(){return [(_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\\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\\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(\" \"),_c('div',{staticClass:\"app-version\"},[_c('p',[_vm._v(_vm._s(_vm.app.version))])])]},proxy:true}],null,true)},'AppSidebar',_vm.appSidebar,false),[_vm._v(\" \"),_vm._v(\" \"),_c('AppSidebarTab',{attrs:{\"id\":\"desc\",\"icon\":\"icon-category-office\",\"name\":_vm.t('settings', 'Details'),\"order\":0}},[_c('AppDetails',{attrs:{\"app\":_vm.app}})],1),_vm._v(\" \"),(_vm.app.appstoreData && _vm.app.releases[0].translations.en.changelog)?_c('AppSidebarTab',{attrs:{\"id\":\"desca\",\"icon\":\"icon-category-organization\",\"name\":_vm.t('settings', 'Changelog'),\"order\":1}},_vm._l((_vm.app.releases),function(release){return _c('div',{key:release.version,staticClass:\"app-sidebar-tabs__release\"},[_c('h2',[_vm._v(_vm._s(release.version))]),_vm._v(\" \"),(_vm.changelog(release))?_c('Markdown',{attrs:{\"text\":_vm.changelog(release)}}):_vm._e()],1)}),0):_vm._e()],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\n\n\t\n\t\t\t{{ t('settings', 'View in store') }} ↗\n\n\t\t\t{{ t('settings', 'Visit website') }} ↗\n\t\t\t{{ t('settings', 'Report a bug') }} ↗\n\n\t\t\t{{ t('settings', 'User documentation') }} ↗\n\t\t\t{{ t('settings', 'Admin documentation') }} ↗\n\t\t\t{{ t('settings', 'Developer documentation') }} ↗\n\t\t
\n\t\t{{ app.version }}
\n\t\t\t\t\n\t\t\t{{ t('settings', 'View in store') }} ↗\n\n\t\t\t{{ t('settings', 'Visit website') }} ↗\n\t\t\t{{ t('settings', 'Report a bug') }} ↗\n\n\t\t\t{{ t('settings', 'User documentation') }} ↗\n\t\t\t{{ t('settings', 'Admin documentation') }} ↗\n\t\t\t{{ t('settings', 'Developer documentation') }} ↗\n\t\t
\n\t\t{{ app.version }}
\n\t\t\t\t\n\t\t\t{{ t('settings', 'Two-factor authentication can be enforced for all users and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.') }}\n\t\t
\n\t\t\n\t\t\t\n\t\t\t{{ t('settings', 'Enforce two-factor authentication') }}\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Two-factor authentication is enforced for all members of the following groups.') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t{{ t('settings', 'Two-factor authentication is not enforced for members of the following groups.') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\x3c!-- this text is also found in the documentation. update it there as well if it ever changes --\x3e\n\t\t\t\t\t{{ t('settings', 'When groups are selected/excluded, they use the following logic to determine if a user has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If a user is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.') }}\n\t\t\t\t\n\t\t\t
\n\t\t\n\t\t\n\t\t\t\n\t\t
\n\t\\n\\t\\t\\t{{ t('settings', 'Two-factor authentication can be enforced for all users and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.') }}\\n\\t\\t
\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t{{ t('settings', 'Enforce two-factor authentication') }}\\n\\t\\t
\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t{{ t('settings', 'Two-factor authentication is enforced for all members of the following groups.') }}\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t{{ t('settings', 'Two-factor authentication is not enforced for members of the following groups.') }}\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{ t('settings', 'When groups are selected/excluded, they use the following logic to determine if a user has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If a user is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.') }}\\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t
\\n\\t\n\t\t\t{{ t('settings', 'Two-factor authentication can be enforced for all users and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.') }}\n\t\t
\n\t\t\n\t\t\t\n\t\t\t{{ t('settings', 'Enforce two-factor authentication') }}\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Two-factor authentication is enforced for all members of the following groups.') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t{{ t('settings', 'Two-factor authentication is not enforced for members of the following groups.') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{{ t('settings', 'When groups are selected/excluded, they use the following logic to determine if a user has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If a user is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.') }}\n\t\t\t\t\n\t\t\t
\n\t\t\n\t\t\n\t\t\t\n\t\t
\n\t\\n\\t\\t\\t{{ t('settings', 'Two-factor authentication can be enforced for all users and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.') }}\\n\\t\\t
\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t{{ t('settings', 'Enforce two-factor authentication') }}\\n\\t\\t
\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t{{ t('settings', 'Two-factor authentication is enforced for all members of the following groups.') }}\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t{{ t('settings', 'Two-factor authentication is not enforced for members of the following groups.') }}\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{ t('settings', 'When groups are selected/excluded, they use the following logic to determine if a user has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If a user is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.') }}\\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t
\\n\\t