Portions created by the Initial Developer are Copyright (C) 2008-2020 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; require_once "resources/paging.php"; //check permissions if (permission_exists('module_view')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //get posted data if (is_array($_POST['modules'])) { $action = $_POST['action']; $search = $_POST['search']; $modules = $_POST['modules']; } //process the http post data by action if ($action != '' && is_array($modules) && @sizeof($modules) != 0) { switch ($action) { case 'start': $obj = new modules; $obj->start($modules); break; case 'stop': $obj = new modules; $obj->stop($modules); break; case 'toggle': if (permission_exists('module_edit')) { $obj = new modules; $obj->toggle($modules); } break; case 'delete': if (permission_exists('module_delete')) { $obj = new modules; $obj->delete($modules); } break; } header('Location: modules.php'.($search != '' ? '?search='.urlencode($search) : null)); exit; } //connect to event socket $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); //check connection status $esl_alive = false; if ($fp) { $esl_alive = true; fclose($fp); } //warn if switch not running if (!$fp) { message::add($text['error-event-socket'], 'negative', 5000); } //use the module class to get the list of modules from the db and add any missing modules $module = new modules; $module->db = $db; $module->dir = $_SESSION['switch']['mod']['dir']; $module->get_modules(); $modules = $module->modules; $module_count = count($modules); $module->synch(); $module->xml(); $msg = $module->msg; //show the msg if ($msg) { message::add($msg, 'negative', 5000); } //create token $object = new token; $token = $object->create($_SERVER['PHP_SELF']); //get includes and the title $document['title'] = $text['title-modules']; require_once "resources/header.php"; //show the content echo "
\n"; echo "
".$text['header-modules']." (".$module_count.")
\n"; echo "
\n"; if (permission_exists('module_edit') && $modules && $fp) { echo button::create(['type'=>'button','label'=>$text['button-stop'],'icon'=>$_SESSION['theme']['button_icon_stop'],'onclick'=>"modal_open('modal-stop','btn_stop');"]); echo button::create(['type'=>'button','label'=>$text['button-start'],'icon'=>$_SESSION['theme']['button_icon_start'],'onclick'=>"modal_open('modal-start','btn_start');"]); } echo button::create(['type'=>'button','label'=>$text['button-refresh'],'icon'=>$_SESSION['theme']['button_icon_refresh'],'style'=>'margin-right: 15px;','link'=>'modules.php']); if (permission_exists('module_add')) { echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$_SESSION['theme']['button_icon_add'],'id'=>'btn_add','link'=>'module_edit.php']); } if (permission_exists('module_edit') && $modules) { echo button::create(['type'=>'button','label'=>$text['button-toggle'],'icon'=>$_SESSION['theme']['button_icon_toggle'],'id'=>'btn_toggle','name'=>'btn_toggle','style'=>'display: none;','onclick'=>"modal_open('modal-toggle','btn_toggle');"]); } if (permission_exists('module_delete') && $modules) { echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none;','onclick'=>"modal_open('modal-delete','btn_delete');"]); } echo "
\n"; echo "
\n"; echo "
\n"; if (permission_exists('module_edit') && $modules && $fp) { echo modal::create(['id'=>'modal-stop','type'=>'general','message'=>$text['confirm-stop_modules'],'actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_stop','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('stop'); list_form_submit('form_list');"])]); echo modal::create(['id'=>'modal-start','type'=>'general','message'=>$text['confirm-start_modules'],'actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_start','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('start'); list_form_submit('form_list');"])]); } if (permission_exists('module_edit') && $modules) { echo modal::create(['id'=>'modal-toggle','type'=>'toggle','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_toggle','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('toggle'); list_form_submit('form_list');"])]); } if (permission_exists('module_delete') && $modules) { echo modal::create(['id'=>'modal-delete','type'=>'delete','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_delete','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('delete'); list_form_submit('form_list');"])]); } echo $text['description-modules']."\n"; echo "

\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; function write_header($modifier) { global $fp, $text, $modules; $modifier = str_replace('/', '', $modifier); $modifier = str_replace(' ', ' ', $modifier); $modifier = str_replace(' ', '_', $modifier); $modifier = strtolower(trim($modifier)); echo "\n"; echo "\n"; if (permission_exists('module_edit') || permission_exists('module_delete')) { echo " \n"; } echo "\n"; echo "\n"; if ($fp) { echo "\n"; } echo "\n"; echo "\n"; if (permission_exists('module_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { echo "\n"; } echo "\n"; } if (is_array($modules) && @sizeof($modules) != 0) { $previous_category = ''; foreach ($modules as $x => $row) { //write category and column headings if ($previous_category != $row["module_category"]) { echo "\n"; echo "\n"; echo "\n"; write_header($row["module_category"]); } if (permission_exists('module_edit')) { $list_row_url = "module_edit.php?id=".urlencode($row['module_uuid']); } echo "\n"; if (permission_exists('module_edit') || permission_exists('module_delete')) { $modifier = strtolower(trim($row["module_category"])); $modifier = str_replace('/', '', $modifier); $modifier = str_replace(' ', ' ', $modifier); $modifier = str_replace(' ', '_', $modifier); echo " \n"; } echo " \n"; if ($fp) { if ($module->active($row["module_name"])) { echo " \n"; if (permission_exists('module_edit')) { echo " \n"; } } else { echo " \n"; if (permission_exists('module_edit')) { echo " \n"; } } } else{ echo " \n"; } if (permission_exists('module_edit')) { echo " \n"; echo " \n"; if (permission_exists('module_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { echo " \n"; } echo "\n"; $previous_category = $row["module_category"]; $x++; } } unset($modules); echo "
\n"; echo " \n"; echo " ".$text['label-label']."".$text['label-status']."".$text['label-action']."".$text['label-enabled']."".$text['label-description']." 
\n"; echo " \n"; echo " \n"; echo " "; if (permission_exists('module_edit')) { echo "".escape($row['module_label']).""; } else { echo escape($row['module_label']); } echo " ".$text['label-running']."\n"; echo $row['module_enabled'] == 'true' ? "".$text['label-stopped']."" : $text['label-stopped']." ".escape($notice); echo " ".$text['label-unknown'].""; echo $text['label-'.$row['module_enabled']]; } echo " ".escape($row["module_description"])." "; echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]); echo "
\n"; echo "
\n"; echo "\n"; echo "
\n"; //include the footer require_once "resources/footer.php"; ?>