Portions created by the Initial Developer are Copyright (C) 2022-2024 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes files require_once dirname(__DIR__, 2) . "/resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('email_queue_add') || permission_exists('email_queue_edit')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //action add or update if (!empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) { $action = "update"; $email_queue_uuid = $_REQUEST["id"]; $id = $_REQUEST["id"]; } else { $action = "add"; } //get http post variables and set them to php variables if (!empty($_POST) && is_array($_POST)) { $email_date = $_POST["email_date"]; $email_from = $_POST["email_from"]; $email_to = $_POST["email_to"]; $email_subject = $_POST["email_subject"]; $email_body = $_POST["email_body"]; $email_status = $_POST["email_status"]; $email_retry_count = $_POST["email_retry_count"]; //$email_action_before = $_POST["email_action_before"]; $email_action_after = $_POST["email_action_after"]; $email_response = $_POST["email_response"]; } //process the user data and save it to the database if (count($_POST) > 0 && empty($_POST["persistformvar"])) { //validate the token $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); header('Location: email_queue.php'); exit; } //process the http post data by submitted action if (!empty($_POST['action']) && !empty($_POST['action'])) { //prepare the array(s) //send the array to the database class switch ($_POST['action']) { case 'copy': if (permission_exists('email_queue_add')) { $obj = new database; $obj->copy($array); } break; case 'delete': if (permission_exists('email_queue_delete')) { $obj = new database; $obj->delete($array); } break; case 'toggle': if (permission_exists('email_queue_update')) { $obj = new database; $obj->toggle($array); } break; } //redirect the user if (in_array($_POST['action'], array('copy', 'delete', 'toggle'))) { header('Location: email_queue_edit.php?id='.$id); exit; } } //check for all required data $msg = ''; //if (empty($email_date)) { $msg .= $text['message-required']." ".$text['label-email_date']."
\n"; } //if (empty($email_from)) { $msg .= $text['message-required']." ".$text['label-email_from']."
\n"; } //if (empty($email_to)) { $msg .= $text['message-required']." ".$text['label-email_to']."
\n"; } //if (empty($email_subject)) { $msg .= $text['message-required']." ".$text['label-email_subject']."
\n"; } //if (empty($email_body)) { $msg .= $text['message-required']." ".$text['label-email_body']."
\n"; } //if (empty($email_status)) { $msg .= $text['message-required']." ".$text['label-email_status']."
\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; } //parse email addresses to single string csv string if (isset($email_to) && substr_count($email_to, "\n") != 0) { $email_to_lines = explode("\n", $email_to); if (is_array($email_to_lines) && @sizeof($email_to_lines) != 0) { foreach ($email_to_lines as $email_to_line) { if (substr_count($email_to_line, ',') != 0) { $email_to_array = explode(',', $email_to_line); if (is_array($email_to_array) && @sizeof($email_to_array) != 0) { foreach ($email_to_array as $email_to_address) { if (valid_email(trim($email_to_address))) { $email_to_addresses[] = strtolower(trim($email_to_address)); } } } } else { if (valid_email(trim($email_to_line))) { $email_to_addresses[] = strtolower(trim($email_to_line)); } } } } } else { if (isset($email_to) && substr_count($email_to, ',') != 0) { $email_to_array = explode(',', $email_to); if (is_array($email_to_array) && @sizeof($email_to_array) != 0) { foreach ($email_to_array as $email_to_address) { if (valid_email(trim($email_to_address))) { $email_to_addresses[] = strtolower(trim($email_to_address)); } } } } } if (!empty($email_to_addresses) && is_array($email_to_addresses) && @sizeof($email_to_addresses) != 0) { $email_to = implode(',', $email_to_addresses); unset($email_to_array, $email_to_addresses); } //add the email_queue_uuid if (!is_uuid($_POST["email_queue_uuid"])) { $email_queue_uuid = uuid(); } //prepare the array $array['email_queue'][0]['email_queue_uuid'] = $email_queue_uuid; $array['email_queue'][0]['domain_uuid'] = $_SESSION['domain_uuid']; $array['email_queue'][0]['email_date'] = $email_date; $array['email_queue'][0]['email_from'] = $email_from; $array['email_queue'][0]['email_to'] = $email_to; $array['email_queue'][0]['email_subject'] = $email_subject; $array['email_queue'][0]['email_body'] = $email_body; $array['email_queue'][0]['email_status'] = $email_status; $array['email_queue'][0]['email_retry_count'] = $email_retry_count; //$array['email_queue'][0]['email_action_before'] = $email_action_before; $array['email_queue'][0]['email_action_after'] = $email_action_after; $array['email_queue'][0]['email_response'] = $email_response; //save the data $database = new database; $database->app_name = 'email queue'; $database->app_uuid = '5befdf60-a242-445f-91b3-2e9ee3e0ddf7'; $database->save($array); //redirect the user if (isset($action)) { if ($action == "add") { $_SESSION["message"] = $text['message-add']; } if ($action == "update") { $_SESSION["message"] = $text['message-update']; } //header('Location: email_queue.php'); header('Location: email_queue_edit.php?id='.urlencode($email_queue_uuid)); return; } } //pre-populate the form if (!empty($_GET) && is_array($_GET) && (empty($_POST["persistformvar"]) || $_POST["persistformvar"] != "true")) { $sql = "select * from v_email_queue "; $sql .= "where email_queue_uuid = :email_queue_uuid "; //$sql .= "and domain_uuid = :domain_uuid "; //$parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['email_queue_uuid'] = $email_queue_uuid; $database = new database; $row = $database->select($sql, $parameters, 'row'); if (is_array($row) && @sizeof($row) != 0) { $email_date = $row["email_date"]; $email_from = $row["email_from"]; $email_to = $row["email_to"]; $email_subject = $row["email_subject"]; $email_body = $row["email_body"]; $email_status = $row["email_status"]; $email_retry_count = $row["email_retry_count"]; //$email_action_before = $row["email_action_before"]; $email_response = $row["email_response"]; $email_action_after = $row["email_action_after"]; } unset($sql, $parameters, $row); } //load editor preferences/defaults $setting_size = !empty($_SESSION["editor"]["font_size"]["text"]) ? $_SESSION["editor"]["font_size"]["text"] : '12px'; $setting_theme = !empty($_SESSION["editor"]["theme"]["text"]) ? $_SESSION["editor"]["theme"]["text"] : 'cobalt'; $setting_invisibles = isset($_SESSION['editor']['invisibles']['text']) ? $_SESSION['editor']['invisibles']["text"] : 'false'; $setting_indenting = isset($_SESSION['editor']['indent_guides']['text']) ? $_SESSION['editor']['indent_guides']["text"]: 'false'; $setting_numbering = isset($_SESSION['editor']['line_numbers']['text']) ? $_SESSION['editor']['line_numbers']["text"] : 'true'; //create token $object = new token; $token = $object->create($_SERVER['PHP_SELF']); //show the header $document['title'] = $text['title-email_queue']; require_once "resources/header.php"; echo "\n"; echo "\n"; //show the content echo "
\n"; echo "\n"; echo "
\n"; echo "
".$text['title-email_queue']."
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','collapse'=>'hide-xs','style'=>'margin-right: 15px;','link'=>'email_queue.php']); if ($action == 'update') { if (permission_exists('_add')) { echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'id'=>'btn_copy','name'=>'btn_copy','style'=>'display: none;','onclick'=>"modal_open('modal-copy','btn_copy');"]); } if (permission_exists('_delete')) { echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none; margin-right: 15px;','onclick'=>"modal_open('modal-delete','btn_delete');"]); } } echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','collapse'=>'hide-xs']); echo "
\n"; echo "
\n"; echo "
\n"; echo $text['title_description-email_queue']."\n"; echo "

\n"; if ($action == 'update') { if (permission_exists('email_queue_add')) { echo modal::create(['id'=>'modal-copy','type'=>'copy','actions'=>button::create(['type'=>'submit','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_copy','style'=>'float: right; margin-left: 15px;','collapse'=>'never','name'=>'action','value'=>'copy','onclick'=>"modal_close();"])]); } if (permission_exists('email_queue_delete')) { echo modal::create(['id'=>'modal-delete','type'=>'delete','actions'=>button::create(['type'=>'submit','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_delete','style'=>'float: right; margin-left: 15px;','collapse'=>'never','name'=>'action','value'=>'delete','onclick'=>"modal_close();"])]); } } 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 "\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 "\n"; echo "\n"; echo "\n"; echo "\n"; if (filter_var($_SESSION['email_queue']['save_response']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "
\n"; echo " ".$text['label-email_date']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-email_date']."\n"; echo "
\n"; echo " ".$text['label-email_from']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-email_from']."\n"; echo "
\n"; echo " ".$text['label-email_to']."\n"; echo "\n"; if (isset($email_to) && substr_count($email_to, ',') != 0) { echo " \n"; } else { echo " \n"; } echo "
\n"; echo $text['description-email_to']."\n"; echo "
\n"; echo " ".$text['label-email_subject']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-email_subject']."\n"; echo "
\n"; echo " ".$text['label-email_body']."\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"; $themes['Light']['chrome']= 'Chrome'; $themes['Light']['clouds']= 'Clouds'; $themes['Light']['crimson_editor']= 'Crimson Editor'; $themes['Light']['dawn']= 'Dawn'; $themes['Light']['dreamweaver']= 'Dreamweaver'; $themes['Light']['eclipse']= 'Eclipse'; $themes['Light']['github']= 'GitHub'; $themes['Light']['iplastic']= 'IPlastic'; $themes['Light']['solarized_light']= 'Solarized Light'; $themes['Light']['textmate']= 'TextMate'; $themes['Light']['tomorrow']= 'Tomorrow'; $themes['Light']['xcode']= 'XCode'; $themes['Light']['kuroir']= 'Kuroir'; $themes['Light']['katzenmilch']= 'KatzenMilch'; $themes['Light']['sqlserver']= 'SQL Server'; $themes['Dark']['ambiance']= 'Ambiance'; $themes['Dark']['chaos']= 'Chaos'; $themes['Dark']['clouds_midnight']= 'Clouds Midnight'; $themes['Dark']['cobalt']= 'Cobalt'; $themes['Dark']['idle_fingers']= 'idle Fingers'; $themes['Dark']['kr_theme']= 'krTheme'; $themes['Dark']['merbivore']= 'Merbivore'; $themes['Dark']['merbivore_soft']= 'Merbivore Soft'; $themes['Dark']['mono_industrial']= 'Mono Industrial'; $themes['Dark']['monokai']= 'Monokai'; $themes['Dark']['pastel_on_dark']= 'Pastel on dark'; $themes['Dark']['solarized_dark']= 'Solarized Dark'; $themes['Dark']['terminal']= 'Terminal'; $themes['Dark']['tomorrow_night']= 'Tomorrow Night'; $themes['Dark']['tomorrow_night_blue']= 'Tomorrow Night Blue'; $themes['Dark']['tomorrow_night_bright']= 'Tomorrow Night Bright'; $themes['Dark']['tomorrow_night_eighties']= 'Tomorrow Night 80s'; $themes['Dark']['twilight']= 'Twilight'; $themes['Dark']['vibrant_ink']= 'Vibrant Ink'; echo " \n"; echo "
\n"; echo "
\n"; echo $text['description-email_body']."\n"; echo "
\n"; echo " ".$text['label-email_status']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-email_status']."\n"; echo "
\n"; echo " ".$text['label-email_retry_count']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-email_retry_count']."\n"; echo "
\n"; //echo " ".$text['label-email_action_before']."\n"; //echo "\n"; //echo " \n"; //echo "
\n"; //echo $text['description-email_action_before']."\n"; //echo "
\n"; echo " ".$text['label-email_action_after']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-email_action_after']."\n"; echo "
\n"; echo " ".$text['label-email_response']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo ($text['description-email_response'] ?? '')."\n"; echo "
"; echo "
"; echo "

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