EinsatzOnline/resources/templates/module_member_management_pr...

337 lines
28 KiB
Handlebars

{{> header }}
{{> delete-member-modal}}
<div class="container-fluid">
<div class="row">
<div class="wrapper">
{{> sidebar }}
<div id="content">
<div class="col">
<div class="row">
<div class="col-10">
{{> searchbar active_entity=member.entity_id entity_type="member"}}
</div>
<div class="col-2">
{{#if member}}<div class="iconbar">
{{#if readonly}}<a href="/portal/mm/profile?action=edit&id={{member.entity_id}}"><svg width="2em" height="2em" fill="currentColor">
<use xlink:href="/img/bootstrap-icons.svg#pencil-square"/>
</svg></a>{{else}}
<button type="submit" class="iconbutton" form="member_management_profile_form">
<svg width="2.1em" height="2.1em" fill="currentColor">
<use xlink:href="/img/bootstrap-icons.svg#check2-square"/>
</svg>
</button>
<a href="/portal/mm/profile?action=view&id={{member.entity_id}}"><svg width="2em" height="2em" fill="currentColor">
<use xlink:href="/img/bootstrap-icons.svg#x-square"/>
</svg></a>
{{/if}}
<button class="iconbutton delete_member_button" data-member-id="{{member.entity_id}}" data-member-firstname="{{member.firstname}}" data-member-lastname="{{member.lastname}}">
<svg width="2em" height="2em" fill="currentColor">
<use xlink:href="/img/bootstrap-icons.svg#trash"/>
</svg>
</button>
</div>{{/if}}
</div>
</div>
</div>
<hr>{{#if member}}
<div class="col">
<form id="member_management_profile_form" action="/portal/mm/profile?action=view&id={{member.entity_id}}" method="post">
<input type="hidden" id="member_entity_id" value="{{member.entity_id}}" name="entity_id">
<div class="row">
<div class="col-lg-5">
<div class="form-group row">
<label for="salutation" class="col-sm-3 col-form-label">Anrede</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="salutation" name="salutation" {{#if readonly}}readonly{{/if}} value="{{member.salutation}}">
</div>
</div>
<div class="form-group row">
<label for="academic_titles" class="col-sm-3 col-form-label">akadem. Titel</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="academic_titles" name="academic_titles" {{#if readonly}}readonly{{/if}} value="{{member.academic_titles}}">
</div>
</div>
<hr>
<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" name="firstname" {{#if readonly}}readonly{{/if}} value="{{member.firstname}}">
</div>
</div>
<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" name="lastname" {{#if readonly}}readonly{{/if}} value="{{member.lastname}}">
</div>
</div>
<div class="form-group row">
<label for="sex" class="col-sm-3 col-form-label">Geschlecht</label>
<div class="col-sm-9">
<select class="form-control" id="sex" name="sex" {{#if readonly}}readonly disabled{{/if}}>
<option value="0" {{#if (eq member.sex 0)}}selected{{/if}}></option>
<option value="1" {{#if (eq member.sex 1)}}selected{{/if}}>männlich</option>
<option value="2" {{#if (eq member.sex 2)}}selected{{/if}}>weiblich</option>
<option value="9" {{#if (eq member.sex 9)}}selected{{/if}}>anderes</option>
</select>
</div>
</div>
<div class="form-group row">
<label for="date_of_birth" class="col-sm-3 col-form-label">Geburtsdatum</label>
<div class="col-sm-9">
<input type="date" class="form-control" id="date_of_birth" name="date_of_birth" {{#if readonly}}readonly{{/if}} value="{{member.date_of_birth}}">
</div>
</div>
<div class="form-group row">
<label for="age" class="col-sm-3 col-form-label">Alter (berechnet)</label>
<div class="col-sm-9">
<input type="number" class="form-control" id="age" {{#if readonly}}readonly{{/if}} value="{{member_age}}">
</div>
</div>
<div class="form-group row">
<label for="place_of_birth" class="col-sm-3 col-form-label">Geburtsort</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="place_of_birth" name="place_of_birth" {{#if readonly}}readonly{{/if}} value="{{member.place_of_birth}}">
</div>
</div>
<div class="form-group row">
<label for="birth_name" class="col-sm-3 col-form-label">Geburtsname</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="birth_name" name="birth_name" {{#if readonly}}readonly{{/if}} value="{{member.birth_name}}">
</div>
</div>
<div class="form-group row">
<label for="nationality" class="col-sm-3 col-form-label">Staatsangehörigkeit</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="nationality" name="nationality" {{#if readonly}}readonly{{/if}} value="{{member.nationality}}">
</div>
</div>
</div>
<div class="col-lg-5">
<div class="form-group row">
<label for="personnel_number" class="col-sm-3 col-form-label">Personalnummer</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="personnel_number" name="personnel_number" {{#if readonly}}readonly{{/if}} value="{{member.personnel_number}}">
</div>
</div>
<div class="form-group row">
<label for="entrance_date" class="col-sm-3 col-form-label">Eintrittsdatum</label>
<div class="col-sm-9">
<input type="date" class="form-control" id="entrance_date" name="entrance_date" {{#if readonly}}readonly{{/if}} value="{{member.entrance_date}}">
</div>
</div>
<hr>
<input type="hidden" value="{{address.id}}" name="address_id">
<div class="form-group row">
<label for="street" class="col-sm-3 col-form-label">Straße</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="street" name="address_street" {{#if readonly}}readonly{{/if}} value="{{address.street}}">
</div>
</div>
<div class="form-group row">
<label for="street_number" class="col-sm-3 col-form-label">Hausnummer</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="street_number" name="address_number" {{#if readonly}}readonly{{/if}} value="{{address.number}}">
</div>
</div>
<div class="form-group row">
<label for="zipcode" class="col-sm-3 col-form-label">Postleitzahl</label>
<div class="col-sm-9">
<input type="number" class="form-control" id="zipcode" name="address_zipcode" {{#if readonly}}readonly{{/if}} value="{{address.zipcode}}">
</div>
</div>
<div class="form-group row">
<label for="city" class="col-sm-3 col-form-label">Ort</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="city" name="address_city" {{#if readonly}}readonly{{/if}} value="{{address.city}}">
</div>
</div>
<div class="form-group row">
<label for="country" class="col-sm-3 col-form-label">Land</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="country" name="address_country" {{#if readonly}}readonly{{/if}} value="{{address.country}}">
</div>
</div>
<hr>{{#if_in_list caller_permissions "modules.member_management.profile.iban_bic.view"}}
<div class="form-group row">
<label for="iban" class="col-sm-3 col-form-label">IBAN:</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="iban" name="iban" {{#if_in_list caller_permissions "modules.member_management.profile.iban_bic.edit"}}{{#if ../readonly}}readonly{{/if}}{{else}}readonly{{/if_in_list}} value="{{member.iban}}">
</div>
</div>
<div class="form-group row">
<label for="bic" class="col-sm-3 col-form-label">BIC:</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="bic" name="bic" {{#if_in_list caller_permissions "modules.member_management.profile.iban_bic.edit"}}{{#if ../readonly}}readonly{{/if}}{{else}}readonly{{/if_in_list}} value="{{member.bic}}">
</div>
</div>
<hr>{{/if_in_list}}
</div>
<div class="col-lg-2">
<!-- <img class="profile_image img-fluid" src="">-->
</div>
</div>
</form>
<hr>
<div class="row">
<div class="col-lg-6">
<div class="card bg-light mb-3">
<div class="card-header">Qualifikationen </div>
<div class="card-body" id="qualification_categories">
<div id="qualification_category_list">
{{#each qualification_categories}}
{{#if visible}}
<span class="qualification_category_single" data-category-id="{{id}}"><b>{{name}}: </b>{{#each qualifications}}<span class="badge badge-secondary" data-type="qualification">{{name}}
<span class="qualification_delete" data-qualification-id="{{id}}" data-category-id="{{../id}}" {{#if (../../readonly)}}hidden{{/if}}><svg width="1em" height="1em" fill="currentColor">
<use xlink:href="/img/bootstrap-icons.svg#trash"/>
</svg></span></span>
{{/each}}</span><br>
{{/if}}
{{/each}}
</div>
{{#if (not ../../readonly)}}{{#if_in_list ../../caller_permissions "modules.member_management.profile.qualifications.edit"}}<hr><div class="row">
<div class="col-3">
<b>Qualifikation hinzufügen:</b></div>
<div class="col-3"><select id="add_qualification_category" class="form-control">
<option value="none"></option>
{{#each qualification_categories}}<option value="{{id}}">{{name}}</option>{{/each}}
</select></div>
<div class="col-3"><select id="add_qualification_qualification" class="form-control" disabled><option value="none"></option></select>
</div><div class="col-3"><button id="add_qualification_submit" class="btn btn-primary" disabled>Hinzufügen</button>
</div></div>{{/if_in_list}}{{/if}}
</div>
</div>
{{#if_in_list ../../caller_permissions "modules.member_management.profile.communication.view"}}
<div class="card bg-light mb-3">
<div class="card-header">Kommunikation</div>
<div class="card-body">
<table class="table">
<thead>
<tr>
<th scope="col">Typ</th>
<th scope="col">Wert</th>
<th scope="col">Beschreibung</th>
{{#if (not ../readonly)}}<th scope="col">Aktionen</th>{{/if}}
</tr>
</thead>
<tbody>
{{#each communication_targets}}
<tr data-target-id="{{target_id}}">
{{#if ../readonly}}
<td><input type="text" value="{{type_name}}" readonly size="8" readonly></td>
{{else}}
<td><select data-type-id="{{type_id}}" disabled class="communication_types form-control"></select></td>
{{/if}}
<td><input type="text" value="{{value}}" class="form-control communication_value" readonly></td>
<td><input type="text" value="{{description}}" class="form-control communication_description" readonly></td>
{{#if (not ../readonly)}}{{#if_in_list ../../caller_permissions "modules.member_management.profile.communication.edit"}}<td><button class="iconbutton communication_edit_button"><svg width="1.5em" height="1.5em" viewBox="0 0 16 16" class="bi bi-pencil-square" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path d="M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456l-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z"/>
<path fill-rule="evenodd" d="M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z"/>
</svg></button>
<button class="iconbutton communication_edit_save_button" hidden><svg width="1.5em" height="1.5em" viewBox="0 0 16 16" class="bi bi-check-square" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M14 1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z"/>
<path fill-rule="evenodd" d="M10.97 4.97a.75.75 0 0 1 1.071 1.05l-3.992 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.236.236 0 0 1 .02-.022z"/>
</svg></button>
<button class="iconbutton communication_delete_button"><svg width="1.5em" height="1.5em" viewBox="0 0 16 16" class="bi bi-trash" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6z"></path>
<path fill-rule="evenodd" d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1zM4.118 4L4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z"></path>
</svg></button>
</td>{{/if_in_list}}{{/if}}
</tr>
{{/each}}
{{#if (not ../readonly)}}{{#if_in_list ../../caller_permissions "modules.member_management.profile.communication.edit"}}
<tr>
<td><select class="communication_types form-control"></select></td>
<td><input type="text" class="form-control communication_value"></td>
<td><input type="text" class="form-control communication_description"></td>
<td><button class="iconbutton communication_save_new_button"><svg width="1.5em" height="1.5em" viewBox="0 0 16 16" class="bi bi-check-square" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M14 1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z"/>
<path fill-rule="evenodd" d="M10.97 4.97a.75.75 0 0 1 1.071 1.05l-3.992 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.236.236 0 0 1 .02-.022z"/>
</svg></button></td>
</tr>
{{/if_in_list}}{{/if}}
</tbody>
</table>
</div>
</div>{{/if_in_list}}
{{#if_in_list ../../caller_permissions "modules.member_management.profile.login.view"}}
<div class="card bg-light mb-3">
<div class="card-header">Login</div>
<div class="card-body">
<div class="col">
<p>Achtung: Wird der Login deaktiviert, werden Email-Adresse und Passwort dauerhaft gelöscht und müssen nach dann ggf. neu gesetzt werden.</p>
<div class="form-check">
<input type="checkbox" class="form-check-input" {{#if login.login_allowed}}checked{{/if}} id="login_allowed" {{#if ../readonly}}disabled{{/if}}>
<label class="form-check-label" for="login_allowed">Login aktiviert</label>
</div><hr>
<div class="form-group row">
<label for="login_email" class="col-sm-3">Email-Adresse</label>
<input type="email" class="form-control col-sm-9" id="login_email" value="{{login.email}}" {{#if (not login.login_allowed)}}readonly{{/if}}{{#if ../readonly}}readonly{{/if}}>
</div>
{{#if (not ../readonly)}}{{#if_in_list ../../caller_permissions "modules.member_management.profile.login.edit"}}<button type="button" id="login_save_button" class="btn btn-primary" data-user-id="{{login.user_id}}" style="float: right">Speichern</button>{{/if_in_list}}{{/if}}
</div>
</div>
</div>{{/if_in_list}}
</div>
<div class="col-lg-6">
<div class="card bg-light mb-3">
<div class="card-header">Fahrberechtigungen & Führerscheine</div>
<div class="card-body">
{{#each licenses}}
<button type="button" data-permission-name="{{category_name}}" data-permission-level="{{#if drive_permission}}drive_permission{{else}}{{#if license}}license{{else}}none{{/if}}{{/if}}" class="btn {{#if drive_permission}}btn-success{{else}}{{#if license}}btn-warning{{/if}}{{/if}} drive_permission_update" data-toggle="tooltip" data-placement="bottom" title="{{category_description}}">{{category_name}}</button>
{{/each}}
<hr>
<button type="button" class="btn btn-success">Führerschein + Fahrerlaubnis vorhanden</button>
<button type="button" class="btn btn-warning">Führerschein vorhanden, keine Fahrerlaubnis</button>
</div>
</div>{{#if_in_list ../../caller_permissions "modules.member_management.profile.units.view"}}
<div class="card bg-light mb-3">
<div class="card-header">Einsatzeinheiten</div>
<div class="card-body">
<div class="row">
<div class="col">
<table class="table">
<thead>
<tr>
<th>Einheit</th>
<th>Besetzung</th>
<th>Aktionen</th>
</tr>
</thead>
<tbody id="units_tbody">{{#each units}}
<tr>
<td>{{name}}</td>
<td>{{crew}}. Besetzung</td>
<td>{{#if (not ../../readonly)}}{{#if_in_list ../../caller_permissions "modules.member_management.profile.units.edit"}}<button type="button" class="iconbutton delete_unit_from_member_button" data-unit-id="{{unit_id}}">
<svg width="1.5em" height="1.5em" fill="currentColor">
<use xlink:href="/img/bootstrap-icons.svg#trash"/>
</svg>
</button>{{/if_in_list}}{{/if}}</td>
</tr>{{/each}}
</tbody>
</table></div>
</div>{{#if_in_list ../../caller_permissions "modules.member_management.profile.units.edit"}}{{#if (not ../readonly)}}
<hr>
<div class="row">
<div class="col-3">
<b>Einsatzeinheit hinzufügen:</b></div>
<div class="col-3"><select id="add_operation_unit_unit" class="form-control">
</select></div>
<div class="col-3">
<select id="add_operation_unit_crew" class="form-control">
<option value="1">1. Besetzung</option>
<option value="2">2. Besetzung</option>
</select>
</div><div class="col-3"><button id="add_operation_unit_submit" class="btn btn-primary" disabled="">Hinzufügen</button>
</div></div>{{/if}}{{/if_in_list}}
</div>
</div>{{/if_in_list}}
</div>
</div>
</div>
{{else}}<h3>Bitte Mitglied auswählen.</h3>{{/if}}
</div>
</div>
</div>
</div>
{{> footer }}