blob: 7590fda9ed2fee7a09bcc40326475a522584b87a [file] [log] [blame]
<!--
/********************************************************************************
* Copyright © 2018 Mettenmeier GmbH.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
********************************************************************************/
-->
<div class="container-fluid">
<form class="mt-3" [formGroup]="form" novalidate>
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom stick-headlines"
*ngIf="!isModal">
<h1 class="h2">Mitarbeiter verwalten</h1>
<div class="btn-toolbar mb-2 mb-md-0">
<button *ngIf="authService.userHasRoles(['BP_Sachbearbeiter','BP_Admin'])" class="btn btn-success mr-1" (click)="saveUser()"
id="userSave">Speichern</button>
<button class="btn btn-danger float-right" (click)="close()" id="userCancel">Abbrechen</button>
</div>
</div>
<ngb-accordion #acc="ngbAccordion" activeIds="userdata,functionData,regionData,organisationData,privateData,reachabilityData">
<!-- DATEN -->
<ngb-panel title="Personendaten" id="userdata">
<ng-template ngbPanelContent>
<div class="row">
<div [ngClass]="{'col-md-6': !isModal, 'col-md-12': isModal}">
<div class="form-group row">
<label for="firstname" class="col-sm-3 col-form-label">Vorname</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="firstname" placeholder="Vorname" formControlName="firstname"
required>
<ok-error [control]="form.controls['firstname']"></ok-error>
</div>
</div>
</div>
<div [ngClass]="{'col-md-6': !isModal, 'col-md-12': isModal}">
<div class="form-group row">
<label for="lastname" class="col-sm-3 col-form-label">Nachname</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="lastname" placeholder="Nachname" formControlName="lastname"
required>
<ok-error [control]="form.controls['lastname']"></ok-error>
</div>
</div>
</div>
</div>
<div class="row">
<div [ngClass]="{'col-md-6': !isModal, 'col-md-12': isModal}">
<div class="row" formGroupName="date">
<label class="form-check-label col-form-label col-md-3">
Gültigkeit
</label>
<div class="col-md-4">
<div class="form-group">
<div class="input-group">
<input class="form-control" placeholder="von" name="dp" ngbDatepicker #validFrom="ngbDatepicker"
formControlName="validFrom" required id="dateFromInput">
<div class="input-group-append">
<button class="btn btn-outline-secondary" (click)="validFrom.toggle()" type="button" id="dateFromPicker">
<i class="fa fa-calendar" aria-hidden="true"></i>
</button>
</div>
<div class="input-group-append">
<button class="btn btn-outline-secondary" (click)="setDefaultDate('validFrom')" type="button"
id="dateFromDefault" data-toggle="tooltip" data-placement="bottom" title="Auf Standardwert setzen">
<i class="fa fa-clock-o" aria-hidden="true"></i>
</button>
</div>
<ok-error [control]="form.controls['date'].controls['validFrom']" class="w-100"></ok-error>
</div>
<ok-error [control]="form.controls['date']"></ok-error>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<div class="input-group">
<input class="form-control" placeholder="bis" name="dp" ngbDatepicker #validTo="ngbDatepicker"
formControlName="validTo" required id="dateToInput">
<div class="input-group-append">
<button class="btn btn-outline-secondary" (click)="validTo.toggle()" type="button" id="dateToPicker">
<i class="fa fa-calendar" aria-hidden="true"></i>
</button>
</div>
<div class="input-group-append">
<button class="btn btn-outline-secondary" (click)="setDefaultDate('validTo')" type="button" id="dateToDefault"
data-toggle="tooltip" data-placement="bottom" title="Auf Standardwert setzen">
<i class="fa fa-clock-o" aria-hidden="true"></i>
</button>
</div>
<ok-error [control]="form.controls['date'].controls['validTo']" class="w-100"></ok-error>
</div>
</div>
</div>
</div>
<div class="form-group row">
<label for="hrNumber" class="col-sm-3 col-form-label">Personalnummer</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="hrNumber" placeholder="Personalnummer" formControlName="hrNumber">
</div>
</div>
<div class="form-group row">
<label for="userKey" class="col-sm-3 col-form-label">Benutzerkennung</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="userKey" placeholder="Benutzerkennung" formControlName="userKey">
</div>
</div>
</div>
<div [ngClass]="{'col-md-6': !isModal, 'col-md-12': isModal}">
<div class="form-group row">
<label for="notespriv" class="col-sm-3 col-form-label">Notizen (Hinweise, Informationen)</label>
<div class="col-sm-9">
<textarea rows="6" class="form-control textarea" id="notespriv" placeholder="notes" cols="50"
formControlName="notes"></textarea>
</div>
</div>
</div>
</div>
</ng-template>
</ngb-panel>
<!-- BERECHTIGUNGEN -->
<ngb-panel title="Funktionen" id="functionData" *ngIf="!isModal">
<ng-template ngbPanelContent>
<div class="row">
<div class="col-md-12">
<ok-picklist-reactive [sourceList]="sourceFunction" [targetList]="targetFunction" headlineSource="Funktionen"
headlineTarget="ausgewählte Funktionen" [sourceListColumnDefs]="sourceColumnDefsFunction"
[targetListColumnDefs]="targetColumnDefsFunction" (moveToTargetClicked)="moveToTargetFunction($event)"
(moveToSourceClicked)="moveToSourceFunction($event)" id="userPicklistFunction"></ok-picklist-reactive>
</div>
</div>
</ng-template>
</ngb-panel>
<ngb-panel title="Regionen" id="regionData" *ngIf="!isModal">
<ng-template ngbPanelContent>
<div class="row">
<div class="col-md-12">
<ok-picklist-reactive [sourceList]="sourceRegion" [targetList]="targetRegion" headlineSource="Regionen"
headlineTarget="ausgewählte Regionen" [sourceListColumnDefs]="sourceColumnDefsRegion"
[targetListColumnDefs]="targetColumnDefsRegion" (moveToTargetClicked)="moveToTargetRegion($event)"
(moveToSourceClicked)="moveToSourceRegion($event)" id="userPicklistRegion"></ok-picklist-reactive>
</div>
</div>
</ng-template>
</ngb-panel>
<!-- Organisationsdaten -->
<ngb-panel title="Organisationsdaten" id="organisationData" *ngIf="!isModal">
<ng-template ngbPanelContent>
<div formGroupName="organisation">
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="company" class="col-sm-3 col-form-label">Organisation</label>
<div class="col-sm-9">
<select class="form-control" id="company" formControlName="id" required>
<option value=""></option>
<option *ngFor="let organisation of organisationList" [value]="organisation.id">{{organisation.orgaName}}</option>
</select>
<ok-error [control]="form.controls.organisation.controls['id']"></ok-error>
</div>
</div>
</div>
</div>
<div formGroupName="address">
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="postcode" class="col-sm-3 col-form-label">PLZ dienstl.</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="postcode" formControlName="postcode" required>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label for="community" class="col-sm-3 col-form-label">Ort dienstl.</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="community" formControlName="community" required>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="communitySuffix" class="col-sm-3 col-form-label">Adresszusatz dienstl.</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="communitySuffix" formControlName="communitySuffix"
required>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label for="street" class="col-sm-3 col-form-label">Straße dienstl.</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="street" formControlName="street" required>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="housenumber" class="col-sm-3 col-form-label">Hausnummer</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="housenumber" formControlName="housenumber" required>
</div>
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="wgs84zone" class="col-sm-3 col-form-label">WGS84 Zone dienstl.</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="wgs84zone" formControlName="wgs84zone" required>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="latitude" class="col-sm-3 col-form-label">WGS84 Koordinate 1 dienstl. (geolänge)</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="latitude" formControlName="latitude" required>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label for="longitude" class="col-sm-3 col-form-label">WGS84 Koordinate 2 dienstl. (geobreite)</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="longitude" formControlName="longitude" required>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<a href="https://maps.google.de" target="_blank">Weblink zur Landkarte dienstl.</a>
</div>
</div>
</div>
</div>
</ng-template>
</ngb-panel>
<!-- PRIVATANSCHRIFT -->
<ngb-panel title="Privatanschrift" id="privateData" *ngIf="!isModal">
<ng-template ngbPanelContent>
<div formGroupName="privateAddress">
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="postcodepriv" class="col-sm-3 col-form-label">PLZ</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="postcodepriv" placeholder="Postleitzahl"
formControlName="postcode" required>
<ok-error [control]="form.controls.privateAddress.controls['postcode']"></ok-error>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="communitypriv" class="col-sm-3 col-form-label">Ort</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="communitypriv" placeholder="Ort" formControlName="community"
required>
<ok-error [control]="form.controls.privateAddress.controls['community']"></ok-error>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label for="communitySuffixPriv" class="col-sm-3 col-form-label">Adresszusatz privat</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="communitySuffixPriv" placeholder="Adresszusatz privat"
formControlName="communitySuffix">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="streetpriv" class="col-sm-3 col-form-label">Straße privat</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="streetpriv" placeholder="Straße privat" formControlName="street"
required>
<ok-error [control]="form.controls.privateAddress.controls['street']"></ok-error>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label for="housenumberpriv" class="col-sm-3 col-form-label">Hausnummer privat</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="housenumberpriv" placeholder="Hausnummer privat"
formControlName="housenumber" required>
<ok-error [control]="form.controls.privateAddress.controls['housenumber']"></ok-error>
</div>
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="wgs84zonepriv" class="col-sm-3 col-form-label">WGS84 Zone privat</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="wgs84zonepriv" placeholder="wgs84zone" formControlName="wgs84zone">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="latitudepriv" class="col-sm-3 col-form-label">WGS84 Koordinate 1 privat (geolänge)</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="latitudepriv" placeholder="latitude" formControlName="latitude">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label for="longitudepriv" class="col-sm-3 col-form-label">WGS84 Koordinate 2 privat (geobreite)</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="longitudepriv" placeholder="longitude" formControlName="longitude">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<a href="https://maps.google.de" target="_blank">Weblink zur Landkarte privat</a>
</div>
</div>
</div>
</ng-template>
</ngb-panel>
<!-- Erreichbarkeit -->
<ngb-panel title="Erreichbarkeitsdaten" id="reachabilityData" *ngIf="!isModal">
<ng-template ngbPanelContent>
<div formGroupName="businessContactData">
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="phone" class="col-sm-3 col-form-label">Telefon-Nr. dienstl. / Hotline</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="phone" placeholder="phone" formControlName="phone"
required>
<ok-error [control]="form.controls.businessContactData.controls['phone']"></ok-error>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label for="cellphone" class="col-sm-3 col-form-label">Mobiltelefon dienstl.</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="cellphone" placeholder="cellphone" formControlName="cellphone">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="radiocomm" class="col-sm-3 col-form-label">Funk-Nr.</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="radiocomm" placeholder="radiocomm" formControlName="radiocomm">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label for="email" class="col-sm-3 col-form-label">E-mail</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="email" placeholder="email" formControlName="email">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="pager" class="col-sm-3 col-form-label">Pager</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="pager" placeholder="pager" formControlName="pager">
</div>
</div>
</div>
</div>
</div>
<div formGroupName="privateContactData">
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label for="phonepriv" class="col-sm-3 col-form-label">Telefon-Nr. privat</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="phonepriv" placeholder="phone" formControlName="phone"
required>
<ok-error [control]="form.controls.privateContactData.controls['phone']"></ok-error>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label for="cellphonepriv" class="col-sm-3 col-form-label">Mobiltelefon privat</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="cellphonepriv" placeholder="cellphone" formControlName="cellphone">
</div>
</div>
</div>
</div>
</div>
</ng-template>
</ngb-panel>
</ngb-accordion>
<div class="row mt-3 mb-3" *ngIf="isModal">
<div class="col-md-12">
<button *ngIf="authService.userHasRoles(['BP_Sachbearbeiter','BP_Admin'])" class="btn btn-success" (click)="saveUser()"
id="userSave">Speichern</button>
<button class="btn btn-danger float-right" (click)="close()" id="userCancel">Abbrechen</button>
</div>
</div>
</form>
</div>