mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-05-11 04:52:59 +00:00
Menu code moved to separate component
This commit is contained in:
parent
6defbdb9df
commit
4b60041f8f
@ -187,6 +187,7 @@ import { NodeCreatedLabelStylesFixer } from './components/project-map/helpers/no
|
|||||||
import { NonNegativeValidator } from './validators/non-negative-validator';
|
import { NonNegativeValidator } from './validators/non-negative-validator';
|
||||||
import { RotationValidator } from './validators/rotation-validator';
|
import { RotationValidator } from './validators/rotation-validator';
|
||||||
import { MapSettingService } from './services/mapsettings.service';
|
import { MapSettingService } from './services/mapsettings.service';
|
||||||
|
import { ProjectMapMenuComponent } from './components/project-map/project-map-menu/project-map-menu.component';
|
||||||
|
|
||||||
if (environment.production) {
|
if (environment.production) {
|
||||||
Raven.config('https://b2b1cfd9b043491eb6b566fd8acee358@sentry.io/842726', {
|
Raven.config('https://b2b1cfd9b043491eb6b566fd8acee358@sentry.io/842726', {
|
||||||
@ -305,7 +306,8 @@ if (environment.production) {
|
|||||||
AdbutlerComponent,
|
AdbutlerComponent,
|
||||||
ConsoleDeviceActionComponent,
|
ConsoleDeviceActionComponent,
|
||||||
ConsoleComponent,
|
ConsoleComponent,
|
||||||
NodesMenuComponent
|
NodesMenuComponent,
|
||||||
|
ProjectMapMenuComponent
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
|
@ -0,0 +1,65 @@
|
|||||||
|
<button
|
||||||
|
matTooltip="Add a note"
|
||||||
|
mat-icon-button
|
||||||
|
class="menu-button"
|
||||||
|
[color]="drawTools.isTextChosen ? 'primary' : 'basic'"
|
||||||
|
(click)="addDrawing('text')">
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
accept=".svg, .bmp, .jpeg, .jpg, .gif, .png"
|
||||||
|
class="non-visible"
|
||||||
|
#file
|
||||||
|
(change)="uploadImageFile($event)"/>
|
||||||
|
<button
|
||||||
|
matTooltip="Insert a picture"
|
||||||
|
mat-icon-button
|
||||||
|
class="menu-button"
|
||||||
|
(click)="file.click()">
|
||||||
|
<mat-icon>image</mat-icon>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
matTooltip="Draw a rectangle"
|
||||||
|
mat-icon-button
|
||||||
|
class="menu-button"
|
||||||
|
[color]="drawTools.isRectangleChosen ? 'primary' : 'basic'"
|
||||||
|
(click)="addDrawing('rectangle')">
|
||||||
|
<mat-icon>crop_3_2</mat-icon>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
matTooltip="Draw an ellipse"
|
||||||
|
mat-icon-button
|
||||||
|
class="menu-button"
|
||||||
|
[color]="drawTools.isEllipseChosen ? 'primary' : 'basic'"
|
||||||
|
(click)="addDrawing('ellipse')">
|
||||||
|
<mat-icon>panorama_fish_eye</mat-icon>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
matTooltip="Draw a line"
|
||||||
|
mat-icon-button class="menu-button"
|
||||||
|
(click)="addDrawing('line')">
|
||||||
|
<svg height="40" width="40">
|
||||||
|
<line
|
||||||
|
[ngClass]="{ selected: drawTools.isLineChosen }"
|
||||||
|
x1="30"
|
||||||
|
y1="10"
|
||||||
|
x2="10"
|
||||||
|
y2="30"
|
||||||
|
style="stroke:white;stroke-width:2"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
matTooltip="Lock or unlock all items"
|
||||||
|
mat-icon-button
|
||||||
|
class="menu-button"
|
||||||
|
[color]="isLocked ? 'primary' : 'basic'"
|
||||||
|
(click)="changeLockValue()">
|
||||||
|
<mat-icon>lock</mat-icon>
|
||||||
|
</button>
|
||||||
|
<app-drawing-added
|
||||||
|
[server]="server"
|
||||||
|
[project]="project"
|
||||||
|
[selectedDrawing]="selectedDrawing"
|
||||||
|
(drawingSaved)="onDrawingSaved()">
|
||||||
|
</app-drawing-added>
|
@ -0,0 +1,24 @@
|
|||||||
|
.menu-button {
|
||||||
|
outline: 0 !important;
|
||||||
|
transition: 0.5s;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
width: 40px;
|
||||||
|
margin-right: 12px !important;
|
||||||
|
margin-left: 12px !important;
|
||||||
|
background: #263238;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
mat-divider.divider {
|
||||||
|
height: 40px;
|
||||||
|
margin-left: 1px;
|
||||||
|
margin-right: 7px;
|
||||||
|
width: 10px;
|
||||||
|
color: gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
.non-visible {
|
||||||
|
display: none;
|
||||||
|
}
|
@ -0,0 +1,110 @@
|
|||||||
|
import { Component, OnInit, OnDestroy, Input } from '@angular/core';
|
||||||
|
import { Project } from '../../../models/project';
|
||||||
|
import { Server } from '../../../models/server';
|
||||||
|
import { ToolsService } from '../../../services/tools.service';
|
||||||
|
import { MapSettingService } from '../../../services/mapsettings.service';
|
||||||
|
import { DrawingService } from '../../../services/drawing.service';
|
||||||
|
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-project-map-menu',
|
||||||
|
templateUrl: './project-map-menu.component.html',
|
||||||
|
styleUrls: ['./project-map-menu.component.scss']
|
||||||
|
})
|
||||||
|
export class ProjectMapMenuComponent implements OnInit, OnDestroy {
|
||||||
|
@Input() project: Project;
|
||||||
|
@Input() server: Server;
|
||||||
|
|
||||||
|
public selectedDrawing: string;
|
||||||
|
protected drawTools = {
|
||||||
|
isRectangleChosen: false,
|
||||||
|
isEllipseChosen: false,
|
||||||
|
isLineChosen: false,
|
||||||
|
isTextChosen: false
|
||||||
|
};
|
||||||
|
protected isLocked: boolean = false;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private toolsService: ToolsService,
|
||||||
|
private mapSettingsService: MapSettingService,
|
||||||
|
private drawingService: DrawingService
|
||||||
|
) {}
|
||||||
|
|
||||||
|
ngOnInit() {}
|
||||||
|
|
||||||
|
public addDrawing(selectedObject: string) {
|
||||||
|
switch (selectedObject) {
|
||||||
|
case 'rectangle':
|
||||||
|
this.drawTools.isTextChosen = false;
|
||||||
|
this.drawTools.isEllipseChosen = false;
|
||||||
|
this.drawTools.isRectangleChosen = !this.drawTools.isRectangleChosen;
|
||||||
|
this.drawTools.isLineChosen = false;
|
||||||
|
break;
|
||||||
|
case 'ellipse':
|
||||||
|
this.drawTools.isTextChosen = false;
|
||||||
|
this.drawTools.isEllipseChosen = !this.drawTools.isEllipseChosen;
|
||||||
|
this.drawTools.isRectangleChosen = false;
|
||||||
|
this.drawTools.isLineChosen = false;
|
||||||
|
break;
|
||||||
|
case 'line':
|
||||||
|
this.drawTools.isTextChosen = false;
|
||||||
|
this.drawTools.isEllipseChosen = false;
|
||||||
|
this.drawTools.isRectangleChosen = false;
|
||||||
|
this.drawTools.isLineChosen = !this.drawTools.isLineChosen;
|
||||||
|
break;
|
||||||
|
case 'text':
|
||||||
|
this.drawTools.isTextChosen = !this.drawTools.isTextChosen;
|
||||||
|
this.drawTools.isEllipseChosen = false;
|
||||||
|
this.drawTools.isRectangleChosen = false;
|
||||||
|
this.drawTools.isLineChosen = false;
|
||||||
|
this.toolsService.textAddingToolActivation(this.drawTools.isTextChosen);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.selectedDrawing = this.selectedDrawing === selectedObject ? '' : selectedObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
public onDrawingSaved() {
|
||||||
|
this.resetDrawToolChoice();
|
||||||
|
}
|
||||||
|
|
||||||
|
public resetDrawToolChoice() {
|
||||||
|
this.drawTools.isRectangleChosen = false;
|
||||||
|
this.drawTools.isEllipseChosen = false;
|
||||||
|
this.drawTools.isLineChosen = false;
|
||||||
|
this.drawTools.isTextChosen = false;
|
||||||
|
this.selectedDrawing = '';
|
||||||
|
this.toolsService.textAddingToolActivation(this.drawTools.isTextChosen);
|
||||||
|
}
|
||||||
|
|
||||||
|
public changeLockValue() {
|
||||||
|
this.isLocked = !this.isLocked;
|
||||||
|
this.mapSettingsService.changeMapLockValue(this.isLocked);
|
||||||
|
}
|
||||||
|
|
||||||
|
public uploadImageFile(event) {
|
||||||
|
this.readImageFile(event.target);
|
||||||
|
}
|
||||||
|
|
||||||
|
private readImageFile(fileInput) {
|
||||||
|
let file: File = fileInput.files[0];
|
||||||
|
let fileReader: FileReader = new FileReader();
|
||||||
|
let imageToUpload = new Image();
|
||||||
|
|
||||||
|
fileReader.onloadend = () => {
|
||||||
|
let image = fileReader.result;
|
||||||
|
let svg = this.createSvgFileForImage(image, imageToUpload);
|
||||||
|
this.drawingService.add(this.server, this.project.project_id, -(imageToUpload.width/2), -(imageToUpload.height/2), svg).subscribe(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
imageToUpload.onload = () => { fileReader.readAsDataURL(file) };
|
||||||
|
imageToUpload.src = window.URL.createObjectURL(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
private createSvgFileForImage(image: string|ArrayBuffer, imageToUpload: HTMLImageElement) {
|
||||||
|
return `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" height=\"${imageToUpload.height}\"
|
||||||
|
width=\"${imageToUpload.width}\">\n<image height=\"${imageToUpload.height}\" width=\"${imageToUpload.width}\" xlink:href=\"${image}\"/>\n</svg>`
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy() {}
|
||||||
|
}
|
@ -87,96 +87,23 @@
|
|||||||
</mat-toolbar>
|
</mat-toolbar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="show-menu-wrapper" [ngClass]="{ shadowed: !drawTools.visibility }" *ngIf="!readonly">
|
<div id="show-menu-wrapper" [ngClass]="{ shadowed: !isProjectMapMenuVisible }" *ngIf="!readonly">
|
||||||
<button class="arrow-button" mat-icon-button (click)="showMenu()"><mat-icon>keyboard_arrow_right</mat-icon></button>
|
<button class="arrow-button" mat-icon-button (click)="showMenu()"><mat-icon>keyboard_arrow_right</mat-icon></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="menu-wrapper" [ngClass]="{ extended: drawTools.visibility }">
|
<div id="menu-wrapper" [ngClass]="{ extended: isProjectMapMenuVisible }">
|
||||||
<app-nodes-menu [server]="server" [project]="project"></app-nodes-menu>
|
<app-nodes-menu [server]="server" [project]="project"></app-nodes-menu>
|
||||||
<mat-divider class="divider" [vertical]="true"></mat-divider>
|
<mat-divider class="divider" [vertical]="true"></mat-divider>
|
||||||
<button
|
<app-project-map-menu [server]="server" [project]="project"></app-project-map-menu>
|
||||||
matTooltip="Add a note"
|
|
||||||
mat-icon-button
|
|
||||||
class="menu-button"
|
|
||||||
[color]="drawTools.isTextChosen ? 'primary' : 'basic'"
|
|
||||||
(click)="addDrawing('text')"
|
|
||||||
>
|
|
||||||
<mat-icon>create</mat-icon>
|
|
||||||
</button>
|
|
||||||
<input
|
|
||||||
type="file"
|
|
||||||
accept=".svg, .bmp, .jpeg, .jpg, .gif, .png"
|
|
||||||
class="non-visible"
|
|
||||||
#file
|
|
||||||
(change)="uploadImageFile($event)"
|
|
||||||
/>
|
|
||||||
<button
|
|
||||||
matTooltip="Insert a picture"
|
|
||||||
mat-icon-button
|
|
||||||
class="menu-button"
|
|
||||||
(click)="file.click()"
|
|
||||||
>
|
|
||||||
<mat-icon>image</mat-icon>
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
matTooltip="Draw a rectangle"
|
|
||||||
mat-icon-button
|
|
||||||
class="menu-button"
|
|
||||||
[color]="drawTools.isRectangleChosen ? 'primary' : 'basic'"
|
|
||||||
(click)="addDrawing('rectangle')"
|
|
||||||
>
|
|
||||||
<mat-icon>crop_3_2</mat-icon>
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
matTooltip="Draw an ellipse"
|
|
||||||
mat-icon-button
|
|
||||||
class="menu-button"
|
|
||||||
[color]="drawTools.isEllipseChosen ? 'primary' : 'basic'"
|
|
||||||
(click)="addDrawing('ellipse')"
|
|
||||||
>
|
|
||||||
<mat-icon>panorama_fish_eye</mat-icon>
|
|
||||||
</button>
|
|
||||||
<button matTooltip="Draw a line" mat-icon-button class="menu-button" (click)="addDrawing('line')">
|
|
||||||
<svg height="40" width="40">
|
|
||||||
<line
|
|
||||||
[ngClass]="{ selected: drawTools.isLineChosen }"
|
|
||||||
x1="30"
|
|
||||||
y1="10"
|
|
||||||
x2="10"
|
|
||||||
y2="30"
|
|
||||||
style="stroke:white;stroke-width:2"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
<mat-divider class="divider" [vertical]="true"></mat-divider>
|
|
||||||
<button
|
|
||||||
matTooltip="Lock or unlock all items"
|
|
||||||
mat-icon-button
|
|
||||||
class="menu-button"
|
|
||||||
[color]="isLocked ? 'primary' : 'basic'"
|
|
||||||
(click)="changeLockValue()"
|
|
||||||
>
|
|
||||||
<mat-icon>lock</mat-icon>
|
|
||||||
</button>
|
|
||||||
<button class="arrow-button" mat-icon-button (click)="hideMenu()"><mat-icon>keyboard_arrow_left</mat-icon></button>
|
<button class="arrow-button" mat-icon-button (click)="hideMenu()"><mat-icon>keyboard_arrow_left</mat-icon></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<app-context-menu [project]="project" [server]="server"></app-context-menu>
|
<app-context-menu [project]="project" [server]="server"></app-context-menu>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<app-progress></app-progress>
|
<app-progress></app-progress>
|
||||||
|
<app-project-map-shortcuts *ngIf="project" [project]="project" [server]="server"></app-project-map-shortcuts>
|
||||||
<app-project-map-shortcuts *ngIf="project" [project]="project" [server]="server"> </app-project-map-shortcuts>
|
|
||||||
|
|
||||||
<app-draw-link-tool [links]="links" *ngIf="tools.draw_link"></app-draw-link-tool>
|
<app-draw-link-tool [links]="links" *ngIf="tools.draw_link"></app-draw-link-tool>
|
||||||
|
|
||||||
<app-drawing-added
|
|
||||||
[server]="server"
|
|
||||||
[project]="project"
|
|
||||||
[selectedDrawing]="selectedDrawing"
|
|
||||||
(drawingSaved)="onDrawingSaved()"
|
|
||||||
>
|
|
||||||
</app-drawing-added>
|
|
||||||
<app-drawing-dragged [server]="server"></app-drawing-dragged>
|
<app-drawing-dragged [server]="server"></app-drawing-dragged>
|
||||||
<app-drawing-resized [server]="server"></app-drawing-resized>
|
<app-drawing-resized [server]="server"></app-drawing-resized>
|
||||||
<app-interface-label-dragged [server]="server"></app-interface-label-dragged>
|
<app-interface-label-dragged [server]="server"></app-interface-label-dragged>
|
||||||
|
@ -44,7 +44,7 @@ import { MapLink } from '../../cartography/models/map/map-link';
|
|||||||
import { MapLinkToLinkConverter } from '../../cartography/converters/map/map-link-to-link-converter';
|
import { MapLinkToLinkConverter } from '../../cartography/converters/map/map-link-to-link-converter';
|
||||||
import { LinkWidget } from '../../cartography/widgets/link';
|
import { LinkWidget } from '../../cartography/widgets/link';
|
||||||
import { NodeCreatedLabelStylesFixer } from './helpers/node-created-label-styles-fixer';
|
import { NodeCreatedLabelStylesFixer } from './helpers/node-created-label-styles-fixer';
|
||||||
import { MapSettingService } from '../../services/mapsettings.service';
|
import { ProjectMapMenuComponent } from './project-map-menu/project-map-menu.component';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
@ -60,8 +60,8 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
|||||||
public symbols: Symbol[] = [];
|
public symbols: Symbol[] = [];
|
||||||
public project: Project;
|
public project: Project;
|
||||||
public server: Server;
|
public server: Server;
|
||||||
public selectedDrawing: string;
|
|
||||||
private ws: Subject<any>;
|
private ws: Subject<any>;
|
||||||
|
public isProjectMapMenuVisible: boolean = false;
|
||||||
|
|
||||||
tools = {
|
tools = {
|
||||||
selection: true,
|
selection: true,
|
||||||
@ -71,20 +71,11 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
|||||||
};
|
};
|
||||||
|
|
||||||
protected settings: Settings;
|
protected settings: Settings;
|
||||||
|
|
||||||
protected drawTools = {
|
|
||||||
isRectangleChosen: false,
|
|
||||||
isEllipseChosen: false,
|
|
||||||
isLineChosen: false,
|
|
||||||
isTextChosen: false,
|
|
||||||
visibility: false
|
|
||||||
};
|
|
||||||
protected isLocked: boolean = false;
|
|
||||||
|
|
||||||
private inReadOnlyMode = false;
|
private inReadOnlyMode = false;
|
||||||
|
|
||||||
@ViewChild(ContextMenuComponent) contextMenu: ContextMenuComponent;
|
@ViewChild(ContextMenuComponent) contextMenu: ContextMenuComponent;
|
||||||
@ViewChild(D3MapComponent) mapChild: D3MapComponent;
|
@ViewChild(D3MapComponent) mapChild: D3MapComponent;
|
||||||
|
@ViewChild(ProjectMapMenuComponent) projectMapMenuComponent: ProjectMapMenuComponent;
|
||||||
|
|
||||||
private subscriptions: Subscription[] = [];
|
private subscriptions: Subscription[] = [];
|
||||||
|
|
||||||
@ -112,8 +103,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
|||||||
private selectionManager: SelectionManager,
|
private selectionManager: SelectionManager,
|
||||||
private selectionTool: SelectionTool,
|
private selectionTool: SelectionTool,
|
||||||
private recentlyOpenedProjectService: RecentlyOpenedProjectService,
|
private recentlyOpenedProjectService: RecentlyOpenedProjectService,
|
||||||
private nodeCreatedLabelStylesFixer: NodeCreatedLabelStylesFixer,
|
private nodeCreatedLabelStylesFixer: NodeCreatedLabelStylesFixer
|
||||||
private mapSettingsService: MapSettingService
|
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
@ -291,7 +281,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public onDrawingSaved() {
|
public onDrawingSaved() {
|
||||||
this.resetDrawToolChoice();
|
this.projectMapMenuComponent.resetDrawToolChoice();
|
||||||
}
|
}
|
||||||
|
|
||||||
public set readonly(value) {
|
public set readonly(value) {
|
||||||
@ -327,80 +317,13 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
|||||||
this.project.show_interface_labels = enabled;
|
this.project.show_interface_labels = enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public addDrawing(selectedObject: string) {
|
|
||||||
switch (selectedObject) {
|
|
||||||
case 'rectangle':
|
|
||||||
this.drawTools.isTextChosen = false;
|
|
||||||
this.drawTools.isEllipseChosen = false;
|
|
||||||
this.drawTools.isRectangleChosen = !this.drawTools.isRectangleChosen;
|
|
||||||
this.drawTools.isLineChosen = false;
|
|
||||||
break;
|
|
||||||
case 'ellipse':
|
|
||||||
this.drawTools.isTextChosen = false;
|
|
||||||
this.drawTools.isEllipseChosen = !this.drawTools.isEllipseChosen;
|
|
||||||
this.drawTools.isRectangleChosen = false;
|
|
||||||
this.drawTools.isLineChosen = false;
|
|
||||||
break;
|
|
||||||
case 'line':
|
|
||||||
this.drawTools.isTextChosen = false;
|
|
||||||
this.drawTools.isEllipseChosen = false;
|
|
||||||
this.drawTools.isRectangleChosen = false;
|
|
||||||
this.drawTools.isLineChosen = !this.drawTools.isLineChosen;
|
|
||||||
break;
|
|
||||||
case 'text':
|
|
||||||
this.drawTools.isTextChosen = !this.drawTools.isTextChosen;
|
|
||||||
this.drawTools.isEllipseChosen = false;
|
|
||||||
this.drawTools.isRectangleChosen = false;
|
|
||||||
this.drawTools.isLineChosen = false;
|
|
||||||
this.toolsService.textAddingToolActivation(this.drawTools.isTextChosen);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.selectedDrawing = this.selectedDrawing === selectedObject ? '' : selectedObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public resetDrawToolChoice() {
|
|
||||||
this.drawTools.isRectangleChosen = false;
|
|
||||||
this.drawTools.isEllipseChosen = false;
|
|
||||||
this.drawTools.isLineChosen = false;
|
|
||||||
this.drawTools.isTextChosen = false;
|
|
||||||
this.selectedDrawing = '';
|
|
||||||
this.toolsService.textAddingToolActivation(this.drawTools.isTextChosen);
|
|
||||||
}
|
|
||||||
|
|
||||||
public hideMenu() {
|
public hideMenu() {
|
||||||
this.resetDrawToolChoice();
|
this.projectMapMenuComponent.resetDrawToolChoice()
|
||||||
this.drawTools.visibility = false;
|
this.isProjectMapMenuVisible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public showMenu() {
|
public showMenu() {
|
||||||
this.drawTools.visibility = true;
|
this.isProjectMapMenuVisible = true;
|
||||||
}
|
|
||||||
|
|
||||||
public uploadImageFile(event) {
|
|
||||||
this.readImageFile(event.target);
|
|
||||||
}
|
|
||||||
|
|
||||||
private readImageFile(fileInput) {
|
|
||||||
let file: File = fileInput.files[0];
|
|
||||||
let fileReader: FileReader = new FileReader();
|
|
||||||
let imageToUpload = new Image();
|
|
||||||
|
|
||||||
fileReader.onloadend = () => {
|
|
||||||
let image = fileReader.result;
|
|
||||||
let svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"
|
|
||||||
height=\"${imageToUpload.height}\" width=\"${imageToUpload.width}\">\n<image height=\"${imageToUpload.height}\" width=\"${imageToUpload.width}\"
|
|
||||||
xlink:href=\"${image}\"/>\n</svg>`;
|
|
||||||
this.drawingService.add(this.server, this.project.project_id, -(imageToUpload.width/2), -(imageToUpload.height/2), svg).subscribe(() => {});
|
|
||||||
}
|
|
||||||
|
|
||||||
imageToUpload.onload = () => { fileReader.readAsDataURL(file) };
|
|
||||||
imageToUpload.src = window.URL.createObjectURL(file);
|
|
||||||
}
|
|
||||||
|
|
||||||
public changeLockValue() {
|
|
||||||
this.isLocked = !this.isLocked;
|
|
||||||
this.mapSettingsService.changeMapLockValue(this.isLocked);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ngOnDestroy() {
|
public ngOnDestroy() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user