r881 - in trunk: echobase-domain/src/main/java/fr/ifremer/echobase/entities echobase-domain/src/main/java/fr/ifremer/echobase/persistence echobase-services/src/main/java/fr/ifremer/echobase/services/service/spatial echobase-services/src/main/java/fr/ifremer/echobase/services/service/workingDb echobase-ui/src/main/java/fr/ifremer/echobase/ui echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb echobase-ui/src/ma
Author: tchemit Date: 2013-11-03 11:39:54 +0100 (Sun, 03 Nov 2013) New Revision: 881 Url: http://forge.codelutin.com/projects/echobase/repository/revisions/881 Log: ref #3667: Faciliter la cr?\195?\169ation de nouvelle base Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/CreatePostgresDb.java Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBasePersistenceContext.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/spatial/SpatialService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/workingDb/WorkingDbConfigurationService.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/ShowSpatialData.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Connect.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java trunk/echobase-ui/src/main/resources/config/struts-workingDb.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/workingDb/manage.jsp Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBasePersistenceContext.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBasePersistenceContext.java 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBasePersistenceContext.java 2013-11-03 10:39:54 UTC (rev 881) @@ -200,15 +200,14 @@ return sqlQuery.findMultipleResult(context); } - - public boolean canUpdatePostgis() { + public boolean isPostgresql() { String dialect = context.getHibernateConfiguration().getProperty(TopiaContextFactory.CONFIG_DIALECT); return DriverType.POSTGRESQL.getDialectClass().getName().equals(dialect); } public boolean isSpatialAware() { - boolean result = canUpdatePostgis(); + boolean result = isPostgresql(); if (result) { Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java 2013-11-03 10:39:54 UTC (rev 881) @@ -23,8 +23,11 @@ * #L% */ +import com.google.common.base.Preconditions; +import fr.ifremer.echobase.entities.DriverType; import fr.ifremer.echobase.entities.EchoBaseUserImpl; import fr.ifremer.echobase.entities.data.VoyageImpl; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.Transaction; @@ -110,6 +113,42 @@ } } + /** + * Create a configuration to connect to the {@code postgres} database + * from a normal database configuration. + * <p/> + * This is used to create a new concrete database. + * <p/> + * <strong>Note: </strong>This only works for postgresql database. + * + * @param jdbcConfiguration jdbc configuration + * @return the jdbcl configuration to {@code postgres} database. + * @since 2.4 + */ + public static JdbcConfiguration newMetaWorkingDb(JdbcConfiguration jdbcConfiguration) { + + String url = jdbcConfiguration.getUrl(); + String dbName = StringUtils.substringAfterLast(url, "/"); + String connectUrl = StringUtils.removeEnd(url, dbName) + "postgres"; + + if (log.isInfoEnabled()) { + log.info("Use meta database conttection url: " + connectUrl); + } + DriverType driverType = jdbcConfiguration.getDriverType(); + + Preconditions.checkArgument( + DriverType.POSTGRESQL.equals(driverType), + "Can't create a meta configuration for a none postgresql database."); + JdbcConfiguration metaConfiguration = JdbcConfiguration.newConfig( + driverType, + connectUrl, + jdbcConfiguration.getLogin(), + jdbcConfiguration.getPassword() + ); + + return metaConfiguration; + } + public static void closeConnection(TopiaContext transaction) { if (transaction == null) { if (log.isTraceEnabled()) { Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java 2013-11-03 10:39:54 UTC (rev 881) @@ -24,8 +24,8 @@ */ import com.google.common.base.Charsets; +import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.config.EchoBaseConfigurationOption; -import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.entities.DriverType; import fr.ifremer.echobase.entities.EchoBaseDAOHelper; import fr.ifremer.echobase.entities.EchoBaseInternalDAOHelper; @@ -73,20 +73,37 @@ */ public static TopiaContext newWorkingDb(JdbcConfiguration jdbcConfiguration) { + TopiaContext result = newWorkingDb(jdbcConfiguration, true); + return result; + } + + /** + * Open a new topia root context from the given jdbc configuration and + * create schema if asked and schema does not exist. + * <p/> + * + * @param jdbcConfiguration jdbc configuration + * @return the new fresh root context + * @since 2.4 + */ + public static TopiaContext newWorkingDb(JdbcConfiguration jdbcConfiguration, boolean createSchema) { + Properties properties = loadWorkingDbConfiguration(jdbcConfiguration); TopiaContext result = newDb(properties); - try { - if (!EchoBaseEntityHelper.isWorkingDbSchemaCreated(result)) { + if (createSchema) { + try { + if (!EchoBaseEntityHelper.isWorkingDbSchemaCreated(result)) { - if (log.isInfoEnabled()) { - log.info("Will create schema for " + - jdbcConfiguration.getUrl()); + if (log.isInfoEnabled()) { + log.info("Will create schema for " + + jdbcConfiguration.getUrl()); + } + ((TopiaPersistenceContext) result).createSchema(); } - ((TopiaPersistenceContext) result).createSchema(); + } catch (TopiaException e) { + throw new EchoBaseTechnicalException("Could not create db schema", e); } - } catch (TopiaException e) { - throw new EchoBaseTechnicalException("Could not create db schema", e); } return result; } @@ -198,8 +215,8 @@ } private static void reloadProperty(Properties properties, - String propertyName, - String propertyNameToRemove) { + String propertyName, + String propertyNameToRemove) { Object o = properties.getProperty(propertyName); properties.put(propertyName, o); properties.remove(propertyNameToRemove); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/spatial/SpatialService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/spatial/SpatialService.java 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/spatial/SpatialService.java 2013-11-03 10:39:54 UTC (rev 881) @@ -266,8 +266,8 @@ return result; } - public boolean canUpdatePostgis() { - boolean result = getEchoBasePersistenceContext().canUpdatePostgis(); + public boolean isPostgresql() { + boolean result = getEchoBasePersistenceContext().isPostgresql(); return result; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/workingDb/WorkingDbConfigurationService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/workingDb/WorkingDbConfigurationService.java 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/workingDb/WorkingDbConfigurationService.java 2013-11-03 10:39:54 UTC (rev 881) @@ -27,10 +27,17 @@ import fr.ifremer.echobase.entities.DriverType; import fr.ifremer.echobase.entities.WorkingDbConfiguration; import fr.ifremer.echobase.entities.WorkingDbConfigurationDAO; +import fr.ifremer.echobase.persistence.JdbcConfiguration; import fr.ifremer.echobase.services.EchoBaseServiceSupport; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.AbstractTopiaContext; import java.io.File; +import java.sql.Connection; +import java.sql.SQLException; import java.util.List; /** @@ -41,6 +48,12 @@ */ public class WorkingDbConfigurationService extends EchoBaseServiceSupport { + /** Logger. */ + private static final Log log = + LogFactory.getLog(WorkingDbConfigurationService.class); + + public static final String CREATE_DB_SQL_QUERY = "CREATE DATABASE \"%s\" WITH OWNER = %s ENCODING 'UTF8' TEMPLATE template0;"; + public List<WorkingDbConfiguration> getWorkingDbConfigurations() { try { List<WorkingDbConfiguration> result = getDAO().findAll(); @@ -128,6 +141,43 @@ } } + /** + * Create the concrete working db from his working configuration. + * <p/> + * <strong>Note: </strong> Works only for pg db. + * + * @param jdbcConf id of the configuration to use. + * @since 2.4 + */ + public void createDb(JdbcConfiguration jdbcConf) throws WorkingDbConfigurationNotFoundException { + + + // get the dbName from his url + String url = jdbcConf.getUrl(); + String dbName = StringUtils.substringAfterLast(url, "/"); + + try { + String sql = String.format(CREATE_DB_SQL_QUERY, dbName, jdbcConf.getLogin()); + if (log.isInfoEnabled()) { + log.info("Create new postgres database: " + dbName + " with sql: " + sql); + } + getEchoBasePersistenceContext().getContext().getHibernateSession().doWork( + new AbstractTopiaContext.SQLWork(sql) { + @Override + public void execute(Connection connection) throws SQLException { + //to create a database, need no transaction block + connection.setAutoCommit(true); + super.execute(connection); + } + } + ); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Can't create a new database: " + dbName, e); + } + } + } + protected WorkingDbConfiguration getExistingConf(String id) throws WorkingDbConfigurationNotFoundException { WorkingDbConfiguration entity = getDAO().findByTopiaId(id); if (entity == null) { Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java 2013-11-03 10:39:54 UTC (rev 881) @@ -165,7 +165,7 @@ * @param jdbcConfiguration the connection configuration to use * @throws TopiaNotFoundException if could not create root context */ - public void initWorkingDb(JdbcConfiguration jdbcConfiguration) throws TopiaNotFoundException { + public void initWorkingDb(JdbcConfiguration jdbcConfiguration, boolean createSchema) throws TopiaNotFoundException { // close any previous db releaseWorkingDb(); @@ -173,7 +173,7 @@ // creates a new topia root context from configuration TopiaContext rootContext = EchobaseTopiaContexts.newWorkingDb( - jdbcConfiguration); + jdbcConfiguration, createSchema); // keep configuration is session set(PROPERTY_WORKING_DB_CONFIGURATION, jdbcConfiguration); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/ShowSpatialData.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/ShowSpatialData.java 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/ShowSpatialData.java 2013-11-03 10:39:54 UTC (rev 881) @@ -79,7 +79,7 @@ // can add postgis if working db is postgresql and has still no echobase // spatial db - canAddSpatial = !model.isWithSpatial() && spatialService.canUpdatePostgis(); + canAddSpatial = !model.isWithSpatial() && spatialService.isPostgresql(); } @Override Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Connect.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Connect.java 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Connect.java 2013-11-03 10:39:54 UTC (rev 881) @@ -71,7 +71,7 @@ try { EchoBaseEntityHelper.checkJDBCConnection(jdbcConf); - getEchoBaseSession().initWorkingDb(jdbcConf); + getEchoBaseSession().initWorkingDb(jdbcConf, true); addFlashMessage(_("echobase.info.workingDbconfiguration.connected", conf.getUrl())); result = SUCCESS; Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/CreatePostgresDb.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/CreatePostgresDb.java (rev 0) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/CreatePostgresDb.java 2013-11-03 10:39:54 UTC (rev 881) @@ -0,0 +1,147 @@ +package fr.ifremer.echobase.ui.actions.workingDb; + +/* + * #%L + * EchoBase :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2013 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import com.opensymphony.xwork2.interceptor.annotations.InputConfig; +import fr.ifremer.echobase.entities.DriverType; +import fr.ifremer.echobase.persistence.EchoBaseEntityHelper; +import fr.ifremer.echobase.persistence.JdbcConfiguration; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.sql.SQLException; + +/** + * To create a fresh postgres database. + * <p/> + * Created on 11/3/13. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.4 + */ +public class CreatePostgresDb extends AbstractWorkingDbAction { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = LogFactory.getLog(CreatePostgresDb.class); + + protected String login; + + protected String password; + + protected JdbcConfiguration jdbcConf; + + protected JdbcConfiguration metaJdbcConf; + + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + @InputConfig(methodName = INPUT) + @Override + public String execute() throws Exception { + + String result = INPUT; + + EchoBaseEntityHelper.checkJDBCConnection(metaJdbcConf); + + try { + + // connect to meta database + getEchoBaseSession().initWorkingDb(metaJdbcConf, false); + + // create database + workingDbConfigurationService.createDb(jdbcConf); + + // connect to new database + getEchoBaseSession().initWorkingDb(jdbcConf, true); + + addFlashMessage(_("echobase.info.workingDb.created", conf.getUrl())); + result = SUCCESS; + + } catch (Exception e) { + + if (log.isErrorEnabled()) { + log.error("Could not create db", e); + } + try { + //close working db if something is wrong. + getEchoBaseSession().releaseWorkingDb(); + } finally { + metaJdbcConf = null; + jdbcConf = null; + addFieldError( + "conf.url", + _("echobase.error.workingDbConfiguration.couldNotCreate", + e.getMessage())); + } + } + return result; + } + + @Override + public void validate() { + + if (!DriverType.POSTGRESQL.equals(getConf().getDriverType())) { + addFieldError( + "conf.driverType", + _("echobase.error.workingDbConfiguration.createOnlyOnPostgresql")); + } + jdbcConf = JdbcConfiguration.newConfig( + getConf().getDriverType(), getConf().getUrl(), + login, password); + + // gets the meta db configuration + metaJdbcConf = EchoBaseEntityHelper.newMetaWorkingDb(jdbcConf); + + // check connection is ok + try { + EchoBaseEntityHelper.checkJDBCConnection(metaJdbcConf); + } catch (SQLException e) { + jdbcConf = null; + addFieldError( + "login", + _("echobase.error.workingDbConfiguration.couldNotConnect", + e.getMessage())); + addFieldError( + "password", + _("echobase.error.workingDbConfiguration.couldNotConnect", + e.getMessage())); + } + } + +} Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/CreatePostgresDb.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java 2013-11-03 10:39:54 UTC (rev 881) @@ -83,7 +83,7 @@ // can add postgis if working db is postgresql and has still no echobase // spatial db - canAddSpatial = !spatialAware && spatialService.canUpdatePostgis(); + canAddSpatial = !spatialAware && spatialService.isPostgresql(); return SUCCESS; } Modified: trunk/echobase-ui/src/main/resources/config/struts-workingDb.xml =================================================================== --- trunk/echobase-ui/src/main/resources/config/struts-workingDb.xml 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-ui/src/main/resources/config/struts-workingDb.xml 2013-11-03 10:39:54 UTC (rev 881) @@ -95,6 +95,17 @@ <result type="redirectToShowList"/> </action> + <!-- Create a new postgres database and connect to it --> + <action name="createPostgresDb" method="execute" + class="fr.ifremer.echobase.ui.actions.workingDb.CreatePostgresDb"> + <interceptor-ref name="prepareParamsStackLoggued"/> + <result name="input" type="showList"/> + <result type="redirectAction"> + <param name="actionName">information</param> + <param name="namespace">/workingDb</param> + </result> + </action> + <!-- Connect to selected workingDbConfiguration --> <action name="connect" method="execute" class="fr.ifremer.echobase.ui.actions.workingDb.Connect"> 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 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2013-11-03 10:39:54 UTC (rev 881) @@ -8,10 +8,12 @@ echobase.action.createEmbeddedApplication=Create a portable database echobase.action.createMission=Create mission echobase.action.createNewMission=Create a new mission +echobase.action.createPostgresDb=Create database echobase.action.createSqlQuery=Save echobase.action.createWorkingDbConfiguration=Save echobase.action.delete=Delete echobase.action.delete.selectedImport=Delete selected imports +echobase.action.deleteConfiguration=Delete echobase.action.display=Display spatial data echobase.action.downloadEmbeddedApplicationFile=Download the portable database echobase.action.downloadExportDbFile=Download database export file @@ -231,6 +233,8 @@ echobase.error.showData.voyage.required=Voyage required echobase.error.warlocation.notFound=Database .war file not found at location %s echobase.error.workingDbConfiguration.couldNotConnect=Could not connect to database (%s) +echobase.error.workingDbConfiguration.couldNotCreate=Could not create new postgres database +echobase.error.workingDbConfiguration.createOnlyOnPostgresql=Database creation is only possible for *Postgresql* type echobase.error.workingDbConfiguration.description.required=Mandatory description echobase.error.workingDbConfiguration.login.required=Mandatory login echobase.error.workingDbConfiguration.url.already.exists=A configuration with same url already exists @@ -274,6 +278,7 @@ echobase.info.user.delete=User %s deleted echobase.info.user.update=User %s updated echobase.info.userSupport=User support +echobase.info.workingDb.created=New database %s created echobase.info.workingDbconfiguration.connected=Connection to the working database '%s' successful echobase.info.workingDbconfiguration.created=Working database configuration '%s' created echobase.info.workingDbconfiguration.deleted=Working database configuration '%s' deleted 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 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2013-11-03 10:39:54 UTC (rev 881) @@ -8,10 +8,12 @@ echobase.action.createEmbeddedApplication=Créer l'application echobase.action.createMission=Créer la mission echobase.action.createNewMission=Créer une nouvelle mission +echobase.action.createPostgresDb=Créer la base echobase.action.createSqlQuery=Enregistrer echobase.action.createWorkingDbConfiguration=Enregistrer echobase.action.delete=Suppression echobase.action.delete.selectedImport=Supprimer les imports sélectionnés +echobase.action.deleteConfiguration=Supprimer echobase.action.display=Afficher les données echobase.action.downloadEmbeddedApplicationFile=Télécharger l'application embarquée echobase.action.downloadExportDbFile=Télécharger le fichier d'export de la base complète @@ -232,6 +234,8 @@ echobase.error.showData.voyage.required=La sélection d'une campagne est obligatoire echobase.error.warlocation.notFound=L'application n'a pas été trouvée à l'emplacement suivant %s echobase.error.workingDbConfiguration.couldNotConnect=Impossible de se connecter (%s) +echobase.error.workingDbConfiguration.couldNotCreate=Impossible de créer la nouvelle base postgres +echobase.error.workingDbConfiguration.createOnlyOnPostgresql=La création d'une base n'est possible que pour le type *Postgresql* echobase.error.workingDbConfiguration.description.required=Description obligatoire echobase.error.workingDbConfiguration.login.required=Login obligatoire echobase.error.workingDbConfiguration.url.already.exists=Une configuration existe déjà avec cette url @@ -275,6 +279,7 @@ echobase.info.user.delete=L'utilisateur '%s' a été supprimé echobase.info.user.update=L'utilisateur '%s' a été mis à jour echobase.info.userSupport=Support utilisateur +echobase.info.workingDb.created=Nouvelle base de donnée %s créée echobase.info.workingDbconfiguration.connected=Connexion à la base de travail '%s' réussie echobase.info.workingDbconfiguration.created=Configuration à la base de travail '%s' créée echobase.info.workingDbconfiguration.deleted=Configuration à la base de travail '%s' supprimée Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/workingDb/manage.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/workingDb/manage.jsp 2013-11-02 11:48:19 UTC (rev 880) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/workingDb/manage.jsp 2013-11-03 10:39:54 UTC (rev 881) @@ -101,6 +101,12 @@ <ul id="dbeditorToolbar" class="toolbar floatRight"> <s:if test="confExists"> + <s:if test="echoBaseSession.user.admin"> + <li> + <s:submit action="createPostgresDb" theme="simple" + key="echobase.action.createPostgresDb"/> + </li> + </s:if> <li> <s:submit action="connect" theme="simple" key="echobase.action.connectToWorkingDb"/> @@ -112,7 +118,7 @@ </li> <li> <s:submit onclick="return confirmDelete();" theme="simple" - key="echobase.action.delete"/> + key="echobase.action.deleteConfiguration"/> </li> </s:if> </s:if>
participants (1)
-
tchemit@users.forge.codelutin.com