Added order position deletion; added fontawesome pro

This commit is contained in:
Frank Schubert
2022-03-31 17:05:24 +02:00
parent 35cb56dc50
commit 94b09b00a5
17870 changed files with 600844 additions and 15830 deletions

View File

@@ -421,7 +421,7 @@
filter = getFilter();
$.post('<?=self::getUrl("Building", "Api")?>', {
'do': "findBuildings",
'do': "getFilteredBuildings",
filter: filter
},function(success) {
if(success.status == "OK") {

View File

@@ -410,15 +410,27 @@
$includes_external_product = true;
}
?>
<div class="row product-container">
<div class="row product-container" id="position-<?=$product->id?>">
<input type="hidden" name="products[<?=$product->id?>][delete]" id="products-<?=$product->id?>-delete" value="0" />
<div class="col-md-1 product-<?=$product->id?>">
<!-- pos number -->
<div class="form-group">
<label class="form-label" for="pos-<?=$product->id?>">Position</label>
<input type="number" class="form-control" name="products[<?=$product->id?>][pos]" id="pos-<?=$product->id?>" value="<?=$product->pos?>" placeholder="Position" />
<div class="row">
<div class="col-md-12">
<!-- pos number -->
<div class="form-group">
<label class="form-label" for="pos-<?=$product->id?>">Position</label>
<input type="number" class="form-control" name="products[<?=$product->id?>][pos]" id="pos-<?=$product->id?>" value="<?=$product->pos?>" placeholder="Position" />
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 delete-button-container">
<i class="btn btn-outline-danger fas fa-trash-can pointer" style="font-size: 1.5em" onclick="toggleDeletePos(<?=$product->id?>)"></i>
</div>
</div>
</div>
<div class="col-md-11">
<!-- product lines -->
<div class="row">
@@ -1170,6 +1182,37 @@
<?php endif; ?>
});
function toggleDeletePos(id) {
if($('#products-' + id + '-delete').val() == "0") {
$('#position-' + id).addClass('deleted text-white');
$('#position-' + id + ' .delete-button-container i').removeClass("btn-outline-danger fa-trash-can").addClass("btn-danger fa-trash-can-slash");
$('#position-' + id + ' .delete-button-container').append('<p class="text-white font-weight-bold">Wird gelöscht!</p>');
//$('#position-' + id + ' .delete-button-container i').removeClass("fa-trash-can").addClass("fa-trash-can-slash");
$('#products-' + id + '-delete').val(1);
$('#position-' + id).each(function() {
$(this).find('input').attr("readonly", true).addClass("text-danger");
$(this).find('select').attr("readonly", true).addClass("text-danger");
$(this).find('textarea').attr("readonly", true).addClass("text-danger");
});
} else {
$('#products-' + id + '-delete').val(0);
//$('#position-' + id + ' .delete-button-container i').removeClass("fa-trash-can-slash").addClass("fa-trash-can");
$('#position-' + id + ' .delete-button-container').html('<i class="btn btn-outline-danger fas fa-trash-can pointer" style="font-size: 1.5em" onclick="toggleDeletePos(' + id + ')"></i>');
//$('#position-' + id + ' .delete-button-container i').removeClass("btn-outline-white fa-trash-can-slash").addClass("text-danger fa-trash-can");
$('#position-' + id).removeClass('text-white deleted');
$('#position-' + id).each(function() {
$(this).find('input').attr("readonly", false).removeClass("text-danger");
$(this).find('select').attr("readonly", false).removeClass("text-danger");
$(this).find('textarea').attr("readonly", false).removeClass("text-danger");
});
}
}
</script>
<?php include(realpath(dirname(__FILE__)."/../")."/footer.php"); ?>

View File

@@ -0,0 +1,275 @@
<?php include(realpath(dirname(__FILE__)."/../")."/header.php"); ?>
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box">
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="<?=self::getUrl("Dashboard")?>">the-tool</a></li>
<li class="breadcrumb-item"><a href="<?=self::getUrl("Building")?>">Vorbestellkampagne</a></li>
<li class="breadcrumb-item active"><?=($campaign->id) ? "bearbeiten" : "Neu" ?></li>
</ol>
</div>
<h4 class="page-title">Objekte</h4>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<h4 class="header-title mb-2"><?=($campaign->id) ? "Vorbestellkampagne bearbeiten" : "Neue Vorbestellkampagne"?></h4>
<form class="form-horizontal" method="post" action="<?=self::getUrl("Preordercampaign", "save")?>">
<div class="card">
<div class="card-body">
<input type="hidden" name="id" value="<?=$campaign->id?>" />
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="network_id">Netzgebiet *</label>
<div class="col-lg-10">
<select class="select2 form-control " name="network_id" id="network_id">
<option></option>
<?php foreach($networks as $network): ?>
<option value="<?=$network->id?>" <?=($campaign->network_id == $network->id) ? "selected='selected'" : ""?>><?=($network->name)?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<div id="building-search" class="hidden">
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="building_units">Gebäude suchen *</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="building_id_search" id="building_id_search" />
</div>
</div>
<div class="form-group row" id="building-search-results-section">
<label class="col-lg-2 col-form-label" for="building_units">Gebäude auswählen *</label>
<div class="col-lg-10">
<table class="table table-striped table-hover" id="building-search-results">
<tr>
<th></th>
<th>Straße</th>
<th>PLZ</th>
<th>Ort</th>
<th>Code</th>
<th>OAN ID</th>
</tr>
</table>
</div>
</div>
<div class="form-group row" id="building-search-selected">
<label class="col-lg-2 col-form-label" for="">Ausgewähltes Gebäude</label>
<div class="col-lg-10">
<table>
<tr>
<td class="check-mark align-top" style="font-size: 2.5em; width:40px;"><i class="fas fa-question text-warning"></i></td>
<td class="label">Bitte auswählen...</td>
</tr>
</table>
</div>
</div>
</div>
<div class="form-group row hidden" id="termination-search-results-section">
<label class="col-lg-2 col-form-label" for="">Anschluss auswählen *</label>
<div class="col-lg-10">
<table class="table table-striped table-hover" id="termination-search-results">
<tr>
<th></th>
<th>Bezeichung</th>
<th>Kontakt</th>
<th>Status</th>
<th>Anschluss ID</th>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2"></label>
<div class="col-lg-10">
<button type="submit" class="btn btn-primary">Speichern</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#building-search-results-section').hide();
$('#building-search-selected').hide();
/**********************
* Event handler
**********************/
// show Building Search when selecting Network
$('#network_id').change(function() {
var network_id = $('#network_id').val();
if(network_id) {
$('#building-search').show();
$('#building_id_search').focus();
} else {
$('#building-search').hide();
resetBuildingSearch();
}
});
$('#building_id_search').keyup(function() {
var search = $('#building_id_search').val();
var network_id = $('#network_id').val();
if(!network_id || search.length < 3) {
return;
}
$.post('<?=self::getUrl('Building','api')?>',
{
do: 'findBuildings',
network_id: network_id,
search: search
},
function(success) {
if(success.status == "OK") {
listSearchresults(success.result);
}
},
'json');
});
$('#building_id_search').keydown(function() {
if(event.keyCode == 9 || event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});
function listSearchresults(data) {
resetSearchresults();
var count = data.buildings.length;
var count_total = data.count;
if(!("buildings" in data) || !count) {
$('#building-search-results-section').hide();
return false;
}
$('#building-search-results-section').show();
data.buildings.forEach(function(b) {
var line = '<tr class="result result-' + b.id + ' pointer" onclick="selectBuilding(' + b.id + ')">';
line += '<td><input type="checkbox" readonly="readonly" onclick="selectBuilding(' + b.id + ')" name="building_id" value="' + b.id + '" data-zip="' + b.zip + '" data-city="' + b.city + '" data-street="' + b.street + '" data-code="' + b.code + '" data-oanid="' + b.oan_id + '" /></td>';
line += "<td>" + b.street + "</td>";
line += "<td>" + b.zip + "</td>";
line += "<td>" + b.city + "</td>";
line += "<td>" + b.code + "</td>";
line += "<td>" + b.oan_id + "</td>";
$('#building-search-results').append(line);
});
console.log(count);
console.log(count_total);
if(count < count_total) {
$('#building-search-results').append('<tr class="results-more bg-warning"><td><i class="fas fa-warning"></i></td><td colspan="5">Es wurden ' + (count_total - count) + ' weitere Suchergebnisse gefunden. Bitte verfeinern Sie die Suche!</td></tr>');
} else {
$('#building-search-results .results-more').remove();
}
}
function resetSearchresults() {
$('#building-search-results .result').each(function() {
this.remove();
});
$('#building-search-results .results-more').remove();
}
function selectBuilding(id) {
if($('input[name=building_id][value=' + id + ']').prop('checked')) {
$('input[name=building_id][value=' + id + ']').prop('checked', false);
$('#building-search-selected .label').removeClass("font-weight-bold").text("Bitte auswählen...");
$('#building-search-selected .check-mark i').removeClass().addClass("fas fa-question text-warning");
} else {
// check selected checkbox and uncheck all others
$('input[name=building_id][value=' + id + ']').prop('checked', true);
$('input[name=building_id]').each(function() {
if($(this).val() != id) {
$(this).prop('checked', false);
}
});
// write selected buildings address
var street = $('input[name=building_id][value=' + id + ']').data("street");
var zip = $('input[name=building_id][value=' + id + ']').data("zip");
var city = $('input[name=building_id][value=' + id + ']').data("city");
var code = $('input[name=building_id][value=' + id + ']').data("code");
var oan_id = $('input[name=building_id][value=' + id + ']').data("oanid");
var label = street + "<br />" + zip + " " + city;
if(code || oan_id) {
label += "<br /><div style='font-weight: normal;'>";
if(code) {
label += "<br />Code: " + code;
}
if(oan_id) {
label += "<br />OAN ID: " + oan_id;
}
label += "</div>";
}
$('#building-search-selected .label').addClass("font-weight-bold").html(label);
$('#building-search-selected .check-mark i').removeClass().addClass("fas fa-check text-success");
$('#building-search-selected').show();
// get terminatiions
}
}
function showTerminationSearch() {
}
function resetBuildingSearch() {
resetSearchresults();
$('#building-search-selected').hide();
$('#building-search-selected .label').removeClass("font-weight-bold").text("Bitte auswählen...");
$('#building-search-selected .check-mark i').removeClass().addClass("fas fa-question text-warning");
}
</script>
<?php include(realpath(dirname(__FILE__)."/../")."/footer.php"); ?>

View File

@@ -19,13 +19,55 @@
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body mb-3">
<h4 class="header-title mb-3">Filter</h4>
<form method="get" action="<?=self::getUrl("Address")?>">
<div class="row">
<div class="col-2">
<label class="form-label" for="filter_network_id">Netzgebiet</label>
<select name="filter[network_id]" id="filter_network_id" class="form-control">
<option></option>
<?php foreach($mynetworks as $fnet): ?>
<option value="<?=$fnet->id?>" <?=($filter['network_id'] == $fnet->id) ? "selected='selected'" : ""?>><?=$fnet->name?></option>
<?php endforeach; ?>
</select>
</div>
<div class="col-1">
<label class="form-label" for="filter_name">Name</label>
<input type="text" class="form-control" name="filter[name]" id="filter_name" value="<?=$filter['name']?>" />
</div>
<div class="col-1">
<label class="form-label" for="filter_area">Gebiet</label>
<input type="text" class="form-control" name="filter[area]" id="filter_area" value="<?=$filter['area']?>" />
</div>
</div>
<div class="row mt-2">
<div class="col">
<button type="submit" class="btn btn-primary">Filter anwenden</button>
<a class="btn btn-secondary" href="<?=self::getUrl("Preorder")?>">Filter zurücksetzen</a>
</div>
</div>
</form>
</div>
</div>
<div class="card">
<div class="card-body mb-3">
<div class="float-left">
<h4 class="header-title">Liste aller Vorbestellkampagnen</h4>
</div>
<div class="float-right">
<a class="btn btn-primary mb-2" href="<?=self::getUrl("Product", "add")?>"><i class="fas fa-plus"></i> Neue Vorbestellkampagne anlegen</a>
<a class="btn btn-primary mb-2" href="<?=self::getUrl("Preordercampaign", "add")?>"><i class="fas fa-plus"></i> Neue Vorbestellkampagne anlegen</a>
</div>
<table class="table table-striped table-hover">

View File

@@ -15,26 +15,26 @@
<li class="has-submenu">
<a href="<?=self::getUrl("Dashboard")?>"><i class="fe-airplay"></i> Dashboard <div class="arrow-down"></div></a>
<ul class="submenu">
<li><a href="<?=self::getUrl("News")?>"><i class="fas fa-th-list"></i> News</a></li>
<li><a href="<?=self::getUrl("News")?>"><i class="far fa-th-list text-info"></i> News</a></li>
</ul>
</li>
<li class="has-submenu">
<a href="#">
<i class="fas fa-database"></i>Stammdaten <div class="arrow-down"></div>
<i class="far fa-database"></i>Stammdaten <div class="arrow-down"></div>
</a>
<ul class="submenu">
<li class="has-sub-submenu">
<a href="<?=self::getUrl("Address")?>"><i class="fas fa-user"></i> Personen & Firmen</a>
<a href="<?=self::getUrl("Address")?>"><i class="fad fa-user text-info"></i> Personen & Firmen</a>
<!--<ul class="sub-submenu">
<li><a href="<?=self::getUrl("Address", "Index" , ["filter" => ["addresstype" => ["employee"]]])?>"><i class="fas fa-"></i> Mitarbeiter</a></li>
<li><a href="<?=self::getUrl("Address", "Index" , ["filter" => ["addresstype" => ["supplier"]]])?>"><i class="fas fa-"></i> Lieferanten</a></li>
</ul>-->
</li>
<li><a href="<?=self::getUrl("Product")?>"><i class="fab fa-product-hunt"></i> Produkte</a></li>
<li><a href="<?=self::getUrl("Producttech")?>"><i class="fas fa-microchip"></i> Technologien</a></li>
<li><a href="<?=self::getUrl("User")?>"><i class="fas fa-users"></i> Benutzer</a></li>
<li><a href="<?=self::getUrl("Network")?>"><i class="fas fa-network-wired"></i> Netzgebiete</a></li>
<li><a href="<?=self::getUrl("Product")?>"><i class="far fa-rectangle-list text-info"></i> Produkte</a></li>
<li><a href="<?=self::getUrl("Producttech")?>"><i class="fad fa-microchip text-info"></i> Technologien</a></li>
<li><a href="<?=self::getUrl("User")?>"><i class="fad fa-users text-info"></i> Benutzer</a></li>
<li><a href="<?=self::getUrl("Network")?>"><i class="fad fa-network-wired text-info"></i> Netzgebiete</a></li>
</ul>
</li>
<?php endif; ?>
@@ -46,10 +46,10 @@
<i class="fas fa-hard-hat"></i>Netzbau <div class="arrow-down"></div>
</a>
<ul class="submenu">
<?php if($me->is(["Admin","netowner","pipeplanner"])): ?><li><a href="<?=self::getUrl("Building")?>"><i class="fas fa-city"></i> Objekte & Anschlüsse</a></li><?php endif; ?>
<?php if($me->is(["Admin","netowner","pipeplanner","pipeworker","lineplanner","lineworker"])): ?><li><a href="<?=self::getUrl("Pipework")?>"><i class="fas fa-wrench"></i> Tiefbau</a></li><?php endif; ?>
<?php if($me->is(["Admin","netowner","lineplanner","lineworker"])): ?><li><a href="<?=self::getUrl("Linework")?>"><i class="fas fa-ethernet"></i> Leitungsbau</a></li><?php endif; ?>
<?php if($me->is(["Admin", "netowner", "netoperator", "lineworker"])): ?><li><a href="<?=self::getUrl("Patching")?>"><i class="fas fa-plug"></i> Patchungen</a></li><?php endif; ?>
<?php if($me->is(["Admin","netowner","pipeplanner"])): ?><li><a href="<?=self::getUrl("Building")?>"><i class="fas fa-city text-info"></i> Objekte & Anschlüsse</a></li><?php endif; ?>
<?php if($me->is(["Admin","netowner","pipeplanner","pipeworker","lineplanner","lineworker"])): ?><li><a href="<?=self::getUrl("Pipework")?>"><i class="fad fa-wrench text-info"></i> Tiefbau</a></li><?php endif; ?>
<?php if($me->is(["Admin","netowner","lineplanner","lineworker"])): ?><li><a href="<?=self::getUrl("Linework")?>"><i class="fas fa-ethernet text-info"></i> Leitungsbau</a></li><?php endif; ?>
<?php if($me->is(["Admin", "netowner", "netoperator", "lineworker"])): ?><li><a href="<?=self::getUrl("Patching")?>"><i class="fas fa-plug text-info"></i> Patchungen</a></li><?php endif; ?>
</ul>
</li>
<?php endif; ?>
@@ -57,11 +57,11 @@
<?php if($me->is(["Admin"])): ?>
<li class="has-submenu">
<a href="#">
<i class="fas fa-running"></i>Netzbetrieb <div class="arrow-down"></div>
<i class="fad fa-running"></i>Netzbetrieb <div class="arrow-down"></div>
</a>
<ul class="submenu">
<li><a href="<?=self::getUrl("Cpeprovisioning")?>"><i class="fas fa-hdd"></i> CPE Provisioning</a></li>
<li><a href="<?=self::getUrl("Cpeshipping")?>"><i class="fas fa-shipping-fast"></i> CPE Versand</a></li>
<li><a href="<?=self::getUrl("Cpeprovisioning")?>"><i class="fad fa-hdd text-info"></i> CPE Provisioning</a></li>
<li><a href="<?=self::getUrl("Cpeshipping")?>"><i class="fad fa-shipping-fast text-info"></i> CPE Versand</a></li>
</ul>
</li>
<?php endif; ?>
@@ -69,10 +69,10 @@
<?php if($me->is(["Admin"])): ?>
<li class="has-submenu">
<a href="#">
<i class="fas fa-phone"></i>Telefonie <div class="arrow-down"></div>
<i class="fad fa-phone"></i>Telefonie <div class="arrow-down"></div>
</a>
<ul class="submenu">
<li><a href="<?=self::getUrl("Voicenumberblock")?>"><i class="fas fa-blender-phone"></i> Rufnummernblöcke</a></li>
<li><a href="<?=self::getUrl("Voicenumberblock")?>"><i class="fad fa-blender-phone text-info"></i> Rufnummernblöcke</a></li>
</ul>
</li>
<?php endif; ?>
@@ -80,11 +80,11 @@
<?php if($me->is(["Admin","salespartner"])): ?>
<li class="has-submenu">
<a href="#">
<i class="fas fa-shopping-basket"></i>Verkauf <div class="arrow-down"></div>
<i class="fal fa-money-bill-wave"></i>Verkauf <div class="arrow-down"></div>
</a>
<ul class="submenu">
<li><a href="<?=self::getUrl("Preorder")?>"><i class="fas fa-shopping-basket"></i> Vorbestellung</a></li>
<li><a href="<?=self::getUrl("Order")?>"><i class="fas fa-file-contract"></i> Bestellungen</a></li>
<li><a href="<?=self::getUrl("Preordercampaign")?>"><i class="far fa-calendar-lines text-info"></i> Vorbestellung</a></li>
<li><a href="<?=self::getUrl("Order")?>"><i class="far fa-file-signature text-info"></i> Bestellungen</a></li>
</ul>
</li>
<?php endif; ?>