r1026 - in trunk: echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportCoser echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportCoser echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportCoser echobase-ui/src/main/resources/i18n echobase-ui/src/main/webapp/WEB-INF/jsp/exportCoser
Author: tchemit Date: 2014-06-04 11:57:42 +0200 (Wed, 04 Jun 2014) New Revision: 1026 Url: http://forge.codelutin.com/projects/echobase/repository/revisions/1026 Log: fixes #5180: Am?\195?\169ioration de l'export Coser Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportCoser/ExportCoserConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportCoser/ExportCoserService.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportCoser/Configure.java trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportCoser/Configure-validation.xml trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportCoser/configure.jsp Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportCoser/ExportCoserConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportCoser/ExportCoserConfiguration.java 2014-06-04 09:57:19 UTC (rev 1025) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportCoser/ExportCoserConfiguration.java 2014-06-04 09:57:42 UTC (rev 1026) @@ -75,17 +75,43 @@ * Ids of population indicators to extract. */ private Set<String> populationIndicator; + /** + * Is the project is publishable by Coser? + */ + private boolean publishable; + + /** * Should we produce raw data? */ - private boolean publishRawData; + private boolean extractRawData; /** + * Should we produce maps? + */ + private boolean extractMap; + + /** + * Should we produce community indicators? + */ + private boolean extractCommunityIndicator; + + /** + * Should we produce population indicators? + */ + private boolean extractPopulationIndicator; + + /** * Name of user performing the action. */ private String userName; /** + * Comment. + */ + private String comment; + + /** * Database configuration. */ private JdbcConfiguration dbConfiguration; @@ -153,12 +179,12 @@ this.userName = userName; } - public boolean isPublishRawData() { - return publishRawData; + public boolean isPublishable() { + return publishable; } - public void setPublishRawData(boolean publishRawData) { - this.publishRawData = publishRawData; + public void setPublishable(boolean publishable) { + this.publishable = publishable; } public Set<String> getCommunityIndicator() { @@ -177,6 +203,46 @@ this.populationIndicator = populationIndicator; } + public boolean isExtractRawData() { + return extractRawData; + } + + public void setExtractRawData(boolean extractRawData) { + this.extractRawData = extractRawData; + } + + public boolean isExtractMap() { + return extractMap; + } + + public void setExtractMap(boolean extractMap) { + this.extractMap = extractMap; + } + + public boolean isExtractCommunityIndicator() { + return extractCommunityIndicator; + } + + public void setExtractCommunityIndicator(boolean extractCommunityIndicator) { + this.extractCommunityIndicator = extractCommunityIndicator; + } + + public boolean isExtractPopulationIndicator() { + return extractPopulationIndicator; + } + + public void setExtractPopulationIndicator(boolean extractPopulationIndicator) { + this.extractPopulationIndicator = extractPopulationIndicator; + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + @Override public void destroy() throws IOException { if (workingDirectory != null) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportCoser/ExportCoserService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportCoser/ExportCoserService.java 2014-06-04 09:57:19 UTC (rev 1025) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportCoser/ExportCoserService.java 2014-06-04 09:57:42 UTC (rev 1026) @@ -83,46 +83,85 @@ Preconditions.checkNotNull(model.getPopulationIndicator()); Preconditions.checkNotNull(model.getCommunityIndicator()); - model.setNbSteps(4 + - 4 + // raw data - model.getPopulationIndicator().size() + 1 + - model.getCommunityIndicator().size() + 1); + int nbSteps = 3; + boolean extractMaps = model.isExtractMap(); + if (extractMaps) { + nbSteps += 2; + } + + boolean extractRawData = model.isExtractRawData(); + if (extractRawData) { + nbSteps += 4; + } + + boolean extractPopulationIndicators = model.isExtractPopulationIndicator(); + if (extractPopulationIndicators) { + nbSteps += model.getPopulationIndicator().size() + 1; + } + + boolean extractCommunityIndicators = model.isExtractCommunityIndicator(); + if (extractCommunityIndicators) { + nbSteps += model.getCommunityIndicator().size() + 1; + } + + model.setNbSteps(nbSteps); + Mission mission = persistenceService.getMission(model.getMissionId()); Preconditions.checkNotNull(mission); File tempDirectory = model.getWorkingDirectory(); - // 1 - invoke EchoR - File echRMapsDir = generateMaps(mission, - tempDirectory, - model.getDbConfiguration()); - model.incrementsProgress(); - - // 2 - create echobase project + // 1 - create echobase project EchoBaseProject project = createProject(tempDirectory, model, mission.getName()); model.incrementsProgress(); - // 3 - Extract source files - extractRawData(project, mission, model); + // Extract maps (invoking EchoR) + if (extractMaps) { - // 4 - Extract population indicators - extractPopulationIndicators(model, project, mission); + File echRMapsDir = generateMaps(mission, + tempDirectory, + model.getDbConfiguration()); - // 5 - Extract community indicators - extractCommunityIndicators(model, project, mission); + model.incrementsProgress(); - // 6 - Export species file + copyMaps(project, echRMapsDir); + model.incrementsProgress(); + + } + + // Extract source files + if (extractRawData) { + + extractRawData(project, mission, model); + + } + + // Extract population indicators + if (extractPopulationIndicators) { + + extractPopulationIndicators(model, project, mission); + + } + + // Extract community indicators + if (extractCommunityIndicators) { + + extractCommunityIndicators(model, project, mission); + + } + + // 2 - Export species file extractSpeciesFile(project); model.incrementsProgress(); - // 7 - create archive + // 3 - create archive File zipFile = generateArchive( project, - tempDirectory, - echRMapsDir); + tempDirectory + ); model.setExportFile(zipFile); model.incrementsProgress(); @@ -152,10 +191,10 @@ project.setFacadeName(model.getFacade()); project.setZoneName(model.getZone()); project.setSurveyName(missionName); - project.setAuthor("EchoBase user: " + model.getUserName()); + project.setAuthor(model.getUserName()); project.setCreationDate(serviceContext.newDate()); - project.setComment("Created by Echobase application (db: " + getUserDbUrl() + ")"); - project.setPubliableResult(true); + project.setComment(model.getComment()); + project.setPubliableResult(model.isPublishable()); project.save(); @@ -166,10 +205,8 @@ } protected File generateArchive(EchoBaseProject project, - File tempDirectory, - File echRMapsDir) throws IOException { + File tempDirectory) throws IOException { - copyMaps(project, echRMapsDir); String fileName = project.getZoneName() + "-" + project.getName() + ".zip"; File zipFile = new File(tempDirectory, fileName); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportCoser/Configure.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportCoser/Configure.java 2014-06-04 09:57:19 UTC (rev 1025) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportCoser/Configure.java 2014-06-04 09:57:42 UTC (rev 1026) @@ -111,11 +111,17 @@ @Override protected ExportCoserConfiguration createModel() { ExportCoserConfiguration result = new ExportCoserConfiguration(); + result.setExtractCommunityIndicator(true); + result.setExtractPopulationIndicator(true); + result.setExtractMap(true); + result.setExtractRawData(true); + result.setPublishable(true); EchoBaseSession userSession = getEchoBaseSession(); JdbcConfiguration workingDbConfiguration = userSession.getWorkingDbConfiguration(); result.setDbConfiguration(workingDbConfiguration); result.setUserName(userSession.getUser().getEmail()); + result.setComment("Created by Echobase application (db: " + workingDbConfiguration.getUrl() + ")"); return result; } Modified: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportCoser/Configure-validation.xml =================================================================== --- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportCoser/Configure-validation.xml 2014-06-04 09:57:19 UTC (rev 1025) +++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/exportCoser/Configure-validation.xml 2014-06-04 09:57:42 UTC (rev 1026) @@ -38,16 +38,28 @@ </field-validator> </field> + <field name="model.userName"> + <field-validator type="requiredstring"> + <message key="echobase.error.exportCoser.userName.required"/> + </field-validator> + </field> + + <field name="model.comment"> + <field-validator type="requiredstring"> + <message key="echobase.error.exportCoser.comment.required"/> + </field-validator> + </field> + <field name="model.populationIndicator"> <field-validator type="fieldexpression"> - <param name="expression">!(model.populationIndicator == null || model.populationIndicator.empty)</param> + <param name="expression">!model.extractPopulationIndicator || !(model.populationIndicator == null || model.populationIndicator.empty)</param> <message key="echobase.error.exportCoser.populationIndicator.required"/> </field-validator> </field> <field name="model.communityIndicator"> <field-validator type="fieldexpression"> - <param name="expression">!(model.communityIndicator == null || model.communityIndicator.empty)</param> + <param name="expression">!model.extractCommunityIndicator || !(model.communityIndicator == null || model.communityIndicator.empty)</param> <message key="echobase.error.exportCoser.communityIndicator.required"/> </field-validator> </field> Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties =================================================================== --- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2014-06-04 09:57:19 UTC (rev 1025) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2014-06-04 09:57:42 UTC (rev 1026) @@ -65,6 +65,7 @@ echobase.common.cellRegionAssociationFile= echobase.common.cellRegionResultFile= echobase.common.cellRegionsFile= +echobase.common.comment=Comment echobase.common.communityIndicator=Community indicators echobase.common.dataCentre=Data center echobase.common.dataCentreEmail=Data center email @@ -83,6 +84,10 @@ echobase.common.esduBySpeciesAndAgeCategoryFile= echobase.common.esduBySpeciesAndSizeCategoryFile= echobase.common.exportDbMode=Mode +echobase.common.extractCommunityIndicator=Extract community indicators +echobase.common.extractMaps=Extract maps +echobase.common.extractPopulationIndicator=Extract population indicators +echobase.common.extractRawData=Extract raw data echobase.common.facade=Facade (Coser) echobase.common.gearMetadataFile= echobase.common.id=ID @@ -137,6 +142,7 @@ echobase.common.processingDescription=Data processing description echobase.common.processingTemplate=Data processing template echobase.common.project=Project +echobase.common.publishable=Make the project publishable via Coser echobase.common.resultLabel=Results label echobase.common.selectall=Select All echobase.common.selectnone=Unselect All @@ -157,6 +163,7 @@ echobase.common.transitFile= echobase.common.transitRelatedActivity=Transit related activities echobase.common.user=User +echobase.common.userName=User name echobase.common.vessel=Vessel echobase.common.voyage=Cruise echobase.common.voyageDescription=Description @@ -174,10 +181,12 @@ echobase.error.export.sqlQuery.forbidden.insert.word=La requète contient le mot 'INSERT', ce qui est interdit echobase.error.export.sqlQuery.forbidden.update.word=La requète contient le mot 'UPDATE', ce qui est interdit echobase.error.export.sqlQuery.requiredstring=La requète de l'export est obligatoire +echobase.error.exportCoser.comment.required=Comment is required echobase.error.exportCoser.communityIndicator.required=You must select at least one community indicator echobase.error.exportCoser.facade.required=No facade selected echobase.error.exportCoser.mission.required=No mission selected echobase.error.exportCoser.populationIndicator.required=You must select at least one population indicator +echobase.error.exportCoser.userName.required=User name is required echobase.error.exportCoser.zone.required=No zone selected echobase.error.import.acousticDensityUnit.required=acousticDensityUnit non renseigné echobase.error.import.acquisitionSoftwareVersionER60.required=acquisitionSoftwareVersionER60 non renseigné Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties =================================================================== --- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2014-06-04 09:57:19 UTC (rev 1025) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2014-06-04 09:57:42 UTC (rev 1026) @@ -65,6 +65,7 @@ echobase.common.cellRegionAssociationFile= echobase.common.cellRegionResultFile= echobase.common.cellRegionsFile= +echobase.common.comment=Commentaire echobase.common.communityIndicator=indicateurs de communauté echobase.common.dataCentre=Centre de données echobase.common.dataCentreEmail=Courriel du centre de données @@ -83,6 +84,10 @@ echobase.common.esduBySpeciesAndAgeCategoryFile= echobase.common.esduBySpeciesAndSizeCategoryFile= echobase.common.exportDbMode=Mode +echobase.common.extractCommunityIndicator=Extraire les indicateurs de communauté +echobase.common.extractMaps=Extraire les cartes +echobase.common.extractPopulationIndicator=Extraire les indicateurs de population +echobase.common.extractRawData=Extraire les sources echobase.common.facade=Facade (Coser) echobase.common.gearMetadataFile= echobase.common.id=Identifiant @@ -137,6 +142,7 @@ echobase.common.processingDescription=Description de la méthode de pré-traitement des données echobase.common.processingTemplate=Intitulé de la méthode de pré-traitement des données echobase.common.project=Projet +echobase.common.publishable=Rendre le projet publiable via Coser echobase.common.resultLabel=Intitulé des résultats echobase.common.selectall=Tout sélectionner echobase.common.selectnone=Tout désélectionner @@ -157,6 +163,7 @@ echobase.common.transitFile= echobase.common.transitRelatedActivity=Travaux réalisés pendant le transit echobase.common.user=Utilisateur +echobase.common.userName=Nom de l'utilisateur echobase.common.vessel=Navire echobase.common.voyage=Campagne echobase.common.voyageDescription=Description @@ -174,10 +181,12 @@ echobase.error.export.sqlQuery.forbidden.insert.word=La requète contient le mot 'INSERT', ce qui est interdit echobase.error.export.sqlQuery.forbidden.update.word=La requète contient le mot 'UPDATE', ce qui est interdit echobase.error.export.sqlQuery.requiredstring=La requète de l'export est obligatoire +echobase.error.exportCoser.comment.required=Commentaire non renseigné echobase.error.exportCoser.communityIndicator.required=Il faut sélectionner au moins un indicateur de communauté echobase.error.exportCoser.facade.required=La sélection d'une facade est obligatoire echobase.error.exportCoser.mission.required=La sélection d'une série est obligatoire echobase.error.exportCoser.populationIndicator.required=Il faut sélectionner au moins un indicateur de population +echobase.error.exportCoser.userName.required=Nom d'utilisateur non renseigné echobase.error.exportCoser.zone.required=La sélection d'une zone est obligatoire echobase.error.import.acousticDensityUnit.required=acousticDensityUnit non renseigné echobase.error.import.acquisitionSoftwareVersionER60.required=acquisitionSoftwareVersionER60 non renseigné Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportCoser/configure.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportCoser/configure.jsp 2014-06-04 09:57:19 UTC (rev 1025) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportCoser/configure.jsp 2014-06-04 09:57:42 UTC (rev 1026) @@ -40,6 +40,18 @@ $(select).change(); } + function changeExtractIndicator(checkbox, select) { + + if ($(checkbox).is(":checked")) { + $('#' + select).attr('disabled', false); + $('.' + select).show(); + } + else { + $('#' + select).attr('disabled', 'disabled'); + $('.' + select).hide(); + } + } + $(document).ready(function () { $.autoSelectZones( @@ -49,6 +61,15 @@ '<s:property value="model.facade"/>', '<s:property value="model.zone"/>' ); + + var communityChangefunction = function () { changeExtractIndicator('#extractCommunityIndicator', 'communityIndicator'); }; + $('#extractCommunityIndicator').change(communityChangefunction); + communityChangefunction(); + + var populationChangefunction = function () { changeExtractIndicator('#extractPopulationIndicator', 'populationIndicator'); }; + $('#extractPopulationIndicator').change(populationChangefunction); + populationChangefunction(); + }); </script> <s:form namespace="/exportCoser" method="POST"> @@ -84,6 +105,18 @@ <div class="cleanBoth"></div> <br/> + <s:checkbox name="model.publishable" label='%{getText("echobase.common.publishable")}'/> + <s:checkbox name="model.extractMap" label='%{getText("echobase.common.extractMaps")}'/> + <s:checkbox name="model.extractRawData" label='%{getText("echobase.common.extractRawData")}'/> + <div class="cleanBoth"></div> + <br/> + <s:textfield name="model.userName" label='%{getText("echobase.common.userName")}'/> + <div class="cleanBoth"></div> + <s:textarea name="model.comment" label='%{getText("echobase.common.comment")}' cols="80" rows="5"/> + <div class="cleanBoth"></div> + <s:checkbox id='extractPopulationIndicator' name="model.extractPopulationIndicator" label='%{getText("echobase.common.extractPopulationIndicator")}'/> + <div class="cleanBoth"></div> + <span class="populationIndicator"> <s:select id='populationIndicator' key="model.populationIndicator" label='%{getText("echobase.common.populationIndicator")}' list="communityIndicators" multiple="true" size="10" @@ -98,10 +131,13 @@ onClick="coserUnSelectAll($('#populationIndicator'))" title="<s:text name="echobase.common.selectnone" />"/> </span> - <div class="cleanBoth"></div> <br/> + </span> + <s:checkbox id='extractCommunityIndicator' name="model.extractCommunityIndicator" label='%{getText("echobase.common.extractCommunityIndicator")}'/> + <div class="cleanBoth"></div> + <span class="communityIndicator"> <s:select id='communityIndicator' key="model.communityIndicator" label='%{getText("echobase.common.communityIndicator")}' list="communityIndicators" multiple="true" size="10" @@ -116,9 +152,10 @@ onClick="coserUnSelectAll($('#communityIndicator'))" title="<s:text name="echobase.common.selectnone" />"/> </span> - <div class="cleanBoth"></div> <br/> + </span> + </fieldset> <br/> <s:submit action="configure" value='%{getText("echobase.action.export")}'/>
participants (1)
-
tchemit@users.forge.codelutin.com