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>] - "); - - } 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>] - "); - - } 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>] - "); - - } else { - buff.append("[<b>").append(ivfar.getObjectType()).appe= nd(" ").append(ivfar.getObjectID()).append("</b>] - "); - } - } - - 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>': ").append(msg); - buff.append(" "); - - } 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/> <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> </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
