[evolvis-commits] r6764: merge bm:taramir/patches/development-error-display

mirabilos at evolvis.org mirabilos at evolvis.org
Fri Jun 25 15:56:12 CEST 2010


Author: mirabilos
Date: 2010-06-25 15:56:12 +0200 (Fri, 25 Jun 2010)
New Revision: 6764

Added:
   trunk/gforge_base/evolvisforge/gforge/common/include/extras-debug.php
Modified:
   trunk/gforge_base/evolvisforge/gforge/debian/changelog
   trunk/gforge_base/evolvisforge/gforge/etc/local.d/01begin
   trunk/gforge_base/evolvisforge/gforge/setup
   trunk/gforge_base/evolvisforge/gforge/www/include/pre.php
   trunk/gforge_base/evolvisforge/gforge/www/themes/css/gforge.css
Log:
merge bm:taramir/patches/development-error-display

Added: trunk/gforge_base/evolvisforge/gforge/common/include/extras-debug.php
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/common/include/extras-debug.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/gforge/common/include/extras-debug.php	2010-06-25 13:56:12 UTC (rev 6764)
@@ -0,0 +1,58 @@
+<?php
+
+// error handler function
+function ffErrorHandler($errno, $errstr, $errfile, $errline)
+{
+	global $ffErrors;
+
+	if (!isset($ffErrors))
+		$ffErrors = array();
+
+	$msg = "[$errno] $errstr ($errfile at $errline)";
+
+	// Display messages only once.
+	foreach ($ffErrors as $m) {
+		if ($m['message'] == $msg)
+			return true;
+	}
+
+	switch ($errno) {
+		case E_USER_ERROR:
+			$type = 'error';
+			break;
+
+		case E_USER_WARNING:
+			$type = 'warning';
+			break;
+
+		case E_USER_NOTICE:
+			$type = 'notice';
+			break;
+
+		default:
+			$type = 'unknown';
+			break;
+	}
+	
+	$ffErrors[] = array('type' => $type, 'message' => $msg);
+	/* Don't execute PHP internal error handler */
+	return true;
+}
+
+
+function ffErrorDisplay() {
+	global $ffErrors;
+
+	if (isset($ffErrors) && $ffErrors) {
+		echo '<div id="ffErrors">';
+		foreach ($ffErrors as $msg) {
+			echo '<div class="'.$msg['type'].'">'.$msg['message'].'</div>'."\n";
+		}
+		echo '</div>';
+	}
+}
+
+// set to the user defined error handler
+set_error_handler("ffErrorHandler");
+
+register_shutdown_function('ffErrorDisplay');

Modified: trunk/gforge_base/evolvisforge/gforge/debian/changelog
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/debian/changelog	2010-06-25 13:56:09 UTC (rev 6763)
+++ trunk/gforge_base/evolvisforge/gforge/debian/changelog	2010-06-25 13:56:12 UTC (rev 6764)
@@ -43,8 +43,12 @@
   * Merged new branch copy-task-to-other-subproject: feature to copy a
     task to another subproject.
 
- -- Thorsten Glaser <t.glaser at tarent.de>  Fri, 25 Jun 2010 12:02:28 +0200
+  [ Alain Peyrat ]
+  * Display all errors directly on the page for development or integration
+    environments (using $sys_install_type which defaults to production)
 
+ -- Thorsten Glaser <t.glaser at tarent.de>  Fri, 25 Jun 2010 14:01:17 +0200
+
 gforge (4.8.3+evolvis20) unstable; urgency=low
 
   * class SVNPlugin: new method getURI, for papel’s Hudson plugin

Modified: trunk/gforge_base/evolvisforge/gforge/etc/local.d/01begin
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/etc/local.d/01begin	2010-06-25 13:56:09 UTC (rev 6763)
+++ trunk/gforge_base/evolvisforge/gforge/etc/local.d/01begin	2010-06-25 13:56:12 UTC (rev 6764)
@@ -54,3 +54,9 @@
 // the mail host if you have enough horsepower & bandwidth)
 $sys_lists_host = '{lists_host}';
 
+// Define the type of installation
+//    * development:
+//    * integration:
+//    * staging:
+//    * production: normal mode.
+$sys_install_type = '{sys_install_type}';

Modified: trunk/gforge_base/evolvisforge/gforge/setup
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/setup	2010-06-25 13:56:09 UTC (rev 6763)
+++ trunk/gforge_base/evolvisforge/gforge/setup	2010-06-25 13:56:12 UTC (rev 6764)
@@ -69,6 +69,7 @@
 	DEFAULTusr_lib_gforge=$LIBDIR
 	DEFAULTvar_lib_gforge=$GFGDIR/var/lib/gforge
 	DEFAULTvar_log_gforge=$GFGDIR/var/log/gforge
+	DEFAULTsys_install_type=production
 	DEFAULTsys_show_source=0
 	DEFAULTsys_force_login=0
 	DEFAULTsys_session_key=$(dd if=/dev/urandom count=1 bs=8 2> /dev/null | md5sum | cut -b1-32)

Modified: trunk/gforge_base/evolvisforge/gforge/www/include/pre.php
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/www/include/pre.php	2010-06-25 13:56:09 UTC (rev 6763)
+++ trunk/gforge_base/evolvisforge/gforge/www/include/pre.php	2010-06-25 13:56:12 UTC (rev 6764)
@@ -33,6 +33,11 @@
 
 require $gfcgfile;
 
+// Load extra func to add extras func like debug
+if ($sys_install_type == 'development' || $sys_install_type == 'integration') {
+	require $gfcommon.'include/extras-debug.php';
+}
+
 // get constants used for flags or status
 require $gfcommon.'include/constants.php';
 

Modified: trunk/gforge_base/evolvisforge/gforge/www/themes/css/gforge.css
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/www/themes/css/gforge.css	2010-06-25 13:56:09 UTC (rev 6763)
+++ trunk/gforge_base/evolvisforge/gforge/www/themes/css/gforge.css	2010-06-25 13:56:12 UTC (rev 6764)
@@ -416,3 +416,24 @@
  font-weight: bold;
 }
 
+#ffErrors {
+	z-index: 10;
+	position: absolute;
+	top: 10px;
+	left: 10px;
+	right: 10px;
+	opacity: 0.9;
+	color: black;
+	font-weight: bold;
+	border-width: 2px;
+	border-style: solid;
+	background-color: #ffc0cb; /* pink */
+	border-color: red;
+	padding: 0.5em;
+}
+
+#ffErrors .error {
+	border-width: 0px;
+	padding: 0px;
+	color: red;
+}



More information about the evolvis-commits mailing list