From 0f047c8f601dcdfd09cfb4309b4558173f497912 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 8 Mar 2023 20:26:12 +0100 Subject: [PATCH] Added preorder network select to user/form --- Layout/default/Preorder/Index.php | 2 +- Layout/default/User/Form.php | 44 +++++++++++- application/Dashboard/DashboardController.php | 1 - application/Preorder/PreorderController.php | 11 ++- application/User/UserController.php | 9 +++ application/WorkerFlag/WorkerFlag.php | 67 +++++++++++++++++++ lib/mvcfronk/mfBase/mfBaseController.php | 6 +- 7 files changed, 132 insertions(+), 8 deletions(-) create mode 100644 application/WorkerFlag/WorkerFlag.php diff --git a/Layout/default/Preorder/Index.php b/Layout/default/Preorder/Index.php index f228f4f75..fe19c2e94 100644 --- a/Layout/default/Preorder/Index.php +++ b/Layout/default/Preorder/Index.php @@ -163,7 +163,7 @@ - is("preorderfront")): ?>campaign->name?> + is("preorderfront")): ?>campaign->name?> type, "preorder")?> Aufgenommen building_id): ?> diff --git a/Layout/default/User/Form.php b/Layout/default/User/Form.php index d95a99745..5eae402f7 100644 --- a/Layout/default/User/Form.php +++ b/Layout/default/User/Form.php @@ -71,6 +71,23 @@ + +
+ + id,"preorder_networks"))->value()); + if(!$pns) { + $pns = []; + } + ?> + + Überschreibt Netzgebiete der Firma. Wenn leer werden Netzgebiete der Firma angezeigt +
+
@@ -120,9 +137,30 @@ diff --git a/application/Dashboard/DashboardController.php b/application/Dashboard/DashboardController.php index 9853a10ba..69c3c42fa 100644 --- a/application/Dashboard/DashboardController.php +++ b/application/Dashboard/DashboardController.php @@ -11,7 +11,6 @@ class DashboardController extends mfBaseController { } protected function indexAction() { - if($this->me->is("preorderfront")) { $this->redirect("Preorder"); } diff --git a/application/Preorder/PreorderController.php b/application/Preorder/PreorderController.php index 2c541b74b..46466fcc1 100644 --- a/application/Preorder/PreorderController.php +++ b/application/Preorder/PreorderController.php @@ -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) { diff --git a/application/User/UserController.php b/application/User/UserController.php index be0e617fb..d8c29048c 100644 --- a/application/User/UserController.php +++ b/application/User/UserController.php @@ -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"); diff --git a/application/WorkerFlag/WorkerFlag.php b/application/WorkerFlag/WorkerFlag.php new file mode 100644 index 000000000..849d2c6d0 --- /dev/null +++ b/application/WorkerFlag/WorkerFlag.php @@ -0,0 +1,67 @@ +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; + } +} \ No newline at end of file diff --git a/lib/mvcfronk/mfBase/mfBaseController.php b/lib/mvcfronk/mfBase/mfBaseController.php index f4fdf8299..4aa1cef52 100644 --- a/lib/mvcfronk/mfBase/mfBaseController.php +++ b/lib/mvcfronk/mfBase/mfBaseController.php @@ -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;