- Refactored client config for workflow

- Enabled all default actions for workflow package items
- Added view content properties dialog
- Added view completed task dialog

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3644 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Gavin Cornwell
2006-08-31 13:30:42 +00:00
parent 9e83bdffa0
commit a803a8803c
26 changed files with 695 additions and 260 deletions

View File

@@ -28,6 +28,7 @@ modify_user_roles_description=Modify the permissions granted to a user for acces
modify_content_user_roles_description=Modify the permissions granted to a user for accessing your content.
advancedsearch_description=Perform a more detailed search of the repository.
edit_content_description=Modify the content properties then click OK.
view_content_description=View the content properties.
editcategory_description=Set the category for the document then click OK.
editcategory_space_description=Set the category for the space then click OK.
editworkflow_description=Modify the simple workflow properties then click OK.
@@ -513,6 +514,7 @@ preview_of=Preview of
modify_props_of=Modify Properties of
modify_space_properties=Modify Space Properties
modify_content_properties=Modify Content Properties
view_content_properties=View Content Properties
preview=Preview in Template
custom_view=Custom View
view_links=Links
@@ -965,6 +967,8 @@ resources=Resources
manage_task=Manage Task
manage_task_title=Manage Task
manage_task_desc=This dialog allows the task to be managed.
view_completed_task_title=View Completed Task
view_completed_task_desc=This dialog allows the completed task details to be viewed.
task_properties=Task Properties
id=Id
status=Status
@@ -991,6 +995,8 @@ part_of_workflow=Part of Workflow
initiated_by=Initiated by
start_date=Start date
add_resource=Add Resource
view_properties=View Content Properties
edit_properties=Edit Content Properties
# Admin Console messages
title_admin_console=Administration Console

View File

@@ -12,8 +12,8 @@
<value>classpath:alfresco/web-client-config-properties.xml</value>
<value>classpath:alfresco/web-client-config-navigation.xml</value>
<value>classpath:alfresco/web-client-config-actions.xml</value>
<value>classpath:alfresco/web-client-config-workflow.xml</value>
<value>classpath:alfresco/web-client-config-forum-actions.xml</value>
<value>classpath:alfresco/web-client-config-workflow-actions.xml</value>
<value>classpath:alfresco/extension/web-client-config-custom.xml</value>
</list>
</constructor-arg>

View File

@@ -88,7 +88,7 @@
<label-id>checkin</label-id>
<image>/images/icons/CheckIn_icon.gif</image>
<action-listener>#{CheckinCheckoutBean.setupContentAction}</action-listener>
<action>checkinFile</action>
<action>dialog:checkinFile</action>
<params>
<param name="id">#{actionContext.id}</param>
</params>
@@ -100,7 +100,7 @@
<label-id>checkout</label-id>
<image>/images/icons/CheckOut_icon.gif</image>
<action-listener>#{CheckinCheckoutBean.setupContentAction}</action-listener>
<action>checkoutFile</action>
<action>dialog:checkoutFile</action>
<params>
<param name="id">#{actionContext.id}</param>
</params>
@@ -112,7 +112,7 @@
<label-id>undocheckout</label-id>
<image>/images/icons/undo_checkout.gif</image>
<action-listener>#{CheckinCheckoutBean.setupContentAction}</action-listener>
<action>undoCheckoutFile</action>
<action>dialog:undoCheckoutFile</action>
<params>
<param name="id">#{actionContext.id}</param>
</params>
@@ -200,7 +200,7 @@
<label-id>update</label-id>
<image>/images/icons/update.gif</image>
<action-listener>#{CheckinCheckoutBean.setupContentAction}</action-listener>
<action>updateFile</action>
<action>dialog:updateFile</action>
<params>
<param name="id">#{actionContext.id}</param>
</params>

View File

@@ -23,6 +23,12 @@
icon="/images/icons/delete_large.gif" title-id="delete_space"
description-id="delete_space_info" />
<!-- Definition of the view content properties dialog -->
<dialog name="viewContentProperties" page="/jsp/content/view-content-properties.jsp"
managed-bean="ViewContentPropertiesDialog" icon="/images/icons/details_large.gif"
title-id="view_content_properties" description-id="view_content_description"
show-ok-button="false" />
<!-- Definition of the set content properties dialog -->
<dialog name="setContentProperties" page="/jsp/content/edit-content-properties.jsp"
managed-bean="SetContentPropertiesDialog" icon="/images/icons/details_large.gif"
@@ -82,6 +88,25 @@
icon="/images/icons/create_topic_large.gif" title-id="create_topic"
description-id="create_topic_description" error-message-id="error_create_topic_dialog" />
<!-- -->
<!-- Workflow Dialogs -->
<dialog name="manageTask" page="/jsp/workflow/manage-task-dialog.jsp"
managed-bean="ManageTaskDialog" icon="/images/icons/manage_workflow_task_large.gif"
title-id="manage_task_title" description-id="manage_task_desc" />
<dialog name="viewCompletedTask" page="/jsp/workflow/view-completed-task-dialog.jsp"
managed-bean="ViewCompletedTaskDialog" icon="/images/icons/completed_workflow_task_large.gif"
title-id="view_completed_task_title" description-id="view_completed_task_desc"
show-ok-button="false" />
<dialog name="cancelWorkflow" page="/jsp/workflow/cancel-workflow-dialog.jsp"
managed-bean="CancelWorkflowDialog" icon="/images/icons/cancel_workflow_large.gif"
title-id="cancel_workflow" description-id="cancel_workflow_info" />
<dialog name="reassignTask" page="/jsp/workflow/reassign-task-dialog.jsp"
managed-bean="ReassignTaskDialog" icon="/images/icons/reassign_workflow_task_large.gif"
title-id="reassign_task_title" description-id="reassign_task_desc" />
<!-- -->
<!-- Other Dialogs -->

View File

@@ -11,7 +11,7 @@
<label-id>checkin</label-id>
<image>/images/icons/CheckIn_icon.gif</image>
<action-listener>#{CheckinCheckoutBean.setupContentAction}</action-listener>
<action>checkinFile</action>
<action>dialog:checkinFile</action>
<params>
<param name="id">#{actionContext.id}</param>
</params>

View File

@@ -172,7 +172,9 @@
</property-sheet>
</config>
<!-- ********************************** -->
<!-- Configuration for discussion types -->
<!-- ********************************** -->
<config evaluator="node-type" condition="fm:forums">
<property-sheet>
@@ -207,4 +209,77 @@
</property-sheet>
</config>
<!-- ******************************** -->
<!-- Configuration for workflow types -->
<!-- ******************************** -->
<!-- Generic workflow task -->
<config evaluator="node-type" condition="bpm:workflowTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" />
<show-property name="bpm:status" />
<show-property name="bpm:dueDate" />
<show-property name="bpm:priority" />
</property-sheet>
</config>
<!-- Review and Approve workflow tasks -->
<config evaluator="node-type" condition="wf:reviewTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" />
<show-property name="bpm:status" />
<show-property name="bpm:dueDate" />
<show-property name="bpm:priority" />
</property-sheet>
</config>
<config evaluator="node-type" condition="wf:submitReviewTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="wf:reviewPriority" />
<show-property name="wf:reviewDueDate" />
<separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />
<show-association name="wf:reviewer" />
</property-sheet>
</config>
<!-- Ad hoc workflow tasks -->
<config evaluator="node-type" condition="wf:submitAdhocTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="wf:adhocDescription" component-generator="TextAreaGenerator" />
<show-property name="wf:adhocPriority" />
<show-property name="wf:adhocDueDate" />
<show-property name="wf:notifyMe" />
<separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />
<show-association name="wf:assignee" />
</property-sheet>
</config>
<config evaluator="node-type" condition="wf:adhocTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" />
<show-property name="wf:adhocDescription" ignore-if-missing="false" component-generator="TextAreaGenerator" />
<show-property name="bpm:status" />
<show-property name="bpm:dueDate" />
<show-property name="bpm:priority" />
</property-sheet>
</config>
<config evaluator="node-type" condition="wf:completedAdhocTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" />
<show-property name="wf:adhocDescription" component-generator="TextAreaGenerator" />
<show-property name="bpm:dueDate" />
<show-property name="bpm:priority" />
</property-sheet>
</config>
</alfresco-config>

View File

@@ -182,6 +182,32 @@
</step>
</wizard>
<!-- Definition of the Start Workflow wizard -->
<wizard name="startWorkflow" managed-bean="StartWorkflowWizard"
title-id="start_workflow_wizard" description-id="start_workflow_desc"
icon="/images/icons/new_workflow_large.gif">
<step name="choose-workflow" title-id="step_choose_workflow"
description-id="start_workflow_choose_desc">
<page path="/jsp/workflow/start-workflow-wizard/choose-workflow.jsp"
title-id="start_workflow_choose_title"
description-id="start_workflow_choose_desc"
instruction-id="default_instruction" />
</step>
<step name="options" title-id="step_workflow_options"
description-id="start_workflow_options_desc">
<page path="/jsp/workflow/start-workflow-wizard/workflow-options.jsp"
title-id="start_workflow_options_title"
description-id="start_workflow_options_desc"
instruction-id="default_instruction" />
</step>
<step name="summary" title-id="summary" description-id="summary_step_description">
<page path="/jsp/wizard/summary.jsp"
title-id="summary"
description-id="summary_desc"
instruction-id="start_workflow_finish_instruction" />
</step>
</wizard>
</wizards>
</config>

View File

@@ -0,0 +1,114 @@
<alfresco-config>
<config>
<actions>
<action id="start_workflow">
<label-id>start_workflow</label-id>
<image>/images/icons/new_workflow.gif</image>
<action>wizard:startWorkflow</action>
<action-listener>#{WizardManager.setupParameters}</action-listener>
<params>
<param name="item-to-workflow">#{actionContext.id}</param>
</params>
</action>
<action id="reassign_task">
<label-id>reassign</label-id>
<image>/images/icons/reassign_task.gif</image>
<action>dialog:reassignTask</action>
<action-listener>#{DialogManager.setupParameters}</action-listener>
<params>
<param name="task-id">#{actionContext.id}</param>
</params>
</action>
<action id="cancel_workflow">
<label-id>cancel_workflow</label-id>
<image>/images/icons/cancel_workflow.gif</image>
<action>dialog:cancelWorkflow</action>
<action-listener>#{DialogManager.setupParameters}</action-listener>
<params>
<param name="workflow-instance-id">#{actionContext.workflowInstanceId}</param>
<param name="workflow-instance-name">#{actionContext.workflowInstanceName}</param>
</params>
</action>
<action id="add_package_item">
<label-id>add_resource</label-id>
<image>/images/icons/add_item.gif</image>
<action-listener>#{DialogManager.bean.prepareForAdd}</action-listener>
</action>
<action id="remove_package_item">
<label-id>remove</label-id>
<image>/images/icons/remove_item.gif</image>
<action-listener>#{DialogManager.bean.removePackageItem}</action-listener>
<params>
<param name="id">#{actionContext.id}</param>
</params>
</action>
<action id="view_content_properties">
<label-id>view_properties</label-id>
<image>/images/icons/View_details.gif</image>
<action>dialog:viewContentProperties</action>
<action-listener>#{BrowseBean.setupContentAction}</action-listener>
<params>
<param name="id">#{actionContext.id}</param>
</params>
</action>
<action id="edit_content_properties">
<label-id>edit_properties</label-id>
<image>/images/icons/Change_details.gif</image>
<action>dialog:editContentProperties</action>
<action-listener>#{BrowseBean.setupContentAction}</action-listener>
<params>
<param name="id">#{actionContext.id}</param>
</params>
</action>
<action-group id="document_browse_menu">
<action idref="start_workflow" />
</action-group>
<action-group id="doc_details_actions">
<action idref="start_workflow" />
</action-group>
<action-group id="dashlet_todo_actions">
<action idref="reassign_task" />
</action-group>
<action-group id="dashlet_completed_actions">
<action idref="cancel_workflow" />
</action-group>
<action-group id="workflow_item_read_actions">
<action idref="view_content_properties" />
</action-group>
<action-group id="workflow_item_collection_actions">
<action idref="view_content_properties" />
<action idref="remove_package_item" />
</action-group>
<action-group id="workflow_item_edit_actions">
<action idref="view_content_properties" />
<action idref="edit_content_properties" />
<action idref="edit_doc_http" />
<action idref="edit_doc_webdav" />
<action idref="edit_doc_cifs" />
<action idref="update_doc" />
<action idref="checkout_doc" />
<action idref="checkin_doc" />
<action idref="cancelcheckout_doc" />
</action-group>
<action-group id="workflow_collection_actions">
<action idref="add_package_item" />
</action-group>
</actions>
</config>
</alfresco-config>

View File

@@ -1,218 +0,0 @@
<alfresco-config>
<!-- -->
<!-- Properties -->
<!-- -->
<!-- Generic workflow task -->
<config evaluator="node-type" condition="bpm:workflowTask">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" ignore-if-missing="false" />
<show-property name="bpm:status" ignore-if-missing="false" />
<show-property name="bpm:dueDate" ignore-if-missing="false" />
<show-property name="bpm:priority" ignore-if-missing="false" />
</property-sheet>
</config>
<!-- Review and Approve workflow tasks -->
<config evaluator="node-type" condition="wf:reviewTask">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" ignore-if-missing="false" />
<show-property name="bpm:status" ignore-if-missing="false" />
<show-property name="bpm:dueDate" ignore-if-missing="false" />
<show-property name="bpm:priority" ignore-if-missing="false" />
</property-sheet>
</config>
<config evaluator="node-type" condition="wf:submitReviewTask">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="wf:reviewPriority" ignore-if-missing="false" />
<show-property name="wf:reviewDueDate" ignore-if-missing="false" />
<separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />
<show-association name="wf:reviewer" ignore-if-missing="false" />
</property-sheet>
</config>
<!-- Ad hoc workflow tasks -->
<config evaluator="node-type" condition="wf:submitAdhocTask">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="wf:adhocDescription" ignore-if-missing="false" component-generator="TextAreaGenerator" />
<show-property name="wf:adhocPriority" ignore-if-missing="false" />
<show-property name="wf:adhocDueDate" ignore-if-missing="false" />
<show-property name="wf:notifyMe" />
<separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />
<show-association name="wf:assignee" ignore-if-missing="false" />
</property-sheet>
</config>
<config evaluator="node-type" condition="wf:adhocTask">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" ignore-if-missing="false" />
<show-property name="wf:adhocDescription" ignore-if-missing="false" component-generator="TextAreaGenerator" />
<show-property name="bpm:status" ignore-if-missing="false" />
<show-property name="bpm:dueDate" ignore-if-missing="false" />
<show-property name="bpm:priority" ignore-if-missing="false" />
</property-sheet>
</config>
<config evaluator="node-type" condition="wf:completedAdhocTask">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" ignore-if-missing="false" />
<show-property name="wf:adhocDescription" ignore-if-missing="false" component-generator="TextAreaGenerator" />
<show-property name="bpm:dueDate" ignore-if-missing="false" />
<show-property name="bpm:priority" ignore-if-missing="false" />
</property-sheet>
</config>
<!-- -->
<!-- Actions -->
<!-- -->
<config>
<actions>
<action id="start_workflow">
<label-id>start_workflow</label-id>
<image>/images/icons/new_workflow.gif</image>
<action>wizard:startWorkflow</action>
<action-listener>#{WizardManager.setupParameters}</action-listener>
<params>
<param name="item-to-workflow">#{actionContext.id}</param>
</params>
</action>
<action id="reassign_task">
<label-id>reassign</label-id>
<image>/images/icons/reassign_task.gif</image>
<action>dialog:reassignTask</action>
<action-listener>#{DialogManager.setupParameters}</action-listener>
<params>
<param name="task-id">#{actionContext.id}</param>
</params>
</action>
<action id="cancel_workflow">
<label-id>cancel_workflow</label-id>
<image>/images/icons/cancel_workflow.gif</image>
<action>dialog:cancelWorkflow</action>
<action-listener>#{DialogManager.setupParameters}</action-listener>
<params>
<param name="workflow-instance-id">#{actionContext.workflowInstanceId}</param>
<param name="workflow-instance-name">#{actionContext.workflowInstanceName}</param>
</params>
</action>
<action id="add_package_item">
<label-id>add_resource</label-id>
<image>/images/icons/add_item.gif</image>
<action-listener>#{DialogManager.bean.prepareForAdd}</action-listener>
</action>
<action id="remove_package_item">
<label-id>remove</label-id>
<image>/images/icons/remove_item.gif</image>
<action-listener>#{DialogManager.bean.removePackageItem}</action-listener>
<params>
<param name="id">#{actionContext.id}</param>
</params>
</action>
<action-group id="document_browse_menu">
<action idref="start_workflow" />
</action-group>
<action-group id="doc_details_actions">
<action idref="start_workflow" />
</action-group>
<action-group id="dashlet_todo_actions">
<action idref="reassign_task" />
</action-group>
<action-group id="dashlet_completed_actions">
<action idref="cancel_workflow" />
</action-group>
<action-group id="workflow_item_read_actions">
<action idref="details_doc" />
</action-group>
<action-group id="workflow_item_collection_actions">
<action idref="details_doc" />
<action idref="remove_package_item" />
</action-group>
<action-group id="workflow_item_edit_actions">
<action idref="details_doc" />
<action idref="checkout_doc" />
<action idref="cancelcheckout_doc" />
</action-group>
<action-group id="workflow_collection_actions">
<action idref="add_package_item" />
</action-group>
</actions>
</config>
<!-- -->
<!-- Wizards -->
<!-- -->
<config>
<wizards>
<wizard name="startWorkflow" managed-bean="StartWorkflowWizard"
title-id="start_workflow_wizard" description-id="start_workflow_desc"
icon="/images/icons/new_workflow_large.gif">
<step name="choose-workflow" title-id="step_choose_workflow"
description-id="start_workflow_choose_desc">
<page path="/jsp/workflow/start-workflow-wizard/choose-workflow.jsp"
title-id="start_workflow_choose_title"
description-id="start_workflow_choose_desc"
instruction-id="default_instruction" />
</step>
<step name="options" title-id="step_workflow_options"
description-id="start_workflow_options_desc">
<page path="/jsp/workflow/start-workflow-wizard/workflow-options.jsp"
title-id="start_workflow_options_title"
description-id="start_workflow_options_desc"
instruction-id="default_instruction" />
</step>
<step name="summary" title-id="summary" description-id="summary_step_description">
<page path="/jsp/wizard/summary.jsp"
title-id="summary"
description-id="summary_desc"
instruction-id="start_workflow_finish_instruction" />
</step>
</wizard>
</wizards>
</config>
<!-- -->
<!-- Dialogs -->
<!-- -->
<config>
<dialogs>
<dialog name="manageTask" page="/jsp/workflow/manage-task-dialog.jsp"
managed-bean="ManageTaskDialog" icon="/images/icons/manage_workflow_task_large.gif"
title-id="manage_task_title" description-id="manage_task_desc" />
<dialog name="cancelWorkflow" page="/jsp/workflow/cancel-workflow-dialog.jsp"
managed-bean="CancelWorkflowDialog" icon="/images/icons/cancel_workflow_large.gif"
title-id="cancel_workflow" description-id="cancel_workflow_info" />
<dialog name="reassignTask" page="/jsp/workflow/reassign-task-dialog.jsp"
managed-bean="ReassignTaskDialog" icon="/images/icons/reassign_workflow_task_large.gif"
title-id="reassign_task_title" description-id="reassign_task_desc" />
</dialogs>
</config>
</alfresco-config>

View File

@@ -47,9 +47,9 @@ import org.apache.commons.logging.LogFactory;
public class AlfrescoNavigationHandler extends NavigationHandler
{
public final static String OUTCOME_SEPARATOR = ":";
public final static String DIALOG_PREXIX = "dialog" + OUTCOME_SEPARATOR;
public final static String DIALOG_PREFIX = "dialog" + OUTCOME_SEPARATOR;
public final static String WIZARD_PREFIX = "wizard" + OUTCOME_SEPARATOR;
public final static String CLOSE_DIALOG_OUTCOME = DIALOG_PREXIX + "close";
public final static String CLOSE_DIALOG_OUTCOME = DIALOG_PREFIX + "close";
public final static String CLOSE_WIZARD_OUTCOME = WIZARD_PREFIX + "close";
protected final static String CONFIG_NAV_BEAN = "NavigationBean";
@@ -135,7 +135,7 @@ public class AlfrescoNavigationHandler extends NavigationHandler
{
boolean dialog = false;
if (outcome != null && outcome.startsWith(DIALOG_PREXIX))
if (outcome != null && outcome.startsWith(DIALOG_PREFIX))
{
dialog = true;
}

View File

@@ -40,6 +40,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.version.Version;
import org.alfresco.service.cmr.version.VersionType;
import org.alfresco.web.app.AlfrescoNavigationHandler;
import org.alfresco.web.app.Application;
import org.alfresco.web.app.context.UIContextService;
import org.alfresco.web.app.servlet.DownloadContentServlet;
@@ -492,12 +493,18 @@ public class CheckinCheckoutBean
Node node = getWorkingDocument();
if (node != null)
{
// reset the underlying node
if (this.browseBean.getDocument() != null)
{
this.browseBean.getDocument().reset();
}
// clean up and clear action context
clearUpload();
setDocument(null);
setWorkingDocument(null);
outcome = "browse";
outcome = AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME;
}
else
{
@@ -522,7 +529,7 @@ public class CheckinCheckoutBean
setDocument(null);
setWorkingDocument(null);
outcome = "browse";
outcome = AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME;
}
else
{
@@ -570,7 +577,7 @@ public class CheckinCheckoutBean
// navigate to appropriate screen
FacesContext fc = FacesContext.getCurrentInstance();
this.navigator.setupDispatchContext(node);
fc.getApplication().getNavigationHandler().handleNavigation(fc, null, "editTextInline");
fc.getApplication().getNavigationHandler().handleNavigation(fc, null, "dialog:editTextInline");
}
else
{
@@ -581,7 +588,7 @@ public class CheckinCheckoutBean
// navigate to appropriate screen
FacesContext fc = FacesContext.getCurrentInstance();
this.navigator.setupDispatchContext(node);
fc.getApplication().getNavigationHandler().handleNavigation(fc, null, "editHtmlInline");
fc.getApplication().getNavigationHandler().handleNavigation(fc, null, "dialog:editHtmlInline");
}
}
}
@@ -591,7 +598,7 @@ public class CheckinCheckoutBean
// normal downloadable document
FacesContext fc = FacesContext.getCurrentInstance();
this.navigator.setupDispatchContext(node);
fc.getApplication().getNavigationHandler().handleNavigation(fc, null, "editFile");
fc.getApplication().getNavigationHandler().handleNavigation(fc, null, "dialog:editFile");
}
}
}
@@ -629,7 +636,7 @@ public class CheckinCheckoutBean
setDocumentContent(null);
setEditorOutput(null);
outcome = "browse";
outcome = AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME;
}
catch (Throwable err)
{
@@ -664,7 +671,7 @@ public class CheckinCheckoutBean
clearUpload();
outcome = "browse";
outcome = AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME;
}
catch (Throwable err)
{
@@ -714,7 +721,7 @@ public class CheckinCheckoutBean
clearUpload();
outcome = "browse";
outcome = AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME + AlfrescoNavigationHandler.OUTCOME_SEPARATOR + "browse";
}
catch (Throwable err)
{
@@ -801,7 +808,8 @@ public class CheckinCheckoutBean
setDocument(null);
clearUpload();
outcome = "browse";
outcome = AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME +
AlfrescoNavigationHandler.OUTCOME_SEPARATOR + "browse";
}
catch (Throwable err)
{
@@ -857,7 +865,7 @@ public class CheckinCheckoutBean
setDocument(null);
clearUpload();
outcome = "browse";
outcome = AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME;
}
catch (Throwable err)
{
@@ -883,7 +891,7 @@ public class CheckinCheckoutBean
// reset the state
clearUpload();
return "browse";
return AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME;
}
/**

View File

@@ -0,0 +1,75 @@
package org.alfresco.web.bean.content;
import java.util.Map;
import javax.faces.context.FacesContext;
import org.alfresco.model.ContentModel;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.web.app.Application;
import org.alfresco.web.bean.dialog.BaseDialogBean;
import org.alfresco.web.bean.repository.Node;
/**
* Bean implementation of the "View Content Properties" dialog.
*
* @author gavinc
*/
public class ViewContentPropertiesDialog extends BaseDialogBean
{
protected static final String TEMP_PROP_MIMETYPE = "mimetype";
protected Node viewingNode;
// ------------------------------------------------------------------------------
// Dialog implementation
@Override
public void init(Map<String, String> parameters)
{
super.init(parameters);
// setup the editable node
this.viewingNode = new Node(this.browseBean.getDocument().getNodeRef());
// special case for Mimetype - since this is a sub-property of the ContentData object
// we must extract it so it can be edited in the client, then we check for it later
// and create a new ContentData object to wrap it and it's associated URL
ContentData content = (ContentData)this.viewingNode.getProperties().get(ContentModel.PROP_CONTENT);
if (content != null)
{
this.viewingNode.getProperties().put(TEMP_PROP_MIMETYPE, content.getMimetype());
}
// add the specially handled 'size' property
this.viewingNode.addPropertyResolver("size", this.browseBean.resolverSize);
}
@Override
protected String finishImpl(FacesContext context, String outcome)
throws Exception
{
// nothing to do as the finish button is not shown and the dialog is read only
return outcome;
}
@Override
public String getCancelButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), "close");
}
// ------------------------------------------------------------------------------
// Bean getters and setters
/**
* Returns the node being viewed
*
* @return The node being viewed
*/
public Node getViewingNode()
{
return this.viewingNode;
}
}

View File

@@ -1,7 +1,9 @@
package org.alfresco.web.bean.repository;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import org.alfresco.error.AlfrescoRuntimeException;
@@ -10,6 +12,8 @@ import org.alfresco.service.cmr.dictionary.AssociationDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.dictionary.PropertyDefinition;
import org.alfresco.service.cmr.dictionary.TypeDefinition;
import org.alfresco.service.cmr.repository.AssociationRef;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.GUID;
@@ -93,11 +97,64 @@ public class TransientNode extends Node
{
if (assocDef.isChild())
{
this.childAssociations.put(item, data.get(item));
// TODO: handle lists of NodeRef's
NodeRef child = null;
Object obj = data.get(item);
if (obj instanceof String)
{
child = new NodeRef((String)obj);
}
else if (obj instanceof NodeRef)
{
child = (NodeRef)obj;
}
else if (obj instanceof List)
{
if (logger.isWarnEnabled())
logger.warn("0..* child associations are not supported yet");
}
if (child != null)
{
// create a child association reference, add it to a list and add the list
// to the list of child associations for this node
List<ChildAssociationRef> assocs = new ArrayList<ChildAssociationRef>(1);
ChildAssociationRef childRef = new ChildAssociationRef(assocDef.getName(), this.nodeRef,
null, child);
assocs.add(childRef);
this.childAssociations.put(item, assocs);
}
}
else
{
this.associations.put(item, data.get(item));
// TODO: handle lists of NodeRef's
NodeRef target = null;
Object obj = data.get(item);
if (obj instanceof String)
{
target = new NodeRef((String)obj);
}
else if (obj instanceof NodeRef)
{
target = (NodeRef)obj;
}
else if (obj instanceof List)
{
if (logger.isWarnEnabled())
logger.warn("0..* associations are not supported yet");
}
if (target != null)
{
// create a association reference, add it to a list and add the list
// to the list of associations for this node
List<AssociationRef> assocs = new ArrayList<AssociationRef>(1);
AssociationRef assocRef = new AssociationRef(this.nodeRef, assocDef.getName(), target);
assocs.add(assocRef);
this.associations.put(item, assocs);
}
}
}
}

View File

@@ -24,6 +24,7 @@ import org.alfresco.service.cmr.workflow.WorkflowTransition;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern;
import org.alfresco.web.app.AlfrescoNavigationHandler;
import org.alfresco.web.app.Application;
import org.alfresco.web.bean.dialog.BaseDialogBean;
import org.alfresco.web.bean.repository.MapNode;
@@ -60,7 +61,7 @@ public class ManageTaskDialog extends BaseDialogBean
protected boolean isItemBeingAdded = false;
protected static final String ID_PREFIX = "transition_";
protected static final String CLIENT_ID_PREFIX = "dialog:" + ID_PREFIX;
protected static final String CLIENT_ID_PREFIX = AlfrescoNavigationHandler.DIALOG_PREFIX + ID_PREFIX;
private static final Log logger = LogFactory.getLog(ManageTaskDialog.class);
@@ -86,6 +87,7 @@ public class ManageTaskDialog extends BaseDialogBean
if (this.packageItemsRichList != null)
{
this.packageItemsRichList.setValue(null);
this.packageItemsRichList = null;
}
// get the task details

View File

@@ -0,0 +1,40 @@
package org.alfresco.web.bean.workflow;
import java.util.List;
import javax.faces.context.FacesContext;
import org.alfresco.web.app.Application;
import org.alfresco.web.config.DialogsConfigElement.DialogButtonConfig;
/**
* Bean implementation for the "View Completed Task" dialog.
*
* @author gavinc
*/
public class ViewCompletedTaskDialog extends ManageTaskDialog
{
// ------------------------------------------------------------------------------
// Dialog implementation
@Override
protected String finishImpl(FacesContext context, String outcome)
throws Exception
{
// nothing to do as the finish button is not shown and the dialog is read only
return outcome;
}
@Override
public String getCancelButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), "close");
}
@Override
public List<DialogButtonConfig> getAdditionalButtons()
{
return null;
}
}

View File

@@ -497,6 +497,31 @@
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the View Content Properties Dialog
</description>
<managed-bean-name>ViewContentPropertiesDialog</managed-bean-name>
<managed-bean-class>org.alfresco.web.bean.content.ViewContentPropertiesDialog</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>nodeService</property-name>
<value>#{NodeService}</value>
</managed-property>
<managed-property>
<property-name>fileFolderService</property-name>
<value>#{FileFolderService}</value>
</managed-property>
<managed-property>
<property-name>dictionaryService</property-name>
<value>#{DictionaryService}</value>
</managed-property>
<managed-property>
<property-name>browseBean</property-name>
<value>#{BrowseBean}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the Set Content Properties Dialog
@@ -1743,6 +1768,47 @@
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the View Completed Task Dialog
</description>
<managed-bean-name>ViewCompletedTaskDialog</managed-bean-name>
<managed-bean-class>org.alfresco.web.bean.workflow.ViewCompletedTaskDialog</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>nodeService</property-name>
<value>#{NodeService}</value>
</managed-property>
<managed-property>
<property-name>fileFolderService</property-name>
<value>#{FileFolderService}</value>
</managed-property>
<managed-property>
<property-name>searchService</property-name>
<value>#{SearchService}</value>
</managed-property>
<managed-property>
<property-name>navigator</property-name>
<value>#{NavigationBean}</value>
</managed-property>
<managed-property>
<property-name>browseBean</property-name>
<value>#{BrowseBean}</value>
</managed-property>
<managed-property>
<property-name>dictionaryService</property-name>
<value>#{DictionaryService}</value>
</managed-property>
<managed-property>
<property-name>namespaceService</property-name>
<value>#{NamespaceService}</value>
</managed-property>
<managed-property>
<property-name>workflowService</property-name>
<value>#{WorkflowService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>StartWorkflowWizard</managed-bean-name>
<managed-bean-class>org.alfresco.web.bean.workflow.StartWorkflowWizard</managed-bean-class>

View File

@@ -862,9 +862,10 @@
</navigation-case>
</navigation-rule>
<!-- Overridden dialog:close rules -->
<navigation-rule>
<from-view-id>/jsp/dialog/container.jsp</from-view-id>
<!-- Overridden dialog:close navigation rules for forums -->
<navigation-case>
<from-outcome>forumsDeleted</from-outcome>
<to-view-id>/jsp/forums/forums.jsp</to-view-id>
@@ -877,6 +878,37 @@
<from-outcome>topicDeleted</from-outcome>
<to-view-id>/jsp/forums/forum.jsp</to-view-id>
</navigation-case>
<!-- Workflow navigation rules for actions on workflow package items -->
<navigation-case>
<from-outcome>checkoutFile</from-outcome>
<to-view-id>/jsp/dialog/checkout-file.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>checkinFile</from-outcome>
<to-view-id>/jsp/dialog/checkin-file.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>undoCheckoutFile</from-outcome>
<to-view-id>/jsp/dialog/undocheckout-file.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>updateFile</from-outcome>
<to-view-id>/jsp/dialog/update-file.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>editFile</from-outcome>
<to-view-id>/jsp/dialog/edit-file.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>editHtmlInline</from-outcome>
<to-view-id>/jsp/dialog/edit-html-inline.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>editTextInline</from-outcome>
<to-view-id>/jsp/dialog/edit-text-inline.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>

View File

@@ -0,0 +1,24 @@
<%--
Copyright (C) 2005 Alfresco, Inc.
Licensed under the Mozilla Public License version 1.1
with a permitted attribution clause. You may obtain a
copy of the License at
http://www.alfresco.org/legal/license.txt
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.
--%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a" %>
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>
<r:propertySheetGrid id="content-props" value="#{DialogManager.bean.viewingNode}"
var="viewContentProps" columns="1" externalConfig="true"
mode="view" labelStyleClass="propertiesLabel" />

View File

@@ -121,7 +121,7 @@
<tr><td class="dialogButtonSpacing"></td></tr>
<tr>
<td align="center">
<h:commandButton value="#{msg.cancel}" action="browse" styleClass="dialogControls" />
<h:commandButton value="#{msg.cancel}" action="dialog:close" styleClass="dialogControls" />
</td>
</tr>
</table>

View File

@@ -153,7 +153,7 @@
<tr><td class="dialogButtonSpacing"></td></tr>
<tr>
<td align="center">
<h:commandButton value="#{msg.cancel}" action="browse" styleClass="dialogControls" />
<h:commandButton value="#{msg.cancel}" action="dialog:close" styleClass="dialogControls" />
</td>
</tr>
</table>

View File

@@ -126,7 +126,7 @@
<tr><td class="dialogButtonSpacing"></td></tr>
<tr>
<td align="center">
<h:commandButton value="#{msg.cancel}" action="browse" styleClass="dialogControls" />
<h:commandButton value="#{msg.cancel}" action="dialog:close" styleClass="dialogControls" />
</td>
</tr>
</table>

View File

@@ -115,7 +115,7 @@
<tr><td class="dialogButtonSpacing"></td></tr>
<tr>
<td align="center">
<h:commandButton value="#{msg.cancel}" action="browse" styleClass="dialogControls" />
<h:commandButton value="#{msg.cancel}" action="dialog:close" styleClass="dialogControls" />
</td>
</tr>
</table>

View File

@@ -47,6 +47,7 @@
showLink="false" styleClass="inlineAction" />
</f:facet>
<a:actionLink value="#{r.name}" href="#{r.url}" target="new" />
<r:lockIcon value="#{r.nodeRef}" align="absmiddle" />
</a:column>
<%-- Description column --%>
@@ -90,7 +91,7 @@
<f:facet name="header">
<h:outputText value="#{msg.actions}"/>
</f:facet>
<r:actions id="actions-col-actions" value="#{DialogManager.bean.packageItemActionGroup}"
<r:actions value="#{DialogManager.bean.packageItemActionGroup}"
context="#{r}" showLink="false" styleClass="inlineAction" />
</a:column>

View File

@@ -14,9 +14,15 @@
<a:sortLink label="#{msg.title}" value="name" mode="case-insensitive" styleClass="header"/>
</f:facet>
<f:facet name="small-icon">
<h:graphicImage url="/images/icons/completed_workflow_task.gif" />
<a:actionLink value="#{r.name}" image="/images/icons/completed_workflow_task.gif" showLink="false"
actionListener="#{DialogManager.setupParameters}" action="dialog:viewCompletedTask">
<f:param name="id" value="#{r.id}" />
</a:actionLink>
</f:facet>
<h:outputText value="#{r.name}" />
<a:actionLink value="#{r.name}" actionListener="#{DialogManager.setupParameters}"
action="dialog:viewCompletedTask">
<f:param name="id" value="#{r.id}" />
</a:actionLink>
</a:column>
<%-- Task id column --%>

View File

@@ -14,12 +14,10 @@
<a:sortLink label="#{msg.title}" value="name" mode="case-insensitive" styleClass="header"/>
</f:facet>
<f:facet name="small-icon">
<h:panelGroup>
<a:actionLink value="#{r.name}" image="/images/icons/workflow_task.gif" showLink="false"
actionListener="#{DialogManager.setupParameters}" action="dialog:manageTask">
<f:param name="id" value="#{r.id}" />
</a:actionLink>
</h:panelGroup>
</f:facet>
<a:actionLink value="#{r.name}" actionListener="#{DialogManager.setupParameters}"
action="dialog:manageTask">

View File

@@ -0,0 +1,98 @@
<%--
Copyright (C) 2005 Alfresco, Inc.
Licensed under the Mozilla Public License version 1.1
with a permitted attribution clause. You may obtain a
copy of the License at
http://www.alfresco.org/legal/license.txt
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.
--%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a" %>
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>
<a:panel id="props-panel" label="#{msg.task_properties}"
border="white" bgcolor="white" titleBorder="blue" titleBgcolor="#D3E6FE" styleClass="mainSubTitle">
<r:propertySheetGrid id="task-props" value="#{DialogManager.bean.taskNode}"
var="taskProps" columns="1" externalConfig="true" mode="view" />
</a:panel>
<h:outputText styleClass="paddingRow" value="&nbsp;" escape="false" />
<a:panel id="resources-panel" label="#{msg.resources}"
border="white" bgcolor="white" titleBorder="blue" titleBgcolor="#D3E6FE" styleClass="mainSubTitle">
<a:richList id="resources-list" viewMode="details" value="#{DialogManager.bean.resources}" var="r"
binding="#{DialogManager.bean.packageItemsRichList}"
styleClass="recordSet" headerStyleClass="recordSetHeader" rowStyleClass="recordSetRow"
altRowStyleClass="recordSetRowAlt" width="100%" pageSize="10"
initialSortColumn="name" initialSortDescending="true">
<%-- Name column --%>
<a:column primary="true" width="200" style="padding:2px; text-align:left">
<f:facet name="header">
<a:sortLink label="#{msg.name}" value="name" mode="case-insensitive" styleClass="header"/>
</f:facet>
<f:facet name="small-icon">
<a:actionLink value="#{r.name}" href="#{r.url}" target="new" image="#{r.fileType16}"
showLink="false" styleClass="inlineAction" />
</f:facet>
<a:actionLink value="#{r.name}" href="#{r.url}" target="new" />
<r:lockIcon value="#{r.nodeRef}" align="absmiddle" />
</a:column>
<%-- Description column --%>
<a:column style="text-align:left">
<f:facet name="header">
<a:sortLink label="#{msg.description}" value="description" styleClass="header"/>
</f:facet>
<h:outputText value="#{r.description}" />
</a:column>
<%-- Path column --%>
<a:column style="text-align:left">
<f:facet name="header">
<a:sortLink label="#{msg.path}" value="path" styleClass="header"/>
</f:facet>
<r:nodePath value="#{r.path}" />
</a:column>
<%-- Created Date column --%>
<a:column style="text-align:left">
<f:facet name="header">
<a:sortLink label="#{msg.created}" value="created" styleClass="header"/>
</f:facet>
<h:outputText value="#{r.created}">
<a:convertXMLDate type="both" pattern="#{msg.date_time_pattern}" />
</h:outputText>
</a:column>
<%-- Modified Date column --%>
<a:column style="text-align:left">
<f:facet name="header">
<a:sortLink label="#{msg.modified}" value="modified" styleClass="header"/>
</f:facet>
<h:outputText value="#{r.modified}">
<a:convertXMLDate type="both" pattern="#{msg.date_time_pattern}" />
</h:outputText>
</a:column>
</a:richList>
</a:panel>
<h:outputText styleClass="paddingRow" value="&nbsp;" escape="false" />
<a:panel id="workflow-summary-panel" label="#{msg.part_of_workflow}"
border="white" bgcolor="white" titleBorder="blue" titleBgcolor="#D3E6FE" styleClass="mainSubTitle">
<r:workflowSummary value="#{DialogManager.bean.workflowInstance}" styleClass="workflowSummary" />
</a:panel>