Author: xlawrence
Date: Fri Aug 31 16:55:02 2007
New Revision: 18331

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18331&repname=
=3Djahia
Log:
resolve issue: http://www.jahia.net/jira/browse/JAHIA-2158

If all values are the same in all languages, the shared language icon is se=
t to true

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/Fields=
EditHelper.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/Fields=
EditHelperAbstract.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/containe=
redit/fieldedit.inc
    branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/shared/p=
age_field.jsp

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/=
FieldsEditHelper.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/data/fields/FieldsEditHelper.java&rev=3D183=
31&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/Fields=
EditHelper.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/Fields=
EditHelper.java Fri Aug 31 16:55:02 2007
@@ -14,7 +14,8 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied=
. =

  * See the License for the specific language governing permissions and =

  * limitations under the License.
- */package org.jahia.data.fields;
+ */
+package org.jahia.data.fields;
 =

 import java.util.HashMap;
 import java.util.Hashtable;
@@ -30,11 +31,11 @@
 import java.io.Serializable;
 =

 /**
- *
  * <p>Title: </p>
  * <p>Description: </p>
  * <p>Copyright: Copyright (c) 2004</p>
  * <p>Company: Jahia Ltd</p>
+ *
  * @author not attributable
  * @version 1.0
  */
@@ -58,7 +59,7 @@
 =

     public Hashtable getFieldForms();
 =

-    public void setFieldForms (Hashtable fieldForms);
+    public void setFieldForms(Hashtable fieldForms);
 =

     public void addFieldForm(int fieldId, String fieldForm);
 =

@@ -89,57 +90,61 @@
     /**
      * Process current fields, return false on error
      *
-     * @param engineName String
+     * @param engineName                  String
      * @param jahiaContentContainerFacade ContainerFacadeInterface
-     * @param elh EngineLanguageHelper
-     * @param jParams ProcessingContext
-     * @param engineMap HashMap
-     * @param mode int
-     * @throws JahiaException
+     * @param elh                         EngineLanguageHelper
+     * @param jParams                     ProcessingContext
+     * @param engineMap                   HashMap
+     * @param mode                        int
      * @return boolean
+     * @throws JahiaException
      */
-    public boolean processCurrentFields (String engineName,
-                                             ContainerFacadeInterface jahi=
aContentContainerFacade,
-                                             EngineLanguageHelper elh,
-            ProcessingContext jParams, HashMap engineMap, int mode)
+    public boolean processCurrentFields(String engineName,
+                                        ContainerFacadeInterface jahiaCont=
entContainerFacade,
+                                        EngineLanguageHelper elh,
+                                        ProcessingContext jParams, HashMap=
 engineMap, int mode)
             throws JahiaException;
 =

     /**
      * Process last field, return false on error
      *
-     * @param engineName String
+     * @param engineName                  String
      * @param jahiaContentContainerFacade ContainerFacadeInterface
-     * @param elh EngineLanguageHelper
-     * @param jParams ProcessingContext
-     * @param engineMap HashMap
-     * @param mode int
-     * @throws JahiaException
+     * @param elh                         EngineLanguageHelper
+     * @param jParams                     ProcessingContext
+     * @param engineMap                   HashMap
+     * @param mode                        int
      * @return boolean
+     * @throws JahiaException
      */
-    public boolean processLastFields (String engineName,
-                                      ContainerFacadeInterface jahiaConten=
tContainerFacade,
-                                      EngineLanguageHelper elh,
-                                      ProcessingContext jParams,
-                                      HashMap engineMap,
-                                      int mode)
-    throws JahiaException;
+    public boolean processLastFields(String engineName,
+                                     ContainerFacadeInterface jahiaContent=
ContainerFacade,
+                                     EngineLanguageHelper elh,
+                                     ProcessingContext jParams,
+                                     HashMap engineMap,
+                                     int mode)
+            throws JahiaException;
 =

     /**
      * Check Fields validation
      *
-     * @param engineName String
+     * @param engineName                  String
      * @param jahiaContentContainerFacade ContainerFacadeInterface
-     * @param elh EngineLanguageHelper
-     * @param jParams ProcessingContext
-     * @param engineMap HashMap
-     * @throws JahiaException
+     * @param elh                         EngineLanguageHelper
+     * @param jParams                     ProcessingContext
+     * @param engineMap                   HashMap
      * @return EngineValidationHelper
+     * @throws JahiaException
      */
-    public abstract EngineValidationHelper validate (String engineName,
-                                                  ContainerFacadeInterface=
 jahiaContentContainerFacade,
-                                                  EngineLanguageHelper elh,
-                                                  ProcessingContext jParam=
s,
-                                                  HashMap engineMap)
-                                                  throws JahiaException;
+    public abstract EngineValidationHelper validate(String engineName,
+                                                    ContainerFacadeInterfa=
ce jahiaContentContainerFacade,
+                                                    EngineLanguageHelper e=
lh,
+                                                    ProcessingContext jPar=
ams,
+                                                    HashMap engineMap)
+            throws JahiaException;
+
+    public abstract boolean areValuesTheSameInAllActiveLanguages(final Jah=
iaField theField,
+                                                                 final Con=
tainerFacadeInterface jahiaContentContainerFacade)
+            throws JahiaException;
 =

 }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/=
FieldsEditHelperAbstract.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/data/fields/FieldsEditHelperAbstract.java&r=
ev=3D18331&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/Fields=
EditHelperAbstract.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/Fields=
EditHelperAbstract.java Fri Aug 31 16:55:02 2007
@@ -14,7 +14,8 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied=
. =

  * See the License for the specific language governing permissions and =

  * limitations under the License.
- */package org.jahia.data.fields;
+ */
+package org.jahia.data.fields;
 =

 import org.jahia.data.containers.ContainerEditView;
 import org.jahia.data.containers.ContainerEditViewFieldGroup;
@@ -39,21 +40,21 @@
 import java.util.*;
 =

 /**
- *
  * <p>Title: </p>
  * <p>Description: </p>
  * <p>Copyright: Copyright (c) 2004</p>
  * <p>Company: Jahia Ltd</p>
+ *
  * @author not attributable
  * @version 1.0
  */
 public abstract class FieldsEditHelperAbstract implements FieldsEditHelper=
 {
 =

     private static final org.apache.log4j.Logger logger =3D
-            org.apache.log4j.Logger.getLogger (FieldsEditHelperAbstract.cl=
ass);
+            org.apache.log4j.Logger.getLogger(FieldsEditHelperAbstract.cla=
ss);
 =

     public static String FIELDS_EDIT_HELPER_CONTEXTID =3D
-        "org.jahia.data.fields.FieldsEditHelper.ContextID";
+            "org.jahia.data.fields.FieldsEditHelper.ContextID";
 =

     private int selectedFieldId; // selected fieldId
     private int lastFieldId;
@@ -62,113 +63,113 @@
     private HashMap updatedFields =3D new HashMap(); // updated fiels
     private boolean stayOnSameField;
 =

-    public JahiaField getSelectedField(){
+    public JahiaField getSelectedField() {
         return this.getField(this.getSelectedFieldId());
     }
 =

-    public int getSelectedFieldId(){
+    public int getSelectedFieldId() {
         return this.selectedFieldId;
     }
 =

-    public void setSelectedFieldId(int fieldId){
+    public void setSelectedFieldId(int fieldId) {
         this.selectedFieldId =3D fieldId;
     }
 =

-    public int getLastFieldId(){
+    public int getLastFieldId() {
         return this.lastFieldId;
     }
 =

-    public void setLastFieldId(int fieldId){
+    public void setLastFieldId(int fieldId) {
         this.lastFieldId =3D fieldId;
     }
 =

-    public HashMap getUpdatedFields(){
-        if ( this.updatedFields =3D=3D null ){
+    public HashMap getUpdatedFields() {
+        if (this.updatedFields =3D=3D null) {
             this.updatedFields =3D new HashMap();
         }
         return this.updatedFields;
     }
 =

-    public void addUpdatedField(int fieldId, String languageCode){
-        if ( languageCode =3D=3D null ){
+    public void addUpdatedField(int fieldId, String languageCode) {
+        if (languageCode =3D=3D null) {
             return;
         }
-        ArrayList langs =3D (ArrayList)this.getUpdatedFields().get(new Int=
eger(fieldId));
-        if ( langs =3D=3D null ){
+        ArrayList langs =3D (ArrayList) this.getUpdatedFields().get(new In=
teger(fieldId));
+        if (langs =3D=3D null) {
             langs =3D new ArrayList();
-            this.getUpdatedFields().put(new Integer(fieldId),langs);
+            this.getUpdatedFields().put(new Integer(fieldId), langs);
         }
-        if ( !langs.contains(languageCode) ){
+        if (!langs.contains(languageCode)) {
             langs.add(languageCode);
         }
     }
 =

-    public boolean containsUpdatedField(int fieldId, String languageCode){
-        if ( languageCode =3D=3D null ){
+    public boolean containsUpdatedField(int fieldId, String languageCode) {
+        if (languageCode =3D=3D null) {
             return false;
         }
-        ArrayList langs =3D (ArrayList)this.getUpdatedFields().get(new Int=
eger(fieldId));
-        if ( langs !=3D null ){
-            return (  languageCode.equals(ContentField.SHARED_LANGUAGE)
-                      || langs.contains(languageCode) );
+        ArrayList langs =3D (ArrayList) this.getUpdatedFields().get(new In=
teger(fieldId));
+        if (langs !=3D null) {
+            return (languageCode.equals(ContentField.SHARED_LANGUAGE)
+                    || langs.contains(languageCode));
         }
         return false;
     }
 =

-    public Hashtable getFieldForms(){
-        if ( this.fieldForms =3D=3D null ){
+    public Hashtable getFieldForms() {
+        if (this.fieldForms =3D=3D null) {
             this.fieldForms =3D new Hashtable();
         }
         return this.fieldForms;
     }
 =

-    public void setFieldForms (Hashtable fieldForms){
+    public void setFieldForms(Hashtable fieldForms) {
         this.fieldForms =3D fieldForms;
     }
 =

-    public void addFieldForm(int fieldId, String fieldForm){
-        if ( fieldForm =3D=3D null ){
+    public void addFieldForm(int fieldId, String fieldForm) {
+        if (fieldForm =3D=3D null) {
             return;
         }
-        this.getFieldForms().put(new Integer(fieldId),fieldForm);
+        this.getFieldForms().put(new Integer(fieldId), fieldForm);
     }
 =

-    public String getFieldForm(int fieldId){
-        return (String)this.getFieldForms().get(new Integer(fieldId));
+    public String getFieldForm(int fieldId) {
+        return (String) this.getFieldForms().get(new Integer(fieldId));
     }
 =

-    public void setContainerEditView(ContainerEditView ctnEditView){
+    public void setContainerEditView(ContainerEditView ctnEditView) {
         this.ctnEditView =3D ctnEditView;
     }
 =

-    public ContainerEditView getContainerEditView(){
+    public ContainerEditView getContainerEditView() {
         return this.ctnEditView;
     }
 =

-    public void setStayOnSameField(boolean stayOnSameField){
+    public void setStayOnSameField(boolean stayOnSameField) {
         this.stayOnSameField =3D stayOnSameField;
     }
 =

-    public boolean getStayOnSameField(){
+    public boolean getStayOnSameField() {
         return this.stayOnSameField;
     }
 =

-    public void processRequest(ProcessingContext jParams, int lastFieldId){
-        String fieldIdStr =3D jParams.getParameter ("lastfid");
+    public void processRequest(ProcessingContext jParams, int lastFieldId)=
 {
+        String fieldIdStr =3D jParams.getParameter("lastfid");
         int fieldId =3D 0;
         try {
-            fieldId =3D Integer.parseInt (fieldIdStr);
+            fieldId =3D Integer.parseInt(fieldIdStr);
             this.setLastFieldId(fieldId);
         } catch (NumberFormatException nfe) {
         }
 =

-        fieldIdStr =3D jParams.getParameter ("editfid");
+        fieldIdStr =3D jParams.getParameter("editfid");
         try {
-            fieldId =3D Integer.parseInt (fieldIdStr);
+            fieldId =3D Integer.parseInt(fieldIdStr);
             this.setSelectedFieldId(fieldId);
         } catch (NumberFormatException nfe) {
         }
-        if ( lastFieldId !=3D 0 ){
+        if (lastFieldId !=3D 0) {
             this.setSelectedFieldId(lastFieldId);
         }
     }
@@ -176,37 +177,37 @@
     /**
      * Process last field, return false on error
      *
-     * @param engineName String
+     * @param engineName                  String
      * @param jahiaContentContainerFacade ContainerFacadeInterface
-     * @param elh EngineLanguageHelper
-     * @param jParams ProcessingContext
-     * @param engineMap HashMap
-     * @param mode int
-     * @throws JahiaException
+     * @param elh                         EngineLanguageHelper
+     * @param jParams                     ProcessingContext
+     * @param engineMap                   HashMap
+     * @param mode                        int
      * @return boolean
+     * @throws JahiaException
      */
-    public boolean processLastFields (String engineName,
-                                          ContainerFacadeInterface jahiaCo=
ntentContainerFacade,
-                                          EngineLanguageHelper elh,
-                                          ProcessingContext jParams,
-                                          HashMap engineMap,
-                                          int mode)
-    throws JahiaException {
+    public boolean processLastFields(String engineName,
+                                     ContainerFacadeInterface jahiaContent=
ContainerFacade,
+                                     EngineLanguageHelper elh,
+                                     ProcessingContext jParams,
+                                     HashMap engineMap,
+                                     int mode)
+            throws JahiaException {
 =

-        engineMap.put("fieldsEditCallingEngineName",engineName); // @todo =
: make as Constant
-        engineMap.put (JahiaEngine.PROCESSING_LOCALE,
+        engineMap.put("fieldsEditCallingEngineName", engineName); // @todo=
 : make as Constant
+        engineMap.put(JahiaEngine.PROCESSING_LOCALE,
                 elh.getPreviousLocale());
 =

-        JahiaContainer theContainer =3D jahiaContentContainerFacade.getCon=
tainer (
+        JahiaContainer theContainer =3D jahiaContentContainerFacade.getCon=
tainer(
                 elh.getPreviousEntryLoadRequest(), true);
 =

-        engineMap.put (engineName + "." + "theContainer", theContainer);
+        engineMap.put(engineName + "." + "theContainer", theContainer);
 =

-        JahiaField theField =3D theContainer.getField (this.getLastFieldId=
());
+        JahiaField theField =3D theContainer.getField(this.getLastFieldId(=
));
 =

         if (theField =3D=3D null) {
-            if ( theContainer.getctndefid()>0){
-                logger.error("Field not found in container "+theContainer.=
getID()+ " definition name =3D " + theContainer.getDefinition().getName() +=
 ", we are searching field "+ getLastFieldId()+ " in fields "+ ToStringBuil=
der.reflectionToString(theContainer.getFields()));
+            if (theContainer.getctndefid() > 0) {
+                logger.error("Field not found in container " + theContaine=
r.getID() + " definition name =3D " + theContainer.getDefinition().getName(=
) + ", we are searching field " + getLastFieldId() + " in fields " + ToStri=
ngBuilder.reflectionToString(theContainer.getFields()));
             }
             this.setStayOnSameField(true);
             return false;
@@ -219,45 +220,46 @@
         }
 =

         ContainerEditViewFieldGroup fieldGroup =3D getContainerEditView()
-                                                 .getFieldGroupByFieldName=
(theField.getDefinition().getName ());
+                .getFieldGroupByFieldName(theField.getDefinition().getName=
());
 =

         boolean errorOccured =3D false;
 =

         // get the lists of fields in the edit view
-        int size =3D fieldGroup.getFieldNames ().size ();
+        int size =3D fieldGroup.getFieldNames().size();
         String fieldName =3D "";
         for (int i =3D 0; i < size; i++) {
-            fieldName =3D (String) fieldGroup.getFieldNames ().get (i);
+            fieldName =3D (String) fieldGroup.getFieldNames().get(i);
 =

             // dispatches to the appropriate sub engine
-            theField =3D theContainer.getField (fieldName);
+            theField =3D theContainer.getField(fieldName);
             if (theField !=3D null) {
 =

-                int fieldType =3D theField.getType ();
+                int fieldType =3D theField.getType();
 =

-                logger.debug ("Update container field " +
-                        theField.getDefinition ().getName () + "...");
-                engineMap.put (engineName+"."+"theField", theField);
-                engineMap.put (engineName+"."+"isSelectedField", Boolean.F=
ALSE);
+                logger.debug("Update container field " +
+                        theField.getDefinition().getName() + "...");
+                engineMap.put(engineName + "." + "theField", theField);
+                engineMap.put(engineName + "." + "isSelectedField", Boolea=
n.FALSE);
 =

                 boolean doUpdate =3D false;
                 HashMap ctnListFieldAcls =3D this.getCtnListFieldAcls();
                 int fieldId =3D theField.getID();
-                if (theContainer.getListID () !=3D 0 && ctnListFieldAcls !=
=3D null && fieldId >0){
-                    JahiaBaseACL acl =3D JahiaEngineTools.getCtnListFieldA=
CL (ctnListFieldAcls,fieldId);
+                if (theContainer.getListID() !=3D 0 && ctnListFieldAcls !=
=3D null && fieldId > 0) {
+                    JahiaBaseACL acl =3D JahiaEngineTools.getCtnListFieldA=
CL(ctnListFieldAcls, fieldId);
                     if (acl !=3D null) {
-                        doUpdate =3D acl.getPermission (jParams.getUser (),
-                                                      JahiaBaseACL.WRITE_R=
IGHTS, JahiaEngineTools.isCtnListFieldACLDefined(ctnListFieldAcls, fieldId)=
);
+                        doUpdate =3D acl.getPermission(jParams.getUser(),
+                                JahiaBaseACL.WRITE_RIGHTS, JahiaEngineTool=
s.isCtnListFieldACLDefined(ctnListFieldAcls, fieldId));
                     }
                 } else {
                     doUpdate =3D true;
                 }
-                jParams.setSubstituteEntryLoadRequest (elh.getPreviousEntr=
yLoadRequest());
-                engineMap.put("fieldsEditCallingEngineName",engineName); /=
/ todo : make as Constant
+                jParams.setSubstituteEntryLoadRequest(elh.getPreviousEntry=
LoadRequest());
+                engineMap.put("fieldsEditCallingEngineName", engineName); =
// todo : make as Constant
                 if (doUpdate &&
-                        !EngineToolBox.getInstance().processFieldTypes (th=
eField, theContainer, engineName, jParams, mode, engineMap)) {
+                        !EngineToolBox.getInstance().processFieldTypes(the=
Field, theContainer, engineName, jParams, mode, engineMap))
+                {
 =

-                    if (!errorOccured){
+                    if (!errorOccured) {
                         errorOccured =3D true;
                     }
 =

@@ -270,31 +272,31 @@
                     jParams.resetSubstituteEntryLoadRequest ();
                     break;
                     */
-               } else {
-                    this.addUpdatedField(fieldId,theField.getLanguageCode(=
));
-                    if (fieldType !=3D theField.getType ()) {
+                } else {
+                    this.addUpdatedField(fieldId, theField.getLanguageCode=
());
+                    if (fieldType !=3D theField.getType()) {
                         // field type has changed
-                        jahiaContentContainerFacade.changeType (fieldId,
-                                theField.getType (), jParams);
+                        jahiaContentContainerFacade.changeType(fieldId,
+                                theField.getType(), jParams);
                         theField =3D jahiaContentContainerFacade.
-                                getContentFieldFacade (fieldId).
-                                getField (elh.getPreviousEntryLoadRequest(=
), true);
-                        theContainer.setField (theField);
-                        engineMap.put (engineName+"."+"theField", theField=
);
+                                getContentFieldFacade(fieldId).
+                                getField(elh.getPreviousEntryLoadRequest()=
, true);
+                        theContainer.setField(theField);
+                        engineMap.put(engineName + "." + "theField", theFi=
eld);
                     }
 =

-                    if (doUpdate && "true".equals(jParams.getParameter ("a=
pply_change_to_all_lang_" +fieldId))) {
-                        applyChangeToAllLang (engineName,theField,
+                    if (doUpdate && "true".equals(jParams.getParameter("ap=
ply_change_to_all_lang_" + fieldId))) {
+                        applyChangeToAllLang(engineName, theField,
                                 jahiaContentContainerFacade,
                                 engineMap, jParams);
                     }
                 }
-                jParams.resetSubstituteEntryLoadRequest ();
-                logger.debug ("processLastScreen > the field value is now =
" +
-                        theField.getValue ());
+                jParams.resetSubstituteEntryLoadRequest();
+                logger.debug("processLastScreen > the field value is now "=
 +
+                        theField.getValue());
             }
         }
-        if ( errorOccured ){
+        if (errorOccured) {
             this.setStayOnSameField(true);
             return false;
         }
@@ -305,29 +307,29 @@
     /**
      * Process current fields, return false on error
      *
-     * @param engineName String
+     * @param engineName                  String
      * @param jahiaContentContainerFacade ContainerFacadeInterface
-     * @param elh EngineLanguageHelper
-     * @param jParams ProcessingContext
-     * @param engineMap HashMap
-     * @param mode int
-     * @throws JahiaException
+     * @param elh                         EngineLanguageHelper
+     * @param jParams                     ProcessingContext
+     * @param engineMap                   HashMap
+     * @param mode                        int
      * @return boolean
+     * @throws JahiaException
      */
-    public boolean processCurrentFields (String engineName,
-                                             ContainerFacadeInterface jahi=
aContentContainerFacade,
-                                             EngineLanguageHelper elh,
-            ProcessingContext jParams, HashMap engineMap, int mode)
+    public boolean processCurrentFields(String engineName,
+                                        ContainerFacadeInterface jahiaCont=
entContainerFacade,
+                                        EngineLanguageHelper elh,
+                                        ProcessingContext jParams, HashMap=
 engineMap, int mode)
             throws JahiaException {
 =

-        engineMap.put("fieldsEditCallingEngineName",engineName); // @todo =
: make as Constant
+        engineMap.put("fieldsEditCallingEngineName", engineName); // @todo=
 : make as Constant
 =

-        JahiaContainer theContainer =3D jahiaContentContainerFacade.getCon=
tainer (
+        JahiaContainer theContainer =3D jahiaContentContainerFacade.getCon=
tainer(
                 elh.getCurrentEntryLoadRequest(), true);
 =

-        engineMap.put (engineName + "." + "theContainer", theContainer);
+        engineMap.put(engineName + "." + "theContainer", theContainer);
 =

-        engineMap.put (JahiaEngine.PROCESSING_LOCALE,
+        engineMap.put(JahiaEngine.PROCESSING_LOCALE,
                 elh.getCurrentLocale());
 =

         ContainerEditView editView =3D this.getContainerEditView();
@@ -336,7 +338,7 @@
 =

         // get first visible field
         JahiaField theField =3D null;
-        if ( this.getSelectedFieldId()!=3D0 ){
+        if (this.getSelectedFieldId() !=3D 0) {
             try {
                 theField =3D theContainer.getField(this.getSelectedFieldId=
());
             } catch (JahiaException je) {
@@ -344,17 +346,17 @@
             }
         }
         if (theField !=3D null) {
-            fieldGroup =3D editView.getFieldGroupByFieldName (theField.
-                    getDefinition ().getName ());
+            fieldGroup =3D editView.getFieldGroupByFieldName(theField.
+                    getDefinition().getName());
         }
         if (fieldGroup =3D=3D null) {
-            if ( editView.getFields().size()>0 ){
+            if (editView.getFields().size() > 0) {
                 String fieldName =3D (String) editView.getFields().get(0);
                 theField =3D theContainer.getFieldByName(fieldName);
             }
-            if ( theField !=3D null ){
-                fieldGroup =3D editView.getFieldGroupByFieldName (theField.
-                        getDefinition ().getName ());
+            if (theField !=3D null) {
+                fieldGroup =3D editView.getFieldGroupByFieldName(theField.
+                        getDefinition().getName());
                 this.setSelectedFieldId(theField.getID());
                 this.setLastFieldId(theField.getID());
             }
@@ -362,143 +364,155 @@
 =

         //engineMap.put (engineName+"."+"field_id", new Integer (fieldID));
 =

-        Vector fieldIDs =3D new Vector ();
+        Vector fieldIDs =3D new Vector();
 =

         if (theField !=3D null) {
             // at least one visible field
 =

             // get the lists of fields in the edit view
-            int size =3D fieldGroup.getFieldNames ().size ();
+            int size =3D fieldGroup.getFieldNames().size();
             String fieldName =3D "";
             EntryLoadRequest processingEntryLoadRequest =3D null;
 =

             for (int i =3D 0; i < size; i++) {
-                fieldName =3D (String) fieldGroup.getFieldNames ().get (i);
+                fieldName =3D (String) fieldGroup.getFieldNames().get(i);
 =

                 // dispatches to the appropriate sub engine
-                theField =3D theContainer.getField (fieldName);
+                theField =3D theContainer.getField(fieldName);
 =

                 if (theField !=3D null) {
-                    engineMap.put (engineName+"."+"fieldForm", null); // r=
eset field form
-                    logger.debug ("The field value is now " + theField.get=
Value ());
+                    engineMap.put(engineName + "." + "fieldForm", null); /=
/ reset field form
+                    logger.debug("The field value is now " + theField.getV=
alue());
 =

-                    engineMap.put (engineName+"."+"theField", theField);
-                    engineMap.put (engineName+"."+"isSelectedField",
-                            new Boolean (theField.getID () =3D=3D this.get=
SelectedFieldId()));
-                    engineMap.put (engineName+"."+"fieldID", new Integer (=
theField.getID ()));
-
-                    processingEntryLoadRequest =3D new EntryLoadRequest (t=
heField.
-                            getWorkflowState (), theField.getVersionID (),
-                            new ArrayList ());
-                    processingEntryLoadRequest.getLocales ()
-                            .add (LanguageCodeConverters
-                            .languageCodeToLocale (theField.getLanguageCod=
e ()));
-                    if ( ContentObject.SHARED_LANGUAGE.equals(theField.get=
LanguageCode()) ){
+                    engineMap.put(engineName + "." + "theField", theField);
+                    engineMap.put(engineName + "." + "isSelectedField",
+                            new Boolean(theField.getID() =3D=3D this.getSe=
lectedFieldId()));
+                    engineMap.put(engineName + "." + "fieldID", new Intege=
r(theField.getID()));
+
+                    processingEntryLoadRequest =3D new EntryLoadRequest(th=
eField.
+                            getWorkflowState(), theField.getVersionID(),
+                            new ArrayList());
+                    processingEntryLoadRequest.getLocales()
+                            .add(LanguageCodeConverters
+                                    .languageCodeToLocale(theField.getLang=
uageCode()));
+                    if (ContentObject.SHARED_LANGUAGE.equals(theField.getL=
anguageCode())) {
                         // allow engine locale too as the field is shared =
lang
-                        processingEntryLoadRequest.getLocales ()
-                            .add (elh.getCurrentLocale());
+                        processingEntryLoadRequest.getLocales()
+                                .add(elh.getCurrentLocale());
                     }
-                    jParams.setSubstituteEntryLoadRequest (
+                    jParams.setSubstituteEntryLoadRequest(
                             processingEntryLoadRequest);
-                    if (EngineToolBox.getInstance().processFieldTypes (the=
Field, theContainer, engineName, jParams, mode, engineMap)) {
+                    if (EngineToolBox.getInstance().processFieldTypes(theF=
ield, theContainer, engineName, jParams, mode, engineMap))
+                    {
 =

-                        if ("true".equals(jParams.getParameter (
-                                "apply_change_to_all_lang_" + theField.get=
ID ()))) {
-                            applyChangeToAllLang (engineName,theField,
+                        if ("true".equals(jParams.getParameter(
+                                "apply_change_to_all_lang_" + theField.get=
ID()))) {
+                            applyChangeToAllLang(engineName, theField,
                                     jahiaContentContainerFacade,
                                     engineMap, jParams);
                         }
                     }
-                    jParams.resetSubstituteEntryLoadRequest ();
+                    jParams.resetSubstituteEntryLoadRequest();
 =

-                    if (engineMap.get (engineName+"."+"fieldForm") !=3D nu=
ll) {
-                        fieldIDs.add (new Integer (theField.getID ()));
-                        Hashtable fieldForms =3D (Hashtable) engineMap.get=
 (
-                                engineName+"."+"fieldForms");
-                        Object fieldForm =3D engineMap.get (engineName+"."=
+"fieldForm");
-                        fieldForms.put (new Integer (theField.getID ()),
+                    if (engineMap.get(engineName + "." + "fieldForm") !=3D=
 null) {
+                        fieldIDs.add(new Integer(theField.getID()));
+                        Hashtable fieldForms =3D (Hashtable) engineMap.get(
+                                engineName + "." + "fieldForms");
+                        Object fieldForm =3D engineMap.get(engineName + ".=
" + "fieldForm");
+                        fieldForms.put(new Integer(theField.getID()),
                                 fieldForm);
                     }
                 }
             }
         }
-        engineMap.put (engineName+"."+"fieldID", new Integer (this.getSele=
ctedFieldId()));
-        engineMap.put (engineName+"."+"theField", theField);
-        engineMap.put (engineName+"."+"fieldIDs", fieldIDs);
+        engineMap.put(engineName + "." + "fieldID", new Integer(this.getSe=
lectedFieldId()));
+        engineMap.put(engineName + "." + "theField", theField);
+        engineMap.put(engineName + "." + "fieldIDs", fieldIDs);
         return true;
     }
 =

     /**
      * Check Fields validation
      *
-     * @param engineName String
+     * @param engineName                  String
      * @param jahiaContentContainerFacade ContainerFacadeInterface
-     * @param elh EngineLanguageHelper
-     * @param jParams ProcessingContext
-     * @param engineMap HashMap
-     * @throws JahiaException
+     * @param elh                         EngineLanguageHelper
+     * @param jParams                     ProcessingContext
+     * @param engineMap                   HashMap
      * @return EngineValidationHelper
+     * @throws JahiaException
      */
-    public EngineValidationHelper validate (String engineName,
-                                            ContainerFacadeInterface jahia=
ContentContainerFacade,
-                                            EngineLanguageHelper elh,
-                                            ProcessingContext jParams,
-                                            HashMap engineMap)
-    throws JahiaException {
-            EngineValidationHelper evh =3D new EngineValidationHelper();
-            Enumeration fieldEnum =3D jahiaContentContainerFacade.getField=
s();
-            JahiaContentFieldFacade cff =3D null;
-            JahiaField field =3D null;
-            ValidationError ve =3D null;
-            while ( fieldEnum.hasMoreElements() ){
-                cff =3D (JahiaContentFieldFacade)fieldEnum.nextElement();
-                Enumeration fEnum =3D cff.getFields();
-                while ( fEnum.hasMoreElements() ){
-                    field =3D (JahiaField)fEnum.nextElement();
-                    if ( !"true".equals(field.getDefinition().getProperty(=
FieldDefinition.READ_ONLY)) ) {
-                        if (this.getContainerEditView().getFieldGroupByFie=
ldName(
+    public EngineValidationHelper validate(String engineName,
+                                           ContainerFacadeInterface jahiaC=
ontentContainerFacade,
+                                           EngineLanguageHelper elh,
+                                           ProcessingContext jParams,
+                                           HashMap engineMap)
+            throws JahiaException {
+        EngineValidationHelper evh =3D new EngineValidationHelper();
+        Enumeration fieldEnum =3D jahiaContentContainerFacade.getFields();
+        JahiaContentFieldFacade cff =3D null;
+        JahiaField field =3D null;
+        ValidationError ve =3D null;
+        while (fieldEnum.hasMoreElements()) {
+            cff =3D (JahiaContentFieldFacade) fieldEnum.nextElement();
+            Enumeration fEnum =3D cff.getFields();
+            while (fEnum.hasMoreElements()) {
+                field =3D (JahiaField) fEnum.nextElement();
+                if (!"true".equals(field.getDefinition().getProperty(Field=
Definition.READ_ONLY))) {
+                    if (this.getContainerEditView().getFieldGroupByFieldNa=
me(
                             field
-                            .getDefinition().getName()) !=3D null) {
-                            ve =3D field.validate();
-                            if (ve !=3D null) {
-                                evh.addError(ve);
-                                return evh;
-                            }
+                                    .getDefinition().getName()) !=3D null)=
 {
+                        ve =3D field.validate();
+                        if (ve !=3D null) {
+                            evh.addError(ve);
+                            return evh;
                         }
                     }
                 }
             }
+        }
 =

-            return evh;
+        return evh;
     }
 =

     /**
      * @param theField
      * @param jahiaContentContainerFacade
-     *
-     * @throws JahiaException
-     * todo : put in a Tool class
+     * @throws JahiaException todo : put in a Tool class
      */
-    public void applyChangeToAllLang (String engineName,
-                                      JahiaField theField,
-                                      ContainerFacadeInterface
-            jahiaContentContainerFacade,
-                                      HashMap engineMap,
-                                      ProcessingContext jParams)
+    public void applyChangeToAllLang(String engineName,
+                                     JahiaField theField,
+                                     ContainerFacadeInterface jahiaContent=
ContainerFacade,
+                                     HashMap engineMap,
+                                     ProcessingContext jParams)
             throws JahiaException {
-
-        JahiaContentFieldFacade contentFieldFacade =3D
-                jahiaContentContainerFacade.getContentFieldFacade (theFiel=
d.getID ());
-        Enumeration fieldEnum =3D contentFieldFacade.getFields ();
-        JahiaField field =3D null;
-        while (fieldEnum.hasMoreElements ()) {
-            field =3D (JahiaField) fieldEnum.nextElement ();
-            theField.copyValueInAnotherLanguage (field, jParams);
+        final JahiaContentFieldFacade contentFieldFacade =3D jahiaContentC=
ontainerFacade.getContentFieldFacade(theField.getID());
+        final Enumeration fieldEnum =3D contentFieldFacade.getFields();
+        while (fieldEnum.hasMoreElements()) {
+            final JahiaField field =3D (JahiaField) fieldEnum.nextElement(=
);
+            theField.copyValueInAnotherLanguage(field, jParams);
             // remember change
-            this.addUpdatedField(field.getID(),field.getLanguageCode());
+            this.addUpdatedField(field.getID(), field.getLanguageCode());
         }
     }
 =

+    public boolean areValuesTheSameInAllActiveLanguages(final JahiaField t=
heField,
+                                                        final ContainerFac=
adeInterface jahiaContentContainerFacade)
+            throws JahiaException {
+        final JahiaContentFieldFacade contentFieldFacade =3D jahiaContentC=
ontainerFacade.getContentFieldFacade(theField.getID());
+        final Enumeration fieldEnum =3D contentFieldFacade.getFields();
+        String oldValue =3D null;
+        while (fieldEnum.hasMoreElements()) {
+            final JahiaField field =3D (JahiaField) fieldEnum.nextElement(=
);
+            final String value =3D field.getValue();
+            if (oldValue !=3D null && !oldValue.equals(value)) {
+                return false;
+            }
+            oldValue =3D value;
+        }
+        return true;
+    }
+
     public abstract JahiaField getField(int fieldId);
 =

     public abstract JahiaField getField(String fieldName);

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/co=
ntaineredit/fieldedit.inc
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/webapp/jsp/jahia/engines/containeredit/fieldedit.inc&rev=
=3D18331&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/containe=
redit/fieldedit.inc (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/containe=
redit/fieldedit.inc Fri Aug 31 16:55:02 2007
@@ -17,7 +17,10 @@
 --%>
 <%@ page import=3D"org.jahia.data.fields.JahiaAllowApplyChangeToAllLangFie=
ld" %>
 <%@ page import=3D"org.jahia.engines.validation.EngineValidationHelper" %>
+<%@ page import=3D"org.jahia.data.containers.JahiaContentContainerFacade"%>
 <%
+     final JahiaContentContainerFacade jahiaContentContainerFacade =3D (Ja=
hiaContentContainerFacade) engineMap.get(
+                    "UpdateContainer_Engine.JahiaContentContainerFacade");
     boolean applyChangeToAllLang =3D "true".equals(jParams.getParameter("a=
pply_change_to_all_lang_" + aField.getID()));
     String errorMsg =3D (String) fieldErrors.get(new Integer(aField.getID(=
)));
     if (errorMsg =3D=3D null) {
@@ -44,10 +47,18 @@
     }
 </script>
 <h4 class=3D"<%=3DgetIconClassName(aField.getType(), false) %>">
-<% if (localeList.size() > 1 && !readOnlyMode && !aField.isShared() &&
+<%  boolean allSameTitles =3D false;
+    if (localeList.size() > 1) {
+        allSameTitles =3D feh.areValuesTheSameInAllActiveLanguages(aField,=
 jahiaContentContainerFacade);
+    }
+
+ if (localeList.size() > 1 && !readOnlyMode && !aField.isShared() &&
         ServicesRegistry.getInstance().getJahiaACLManagerService().hasWrit=
eAccesOnAllLangs(jParams)) { %>
+    <% if (allSameTitles) { %>
+    <a id=3D"switchIcons_<%=3DaField.getID()%>" href=3D"javascript:switchI=
cons('switchIcons_<%=3DaField.getID()%>');" title=3D'<jahia:engineResourceB=
undle resourceName=3D"org.jahia.applyToAllLanguages.label"/>' class=3D"shar=
edLanguageYes">&nbsp;</a>
+    <% } else { %>
     <a id=3D"switchIcons_<%=3DaField.getID()%>" href=3D"javascript:switchI=
cons('switchIcons_<%=3DaField.getID()%>');" title=3D'<jahia:engineResourceB=
undle resourceName=3D"org.jahia.applyToSingleLanguage.label"/>' class=3D"sh=
aredLanguageNo">&nbsp;</a>
-
+    <% } %>
 <% } else { %>
     <% if (aField.isShared()) { %>
     <span title=3D"<jahia:engineResourceBundle resourceName=3D'org.jahia.s=
ameInAllLanguage.label'/>" class=3D"sharedLanguageYesDisabled">&nbsp;</span>
@@ -59,7 +70,7 @@
         <% } %>
 </h4>
     <input id=3D"apply_change_to_all_lang_<%=3DaField.getID()%>" type=3D"h=
idden"
-           name=3D"apply_change_to_all_lang_<%=3DaField.getID()%>" value=
=3D"<%=3DapplyChangeToAllLang%>"/>
+           name=3D"apply_change_to_all_lang_<%=3DaField.getID()%>" value=
=3D"<%=3DapplyChangeToAllLang || allSameTitles %>"/>
             <% if (errorMsg !=3D null && errorMsg.length() > 0) { %>
     <span class=3D"error"><%=3DerrorMsg%></span><br/>
     <% } %>

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/sh=
ared/page_field.jsp
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/webapp/jsp/jahia/engines/shared/page_field.jsp&rev=3D18331=
&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/shared/p=
age_field.jsp (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/shared/p=
age_field.jsp Fri Aug 31 16:55:02 2007
@@ -134,6 +134,20 @@
             sourceTitle =3D (String) titles.get(processingLocale.toString(=
));
     }
 =

+    boolean allSameTitles =3D false;
+    if (pageBean.getTitles().size() > 0) {
+        final Iterator ite =3D pageBean.getTitles().values().iterator();
+        String oldTitle =3D null;
+        while (ite.hasNext()) {
+            final String tmp =3D ite.next().toString();
+            if (oldTitle !=3D null && tmp.equals(oldTitle)) {
+                break;
+            }
+            oldTitle =3D tmp;
+        }
+        allSameTitles =3D true;
+    }
+
     if (sourceTitle !=3D null && "".equals(title)) {
         title =3D sourceTitle;
     }
@@ -261,7 +275,7 @@
             !Page_Field.UPDATE_PAGE.equals(pageBean.getOperation()) ? true=
 : false;
 =

     ContentObject timeBasedPublishingObject =3D (ContentObject)request.get=
Attribute("Page_Field.enableTimeBasedPublishingStatus"); =

-    boolean enableTimeBasedPublishing =3D ( timeBasedPublishingObject !=3D=
 null );          =

+    boolean enableTimeBasedPublishing =3D ( timeBasedPublishingObject !=3D=
 null );
     =

     if ( enableTimeBasedPublishing ) { =

 %>
@@ -435,12 +449,19 @@
     <span title=3D"<jahia:engineResourceBundle resourceName=3D'org.jahia.s=
ameInAllLanguage.label'/>"
             class=3D"sharedLanguageYesDisabled">&nbsp;</span>
     <% } else { %>
+    <% if (allSameTitles) { %>
+    <a id=3D"switchIcons_<%=3DpageBean.getID()%>" href=3D"javascript:switc=
hIcons('switchIcons_<%=3DpageBean.getID()%>');"
+       title=3D'<jahia:engineResourceBundle resourceName=3D"org.jahia.appl=
yToAllLanguages.label"/>'
+       class=3D"sharedLanguageYes">
+        &nbsp;</a>
+    <% } else { %>
     <a id=3D"switchIcons_<%=3DpageBean.getID()%>" href=3D"javascript:switc=
hIcons('switchIcons_<%=3DpageBean.getID()%>');"
        title=3D'<jahia:engineResourceBundle resourceName=3D"org.jahia.appl=
yToSingleLanguage.label"/>'
        class=3D"sharedLanguageNo">
         &nbsp;</a>
     <% } %>
-    <input id=3D"shared_title" type=3D"hidden" name=3D"shared_title" value=
=3D"<%=3DpageBean.isSharedTitle()%>"/>
+    <% } %>
+    <input id=3D"shared_title" type=3D"hidden" name=3D"shared_title" value=
=3D"<%=3DallSameTitles || pageBean.isSharedTitle()%>"/>
     <% } %>
     <% if (isNewPage) { %>
     <% if (isLinkOnly) { %>

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

Reply via email to