added new button to create tickets
This commit is contained in:
@@ -232,6 +232,7 @@
|
||||
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
|
||||
<a href="<?=self::getUrl("User", "Index", ["filter" => ["address_id" => $address->id]])?>" title="Benutzer anzeigen"><i class="fas fa-users"></i></a>
|
||||
<a href="<?=self::getUrl("Address", "view", ["id" => $address->id, 's' => $pagination['start']])?>"><i class="far fa-eyes" title="Anzeigen"></i></a>
|
||||
<a href="#" onclick="openCreateTicketModal('<?=$address->getFullName()?>', '<?=$address->customer_number?>', '<?=$address->street . ', ' . $address->zip . ' ' . $address->city?>', '<?=$address->phone?>', '<?=$address->email?>', '<?=$address->spin?>')" title="Störungs-Ticket erstellen" class="text-warning"><i class="fas fa-exclamation-triangle"></i></a>
|
||||
<a href="<?=self::getUrl("Address", "edit", ["id" => $address->id, 's' => $pagination['start']])?>"><i class="far fa-edit" title="Bearbeiten"></i></a>
|
||||
<a href="<?=self::getUrl("Address", "delete", ["id" => $address->id, 's' => $pagination['start']])?>" onclick="if(!confirm('Person/Firma wirklich löschen?')) return false;" class="text-danger" title="Löschen"><i class="fas fa-trash"></i></a>
|
||||
</td>
|
||||
@@ -249,6 +250,122 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- CREATE TICKET MODAL START -->
|
||||
|
||||
<!--add a bootstrap modal here and below add a new <script> which creates a form for self::getUrl("Address", "createTicket") with post parameters
|
||||
string $subject, string $description, string $customer_name, string $customer_number, string $customer_address, string $customer_phone_number, string $customer_email, string $customer_service_ping
|
||||
-->
|
||||
|
||||
<div class="modal" id="createTicketModal" tabindex="-1" role="dialog" aria-labelledby="createTicketModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="createTicketModalLabel">Störungs-Ticket erstellen</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<form id="createTicketForm">
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<label class="form-label required" for="subject">Betreff</label>
|
||||
<input type="text" class="form-control" name="subject" id="subject" required="required" />
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label required" for="description">Beschreibung</label>
|
||||
<textarea class="form-control" name="description" id="description" required="required"></textarea>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label required" for="customer_name">Kundenname</label>
|
||||
<input type="text" class="form-control" name="customer_name" id="customer_name" required="required" />
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label required" for="customer_number">Kundennummer</label>
|
||||
<input type="text" class="form-control" name="customer_number" id="customer_number" required="required" />
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label required" for="customer_address">Kundenadresse</label>
|
||||
<input type="text" class="form-control" name="customer_address" id="customer_address" required="required" />
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label required" for="customer_phone_number">Telefon</label>
|
||||
<input type="text" class="form-control" name="customer_phone_number" id="customer_phone_number" required="required" />
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label required" for="customer_email">Email</label>
|
||||
<input type="text" class="form-control" name="customer_email" id="customer_email" required="required" />
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label required" for="customer_service_pin">Service-Pin</label>
|
||||
<input type="text" class="form-control" name="customer_service_pin" id="customer_service_pin" required="required" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- add submit and close button here-->
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn btn-primary">Ticket erstellen</button>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal" @click="closeModal">Schließen</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const newTicketUrl = '<?=self::getUrl("Address", "createTicket")?>';
|
||||
|
||||
function openCreateTicketModal(customer_name, customer_number, customer_address, customer_phone_number, customer_email, customer_service_pin) {
|
||||
$("#createTicketModal").modal("show");
|
||||
$("#subject").val('');
|
||||
$("#description").val('');
|
||||
$("#customer_name").val(customer_name);
|
||||
$("#customer_number").val(customer_number);
|
||||
$("#customer_address").val(customer_address);
|
||||
$("#customer_phone_number").val(customer_phone_number);
|
||||
$("#customer_email").val(customer_email);
|
||||
$("#customer_service_pin").val(customer_service_pin);
|
||||
}
|
||||
|
||||
document.getElementById('createTicketForm').addEventListener('submit', submitNewTicket);
|
||||
|
||||
function submitNewTicket(e) {
|
||||
e.preventDefault();
|
||||
const data = {
|
||||
subject: $("#subject").val(),
|
||||
description: $("#description").val(),
|
||||
customer_name: $("#customer_name").val(),
|
||||
customer_number: $("#customer_number").val(),
|
||||
customer_address: $("#customer_address").val(),
|
||||
customer_phone_number: $("#customer_phone_number").val(),
|
||||
customer_email: $("#customer_email").val(),
|
||||
customer_service_pin: $("#customer_service_pin").val()
|
||||
};
|
||||
|
||||
$.post(newTicketUrl, data, function(response) {
|
||||
response = JSON.parse(response);
|
||||
console.log(response);
|
||||
if(response.id) {
|
||||
window.open('https://project.xinon.at/projects/storungen-and-support/work_packages/' + response.id + '/activity', '_blank');
|
||||
closeModal();
|
||||
} else {
|
||||
alert("Fehler beim Erstellen des Tickets.");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
$("#createTicketModal").modal("hide");
|
||||
// set all input fields to empty
|
||||
$("#createTicketForm").trigger("reset");
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<!-- CREATE TICKET MODAL END -->
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$("#filter_addresstype").select2({closeOnSelect: false});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user