forked from sh-edraft.de/sh_discord_bot
Improved design of menu to handle servers #72
This commit is contained in:
parent
c094a3efae
commit
1055d5c2e1
4
kdb-web/.prettierrc
Normal file
4
kdb-web/.prettierrc
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"tabWidth": 4,
|
||||||
|
"useTabs": false
|
||||||
|
}
|
@ -1,3 +1,3 @@
|
|||||||
<div class="menu">
|
<div class="menu">
|
||||||
<p-menu [model]="menuItems"></p-menu>
|
<p-panelMenu [model]="menuItems"></p-panelMenu>
|
||||||
</div>
|
</div>
|
@ -40,6 +40,13 @@ export class SidebarComponent implements OnInit {
|
|||||||
this.menuItems = [];
|
this.menuItems = [];
|
||||||
this.menuItems = [
|
this.menuItems = [
|
||||||
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.dashboard') : '', icon: 'pi pi-th-large', routerLink: 'dashboard' },
|
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.dashboard') : '', icon: 'pi pi-th-large', routerLink: 'dashboard' },
|
||||||
|
|
||||||
|
{
|
||||||
|
label: this.isSidebarOpen ? this.translateService.instant('sidebar.server') : '', icon: 'pi pi-server', items: [
|
||||||
|
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.settings') : '', icon: 'pi pi-cog', routerLink: 'server/id/settings' },
|
||||||
|
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.members') : '', icon: 'pi pi-user-edit', routerLink: 'server/id/members' },
|
||||||
|
]
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!hasPermission) {
|
if (!hasPermission) {
|
||||||
@ -47,9 +54,12 @@ export class SidebarComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.menuItems.push(
|
this.menuItems.push(
|
||||||
{ separator: true },
|
{
|
||||||
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.config') : '', icon: 'pi pi-cog', routerLink: '/admin/settings' },
|
label: this.isSidebarOpen ? this.translateService.instant('sidebar.administration') : '', icon: 'pi pi-cog', items: [
|
||||||
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.auth_user_list') : '', icon: 'pi pi-user-edit', routerLink: '/admin/users' },
|
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.config') : '', icon: 'pi pi-cog', routerLink: '/admin/settings' },
|
||||||
|
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.auth_user_list') : '', icon: 'pi pi-user-edit', routerLink: '/admin/users' },
|
||||||
|
]
|
||||||
|
},
|
||||||
);
|
);
|
||||||
this.menuItems = this.menuItems.slice();
|
this.menuItems = this.menuItems.slice();
|
||||||
});
|
});
|
||||||
|
@ -18,6 +18,7 @@ import { ToastModule } from 'primeng/toast';
|
|||||||
import { AuthRolePipe } from './pipes/auth-role.pipe';
|
import { AuthRolePipe } from './pipes/auth-role.pipe';
|
||||||
import { IpAddressPipe } from './pipes/ip-address.pipe';
|
import { IpAddressPipe } from './pipes/ip-address.pipe';
|
||||||
import { BoolPipe } from './pipes/bool.pipe';
|
import { BoolPipe } from './pipes/bool.pipe';
|
||||||
|
import { PanelMenuModule } from 'primeng/panelmenu';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -44,7 +45,8 @@ import { BoolPipe } from './pipes/bool.pipe';
|
|||||||
CheckboxModule,
|
CheckboxModule,
|
||||||
DropdownModule,
|
DropdownModule,
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
DynamicDialogModule
|
DynamicDialogModule,
|
||||||
|
PanelMenuModule,
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
ButtonModule,
|
ButtonModule,
|
||||||
@ -63,6 +65,7 @@ import { BoolPipe } from './pipes/bool.pipe';
|
|||||||
DropdownModule,
|
DropdownModule,
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
DynamicDialogModule,
|
DynamicDialogModule,
|
||||||
|
PanelMenuModule,
|
||||||
AuthRolePipe,
|
AuthRolePipe,
|
||||||
IpAddressPipe,
|
IpAddressPipe,
|
||||||
BoolPipe,
|
BoolPipe,
|
||||||
|
@ -27,7 +27,7 @@ export class ThemeService {
|
|||||||
});
|
});
|
||||||
this.isSidebarOpen$.subscribe(isSidebarOpen => {
|
this.isSidebarOpen$.subscribe(isSidebarOpen => {
|
||||||
this.isSidebarOpen = isSidebarOpen;
|
this.isSidebarOpen = isSidebarOpen;
|
||||||
this.sidebarWidth$.next(isSidebarOpen ? '150px' : '50px');
|
this.sidebarWidth$.next(isSidebarOpen ? '175px' : '75px');
|
||||||
});
|
});
|
||||||
this.sidebarWidth$.subscribe(sidebarWidth => {
|
this.sidebarWidth$.subscribe(sidebarWidth => {
|
||||||
this.sidebarWidth = sidebarWidth;
|
this.sidebarWidth = sidebarWidth;
|
||||||
|
@ -9,6 +9,9 @@
|
|||||||
"dashboard": "Dashboard",
|
"dashboard": "Dashboard",
|
||||||
"server": "Server",
|
"server": "Server",
|
||||||
"server_empty": "Kein Server ausgewählt",
|
"server_empty": "Kein Server ausgewählt",
|
||||||
|
"settings": "Einstellungen",
|
||||||
|
"members": "Mitglieder",
|
||||||
|
"administration": "Administration",
|
||||||
"config": "Konfiguration",
|
"config": "Konfiguration",
|
||||||
"auth_user_list": "Benutzer"
|
"auth_user_list": "Benutzer"
|
||||||
},
|
},
|
||||||
@ -212,24 +215,8 @@
|
|||||||
"Freitag",
|
"Freitag",
|
||||||
"Samstag"
|
"Samstag"
|
||||||
],
|
],
|
||||||
"dayNamesShort": [
|
"dayNamesShort": ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"],
|
||||||
"Son",
|
"dayNamesMin": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
|
||||||
"Mon",
|
|
||||||
"Die",
|
|
||||||
"Mit",
|
|
||||||
"Don",
|
|
||||||
"Fre",
|
|
||||||
"Sam"
|
|
||||||
],
|
|
||||||
"dayNamesMin": [
|
|
||||||
"So",
|
|
||||||
"Mo",
|
|
||||||
"Di",
|
|
||||||
"Mi",
|
|
||||||
"Do",
|
|
||||||
"Fr",
|
|
||||||
"Sa"
|
|
||||||
],
|
|
||||||
"monthNames": [
|
"monthNames": [
|
||||||
"Januar",
|
"Januar",
|
||||||
"Februar",
|
"Februar",
|
||||||
@ -267,4 +254,4 @@
|
|||||||
"emptyMessage": "Keine Ergebnisse gefunden",
|
"emptyMessage": "Keine Ergebnisse gefunden",
|
||||||
"emptyFilterMessage": "Keine Ergebnisse gefunden"
|
"emptyFilterMessage": "Keine Ergebnisse gefunden"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,14 +6,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-menu {
|
.p-menu,
|
||||||
|
.p-panelmenu {
|
||||||
background: none !important;
|
background: none !important;
|
||||||
border: none !important;
|
border: none !important;
|
||||||
width: auto !important;
|
width: auto !important;
|
||||||
border-radius: 0px !important;
|
border-radius: 0px !important;
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
|
|
||||||
.p-menuitem-link {
|
.p-menuitem-link,
|
||||||
|
.p-panelmenu-header > a,
|
||||||
|
.p-panelmenu-content .p-menuitem .p-menuitem-link {
|
||||||
$distance: 10px;
|
$distance: 10px;
|
||||||
padding: $distance 0px $distance $distance !important;
|
padding: $distance 0px $distance $distance !important;
|
||||||
margin: 4px 0px 4px 6px !important;
|
margin: 4px 0px 4px 6px !important;
|
||||||
@ -24,6 +27,31 @@
|
|||||||
top: $headerHeight !important;
|
top: $headerHeight !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.p-panelmenu {
|
||||||
|
.p-panelmenu-icon {
|
||||||
|
order: 1; // to be the first item on right side.
|
||||||
|
}
|
||||||
|
.p-menuitem-text {
|
||||||
|
flex-grow: 1; // to fill the whole space and push the icon to the end
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-panelmenu-header > a {
|
||||||
|
border: none !important;
|
||||||
|
border-radius: none !important;
|
||||||
|
font-weight: none !important;
|
||||||
|
transition: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-panelmenu-content {
|
||||||
|
border: none !important;
|
||||||
|
background: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-menuitem-text {
|
||||||
|
line-height: normal !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ui-menu .ui-menu-parent .ui-menu-child {
|
ui-menu .ui-menu-parent .ui-menu-child {
|
||||||
width: 400px; /* exagerated !! */
|
width: 400px; /* exagerated !! */
|
||||||
}
|
}
|
||||||
|
@ -252,28 +252,43 @@
|
|||||||
stroke: $primaryHeaderColor !important;
|
stroke: $primaryHeaderColor !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-menu {
|
.p-menu,
|
||||||
|
.p-panelmenu {
|
||||||
color: $primaryTextColor !important;
|
color: $primaryTextColor !important;
|
||||||
|
|
||||||
.p-menuitem-link .p-menuitem-text,
|
.p-menuitem-link .p-menuitem-text,
|
||||||
.p-menuitem-link .p-menuitem-icon {
|
.p-menuitem-link .p-menuitem-icon,
|
||||||
|
.p-panelmenu-header > a {
|
||||||
color: $primaryTextColor !important;
|
color: $primaryTextColor !important;
|
||||||
|
background: transparent !important;
|
||||||
|
font-size: 1rem !important;
|
||||||
|
font-weight: normal !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-menuitem-link:focus {
|
.p-menuitem-link:focus,
|
||||||
|
.p-panelmenu-header > a:focus,
|
||||||
|
.p-panelmenu-content .p-menuitem .p-menuitem-link:focus {
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-menuitem-link:hover {
|
.p-menuitem-link:hover,
|
||||||
|
.p-panelmenu-header > a:hover,
|
||||||
|
.p-panelmenu-content .p-menuitem .p-menuitem-link:hover {
|
||||||
background-color: $secondaryBackgroundColor !important;
|
background-color: $secondaryBackgroundColor !important;
|
||||||
$border-radius: 20px;
|
$border-radius: 20px;
|
||||||
border-radius: $border-radius 0px 0px $border-radius;
|
border-radius: $border-radius 0px 0px $border-radius;
|
||||||
|
|
||||||
.p-menuitem-text,
|
.p-menuitem-text,
|
||||||
.p-menuitem-icon {
|
.p-menuitem-icon,
|
||||||
|
.p-menuitem-text,
|
||||||
|
.p-panelmenu-icon {
|
||||||
color: $primaryHeaderColor !important;
|
color: $primaryHeaderColor !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.p-panelmenu-content {
|
||||||
|
margin: 5px 0px 5px 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-menu-overlay {
|
.p-menu-overlay {
|
||||||
|
Loading…
Reference in New Issue
Block a user