=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/config/SmsConfiguration.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/config/SmsConfiguration.java 2012-03-21 02:20:05 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/config/SmsConfiguration.java 2012-03-23 04:01:16 +0000 @@ -31,6 +31,9 @@ import java.util.ArrayList; import java.util.List; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; +import javax.xml.bind.annotation.XmlElements; import javax.xml.bind.annotation.XmlRootElement; /** @@ -81,13 +84,11 @@ this.longNumber = longNumber; } - /* - * @XmlElementWrapper( name = "gateways" ) @XmlElements( { @XmlElement( name = - * "bulksms", type = BulkSmsGatewayConfig.class ), @XmlElement( name = - * "clickatell", type = ClickatellGatewayConfig.class ), @XmlElement( name = - * "http", type = GenericHttpGatewayConfig.class ), @XmlElement( name = - * "modem", type = ModemGatewayConfig.class ) } ) - */ + @XmlElementWrapper( name = "gateways" ) + @XmlElements( { @XmlElement( name = "bulksms", type = BulkSmsGatewayConfig.class ), + @XmlElement( name = "clickatell", type = ClickatellGatewayConfig.class ), + @XmlElement( name = "http", type = GenericHttpGatewayConfig.class ), + @XmlElement( name = "modem", type = ModemGatewayConfig.class ) } ) public List getGateways() { return gateways; === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsTransportService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsTransportService.java 2012-03-21 02:20:05 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsTransportService.java 2012-03-23 04:01:16 +0000 @@ -2,6 +2,8 @@ import java.util.Map; +import org.hisp.dhis.sms.SmsServiceException; + /* * Copyright (c) 2004-2011, University of Oslo * All rights reserved. @@ -38,5 +40,14 @@ { Map getGatewayMap(); - String stopService(); + void stopService(); + + void startService(); + + void reloadConfig() + throws SmsServiceException; + + String getServiceStatus(); + + String getMessageStatus(); } === modified file 'dhis-2/dhis-api/src/test/java/org/hisp/dhis/sms/config/GenericHttpGatewayConfigTest.java' --- dhis-2/dhis-api/src/test/java/org/hisp/dhis/sms/config/GenericHttpGatewayConfigTest.java 2012-03-21 12:37:00 +0000 +++ dhis-2/dhis-api/src/test/java/org/hisp/dhis/sms/config/GenericHttpGatewayConfigTest.java 2012-03-23 04:01:16 +0000 @@ -19,9 +19,7 @@ import javax.xml.bind.Unmarshaller; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; -import org.junit.Ignore; /* * Copyright (c) 2011, University of Oslo @@ -52,7 +50,6 @@ public class GenericHttpGatewayConfigTest { - private String urlTemplate = "http://bulksms.vsms.net:5567/eapi/submission/send_sms/2/2.0?username={username}&password={password}&source_id={sender}&message={message}&msisdn={recipient}"; private String bulk = "bulkusernamepassword"; @@ -75,11 +72,9 @@ } @Test - @Ignore public void testMarshalling() throws IOException, JAXBException { - Writer writer = new StringWriter(); Map parameters = new HashMap(); parameters.put( "username", "u1" ); @@ -99,7 +94,6 @@ } @Test - @Ignore public void testUntmarshalling() throws JAXBException { === modified file 'dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/outbound/TestOutboundSmsService.java' --- dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/outbound/TestOutboundSmsService.java 2012-03-21 04:15:03 +0000 +++ dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/outbound/TestOutboundSmsService.java 2012-03-23 04:01:16 +0000 @@ -60,9 +60,35 @@ } @Override - public String stopService() + public void stopService() { log.debug( "stopService()" ); + } + + @Override + public void startService() + { + log.debug( "startService()" ); + } + + @Override + public String getServiceStatus() + { + log.debug( "getServiceStatus()" ); + return "STARTED"; + } + + @Override + public void reloadConfig() + throws SmsServiceException + { + log.debug( "reloadConfig()" ); + } + + @Override + public String getMessageStatus() + { + log.debug( "getMessageStatus()" ); return null; } } === modified file 'dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/smslib/SmsLibService.java' --- dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/smslib/SmsLibService.java 2012-03-21 02:20:05 +0000 +++ dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/smslib/SmsLibService.java 2012-03-23 04:01:16 +0000 @@ -61,6 +61,8 @@ private SmsConfiguration config; + private String message = "success"; + private final String BULK_GATEWAY = "bulk_gw"; private final String CLICKATELL_GATEWAY = "clickatell_gw"; @@ -94,12 +96,23 @@ public void sendMessage( OutboundSms sms, String gatewayId ) throws SmsServiceException { + message = getServiceStatus(); + + if ( message != null && (message.equals( "service_stopped" ) || message.equals( "service_stopping" )) ) + { + message = "service_stopped_cannot_send_sms"; + + return; + } + String recipient; Set recipients = sms.getRecipients(); if ( recipients.size() == 0 ) { + message = "there_is_no_recipient_cannot_send_sms"; + log.warn( "Trying to send sms without recipients: " + sms ); return; } @@ -112,13 +125,13 @@ recipient = createTmpGroup( recipients ); } - OutboundMessage message = new OutboundMessage( recipient, sms.getMessage() ); + OutboundMessage outboundMessage = new OutboundMessage( recipient, sms.getMessage() ); String longNumber = config.getLongNumber(); if ( longNumber != null && !longNumber.isEmpty() ) { - message.setFrom( longNumber ); + outboundMessage.setFrom( longNumber ); } boolean sent = false; @@ -129,25 +142,31 @@ if ( gatewayId == null || gatewayId.isEmpty() ) { - sent = getService().sendMessage( message ); + sent = getService().sendMessage( outboundMessage ); } else { - sent = getService().sendMessage( message, gatewayId ); + sent = getService().sendMessage( outboundMessage, gatewayId ); } } catch ( SMSLibException e ) { + message = "Unable to send message: " + sms + " " + e.getCause().getMessage(); + log.warn( "Unable to send message: " + sms, e ); throw new SmsServiceException( "Unable to send message: " + sms, e ); } catch ( IOException e ) { + message = "Unable to send message: " + sms + " " + e.getCause().getMessage(); + log.warn( "Unable to send message: " + sms, e ); throw new SmsServiceException( "Unable to send message: " + sms, e ); } catch ( InterruptedException e ) { + message = "Unable to send message: " + sms + " " + e.getCause().getMessage(); + log.warn( "Unable to send message: " + sms, e ); throw new SmsServiceException( "Unable to send message: " + sms, e ); } @@ -160,8 +179,13 @@ } } - if ( !sent ) - { + if ( sent ) + { + message = "success"; + } + else + { + message = "message_not_sent"; log.warn( "Message not sent" ); } } @@ -189,104 +213,14 @@ } log.debug( "Loading configuration" ); - - if ( config.isEnabled() && reloadConfig() ) - { - log.debug( "Starting SmsLib" ); - startService(); - } - else - { - log.debug( "Sms not enabled or there is no any gateway, won't start service" ); - } - } - - // ------------------------------------------------------------------------- - // Supportive methods - // ------------------------------------------------------------------------- - - private String createTmpGroup( Set recipients ) - { - String groupName = Thread.currentThread().getName(); - - getService().createGroup( groupName ); - - for ( String recepient : recipients ) - { - getService().addToGroup( groupName, recepient ); - } - - return groupName; - } - - private void removeGroup( String groupName ) - { - getService().removeGroup( groupName ); - } - - private void startService() - { - try - { - getService().startService(); - } - catch ( SMSLibException e ) - { - log.warn( "Unable to start smsLib service", e ); - throw new SmsServiceException( "Unable to start smsLib service", e ); - } - catch ( IOException e ) - { - log.warn( "Unable to start smsLib service", e ); - throw new SmsServiceException( "Unable to start smsLib service", e ); - } - catch ( InterruptedException e ) - { - log.warn( "Unable to start smsLib service", e ); - throw new SmsServiceException( "Unable to start smsLib service", e ); - } + reloadConfig(); + + log.debug( "Starting SmsLib" ); + startService(); } @Override - public String stopService() - { - String status = "success"; - - try - { - getService().stopService(); - } - catch ( SMSLibException e ) - { - status = "Unable to stop smsLib service" + e.getCause().getMessage(); - - log.warn( "Unable to stop smsLib service", e ); - throw new SmsServiceException( "Unable to stop smsLib service", e ); - } - catch ( IOException e ) - { - status = "Unable to stop smsLib service" + e.getCause().getMessage(); - - log.warn( "Unable to stop smsLib service", e ); - throw new SmsServiceException( "Unable to stop smsLib service", e ); - } - catch ( InterruptedException e ) - { - status = "Unable to stop smsLib service" + e.getCause().getMessage(); - - log.warn( "Unable to stop smsLib service", e ); - throw new SmsServiceException( "Unable to stop smsLib service", e ); - } - - return status; - } - - private Service getService() - { - return Service.getInstance(); - } - - private boolean reloadConfig() + public void reloadConfig() throws SmsServiceException { Service service = Service.getInstance(); @@ -297,9 +231,12 @@ AGateway gateway = null; - boolean reloaded = false; - // Add gateways + if ( config.getGateways() == null || config.getGateways().isEmpty() ) + { + message = "unable_load_configuration_cause_of_there_is_no_gateway"; + } + for ( SmsGatewayConfig gatewayConfig : config.getGateways() ) { try @@ -325,20 +262,146 @@ gatewayMap.put( MODEM_GATEWAY, gateway.getGatewayId() ); } - reloaded = true; + message = "success"; log.debug( "Added gateway " + gatewayConfig.getName() ); } catch ( GatewayException e ) { - reloaded = false; + message = "Unable to load gateway " + gatewayConfig.getName() + e.getCause().getMessage(); log.warn( "Unable to load gateway " + gatewayConfig.getName(), e ); throw new SmsServiceException( "Unable to load gateway" + gatewayConfig.getName(), e ); } } - - return reloaded; + } + + @Override + public void startService() + { + if ( config.isEnabled() && (message != null && message.equals( "success" )) ) + { + try + { + getService().startService(); + } + catch ( SMSLibException e ) + { + message = "Unable to start smsLib service " + e.getCause().getMessage(); + + log.warn( "Unable to start smsLib service", e ); + throw new SmsServiceException( "Unable to start smsLib service", e ); + } + catch ( IOException e ) + { + message = "Unable to start smsLib service" + e.getCause().getMessage(); + + log.warn( "Unable to start smsLib service", e ); + throw new SmsServiceException( "Unable to start smsLib service", e ); + } + catch ( InterruptedException e ) + { + message = "Unable to start smsLib service" + e.getCause().getMessage(); + + log.warn( "Unable to start smsLib service", e ); + throw new SmsServiceException( "Unable to start smsLib service", e ); + } + } + else + { + message = "sms_unable_or_there_is_no_gatewat_service_not_started"; + + log.debug( "Sms not enabled or there is no any gateway, won't start service" ); + } + } + + @Override + public void stopService() + { + message = "success"; + + try + { + getService().stopService(); + } + catch ( SMSLibException e ) + { + message = "Unable to stop smsLib service " + e.getCause().getMessage(); + + log.warn( "Unable to stop smsLib service", e ); + throw new SmsServiceException( "Unable to stop smsLib service", e ); + } + catch ( IOException e ) + { + message = "Unable to stop smsLib service" + e.getCause().getMessage(); + + log.warn( "Unable to stop smsLib service", e ); + throw new SmsServiceException( "Unable to stop smsLib service", e ); + } + catch ( InterruptedException e ) + { + message = "Unable to stop smsLib service" + e.getCause().getMessage(); + + log.warn( "Unable to stop smsLib service", e ); + throw new SmsServiceException( "Unable to stop smsLib service", e ); + } + } + + @Override + public String getServiceStatus() + { + ServiceStatus serviceStatus = getService().getServiceStatus(); + + if ( serviceStatus == ServiceStatus.STARTED ) + { + return "service_started"; + } + else if ( serviceStatus == ServiceStatus.STARTING ) + { + return "service_starting"; + } + else if ( serviceStatus == ServiceStatus.STOPPED ) + { + return "service_stopped"; + } + else + { + return "service_stopping"; + } + } + + @Override + public String getMessageStatus() + { + return message; + } + + // ------------------------------------------------------------------------- + // Supportive methods + // ------------------------------------------------------------------------- + + private Service getService() + { + return Service.getInstance(); + } + + private String createTmpGroup( Set recipients ) + { + String groupName = Thread.currentThread().getName(); + + getService().createGroup( groupName ); + + for ( String recepient : recipients ) + { + getService().addToGroup( groupName, recepient ); + } + + return groupName; + } + + private void removeGroup( String groupName ) + { + getService().removeGroup( groupName ); } private class OutboundNotification === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml 2012-03-07 11:53:00 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml 2012-03-23 04:01:16 +0000 @@ -272,6 +272,7 @@ /dhis-web-commons/ajax/jsonResponseInput.vm + plainTextError === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/GetSmsConfigurationAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/GetSmsConfigurationAction.java 2012-03-21 02:20:05 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/GetSmsConfigurationAction.java 2012-03-23 04:01:16 +0000 @@ -36,6 +36,7 @@ import org.hisp.dhis.sms.config.ModemGatewayConfig; import org.hisp.dhis.sms.config.SmsConfiguration; import org.hisp.dhis.sms.config.SmsGatewayConfig; +import org.hisp.dhis.sms.outbound.OutboundSmsTransportService; import org.springframework.beans.factory.annotation.Autowired; import com.opensymphony.xwork2.Action; @@ -54,6 +55,9 @@ @Autowired private SmsConfigurationManager smsConfigurationManager; + + @Autowired + private OutboundSmsTransportService smsLibService; // ------------------------------------------------------------------------- // Output @@ -80,9 +84,11 @@ return smsConfig; } - public boolean getSmsServiceStatus() + private String smsServiceStatus; + + public String getSmsServiceStatus() { - return this.smsConfig != null && this.smsConfig.isEnabled(); + return this.smsServiceStatus; } // ------------------------------------------------------------------------- @@ -92,6 +98,8 @@ public String execute() throws Exception { + smsServiceStatus = smsLibService.getServiceStatus(); + smsConfig = smsConfigurationManager.getSmsConfiguration(); if ( smsConfig != null ) === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/MobileSettingsAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/MobileSettingsAction.java 2011-11-14 12:19:36 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/MobileSettingsAction.java 2012-03-23 04:01:16 +0000 @@ -1,5 +1,6 @@ package org.hisp.dhis.mobile.action; + /* * Copyright (c) 2004-2007, University of Oslo * All rights reserved. === 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-03-09 09:40:27 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/ProcessingSendSMSAction.java 2012-03-23 04:01:16 +0000 @@ -31,9 +31,11 @@ import java.util.HashSet; import java.util.Set; +import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.oust.manager.SelectionTreeManager; import org.hisp.dhis.sms.MessageSender; +import org.hisp.dhis.sms.outbound.OutboundSmsTransportService; import org.hisp.dhis.user.CurrentUserService; import org.hisp.dhis.user.User; import org.hisp.dhis.user.UserService; @@ -63,6 +65,9 @@ @Autowired private MessageSender messageSender; + + @Autowired + private OutboundSmsTransportService smsLibService; // ------------------------------------------------------------------------- // Input & Output @@ -96,18 +101,50 @@ this.recipients = recipients; } + private String message; + + public String getMessage() + { + return message; + } + + private I18n i18n; + + // ------------------------------------------------------------------------- + // I18n + // ------------------------------------------------------------------------- + + public void setI18n( I18n i18n ) + { + this.i18n = i18n; + } + // ------------------------------------------------------------------------- // Action Implementation // ------------------------------------------------------------------------- public String execute() { + if ( gatewayId == null || gatewayId.isEmpty() ) + { + message = i18n.getString( "please_select_a_gateway_type_to_send_sms" ); + + return ERROR; + } + if ( smsMessage != null && !smsMessage.isEmpty() ) { if ( recipients != null && !recipients.isEmpty() ) { messageSender.sendMessage( smsSubject, smsMessage, currentUserService.getCurrentUser(), true, recipients, gatewayId ); + + message = smsLibService.getMessageStatus(); + + if ( message != null && !message.equals( "success" ) ) + { + return ERROR; + } } Collection units = selectionTreeManager.getSelectedOrganisationUnits(); @@ -116,6 +153,13 @@ { messageSender.sendMessage( smsSubject, smsMessage, currentUserService.getCurrentUser(), false, new HashSet( userService.getUsersByOrganisationUnits( units ) ), gatewayId ); + + message = smsLibService.getMessageStatus(); + + if ( message != null && !message.equals( "success" ) ) + { + return ERROR; + } } } === added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/ReloadStartStopServiceAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/ReloadStartStopServiceAction.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/ReloadStartStopServiceAction.java 2012-03-23 04:01:16 +0000 @@ -0,0 +1,122 @@ +package org.hisp.dhis.mobile.action; + +/* + * 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 org.hisp.dhis.i18n.I18n; +import org.hisp.dhis.sms.SmsConfigurationManager; +import org.hisp.dhis.sms.outbound.OutboundSmsTransportService; +import org.springframework.beans.factory.annotation.Autowired; + +import com.opensymphony.xwork2.Action; + +/** + * @author Dang Duy Hieu + * @version $Id$ + */ + +public class ReloadStartStopServiceAction + implements Action +{ + // ------------------------------------------------------------------------- + // Dependencies + // ------------------------------------------------------------------------- + + @Autowired + private SmsConfigurationManager smsConfigurationManager; + + @Autowired + private OutboundSmsTransportService smsLibService; + + // ------------------------------------------------------------------------- + // Input & Output + // ------------------------------------------------------------------------- + + private String actionType; + + public void setActionType( String actionType ) + { + this.actionType = actionType; + } + + private String message; + + public String getMessage() + { + return message; + } + + // ------------------------------------------------------------------------- + // I18n + // ------------------------------------------------------------------------- + + private I18n i18n; + + public void setI18n( I18n i18n ) + { + this.i18n = i18n; + } + + // ------------------------------------------------------------------------- + // Action implementation + // ------------------------------------------------------------------------- + + public String execute() + throws Exception + { + if ( smsConfigurationManager.getSmsConfiguration() == null ) + { + message = i18n.getString( "smsconfiguration_not_available" ); + + return INPUT; + } + + if ( actionType != null && actionType.equals( "start" ) ) + { + smsLibService.startService(); + } + else if ( actionType.equals( "stop" ) ) + { + smsLibService.stopService(); + } + else + { + smsLibService.reloadConfig(); + } + + message = smsLibService.getMessageStatus(); + + if ( message != null && !message.equals( "success" ) ) + { + return INPUT; + } + + message = i18n.getString( message ); + + return SUCCESS; + } +} === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/resources/META-INF/dhis/beans.xml 2012-03-21 02:20:05 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/resources/META-INF/dhis/beans.xml 2012-03-23 04:01:16 +0000 @@ -64,5 +64,8 @@ + + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/resources/org/hisp/dhis/mobile/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/resources/org/hisp/dhis/mobile/i18n_module.properties 2012-03-21 02:32:51 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/resources/org/hisp/dhis/mobile/i18n_module.properties 2012-03-23 04:01:16 +0000 @@ -42,10 +42,26 @@ api_id=API ID save_settings=Save Settings add_update_gw=Add or update gateway +start_sms_service=Start SMS Service +stop_sms_service=Stop SMS Service show_send_sms_form=Show send SMS form bulk_gw=BulkSMS Gateway clickatell_gw=Clickatell Gateway http_gw=Generic HTTP Gateway modem_gw=Modem Gateway add_update_gateway_management=Add or Update Gateway Configuration Management -confirm_delete_gateway=Do you want to delete this gateway configuration ? \ No newline at end of file +confirm_delete_gateway=Do you want to delete this gateway configuration ? +smsconfiguration_not_available=SMS Configuration is not available +service_started=SMS Service is started +service_starting=SMS Service is starting +service_stopped=SMS Service is stopped +service_stopping=SMS Service is stopping +message_not_sent=Message not sent +please_select_a_gateway_type_to_send_sms=Please specify a gateway to send SMS +service_stopped_cannot_send_sms=Service is stopped, can\'t send SMS +there_is_no_recipient_cannot_send_sms=There is no any recipient, can\'t send SMS +unable_load_gateway=Unable to load gateway +unable_start_smslib_service=Unable to start smsLib service +unable_stop_smslib_service=Unable to stop smsLib service +sms_unable_or_there_is_no_gatewat_service_not_started=Sms not enabled or there is no any gateway, won\'t start service +unable_load_configuration_cause_of_there_is_no_gateway=Unable to load the configuration cause there is no any gateway \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/resources/struts.xml' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/resources/struts.xml 2012-03-21 02:20:05 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/resources/struts.xml 2012-03-23 04:01:16 +0000 @@ -35,9 +35,9 @@ ../dhis-web-commons/ajax/jsonResponseSuccess.vm + ../dhis-web-commons/ajax/jsonResponseError.vm plainTextError - - + @@ -80,6 +80,12 @@ F_MOBILE_SETTINGS + + ../dhis-web-commons/ajax/jsonResponseSuccess.vm + ../dhis-web-commons/ajax/jsonResponseInput.vm + plainTextError + + showSMSConfigureForm.action === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/webapp/dhis-web-maintenance-mobile/sendSMSPage.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/webapp/dhis-web-maintenance-mobile/sendSMSPage.vm 2012-03-21 08:24:25 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/webapp/dhis-web-maintenance-mobile/sendSMSPage.vm 2012-03-23 04:01:16 +0000 @@ -32,9 +32,9 @@ - #set( $keys = $gatewayMap.keySet() ) + #set( $keys = $!gatewayMap.keySet() ) @@ -121,7 +121,7 @@ function getValidationRulesForSMSPage() { var rules = {}; - + if ( isChecked ) { rules = { 'treeSelectedId': { 'required': true } }; } else { === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/webapp/dhis-web-maintenance-mobile/smsServiceConfiguration.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/webapp/dhis-web-maintenance-mobile/smsServiceConfiguration.vm 2012-03-21 02:20:05 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/webapp/dhis-web-maintenance-mobile/smsServiceConfiguration.vm 2012-03-23 04:01:16 +0000 @@ -16,9 +16,25 @@ }, { 'rules': getValidationRules( 'SMSConfig' ) } ); + + #if ( $!smsServiceStatus && ( $!smsServiceStatus == "service_started" || $!smsServiceStatus == "service_starting" ) ) + actionType = "stop"; + jQuery( "#startStopButton" ).attr( "value", i18n_stop_sms_service ); + #else + actionType = "start"; + jQuery( "#startStopButton" ).attr( "value", i18n_start_sms_service ); + #end + + //alert(actionType); } ); var i18n_confirm_delete = '$encoder.jsEscape( $i18n.getString( "confirm_delete_gateway" ) , "'")'; + var i18n_stop_sms_service = '$encoder.jsEscape( $i18n.getString( "stop_sms_service" ) , "'")'; + var i18n_start_sms_service = '$encoder.jsEscape( $i18n.getString( "start_sms_service" ) , "'")'; + var i18n_sms_service_started = '$encoder.jsEscape( $i18n.getString( "service_started" ) , "'")'; + var i18n_sms_service_stopped = '$encoder.jsEscape( $i18n.getString( "service_stopped" ) , "'")'; + var actionType = "start"; +

$i18n.getString( "sms_service_configuration" )

@@ -29,25 +45,24 @@ ## Input - $i18n.getString("service_status") + $i18n.getString( "service_status" )
- #if( $smsService.isRunning() ) - $i18n.getString("sms_service_is_runnning") - #else - $i18n.getString("sms_service_is_stopped") - #end + $i18n.getString( $!encoder.htmlEncode( $!smsServiceStatus ) )
- - - -    + + + + + + +    @@ -66,7 +81,7 @@ - + @@ -99,6 +114,34 @@ -

$i18n.getString( "add_update_gateway" )

+

$i18n.getString( "add_update_gateway_management" )