Added preorder network select to user/form

This commit is contained in:
Frank Schubert
2023-03-08 20:26:12 +01:00
parent 26babafa85
commit 0f047c8f60
7 changed files with 132 additions and 8 deletions

View File

@@ -163,7 +163,7 @@
</tr>
<?php foreach($preorders as $preorder): ?>
<tr>
<?php if(!$me->is("preorderfront")): ?><td><?=$preorder->campaign->name?></td><?php endif; ?>
<?php //if(!$me->is("preorderfront")): ?><td><?=$preorder->campaign->name?></td><?php //endif; ?>
<td><?=__($preorder->type, "preorder")?></td>
<td>Aufgenommen</td>
<?php if($preorder->building_id): ?>

View File

@@ -71,6 +71,23 @@
<option value="true" <?=(isset($user) && $user->is("preorderfront")) ? "selected='selected'" : ""?>>Yes</option>
</select>
</div>
<div class="form-group" id="preorder-network-container">
<label for="preorder_networks">Preorder Netzgebiete:</label>
<?php
$pns = json_decode((new WorkerFlag($user->id,"preorder_networks"))->value());
if(!$pns) {
$pns = [];
}
?>
<select name="preorder_networks[]" id="preorder_networks" class="form-control" multiple="multiple">
<?php foreach(NetworkModel::getAll() as $network): ?>
<option value="<?=$network->id?>" <?=(in_array($network->id, $pns)) ? "selected='selected'" : ""?>><?=$network->name?></option>
<?php endforeach; ?>
</select>
<small>Überschreibt Netzgebiete der Firma. Wenn leer werden Netzgebiete der Firma angezeigt</small>
</div>
<div class="form-group">
<label for="password">Password:</label>
<input type="password" id="password" name="password" class="form-control" value="" />
@@ -120,9 +137,30 @@
<?php endif; ?>
<script type="text/javascript">
$("#address_id").select2({
allowClear: true,
placeholder: ""
$(document).ready(function() {
$("#address_id").select2({
allowClear: true,
placeholder: ""
});
$("#preorder_networks").select2({
allowClear: true,
placeholder: "",
closeOnSelect: false
});
<?php if(!$user->is("preorderfront")): ?>
$("#preorder-network-container").hide();
<?php endif; ?>
$("select[name=preorderfront]").change(function() {
if($("select[name=preorderfront]").val() == "true") {
$("#preorder-network-container").show();
} else {
$("#preorder-network-container").hide();
}
});
});
</script>

View File

@@ -11,7 +11,6 @@ class DashboardController extends mfBaseController {
}
protected function indexAction() {
if($this->me->is("preorderfront")) {
$this->redirect("Preorder");
}

View File

@@ -49,7 +49,16 @@ class PreorderController extends mfBaseController {
}
$this->layout()->set("my_campaigns", PreordercampaignModel::getAll());
} else {
$my_networks = $this->me->myNetworks(["netowner", "salespartner"]);
if($this->me->is("preorderfront")) {
$pns = json_decode($this->me->getFlag("preorder_networks"));
foreach($pns as $pn_id) {
$my_networks[] = new Network($pn_id);
}
//var_dump($my_networks);exit;
} else {
$my_networks = $this->me->myNetworks(["netowner", "salespartner"]);
}
//var_dump($my_networks);exit;
foreach($my_networks as $network) {

View File

@@ -185,6 +185,15 @@ class UserController extends mfBaseController {
}
$user->permissions->save();
// save networks
$pn = $user->getFlag("preorder_networks");
if($r->preorderfront == "true" && is_array($r->preorder_networks) && count($r->preorder_networks)) {
$pn->value(json_encode($r->preorder_networks));
$pn->save();
} else {
$pn->delete();
}
}
$this->layout()->setFlash("Benutzer gespeichert.", "success");

View File

@@ -0,0 +1,67 @@
<?php
class WorkerFlag {
private $db;
private $id;
private $worker_id = null;
private $name = null;
private $value = null;
private $user = null;
public function __construct($worker_id, $name) {
$this->db = new FronkDB();
$user = new User($worker_id);
$this->user = $user;
$name = $this->db->escape($name);
$this->name = $name;
$res = $this->db->select("WorkerFlag", "*", "worker_id=".$this->user->id." AND name='$name'");
if($this->db->num_rows($res)) {
$data = $this->db->fetch_object($res);
$this->id = $data->id;
$this->value = $data->value;
}
}
public function value($value = null) {
if($value !== null) {
$this->value = $value;
}
return $this->value;
}
public function save() {
$id = $this->id;
$values['worker_id'] = $this->user->id;
$values['name'] = $this->name;
$values['value'] = $this->value;
$values['edit_by'] = $this->user->id;
$values['edit'] = date('U');
if($id) {
// update
$this->db->update("WorkerFlag", $values, "id=$id");
} else {
// insert
$values['create_by'] = $this->user->id;
$values['create'] = date('U');
$id = $this->db->insert("WorkerFlag", $values);
$this->id = $id;
}
}
public function delete() {
if($this->id) {
$this->db->delete("WorkerFlag", "id=".$this->id, 1);
}
return true;
}
public function __toString() {
return (string) $this->value;
}
}

View File

@@ -12,8 +12,8 @@ class mfBaseController {
private $mfLayout;
private $mfMenu;
private $mfUser;
private $mod;
private $action;
protected $mod;
protected $action;
public function __construct($params = NULL) {
// load logging facility
@@ -235,6 +235,8 @@ class mfBaseController {
$url.="#$anker";
}
$url = preg_replace('#^/+#', "/", $url);
$log->debug("Redirecting to $url");
header("Location: $url");
exit;