Эх сурвалжийг харах

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
Mafoo 8 жил өмнө
parent
commit
f7944183c2

+ 19 - 2
core/domain_settings/app_defaults.php

@@ -24,7 +24,7 @@
 	Mark J Crane <[email protected]>
 */
 
-//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);
 	}
-
 ?>

+ 19 - 2
core/user_settings/app_defaults.php

@@ -24,7 +24,7 @@
 	Mark J Crane <[email protected]>
 */
 
-//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);
 	}
-
 ?>

+ 9 - 14
resources/classes/messages.php

@@ -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;
 		}
-
 	}
 }
 

+ 18 - 2
themes/default/app_config.php

@@ -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";

+ 47 - 29
themes/default/app_defaults.php

@@ -24,36 +24,54 @@
 	Mark J Crane <[email protected]>
 */
 
-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);
+	}
 
 ?>

+ 6 - 3
themes/default/css.php

@@ -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']; ?>;

+ 1 - 2
themes/default/template.php

@@ -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});
 			}
 		}