=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/ProcessingSendSMSAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/ProcessingSendSMSAction.java 2012-05-09 02:52:11 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/ProcessingSendSMSAction.java 2013-01-21 04:36:02 +0000 @@ -27,10 +27,17 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.io.IOException; import java.util.Collection; import java.util.HashSet; import java.util.Set; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.annotate.JsonMethod; +import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility; +import org.codehaus.jackson.map.DeserializationConfig; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.oust.manager.SelectionTreeManager; @@ -127,6 +134,7 @@ // Action Implementation // ------------------------------------------------------------------------- + @SuppressWarnings( "unchecked" ) public String execute() { if ( gatewayId == null || gatewayId.isEmpty() ) @@ -145,6 +153,26 @@ if ( sendTarget != null && sendTarget.equals( "phone" ) ) { + try + { + ObjectMapper mapper = new ObjectMapper().setVisibility( JsonMethod.FIELD, Visibility.ANY ); + mapper.configure( DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false ); + + recipients = mapper.readValue( recipients.iterator().next(), Set.class ); + } + catch ( JsonParseException e ) + { + e.printStackTrace(); + } + catch ( JsonMappingException e ) + { + e.printStackTrace(); + } + catch ( IOException e ) + { + e.printStackTrace(); + } + message = messageSender.sendMessage( smsSubject, smsMessage, currentUserService.getCurrentUser(), true, recipients, gatewayId ); } @@ -183,6 +211,26 @@ Patient patient = null; Set phones = new HashSet(); + try + { + ObjectMapper mapper = new ObjectMapper().setVisibility( JsonMethod.FIELD, Visibility.ANY ); + mapper.configure( DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false ); + + recipients = mapper.readValue( recipients.iterator().next(), Set.class ); + } + catch ( JsonParseException e ) + { + e.printStackTrace(); + } + catch ( JsonMappingException e ) + { + e.printStackTrace(); + } + catch ( IOException e ) + { + e.printStackTrace(); + } + for ( String patientId : recipients ) { patient = patientService.getPatient( Integer.parseInt( patientId ) ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/webapp/dhis-web-maintenance-mobile/javascript/sendSMS.js' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/webapp/dhis-web-maintenance-mobile/javascript/sendSMS.js 2012-05-09 02:52:11 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/webapp/dhis-web-maintenance-mobile/javascript/sendSMS.js 2013-01-21 04:36:02 +0000 @@ -40,7 +40,9 @@ function sendSMSMessage( _form ) { - var params = ""; + var params = "?"; + var p = {}; + p.recipients = []; if ( _target == "phone" ) { @@ -58,11 +60,9 @@ { if ( list[i] && list[i] != '' ) { - params += "recipients=" + list[i] + "&"; + p.recipients.push( list[i] ); } } - - params = "?" + params.substring( 0, params.length - 1 ); } else if ( _target == "user" || _target == "unit" ) { @@ -76,13 +76,18 @@ { if ( hasElements( 'recipients' ) ) { - params = "?" + getParamString( 'recipients', 'recipients' ); + var list = jQuery( '#recipients' ).children(); + + list.each( function( i, item ){ + p.recipients.push( item.value ); + }); } else { markInvalid( "recipients", i18n_list_empty ); } } - jQuery.postUTF8( _form.action + params, + jQuery.postUTF8( _form.action, { + recipients: JSON.stringify( p.recipients ), gatewayId: getFieldValue( 'gatewayId' ), smsMessage: getFieldValue( 'smsMessage' ), sendTarget: getFieldValue( 'sendTarget' )