Enhance-Multiple messages display (#2702)

Store messages by mood so they can be grouped up
change default mood to positive and add a default colour to catch messages with a wrong mood
migrate settings so upgrading vs new is consistent
This commit is contained in:
Mafoo
2017-06-21 15:27:05 +01:00
committed by FusionPBX
parent c5cfffb05a
commit 2575da1a06
7 changed files with 119 additions and 54 deletions

View File

@@ -24,7 +24,7 @@
Mark J Crane <markjcrane@fusionpbx.com>
*/
//proccess this only one time
//process this only one time
if ($domains_processed == 1) {
//set domains with enabled status of empty or null to true
$sql = "update v_domains set domain_enabled = 'true' where domain_enabled = '' or domain_enabled is null";
@@ -39,6 +39,23 @@
$db->exec(check_sql($sql));
unset($sql);
}
//migrate old domain_settings
$sql = "update v_domain_settings ";
$sql .= "set domain_setting_value = '#fafafa' ";
$sql .= "where domain_setting_subcategory = 'message_default_color' ";
$sql .= "and domain_setting_value = '#ccffcc' ";
$prep_statement = $db->prepare(check_sql($sql));
if ($prep_statement) {
$prep_statement->execute();
}
$sql = "update v_domain_settings ";
$sql .= "set domain_setting_value = '#666' ";
$sql .= "where domain_setting_subcategory = 'message_default_background_color' ";
$sql .= "and domain_setting_value = '#004200' ";
$prep_statement = $db->prepare(check_sql($sql));
if ($prep_statement) {
$prep_statement->execute();
}
unset($prep_statement, $sql);
}
?>

View File

@@ -24,7 +24,7 @@
Mark J Crane <markjcrane@fusionpbx.com>
*/
//proccess this only one time
//process this only one time
if ($domains_processed == 1) {
//update any users set to legacy languages
$language = new text;
@@ -35,6 +35,23 @@
$db->exec(check_sql($sql));
unset($sql);
}
//migrate old user_settings
$sql = "update v_user_settings ";
$sql .= "set user_setting_value = '#fafafa' ";
$sql .= "where user_setting_subcategory = 'message_default_color' ";
$sql .= "and user_setting_value = '#ccffcc' ";
$prep_statement = $db->prepare(check_sql($sql));
if ($prep_statement) {
$prep_statement->execute();
}
$sql = "update v_user_settings ";
$sql .= "set user_setting_value = '#666' ";
$sql .= "where user_setting_subcategory = 'message_default_background_color' ";
$sql .= "and user_setting_value = '#004200' ";
$prep_statement = $db->prepare(check_sql($sql));
if ($prep_statement) {
$prep_statement->execute();
}
unset($prep_statement, $sql);
}
?>

View File

@@ -29,7 +29,10 @@ if (!class_exists('messages')) {
class messages {
static function add($message, $mood = NULL, $delay = NULL) {
$_SESSION["messages"][] = array(message => $message, mood => $mood, delay => $delay);
$mood = $mood ?: 'positive';
$delay = $delay ?: (1000 * (float) $_SESSION['theme']['message_delay']['text']);
$_SESSION["messages"][$mood]['message'][] = $message;
$_SESSION["messages"][$mood]['delay'][] = $delay;
}
static function html($clear_messages = true, $spacer = "") {
@@ -39,26 +42,18 @@ if (!class_exists('messages')) {
self::add($_SESSION['message'], $_SESSION['message_mood'], $_SESSION['message_delay']);
unset($_SESSION['message'], $_SESSION['message_mood'], $_SESSION['message_delay']);
}
if(count($_SESSION['messages']) > 0 ){
foreach ($_SESSION['messages'] as $message) {
$message_text = addslashes($message['message']);
$message_mood = $message['mood'] ?: 'default';
$message_delay = $message['delay'];
$html .= "${spacer}display_message('".str_replace(array("\r\n", "\n", "\r"),'\\n', $message_text)."', '".$message_mood."'";
if ($message_delay != '') {
$html .= ", '".$message_delay."'";
}
$html .= ");\n";
if(count($_SESSION['messages']) > 0 ) {
foreach ($_SESSION['messages'] as $message_mood => $message) {
$message_text = str_replace(array("\r\n", "\n", "\r"),'\\n',addslashes(join('<br/>', $message['message'])));
$message_delay = array_sum($message['delay'])/count($message['delay']);
$html .= "${spacer}display_message('$message_text', '$message_mood', '$message_delay');\n";
}
}
if($clear_messages) {
unset($_SESSION['message'], $_SESSION['message_mood'], $_SESSION['message_delay']);
unset($_SESSION['messages']);
}
return $html;
}
}
}

View File

@@ -138,7 +138,7 @@
$apps[$x]['default_settings'][$y]['default_setting_category'] = "theme";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "message_default_background_color";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "#ccffcc";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "#fafafa";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the background color for the positive (default) message bar.";
$y++;
@@ -146,10 +146,26 @@
$apps[$x]['default_settings'][$y]['default_setting_category'] = "theme";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "message_default_color";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "#004200";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "#666";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the text color for the positive (default) message bar text.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "6f399020-565d-11e7-907b-a6006ad3dba0";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "theme";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "message_positive_background_color";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "#ccffcc";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the background color for the positive (positive) message bar.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "6f399372-565d-11e7-907b-a6006ad3dba0";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "theme";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "message_positive_color";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "#004200";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the text color for the positive (positive) message bar text.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "635387b9-e094-411a-a39c-3055b5cc9347";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "theme";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "message_negative_background_color";

View File

@@ -24,36 +24,54 @@
Mark J Crane <markjcrane@fusionpbx.com>
*/
if ($domains_processed == 1) {
//get the background images
$relative_path = PROJECT_PATH.'/themes/default/images/backgrounds';
$backgrounds = opendir($_SERVER["DOCUMENT_ROOT"].'/'.$relative_path);
unset($array);
$x = 0;
while (false !== ($file = readdir($backgrounds))) {
if ($file != "." AND $file != "..") {
$ext = pathinfo($file, PATHINFO_EXTENSION);
if ($ext == "png" || $ext == "jpg" || $ext == "jpeg" || $ext == "gif") {
$array[$x]['default_setting_category'] = 'theme';
$array[$x]['default_setting_subcategory'] = 'background_image';
$array[$x]['default_setting_name'] = 'array';
$array[$x]['default_setting_value'] = $relative_path.'/'.$file;
$array[$x]['default_setting_enabled'] = 'false';
$array[$x]['default_setting_description'] = 'Set a relative path or URL within a selected compatible template.';
$x++;
$array[$x]['default_setting_category'] = 'theme';
$array[$x]['default_setting_subcategory'] = 'login_background_image';
$array[$x]['default_setting_name'] = 'array';
$array[$x]['default_setting_value'] = $relative_path.'/'.$file;
$array[$x]['default_setting_enabled'] = 'false';
$array[$x]['default_setting_description'] = 'Set a relative path or URL within a selected compatible template.';
$x++;
//process this only one time
if ($domains_processed == 1) {
//get the background images
$relative_path = PROJECT_PATH.'/themes/default/images/backgrounds';
$backgrounds = opendir($_SERVER["DOCUMENT_ROOT"].'/'.$relative_path);
unset($array);
$x = 0;
while (false !== ($file = readdir($backgrounds))) {
if ($file != "." AND $file != "..") {
$ext = pathinfo($file, PATHINFO_EXTENSION);
if ($ext == "png" || $ext == "jpg" || $ext == "jpeg" || $ext == "gif") {
$array[$x]['default_setting_category'] = 'theme';
$array[$x]['default_setting_subcategory'] = 'background_image';
$array[$x]['default_setting_name'] = 'array';
$array[$x]['default_setting_value'] = $relative_path.'/'.$file;
$array[$x]['default_setting_enabled'] = 'false';
$array[$x]['default_setting_description'] = 'Set a relative path or URL within a selected compatible template.';
$x++;
$array[$x]['default_setting_category'] = 'theme';
$array[$x]['default_setting_subcategory'] = 'login_background_image';
$array[$x]['default_setting_name'] = 'array';
$array[$x]['default_setting_value'] = $relative_path.'/'.$file;
$array[$x]['default_setting_enabled'] = 'false';
$array[$x]['default_setting_description'] = 'Set a relative path or URL within a selected compatible template.';
$x++;
}
if ($x > 300) { break; };
}
if ($x > 300) { break; };
}
}
}
//migrate old default_settings
$sql = "update v_default_settings ";
$sql .= "set default_setting_value = '#fafafa' ";
$sql .= "where default_setting_subcategory = 'message_default_color' ";
$sql .= "and default_setting_value = '#ccffcc' ";
$prep_statement = $db->prepare(check_sql($sql));
if ($prep_statement) {
$prep_statement->execute();
}
$sql = "update v_default_settings ";
$sql .= "set default_setting_value = '#666' ";
$sql .= "where default_setting_subcategory = 'message_default_background_color' ";
$sql .= "and default_setting_value = '#004200' ";
$prep_statement = $db->prepare(check_sql($sql));
if ($prep_statement) {
$prep_statement->execute();
}
unset($prep_statement, $sql);
}
?>

View File

@@ -1412,14 +1412,17 @@ $default_login = ($_REQUEST['login'] == 'default') ? true : false;
font-size: 10pt;
display: block;
border-bottom: solid 1px;
}
.message_mood_default {
color: <?php echo $_SESSION['theme']['message_default_color']['text']; ?>;
background: <?php echo $_SESSION['theme']['message_default_background_color']['text']; ?>;
border-bottom-color: <?php echo $_SESSION['theme']['message_default_color']['text']; ?>;
}
.message_mood_positive {
color: <?php echo $_SESSION['theme']['message_positive_color']['text']; ?>;
background: <?php echo $_SESSION['theme']['message_positive_background_color']['text']; ?>;
border-bottom-color: <?php echo $_SESSION['theme']['message_positive_color']['text']; ?>;
}
.message_mood_negative {
color: <?php echo $_SESSION['theme']['message_negative_color']['text']; ?>;
background: <?php echo $_SESSION['theme']['message_negative_background_color']['text']; ?>;

View File

@@ -75,11 +75,10 @@
message_text.click(function() {
var object = $(this);
object.clearQueue().finish();
object.css({height: '3em'});
object.animate({height: '0', 'font-size': '0', 'border-bottom-width': '0'}, 1000).animate({opacity: 0});
} );
$("#messages_container").append(message_text);
message_text.animate({height: '3em'}, 500).animate({opacity: 1}, 'fast').delay(delay).animate({height: '0', 'font-size': '0', 'border-bottom-width': '0'}, 1000).animate({opacity: 0});
message_text.animate({opacity: 1}, 'fast').delay(delay).animate({height: '0', 'font-size': '0', 'border-bottom-width': '0'}, 1000).animate({opacity: 0});
}
}