Skip to content
This repository was archived by the owner on Apr 20, 2020. It is now read-only.

Commit f35160f

Browse files
author
Alexander Hank
committed
improve ajax menu and error handling
1 parent 87122fa commit f35160f

File tree

159 files changed

+273
-194
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

159 files changed

+273
-194
lines changed

LICENSE

100644100755
File mode changed.

README.md

100644100755
File mode changed.

app/.htaccess

Lines changed: 0 additions & 1 deletion
This file was deleted.

app/config.db

20 KB
Binary file not shown.

app/controllers/auth.php

100644100755
File mode changed.

app/controllers/config.php

100644100755
Lines changed: 17 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -15,44 +15,24 @@ public function user() {
1515
$this->view('config/user');
1616
}
1717

18-
/**
19-
*
20-
* Displays the lvm config menu
21-
*
22-
* @return void
23-
*
24-
*/
25-
public function lvm() {
26-
$result = $this->database->query('select option, value, description from config where editable_via_gui=1 and category=2');
27-
$data = $this->std->fetchdata($result);
28-
$this->view('config/configtable', $data);
29-
}
30-
31-
/**
32-
*
33-
* Displays the ietd config menu
34-
*
35-
* @return void
36-
*
37-
*/
38-
public function iet() {
39-
$result = $this->database->query('select option, value, description from config where editable_via_gui=1 and category=1');
40-
$data = $this->std->fetchdata($result);
41-
$this->view('config/configtable', $data);
42-
}
43-
44-
/**
45-
*
46-
* Displays other config options
47-
*
48-
* @return void
49-
*
50-
*/
51-
public function misc() {
52-
$result = $this->database->query('select option, value, description from config where editable_via_gui=1 and category=3');
53-
$data = $this->std->fetchdata($result);
54-
$this->view('config/configtable', $data);
18+
public function show($param) {
19+
if ($param == 'lvm') {
20+
$data = $this->database->get_config_by_category('lvm');
21+
} else if ($param == 'iet') {
22+
$data = $this->database->get_config_by_category('iet');
23+
} else if ($param == 'misc') {
24+
$data = $this->database->get_config_by_category('misc');
25+
} else if ($param == 'bin') {
26+
$data = $this->database->get_config_by_category('bin');
27+
} else if ($param == 'logging') {
28+
$data = $this->database->get_config_by_category('logging');
29+
} else {
30+
$this->view('message', array('message' => 'Invalid url', 'type' => 'warning'));
31+
}
5532

33+
if (isset($data) && !empty($data) && $data !== false) {
34+
$this->view('config/configtable', $data);
35+
}
5636
}
5737

5838
/**

app/controllers/connection.php

100644100755
File mode changed.

app/controllers/dashboard.php

100644100755
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ public function index() {
1616
*
1717
* Get the up2date phpietadmin version from github
1818
*
19+
* FROM GITHUB, not the local file
20+
*
21+
* ToDo: Fix this
22+
*
1923
* @return void
2024
*
2125
*/

app/controllers/ietusers.php

100644100755
File mode changed.

app/controllers/log.php

100644100755
File mode changed.

app/controllers/lvm.php

100644100755
File mode changed.

app/controllers/objects.php

100644100755
File mode changed.

app/controllers/overview.php

100644100755
File mode changed.

app/controllers/permission.php

100644100755
File mode changed.

app/controllers/service.php

100644100755
File mode changed.

app/controllers/targets.php

100644100755
File mode changed.

app/core/App.php

100644100755
Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,48 @@ public function __construct() {
2525
$this->controller->check_loggedin($this->controllername, $this->method);
2626
}
2727

28+
// If request is no ajax, display header, menu and footer
29+
if (!$this->controller->std->IsXHttpRequest() && $this->controllername !== 'auth') {
30+
$this->controller->view('header', $this->controller->std->get_dashboard_data());
31+
$this->controller->view('menu');
32+
}
33+
34+
$continue = true;
2835
if(isset($url[1])) {
2936
if(method_exists($this->controller, $url[1])) {
3037
$this->method = $url[1];
3138
unset($url[1]);
3239
} else {
33-
echo '<h1>Method ' . htmlspecialchars($url[1]) . ' doesn\'t exist!</h1>';
34-
die();
40+
if ($this->controller->std->IsXHttpRequest() === true) {
41+
http_response_code(404);
42+
echo 'Method ' . htmlspecialchars($url[1]) . ' doesn\'t exist!';
43+
} else {
44+
echo "<div id='workspace'><div class='container'><h1 align='center'>Method " . htmlspecialchars($url[1]) . ' doesn\'t exist!</h1></div></div>';
45+
}
46+
$continue = false;
47+
}
48+
} else {
49+
// if $url[1] is not set, the browser will most likely call the index function
50+
if(method_exists($this->controller, 'index')) {
51+
$this->method = 'index';
52+
} else {
53+
if ($this->controller->std->IsXHttpRequest() === true) {
54+
http_response_code(404);
55+
echo 'Method ' . htmlspecialchars($this->method) . ' doesn\'t exist!';
56+
} else {
57+
echo "<div id='workspace'><div class='container'><h1 align='center'>Method " . htmlspecialchars($this->method) . ' doesn\'t exist!</h1></div></div>';
58+
}
59+
$continue = false;
3560
}
3661
}
3762

3863
$this->params = $url ? array_values($url) : [];
3964

40-
// If request is no ajax, display header, menu and footer
41-
if (!$this->controller->std->IsXHttpRequest() && $this->controllername !== 'auth') {
42-
$this->controller->view('header', $this->controller->std->get_dashboard_data());
43-
$this->controller->view('menu');
65+
// only load the main application if no error occured
66+
if ($continue === true) {
67+
call_user_func_array([$this->controller, $this->method], $this->params);
4468
}
4569

46-
call_user_func_array([$this->controller, $this->method], $this->params);
47-
4870
if (!$this->controller->std->IsXHttpRequest() && $this->controllername !== 'auth') {
4971
//$this->controller->view('footer', $this->controller->std->get_service_status('iscsitarget'));
5072
$this->controller->view('footer');

app/core/Controller.php

100644100755
File mode changed.

app/init.php

100644100755
File mode changed.

app/models/Database.php

100644100755
Lines changed: 68 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
define('dbpath', '/usr/share/phpietadmin/app/config.db');
33
use Sqlite3;
44

5-
// use new values in config table for error handling and better usage
6-
75
class Database extends \SQLite3
86
{
97
/**
@@ -22,14 +20,81 @@ public function __construct()
2220
}
2321
}
2422

23+
/**
24+
*
25+
* Fetch value for config option
26+
* If the value is a "super user binary" sudo will be prepended
27+
*
28+
* @param string $option option to get the value from
29+
* @return array|bool
30+
*
31+
*/
32+
public function get_config($option) {
33+
$query = $this->prepare('SELECT phpietadmin_config.option, phpietadmin_config.value, (SELECT type FROM phpietadmin_config_type WHERE phpietadmin_config_type.config_type_id = phpietadmin_config.config_type_id) as type, (SELECT category FROM phpietadmin_config_category WHERE phpietadmin_config_category.config_category_id = phpietadmin_config.config_category_id) as category, phpietadmin_config.description, phpietadmin_config.field, phpietadmin_config.editable_via_gui, phpietadmin_config.optioningui FROM phpietadmin_config WHERE phpietadmin_config.option = :option');
34+
$query->bindValue('option', $option, SQLITE3_TEXT);
35+
$query = $query->execute();
36+
$query = $query->fetchArray(SQLITE3_ASSOC);
37+
38+
if (empty($query)) {
39+
return false;
40+
} else {
41+
// if type is subin, we prepend sudo
42+
if ($query['type'] == 'subin') {
43+
$sudo = $this->get_config('sudo');
44+
$query['value'] = $sudo['value'] . ' ' . $query['value'];
45+
}
46+
return $query;
47+
}
48+
}
49+
50+
public function get_config_by_category($category) {
51+
$query = $this->prepare('SELECT config_category_id from phpietadmin_config_category WHERE category = :category');
52+
$query->bindValue('category', $category, SQLITE3_TEXT);
53+
$query = $query->execute();
54+
$category = $query->fetchArray(SQLITE3_ASSOC);
55+
56+
if (empty($category)) {
57+
return false;
58+
} else {
59+
$sql = <<< EOT
60+
SELECT phpietadmin_config.option,
61+
phpietadmin_config.value,
62+
(SELECT type FROM phpietadmin_config_type WHERE phpietadmin_config_type.config_type_id = phpietadmin_config.config_type_id) as type,
63+
(SELECT category FROM phpietadmin_config_category WHERE phpietadmin_config_category.config_category_id = phpietadmin_config.config_category_id) as category,
64+
phpietadmin_config.description,
65+
phpietadmin_config.field,
66+
phpietadmin_config.editable_via_gui,
67+
phpietadmin_config.optioningui FROM
68+
phpietadmin_config WHERE
69+
phpietadmin_config.config_category_id = :id
70+
EOT;
71+
72+
$query = $this->prepare($sql);
73+
$query->bindValue('id', $category['config_category_id'], SQLITE3_INTEGER);
74+
$query = $query->execute();
75+
76+
while ($result = $query->fetchArray(SQLITE3_ASSOC)) {
77+
$data[] = $result;
78+
}
79+
80+
if (empty($data)) {
81+
return false;
82+
} else {
83+
return $data;
84+
}
85+
}
86+
87+
}
88+
89+
// Rework everything down here
90+
2591
/**
2692
*
2793
* Adds a session to the database
2894
*
2995
* @return int
3096
*
3197
*/
32-
// really necessary to pass all these parameters?
3398
public function add_session($timestamp)
3499
{
35100
$query = $this->prepare('INSERT INTO phpietadmin_session (session_id, username_id, login_time, source_ip, browser_agent) VALUES (:session_id, (SELECT id from phpietadmin_phpietadmin_user where username=:username), :login_time, :source_ip, :browser_agent)');
@@ -112,33 +177,6 @@ public function get_sessions_by_username($username)
112177
}
113178
}
114179

115-
/**
116-
*
117-
* Fetch value for config option
118-
* If the value is a "super user binary" sudo will be prepended
119-
*
120-
* @param string $option option to get the value from
121-
* @return array|bool
122-
*
123-
*/
124-
public function get_config($option) {
125-
$query = $this->prepare('SELECT phpietadmin_config.option, phpietadmin_config.value, (SELECT type FROM phpietadmin_config_type WHERE phpietadmin_config_type.config_type_id = phpietadmin_config.config_type_id) as type, (SELECT category FROM phpietadmin_config_category WHERE phpietadmin_config_category.config_category_id = phpietadmin_config.config_category_id) as category, phpietadmin_config.description, phpietadmin_config.field, phpietadmin_config.editable_via_gui, phpietadmin_config.optioningui FROM phpietadmin_config WHERE phpietadmin_config.option = :option');
126-
$query->bindValue('option', $option, SQLITE3_TEXT);
127-
$query = $query->execute();
128-
$query = $query->fetchArray(SQLITE3_ASSOC);
129-
130-
if (empty($query)) {
131-
return false;
132-
} else {
133-
// if type is subin, we prepend sudo
134-
if ($query['type'] == 'subin') {
135-
$sudo = $this->get_config('sudo');
136-
$query['value'] = $sudo['value'] . ' ' . $query['value'];
137-
}
138-
return $query;
139-
}
140-
}
141-
142180
/**
143181
*
144182
* Fetch the ispath value from the database

app/models/Disks.php

100644100755
File mode changed.

app/models/Ietuser.php

100644100755
File mode changed.

app/models/Session.php

100644100755
File mode changed.

app/models/Settings.php

100644100755
File mode changed.

app/models/Std.php

100644100755
File mode changed.

app/models/autoloader.php

100644100755
File mode changed.

app/models/doc/ietuser.php

100644100755
File mode changed.

app/models/doc/logging/example_logging.php

100644100755
File mode changed.

app/models/doc/lvm/lv/add_lv.php

100644100755
File mode changed.

app/models/doc/lvm/lv/extend_lv.php

100644100755
File mode changed.

app/models/doc/lvm/lv/get_lv.php

100644100755
File mode changed.

app/models/doc/lvm/lv/get_snapshot.php

100644100755
File mode changed.

app/models/doc/lvm/lv/merge_snapshot.php

100644100755
File mode changed.

app/models/doc/lvm/lv/reduce_lv.php

100644100755
File mode changed.

app/models/doc/lvm/lv/remove_lv.php

100644100755
File mode changed.

app/models/doc/lvm/lv/rename_lv.php

100644100755
File mode changed.

app/models/doc/lvm/lv/snapshot_lv.php

100644100755
File mode changed.

app/models/doc/lvm/pv/get_pv.php

100644100755
File mode changed.

app/models/doc/lvm/vg/get_all_lv_from_vg.php

100644100755
File mode changed.

app/models/doc/lvm/vg/get_vg.php

100644100755
File mode changed.

app/models/doc/target/add_lun.php

100644100755
File mode changed.

app/models/doc/target/add_user.php

100644100755
File mode changed.

app/models/doc/target/delete_lun.php

100644100755
File mode changed.

app/models/doc/target/return_all_used_lun.php

100644100755
File mode changed.

app/models/doc/target/return_target_data.php

100644100755
File mode changed.

app/models/doc/target/return_target_property.php

100644100755
File mode changed.

app/models/ietuser.php

100644100755
File mode changed.

app/models/logging/Logging.php

100644100755
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ public function __construct() {
2323

2424
// log file paths
2525
$this->log_dir_path = $this->database->get_config('log_base')['value'];
26-
$this->action_log_file_path = $this->log_dir_path . ' ' . $this->database->get_config('action_log')['value'];
27-
$this->debug_log_file_path = $this->log_dir_path . ' ' . $this->database->get_config('debug_log')['value'];
28-
$this->access_log_file_path = $this->log_dir_path . ' ' . $this->database->get_config('access_log')['value'];
26+
$this->action_log_file_path = $this->log_dir_path . '/' . $this->database->get_config('action_log')['value'];
27+
$this->debug_log_file_path = $this->log_dir_path . '/' . $this->database->get_config('debug_log')['value'];
28+
$this->access_log_file_path = $this->log_dir_path . '/' . $this->database->get_config('access_log')['value'];
2929

3030
// enabled logging options
3131
$value = $this->database->get_config('debug_log_enabled')['value'];

app/models/lvm/logic/Exec.php

100644100755
File mode changed.

app/models/lvm/logic/Parser.php

100644100755
File mode changed.

app/models/lvm/lv/Logic.php

100644100755
File mode changed.

app/models/lvm/lv/Lv.php

100644100755
File mode changed.

app/models/lvm/pv/Pv.php

100644100755
File mode changed.

app/models/lvm/vg/Vg.php

100644100755
File mode changed.

app/models/old/Exec.php

100644100755
File mode changed.

app/models/old/IetSessions.php

100644100755
File mode changed.

app/models/old/IetVolumes.php

100644100755
File mode changed.

app/models/old/Ietaddtarget.php

100644100755
File mode changed.

app/models/old/Ietdelete.php

100644100755
File mode changed.

app/models/old/Ietpermissions.php

100644100755
File mode changed.

app/models/old/Lvmdisplay.php

100644100755
File mode changed.

app/models/old/Regex.php

100644100755
File mode changed.

app/models/old/Std.php

100644100755
File mode changed.

app/models/target/Exec.php

100644100755
File mode changed.

app/models/target/Logic.php

100644100755
File mode changed.

app/models/target/Parser.php

100644100755
File mode changed.

app/models/target/Target.php

100644100755
File mode changed.

app/notes.txt

100644100755
File mode changed.

app/views/breadcrumb.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<div class="container">
33
<ol class="breadcrumb">
44
<li class="active"><?php echo $data ?></li>

app/views/config/configtable.php

100644100755
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<div class="container">
33
<div class="panel panel-default">
44
<ol class='panel-heading breadcrumb'>
@@ -17,13 +17,13 @@
1717
<tbody>
1818
<?php foreach ($data as $value) { ?>
1919
<tr>
20-
<td><?php echo htmlspecialchars($value[0]); ?></td>
20+
<td><?php echo htmlspecialchars($value['optioningui']); ?></td>
2121
<td>
22-
<input size="80" type="text" name="fname" value="<?php echo htmlspecialchars($value[1]); ?>" disabled>
23-
<a href="#<?php echo htmlspecialchars($value[0]); ?>"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
22+
<input size="80" type="text" name="fname" value="<?php echo htmlspecialchars($value['value']); ?>" disabled>
23+
<a href="#<?php echo htmlspecialchars($value['optioningui']); ?>"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
2424
<span class="label label-success bestaetigung">Success</span>
2525
</td>
26-
<td><?php if (isset($value[2])) echo htmlspecialchars($value[2]) ?></td>
26+
<td><?php if (isset($value['description'])) echo htmlspecialchars($value['description']) ?></td>
2727
</tr>
2828
<?php } ?>
2929
</tbody>

app/views/config/user.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<div class="container">
33
<div class="panel panel-default">
44
<ol class='panel-heading breadcrumb'>

app/views/config/vg.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<div class="container">
33
<div class="row">
44
<div class="col-md-6">

app/views/dashboard.php

100644100755
Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<div class="container">
33
<div class='panel panel-default'>
44
<ol class='panel-heading breadcrumb'>
@@ -64,30 +64,14 @@
6464

6565
</table>
6666
</div>
67-
</div>
68-
<!--
69-
services mit start stop
70-
interfaces
71-
netzwerk usage
72-
CPU Cores
73-
HDD Usage
74-
Network Interfaces
7567

76-
Service status
77-
ietd
78-
cron
79-
ssh
80-
apache2
81-
rsyslog
82-
drbd
83-
corosync
84-
pacemaker-->
85-
<script>
86-
require(['common'],function() {
87-
require(['pages/dashboard'],function(methods) {
88-
methods.checkversion();
89-
}
90-
);
91-
});
92-
</script>
68+
<script>
69+
require(['common'],function() {
70+
require(['pages/dashboard'],function(methods) {
71+
methods.checkversion();
72+
}
73+
);
74+
});
75+
</script>
76+
</div>
9377
</div>

app/views/footer.php

100644100755
File mode changed.

app/views/header.php

100644100755
File mode changed.

app/views/ietvolumes.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<div class="container">
33
<div class="row top-buffer">
44
<div class='panel panel-default'>

app/views/log/view.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<div class="container">
33
<div class="table-responsive">
44
<table data-toggle="table" class = "table table-bordered table-striped">

app/views/login/first_signin.php

100644100755
File mode changed.

app/views/login/override.php

100644100755
File mode changed.

app/views/login/signin.php

100644100755
File mode changed.

app/views/lvm/add.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<!-- Inserted via ajax -->
33

44
<!-- Hidden fields to store some data -->

app/views/lvm/delete.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<div class = "container">
33
<div class="panel panel-default">
44
<ol class='panel-heading breadcrumb'>

app/views/lvm/extend.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<div id="leftDiv">
33
<br>
44
<form method="post">

app/views/lvm/vginput.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="workspacedirect">
1+
<div id="workspace">
22
<div class = "container">
33
<div class="panel panel-default">
44
<ol class='panel-heading breadcrumb'>

0 commit comments

Comments
 (0)