=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/smscommand/SMSCommandService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/smscommand/SMSCommandService.java 2013-11-20 04:03:42 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/smscommand/SMSCommandService.java 2013-11-22 04:59:36 +0000 @@ -52,4 +52,8 @@ SMSCommand getSMSCommand( String commandName, ParserType parserType ); void saveSpecialCharacterSet( Set specialCharacters ); + + void deleteSpecialCharacterSet( Set specialCharacters ); + + void deleteCodeSet( Set codes ); } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/smscommand/SMSCommandStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/smscommand/SMSCommandStore.java 2013-11-20 04:03:42 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/smscommand/SMSCommandStore.java 2013-11-22 04:59:36 +0000 @@ -50,4 +50,8 @@ SMSCommand getSMSCommand( String commandName, ParserType parserType ); void saveSpecialCharacterSet( Set specialCharacters ); + + void deleteSpecialCharacterSet( Set specialCharacters ); + + void deleteCodeSet( Set codes ); } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/hibernate/HibernateSMSCommandStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/hibernate/HibernateSMSCommandStore.java 2013-11-20 04:03:42 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/hibernate/HibernateSMSCommandStore.java 2013-11-22 04:59:36 +0000 @@ -148,4 +148,27 @@ session.saveOrUpdate( x ); } } + + + @Override + public void deleteCodeSet( Set codes ) + { + Session session = sessionFactory.getCurrentSession(); + + for ( SMSCode x : codes ) + { + session.delete( x ); + } + } + + @Override + public void deleteSpecialCharacterSet( Set specialCharacters ) + { + Session session = sessionFactory.getCurrentSession(); + + for ( SMSSpecialCharacter x : specialCharacters ) + { + session.delete( x ); + } + } } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/smscommand/DefaultSMSCommandService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/smscommand/DefaultSMSCommandService.java 2013-11-20 04:03:42 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/smscommand/DefaultSMSCommandService.java 2013-11-22 04:59:36 +0000 @@ -92,4 +92,18 @@ { smsCommandStore.saveSpecialCharacterSet( specialCharacters ); } + + @Override + public void deleteCodeSet( Set codes ) + { + smsCommandStore.deleteCodeSet( codes ); + + } + + @Override + public void deleteSpecialCharacterSet( Set specialCharacters ) + { + smsCommandStore.deleteSpecialCharacterSet( specialCharacters ); + + } } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/smscommand/EditSMSCommandForm.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/smscommand/EditSMSCommandForm.java 2013-11-20 04:03:42 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/smscommand/EditSMSCommandForm.java 2013-11-22 04:59:36 +0000 @@ -147,11 +147,21 @@ } SMSCommand c = getSMSCommand(); + if ( selectedDataSetID > -1 && c != null ) { c.setCurrentPeriodUsedForReporting( currentPeriodUsedForReporting ); c.setName( name ); c.setSeparator( separator ); + + //remove codes + Set toRemoveCodes = c.getCodes(); + smsCommandService.deleteCodeSet( toRemoveCodes ); + + //remove special characters + Set toRemoveCharacters = c.getSpecialCharacters(); + smsCommandService.deleteSpecialCharacterSet( toRemoveCharacters ); + c.setCodes( codeSet ); c.setDefaultMessage( defaultMessage ); c.setReceivedMessage( receivedMessage ); @@ -159,7 +169,6 @@ { c.setUserGroup( userGroupService.getUserGroup( userGroupID ) ); } - c.getSpecialCharacters().removeAll( c.getSpecialCharacters() ); c.setSpecialCharacters( specialCharacterSet ); smsCommandService.save( c ); }