Author: sshyrkov
Date: Wed Oct 17 14:30:55 2007
New Revision: 18897

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18897&repname=
=3Djahia
Log:
JAHIA-2544: Open a Update Container eingine instead of Upadte Field engine,=
 when correcting validation errors =

http://www.jahia.net/jira/browse/JAHIA-2544
Resolution: =

1) Update Container engine is opened now instead of the Update Field engine
2) Update Container engine now accepts field ID to select a particular fiel=
d when the window is opened
3) Added view helper object to prepare data for the validation results disp=
lay view

Added:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/V=
alidationResultViewHelper.java
Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/content/NodeOperat=
ionResult.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/updatecont=
ainer/UpdateContainer_Engine.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/A=
dvancedWorkflowEngine.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/gui/HTMLToolBox.ja=
va
    branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/workflow=
/showReport.jsp

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/content/Node=
OperationResult.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/content/NodeOperationResult.java&rev=3D1889=
7&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/content/NodeOperat=
ionResult.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/content/NodeOperat=
ionResult.java Wed Oct 17 14:30:55 2007
@@ -40,6 +40,9 @@
     protected String languageCode;
     protected String comment;
     protected EngineMessage msg;
+    protected int objectId;
+    protected String objectType;
+
 =

     /**
      * Constructor for the result.
@@ -55,19 +58,32 @@
     public NodeOperationResult(final ObjectKey nodeKey,
                                final String languageCode,
                                final String comment) {
-        this.nodeKey =3D nodeKey;
-        this.languageCode =3D languageCode;
-        this.comment =3D comment;
+        this(nodeKey, languageCode, comment, null);
     }
 =

     public NodeOperationResult(final ObjectKey nodeKey,
                                final String languageCode,
                                final String comment,
                                final EngineMessage msg) {
+        this(nodeKey.getType(), nodeKey.getIdInType(), languageCode, comme=
nt, msg);
         this.nodeKey =3D nodeKey;
+    }
+
+    public NodeOperationResult(String objectType, int objectId,
+            String languageCode, String comment, EngineMessage msg) {
+
+        super();
+        this.objectType =3D objectType;
+        this.objectId =3D objectId;
         this.languageCode =3D languageCode;
         this.comment =3D comment;
         this.msg =3D msg;
+        try {
+            this.nodeKey =3D ObjectKey.getInstance(objectType
+                    + ObjectKey.KEY_SEPARATOR + objectId);
+        } catch (ClassNotFoundException ex) {
+            throw new IllegalArgumentException(ex);
+        }
     }
 =

     public ObjectKey getNodeKey() {
@@ -87,10 +103,10 @@
     }
 =

     public String getObjectType() {
-        return getNodeKey().getType();
+        return objectType;
     }
 =

     public int getObjectID() {
-        return Integer.parseInt(getNodeKey().getIDInType());
+        return objectId;
     }
 }
\ No newline at end of file

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/upda=
tecontainer/UpdateContainer_Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/updatecontainer/UpdateContainer_Eng=
ine.java&rev=3D18897&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/engines/updatecont=
ainer/UpdateContainer_Engine.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/updatecont=
ainer/UpdateContainer_Engine.java Wed Oct 17 14:30:55 2007
@@ -23,6 +23,7 @@
 =

 package org.jahia.engines.updatecontainer;
 =

+import org.apache.commons.lang.StringUtils;
 import org.jahia.content.*;
 import org.jahia.data.JahiaData;
 import org.jahia.data.containers.*;
@@ -1101,7 +1102,17 @@
             feh.setContainerEditView(editView);
             feh.setCtnListFieldAcls(ctnListFieldAcls);
             feh.setVisibleFields(visibleFields);
-            feh.setSelectedFieldId(0);
+            // check, if we should focus a particular field
+            int fieldId =3D 0;
+            String fieldIdStr =3D jParams.getParameter("fid");
+            if (StringUtils.isNotEmpty(fieldIdStr)) {
+                try {
+                    fieldId =3D Integer.parseInt(fieldIdStr);
+                } catch (NumberFormatException e) {
+                    // ignore it and show the first field in the engine
+                }
+            }
+            feh.setSelectedFieldId(fieldId);
             engineMap.put(AddContainer_Engine.ENGINE_NAME + "." + FieldsEd=
itHelperAbstract.FIELDS_EDIT_HELPER_CONTEXTID, feh);
         }
         // Update FieldsEditHelper

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/work=
flow/AdvancedWorkflowEngine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/workflow/AdvancedWorkflowEngine.jav=
a&rev=3D18897&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/engines/workflow/A=
dvancedWorkflowEngine.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/A=
dvancedWorkflowEngine.java Wed Oct 17 14:30:55 2007
@@ -43,6 +43,7 @@
 import org.jahia.services.scheduler.SchedulerService;
 import org.jahia.services.sites.SiteLanguageSettings;
 import org.jahia.services.usermanager.JahiaUser;
+import org.jahia.services.version.ActivationTestResults;
 import org.jahia.services.version.EntryLoadRequest;
 import org.jahia.services.workflow.*;
 import org.quartz.JobDataMap;
@@ -207,6 +208,11 @@
                 engineMap.put(ENGINE_URL_PARAM, jParams.composeEngineUrl(E=
NGINE_NAME));
                 engineMap.put(ENGINE_NAME_PARAM, ENGINE_NAME);
                 jParams.setAttribute("engineTitle", "Workflow Report");
+                jParams.setAttribute("viewHelper", ValidationResultViewHel=
per
+                        .getInstance((ActivationTestResults) jParams
+                                .getSessionState().getAttribute(
+                                        jParams.getParameter("objectkey")),
+                                jData));
                 engineMap.put("jspSource", REPORT_TEMPLATE_JSP);
                 engineMap.put("screen", "showReport");
 =


Added: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflo=
w/ValidationResultViewHelper.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/ValidationResultVie=
wHelper.java&rev=3D18897&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/engines/workflow/V=
alidationResultViewHelper.java (added)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/V=
alidationResultViewHelper.java Wed Oct 17 14:30:55 2007
@@ -0,0 +1,402 @@
+/*
+ * Copyright 2002-2007 Jahia Ltd
+ *
+ * Licensed under the JAHIA COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (J=
CDDL), =

+ * Version 1.0 (the "License"), or (at your option) any later version; you=
 may =

+ * not use this file except in compliance with the License. You should hav=
e =

+ * received a copy of the License along with this program; if not, you may=
 obtain =

+ * a copy of the License at =

+ *
+ *  http://www.jahia.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software =

+ * distributed under the License is distributed on an "AS IS" BASIS, =

+ * 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.engines.workflow;
+
+import java.text.MessageFormat;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.jahia.content.ContentContainerKey;
+import org.jahia.content.ContentDefinition;
+import org.jahia.content.ContentFieldKey;
+import org.jahia.content.ContentObject;
+import org.jahia.content.ContentPageKey;
+import org.jahia.content.NodeOperationResult;
+import org.jahia.data.JahiaData;
+import org.jahia.exceptions.JahiaException;
+import org.jahia.params.ProcessingContext;
+import org.jahia.registries.ServicesRegistry;
+import org.jahia.resourcebundle.JahiaResourceBundle;
+import org.jahia.services.containers.ContentContainer;
+import org.jahia.services.fields.ContentField;
+import org.jahia.services.fields.URLIntegrityValidForActivationResults;
+import org.jahia.services.fields.WAIValidForActivationResults;
+import org.jahia.services.pages.ContentPage;
+import org.jahia.services.sites.JahiaSite;
+import org.jahia.services.version.ActivationTestResults;
+import org.jahia.services.version.ContentObjectEntryState;
+import org.jahia.services.version.IsValidForActivationResults;
+import org.jahia.utils.LanguageCodeConverters;
+
+/**
+ * Display helper for the workflow validation results.
+ * =

+ * @author Sergiy Shyrkov
+ */
+public class ValidationResultViewHelper {
+
+    public static class ValidationResultDisplayObject {
+
+        private String language;
+
+        private String message;
+
+        private String objectId;
+
+        private String objectTitle;
+
+        private String objectType;
+
+        private String pageId;
+
+        private String pageTitle;
+
+        private String title;
+
+        private String url;
+
+        /**
+         * Initializes an instance of this class.
+         * =

+         * @param message
+         *            validation message
+         */
+        private ValidationResultDisplayObject(String message) {
+            super();
+            this.message =3D message;
+        }
+
+        private ValidationResultDisplayObject(String objectType,
+                String objectId, String language, String message) {
+            this(message);
+            this.objectType =3D objectType;
+            this.objectId =3D objectId;
+            this.language =3D language;
+        }
+
+        public String getLanguage() {
+            return language;
+        }
+
+        public String getMessage() {
+            return message;
+        }
+
+        public String getObjectId() {
+            return objectId;
+        }
+
+        public String getObjectTitle() {
+            return objectTitle;
+        }
+
+        public String getObjectType() {
+            return objectType;
+        }
+
+        public String getPageId() {
+            return pageId;
+        }
+
+        public String getPageTitle() {
+            return pageTitle;
+        }
+
+        public String getTitle() {
+            return title;
+        }
+
+        public String getUrl() {
+            return url;
+        }
+
+    }
+
+    public static class ValidationResultGroup {
+
+        private String labelKey;
+
+        private Set results;
+
+        private String warningSeverity;
+
+        private ValidationResultGroup(String warningSeverity, String label=
Key,
+                Set results) {
+            super();
+            this.warningSeverity =3D warningSeverity;
+            this.labelKey =3D labelKey;
+            this.results =3D results;
+        }
+
+        public String getLabelKey() {
+            return labelKey;
+        }
+
+        public Set getResults() {
+            return results;
+        }
+
+        public String getWarningSeverity() {
+            return warningSeverity;
+        }
+
+    }
+
+    private static final Logger logger =3D Logger
+            .getLogger(ValidationResultViewHelper.class);
+
+    private static final Set SUPPORTED_RESULT_TYPES;
+
+    static {
+        SUPPORTED_RESULT_TYPES =3D new HashSet(3);
+        SUPPORTED_RESULT_TYPES.add(IsValidForActivationResults.class);
+        SUPPORTED_RESULT_TYPES.add(URLIntegrityValidForActivationResults.c=
lass);
+        SUPPORTED_RESULT_TYPES.add(WAIValidForActivationResults.class);
+    }
+
+    /**
+     * Builds the view helper object.
+     * =

+     * @param activationResults
+     *            activation result object
+     * @param jData
+     *            currect [EMAIL PROTECTED] JahiaData} object
+     * @throws JahiaException
+     *             in case of errors
+     */
+    static ValidationResultViewHelper getInstance(
+            ActivationTestResults activationResults, JahiaData jData)
+            throws JahiaException {
+        return new ValidationResultViewHelper(activationResults, jData).bu=
ild();
+    }
+
+    private ActivationTestResults activationResults;
+
+    private ProcessingContext ctx;
+
+    private JahiaData jData;
+
+    private List resultGroups =3D new LinkedList();
+
+    /**
+     * Initializes an instance of this class.
+     * =

+     * @param activationResults
+     *            activation result object
+     * @param jData
+     *            currect [EMAIL PROTECTED] JahiaData} object
+     */
+    private ValidationResultViewHelper(ActivationTestResults activationRes=
ults,
+            JahiaData jData) {
+        super();
+        this.activationResults =3D activationResults;
+        this.jData =3D jData;
+        ctx =3D jData.getProcessingContext();
+    }
+
+    private ValidationResultViewHelper build() throws JahiaException {
+        Set errors =3D new HashSet();
+        Set urlIntegrityErrors =3D new HashSet();
+        Set urlIntegrityWarnings =3D new HashSet();
+        Set waiIntegrityErrors =3D new HashSet();
+        Set waiIntegrityWarnings =3D new HashSet();
+        Set warnings =3D new HashSet();
+
+        JahiaSite site =3D ServicesRegistry.getInstance().getJahiaSitesSer=
vice()
+                .getSite(ctx.getSiteID());
+        if (site.getURLIntegrityCheck() + site.getWAIComplianceCheck() > 0=
) {
+            for (Iterator iterator =3D activationResults.getErrors().itera=
tor(); iterator
+                    .hasNext();) {
+                Object err =3D iterator.next();
+                ValidationResultDisplayObject dispObj =3D getDisplayObject=
(err);
+                if (err.getClass() =3D=3D WAIValidForActivationResults.cla=
ss) {
+                    waiIntegrityErrors.add(dispObj);
+                } else if (err.getClass() =3D=3D URLIntegrityValidForActiv=
ationResults.class) {
+                    urlIntegrityErrors.add(dispObj);
+                } else {
+                    errors.add(dispObj);
+                }
+            }
+            for (Iterator iterator =3D activationResults.getWarnings().ite=
rator(); iterator
+                    .hasNext();) {
+                Object wrn =3D iterator.next();
+                ValidationResultDisplayObject dispObj =3D getDisplayObject=
(wrn);
+                if (wrn.getClass() =3D=3D WAIValidForActivationResults.cla=
ss) {
+                    waiIntegrityWarnings.add(dispObj);
+                } else if (wrn.getClass() =3D=3D URLIntegrityValidForActiv=
ationResults.class) {
+                    urlIntegrityWarnings.add(dispObj);
+                } else {
+                    warnings.add(dispObj);
+                }
+            }
+        } else {
+            for (Iterator iterator =3D activationResults.getErrors().itera=
tor(); iterator
+                    .hasNext();) {
+                errors.add(getDisplayObject(iterator.next()));
+            }
+            for (Iterator iterator =3D activationResults.getWarnings().ite=
rator(); iterator
+                    .hasNext();) {
+                warnings.add(getDisplayObject(iterator.next()));
+            }
+        }
+
+        if (errors.size() > 0) {
+            resultGroups.add(new ValidationResultGroup("error",
+                    "org.jahia.error.label", errors));
+        }
+        if (urlIntegrityErrors.size() > 0) {
+            resultGroups
+                    .add(new ValidationResultGroup(
+                            "error",
+                            "org.jahia.engines.shared.BigText_Field.integr=
ityError.label",
+                            urlIntegrityErrors));
+        }
+        if (waiIntegrityErrors.size() > 0) {
+            resultGroups.add(new ValidationResultGroup("error",
+                    "org.jahia.engines.shared.BigText_Field.WAIerror.label=
",
+                    waiIntegrityErrors));
+        }
+        if (warnings.size() > 0) {
+            resultGroups.add(new ValidationResultGroup("warning",
+                    "org.jahia.warning.label", warnings));
+        }
+        if (urlIntegrityWarnings.size() > 0) {
+            resultGroups.add(new ValidationResultGroup("error",
+                    "org.jahia.engines.shared.BigText_Field.warning.label",
+                    urlIntegrityWarnings));
+        }
+        if (waiIntegrityWarnings.size() > 0) {
+            resultGroups.add(new ValidationResultGroup("error",
+                    "org.jahia.engines.shared.BigText_Field.WAIwarning.lab=
el",
+                    waiIntegrityWarnings));
+        }
+
+        return this;
+    }
+
+    private ValidationResultDisplayObject getDisplayObject(Object resultOb=
j)
+            throws JahiaException {
+        if (!SUPPORTED_RESULT_TYPES.contains(resultObj.getClass())) {
+            logger.warn("Validation test result object of class "
+                    + resultObj.getClass()
+                    + " found. Do not know how to handle it.");
+            return new ValidationResultDisplayObject(resultObj.toString());
+        }
+
+        NodeOperationResult result =3D (NodeOperationResult) resultObj;
+        ValidationResultDisplayObject dispObj =3D new ValidationResultDisp=
layObject(
+                result.getObjectType(), result.getNodeKey().getIDInType(),
+                getLanguage(result), getMessage(result));
+
+        ContentObject contentObj;
+        try {
+            contentObj =3D (ContentObject) ContentObject.getInstance(result
+                    .getNodeKey());
+        } catch (ClassNotFoundException ex) {
+            throw new IllegalArgumentException(ex);
+        }
+
+        if (contentObj !=3D null) {
+            dispObj.pageId =3D String.valueOf(contentObj.getPageID());
+            ContentPage contentPage =3D null;
+            try {
+                contentPage =3D ContentPage
+                        .getPage(contentObj.getPageID(), false);
+            } catch (JahiaException ex) {
+                logger.warn("Unable to retrieve page with ID: "
+                        + contentObj.getPageID(), ex);
+            }
+
+            if (contentPage !=3D null) {
+                dispObj.pageTitle =3D contentPage.getTitle(ctx
+                        .getEntryLoadRequest(), false);
+            }
+            dispObj.pageTitle =3D dispObj.pageTitle !=3D null ? dispObj.pa=
geTitle : "N.A.";
+
+            dispObj.title =3D getTitle(contentObj);
+            =

+            if (ContentFieldKey.FIELD_TYPE.equals(result.getObjectType()))=
 {
+                ContentField fld =3D (ContentField) contentObj;
+                ContentContainer cnt =3D null;
+                if (fld.getContainerID() !=3D 0) {
+                    try {
+                        cnt =3D ContentContainer.getContainer(fld
+                                .getContainerID());
+                    } catch (Exception ex) {
+                        // ignore
+                    }
+                }
+                dispObj.url =3D cnt !=3D null ? jData.gui().html()
+                        .drawUpdateContainerLauncher(cnt, fld.getID()) : j=
Data
+                        .gui().html().drawUpdateFieldLauncher(fld);
+            } else if (ContentContainerKey.CONTAINER_TYPE.equals(result
+                    .getObjectType())) {
+                dispObj.url =3D jData.gui().html().drawUpdateContainerLaun=
cher(
+                        (ContentContainer) contentObj);
+            } else if (ContentPageKey.PAGE_TYPE.equals(result.getObjectTyp=
e())) {
+                dispObj.url =3D jData.gui().html().drawPagePropertiesLaunc=
her(
+                        (ContentPage) contentObj);
+            } else {
+
+            }
+        }
+
+        return dispObj;
+    }
+
+    private String getLanguage(NodeOperationResult result) {
+        return LanguageCodeConverters.languageCodeToLocale(
+                result.getLanguageCode()).getDisplayLanguage(ctx.getLocale=
());
+    }
+
+    private String getMessage(NodeOperationResult result) {
+        if (result.getMsg() !=3D null) {
+            final String keyValue =3D JahiaResourceBundle.getMessageResour=
ce(
+                    result.getMsg().getKey(), ctx.getLocale());
+            final MessageFormat msgFormat =3D new MessageFormat(keyValue);
+            msgFormat.setLocale(ctx.getLocale());
+            return msgFormat.format(result.getMsg().getValues());
+        } else {
+            return result.getComment();
+        }
+
+    }
+
+    public List getResultGroups() {
+        return resultGroups;
+    }
+
+    private String getTitle(ContentObject obj) {
+        String title =3D null;
+        try {
+            title =3D ContentDefinition.getObjectTitle(obj,
+                    new ContentObjectEntryState(ctx.getEntryLoadRequest()
+                            .getWorkflowState(), ctx.getEntryLoadRequest()
+                            .getVersionID(), ctx.getLocale().getLanguage()=
));
+        } catch (Exception ex) {
+            logger.warn("Unable to retrieve content object title for: "
+                    + obj.getObjectKey());
+        }
+        return title;
+    }
+
+}
\ No newline at end of file

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/gui/HTMLTool=
Box.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/gui/HTMLToolBox.java&rev=3D18897&repname=3D=
jahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=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/gui/HTMLToolBox.ja=
va (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/gui/HTMLToolBox.ja=
va Wed Oct 17 14:30:55 2007
@@ -383,7 +383,20 @@
      */
     public String drawUpdateContainerLauncher(final ContentContainer conte=
ntContainer) throws JahiaException {
         return drawUpdateContainerLauncher(contentContainer, JS_WINDOW_WID=
TH,
-                JS_WINDOW_HEIGHT, false);
+                JS_WINDOW_HEIGHT, false, 0);
+    }
+
+    /**
+     * returns the URL of the container update window
+     *
+     * @param contentContainer
+     * @param focusedFieldId the id of the field to focus on
+     * @return the URL of the container update window
+     * @throws JahiaException
+     */
+    public String drawUpdateContainerLauncher(final ContentContainer conte=
ntContainer, int focusedFieldId) throws JahiaException {
+        return drawUpdateContainerLauncher(contentContainer, JS_WINDOW_WID=
TH,
+                JS_WINDOW_HEIGHT, false, focusedFieldId);
     }
 =

     /**
@@ -397,7 +410,7 @@
                                               final int width,
                                               final int height)
             throws JahiaException {
-        return drawUpdateContainerLauncher(contentContainer, width, height=
, false);
+        return drawUpdateContainerLauncher(contentContainer, width, height=
, false, 0);
     }
 =

     /**
@@ -412,7 +425,7 @@
                     getContentContainer();
             return drawUpdateContainerLauncher(contentContainer,
                     JS_WINDOW_WIDTH,
-                    JS_WINDOW_HEIGHT, false);
+                    JS_WINDOW_HEIGHT, false, 0);
         } else {
             return "";
         }
@@ -431,7 +444,7 @@
                                               final int height)
             throws JahiaException {
         final ContentContainer contentContainer =3D theContainer.getConten=
tContainer();
-        return drawUpdateContainerLauncher(contentContainer, width, height=
, false);
+        return drawUpdateContainerLauncher(contentContainer, width, height=
, false, 0);
     }
 =

     /**
@@ -452,7 +465,8 @@
     private String drawUpdateContainerLauncher(final ContentContainer cont=
entContainer,
                                                final int width,
                                                final int height,
-                                               final boolean checkLock)
+                                               final boolean checkLock,
+                                               int focusedFieldId)
             throws JahiaException {
 =

         if (contentContainer =3D=3D null) return "";
@@ -462,9 +476,16 @@
         name.append("updateContainer_");
         name.append(containerID);
         name.append(cleanSessionID(jParams.getSessionID()));
-        final String updateContainerURL =3D gui.drawUpdateContainerUrl(con=
tentContainer);
+        String updateContainerURL =3D gui.drawUpdateContainerUrl(contentCo=
ntainer);
+        if (updateContainerURL.length() > 0 && focusedFieldId > 0) {
+            // also add focused field ID
+            updateContainerURL =3D new StringBuffer(
+                    updateContainerURL.length() + 16)
+                    .append(updateContainerURL).append("&fid=3D").append(
+                            focusedFieldId).toString(); =

+        }
         final StringBuffer buff =3D new StringBuffer();
-        final String out =3D updateContainerURL.equals("") ? "" :
+        final String out =3D updateContainerURL.length() =3D=3D 0 ? "" :
                 buff.append("OpenJahiaScrollableWindow('").append(updateCo=
ntainerURL).
                         append("','").append(name.toString()).append("',")=
.append(width).
                         append(",").append(height).append(")").toString();
@@ -964,7 +985,7 @@
         } else if (objectClass =3D=3D ContentContainer.class) {
             if (LockKey.UPDATE_CONTAINER_TYPE.equals(lockKey.getType())) {
                 launcher =3D drawUpdateContainerLauncher((ContentContainer)
-                        contentObject, JS_WINDOW_WIDTH, JS_WINDOW_HEIGHT, =
false);
+                        contentObject, JS_WINDOW_WIDTH, JS_WINDOW_HEIGHT, =
false, 0);
             } else if (LockKey.DELETE_CONTAINER_TYPE.equals(lockKey.getTyp=
e())) {
                 launcher =3D drawDeleteContainerLauncher((ContentContainer)
                         contentObject, false);

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/wo=
rkflow/showReport.jsp
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/webapp/jsp/jahia/engines/workflow/showReport.jsp&rev=3D188=
97&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/workflow=
/showReport.jsp (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/workflow=
/showReport.jsp Wed Oct 17 14:30:55 2007
@@ -14,115 +14,28 @@
 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.
---%>
+--%><%@ page contentType=3D"text/html;charset=3DUTF-8" language=3D"java" %>
 <%@ page import=3D"org.jahia.data.JahiaData" %>
-<%@ page import=3D"org.jahia.engines.EngineMessage" %>
-<%@ page import=3D"org.jahia.exceptions.JahiaException" %>
-<%@ page import=3D"org.jahia.params.ParamBean" %>
-<%@ page import=3D"org.jahia.registries.ServicesRegistry" %>
-<%@ page import=3D"org.jahia.resourcebundle.JahiaResourceBundle" %>
-<%@ page import=3D"org.jahia.services.containers.ContentContainer" %>
-<%@ page import=3D"org.jahia.services.fields.URLIntegrityValidForActivatio=
nResults" %>
-<%@ page import=3D"org.jahia.services.fields.WAIValidForActivationResults"=
 %>
-<%@ page import=3D"org.jahia.services.sites.JahiaSite" %>
-<%@ page import=3D"org.jahia.services.version.ActivationTestResults" %>
-<%@ page import=3D"org.jahia.services.version.IsValidForActivationResults"=
 %>
-<%@ page import=3D"org.jahia.utils.LanguageCodeConverters" %>
-<%@ page import=3D"java.io.IOException" %>
-<%@ page import=3D"java.text.MessageFormat" %>
-<%@ page import=3D"java.util.*" %>
-<%@ page import=3D"org.jahia.content.*" %>
-<%@ page import=3D"org.jahia.services.fields.ContentField" %>
-<%@ page import=3D"org.jahia.services.pages.ContentPage" %>
-<%@ page contentType=3D"text/html;charset=3DUTF-8" language=3D"java" %>
-
-<%@ taglib uri=3D"JahiaLib" prefix=3D"jahia" %>
-
-<%!
-    public String displayActivationResult(final Object testResultObject,
-                                          final JahiaData jData,
-                                          final String key)
-            throws IOException, JahiaException, ClassNotFoundException {
-        final StringBuffer buff =3D new StringBuffer();
-        final Class objectClass =3D testResultObject.getClass();
-        if (objectClass =3D=3D IsValidForActivationResults.class ||
-                objectClass =3D=3D URLIntegrityValidForActivationResults.c=
lass ||
-                objectClass =3D=3D WAIValidForActivationResults.class) {
-            final ParamBean jParams =3D jData.params();
-            final NodeOperationResult ivfar =3D (NodeOperationResult) test=
ResultObject;
-            final Locale loc =3D LanguageCodeConverters.languageCodeToLoca=
le(ivfar.getLanguageCode());
-            final EngineMessage message =3D ivfar.getMsg();
-            final String msg;
-            if (message !=3D null) {
-                final String keyValue =3D JahiaResourceBundle.getMessageRe=
source(message.getKey(), jParams.getLocale());
-                final MessageFormat msgFormat =3D new MessageFormat(keyVal=
ue);
-                msgFormat.setLocale(jParams.getLocale());
-                msg =3D msgFormat.format(message.getValues());
-
-            } else {
-                msg =3D ivfar.getComment();
-            }
-
-            final ObjectKey objKey =3D ivfar.getNodeKey();
-            final ContentObject obj =3D (ContentObject) ContentObject.getI=
nstance(objKey);
-
-            if (obj !=3D null /* && obj.checkWriteAccess(jParams.getUser()=
) */) {
-                if (ivfar.getObjectType().equals(ContentFieldKey.FIELD_TYP=
E)) {
-                    buff.append("[<b>");
-                    buff.append("<a onclick=3D\"window.onunload=3DrefreshT=
ree;\" href=3D\"javascript:");
-                    buff.append(jData.gui().html().drawUpdateFieldLauncher=
((ContentField) obj));
-                    buff.append("\">");
-                    buff.append(ivfar.getObjectType()).append(" ").append(=
ivfar.getObjectID());
-                    buff.append("</a>");
-                    buff.append("</b>] -&nbsp;");
-
-                } else if (ivfar.getObjectType().equals(ContentContainerKe=
y.CONTAINER_TYPE)) {
-                    buff.append("[<b>");
-                    buff.append("<a onclick=3D\"window.onunload=3DrefreshT=
ree;\" href=3D\"javascript:");
-                    buff.append(jData.gui().html().drawUpdateContainerLaun=
cher((ContentContainer) obj));
-                    buff.append("\">");
-                    buff.append(ivfar.getObjectType()).append(" ").append(=
ivfar.getObjectID());
-                    buff.append("</a>");
-                    buff.append("</b>] -&nbsp;");
-
-                } else if (ivfar.getObjectType().equals(ContentPageKey.PAG=
E_TYPE)) {
-                    buff.append("[<b>");
-                    buff.append("<a onclick=3D\"window.onunload=3DrefreshT=
ree;\" href=3D\"javascript:");
-                    buff.append(jData.gui().html().drawPagePropertiesLaunc=
her((ContentPage) obj));
-                    buff.append("\">");
-                    buff.append(ivfar.getObjectType()).append(" ").append(=
ivfar.getObjectID());
-                    buff.append("</a>");
-                    buff.append("</b>] -&nbsp;");
-
-                } else {
-                    buff.append("[<b>").append(ivfar.getObjectType()).appe=
nd(" ").append(ivfar.getObjectID()).append("</b>] -&nbsp;");
-                }
-            }
-
-            buff.append(JahiaResourceBundle.getEngineResource("org.jahia.e=
ngines.shared.Page_Field.languages.label",
-                    jParams, jParams.getLocale()));
-            buff.append(": '<b>").append(loc.getDisplayLanguage(jParams.ge=
tLocale()));
-            buff.append("</b>':&nbsp;").append(msg);
-            buff.append("&nbsp;");
-
-        } else {
-            buff.append(testResultObject.toString());
-        }
-        return buff.toString();
-    }
-%>
+<%@ taglib uri=3D"/WEB-INF/etc/taglibs/jstl/c.tld" prefix=3D"c" %>
+<%@ taglib uri=3D"/WEB-INF/etc/struts/struts-bean.tld" prefix=3D"bean" %>
+<%@ taglib uri=3D"JahiaLib" prefix=3D"jahia" %>
 =

 <%
-    final String key =3D request.getParameter("objectkey");
-    final ActivationTestResults results =3D (ActivationTestResults) reques=
t.getSession().getAttribute(key);
     final JahiaData jData =3D (JahiaData) request.getAttribute("org.jahia.=
data.JahiaData");
-    final ParamBean jParams =3D (ParamBean) request.getAttribute("org.jahi=
a.params.ParamBean");
 %>
-
+<style type=3D"text/css">
+table.validationResults tr.header td {
+    font-weight: bold;
+}
+table.validationResults tr td {
+    text-align: center !important;
+}
+table.validationResults img {
+    border: none;
+}
+</style>
 <script type=3D"text/javascript">
-
     window.onunload =3D null;
-
     function refreshTree() {
         window.opener.refreshTree();
     }
@@ -143,183 +56,40 @@
 </div>
 =

 <br/>&nbsp;<br/>
-
-<% final JahiaSite site =3D ServicesRegistry.getInstance().getJahiaSitesSe=
rvice().getSite(jParams.getSiteID());
-    if (site.getURLIntegrityCheck() + site.getWAIComplianceCheck() > 0) {
-        final List warnings =3D results.getWarnings();
-        if (warnings.size() > 0) {
-            final Set urlIntegrityWarnings =3D new HashSet();
-            final Set waiIntegrityWarnings =3D new HashSet();
-            final Set otherWarnings =3D new HashSet();
-            for (int i =3D 0; i < warnings.size(); i++) {
-                final Object result =3D warnings.get(i);
-                final Class c =3D result.getClass();
-                if (c =3D=3D WAIValidForActivationResults.class) {
-                    waiIntegrityWarnings.add(result);
-                } else if (c =3D=3D URLIntegrityValidForActivationResults.=
class) {
-                    urlIntegrityWarnings.add(result);
-                } else {
-                    otherWarnings.add(result);
-                }
-            } %>
-
-<% if (waiIntegrityWarnings.size() > 0) { %>
-<h5 class=3D"warningIcon">
-    <span class=3D"errorbold"><jahia:engineResourceBundle
-            resourceName=3D"org.jahia.engines.shared.BigText_Field.WAIwarn=
ing.label"/></span></h5>
-<ul>
-    <%
-        final Iterator iterator =3D waiIntegrityWarnings.iterator();
-        while (iterator.hasNext()) {
-            final Object testResultObject =3D iterator.next();
-
-    %>
-    <li><%=3DdisplayActivationResult(testResultObject, jData, key)%></li>
-    <% } %>
-</ul>
-<% } %>
-
-<% if (urlIntegrityWarnings.size() > 0) { %>
-<h5 class=3D"warningIcon">
-    <span class=3D"errorbold"><jahia:engineResourceBundle
-            resourceName=3D"org.jahia.engines.shared.BigText_Field.warning=
.label"/></span></h5>
-<ul>
-    <%
-        final Iterator iterator =3D urlIntegrityWarnings.iterator();
-        while (iterator.hasNext()) {
-            final Object testResultObject =3D iterator.next();
-
-    %>
-    <li><%=3DdisplayActivationResult(testResultObject, jData, key)%></li>
-
-    <% } %>
-</ul>
-<% } %>
-
-<% if (otherWarnings.size() > 0) { %>
-<h5 class=3D"warningIcon">
-    <span class=3D"errorbold"><jahia:engineResourceBundle resourceName=3D"=
org.jahia.warning.label"/></span></h5>
-<ul>
-    <%
-        final Iterator iterator =3D otherWarnings.iterator();
-        while (iterator.hasNext()) {
-            final Object testResultObject =3D iterator.next();
-
-    %>
-    <li><%=3DdisplayActivationResult(testResultObject, jData, key)%></li>
-    <% } %>
-</ul>
-<% } %>
-<% } %>
-<%
-    final List errors =3D results.getErrors();
-    if (errors.size() > 0) {
-        final Set urlIntegrityErrors =3D new HashSet();
-        final Set waiIntegrityErrors =3D new HashSet();
-        final Set otherErrors =3D new HashSet();
-        for (int i =3D 0; i < errors.size(); i++) {
-            final Object result =3D errors.get(i);
-            final Class c =3D result.getClass();
-            if (c =3D=3D WAIValidForActivationResults.class) {
-                waiIntegrityErrors.add(result);
-            } else if (c =3D=3D URLIntegrityValidForActivationResults.clas=
s) {
-                urlIntegrityErrors.add(result);
-            } else {
-                otherErrors.add(result);
-            }
-        }
-%>
-
-<% if (waiIntegrityErrors.size() > 0) { %>
-<h5 class=3D"errorIcon">
-    <span class=3D"errorbold"><jahia:engineResourceBundle
-            resourceName=3D"org.jahia.engines.shared.BigText_Field.WAIerro=
r.label"/></span></h5>
-<ul>
-    <%
-        final Iterator iterator =3D waiIntegrityErrors.iterator();
-        while (iterator.hasNext()) {
-            final Object testResultObject =3D iterator.next();
-
-    %>
-    <li><%=3DdisplayActivationResult(testResultObject, jData, key)%></li>
-
-    <% } %>
-</ul>
-<% } %>
-
-<% if (urlIntegrityErrors.size() > 0) { %>
-<h5 class=3D"errorIcon">
-    <span class=3D"errorbold"><jahia:engineResourceBundle
-            resourceName=3D"org.jahia.engines.shared.BigText_Field.integri=
tyError.label"/></span></h5>
-<ul>
-    <%
-        final Iterator iterator =3D urlIntegrityErrors.iterator();
-        while (iterator.hasNext()) {
-            final Object testResultObject =3D iterator.next();
-
-    %>
-    <li><%=3DdisplayActivationResult(testResultObject, jData, key)%></li>
-
-    <% } %>
-</ul>
-<% } %>
-
-<% if (otherErrors.size() > 0) { %>
-<h5 class=3D"errorIcon">
-    <span class=3D"errorbold"><jahia:engineResourceBundle resourceName=3D"=
org.jahia.error.label"/></span></h5>
-<ul>
-    <%
-        final Iterator iterator =3D otherErrors.iterator();
-        while (iterator.hasNext()) {
-            final Object testResultObject =3D iterator.next();
-
-    %>
-    <li><%=3DdisplayActivationResult(testResultObject, jData, key)%></li>
-
-    <% } %>
-</ul>
-<% } %>
-<% } %>
-
-<% } else { %>
-<% if (results.getWarnings().size() > 0) { %>
-<h5 class=3D"warningIcon">
-    <span class=3D"errorbold"><jahia:engineResourceBundle resourceName=3D"=
org.jahia.warning.label"/></span></h5>
-<ul>
-    <%
-        final List warnings =3D results.getWarnings();
-        final Set setOfWarnings =3D new HashSet();
-        for (int i =3D 0; i < warnings.size(); i++) {
-            setOfWarnings.add(warnings.get(i));
-        }
-        final Iterator iterator =3D setOfWarnings.iterator();
-        while (iterator.hasNext()) {
-            final Object testResultObject =3D iterator.next();
-
-    %>
-    <li><%=3DdisplayActivationResult(testResultObject, jData, key)%></li>
-
-    <% } %>
-</ul>
-<% }
-
-    if (results.getErrors().size() > 0) { %>
-<h5 class=3D"errorIcon">
-    <span class=3D"errorbold"><jahia:engineResourceBundle resourceName=3D"=
org.jahia.error.label"/></span></h5>
-<ul>
-    <%
-        final List errors =3D results.getErrors();
-        final Set setOfErrors =3D new HashSet();
-        for (int i =3D 0; i < errors.size(); i++) {
-            setOfErrors.add(errors.get(i));
-        }
-        final Iterator iterator =3D setOfErrors.iterator();
-        while (iterator.hasNext()) {
-            final Object testResultObject =3D iterator.next();
-    %>
-    <li><%=3DdisplayActivationResult(testResultObject, jData, key)%></li>
-    <% } %>
-</ul>
-<% } %>
-<% } %>
-<br/>
\ No newline at end of file
+<c:forEach items=3D"${viewHelper.resultGroups}" var=3D"group">
+    <bean:define id=3D"labelKey" name=3D"group" property=3D"labelKey" type=
=3D"java.lang.String"/>
+    <span class=3D"<c:out value=3D'${group.warningSeverity}'/>" style=3D"f=
ont-weight: bold"><jahia:engineResourceBundle resourceName=3D"<%=3DlabelKey=
 %>"/></span>
+    <table cellpadding=3D"3" cellspacing=3D"0" border=3D"1" class=3D"valid=
ationResults">
+        <tr class=3D"header">
+            <td>&nbsp;</td>
+            <td><jahia:engineResourceBundle
+                    resourceName=3D"org.jahia.engines.deletecontainer.Dele=
teContainer_Engine.type.label"/></td>
+            <td><jahia:engineResourceBundle
+                    resourceName=3D"org.jahia.engines.deletecontainer.Dele=
teContainer_Engine.id.label"/></td>
+            <td><jahia:engineResourceBundle
+                    resourceName=3D"org.jahia.engines.deletecontainer.Dele=
teContainer_Engine.title.label"/></td>
+            <td><jahia:engineResourceBundle
+                    resourceName=3D"org.jahia.engines.deletecontainer.Dele=
teContainer_Engine.pageId.label"/></td>
+            <td><jahia:engineResourceBundle
+                    resourceName=3D"org.jahia.engines.deletecontainer.Dele=
teContainer_Engine.pageTitle.label"/></td>
+            <td><jahia:engineResourceBundle
+                    resourceName=3D"org.jahia.engines.shared.Page_Field.la=
nguages.label"/></td>
+            <td><jahia:engineResourceBundle
+                    resourceName=3D"org.jahia.engines.version.warning"/></=
td>
+        </tr>
+        <c:forEach items=3D"${group.results}" var=3D"obj">
+        <bean:define id=3D"targetPageId" name=3D"obj" property=3D"pageId" =
type=3D"java.lang.String"/>
+        <% String targetPageUrl =3D jData.gui().drawPageLink(Integer.parse=
Int(targetPageId)); %>
+        <tr>
+            <td><a onclick=3D"window.onunload=3DrefreshTree;" href=3D"java=
script:<c:out value=3D'${obj.url}'/>"><img src=3D"<%=3Drequest.getContextPa=
th() %>/jsp/jahia/engines/images/filemanager/edit_hover.gif" alt=3D"link"/>=
</a></td>
+            <td><c:out value=3D"${obj.objectType}"/></td>
+            <td><c:out value=3D"${obj.objectId}"/></td>
+            <td><c:out value=3D"${obj.title}"/></td>
+            <td><a href=3D"<%=3D targetPageUrl %>" target=3D"_blank"><c:ou=
t value=3D"${obj.pageId}"/></a></td>
+            <td><a href=3D"<%=3D targetPageUrl %>" target=3D"_blank"><c:ou=
t value=3D"${obj.pageTitle}"/></a></td>
+            <td><c:out value=3D"${obj.language}"/></td>
+            <td style=3D"text-align: left !important;"><c:out value=3D"${o=
bj.message}" escapeXml=3D"false"/></td>
+        </tr>
+        </c:forEach>
+    </table>
+</c:forEach>

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

Reply via email to