feat: Add editability feature to UpdateService and integrate with NavMenuComponent
- Added `isEditable` property to `UpdateService` for managing editability state. - Integrated `isEditable` with a `mat-slide-toggle` in `NavMenuComponent` to toggle edit mode. - Updated `UpdateService` to persist `isEditable` state in localStorage.
This commit is contained in:
parent
0b4a7b7ccd
commit
c1f603551f
@ -30,6 +30,7 @@
|
|||||||
<!-- Right menu -->
|
<!-- Right menu -->
|
||||||
<div class="navbar-collapse justify-content-end me-5">
|
<div class="navbar-collapse justify-content-end me-5">
|
||||||
<a class="navbar-brand" [routerLink]="['/']">User Manager Portal</a>
|
<a class="navbar-brand" [routerLink]="['/']">User Manager Portal</a>
|
||||||
|
<mat-slide-toggle [(ngModel)]="updateService.isEditable"></mat-slide-toggle>
|
||||||
<button *ngIf="isLogedIn()" class="btn">
|
<button *ngIf="isLogedIn()" class="btn">
|
||||||
<mat-icon class="scale-pulse" [matBadge]="updateActCount === 0 ? '' : updateActCount" (click)="updateService.executeAll()">save</mat-icon>
|
<mat-icon class="scale-pulse" [matBadge]="updateActCount === 0 ? '' : updateActCount" (click)="updateService.executeAll()">save</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@ -10,10 +10,14 @@ import { RefreshService } from '../../services/refresh.service';
|
|||||||
import { CreationService } from '../../services/creation.service';
|
import { CreationService } from '../../services/creation.service';
|
||||||
import { UpdateService, UpdateEvent } from '../../services/update.service';
|
import { UpdateService, UpdateEvent } from '../../services/update.service';
|
||||||
import { MatBadgeModule } from '@angular/material/badge';
|
import { MatBadgeModule } from '@angular/material/badge';
|
||||||
|
import {
|
||||||
|
MatSlideToggleModule,
|
||||||
|
} from '@angular/material/slide-toggle';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
standalone: true,
|
standalone: true,
|
||||||
imports: [RouterModule, CommonModule, ColorModeBttnComponent, MatIconModule, MatBadgeModule],
|
imports: [RouterModule, CommonModule, ColorModeBttnComponent, MatIconModule, MatBadgeModule, MatSlideToggleModule, FormsModule],
|
||||||
selector: 'app-nav-menu',
|
selector: 'app-nav-menu',
|
||||||
templateUrl: './nav-menu.component.html',
|
templateUrl: './nav-menu.component.html',
|
||||||
styleUrls: ['./nav-menu.component.css']
|
styleUrls: ['./nav-menu.component.css']
|
||||||
@ -26,6 +30,8 @@ export class NavMenuComponent {
|
|||||||
|
|
||||||
updateActCount: number;
|
updateActCount: number;
|
||||||
|
|
||||||
|
isChecked = true;
|
||||||
|
|
||||||
constructor(private dialog: MatDialog, private authService: AuthenticationService, public refreshService: RefreshService, public creationService: CreationService, public updateService: UpdateService) {
|
constructor(private dialog: MatDialog, private authService: AuthenticationService, public refreshService: RefreshService, public creationService: CreationService, public updateService: UpdateService) {
|
||||||
this.authService.isAuthenticated().then().catch()
|
this.authService.isAuthenticated().then().catch()
|
||||||
this.updateActCount = this.updateService.totalCount;
|
this.updateActCount = this.updateService.totalCount;
|
||||||
|
|||||||
@ -73,6 +73,18 @@ export class UpdateService {
|
|||||||
removeAllChangeListeners() {
|
removeAllChangeListeners() {
|
||||||
this.countChangeListeners = []
|
this.countChangeListeners = []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//cell edit
|
||||||
|
private _isEditable: boolean = (typeof window !== 'undefined') ? (localStorage.getItem('editable') === "T") : true;
|
||||||
|
public get isEditable(): boolean {
|
||||||
|
return this._isEditable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set isEditable(value: boolean) {
|
||||||
|
if (typeof window !== 'undefined')
|
||||||
|
localStorage.setItem('editable', value ? "T" : "F")
|
||||||
|
this._isEditable = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum UpdateEvent {
|
export enum UpdateEvent {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user