From a30889f7c121d73c65daaa982514cfa62adb28b0 Mon Sep 17 00:00:00 2001 From: akuker Date: Sat, 1 Aug 2020 20:53:11 -0500 Subject: [PATCH] Moved several php functions to a library that can be reused. Updated to use css for styles --- src/php/lib_rascsi.php | 144 ++++++++++++++++++++++++++++++ src/php/rascsi.php | 181 ++++---------------------------------- src/php/rascsi_styles.css | 28 ++++++ 3 files changed, 191 insertions(+), 162 deletions(-) create mode 100644 src/php/lib_rascsi.php create mode 100644 src/php/rascsi_styles.css diff --git a/src/php/lib_rascsi.php b/src/php/lib_rascsi.php new file mode 100644 index 00000000..c7c27822 --- /dev/null +++ b/src/php/lib_rascsi.php @@ -0,0 +1,144 @@ + + + + + + + +'; + echo ' '; + echo '

RaSCSI - 68kmla Edition

'; + echo ' '; + echo '
'; + echo ' '; + echo '
'; + echo ' '; + echo ' '; + echo ' '; + echo 'Debug timestamp: '; + $t=time(); + echo($t . "
"); + echo(exec('whoami')); +} + +function html_generate_scsi_id_select_list(){ + echo ''; +} + +function html_generate_scsi_type_select_list(){ + echo ''; +} +function current_rascsi_config() { + $raw_output = shell_exec("/usr/local/bin/rasctl -l"); + $rasctl_lines = explode(PHP_EOL, $raw_output); + + echo '
'; + echo '

Current RaSCSI Configuration

'; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + echo ' '; + + $scsi_ids = array(); + + foreach ($rasctl_lines as $current_line) + { + if(strlen($current_line) === 0){ + continue; + } + if(strpos($current_line, '+----') === 0){ + continue; + + } + if(strpos($current_line, '| ID | UN') === 0){ + continue; + } + $segments = explode("|", $current_line); + + $id_config = array(); + $id_config['id'] = trim($segments[1]); + $id_config['type'] = trim($segments[3]); + $id_config['file'] = trim($segments[4]); + + $scsi_ids[$id_config['id']] = $id_config; + } + + + foreach (range(0,7) as $id){ + echo ' '; + echo ' '; + echo ' '; + if(isset($scsi_ids[$id])) + { + echo ' '; + echo ' '; + echo ' '; + } + else + { + echo ' '; + echo ' '; + echo ' '; + + } + echo ' '; + echo ' '; + } + echo '
SCSI IDTypeImage FileActions
'.$id.''.$scsi_ids[$id]['type'].''.$scsi_ids[$id]['file'].''; + echo ' '; + echo ' '; + echo ' --'; + echo ' '; + echo '
'; +} +function get_all_files() +{ + $raw_ls_output = shell_exec('ls --time-style="+\"%Y-%m-%d %H:%M:%S\"" -alh --quoting-style=c /home/pi/images/'); + return $raw_ls_output; +} + +function mod_date_from_ls($value){ + $ls_pieces = explode("\"", $value); + if(count($ls_pieces)<1){ + return ""; + } + return $ls_pieces[1]; +} +function file_name_from_ls($value){ + $ls_pieces = explode("\"", $value); + if(count($ls_pieces) < 4){ + return ""; + } + return $ls_pieces[3]; +} +function file_size_from_ls($value){ + $ls_pieces = explode("\"", $value); + $file_props = preg_split("/\s+/", $ls_pieces[0]); + return $file_props[4]; +} +function file_category_from_file_name($value){ + if(strpos($value,".iso") > 0){ + return "CD-ROM Image"; + } + if(strpos($value,".hda") > 0){ + return "Hard Disk Image"; + } + return "Unknown type: " . $value; +} +?> diff --git a/src/php/rascsi.php b/src/php/rascsi.php index a762232e..452d1b87 100644 --- a/src/php/rascsi.php +++ b/src/php/rascsi.php @@ -8,7 +8,7 @@ - + - - - - - - - - - - - -

RaSCSI - 68kmla Edition

-
- -
-
"); + + include 'lib_rascsi.php'; + html_generate_header(); + + // parameter check if(isset($_GET['restart_rascsi_service'])){ // Restart the RaSCSI service - echo 'exec("sudo systemctl restart rascsi.service");'; + exec("sudo /bin/systemctl restart rascsi.service"); } else if(isset($_GET['stop_rascsi_service'])){ // Stop the RaSCSI Service - echo 'exec("sudo systemctl stop rascsi.service");'; + exec("sudo /bin/systemctl stop rascsi.service"); } else if(isset($_GET['reboot_rasbperry_pi'])){ // Reboot the Raspberry Pi - echo 'exec("sudo shutdown -r -t 0");'; + exec("sudo /sbin/reboot"); } else if(isset($_GET['shutdown_raspberry_pi'])){ - // Shut down the Raspberry Pi - echo 'exec("sudo shutdown -s -t 0");'; + // Shut down the Raspberry Pi + echo "

For now, shutdown is disabled....

"; + echo 'exec("sudo /sbin/shutdown -s -t 0");'; } current_rascsi_config(); - - - -function current_rascsi_config() { - $raw_output = shell_exec("/usr/local/bin/rasctl -l"); - $rasctl_lines = explode(PHP_EOL, $raw_output); - - echo '
'; - echo '

Current RaSCSI Configuration

'; - echo ' '; - echo ' '; - echo ' '; - echo ' '; - echo ' '; - echo ' '; - echo ' '; - - $scsi_ids = array(); - - foreach ($rasctl_lines as $current_line) - { - if(strlen($current_line) === 0){ - continue; - } - if(strpos($current_line, '+----') === 0){ - continue; - - } - if(strpos($current_line, '| ID | UN') === 0){ - continue; - } - $segments = explode("|", $current_line); - - $id_config = array(); - $id_config['id'] = trim($segments[1]); - $id_config['type'] = trim($segments[3]); - $id_config['file'] = trim($segments[4]); - - $scsi_ids[$id_config['id']] = $id_config; - } - - - foreach (range(0,7) as $id){ - echo ' '; - echo ' '; - echo ' '; - if(isset($scsi_ids[$id])) - { - echo ' '; - echo ' '; - echo ' '; - } - else - { - echo ' '; - echo ' '; - echo ' '; - - } - echo ' '; - echo ' '; - } - echo '
SCSI IDTypeImage FileActions
'.$id.''.$scsi_ids[$id]['type'].''.$scsi_ids[$id]['file'].''; - echo ' '; - echo ' '; - echo ' --'; - echo ' '; - echo '
'; -} -function get_all_files() -{ - $raw_ls_output = shell_exec('ls --time-style="+\"%Y-%m-%d %H:%M:%S\"" -alh --quoting-style=c /home/pi/images/'); - return $raw_ls_output; -} - ?>
@@ -184,26 +75,15 @@ function get_all_files() SCSI ID: - + Device: - + File: @@ -211,7 +91,7 @@ function get_all_files() '.$file_name.''; } - -function mod_date_from_ls($value){ - $ls_pieces = explode("\"", $value); - return $ls_pieces[1]; -} -function file_name_from_ls($value){ - $ls_pieces = explode("\"", $value); - return $ls_pieces[3]; -} -function file_size_from_ls($value){ - $ls_pieces = explode("\"", $value); - $file_props = preg_split("/\s+/", $ls_pieces[0]); - return $file_props[4]; -} -function file_category_from_file_name($value){ - if(strpos($value,".iso") > 0){ - return "CD-ROM Image"; - } - if(strpos($value,".hda") > 0){ - return "Hard Disk Image"; - } - return "Unknown type: " . $value; -} ?> diff --git a/src/php/rascsi_styles.css b/src/php/rascsi_styles.css new file mode 100644 index 00000000..c98b6044 --- /dev/null +++ b/src/php/rascsi_styles.css @@ -0,0 +1,28 @@ +body { + color: black; + background-color: white; + font-family: Arial, Helvetica, sans-serif; + text-decoration:none; +} + +h1 { + color: white; + font-size:20px; + background-color:black; +} + +h2 { + color: black; + font-size:16px; + margin: 0px; +} + +a { + text-decoration: none; +} + +table, tr, td { + border: 1px solid black; + border-collapse:collapse; + margin: none; +}