Merge branch 'add-preorder-filter' into 'master'

Added new Preorder Filter and Filter-Presets

See merge request fronk/thetool!957
This commit is contained in:
Luca Haid
2025-01-29 13:06:21 +00:00
2 changed files with 96 additions and 7 deletions

View File

@@ -8,10 +8,8 @@ $pagination_entity_name = "Vorbestellungen";
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/header.php"); ?>
<style>
.preorder-campaign-import {
display: flex;
gap: 8px;
justify-content: flex-start;
.select2-selection.select2-selection--multiple {
min-height: calc(1.5em + .9rem + 2px);
}
.preorder-campaign-header, .preorder-campaign-header-buttons {
@@ -19,8 +17,23 @@ $pagination_entity_name = "Vorbestellungen";
justify-content: space-between;
}
.preorder-campaign-import {
display: flex;
gap: 8px;
justify-content: flex-start;
}
.preorder-campaign-header-buttons {
max-width: 500px;
max-width: 650px;
}
@media (max-width: 1720px) {
.preorder-filters .col-sm-12 {
display: flex;
flex-direction: column;
justify-content: flex-end;
}
}
@media (max-width: 576px) {
@@ -132,7 +145,7 @@ $pagination_entity_name = "Vorbestellungen";
<div class="card-body mb-3">
<h4 class="header-title mb-3">Filter</h4>
<form method="get" action="<?=self::getUrl("Preorder")?>">
<form method="get" action="<?=self::getUrl("Preorder")?>" class="preorder-filters">
<div class="row">
@@ -232,6 +245,16 @@ $pagination_entity_name = "Vorbestellungen";
<input type="text" class="form-control" name="filter[magic_search]" id="filter_magic_search" value="<?=$filter['magic_search'] ?? ""?>" />
</div>
<div class="col-sm-12 col-md-2">
<label class="form-label" for="filter_created_from">Zeitraum</label>
<select name="filter[created_from]" id="filter_created_from" class="form-control">
<option value=""></option>
<option value="7" <?=(isset($filter) && array_key_exists("created_from", $filter) && $filter["created_from"] == 7) ? "selected='selected'" : ""?>>7 Tage</option>
<option value="14" <?=(isset($filter) && array_key_exists("created_from", $filter) && $filter["created_from"] == 14) ? "selected='selected'" : ""?>>14 Tage</option>
<option value="30" <?=(isset($filter) && array_key_exists("created_from", $filter) && $filter["created_from"] == 30) ? "selected='selected'" : ""?>>30 Tage</option>
</select>
</div>
</div>
<div class="row mt-2">
@@ -283,7 +306,6 @@ $pagination_entity_name = "Vorbestellungen";
<div class="col-sm-12 col-md-2">
<label class="form-label" for="filter_rimo_workorder">Rimo Workorder Status</label>
<select name="filter[rimo_workorder_status][]" id="filter_rimo_workorder_status" multiple class="form-control">
<option value=""></option>
<option value="Clarify" <?=(isset($filter) && array_key_exists("rimo_workorder_status", $filter) && is_array($filter['rimo_workorder_status']) && in_array("Clarify", $filter['rimo_workorder_status'])) ? "selected='selected'" : ""?>>Clarify</option>
<option value="Accepted" <?=(isset($filter) && array_key_exists("rimo_workorder_status", $filter) && is_array($filter['rimo_workorder_status'])&& in_array("Accepted", $filter['rimo_workorder_status'])) ? "selected='selected'" : ""?>>Accepted</option>
<option value="Plan released" <?=(isset($filter) && array_key_exists("rimo_workorder_status", $filter) && is_array($filter['rimo_workorder_status'])&& in_array("Plan released", $filter['rimo_workorder_status'])) ? "selected='selected'" : ""?>>Plan released</option>
@@ -304,6 +326,15 @@ $pagination_entity_name = "Vorbestellungen";
</select>
</div>
<div class="col-sm-12 col-md-2">
<label class="form-label" for="filter_preorder_status_flags">Statusflag</label>
<select name="filter[preorder_status_flags][]" id="filter_preorder_status_flags" multiple class="form-control">
<?php foreach(PreorderStatusflagModel::getAll() as $flag): ?>
<option value="<?=$flag->id?>" <?=(isset($filter) && array_key_exists("preorder_status_flags", $filter) && is_array($filter['preorder_status_flags']) && in_array($flag->id, $filter['preorder_status_flags'])) ? "selected='selected'" : ""?>><?=$flag->name?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="row mt-2">
@@ -317,6 +348,22 @@ $pagination_entity_name = "Vorbestellungen";
<?php if(!$me->is("Preorderfront")): ?>
<button type="submit" formaction="<?=self::getUrl("Preorder", "export")?>" id="export-button" class="btn btn-outline-success"><i class="fas fa-download"></i> CSV-Export</button>
<?php endif; ?>
<!-- i need a dropdown with 2 options beautifull dropdown no select
Gelöschte Bestellungen mit Workorder (button with href)
Wohnung - Verkabelung erledigt (button with href)
-->
<div class="dropdown">
<button class="btn btn-outline-primary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-expanded="false">
Filter-Presets
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<li><a class="dropdown-item" href="<?=self::getUrl("Preorder", "Index", ["filter" => ["status" => [21,22,23,24,25], "rimo_workorder" => 1, "borderpoint" => "all"]])?>">Gelöschte Bestellungen mit Workorder</a></li>
<li><a class="dropdown-item" href="<?=self::getUrl("Preorder", "Index", ["filter" => ["preorder_status_flags" => [4], "connection_type" => ["apartment"], "borderpoint" => "all"]])?>">Wohnung - Verkabelung erledigt</a></li>
</ul>
</div>
</div>
</div>
</form>
@@ -474,9 +521,25 @@ $pagination_entity_name = "Vorbestellungen";
$("#filter_partner_id").select2({closeOnSelect: false});
$("#connection_type_id").select2({closeOnSelect: false});
$("#filter_rimo_workorder_status").select2({closeOnSelect: false});
$("#filter_preorder_status_flags").select2({closeOnSelect: false});
var attributes = ["bep_specified", "inhouse_cabling_supplied"];
$(document).ready(function() {
// Toggle dropdown on button click
$('.dropdown-toggle').on('click', function(e) {
e.preventDefault();
$(this).siblings('.dropdown-menu').toggleClass('show');
});
// Close dropdown when clicking outside
$(document).on('click', function(e) {
if (!$(e.target).closest('.dropdown').length) {
$('.dropdown-menu').removeClass('show');
}
});
});
attributes.forEach(function(attrib) {