forked from AkkomaGang/admin-fe
Merge branch 'fix/disable-invites' into 'develop'
Hide Invites from menu when invites are disabled Closes #69, #54, and #96 See merge request pleroma/admin-fe!119
This commit is contained in:
commit
66c5a85821
13 changed files with 33 additions and 146 deletions
17
CHANGELOG.md
17
CHANGELOG.md
|
@ -8,15 +8,32 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- Link settings that enable registrations and invites
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Disable Invites tab when invites are disabled on BE
|
||||||
|
|
||||||
|
## [2.0.2] - 2020-04-01
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
- Ability to see local statuses in Statuses by instance section
|
- Ability to see local statuses in Statuses by instance section
|
||||||
- Ability to configure Oban.Cron settings and settings for notifications streamer
|
- Ability to configure Oban.Cron settings and settings for notifications streamer
|
||||||
- Settings search
|
- Settings search
|
||||||
|
- Ability to set user's password and email on user's page
|
||||||
|
- Display status count by scope on Statuses page
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Link to Pleroma docs when a non-admin user tries to log in
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fix parsing tuples in Pleroma.Upload.Filter.Mogrify and Pleroma.Emails.Mailer settings
|
- Fix parsing tuples in Pleroma.Upload.Filter.Mogrify and Pleroma.Emails.Mailer settings
|
||||||
- Fix settings submit button position on wide screens when sidebar menu is open
|
- Fix settings submit button position on wide screens when sidebar menu is open
|
||||||
- Updates links for downloading remote emoji packs
|
- Updates links for downloading remote emoji packs
|
||||||
|
- Fix parsing emails that have symbols in it
|
||||||
|
|
||||||
## [2.0] - 2020-02-27
|
## [2.0] - 2020-02-27
|
||||||
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
/** When your routing table is too long, you can split it into small modules**/
|
|
||||||
|
|
||||||
import Layout from '@/views/layout/Layout'
|
|
||||||
|
|
||||||
const chartsRouter = {
|
|
||||||
path: '/charts',
|
|
||||||
component: Layout,
|
|
||||||
redirect: 'noredirect',
|
|
||||||
name: 'Charts',
|
|
||||||
meta: {
|
|
||||||
title: 'charts',
|
|
||||||
icon: 'chart'
|
|
||||||
},
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'keyboard',
|
|
||||||
component: () => import('@/views/charts/keyboard'),
|
|
||||||
name: 'KeyboardChart',
|
|
||||||
meta: { title: 'keyboardChart', noCache: true }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'line',
|
|
||||||
component: () => import('@/views/charts/line'),
|
|
||||||
name: 'LineChart',
|
|
||||||
meta: { title: 'lineChart', noCache: true }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'mixchart',
|
|
||||||
component: () => import('@/views/charts/mixChart'),
|
|
||||||
name: 'MixChart',
|
|
||||||
meta: { title: 'mixChart', noCache: true }
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
export default chartsRouter
|
|
|
@ -1,66 +0,0 @@
|
||||||
/** When your routing table is too long, you can split it into small modules**/
|
|
||||||
|
|
||||||
import Layout from '@/views/layout/Layout'
|
|
||||||
|
|
||||||
const nestedRouter = {
|
|
||||||
path: '/nested',
|
|
||||||
component: Layout,
|
|
||||||
redirect: '/nested/menu1/menu1-1',
|
|
||||||
name: 'Nested',
|
|
||||||
meta: {
|
|
||||||
title: 'nested',
|
|
||||||
icon: 'nested'
|
|
||||||
},
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'menu1',
|
|
||||||
component: () => import('@/views/nested/menu1/index'), // Parent router-view
|
|
||||||
name: 'Menu1',
|
|
||||||
meta: { title: 'menu1' },
|
|
||||||
redirect: '/nested/menu1/menu1-1',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'menu1-1',
|
|
||||||
component: () => import('@/views/nested/menu1/menu1-1'),
|
|
||||||
name: 'Menu1-1',
|
|
||||||
meta: { title: 'menu1-1' }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'menu1-2',
|
|
||||||
component: () => import('@/views/nested/menu1/menu1-2'),
|
|
||||||
name: 'Menu1-2',
|
|
||||||
redirect: '/nested/menu1/menu1-2/menu1-2-1',
|
|
||||||
meta: { title: 'menu1-2' },
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'menu1-2-1',
|
|
||||||
component: () => import('@/views/nested/menu1/menu1-2/menu1-2-1'),
|
|
||||||
name: 'Menu1-2-1',
|
|
||||||
meta: { title: 'menu1-2-1' }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'menu1-2-2',
|
|
||||||
component: () => import('@/views/nested/menu1/menu1-2/menu1-2-2'),
|
|
||||||
name: 'Menu1-2-2',
|
|
||||||
meta: { title: 'menu1-2-2' }
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'menu1-3',
|
|
||||||
component: () => import('@/views/nested/menu1/menu1-3'),
|
|
||||||
name: 'Menu1-3',
|
|
||||||
meta: { title: 'menu1-3' }
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'menu2',
|
|
||||||
name: 'Menu2',
|
|
||||||
component: () => import('@/views/nested/menu2/index'),
|
|
||||||
meta: { title: 'menu2' }
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
export default nestedRouter
|
|
|
@ -8,7 +8,8 @@ const app = {
|
||||||
},
|
},
|
||||||
device: 'desktop',
|
device: 'desktop',
|
||||||
language: Cookies.get('language') || 'en',
|
language: Cookies.get('language') || 'en',
|
||||||
size: Cookies.get('size') || 'medium'
|
size: Cookies.get('size') || 'medium',
|
||||||
|
invitesEnabled: false
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
TOGGLE_SIDEBAR: state => {
|
TOGGLE_SIDEBAR: state => {
|
||||||
|
@ -28,6 +29,9 @@ const app = {
|
||||||
TOGGLE_DEVICE: (state, device) => {
|
TOGGLE_DEVICE: (state, device) => {
|
||||||
state.device = device
|
state.device = device
|
||||||
},
|
},
|
||||||
|
SET_INVITES_ENABLED: (state, invitesEnabled) => {
|
||||||
|
state.invitesEnabled = invitesEnabled
|
||||||
|
},
|
||||||
SET_LANGUAGE: (state, language) => {
|
SET_LANGUAGE: (state, language) => {
|
||||||
state.language = language
|
state.language = language
|
||||||
Cookies.set('language', language)
|
Cookies.set('language', language)
|
||||||
|
@ -47,6 +51,9 @@ const app = {
|
||||||
toggleDevice({ commit }, device) {
|
toggleDevice({ commit }, device) {
|
||||||
commit('TOGGLE_DEVICE', device)
|
commit('TOGGLE_DEVICE', device)
|
||||||
},
|
},
|
||||||
|
SetInvitesEnabled({ commit }, invitesEnabled) {
|
||||||
|
commit('SET_INVITES_ENABLED', invitesEnabled)
|
||||||
|
},
|
||||||
setLanguage({ commit }, language) {
|
setLanguage({ commit }, language) {
|
||||||
commit('SET_LANGUAGE', language)
|
commit('SET_LANGUAGE', language)
|
||||||
},
|
},
|
||||||
|
|
|
@ -72,10 +72,11 @@ const user = {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async GetNodeInfo({ commit, state }) {
|
async GetNodeInfo({ commit, dispatch, state }) {
|
||||||
const nodeInfo = await getNodeInfo(state.authHost)
|
const nodeInfo = await getNodeInfo(state.authHost)
|
||||||
|
|
||||||
commit('SET_NODE_INFO', nodeInfo.data)
|
commit('SET_NODE_INFO', nodeInfo.data)
|
||||||
|
dispatch('SetInvitesEnabled', nodeInfo.data.metadata.invitesEnabled)
|
||||||
},
|
},
|
||||||
GetUserInfo({ commit, state }) {
|
GetUserInfo({ commit, state }) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-if="!item.hidden&&item.children" class="menu-wrapper">
|
<div v-if="!item.hidden && item.children && invitesEnabled" class="menu-wrapper">
|
||||||
|
|
||||||
<template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
|
<template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
|
||||||
<app-link :to="resolvePath(onlyOneChild.path)">
|
<app-link :to="resolvePath(onlyOneChild.path)">
|
||||||
|
@ -68,6 +68,11 @@ export default {
|
||||||
onlyOneChild: null
|
onlyOneChild: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
invitesEnabled() {
|
||||||
|
return this.basePath === '/invites' ? this.$store.state.app.invitesEnabled : true
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
hasOneShowingChild(children, parent) {
|
hasOneShowingChild(children, parent) {
|
||||||
const showingChildren = children.filter(item => {
|
const showingChildren = children.filter(item => {
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
<template >
|
|
||||||
<div style="padding:30px;">
|
|
||||||
<el-alert :closable="false" title="menu 1">
|
|
||||||
<router-view />
|
|
||||||
</el-alert>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
|
@ -1,7 +0,0 @@
|
||||||
<template >
|
|
||||||
<div style="padding:30px;">
|
|
||||||
<el-alert :closable="false" title="menu 1-1" type="success">
|
|
||||||
<router-view />
|
|
||||||
</el-alert>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
|
@ -1,7 +0,0 @@
|
||||||
<template>
|
|
||||||
<div style="padding:30px;">
|
|
||||||
<el-alert :closable="false" title="menu 1-2" type="success">
|
|
||||||
<router-view />
|
|
||||||
</el-alert>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<template functional>
|
|
||||||
<div style="padding:30px;">
|
|
||||||
<el-alert :closable="false" title="menu 1-2-1" type="warning" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<template functional>
|
|
||||||
<div style="padding:30px;">
|
|
||||||
<el-alert :closable="false" title="menu 1-2-2" type="warning" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<template functional>
|
|
||||||
<div style="padding:30px;">
|
|
||||||
<el-alert :closable="false" title="menu 1-3" type="success" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<template>
|
|
||||||
<div style="padding:30px;">
|
|
||||||
<el-alert :closable="false" title="menu 2" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
Loading…
Reference in a new issue