Notifications: Retains postback values if input was invalid.
This commit is contained in:
parent
e2872a2e06
commit
d29b5efb52
|
|
@ -114,6 +114,7 @@ else {
|
|||
($project_notification_method == 'email' && $project_notification_recipient == '') ||
|
||||
($project_notification_method == 'text' && $project_notification_recipient == '')
|
||||
)) {
|
||||
$_SESSION["form"] = $_POST;
|
||||
$_SESSION["message"] = $text['message-invalid_recipient'];
|
||||
header("Location: notification_edit.php");
|
||||
return;
|
||||
|
|
@ -217,6 +218,9 @@ else {
|
|||
|
||||
}
|
||||
|
||||
// check post back session
|
||||
if (!isset($_SESSION["form"])) {
|
||||
|
||||
// check local project notification participation flag
|
||||
$sql = "select project_notifications from v_notifications";
|
||||
$prep_statement = $db->prepare($sql);
|
||||
|
|
@ -224,14 +228,14 @@ else {
|
|||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($result as &$row) {
|
||||
$project_notifications = $row["project_notifications"];
|
||||
$setting["project_notifications"] = $row["project_notifications"];
|
||||
break; // limit to 1 row
|
||||
}
|
||||
}
|
||||
unset($sql, $prep_statement);
|
||||
|
||||
// if participation enabled
|
||||
if ($project_notifications == 'true') {
|
||||
if ($setting["project_notifications"] == 'true') {
|
||||
|
||||
// get current project notification preferences
|
||||
$url = "https://".$software_url."/app/notifications/notifications_manage.php?id=".$software_uuid;
|
||||
|
|
@ -248,9 +252,16 @@ else {
|
|||
|
||||
// parse response
|
||||
$setting = json_decode($response, true);
|
||||
|
||||
$setting["project_notifications"] = 'true';
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
$setting = fix_postback($_SESSION["form"]);
|
||||
unset($_SESSION["form"]);
|
||||
|
||||
}
|
||||
|
||||
require_once "resources/header.php";
|
||||
$page["title"] = $text['title-notifications'];
|
||||
|
|
@ -286,10 +297,9 @@ $page["title"] = $text['title-notifications'];
|
|||
echo " </td>\n";
|
||||
echo " <td class='vtable' align='left'>\n";
|
||||
echo " <select name='project_notifications' class='formfld' style='width: auto;'>\n";
|
||||
echo " <option value='false' ".(($project_notifications == 'false') ? "selected='selected'" : null).">".$text['option-disabled']."</option>\n";
|
||||
echo " <option value='true' ".(($project_notifications == 'true') ? "selected='selected'" : null).">".$text['option-enabled']."</option>\n";
|
||||
echo " </select>\n";
|
||||
echo " <br />\n";
|
||||
echo " <option value='false' ".(($setting["project_notifications"] == 'false') ? "selected='selected'" : null).">".$text['option-disabled']."</option>\n";
|
||||
echo " <option value='true' ".(($setting["project_notifications"] == 'true') ? "selected='selected'" : null).">".$text['option-enabled']."</option>\n";
|
||||
echo " </select><br />\n";
|
||||
echo $text['description-project_notifications']."\n";
|
||||
echo " </td>\n";
|
||||
echo " </tr>\n";
|
||||
|
|
@ -302,8 +312,7 @@ $page["title"] = $text['title-notifications'];
|
|||
echo " <select name='project_security' class='formfld' style='width: auto;'>\n";
|
||||
echo " <option value='false' ".(($setting["project_security"] == 'false') ? "selected='selected'" : null).">".$text['option-disabled']."</option>\n";
|
||||
echo " <option value='true' ".(($setting["project_security"] == 'true') ? "selected='selected'" : null).">".$text['option-enabled']."</option>\n";
|
||||
echo " </select>\n";
|
||||
echo " <br />\n";
|
||||
echo " </select><br />\n";
|
||||
echo $text['description-project_security']."\n";
|
||||
echo " </td>\n";
|
||||
echo " </tr>\n";
|
||||
|
|
@ -316,8 +325,7 @@ $page["title"] = $text['title-notifications'];
|
|||
echo " <select name='project_releases' class='formfld' style='width: auto;'>\n";
|
||||
echo " <option value='false' ".(($setting["project_releases"] == 'false') ? "selected='selected'" : null).">".$text['option-disabled']."</option>\n";
|
||||
echo " <option value='true' ".(($setting["project_releases"] == 'true') ? "selected='selected'" : null).">".$text['option-enabled']."</option>\n";
|
||||
echo " </select>\n";
|
||||
echo " <br />\n";
|
||||
echo " </select><br />\n";
|
||||
echo $text['description-project_releases']."\n";
|
||||
echo " </td>\n";
|
||||
echo " </tr>\n";
|
||||
|
|
@ -330,8 +338,7 @@ $page["title"] = $text['title-notifications'];
|
|||
echo " <select name='project_events' class='formfld' style='width: auto;'>\n";
|
||||
echo " <option value='false' ".(($setting["project_events"] == 'false') ? "selected='selected'" : null).">".$text['option-disabled']."</option>\n";
|
||||
echo " <option value='true' ".(($setting["project_events"] == 'true') ? "selected='selected'" : null).">".$text['option-enabled']."</option>\n";
|
||||
echo " </select>\n";
|
||||
echo " <br />\n";
|
||||
echo " </select><br />\n";
|
||||
echo $text['description-project_events']."\n";
|
||||
echo " </td>\n";
|
||||
echo " </tr>\n";
|
||||
|
|
@ -344,8 +351,7 @@ $page["title"] = $text['title-notifications'];
|
|||
echo " <select name='project_news' class='formfld' style='width: auto;'>\n";
|
||||
echo " <option value='false' ".(($setting["project_news"] == 'false') ? "selected='selected'" : null).">".$text['option-disabled']."</option>\n";
|
||||
echo " <option value='true' ".(($setting["project_news"] == 'true') ? "selected='selected'" : null).">".$text['option-enabled']."</option>\n";
|
||||
echo " </select>\n";
|
||||
echo " <br />\n";
|
||||
echo " </select><br />\n";
|
||||
echo $text['description-project_news']."\n";
|
||||
echo " </td>\n";
|
||||
echo " </tr>\n";
|
||||
|
|
@ -360,8 +366,7 @@ $page["title"] = $text['title-notifications'];
|
|||
//echo " <option value='ticker' ".(($setting["project_notification_method"] == 'ticker') ? "selected='selected'" : null).">".$text['option-ticker']."</option>\n";
|
||||
echo " <option value='email' ".(($setting["project_notification_method"] == 'email') ? "selected='selected'" : null).">".$text['option-email']."</option>\n";
|
||||
//echo " <option value='text' ".(($setting["project_notification_method"] == 'text') ? "selected='selected'" : null).">".$text['option-text']."</option>\n";
|
||||
echo " </select>\n";
|
||||
echo " <br />\n";
|
||||
echo " </select><br />\n";
|
||||
echo $text['description-project_notification_method']."\n";
|
||||
echo " </td>\n";
|
||||
echo " </tr>\n";
|
||||
|
|
@ -372,8 +377,7 @@ $page["title"] = $text['title-notifications'];
|
|||
echo $text['label-project_notification_recipient']."\n";
|
||||
echo " </td>\n";
|
||||
echo " <td class='vtable' align='left'>\n";
|
||||
echo " <input class='formfld' type='text' name='project_notification_recipient' maxlength='50' value='".$setting["project_notification_recipient"]."'>\n";
|
||||
echo " <br />\n";
|
||||
echo " <input class='formfld' type='text' name='project_notification_recipient' maxlength='50' value='".$setting["project_notification_recipient"]."'><br />\n";
|
||||
echo $text['description-project_notification_recipient']."\n";
|
||||
echo " </td>\n";
|
||||
echo " </tr>\n";
|
||||
|
|
|
|||
|
|
@ -66,6 +66,20 @@
|
|||
}
|
||||
}
|
||||
|
||||
if (!function_exists('fix_postback')) {
|
||||
function fix_postback($post_array) {
|
||||
foreach ($post_array as $index => $value) {
|
||||
if (is_array($value)) { fix_postback($value); }
|
||||
else {
|
||||
$value = str_replace('"', """, $value);
|
||||
$value = str_replace("'", "'", $value);
|
||||
$post_array[$index] = $value;
|
||||
}
|
||||
}
|
||||
return $post_array;
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('uuid')) {
|
||||
function uuid() {
|
||||
//uuid version 4
|
||||
|
|
|
|||
Loading…
Reference in New Issue