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());