fix up the webdb_create update stuff
authormh <mh>
Sun, 4 Aug 2002 23:38:21 +0000 (23:38 +0000)
committermh <mh>
Sun, 4 Aug 2002 23:38:21 +0000 (23:38 +0000)
source/mir/storage/Database.java
templates-dist/admin/content.template

index 523fb60..c3a6e93 100755 (executable)
@@ -27,10 +27,13 @@ import  mir.misc.*;
  * Treiber, Host, User und Passwort, ueber den der Zugriff auf die
  * Datenbank erfolgt.
  *
- * @version $Revision: 1.20 $ $Date: 2002/07/21 22:32:25 $
+ * @version $Revision: 1.21 $ $Date: 2002/08/04 23:38:22 $
  * @author $Author: mh $
  *
  * $Log: Database.java,v $
+ * Revision 1.21  2002/08/04 23:38:22  mh
+ * fix up the webdb_create update stuff
+ *
  * Revision 1.20  2002/07/21 22:32:25  mh
  * on insert, the "webdb_lastchange" field should get a value
  *
@@ -69,7 +72,7 @@ public class Database implements StorageObject {
   private SimpleDateFormat _dateFormatterOut = 
                                     new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   private SimpleDateFormat _dateFormatterIn = 
-                                    new SimpleDateFormat("yyyy-MM-dd");
+                                    new SimpleDateFormat("yyyy-MM-dd HH:mm");
   private Calendar _cal = new GregorianCalendar();
 
   private static final int _millisPerHour = 60 * 60 * 1000;
@@ -793,22 +796,25 @@ public class Database implements StorageObject {
                if (metadataFields.contains("webdb_lastchange")) {
                        sql.append(",webdb_lastchange=NOW()");
                }
-    // special case: the webdb_create requires the field in yyyy-mm-dd format
-    // so anything extra will be ignored. which breaks actual updating when a 
-    // a change in date is not desired but the values hash has the correct and
-    // full "webdb_create" field and value in it. solution make it so the update
-    // must be called webdb_create_update. a hack I know.. hopefully
-    // we can replace this whole layer soon. -mh
+    // special case: the webdb_create requires the field in yyyy-mm-dd HH:mm
+    // format so anything extra will be ignored. -mh
                if (metadataFields.contains("webdb_create") &&
-        theEntity.hasValueForField("webdb_create_update")) {
-      // TimeStamp stuff
-      try {
-        java.util.Date d = _dateFormatterIn.parse(
-                                            theEntity.getValue("webdb_create"));
-        Timestamp tStamp = new Timestamp(d.getTime());
-        sql.append(",webdb_create='"+tStamp.toString()+"'");
-      } catch (ParseException e) {
-        throw new StorageObjectException(e.toString());
+        theEntity.hasValueForField("webdb_create")) {
+      // minimum of 10 (yyyy-mm-dd)...
+      if (theEntity.getValue("webdb_create").length() >= 10) {
+        String dateString = theEntity.getValue("webdb_create");
+        // if only 10, then add 00:00 so it doesn't throw a ParseException
+        if (dateString.length() == 10)
+          dateString=dateString+" 00:00";
+
+        // TimeStamp stuff
+        try {
+          java.util.Date d = _dateFormatterIn.parse(dateString);
+          Timestamp tStamp = new Timestamp(d.getTime());
+          sql.append(",webdb_create='"+tStamp.toString()+"'");
+        } catch (ParseException e) {
+          throw new StorageObjectException(e.toString());
+        }
       }
                }
                if (streamedInput != null) {
index 52fee59..160e82c 100755 (executable)
@@ -63,12 +63,13 @@ p {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt}
 </tr>
 
 <tr>
-  <td align="right" bgcolor="#AAAAAA">
+  <td align="right" valign="top" bgcolor="#AAAAAA">
          <font color="#FFFFFF">
     <b>${lang("content.create_date")}:</b>
   </td>
-  <td>
-               <!--<input type="text" size="10" maxlength="10" name="webdb_create_update" value="${data.webdb_create_short}">-->
+  <td colspan="3">
+       ${data.webdb_create}<br><br>${lang("edit")} (yyyy-mm-dd [HH:mm]):
+       <input type="text" size="10" maxlength="16" name="webdb_create" value="">
     <br>
   </td>
        </font>