dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #33203
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 16939: Web API. Added new resource representation html+css for sql view and analytics
------------------------------------------------------------
revno: 16939
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2014-10-02 19:01:16 +0200
message:
Web API. Added new resource representation html+css for sql view and analytics
added:
dhis-2/dhis-support/dhis-support-system/src/main/resources/grid-html-css.vm
modified:
dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/sqlview/DefaultSqlViewService.java
dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/GridUtils.java
dhis-2/dhis-support/dhis-support-system/src/main/resources/grid-html.vm
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/ReportTableController.java
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/SqlViewController.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/showDataSqlViewForm.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
=== modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/sqlview/DefaultSqlViewService.java'
--- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/sqlview/DefaultSqlViewService.java 2014-09-08 13:02:43 +0000
+++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/sqlview/DefaultSqlViewService.java 2014-10-02 17:01:16 +0000
@@ -159,11 +159,12 @@
@Override
public Grid getSqlViewGrid( SqlView sqlView, Map<String, String> criteria )
{
- Grid sqlViewGrid = new ListGrid();
-
- sqlViewExpandStore.setUpDataSqlViewTable( sqlViewGrid, sqlView.getViewName(), criteria );
-
- return sqlViewGrid;
+ Grid grid = new ListGrid();
+ grid.setTitle( sqlView.getName() );
+
+ sqlViewExpandStore.setUpDataSqlViewTable( grid, sqlView.getViewName(), criteria );
+
+ return grid;
}
@Override
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/GridUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/GridUtils.java 2014-09-25 10:17:34 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/GridUtils.java 2014-10-02 17:01:16 +0000
@@ -124,6 +124,7 @@
private static final String KEY_PARAMS = "params";
private static final String JASPER_TEMPLATE = "grid.vm";
private static final String HTML_TEMPLATE = "grid-html.vm";
+ private static final String HTML_CSS_TEMPLATE = "grid-html-css.vm";
private static final String ATTR_GRID = "grid";
private static final String ATTR_TITLE = "title";
@@ -395,13 +396,22 @@
}
/**
- * Writes a JRXML (Jasper Reports XML) representation of the given Grid to the given Writer.
+ * Writes a HTML representation of the given Grid to the given Writer.
*/
public static void toHtml( Grid grid, Writer writer )
throws Exception
{
render( grid, null, writer, HTML_TEMPLATE );
}
+
+ /**
+ * Writes a HTML representation of the given Grid to the given Writer.
+ */
+ public static void toHtmlCss( Grid grid, Writer writer )
+ throws Exception
+ {
+ render( grid, null, writer, HTML_CSS_TEMPLATE );
+ }
/**
* Writes an XML representation of the given Grid to the given OutputStream.
=== added file 'dhis-2/dhis-support/dhis-support-system/src/main/resources/grid-html-css.vm'
--- dhis-2/dhis-support/dhis-support-system/src/main/resources/grid-html-css.vm 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/resources/grid-html-css.vm 2014-10-02 17:01:16 +0000
@@ -0,0 +1,22 @@
+<style type="text/css">
+.gridDiv {
+ font-family: sans-serif, arial;
+}
+
+table.gridTable {
+ border-collapse: collapse;
+ font-size: 11pt;
+}
+
+.gridTable th, td {
+ padding: 8px 4px 7px 4px;
+ border: 1px solid #e7e7e7;
+}
+
+.gridTable th {
+ background-color: #f3f3f3;
+ font-weight: bold;
+}
+</style>
+
+#parse( "grid-html.vm" )
\ No newline at end of file
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/resources/grid-html.vm'
--- dhis-2/dhis-support/dhis-support-system/src/main/resources/grid-html.vm 2013-08-07 10:03:12 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/resources/grid-html.vm 2014-10-02 17:01:16 +0000
@@ -1,10 +1,11 @@
+<div class="gridDiv">
<h3>$!encoder.htmlEncode( $grid.title )</h3>
<h4>$!encoder.htmlEncode( $grid.subtitle )</h4>
<table class="listTable gridTable">
<thead>
<tr>
#foreach( $header in $grid.getVisibleHeaders() )
-<th #if( $header.meta )style="text-align:left"#end>$!encoder.htmlEncode( $header.name )</th>
+<th#if( $header.meta ) style="text-align:left"#end>$!encoder.htmlEncode( $header.name )</th>
#end
</tr>
</thead>
@@ -22,4 +23,5 @@
</tr>
#end
</tbody>
-</table>
\ No newline at end of file
+</table>
+</div>
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java 2014-09-29 16:10:58 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java 2014-10-02 17:01:16 +0000
@@ -156,6 +156,33 @@
GridUtils.toHtml( substituteMetaData( grid ), response.getWriter() );
}
+ @RequestMapping( value = RESOURCE_PATH + ".html+css", method = RequestMethod.GET )
+ public void getHtmlCss(
+ @RequestParam Set<String> dimension,
+ @RequestParam( required = false ) Set<String> filter,
+ @RequestParam( required = false ) AggregationType aggregationType,
+ @RequestParam( required = false ) String measureCriteria,
+ @RequestParam( required = false ) boolean skipMeta,
+ @RequestParam( required = false ) boolean skipRounding,
+ @RequestParam( required = false ) boolean hierarchyMeta,
+ @RequestParam( required = false ) boolean ignoreLimit,
+ @RequestParam( required = false ) boolean tableLayout,
+ @RequestParam( required = false ) boolean hideEmptyRows,
+ @RequestParam( required = false ) boolean showHierarchy,
+ @RequestParam( required = false ) DisplayProperty displayProperty,
+ @RequestParam( required = false ) String columns,
+ @RequestParam( required = false ) String rows,
+ Model model,
+ HttpServletResponse response ) throws Exception
+ {
+ DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria,
+ skipMeta, skipRounding, hierarchyMeta, ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, i18nManager.getI18nFormat() );
+
+ contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_HTML, CacheStrategy.RESPECT_SYSTEM_SETTING );
+ Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getDimensionsFromParam( columns ), getDimensionsFromParam( rows ) );
+ GridUtils.toHtmlCss( substituteMetaData( grid ), response.getWriter() );
+ }
+
@RequestMapping( value = RESOURCE_PATH + ".csv", method = RequestMethod.GET )
public void getCsv(
@RequestParam Set<String> dimension,
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/ReportTableController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/ReportTableController.java 2014-06-11 20:00:39 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/ReportTableController.java 2014-10-02 17:01:16 +0000
@@ -177,6 +177,20 @@
GridUtils.toHtml( grid, response.getWriter() );
}
+ @RequestMapping( value = "/{uid}/data.html+css", method = RequestMethod.GET )
+ public void getReportTableHtmlCss( @PathVariable( "uid" ) String uid,
+ @RequestParam( value = "ou", required = false ) String organisationUnitUid,
+ @RequestParam( value = "date", required = false ) @DateTimeFormat( pattern = DATE_PATTERN ) Date date,
+ HttpServletResponse response ) throws Exception
+ {
+ Grid grid = getReportTableGrid( uid, organisationUnitUid, date );
+
+ String filename = filenameEncode( grid.getTitle() ) + ".html";
+ contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_HTML, CacheStrategy.RESPECT_SYSTEM_SETTING, filename, false );
+
+ GridUtils.toHtmlCss( grid, response.getWriter() );
+ }
+
@RequestMapping( value = "/{uid}/data.xml", method = RequestMethod.GET )
public void getReportTableXml( @PathVariable( "uid" ) String uid,
@RequestParam( value = "ou", required = false ) String organisationUnitUid,
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/SqlViewController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/SqlViewController.java 2014-05-22 12:40:24 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/SqlViewController.java 2014-10-02 17:01:16 +0000
@@ -130,6 +130,19 @@
GridUtils.toHtml( grid, response.getWriter() );
}
+ @RequestMapping( value = "/{uid}/data.html+css", method = RequestMethod.GET )
+ public void getViewHtmlCss( @PathVariable( "uid" ) String uid,
+ @RequestParam(required=false) Set<String> criteria, HttpServletResponse response ) throws Exception
+ {
+ SqlView sqlView = sqlViewService.getSqlViewByUid( uid );
+
+ Grid grid = sqlViewService.getSqlViewGrid( sqlView, SqlView.getCriteria( criteria ) );
+
+ contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_HTML, CacheStrategy.RESPECT_SYSTEM_SETTING );
+
+ GridUtils.toHtmlCss( grid, response.getWriter() );
+ }
+
@RequestMapping( value = "/{uid}/data.pdf", method = RequestMethod.GET )
public void getViewPdf( @PathVariable( "uid" ) String uid,
@RequestParam(required=false) Set<String> criteria, HttpServletResponse response ) throws Exception
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/showDataSqlViewForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/showDataSqlViewForm.vm 2014-08-28 08:47:36 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/showDataSqlViewForm.vm 2014-10-02 17:01:16 +0000
@@ -20,7 +20,7 @@
<input type="button" value="$i18n.getString( 'get_report_as_xls' )" onclick="window.location.href='../api/sqlViews/${sqlView.uid}/data.xls'" style="width:135px"/>
<input type="button" value="$i18n.getString( 'get_report_as_csv' )" onclick="window.location.href='../api/sqlViews/${sqlView.uid}/data.csv'" style="width:135px"/>
<input type="button" value="$i18n.getString( 'get_report_as_pdf' )" onclick="window.location.href='../api/sqlViews/${sqlView.uid}/data.pdf'" style="width:135px"/>
-<input type="button" value="$i18n.getString( 'get_report_as_html' )" onclick="window.location.href='../api/sqlViews/${sqlView.uid}/data.html'" style="width:135px"/>
+<input type="button" value="$i18n.getString( 'get_report_as_html' )" onclick="window.location.href='../api/sqlViews/${sqlView.uid}/data.html+css'" style="width:135px"/>
<input type="button" value="$i18n.getString( 'get_report_as_xml' )" onclick="window.location.href='../api/sqlViews/${sqlView.uid}/data.xml'" style="width:135px"/>
<input type="button" value="$i18n.getString( 'get_report_as_json' )" onclick="window.location.href='../api/sqlViews/${sqlView.uid}/data.json'" style="width:135px"/>
<input type="button" value="$i18n.getString( 'back' )" onclick="javascript:window.location.href='sqlView.action'" style="width:140px" style="width:135px"/>