r92 - in trunk: echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta echobase-services/src/main/java/fr/ifremer/echobase/services echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor
Author: sletellier Date: 2011-11-17 17:53:37 +0100 (Thu, 17 Nov 2011) New Revision: 92 Url: http://forge.codelutin.com/repositories/revision/echobase/92 Log: - Allow modify time (using jquery timepicker) Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java 2011-11-17 13:55:15 UTC (rev 91) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/ColumnMeta.java 2011-11-17 16:53:37 UTC (rev 92) @@ -91,6 +91,14 @@ return TopiaEntity.class.isAssignableFrom(type); } + public boolean isDate() { + return Date.class.equals(type); + } + + public boolean isBoolean() { + return boolean.class.equals(type); + } + public Column getHibernateColumn() { return hibernateColumn; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-17 13:55:15 UTC (rev 91) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-17 16:53:37 UTC (rev 92) @@ -69,10 +69,13 @@ /** Logger. */ private static final Log log = LogFactory.getLog(DbEditorService.class); - private static final String EXPORT_FILE_PREFIX = "modifExport-"; - private static final String SCV_EXT = ".csv"; + public static final String EXPORT_FILE_PREFIX = "modifExport-"; + public static final String SCV_EXT = ".csv"; + public static final String EXPORT_FILE_FORMAT_DATE = "yyyyMMddHHmmss"; + public static final String BASE_EDITOR_FORMAT_DATE = "dd/MM/yyyy HH:mm:ss"; protected DecoratorService decoratorService; + protected SimpleDateFormat dateFormat; protected DecoratorService getDecoratorService() { if (decoratorService == null) { @@ -81,6 +84,13 @@ return decoratorService; } + public SimpleDateFormat getDateFormat() { + if (dateFormat == null) { + dateFormat = new SimpleDateFormat(BASE_EDITOR_FORMAT_DATE); + } + return dateFormat; + } + public List<TopiaEntity> getForeignDatas(String entityType) { Preconditions.checkNotNull(entityType); EchoBaseEntityEnum entityEnum = EchoBaseEntityEnum.valueOf(entityType); @@ -245,7 +255,7 @@ value = daoFK.findByTopiaId(propertyValue); } else if (Date.class.equals(columnMeta.getType())) { - value = new SimpleDateFormat("dd/MM/yyyy").parse(propertyValue); + value = getDateFormat().parse(propertyValue); } else { value = propertyValue; } @@ -363,9 +373,10 @@ property = topiaId; } - // FIXME : tempory hack for export - if (property != null && Date.class.equals(columnMeta.getType())) { - property = new SimpleDateFormat("dd/MM/yyyy").format((Date)property); + // Convert date to timestamp + if (columnMeta.isDate() && property != null) { + Date date = (Date) property; + property = getDateFormat().format(date); } row.put(propertyName, property); } @@ -442,7 +453,7 @@ } // Write export file - SimpleDateFormat format = new SimpleDateFormat("yyMMddHHmm"); + SimpleDateFormat format = new SimpleDateFormat(EXPORT_FILE_FORMAT_DATE); String now = format.format(new Date()); // Write in tmp dir Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java 2011-11-17 13:55:15 UTC (rev 91) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/LoadEntities.java 2011-11-17 16:53:37 UTC (rev 92) @@ -31,9 +31,7 @@ import fr.ifremer.echobase.services.DbEditorService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.lang3.StringUtils; -import org.nuiton.topia.persistence.TopiaEntity; -import java.util.Date; import java.util.List; import java.util.Map; @@ -96,24 +94,20 @@ } public String getEditType(ColumnMeta meta) { - Class<?> type = meta.getType(); String editType="text"; - if (boolean.class.equals(type)) { + if (meta.isBoolean()) { editType = "checkbox"; - } else if (TopiaEntity.class.isAssignableFrom(type)) { + } else if (meta.isDate()) { editType = "select"; } return editType; } public String getFormatter(ColumnMeta meta) { - Class<?> type = meta.getType(); String editType="'string'"; - if (boolean.class.equals(type)) { + if (meta.isBoolean()) { editType = "'checkbox'"; - } else if (Date.class.isAssignableFrom(type)) { - editType = "'date'"; - } else if (TopiaEntity.class.isAssignableFrom(type)) { + } else if (meta.isFK()) { editType = "'formatEntityLabel'"; } return editType; Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2011-11-17 13:55:15 UTC (rev 91) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2011-11-17 16:53:37 UTC (rev 92) @@ -91,8 +91,7 @@ if ($(editor).hasClass("hasDatepicker")) { // Update date - var inst = $.datepicker._getInst(editor); - $.datepicker._setDate(inst, new Date(value)); + updateDate(value, editor); } else { // get type for checkbox @@ -127,6 +126,32 @@ var columnName = options.colModel.name + "_lib"; return rowObject[columnName]; } + + function updateDate(value, editor) { + + // parse date formated like : dd/MM/yyyy HH:mm:ss + var dateString = value.substring(0, 10); + var dateSplited = dateString.split("/"); + + var hourString = value.substring(11, 19); + var hourSplited = hourString.split(":"); + + var options_timepicker = {}; + options_timepicker.day = dateSplited[0]; + options_timepicker.month = dateSplited[1]; + options_timepicker.year = dateSplited[2]; + options_timepicker.hour = hourSplited[0]; + options_timepicker.minute = hourSplited[1]; + options_timepicker.second = hourSplited[2]; + options_timepicker.showOn = "both"; + options_timepicker.buttonImage = "/echobase/struts/js/calendar.gif"; + options_timepicker.timepicker = true; + options_timepicker.jqueryaction = "datepicker"; + options_timepicker.id = editor.id; + options_timepicker.name = editor.id; + + jQuery.struts2_jquery.bind(editor, options_timepicker); + } </script> <div class="inline"> @@ -258,9 +283,15 @@ label="%{getText(#meta.i18nKey)}" value="%{false}"/> </s:elseif> <s:elseif test='#meta.columnType == "date"'> + <%--<sj:datepicker id="%{#meta.name}"--%> + <%--name="%{#meta.name}"--%> + <%--label="%{getText(#meta.i18nKey)}"/>--%> <sj:datepicker id="%{#meta.name}" name="%{#meta.name}" - label="%{getText(#meta.i18nKey)}"/> + label="%{getText(#meta.i18nKey)}" + timepicker="true" + timepickerShowSecond="true" + timepickerFormat="hh:mm:ss"/> </s:elseif> </s:else> <br/>
participants (1)
-
sletellier@users.forge.codelutin.com