mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-06-23 08:55:32 +00:00
Action available from context menu
This commit is contained in:
@ -0,0 +1,4 @@
|
||||
<button mat-menu-item (click)="lock()">
|
||||
<mat-icon>lock</mat-icon>
|
||||
<span>Lock</span>
|
||||
</button>
|
@ -0,0 +1,48 @@
|
||||
import { Component, OnInit, Input } from '@angular/core';
|
||||
import { Server } from '../../../../../models/server';
|
||||
import { Node } from '../../../../../cartography/models/node';
|
||||
import { NodesDataSource } from '../../../../../cartography/datasources/nodes-datasource';
|
||||
import { NodeService } from '../../../../../services/node.service';
|
||||
import { Drawing } from '../../../../../cartography/models/drawing';
|
||||
import { DrawingsDataSource } from '../../../../../cartography/datasources/drawings-datasource';
|
||||
import { DrawingService } from '../../../../../services/drawing.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-lock-action',
|
||||
templateUrl: './lock-action.component.html'
|
||||
})
|
||||
export class LockActionComponent implements OnInit {
|
||||
@Input() server: Server;
|
||||
@Input() nodes: Node[];
|
||||
@Input() drawings: Drawing[];
|
||||
command: string;
|
||||
|
||||
constructor(
|
||||
private nodesDataSource: NodesDataSource,
|
||||
private drawingsDataSource: DrawingsDataSource,
|
||||
private nodeService: NodeService,
|
||||
private drawingService: DrawingService
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
if (this.nodes.length === 1 && this.drawings.length === 0) {
|
||||
this.command = this.nodes[0].locked ? 'Unlock item' : 'Lock item';
|
||||
} else if (this.nodes.length === 0 && this.drawings.length === 1) {
|
||||
this.command = this.drawings[0].locked ? 'Unlock item' : 'Lock item';
|
||||
} else {
|
||||
this.command = 'Lock/unlock items';
|
||||
}
|
||||
}
|
||||
|
||||
lock() {
|
||||
this.nodes.forEach((node) => {
|
||||
node.locked = !node.locked;
|
||||
this.nodeService.updateNode(this.server, node).subscribe((node) => { this.nodesDataSource.update(node) });
|
||||
});
|
||||
|
||||
this.drawings.forEach((drawing) => {
|
||||
drawing.locked = ! drawing.locked;
|
||||
this.drawingService.update(this.server, drawing).subscribe((drawing) => { this.drawingsDataSource.update(drawing) });
|
||||
});
|
||||
}
|
||||
}
|
@ -121,6 +121,12 @@
|
||||
[server]="server"
|
||||
[link]="links[0]"
|
||||
></app-suspend-link-action>
|
||||
<app-lock-action
|
||||
*ngIf="!projectService.isReadOnly(project) && (drawings.length>0 || nodes.length>0)"
|
||||
[server]="server"
|
||||
[nodes]="nodes"
|
||||
[drawings]="drawings"
|
||||
></app-lock-action>
|
||||
<app-delete-action
|
||||
*ngIf="!projectService.isReadOnly(project) && (drawings.length>0 || nodes.length>0 || links.length>0) && linkNodes.length === 0"
|
||||
[server]="server"
|
||||
|
Reference in New Issue
Block a user