Author: tdraier
Date: Fri Sep 14 12:20:25 2007
New Revision: 18443

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18443&repname=
=3Djahia
Log:
fixes field creation (JAHIA-2125) (port 18135)

Modified:
    trunk/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDataManager.=
java

Modified: trunk/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDataMa=
nager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/manager/JahiaFieldsDataManager.java&rev=3D18443&repname=
=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDataManager.=
java (original)
+++ trunk/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDataManager.=
java Fri Sep 14 12:20:25 2007
@@ -823,10 +823,27 @@
     }
 =

     public void updateField(JahiaField theField, JahiaSaveVersion saveVers=
ion) {
-        JahiaFieldsData data =3D dao.findJahiaFieldsDataByPK(new JahiaFiel=
dsDataPK(new Integer(theField.getID()),
-                new Long(theField.getVersionID()),
-                new Integer(theField.getWorkflowState()),
-                theField.getLanguageCode()));
+        JahiaFieldsDataPK pk =3D new JahiaFieldsDataPK();
+        pk.setLanguageCode(theField.getLanguageCode());
+        if (saveVersion.isStaging()) {
+            pk.setWorkflowState(new Integer(saveVersion.getWorkflowState()=
));
+            pk.setVersionId(new Long(0));
+        } else {
+            if (saveVersion.isVersioned()) {
+                dao.backupFieldsData(new Integer(theField.getID()));
+            }
+            pk.setWorkflowState(new Integer(1));
+            pk.setVersionId(new Long(saveVersion.getVersionID()));
+        }
+        pk.setId(new Integer(theField.getID()));
+
+        JahiaFieldsData data =3D dao.findJahiaFieldsDataByPK(pk);
+        boolean isNew =3D false;
+        if (data =3D=3D null) {
+            data =3D new JahiaFieldsData();
+            data.setComp_id(pk);
+            isNew =3D true;
+        }
         data.setConnectType(new Integer(theField.getConnectType()));
         data.setContainerId(new Integer(theField.getctnid()));
         final JahiaFieldsDef fieldDefinition =3D definitionDAO.loadDefinit=
ion(new Integer(theField.getFieldDefID()));
@@ -844,21 +861,11 @@
             value =3D "<empty>";
         }
         data.setValue(value);
-        JahiaFieldsDataPK pk =3D new JahiaFieldsDataPK();
-        pk.setLanguageCode(theField.getLanguageCode());
-        if (saveVersion.isStaging()) {
-            pk.setWorkflowState(new Integer(saveVersion.getWorkflowState()=
));
-            pk.setVersionId(new Long(0));
+        if (isNew) {
+            dao.saveNewVersion(data);
         } else {
-            if (saveVersion.isVersioned()) {
-                dao.backupFieldsData(new Integer(theField.getID()));
-            }
-            pk.setWorkflowState(new Integer(1));
-            pk.setVersionId(new Long(saveVersion.getVersionID()));
+            dao.update(data);
         }
-        pk.setId(new Integer(theField.getID()));
-        data.setComp_id(pk);
-        dao.update(data);
         theField.setID(data.getComp_id().getId().intValue());
         flushCache(theField.getID(),data.getSiteId()!=3Dnull?data.getSiteI=
d().intValue():0,theField.getctnid());
     }

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to