=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/user/CurrentUserController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/user/CurrentUserController.java 2012-10-10 17:15:59 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/user/CurrentUserController.java 2012-10-15 10:20:17 +0000 @@ -29,11 +29,14 @@ import org.apache.commons.collections.CollectionUtils; import org.hisp.dhis.api.utils.ContextUtils; +import org.hisp.dhis.api.utils.FormUtils; +import org.hisp.dhis.api.webdomain.FormDataSet; +import org.hisp.dhis.api.webdomain.FormOrganisationUnit; +import org.hisp.dhis.api.webdomain.Forms; import org.hisp.dhis.api.webdomain.user.Dashboard; import org.hisp.dhis.api.webdomain.user.Inbox; import org.hisp.dhis.api.webdomain.user.Recipients; import org.hisp.dhis.api.webdomain.user.Settings; -import org.hisp.dhis.common.view.BasicView; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.dxf2.utils.JacksonUtils; import org.hisp.dhis.interpretation.Interpretation; @@ -45,7 +48,6 @@ import org.hisp.dhis.user.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -53,7 +55,10 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; /** * @author Morten Olav Hansen @@ -213,55 +218,66 @@ JacksonUtils.toJson( response.getOutputStream(), recipients ); } - @RequestMapping( value = "/organisationUnits", produces = {"application/json", "text/*"} ) - public void getOrganisationUnitsJson( HttpServletResponse response, - @RequestParam( value = "withChildren", required = false ) boolean withChildren ) throws IOException - { - User currentUser = currentUserService.getCurrentUser(); - - if ( currentUser == null ) - { - ContextUtils.notFoundResponse( response, "User object is null, user is not authenticated." ); - return; - } - - Collection organisationUnits = currentUser.getOrganisationUnits(); - - if ( withChildren ) - { - for ( OrganisationUnit ou : organisationUnits ) - { - organisationUnits.addAll( ou.getChildren() ); - } - } - - JacksonUtils.toJsonWithView( response.getOutputStream(), organisationUnits, BasicView.class ); - } - - @RequestMapping( value = "/organisationUnits/{uid}/dataSets", produces = {"application/json", "text/*"} ) - public void getDataSetsJson( HttpServletResponse response, - @PathVariable( value = "uid" ) String uid ) throws IOException - { - User currentUser = currentUserService.getCurrentUser(); - - if ( currentUser == null ) - { - ContextUtils.notFoundResponse( response, "User object is null, user is not authenticated." ); - return; - } - - OrganisationUnit organisationUnit = organisationUnitService.getOrganisationUnit( uid ); - - if ( organisationUnit == null ) - { - ContextUtils.notFoundResponse( response, "Organisation Unit UID is invalid." ); - return; - } - - Set dataSets = new HashSet( CollectionUtils.intersection( organisationUnit.getDataSets(), - currentUser.getUserCredentials().getAllDataSets() ) ); - - JacksonUtils.toJsonWithView( response.getOutputStream(), dataSets, BasicView.class ); + @RequestMapping( value = "/forms", produces = {"application/json", "text/*"} ) + public void getForms( HttpServletResponse response ) throws IOException + { + User currentUser = currentUserService.getCurrentUser(); + + if ( currentUser == null ) + { + ContextUtils.notFoundResponse( response, "User object is null, user is not authenticated." ); + return; + } + + Forms forms = new Forms(); + + Set organisationUnits = new HashSet(); + Set userDataSets = currentUser.getUserCredentials().getAllDataSets(); + + for ( OrganisationUnit ou : currentUser.getOrganisationUnits() ) + { + Set dataSets = new HashSet( CollectionUtils.intersection( ou.getDataSets(), userDataSets ) ); + + if ( dataSets.size() > 0 ) + { + organisationUnits.add( ou ); + } + + for ( OrganisationUnit child : ou.getChildren() ) + { + Set childDataSets = new HashSet( CollectionUtils.intersection( child.getDataSets(), userDataSets ) ); + + if ( childDataSets.size() > 0 ) + { + organisationUnits.add( ou ); + } + } + } + + for ( OrganisationUnit organisationUnit : organisationUnits ) + { + FormOrganisationUnit ou = new FormOrganisationUnit(); + ou.setId( organisationUnit.getUid() ); + ou.setLabel( organisationUnit.getName() ); + + Set dataSets = new HashSet( CollectionUtils.intersection( organisationUnit.getDataSets(), userDataSets ) ); + + for ( DataSet dataSet : dataSets ) + { + String uid = dataSet.getUid(); + + FormDataSet ds = new FormDataSet(); + ds.setId( uid ); + ds.setLabel( dataSet.getName() ); + + forms.getForms().put( uid, FormUtils.fromDataSet( dataSet ) ); + ou.getDataSets().add( ds ); + } + + forms.getOrganisationUnits().put( ou.getId(), ou ); + } + + JacksonUtils.toJson( response.getOutputStream(), forms ); } private Set getOrganisationUnitsForUser( User user, String filter ) === added file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/FormDataSet.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/FormDataSet.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/FormDataSet.java 2012-10-15 10:20:17 +0000 @@ -0,0 +1,69 @@ +package org.hisp.dhis.api.webdomain; + +/** + * Copyright (c) 2004-2012, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * We could have gotten this information from the form instance, but + * in the interest of performance, we duplicate some information here. + * + * @author Morten Olav Hansen + */ +public class FormDataSet +{ + private String id; + + private String label; + + public FormDataSet() + { + } + + @JsonProperty + public String getId() + { + return id; + } + + public void setId( String id ) + { + this.id = id; + } + + @JsonProperty + public String getLabel() + { + return label; + } + + public void setLabel( String label ) + { + this.label = label; + } +} === added file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/FormOrganisationUnit.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/FormOrganisationUnit.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/FormOrganisationUnit.java 2012-10-15 10:20:17 +0000 @@ -0,0 +1,85 @@ +package org.hisp.dhis.api.webdomain; + +/** + * Copyright (c) 2004-2012, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.HashSet; +import java.util.Set; + +/** + * Simplified organisation unit class, to be used where all you need + * is a label + dataSets. + * + * @author Morten Olav Hansen + */ +public class FormOrganisationUnit +{ + private String id; + + private String label; + + private Set dataSets = new HashSet(); + + public FormOrganisationUnit() + { + } + + @JsonProperty + public String getId() + { + return id; + } + + public void setId( String id ) + { + this.id = id; + } + + @JsonProperty + public String getLabel() + { + return label; + } + + public void setLabel( String label ) + { + this.label = label; + } + + @JsonProperty + public Set getDataSets() + { + return dataSets; + } + + public void setDataSets( Set dataSets ) + { + this.dataSets = dataSets; + } +} === added file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/Forms.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/Forms.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/Forms.java 2012-10-15 10:20:17 +0000 @@ -0,0 +1,74 @@ +package org.hisp.dhis.api.webdomain; + +/* + * Copyright (c) 2004-2012, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.hisp.dhis.api.webdomain.form.Form; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * @author Morten Olav Hansen + */ +public class Forms +{ + // maps ou.uid => org unit. + private Map organisationUnits = new HashMap( ); + + // maps dataSet.uid => form instance + private Map forms = new HashMap(); + + public Forms() + { + } + + @JsonProperty + public Map getOrganisationUnits() + { + return organisationUnits; + } + + public void setOrganisationUnits( Map organisationUnits ) + { + this.organisationUnits = organisationUnits; + } + + @JsonProperty + public Map getForms() + { + return forms; + } + + public void setForms( Map forms ) + { + this.forms = forms; + } +} === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/form/Field.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/form/Field.java 2012-10-09 14:07:37 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/form/Field.java 2012-10-15 10:20:17 +0000 @@ -1,41 +1,37 @@ package org.hisp.dhis.api.webdomain.form; /* -* Copyright (c) 2004-2012, University of Oslo -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright notice, this -* list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright notice, -* this list of conditions and the following disclaimer in the documentation -* and/or other materials provided with the distribution. -* * Neither the name of the HISP project nor the names of its contributors may -* be used to endorse or promote products derived from this software without -* specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ + * Copyright (c) 2004-2012, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; -import org.hisp.dhis.common.Dxf2Namespace; /** * @author Morten Olav Hansen */ -@JacksonXmlRootElement( localName = "field", namespace = Dxf2Namespace.NAMESPACE ) public class Field { private String label; @@ -53,7 +49,6 @@ } @JsonProperty - @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public String getLabel() { return label; @@ -65,7 +60,6 @@ } @JsonProperty - @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public String getDataElement() { return dataElement; @@ -77,7 +71,6 @@ } @JsonProperty - @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public String getCategoryOptionCombo() { return categoryOptionCombo; @@ -89,7 +82,6 @@ } @JsonProperty - @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public String getValue() { return value; @@ -101,7 +93,6 @@ } @JsonProperty - @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public InputType getType() { return type; === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/form/Form.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/form/Form.java 2012-10-11 14:37:10 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/form/Form.java 2012-10-15 10:20:17 +0000 @@ -28,10 +28,6 @@ */ import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; -import org.hisp.dhis.common.Dxf2Namespace; import java.util.ArrayList; import java.util.List; @@ -39,7 +35,6 @@ /** * @author Morten Olav Hansen */ -@JacksonXmlRootElement( localName = "form", namespace = Dxf2Namespace.NAMESPACE ) public class Form { private String label; @@ -53,7 +48,6 @@ } @JsonProperty - @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public String getLabel() { return label; @@ -65,7 +59,6 @@ } @JsonProperty - @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public String getPeriodType() { return periodType; @@ -77,8 +70,6 @@ } @JsonProperty - @JacksonXmlElementWrapper( localName = "groups", namespace = Dxf2Namespace.NAMESPACE ) - @JacksonXmlProperty( localName = "group", namespace = Dxf2Namespace.NAMESPACE ) public List getGroups() { return groups; === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/form/Group.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/form/Group.java 2012-10-09 14:07:37 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/form/Group.java 2012-10-15 10:20:17 +0000 @@ -28,10 +28,6 @@ */ import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; -import org.hisp.dhis.common.Dxf2Namespace; import java.util.ArrayList; import java.util.List; @@ -39,7 +35,6 @@ /** * @author Morten Olav Hansen */ -@JacksonXmlRootElement( localName = "section", namespace = Dxf2Namespace.NAMESPACE ) public class Group { private String label; @@ -51,7 +46,6 @@ } @JsonProperty - @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public String getLabel() { return label; @@ -63,8 +57,6 @@ } @JsonProperty - @JacksonXmlElementWrapper( localName = "fields", namespace = Dxf2Namespace.NAMESPACE ) - @JacksonXmlProperty( localName = "field", namespace = Dxf2Namespace.NAMESPACE ) public List getFields() { return fields; === modified file 'dhis-2/dhis-web/dhis-web-mobile/src/main/webapp/WEB-INF/dhis-web-mobile-velocity/data-entry.vm' --- dhis-2/dhis-web/dhis-web-mobile/src/main/webapp/WEB-INF/dhis-web-mobile-velocity/data-entry.vm 2012-10-12 09:57:17 +0000 +++ dhis-2/dhis-web/dhis-web-mobile/src/main/webapp/WEB-INF/dhis-web-mobile-velocity/data-entry.vm 2012-10-15 10:20:17 +0000 @@ -28,27 +28,18 @@ function loadOrganisationUnitsPage() { $.mobile.showPageLoadingMsg(); - jQuery.ajax({ - url : '$baseUrl/../api/currentUser/organisationUnits', - dataType: 'json', - data: { - 'withChildren': true - } - }).success(function ( data ) { - var tmpl = jQuery('#organisation-units-template').html(); - - jQuery('#organisation-units-page section[data-role="content"]').html( - _.template( tmpl, { 'organisationUnits': data } ) - ); - - jQuery('#organisation-unit-list').listview() - jQuery('#organisation-unit-list li a').bind('click', selectOrganisationUnit); - - $.mobile.hidePageLoadingMsg(); - }).error(function () { - $.mobile.showPageLoadingMsg( $.mobile.pageLoadErrorMessageTheme, "Unable to get organisationUnits", true ); - console.log('error fetching orgUnits') - }); + var organisationUnits = JSON.parse( localStorage['organisationUnits'] ); + + var tmpl = jQuery('#organisation-units-template').html(); + + jQuery('#organisation-units-page section[data-role="content"]').html( + _.template( tmpl, { 'organisationUnits': organisationUnits } ) + ); + + jQuery('#organisation-unit-list').listview() + jQuery('#organisation-unit-list li a').bind('click', selectOrganisationUnit); + + $.mobile.hidePageLoadingMsg(); } function loadDataSetsPage() { @@ -60,23 +51,18 @@ $.mobile.showPageLoadingMsg(); - jQuery.ajax({ - url : '$baseUrl/../api/currentUser/organisationUnits/' + Selected.orgUnit + '/dataSets', - dataType: 'json' - }).success(function ( data ) { - var tmpl = jQuery('#data-sets-template').html(); - - jQuery('#data-sets-page section[data-role="content"]').html( - _.template( tmpl, { 'dataSets': data } ) - ); - - jQuery('#data-set-list').listview(); - jQuery('#data-set-list li a').bind('click', selectDataSet); - $.mobile.hidePageLoadingMsg(); - }).error(function () { - $.mobile.showPageLoadingMsg( $.mobile.pageLoadErrorMessageTheme, "Unable to get dataSets", true ); - console.log('error fetching dataSets') - }); + var organisationUnits = JSON.parse( localStorage['organisationUnits'] ); + var organisationUnit = organisationUnits[Selected.orgUnit]; + + var tmpl = jQuery('#data-sets-template').html(); + + jQuery('#data-sets-page section[data-role="content"]').html( + _.template( tmpl, { 'dataSets': organisationUnit.dataSets } ) + ); + + jQuery('#data-set-list').listview(); + jQuery('#data-set-list li a').bind('click', selectDataSet); + $.mobile.hidePageLoadingMsg(); } function refreshPeriods() { @@ -118,17 +104,11 @@ $.mobile.showPageLoadingMsg(); - jQuery.ajax({ - url : '$baseUrl/../api/dataSets/' + Selected.dataSet + '/form', - dataType: 'json' - }).success(function ( data ) { - periodType = data.periodType; - refreshPeriods(); - $.mobile.hidePageLoadingMsg(); - }).error(function () { - $.mobile.showPageLoadingMsg( $.mobile.pageLoadErrorMessageTheme, "Unable to get form", true ); - console.log('error fetching form') - }); + var form = JSON.parse( localStorage['form_' + Selected.dataSet] ); + periodType = form.periodType; + refreshPeriods(); + + $.mobile.hidePageLoadingMsg(); } function loadDataEntryPage() { @@ -154,25 +134,17 @@ $.mobile.showPageLoadingMsg(); - jQuery.ajax({ - url : '$baseUrl/../api/dataSets/' + Selected.dataSet + '/form', - dataType: 'json' - }).success(function ( data ) { - console.log(data); - - var tmpl = jQuery('#data-entry-template').html(); - - jQuery('#data-entry-page section[data-role="content"]').html( - _.template( tmpl, data ) - ); - - jQuery('#data-entry-page').trigger('pagecreate') - jQuery('#data-entry-list').listview('refresh'); - $.mobile.hidePageLoadingMsg(); - }).error(function () { - $.mobile.showPageLoadingMsg( $.mobile.pageLoadErrorMessageTheme, "Unable to get form", true ); - console.log('error fetching form') - }); + var form = JSON.parse( localStorage['form_' + Selected.dataSet] ); + + var tmpl = jQuery('#data-entry-template').html(); + + jQuery('#data-entry-page section[data-role="content"]').html( + _.template( tmpl, form ) + ); + + jQuery('#data-entry-page').trigger('pagecreate') + jQuery('#data-entry-list').listview('refresh'); + $.mobile.hidePageLoadingMsg(); } jQuery(document).bind('pagechange', function (event, data) { @@ -194,7 +166,7 @@ @@ -202,7 +174,7 @@ @@ -253,6 +225,8 @@ <% }); %> <% }); %> + +
  • === modified file 'dhis-2/dhis-web/dhis-web-mobile/src/main/webapp/WEB-INF/dhis-web-mobile-velocity/index.vm' --- dhis-2/dhis-web/dhis-web-mobile/src/main/webapp/WEB-INF/dhis-web-mobile-velocity/index.vm 2012-10-10 17:14:33 +0000 +++ dhis-2/dhis-web/dhis-web-mobile/src/main/webapp/WEB-INF/dhis-web-mobile-velocity/index.vm 2012-10-15 10:20:17 +0000 @@ -9,13 +9,25 @@ if( data.unreadMessageConversation > 0 ) { $('#messages a').append("" + data.unreadMessageConversation + ""); } - - if( data.unreadInterpretations > 0 ) { - $('#interpretations a').append("" + data.unreadInterpretations + ""); - } }).error(function() { $('#messages a').append("Offline") - $('#interpretations a').append("Offline") + }); + + $.mobile.showPageLoadingMsg(); + + $.ajax({ + url: '../api/currentUser/forms', + dataType: 'json' + }).success(function(data) { + localStorage['organisationUnits'] = JSON.stringify(data.organisationUnits); + + _.each(data.forms, function(v, k) { + localStorage['form_' + k] = JSON.stringify(v); + }); + + $.mobile.hidePageLoadingMsg(); + }).error(function() { + // offline ? reuse meta-data already present }); });