Files
2023-03-22 19:15:35 +01:00

281 lines
15 KiB
PHP

<?php
$siteTitle = "Benutzer";
?>
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/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")?>"><?=MFAPPNAME_SLUG?></a></li>
<li class="breadcrumb-item"><a href="<?=self::getUrl("Contractconfig")?>">Contractconfig</a></li>
<li class="breadcrumb-item">Contractconfig</li>
</ol>
</div>
<h4 class="page-title">Contractconfig</h4>
</div>
</div>
</div>
<!-- end page title -->
<!-- Main content -->
<div class="row">
<div class="col-lg">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-4">
<div class="form-group">
<form method="post" action="<?=self::getUrl("Contractconfiggroup", "save")?>">
<label class="form-label" for="">Neue Config Gruppe anlegen</label>
<div class="input-group mb-3">
<input type="text" class="form-control" name="name" placeholder="Gruppenname..." />
<div class="input-group-append">
<button type="submit" class="btn btn-purple"><i class="fas fa-plus"></i> Gruppe hinzufügen</button>
</div>
</div>
</form>
</div>
</div>
</div>
<?php if(is_array($configgroups) && count($configgroups)): ?>
<div class="row">
<?php foreach($configgroups as $group): ?>
<div class="col-6 border pb-1">
<h4><?=$group->name?> <small><a href="#" onclick="$('#item-form-<?=$group->id?>').toggle(); return false;"><i class="fas fa-plus"></i> Neues Element erstellen</a></small></h4>
<div class="card hidden" id="item-form-<?=$group->id?>">
<div class="card-body">
<form method="post" action="<?=self::getUrl("ContractconfigItem", "save")?>">
<input type="hidden" name="group_id" value="<?=$group->id?>" />
<div class="p-2 <?=($i % 2 == 0) ? "bg-light" : ""?>">
<div class="row col">
<h5>Neues Config Element</h5>
</div>
<div class="row">
<div class="col-md-1">
<div class="form-group">
<label for="item_new_<?=$item->id?>_order">Sort</label>
<input type="text" class="form-control" id="item_new_<?=$item->id?>_order" name="order" value="" />
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="item_new_<?=$group->id?>_name">Name <small class="text-monospace">[a-z0-9._-]</small></label>
<input type="text" class="form-control" id="item_new_<?=$group->id?>_name" name="name" value="" />
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="item_new_<?=$group->id?>_type">Datentyp</label>
<select class="form-control" id="item_new_<?=$group->id?>_type" name="type" onchange='toggleTypedata("new_<?=$group->id?>"); return false;'>
<option value="string">String</option>
<option value="int">Ganzzahl</option>
<option value="decimal">Dezimalzahl</option>
<option value="enum">Auswahl</option>
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group" id="typedata_new_<?=$group->id?>">
<div class="enum hidden">
<label for="item_new_<?=$group->id?>_data">Auswahldaten (1 Element pro Zeile)</label>
<textarea class="form-control" style="height: 128px" id="item_new_<?=$group->id?>_data" name="data"></textarea>
</div>
<div class="pattern">
<label for="item_new_pattern">Regex Pattern</label>
<input type="text" class="form-control" id="item_new_<?=$group->id?>_pattern" name="pattern" value="" />
</div>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-md-4">
<div class="form-group">
<label for="item_new_<?=$group->id?>_displayname">Anzeigename</label>
<input type="text" class="form-control" id="item_new_<?=$group->id?>_displayname" name="displayname" value="" />
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="item_new_<?=$group->id?>_description">Beschreibung</label>
<input type="text" class="form-control" id="item_new_<?=$group->id?>_description" name="description" value="" />
</div>
</div>
<div class="col-md-4">
<div class="form-group text-center">
<label for="item_new_<?=$item->id?>_multiple">Mehrfach eintragbar</label>
<input type="checkbox" class="form-control" id="item_new_<?=$item->id?>_multiple" name="multiple" value="1" />
</div>
</div>
</div>
<div class="form-group row">
<div class="col">
<input type="submit" class="btn btn-purple" value="Speichern" />
</div>
</div>
</div>
</form>
</div>
</div>
<?php if(is_array($group->items) && count($group->items)): ?>
<?php $i = 0; foreach($group->items as $item): ?>
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action bg-soft-warning" onclick="$('#item-edit-<?=$item->id?>').toggle(); return false;"><i class="fas fa-caret-right pr-1"></i> <span class="text-monospace"><?=($item->order) ? str_pad($item->order, 2, "0", STR_PAD_LEFT) : ""?></span> <span class="text-monospace bg-purple text-white ml-1 p-1"><?=$item->name?></span> - <?=$item->displayname?> [<?=$item->type?>]</a>
<div class="card hidden" id="item-edit-<?=$item->id?>">
<div class="card-body">
<form method="post" action="<?=self::getUrl("ContractconfigItem", "save")?>">
<input type="hidden" name="item_id" value="<?=$item->id?>" />
<input type="hidden" name="group_id" value="<?=$group->id?>" />
<div class="p-2 <?=($i % 2 == 0) ? "bg-light" : ""?>">
<div class="row">
</div>
<div class="row">
<div class="col-md-1">
<div class="form-group">
<label for="item_<?=$item->id?>_order">Sort</label>
<input type="text" class="form-control" id="item_<?=$item->id?>_order" name="order" value="<?=$item->order?>" />
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="item_<?=$item->id?>_name">Name <small class="text-monospace">[a-z0-9._-]</small></label>
<input type="text" class="form-control" id="item_<?=$item->id?>_name" name="name" value="<?=$item->name?>" />
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="item_<?=$item->id?>_type">Datentyp</label>
<select class="form-control" id="item_<?=$item->id?>_type" name="type" onchange="toggleTypedata(<?=$item->id?>)">
<option value="string" <?=($item->type == "string") ? "selected='selected'" : ""?>>String</option>
<option value="int" <?=($item->type == "int") ? "selected='selected'" : ""?>>Ganzzahl</option>
<option value="decimal" <?=($item->type == "decimal") ? "selected='selected'" : ""?>>Dezimalzahl</option>
<option value="enum" <?=($item->type == "enum") ? "selected='selected'" : ""?>>Auswahl</option>
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group" id="typedata_<?=$item->id?>">
<div class="enum <?=($item->type != "enum") ? "hidden" : ""?>">
<label for="item_<?=$item->id?>_data">Auswahldaten (1 Element pro Zeile)</label>
<textarea class="form-control" style="height: 128px" id="item_<?=$item->id?>_data" name="data"><?=$item->typedata?></textarea>
</div>
<div class="pattern <?=($item->type != "string") ? "hidden" : ""?>">
<label for="item_<?=$item->id?>_pattern">Regex Pattern</label>
<input type="text" class="form-control" id="item_<?=$item->id?>_pattern" name="pattern" value="<?=$item->pattern?>" />
</div>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-md-4">
<div class="form-group">
<label for="item_<?=$item->id?>_displayname">Anzeigename</label>
<input type="text" class="form-control" id="item_<?=$item->id?>_displayname" name="displayname" value="<?=htmlentities($item->displayname)?>" />
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="item_<?=$item->id?>_description">Beschreibung</label>
<input type="text" class="form-control" id="item_<?=$item->id?>_description" name="description" value="<?=$item->description?>" />
</div>
</div>
<div class="col-md-4">
<div class="form-group text-center">
<label for="item_<?=$item->id?>_multiple">Mehrfach eintragbar</label>
<input type="checkbox" class="form-control" id="item_<?=$item->id?>_multiple" name="multiple" value="1" <?=($item->multiple) ? "checked='checked'" : ""?> />
</div>
</div>
</div>
<div class="form-group row">
<div class="col-md-10 float-left">
<input type="submit" class="btn btn-purple" value="Speichern" />
</div>
<div class="col-md-2 float-right text-right">
<small><a class="text-danger" href="<?=self::getUrl("ContractconfigItem", "delete", ['id' => $item->id])?>" onclick="if(!confirm('Attribut wirklich löschen?')) return false;"><i class="fas fa-trash-alt"></i> löschen</a></small>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<?php $i++; endforeach; ?>
<?php endif; ?>
</div>
<?php $i++; endforeach; ?>
</div>
<?php else: ?>
<i>Keine Configgruppen gefunden</i>
<?php endif; ?>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$("#address_id").select2({
allowClear: true,
placeholder: ""
});
var item;
var hash = window.location.hash.substr(1);
var match = hash.match(/item=(\d+)/);
if(match && match[1]) {
item = match[1]
$('#item-edit-' + item).show()
var pos = $('#item-edit-' + item).offset().top;
$(window).scrollTop(pos);
}
function toggleTypedata(id) {
var type = $('#item_' + id + '_type').val();
if(type == "enum") {
$('#typedata_' + id + " .enum").show();
$('#typedata_' + id + " .pattern").hide();
} else if(type == "string") {
$('#typedata_' + id + " .pattern").show();
$('#typedata_' + id + " .enum").hide();
} else {
$('#typedata_' + id + " .pattern").hide();
$('#typedata_' + id + " .enum").hide();
}
}
</script>
<?php include(realpath(dirname(__FILE__)."/../")."/footer.php"); ?><?php