Refactored, no more redirects. Improved error messaging system
This commit is contained in:
94
location.php
94
location.php
@@ -46,6 +46,12 @@ function checkchildren($locations, $level) {
|
||||
}
|
||||
}
|
||||
|
||||
// ========== ADDITIONAL ACTION DEFINITIONS ===================================
|
||||
|
||||
define ('ACT_SUBNET_EDIT', 100);
|
||||
define ('ACT_SUBNET_ADD', 101);
|
||||
define ('ACT_SUBNET_DEL', 102);
|
||||
|
||||
// ========== ACTIONS START ===================================================
|
||||
switch ($submit = form_get_action()) {
|
||||
|
||||
@@ -55,6 +61,17 @@ switch ($submit = form_get_action()) {
|
||||
case 'view': $action = ACT_VIEW; break;
|
||||
case 'edit': $action = ACT_EDIT; break;
|
||||
case 'del': $action = ACT_DELETE; break;
|
||||
case 'link': $action = ACT_SUBNET_EDIT; break;
|
||||
|
||||
case 'exec-link':
|
||||
if ($_POST['action'] == 'locationsubnetadd') {
|
||||
$action = ACT_SUBNET_ADD;
|
||||
} elseif ($_POST['action'] == 'locationsubnetdel') {
|
||||
$action = ACT_SUBNET_DEL;
|
||||
} else {
|
||||
$g_warning->Add('invalid action!'. $_POST['action']);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'insert':
|
||||
$name = sanitize($_POST['location_name']);
|
||||
@@ -84,6 +101,22 @@ switch ($submit = form_get_action()) {
|
||||
$action = ACT_VIEW;
|
||||
break;
|
||||
|
||||
case 'subnetlink':
|
||||
$subnet_id = sanitize($_POST['subnet_id']);
|
||||
$sql = "INSERT INTO subnetlocation (location_id, subnet_id) VALUE (?, ?)";
|
||||
$sth = $dbh->prepare($sql);
|
||||
$sth->execute([$id, $subnet_id]);
|
||||
$action = ACT_VIEW;
|
||||
break;
|
||||
|
||||
case 'subnetunlink':
|
||||
$subnet_id = sanitize($_POST['subnet_id']);
|
||||
$sth = $dbh->prepare("DELETE FROM subnetlocation WHERE location_id=? AND subnet_id=?");
|
||||
$sth->execute([$id, $subnet_id]);
|
||||
$g_message->Add('Link removed');
|
||||
$action = ACT_VIEW;
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
$sth = $dbh->prepare("DELETE FROM location WHERE location_id=?");
|
||||
$sth->execute([$id]);
|
||||
@@ -118,7 +151,7 @@ function build_tree($parent_id, $level) {
|
||||
unset($location['parent_id']);
|
||||
$location['children'] = build_tree($location['id'], $level+1);
|
||||
$location['level'] = $level;
|
||||
$location['href'] = 'locationview.php?location_id=' . $location['id'];
|
||||
$location['href'] = 'location.php?f=view&id=' . $location['id'];
|
||||
$children[] = $location;
|
||||
}
|
||||
}
|
||||
@@ -166,7 +199,7 @@ elseif ($action == ACT_VIEW):
|
||||
// base location
|
||||
$sql = "SELECT location_id AS id, location_name AS name,
|
||||
location_parent AS parent_id, location_info AS info,
|
||||
CONCAT('locationview.php?location_id=', location_id) AS url
|
||||
CONCAT('location.php?f=view&id=', location_id) AS url
|
||||
FROM location
|
||||
WHERE location_id=?";
|
||||
$sth = $dbh->prepare($sql);
|
||||
@@ -178,7 +211,7 @@ $smarty->assign("location", $location);
|
||||
$crumbs[] = $location;
|
||||
$sql = "SELECT location_id AS id, location_name AS name,
|
||||
location_parent AS parent_id,
|
||||
CONCAT('locationview.php?location_id=', location_id) AS url
|
||||
CONCAT('location.php?f=view&id=', location_id) AS url
|
||||
FROM location
|
||||
WHERE location_id=?";
|
||||
$sth = $dbh->prepare($sql);
|
||||
@@ -243,7 +276,7 @@ $location_counter = count($locations);
|
||||
|
||||
$smarty->assign("location_counter", $location_counter);
|
||||
|
||||
// any loactions?
|
||||
// any locations?
|
||||
if ($location_counter>0) {
|
||||
foreach($locations AS $location) {
|
||||
$location_names[$location['location_id']] = $location['location_name'];
|
||||
@@ -259,6 +292,59 @@ $smarty->assign("location_parent", $location_parent);
|
||||
|
||||
$smarty->display("locationedit.tpl");
|
||||
|
||||
elseif ($action == ACT_SUBNET_EDIT):
|
||||
// ========== VARIANT: location to subnet =====================================
|
||||
|
||||
$sql = "SELECT location_id AS id, location_name AS name
|
||||
FROM location
|
||||
WHERE location_id=?";
|
||||
$sth = $dbh->prepare($sql);
|
||||
$sth->execute([$id]);
|
||||
$smarty->assign("location", $sth->fetch(PDO::FETCH_OBJ));
|
||||
|
||||
$smarty->display("locationsubnetedit.tpl");
|
||||
|
||||
elseif ($action == ACT_SUBNET_ADD):
|
||||
// ========== VARIANT: add location to subnet =================================
|
||||
|
||||
$sql = "SELECT location_id AS id, location_name AS name
|
||||
FROM location
|
||||
WHERE location_id=?";
|
||||
$sth = $dbh->prepare($sql);
|
||||
$sth->execute([$id]);
|
||||
$smarty->assign("location", $sth->fetch(PDO::FETCH_OBJ));
|
||||
|
||||
// TODO Filter für bereits zugeordnete Subnetze
|
||||
$smarty->assign("subnet_options", db_get_options_subnet());
|
||||
|
||||
$smarty->display("locationsubnetadd.tpl");
|
||||
|
||||
elseif ($action == ACT_SUBNET_DEL):
|
||||
// ========== VARIANT: del location to subnet =================================
|
||||
|
||||
// location
|
||||
$sql = "SELECT location_id AS id, location_name AS name
|
||||
FROM location
|
||||
WHERE location_id=?";
|
||||
$sth = $dbh->prepare($sql);
|
||||
$sth->execute([$id]);
|
||||
$smarty->assign("location", $sth->fetch(PDO::FETCH_OBJ));
|
||||
|
||||
// subnet
|
||||
$sql = "SELECT s.subnet_id, CONCAT_WS('/', s.subnet_address, s.subnet_mask)
|
||||
FROM subnetlocation AS l LEFT JOIN subnet AS s USING (subnet_id)
|
||||
WHERE l.location_id=?
|
||||
ORDER BY INET_ATON(s.subnet_address)";
|
||||
$sth = $dbh->prepare($sql);
|
||||
$sth->execute([$id]);
|
||||
$options = array();
|
||||
foreach ($sth->fetchAll(PDO::FETCH_NUM) as $rec) {
|
||||
$options[$rec[0]] = $rec[1];
|
||||
}
|
||||
$smarty->assign("subnet_options", $options);
|
||||
|
||||
$smarty->display("locationsubnetdel.tpl");
|
||||
|
||||
elseif ($action == ACT_DELETE):
|
||||
// ========== VARIANT: delete record ==========================================
|
||||
|
||||
|
||||
Reference in New Issue
Block a user