2021-04-26 15:33:44 +02:00
|
|
|
{% extends "base.html" %}
|
|
|
|
|
|
|
|
{% block menu %}
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block content %}
|
2020-11-14 23:00:36 +01:00
|
|
|
{% if service.modalità == "edit" or service.modalità == "add" %}
|
|
|
|
<form method="post">
|
|
|
|
<div class="container">
|
2021-04-26 15:33:44 +02:00
|
|
|
<div class="form-group">
|
|
|
|
<label for="date-picker">{{ 'Service day'|t }}</label>
|
|
|
|
<input id="date-picker" aria-label="Date picker" placeholder="DD/MM/YYY" autocomplete="off" name="date" data-provide="datepicker"
|
2020-11-25 11:29:19 +01:00
|
|
|
value="{{ values.date }}" type="text" class="form-control">
|
2020-10-19 22:16:24 +02:00
|
|
|
</div>
|
2021-04-26 15:33:44 +02:00
|
|
|
<div class="form-group">
|
|
|
|
<label for="progressivo">{{ 'code'|t|capitalize }}</label>
|
|
|
|
<input id="progressivo" class="form-control" type="text" name="code" placeholder="1234/5" required value="{{ values.code }}">
|
|
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="timePicker1">{{ 'Start time'|t }}</label>
|
|
|
|
<input id="timePicker1" class="form-control" type="time" name="beginning" required value="{{ values.beginning }}">
|
|
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="timePicker2">{{ 'End time'|t }}</label>
|
|
|
|
<input id="timePicker2" class="form-control" type="time" name="end" required value="{{ values.end }}">
|
|
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
|
|
<label>{{ 'Chief'|t }}</label>
|
|
|
|
<br>
|
|
|
|
{% for user in service.crew %}
|
|
|
|
{% if user.chief == 1 and not user.hidden %}
|
|
|
|
<div class="form-check">
|
|
|
|
<input aria-label="{{ username(user.id) }}" id="chief-{{ user.id }}" class="form-check-input chief chief-{{ user.id }}"
|
|
|
|
style="transform: scale(1.4); -webkit-transform: scale(1.4);" type="checkbox" name='chief[]'
|
|
|
|
value='{{ user.id }}'>
|
|
|
|
<label class="form-check-label" for="chief-{{ user.id }}">
|
|
|
|
{{ username(user.id) }}
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
2020-11-14 23:00:36 +01:00
|
|
|
</div>
|
|
|
|
<script>
|
2020-11-25 11:29:19 +01:00
|
|
|
$('.chief').on('change', function () {
|
2020-11-14 23:00:36 +01:00
|
|
|
$('input[name="' + this.name + '"]').not(this).prop('checked', false);
|
|
|
|
});
|
|
|
|
</script>
|
2021-04-26 15:33:44 +02:00
|
|
|
<div class="form-group">
|
|
|
|
<label>{{ 'Drivers'|t }}</label>
|
|
|
|
<br>
|
|
|
|
{% for user in service.crew %}
|
|
|
|
{% if user.driver == 1 and not user.hidden %}
|
|
|
|
<div class="form-check">
|
|
|
|
<input aria-label="{{ username(user.id) }}"id="drivers-{{ user.id }}" class="form-check-input drivers drivers-{{ user.id }}"
|
|
|
|
style="transform: scale(1.4); -webkit-transform: scale(1.4);" type="checkbox" name='drivers[]'
|
|
|
|
value='{{ user.id }}'>
|
|
|
|
<label class="form-check-label" for="drivers-{{ user.id }}">
|
|
|
|
{{ username(user.id) }}
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
2020-11-14 23:00:36 +01:00
|
|
|
</div>
|
2021-04-26 15:33:44 +02:00
|
|
|
<div class="form-group">
|
|
|
|
<label>{{ 'Crew'|t }}</label>
|
|
|
|
<br>
|
|
|
|
{% for user in service.crew %}
|
|
|
|
{% if not user.hidden %}
|
|
|
|
<div class="form-check">
|
|
|
|
<input aria-label="{{ username(user.id) }}" id="crew-{{ user.id }}" class="form-check-input crew crew-{{ user.id }}"
|
|
|
|
style="transform: scale(1.4); -webkit-transform: scale(1.4);" type="checkbox" name='crew[]'
|
|
|
|
value='{{ user.id }}'>
|
|
|
|
<label class="form-check-label" for="crew-{{ user.id }}">
|
|
|
|
{{ username(user.id) }}
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
2020-11-14 23:00:36 +01:00
|
|
|
</div>
|
|
|
|
{% if option('use_location_picker') %}
|
2021-04-26 15:33:44 +02:00
|
|
|
<label>{{ 'Service place'|t }}</label>
|
2020-11-14 23:00:36 +01:00
|
|
|
<div id="map"></div>
|
|
|
|
<div id="search">
|
2021-04-26 15:33:44 +02:00
|
|
|
<div class="form-inline">
|
|
|
|
<div class="form-group mx-sm-3 mb-2">
|
|
|
|
<input type="text" class="form-control" name="addr" value="" id="addr" size="50" />
|
|
|
|
</div>
|
|
|
|
<div class="form-group mx-sm-3 mb-2">
|
2021-04-26 18:32:21 +02:00
|
|
|
<button id="search_button" type="button" onclick="allertaJS.maps.addrSearch('{{ 'Search results'|t }}', '{{ 'No results found'|t }}');"
|
2021-04-26 15:33:44 +02:00
|
|
|
class="btn btn-primary mb-2">{{ 'Search'|t }}</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
2020-11-14 23:00:36 +01:00
|
|
|
<div id="results"></div>
|
|
|
|
</div>
|
2020-11-25 11:29:19 +01:00
|
|
|
<input type="hidden" name="place" value="" />
|
2021-04-23 19:27:09 +02:00
|
|
|
<script src="{{ urlsoftware }}/resources/dist/{{ resource('maps.js') }}" onload="allertaJS.maps.loadMap();"></script>
|
2020-11-14 23:00:36 +01:00
|
|
|
{% else %}
|
2021-05-01 12:18:50 +02:00
|
|
|
<div class="form-group">
|
2021-04-26 15:33:44 +02:00
|
|
|
<label>{{ 'Service place'|t }}</label>
|
|
|
|
<input type="text" name="place" class="form-control" required value="{{ values.place }}">
|
|
|
|
</div>
|
2021-05-01 12:18:50 +02:00
|
|
|
<br>
|
2020-11-14 23:00:36 +01:00
|
|
|
{% endif %}
|
2021-05-01 12:18:50 +02:00
|
|
|
<div class="form-group">
|
2021-04-26 15:33:44 +02:00
|
|
|
<label for="notes">{{ 'Others notes (ex. others infos)'|t }}</label><br>
|
|
|
|
<textarea class="form-control" id="notes" name='notes'></textarea>
|
|
|
|
</div>
|
2020-11-14 23:00:36 +01:00
|
|
|
<br>
|
2021-05-01 12:18:50 +02:00
|
|
|
<div class="form-group">
|
2021-04-26 15:33:44 +02:00
|
|
|
<label>{{ 'Service type'|t }}</label>
|
|
|
|
<br>
|
2021-04-26 18:32:21 +02:00
|
|
|
<select id="types" class="form-control" name='type' class="types">
|
2021-04-26 15:33:44 +02:00
|
|
|
{% for type in service.types %}
|
|
|
|
<option value='{{ type.name }}'>{{ type.name }}</option>
|
|
|
|
{% endfor %}
|
|
|
|
{% if service.types is empty %}
|
|
|
|
<option id="empty_option" value=''></option>
|
|
|
|
{% endif %}
|
|
|
|
<option value='add_new'>{{ 'Add type...'|t }}</option>
|
|
|
|
</select>
|
|
|
|
</div>
|
2020-11-14 23:00:36 +01:00
|
|
|
<br>
|
|
|
|
<input id="modalità" type="hidden" value="{{ service.modalità }}" name="mod"></input>
|
|
|
|
<input id="token" type="hidden" value="{{ service.token }}" name="token"></input>
|
|
|
|
<input id="id" type="hidden" value="{{ service.id }}" name="id"></input>
|
2021-04-26 18:32:21 +02:00
|
|
|
<button id="submit_button" type="submit" class="btn btn-primary">{{ 'Submit'|t }}</button>
|
2020-10-19 22:16:24 +02:00
|
|
|
</div>
|
2020-11-14 23:00:36 +01:00
|
|
|
</form>
|
|
|
|
<script>
|
2021-04-26 18:32:21 +02:00
|
|
|
$( "#types" ).change(function() {
|
2021-03-20 21:19:24 +01:00
|
|
|
$('#empty_option').remove();
|
2021-03-20 19:21:38 +01:00
|
|
|
var type = "";
|
2021-04-26 18:32:21 +02:00
|
|
|
$( "#types option:selected" ).each(function() {
|
2021-03-20 19:21:38 +01:00
|
|
|
type = $( this ).val();
|
|
|
|
});
|
|
|
|
console.log(type);
|
|
|
|
if(type == "add_new"){
|
|
|
|
new_type = prompt("{{ 'Insert type name:'|t }}");
|
|
|
|
if(!new_type) return;
|
|
|
|
$.ajax({
|
|
|
|
url: "resources/ajax/ajax_add_type.php",
|
|
|
|
method: "POST",
|
|
|
|
data: {
|
|
|
|
type: new_type
|
|
|
|
},
|
|
|
|
success: function (data) {
|
2021-04-26 15:33:44 +02:00
|
|
|
$('option:last-of-type').before($('<option>').val(new_type).text(new_type));
|
2021-03-20 19:21:38 +01:00
|
|
|
$('option[value='+new_type+']').prop('selected', 'selected').change();
|
|
|
|
toastr.success(`{{ "Type '%s' added successfully."|t|format('${new_type}') }}`);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
2020-11-14 23:00:36 +01:00
|
|
|
{% if service.modalità == "edit" %}
|
2020-11-25 11:29:19 +01:00
|
|
|
$.each('{{ values.chief }}'.split(','), function (index, value) {
|
|
|
|
$('.chief-' + value).prop('checked', true);
|
2020-04-27 23:27:39 +02:00
|
|
|
});
|
2020-11-25 11:29:19 +01:00
|
|
|
$.each('{{ values.drivers }}'.split(','), function (index, value) {
|
|
|
|
$('.drivers-' + value).prop('checked', true);
|
2020-11-14 23:00:36 +01:00
|
|
|
});
|
2020-11-25 11:29:19 +01:00
|
|
|
$.each('{{ values.crew }}'.split(','), function (index, value) {
|
|
|
|
$('.crew-' + value).prop('checked', true);
|
2020-11-14 23:00:36 +01:00
|
|
|
});
|
2021-04-26 18:32:21 +02:00
|
|
|
$("#types").val('{{ values.type }}');
|
2020-11-25 11:29:19 +01:00
|
|
|
$('#notes').val('{{ values.notes }}');
|
2020-11-13 15:22:26 +01:00
|
|
|
{% endif %}
|
2020-11-14 23:00:36 +01:00
|
|
|
$('form').submit(function () {
|
2021-03-20 19:21:38 +01:00
|
|
|
var type = "";
|
2021-04-26 18:32:21 +02:00
|
|
|
$( "#types option:selected" ).each(function() {
|
2021-03-20 19:21:38 +01:00
|
|
|
type = $( this ).val();
|
|
|
|
});
|
2021-03-20 21:19:24 +01:00
|
|
|
if(type == "add_new" || type == ""){
|
2021-03-20 19:21:38 +01:00
|
|
|
toastr.error("{{ 'You must select a valid service type!'|t }}");
|
|
|
|
return false;
|
|
|
|
}
|
2020-11-14 23:00:36 +01:00
|
|
|
var progressivo_valido = /^[0-9/]{3,6}$/
|
|
|
|
var progressivo = $('#progressivo').val();
|
|
|
|
if (!progressivo_valido.test(progressivo)) {
|
2020-11-25 11:29:19 +01:00
|
|
|
var invia_progressivo = confirm("{{ 'The code has been detected as incorrect, do you want to add the service anyway?'|t }}");
|
2020-11-14 23:00:36 +01:00
|
|
|
} else {
|
|
|
|
var invia_progressivo = true;
|
|
|
|
}
|
|
|
|
return invia_progressivo;
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
{% endif %}
|
|
|
|
{% if service.modalità == "delete" %}
|
|
|
|
<div style="margin: 0 auto; text-align: center">
|
|
|
|
<p>{{ 'Are you sure you want to delete the service?'|t }}</p>
|
|
|
|
<form method="post">
|
|
|
|
<input id="modalità" type="hidden" value="delete" name="mod"></input>
|
|
|
|
<input id="token" type="hidden" value="{{ service.token }}" name="token"></input>
|
|
|
|
<input id="id" type="hidden" value="{{ service.id }}" name="id"></input>
|
2021-03-23 18:45:47 +01:00
|
|
|
<button id="remove" type="submit">{{ 'Submit'|t }}</button>
|
2020-11-14 23:00:36 +01:00
|
|
|
</form>
|
|
|
|
<script>
|
|
|
|
$('form').submit(function () {
|
|
|
|
return confirm("{{ 'The action cannot be canceled. Are you sure you want to continue?'|t }}");
|
|
|
|
});
|
|
|
|
</script>
|
2020-04-27 23:27:39 +02:00
|
|
|
</div>
|
2020-11-14 23:00:36 +01:00
|
|
|
{% endif %}
|
2021-04-26 15:33:44 +02:00
|
|
|
|
|
|
|
{% block footer %}
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% endblock %}
|