281 lines
15 KiB
PHP
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_<?=$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">
|
|
<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
|