← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 1811: Fixed bug <545688> using JQuery to improve the printing function and applied this one into Excel ...

 

------------------------------------------------------------
revno: 1811
committer: hieu <hieu.hispvietnam@xxxxxxxxx>
branch nick: trunk
timestamp: Mon 2010-04-26 16:09:48 +0700
message:
  Fixed bug <545688> using JQuery to improve the printing function and applied this one into Excel reporting module also.
added:
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/jquery.jqprint.0.3.js
modified:
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/preview.js
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/reportparams.vm
  dhis-2/dhis-web/dhis-web-reporting/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/dataSetReport.js
  dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/previewCustomDataSetReportForm.vm


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== added file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/jquery.jqprint.0.3.js'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/jquery.jqprint.0.3.js	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/jquery.jqprint.0.3.js	2010-04-26 09:09:48 +0000
@@ -0,0 +1,76 @@
+// -----------------------------------------------------------------------
+// Eros Fratini - eros@xxxxxxxxxxx
+// jqprint 0.3
+//
+// - 19/06/2009 - some new implementations, added Opera support
+// - 11/05/2009 - first sketch
+//
+// Printing plug-in for jQuery, evolution of jPrintArea: http://plugins.jquery.com/project/jPrintArea
+// requires jQuery 1.3.x
+//
+// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+//------------------------------------------------------------------------
+
+(function($) {
+    var opt;
+
+    $.fn.jqprint = function (options) {
+        opt = $.extend({}, $.fn.jqprint.defaults, options);
+
+        var $element = (this instanceof jQuery) ? this : $(this);
+        
+        if (opt.operaSupport && $.browser.opera) 
+        { 
+            var tab = window.open("","jqPrint-preview");
+            tab.document.open();
+
+            var doc = tab.document;
+        }
+        else 
+        {
+            var $iframe = $("<iframe  />");
+        
+            if (!opt.debug) { $iframe.css({ position: "absolute", width: "0px", height: "0px", left: "-600px", top: "-600px" }); }
+
+            $iframe.appendTo("body");
+            var doc = $iframe[0].contentWindow.document;
+        }
+        
+        if (opt.importCSS)
+        {
+            if ($("link[media=print]").length > 0) 
+            {
+                $("link[media=print]").each( function() {
+                    doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' media='print' />");
+                });
+            }
+            else 
+            {
+                $("link").each( function() {
+                    doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' />");
+                });
+            }
+        }
+        
+        if (opt.printContainer) { doc.write($element.outer()); }
+        else { $element.each( function() { doc.write($(this).html()); }); }
+        
+        doc.close();
+        
+        (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).focus();
+        setTimeout( function() { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } }, 1000);
+    }
+    
+    $.fn.jqprint.defaults = {
+		debug: false,
+		importCSS: true, 
+		printContainer: true,
+		operaSupport: true
+	};
+
+    // Thanks to 9__, found at http://users.livejournal.com/9__/380664.html
+    jQuery.fn.outer = function() {
+      return $($('<div></div>').html(this.clone())).html();
+    } 
+})(jQuery);
+

=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/struts.xml	2010-04-26 08:34:42 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/struts.xml	2010-04-26 09:09:48 +0000
@@ -479,11 +479,12 @@
 			<param name="stylesheets">style/previewStyle.css,
 				style/ui.all.css</param>
 			<param name="javascripts">
-				../dhis-web-commons/ouwt/ouwt.js,
 				javascript/export.js,
 				javascript/commons.js,
 				javascript/preview.js,
-				../dhis-web-commons/util/jquery-ui.js
+				../dhis-web-commons/ouwt/ouwt.js,
+				../dhis-web-commons/util/jquery-ui.js,
+				../dhis-web-commons/util/jquery.jqprint.0.3.js
 			</param>
 		</action>
 

=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/preview.js'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/preview.js	2009-12-17 02:15:50 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/preview.js	2010-04-26 09:09:48 +0000
@@ -180,8 +180,18 @@
 	}
 	
 	showById("tabs");
+	showById("printExcelReportButton");
 	
 	window.status = "DATAWARE HOUSE";
 	window.stop();
 }
 
+function printExcelReportPreview()
+{
+	var o = $("div#previewDiv");
+	o.jqprint();
+	
+	// or
+	//$("#tabs").jqprint();
+	//$('#divOpera').jqprint({ operaSupport: true });
+}
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/reportparams.vm'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/reportparams.vm	2010-03-09 09:36:40 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/reportparams.vm	2010-04-26 09:09:48 +0000
@@ -59,6 +59,11 @@
 <div id="previewDiv">
 
 </div>
+<br/>
+
+<div id="printDiv">
+	<input type="button" id="printExcelReportButton" value='$i18n.getString("print")' onclick="printExcelReportPreview();" disabled />
+</div>
 
 <span id="info" style="display:none;top:70px;right:5px;position:fixed;" onclick="hideById(this.id)">
 	

=== modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-reporting/src/main/resources/struts.xml	2010-04-13 11:48:30 +0000
+++ dhis-2/dhis-web/dhis-web-reporting/src/main/resources/struts.xml	2010-04-26 09:09:48 +0000
@@ -374,22 +374,22 @@
       <param name="menuTreeHeight">420</param>	  
       <param name="page">/dhis-web-reporting/dataSetReportForm.vm</param>
       <param name="menu">/dhis-web-reporting/menu.vm</param>      
-      <param name="javascripts">../dhis-web-commons/oust/oust.js,javascript/dataSetReport.js,../dhis-web-commons/calendar/calendar.js,../dhis-web-commons/calendar/calendar-lang.js,../dhis-web-commons/calendar/calendar-setup.js</param>      
+      <param name="javascripts">../dhis-web-commons/oust/oust.js,javascript/dataSetReport.js,../dhis-web-commons/calendar/calendar.js,../dhis-web-commons/calendar/calendar-lang.js,../dhis-web-commons/calendar/calendar-setup.js</param>
       <interceptor-ref name="organisationUnitTreeStack"/>       
     </action>	   
     
     <action name="getDataSetReportTypeForPDF" class="org.hisp.dhis.reporting.dataset.action.GetDataSetReportTypeAction">
-      <result name="customreport" type="chain">generateCustomDataSetReport</result>      
-      <result name="defaultreport" type="chain">generateDefaultDataSetReport</result>      
+      <result name="customreport" type="chain">generateCustomDataSetReport</result>
+      <result name="defaultreport" type="chain">generateDefaultDataSetReport</result>
       <result name="error" type="chain">showDataSetReportForm</result>
-      <interceptor-ref name="organisationUnitTreeStack"/>        
+      <interceptor-ref name="organisationUnitTreeStack"/>
     </action>
     
     <action name="generateCustomDataSetReport" class="org.hisp.dhis.reporting.dataset.action.GenerateCustomDataSetReportAction">
       <result name="success" type="velocity">/popup.vm</result>
       <result name="error" type="chain">showDataSetReportForm</result>
       <param name="page">/dhis-web-reporting/previewCustomDataSetReportForm.vm</param>
-      <param name="javascripts">javascript/dataSetReport.js</param>      
+      <param name="javascripts">javascript/dataSetReport.js,../dhis-web-commons/util/jquery.jqprint.0.3.js</param>
       <interceptor-ref name="organisationUnitTreeStack"/>
     </action>   
   
@@ -406,10 +406,10 @@
     </action>
     
     <action name="getDataSetReportTypeForPreview" class="org.hisp.dhis.reporting.dataset.action.GetDataSetReportTypeAction">
-      <result name="customreport" type="chain">previewCustomDataSetReport</result>      
-      <result name="defaultreport" type="chain">previewDefaultDataSetReport</result>      
-      <result name="error" type="chain">showDataSetReportForm</result>   
-      <interceptor-ref name="organisationUnitTreeStack"/>  
+      <result name="customreport" type="chain">previewCustomDataSetReport</result>
+      <result name="defaultreport" type="chain">previewDefaultDataSetReport</result>
+      <result name="error" type="chain">showDataSetReportForm</result>
+      <interceptor-ref name="organisationUnitTreeStack"/>
     </action>
    
     <action name="previewCustomDataSetReport" class="org.hisp.dhis.reporting.dataset.action.GenerateCustomDataSetReportAction">
@@ -417,12 +417,12 @@
       <param name="menuTreeHeight">420</param>
       <result name="error" type="chain">showQuickReportForm</result>
       <param name="page">/dhis-web-reporting/previewCustomDataSetReportForm.vm</param>
-      <param name="javascripts">javascript/dataSetReport.js</param>  
-      <interceptor-ref name="organisationUnitTreeStack"/>   
+      <param name="javascripts">javascript/dataSetReport.js,../dhis-web-commons/util/jquery.jqprint.0.3.js</param>
+      <interceptor-ref name="organisationUnitTreeStack"/>
     </action>  
     
     <action name="previewDefaultDataSetReport" class="org.hisp.dhis.reporting.dataset.action.GenerateDefaultDataSetReportAction">
-      <result name="success" type="chain">previewDefaultDataSetHtmlReport</result>    
+      <result name="success" type="chain">previewDefaultDataSetHtmlReport</result>
       <result name="error" type="chain">showDataSetReportForm</result>
       <param name="preview">true</param>
       <interceptor-ref name="organisationUnitTreeStack"/>   

=== modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/dataSetReport.js'
--- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/dataSetReport.js	2010-02-01 20:21:20 +0000
+++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/dataSetReport.js	2010-04-26 09:09:48 +0000
@@ -109,3 +109,9 @@
         setTimeout( "getDataSetReportStatus();", 2000 );
     }
 }
+
+function printDateSetReportPreview()
+{
+	var o = $("div#printDateSetPreviewDiv");
+	o.jqprint(); 
+}
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/previewCustomDataSetReportForm.vm'
--- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/previewCustomDataSetReportForm.vm	2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/previewCustomDataSetReportForm.vm	2010-04-26 09:09:48 +0000
@@ -4,9 +4,9 @@
 		<td><h3>$i18n.getString('reporting_unit'): </h3></td>			
 		<td><h3>$reportingUnit</h3></td>
 		<td><input type="button" value="$i18n.getString( 'back' )" style="width:100px" 
-				onclick="javascript:window.location.href='showDataSetReportForm.action'">
+				onclick="javascript:window.location.href='showDataSetReportForm.action'"/>
 			<input type="button" value="$i18n.getString( 'print' )" style="width:100px" 
-				onclick="javascript:window.print()"></td>
+				onclick="printDateSetReportPreview();"/></td>
 	</tr>
 	<tr>
 		<td><h3>$i18n.getString('reporting_period'): </h3></td>			
@@ -18,4 +18,6 @@
 	</tr>
 </table>
 
-$customDataEntryFormCode
\ No newline at end of file
+<div id="printDateSetPreviewDiv">
+	$customDataEntryFormCode
+</div>
\ No newline at end of file