blob: 7483e3705412fcb3d4c71fe37afc7425cdfffa30 [file] [log] [blame]
<!--
******************************************************************************
* Copyright © 2018 PTA GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
******************************************************************************
-->
<app-loading-spinner *ngIf="showSpinnerGrid"></app-loading-spinner>
<div #gridMeasureDetailTabContainer>
<form #gridMeasureDetailForm="ngForm" *ngIf="!showSpinnerGrid" (change)="onGridMeasureDetailFormValidation(gridMeasureDetailForm.form.valid)">
<fieldset class="form-group" disabled="{{ readOnlyForm ? 'disabled' : ''}}">
<!-- 1. row -->
<div class="row">
<div class="col-md-4">
<label class="form-field-label" for="plannedStarttimeFirstSinglemeasure">Beginn der ersten geplanten Einzelmaßnahme</label>
<div class="input-group">
<label class="input-group-addon dateRangePickerIcon" for="plannedStarttimeFirstSinglemeasure" style="cursor: no-drop;">
<span class="glyphicon glyphicon-calendar"></span>
</label>
<input disabled="disabled" #input *ngIf="gridMeasureDetail.plannedStarttimeFirstSinglemeasure" maxlength="256" [required]="true"
type="text" name="plannedStarttimeFirstSinglemeasure" id="plannedStarttimeFirstSinglemeasure" class="form-control"
[ngModel]="gridMeasureDetail.plannedStarttimeFirstSinglemeasure|date:dateFormatLocale" />
<input disabled="disabled" #input *ngIf="!gridMeasureDetail.plannedStarttimeFirstSinglemeasure" maxlength="256" [required]="true"
type="text" [ngModel]="gridMeasureDetail.plannedStarttimeFirstSinglemeasure" name="plannedStarttimeFirstSinglemeasure"
id="plannedStarttimeFirstSinglemeasure" class="form-control" />
</div>
</div>
<div class="col-md-4">
<label class="form-field-label" for="endtimeGridmeasure">Ende der Netzmaßnahme</label>
<div class="input-group">
<label class="input-group-addon dateRangePickerIcon" for="endtimeGridmeasure" style="cursor: no-drop;">
<span class="glyphicon glyphicon-calendar"></span>
</label>
<input disabled="disabled" #input *ngIf="gridMeasureDetail.endtimeGridmeasure" maxlength="256" [required]="false" type="text"
[ngModel]="gridMeasureDetail.endtimeGridmeasure|date:dateFormatLocale" name="endtimeGridmeasure" id="endtimeGridmeasure"
class="form-control" />
<input disabled="disabled" #input *ngIf="!gridMeasureDetail.endtimeGridmeasure" maxlength="256" [required]="false" type="text"
[ngModel]="gridMeasureDetail.endtimeGridmeasure" name="endtimeGridmeasure" id="endtimeGridmeasure" class="form-control"
/>
</div>
</div>
<div class="col-md-4">
<label class="form-field-label" for="affectedResourceControl">Betroffenes Objekt / Betriebsmittel</label>
<input maxlength="256" [required]="true" type="text" name="affectedResource" id="affectedResourceControl" list="affectedResourcesList"
[(ngModel)]="gridMeasureDetail.affectedResource" autocomplete="off" class="form-control" />
<datalist id="affectedResourcesList">
<option *ngFor="let affectedResources of affectedResourcesList" [ngValue]="affectedResources">{{affectedResources}}</option>
</datalist>
</div>
</div>
<!-- 2. row -->
<div class="row">
<div class="col-md-4">
<label class="form-field-label" for="appointmentNumberOf">Häufigkeit</label>
<input maxlength="256" [required]="true" type="number" min="0" oninput="validity.valid||(value='');" name="appointmentNumberOf"
id="appointmentNumberOf" [(ngModel)]="gridMeasureDetail.appointmentNumberOf" (ngModelChange)="checkAppointmentNumberOfValue($event)"
class="form-control" />
</div>
<div class="col-md-4">
<label class="form-field-label" for="appointmentRepetition">Wiederholung</label>
<select [required]="true" type="text" name="appointmentRepetition" id="appointmentRepetition" [(ngModel)]="gridMeasureDetail.appointmentRepetition"
(change)="gridMeasureDetail.appointmentRepetition = $event.target.value" class="form-control">
<option *ngFor="let appointmentRepetitionString of appointmentRepetitionList" value="{{appointmentRepetitionString}}" [selected]="appointmentRepetitionString === gridMeasureDetail.appointmentRepetition">{{appointmentRepetitionString}}</option>
</select>
</div>
<div class="col-md-4">
<label class="form-field-label" for="timeOfReallocation">Wiederbereitstellungszeit</label>
<input maxlength="256" [required]="true" type="text" name="timeOfReallocation" id="timeOfReallocation" [(ngModel)]="gridMeasureDetail.timeOfReallocation"
class="form-control" />
</div>
</div>
<!-- 3. row -->
<div class="row">
<div class="col-md-4">
<label style="height: 2em;"></label>
<p *ngIf="!isAppointmentNumberOfValid" style="font-weight: bold;color:red">
<small>Der eingetragene Wert überschreitet das zulässige Limit</small>
</p>
</div>
</div>
<!-- 4. row -->
<div class="row">
<div class="col-lg-12">
<label class="form-field-label" for="description">
Beschreibung der Maßnahme
</label>
<textarea style="resize:none;" maxlength="1024" [required]="true" rows="3" name="description" id="description" [(ngModel)]="gridMeasureDetail.description"
class="form-control"></textarea>
</div>
</div>
<!-- 5. row -->
<div class="row">
<div class="col-lg-12">
<label class="form-field-label" for="remark">Bemerkungen</label>
<textarea style="resize:none" maxlength="1024" rows="3" [required]="false" name="remark" id="remark" [(ngModel)]="gridMeasureDetail.remark"
class="form-control" #gmRemark></textarea>
</div>
</div>
</fieldset>
<fieldset class="form-group" disabled="{{ readOnlyForm ? 'disabled' : ''}}">
<div class="row">
<div class="col-md-4">
<div class="upload-buttons">
<label for="file" class="btn btn-primary" id="fileUploadLabel">
<input type="file" onclick="this.value = null" id="file" (change)="handleFileInput($event.target.files)">
<i class="fa fa-folder"></i>Datei auswählen
</label>
<button type="button" [disabled]="!id || !fileSelected" (click)="uploadDocument()" class="btn btn-primary">
<i class="fa fa-cloud-upload"></i>Datei hochladen
</button>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<label class="upload-label">Anhang</label>
<input class="form-control" type="text" name="fileName" id="fileName" [ngModel]="fileName" readonly>
</div>
<div class="col-md-4">
<label class="form-field-label" for="modUser">Letzter Bearbeiter</label>
<input maxlength="256" type="text" name="modUser" id="modUser" [ngModel]="sessionContext.getUserMap().findAndRenderUser(gridMeasureDetail.modUser|| sessionContext.getCurrUser().username) "
class="form-control" />
</div>
<div class="col-md-4">
<label class="form-field-label" for="modUserDepartment">Abteilung letzter Bearbeiter</label>
<select [required]="true" type="text" name="modUserDepartment" id="modUserDepartment" [(ngModel)]="gridMeasureDetail.modUserDepartment"
class="form-control">
<option value=""></option>
<option *ngFor="let department of departmentList" value="{{ department.id }}">{{ department.name }}</option>
</select>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="dropzone droptext" [ngClass]="{'dropzone-active':this.dragEntered}" (drop)="drop($event)" (dragover)="allowDrop($event)"
(dragleave)="dragleave($event)" (dragenter)="dragenter($event)">
Datei ziehen und hier ablegen
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div *ngIf="listOfDocuments && listOfDocuments.length > 0" class="documents">
<label>Anhang</label>
<table class="table table-striped">
<tr *ngFor="let document of listOfDocuments;let i = index">
<td class="document-name" (click)="downloadDocument(document.id)">{{document.documentName}}</td>
<td class="document-buttons">
<span *ngIf="this.gridMeasureDetail.statusId < Globals.STATUS.APPLIED && !readOnlyForm" (click)="deleteDocument(document.id, i)"
class="glyphicon glyphicon-remove remove"></span>
<span (click)="downloadDocument(document.id)" class="glyphicon glyphicon-download-alt download"></span>
</td>
</tr>
</table>
</div>
</div>
</div>
<app-loading-spinner *ngIf="showSpinnerFileUpload"></app-loading-spinner>
</fieldset>
</form>
</div>