Portions created by the Initial Developer are Copyright (C) 2016-2024 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes files require_once dirname(__DIR__, 2) . "/resources/require.php"; //add multi-lingual support $language = new text; $text = $language->get(); //set the defaults $device_vendor_function_uuid = ''; //delete the group from the menu item if (!empty($_REQUEST["a"]) && $_REQUEST["a"] == "delete" && permission_exists("device_vendor_function_delete") && !empty($_REQUEST["id"])) { //get the id $device_vendor_function_group_uuid = $_REQUEST["id"]; $device_vendor_function_uuid = $_REQUEST["device_vendor_function_uuid"]; $device_vendor_uuid = $_REQUEST["device_vendor_uuid"]; //delete the device vendor function group $array['device_vendor_function_groups'][0]['device_vendor_function_group_uuid'] = $device_vendor_function_group_uuid; $p = permissions::new(); $p->add('device_vendor_function_group_delete', 'temp'); $database = new database; $database->app_name = 'devices'; $database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e'; $database->delete($array); unset($array); $p->delete('device_vendor_function_group_delete', 'temp'); //redirect the browser message::add($text['message-delete'] ?? ''); header("Location: device_vendor_function_edit.php?id=".escape($device_vendor_function_uuid) ."&device_vendor_uuid=".escape($device_vendor_uuid)); exit; } //check permissions require_once "resources/check_auth.php"; if (permission_exists('device_vendor_function_add') || permission_exists('device_vendor_function_edit')) { //access granted } else { echo "access denied"; exit; } //action add or update if (!empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) { $action = "update"; $device_vendor_function_uuid = $_REQUEST["id"]; } else { $action = "add"; } //add multi-lingual support $language = new text; $text = $language->get(); //set the parent uuid if (is_uuid($_GET["device_vendor_uuid"])) { $device_vendor_uuid = $_GET["device_vendor_uuid"]; } //get http post variables and set them to php variables if (count($_POST)>0) { //$label = $_POST["label"]; $type = $_POST["type"]; $subtype = $_POST["subtype"]; $value = $_POST["value"]; $enabled = $_POST["enabled"]; $description = $_POST["description"]; } //process the http variables if (count($_POST) > 0 && empty($_POST["persistformvar"])) { //get the uuid if ($action == "update") { $device_vendor_function_uuid = $_POST["device_vendor_function_uuid"]; } //validate the token $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); header('Location: devices.php'); exit; } //check for all required data $msg = ''; //if (empty($label)) { $msg .= $text['message-required']." ".$text['label-label']."
\n"; } if (empty($type)) { $msg .= $text['message-required']." ".$text['label-type']."
\n"; } if (empty($value)) { $msg .= $text['message-required']." ".$text['label-value']."
\n"; } if (empty($enabled)) { $msg .= $text['message-required']." ".$text['label-enabled']."
\n"; } //if (empty($description)) { $msg .= $text['message-required']." ".$text['label-description']."
\n"; } if (!empty($msg) && empty($_POST["persistformvar"])) { require_once "resources/header.php"; require_once "resources/persist_form_var.php"; echo "
\n"; echo "
\n"; echo $msg."
"; echo "
\n"; persistformvar($_POST); echo "
\n"; require_once "resources/footer.php"; return; } //add or update the database if (empty($_POST["persistformvar"]) || $_POST["persistformvar"] != "true") { //add vendor functions if ($action == "add" && permission_exists('device_vendor_function_add')) { $device_vendor_function_uuid = uuid(); $array['device_vendor_functions'][0]['device_vendor_function_uuid'] = $device_vendor_function_uuid; } //update vendor functions if ($action == "update" && permission_exists('device_vendor_function_edit')) { $array['device_vendor_functions'][0]['device_vendor_function_uuid'] = $device_vendor_function_uuid; } //execute if (is_array($array) && @sizeof($array) != 0) { $array['device_vendor_functions'][0]['device_vendor_uuid'] = $device_vendor_uuid; //$array['device_vendor_functions'][0]['label'] = $label; $array['device_vendor_functions'][0]['type'] = $type; $array['device_vendor_functions'][0]['subtype'] = $subtype; $array['device_vendor_functions'][0]['value'] = $value; $array['device_vendor_functions'][0]['enabled'] = $enabled; $array['device_vendor_functions'][0]['description'] = $description; $database = new database; $database->app_name = 'devices'; $database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e'; $database->save($array); unset($array); } //add a group to the menu if (permission_exists('device_vendor_function_add') && $_REQUEST["group_uuid_name"] != '') { //get the group uuid and group_name $group_data = explode('|', $_REQUEST["group_uuid_name"]); $group_uuid = $group_data[0]; $group_name = $group_data[1]; //add the group to the menu if (is_uuid($device_vendor_function_uuid)) { $device_vendor_function_group_uuid = uuid(); $array['device_vendor_function_groups'][0]['device_vendor_function_group_uuid'] = $device_vendor_function_group_uuid; $array['device_vendor_function_groups'][0]['device_vendor_function_uuid'] = $device_vendor_function_uuid; $array['device_vendor_function_groups'][0]['device_vendor_uuid'] = $device_vendor_uuid; $array['device_vendor_function_groups'][0]['group_name'] = $group_name; $array['device_vendor_function_groups'][0]['group_uuid'] = $group_uuid; $p = permissions::new(); $p->add('device_vendor_function_group_add', 'temp'); $database = new database; $database->app_name = 'devices'; $database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e'; $database->save($array); unset($array); $p->delete('device_vendor_function_group_add', 'temp'); } } //redirect the user $_SESSION["message"] = $text['message-'.$action]; header("Location: device_vendor_function_edit.php?id=".escape($device_vendor_function_uuid) ."&device_vendor_uuid=".escape($device_vendor_uuid)); exit; } } //pre-populate the form if (!empty($_GET) && count($_GET) > 0 && (empty($_POST["persistformvar"]) || $_POST["persistformvar"] != "true")) { $device_vendor_function_uuid = $_GET["id"] ?? null; $sql = "select * from v_device_vendor_functions "; $sql .= "where device_vendor_function_uuid = :device_vendor_function_uuid "; $parameters['device_vendor_function_uuid'] = $device_vendor_function_uuid; $database = new database; $row = $database->select($sql, $parameters, 'row'); if (is_array($row) && @sizeof($row) != 0) { //$label = $row["label"]; $type = $row["type"]; $subtype = $row["subtype"]; $value = $row["value"]; $enabled = $row["enabled"]; $description = $row["description"]; } unset($sql, $parameters, $row); } //get function groups assigned $sql = "select "; $sql .= "fg.*, g.domain_uuid as group_domain_uuid "; $sql .= "from "; $sql .= "v_device_vendor_function_groups as fg, "; $sql .= "v_groups as g "; $sql .= "where "; $sql .= "fg.group_uuid = g.group_uuid "; $sql .= "and fg.device_vendor_uuid = :device_vendor_uuid "; $sql .= "and fg.device_vendor_function_uuid = :device_vendor_function_uuid "; $sql .= "order by "; $sql .= "g.domain_uuid desc, "; $sql .= "g.group_name asc "; $parameters['device_vendor_uuid'] = $device_vendor_uuid; $parameters['device_vendor_function_uuid'] = $device_vendor_function_uuid; $database = new database; $function_groups = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); //set the assigned_groups array if (is_array($function_groups) && @sizeof($function_groups) != 0) { foreach($function_groups as $field) { if (!empty($field['group_name'])) { $assigned_groups[] = $field['group_uuid']; } } } //get the groups $sql = "select * from v_groups "; if (!empty($assigned_groups) && is_array($assigned_groups) && @sizeof($assigned_groups) != 0) { $sql .= "where "; foreach ($assigned_groups as $index => $group_uuid) { $sql_where[] = 'group_uuid <> :group_uuid_'.$index; $parameters['group_uuid_'.$index] = $group_uuid; } if (is_array($sql_where) && @sizeof($sql_where) != 0) { $sql .= implode(' and ', $sql_where).' '; } } $sql .= "order by domain_uuid desc, group_name asc "; $database = new database; $groups = $database->select($sql, $parameters ?? null, 'all'); unset($sql, $parameters, $sql_where, $index); //create token $object = new token; $token = $object->create($_SERVER['PHP_SELF']); //show the header $document['title'] = $text['title-device_vendor_function']; require_once "resources/header.php"; //show the content echo "
\n"; echo "
\n"; echo "
".$text['title-device_vendor_function']."
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','collapse'=>'hide-xs','link'=>'device_vendor_edit.php?id='.urlencode($device_vendor_uuid)]); echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','collapse'=>'hide-xs','style'=>'margin-left: 15px;']); echo "
\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo " "; echo " "; echo " "; echo " "; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo " "; echo "
\n"; echo " ".$text['label-type']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-type']."\n"; echo "
\n"; echo " ".$text['label-subtype']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo ($text['description-subtype'] ?? '')."\n"; echo "
\n"; echo " ".$text['label-value']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-value']."\n"; echo "
".$text['label-groups'].""; if (is_array($function_groups) && @sizeof($function_groups) != 0) { echo "\n"; foreach ($function_groups as $field) { if (!empty($field['group_name'])) { echo "\n"; echo " \n"; if (permission_exists('group_member_delete') || if_group("superadmin")) { echo " "; } echo "\n"; } } echo "
"; echo $field['group_name'].(($field['group_domain_uuid'] != '') ? "@".$_SESSION['domains'][$field['group_domain_uuid']]['domain_name'] : null); echo " "; echo "".$v_link_label_delete.""; echo "
\n"; echo "
\n"; } if (is_array($groups) && @sizeof($groups) != 0) { echo ""; echo button::create(['type'=>'submit','label'=>$text['button-add'],'icon'=>$_SESSION['theme']['button_icon_add'],'collapse'=>'never']); } echo "
\n"; echo " ".$text['label-enabled']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-enabled']."\n"; echo "
\n"; echo " ".$text['label-description']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-description']."\n"; echo "
\n"; echo " \n"; if ($action == "update") { echo " \n"; } echo " \n"; echo "
"; echo "
\n"; echo "
"; echo "

"; //include the footer require_once "resources/footer.php"; ?>