Author: tdraier
Date: Fri Aug  4 17:46:25 2006
New Revision: 14848

URL: https://svndev.jahia.net/websvn/listing.php?sc=1&rev=14848&repname=jahia
Log:
go to staging when updating metadata

Modified:
    trunk/core/src/java/org/jahia/content/ContentObject.java
    trunk/core/src/java/org/jahia/services/containers/ContentContainer.java
    trunk/core/src/java/org/jahia/services/fields/ContentField.java

Modified: trunk/core/src/java/org/jahia/content/ContentObject.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/content/ContentObject.java&rev=14848&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/content/ContentObject.java (original)
+++ trunk/core/src/java/org/jahia/content/ContentObject.java Fri Aug  4 
17:46:25 2006
@@ -1828,4 +1828,16 @@
     public abstract void setProperty(String name, String val) throws 
JahiaException;
 
     public abstract int getPageID();
+
+    public void createStaging(String lang) throws JahiaException {
+        SortedSet activeAndStagingEntryStates = 
getActiveAndStagingEntryStates();
+        for (Iterator iterator = activeAndStagingEntryStates.iterator(); 
iterator.hasNext();) {
+            ContentObjectEntryState fromEntryState = (ContentObjectEntryState) 
iterator.next();
+            if (fromEntryState.getLanguageCode().equals(lang) &&
+                    fromEntryState.getWorkflowState() == 
ContentObjectEntryState.WORKFLOW_STATE_ACTIVE) {
+                ContentObjectEntryState toEntryState = 
ContentObjectEntryState.getEntryState (0, lang);
+                copyEntry(fromEntryState, toEntryState);
+            }
+        }
+    }
 }

Modified: 
trunk/core/src/java/org/jahia/services/containers/ContentContainer.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/containers/ContentContainer.java&rev=14848&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/services/containers/ContentContainer.java 
(original)
+++ trunk/core/src/java/org/jahia/services/containers/ContentContainer.java Fri 
Aug  4 17:46:25 2006
@@ -880,7 +880,7 @@
             ContentObjectEntryState entryState = (ContentObjectEntryState) 
activeAndStagedEntryStates.get (
                     i);
             // ok huston, we have an active entry
-            if (!entryState.isStaging ()) {
+            if (!entryState.isStaging () && 
!languageStates.containsKey(entryState.getLanguageCode())) {
                 languageStates.put (entryState.getLanguageCode (),
                         new Integer (entryState.getWorkflowState ()));
             }

Modified: trunk/core/src/java/org/jahia/services/fields/ContentField.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/fields/ContentField.java&rev=14848&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/services/fields/ContentField.java (original)
+++ trunk/core/src/java/org/jahia/services/fields/ContentField.java Fri Aug  4 
17:46:25 2006
@@ -1313,12 +1313,49 @@
         return newEntryState;
     }
 
+    private static Set systemMetadata = new HashSet();
+
+    static {
+        systemMetadata.add("creationDate");
+        systemMetadata.add("creator");
+        systemMetadata.add("lastContributor");
+        systemMetadata.add("lastModificationDate");
+        systemMetadata.add("lastPublisher");
+        systemMetadata.add("lastPublishingDate");
+        systemMetadata.add("pagePath");
+    }
+
     public void postSet(EntrySaveRequest saveRequest) throws JahiaException{
 
         if (!isMetadata()) {
             WorkflowEvent theEvent = new WorkflowEvent(this, this, 
saveRequest.getUser(), saveRequest.getLanguageCode(), false);
             ServicesRegistry.getInstance ().getJahiaEventService 
().fireObjectChanged(theEvent);
         } else {
+            Set systemMetadata = new HashSet();
+            systemMetadata.add("creationDate");
+            systemMetadata.add("creator");
+            systemMetadata.add("lastContributor");
+            systemMetadata.add("lastModificationDate");
+            systemMetadata.add("lastPublisher");
+            systemMetadata.add("lastPublishingDate");
+            systemMetadata.add("pagePath");
+            JahiaFieldDefinition d = (JahiaFieldDefinition) 
JahiaFieldDefinition.getChildInstance(""+ getDefinitionID(null));
+            if (!systemMetadata.contains(d.getName())) {
+                try {
+                    ContentObject c = (ContentObject) 
ContentObject.getInstance(getMetadataOwnerObjectKey());
+                    Map ls = c.getLanguagesStates();
+                    Set l = ls.keySet();
+                    for (Iterator iterator = l.iterator(); 
iterator.hasNext();) {
+                        String language = (String) iterator.next();
+                        if (((Integer)ls.get(language)).intValue() == 
EntryLoadRequest.ACTIVE_WORKFLOW_STATE) {
+                            c.createStaging(language);
+                        }
+                    }
+                } catch (ClassNotFoundException e) {
+                    // [EMAIL PROTECTED]
+                }
+
+            }
 //            stopWatch.start("index postSet");
 //            ServicesRegistry.getInstance().getJahiaSearchService()
 //                    .indexContentObject(this,saveRequest.getUser());

Reply via email to