mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
. Fixed several minor bugs where the various small icons for Space objects were not displayed:
- Clipboard, Recent Spaces, Shortcuts and Space Selector now all show correct Forum or small Space icons as appropriate for the node - this is now possible since the forums icons patch standardised the way in which all small icons named . Externalised actions missing from forums.jsp, forum.jsp and topic.jsp . Added Create Shortcut action to Forums, Forum and Topic details pages (why not!) - The user can now create shortcuts to a Forums space, a Forum or a Topic . Prototype work for Paste-as-link (not visible yet) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2571 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -114,6 +114,7 @@ remove=Remove
|
|||||||
change_roles=Change Roles
|
change_roles=Change Roles
|
||||||
change_user_roles=Change User Roles
|
change_user_roles=Change User Roles
|
||||||
paste_item=Paste Item
|
paste_item=Paste Item
|
||||||
|
paste_link=Paste As Link
|
||||||
paste_all=Paste All
|
paste_all=Paste All
|
||||||
remove_item=Remove Item
|
remove_item=Remove Item
|
||||||
remove_all=Remove All
|
remove_all=Remove All
|
||||||
|
@@ -251,7 +251,7 @@
|
|||||||
</params>
|
</params>
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
<!-- Cut a document or space to the clipboard -->
|
<!-- Cut a document or space to the clipboard, from browse or doc details screens -->
|
||||||
<action id="cut_node">
|
<action id="cut_node">
|
||||||
<permissions>
|
<permissions>
|
||||||
<permission allow="true">Delete</permission>
|
<permission allow="true">Delete</permission>
|
||||||
@@ -261,16 +261,43 @@
|
|||||||
<action-listener>#{ClipboardBean.cutNode}</action-listener>
|
<action-listener>#{ClipboardBean.cutNode}</action-listener>
|
||||||
<params>
|
<params>
|
||||||
<param name="id">#{actionContext.id}</param>
|
<param name="id">#{actionContext.id}</param>
|
||||||
|
<param name="parent">#{NavigationBean.currentNodeId}</param>
|
||||||
</params>
|
</params>
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
<!-- Copy a document or space to the clipboard -->
|
<!-- Copy a document or space to the clipboard, from browse or doc details screens -->
|
||||||
<action id="copy_node">
|
<action id="copy_node">
|
||||||
<label-id>copy</label-id>
|
<label-id>copy</label-id>
|
||||||
<image>/images/icons/copy.gif</image>
|
<image>/images/icons/copy.gif</image>
|
||||||
<action-listener>#{ClipboardBean.copyNode}</action-listener>
|
<action-listener>#{ClipboardBean.copyNode}</action-listener>
|
||||||
<params>
|
<params>
|
||||||
<param name="id">#{actionContext.id}</param>
|
<param name="id">#{actionContext.id}</param>
|
||||||
|
<param name="parent">#{NavigationBean.currentNodeId}</param>
|
||||||
|
</params>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<!-- Cut a document or space to the clipboard, from space details screen -->
|
||||||
|
<action id="cut_space_details">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">Delete</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>cut</label-id>
|
||||||
|
<image>/images/icons/cut.gif</image>
|
||||||
|
<action-listener>#{ClipboardBean.cutNode}</action-listener>
|
||||||
|
<params>
|
||||||
|
<param name="id">#{actionContext.id}</param>
|
||||||
|
<param name="parent">#{SpaceDetailsBean.space}</param>
|
||||||
|
</params>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<!-- Copy a document or space to the clipboard, from space details screen -->
|
||||||
|
<action id="copy_space_details">
|
||||||
|
<label-id>copy</label-id>
|
||||||
|
<image>/images/icons/copy.gif</image>
|
||||||
|
<action-listener>#{ClipboardBean.copyNode}</action-listener>
|
||||||
|
<params>
|
||||||
|
<param name="id">#{actionContext.id}</param>
|
||||||
|
<param name="parent">#{SpaceDetailsBean.space}</param>
|
||||||
</params>
|
</params>
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
@@ -424,7 +451,7 @@
|
|||||||
</action>
|
</action>
|
||||||
|
|
||||||
|
|
||||||
<!-- the 'actions' elements define unique blocks of actions that reference the actions
|
<!-- the 'action-group' elements define unique blocks of actions that reference the actions
|
||||||
as defined above and can override or supply display elements for the group of actions -->
|
as defined above and can override or supply display elements for the group of actions -->
|
||||||
<!-- the component is responsible for making the context Node object available with name
|
<!-- the component is responsible for making the context Node object available with name
|
||||||
of 'actionContext' so the actions can access it directly to get properties -->
|
of 'actionContext' so the actions can access it directly to get properties -->
|
||||||
|
@@ -42,8 +42,136 @@
|
|||||||
</params>
|
</params>
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
|
<!-- Create a Forums space -->
|
||||||
|
<action id="create_forums">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">CreateChildren</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>create_forums</label-id>
|
||||||
|
<image>/images/icons/create_forums.gif</image>
|
||||||
|
<action>dialog:createForums</action>
|
||||||
|
<action-listener>#{CreateForumsDialog.startWizard}</action-listener>
|
||||||
|
</action>
|
||||||
|
|
||||||
<!-- the 'actions' elements define unique blocks of actions that reference the actions
|
<!-- Create a Forum -->
|
||||||
|
<action id="create_forum">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">CreateChildren</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>create_forum</label-id>
|
||||||
|
<image>/images/icons/create_forum.gif</image>
|
||||||
|
<action>dialog:createForum</action>
|
||||||
|
<action-listener>#{CreateForumDialog.startWizard}</action-listener>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<!-- Delete a Forums space -->
|
||||||
|
<action id="delete_forums">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">Delete</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>delete_forums</label-id>
|
||||||
|
<image>/images/icons/delete_forums.gif</image>
|
||||||
|
<action>dialog:deleteForums</action>
|
||||||
|
<action-listener>#{BrowseBean.setupContentAction}</action-listener>
|
||||||
|
<params>
|
||||||
|
<param name="id">#{actionContext.id}</param>
|
||||||
|
</params>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<!-- Delete a Forum space -->
|
||||||
|
<action id="delete_forum">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">Delete</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>delete_forum</label-id>
|
||||||
|
<image>/images/icons/delete_forum.gif</image>
|
||||||
|
<action>dialog:deleteForum</action>
|
||||||
|
<action-listener>#{BrowseBean.setupContentAction}</action-listener>
|
||||||
|
<params>
|
||||||
|
<param name="id">#{actionContext.id}</param>
|
||||||
|
</params>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<!-- Create a Topic -->
|
||||||
|
<action id="create_topic">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">CreateChildren</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>create_topic</label-id>
|
||||||
|
<image>/images/icons/create_topic.gif</image>
|
||||||
|
<action>dialog:createTopic</action>
|
||||||
|
<action-listener>#{CreateTopicDialog.startWizard}</action-listener>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<!-- Delete a Topic -->
|
||||||
|
<action id="delete_topic">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">Delete</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>delete_topic</label-id>
|
||||||
|
<image>/images/icons/delete_topic.gif</image>
|
||||||
|
<action>dialog:deleteTopic</action>
|
||||||
|
<action-listener>#{BrowseBean.setupContentAction}</action-listener>
|
||||||
|
<params>
|
||||||
|
<param name="id">#{actionContext.id}</param>
|
||||||
|
</params>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<!-- Create a Topic -->
|
||||||
|
<action id="create_post">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">CreateChildren</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>post_to_topic</label-id>
|
||||||
|
<image>/images/icons/create_post.gif</image>
|
||||||
|
<action>dialog:createPost</action>
|
||||||
|
<action-listener>#{CreatePostDialog.startWizard}</action-listener>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<!-- Post a reply to a Topic -->
|
||||||
|
<action id="post_reply">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">CreateChildren</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>post_reply</label-id>
|
||||||
|
<image>/images/icons/post_reply.gif</image>
|
||||||
|
<action>dialog:createReply</action>
|
||||||
|
<action-listener>#{CreateReplyDialog.startWizard}</action-listener>
|
||||||
|
<params>
|
||||||
|
<param name="id">#{actionContext.id}</param>
|
||||||
|
</params>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<!-- Edit an existing Post -->
|
||||||
|
<action id="edit_post">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">Write</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>edit_post</label-id>
|
||||||
|
<image>/images/icons/edit_post.gif</image>
|
||||||
|
<action>dialog:editPost</action>
|
||||||
|
<action-listener>#{EditPostDialog.startWizardForEdit}</action-listener>
|
||||||
|
<params>
|
||||||
|
<param name="id">#{actionContext.id}</param>
|
||||||
|
</params>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<!-- Delete a Post -->
|
||||||
|
<action id="delete_post">
|
||||||
|
<permissions>
|
||||||
|
<permission allow="true">Delete</permission>
|
||||||
|
</permissions>
|
||||||
|
<label-id>delete_post</label-id>
|
||||||
|
<image>/images/icons/delete.gif</image>
|
||||||
|
<action>dialog:deletePost</action>
|
||||||
|
<action-listener>#{BrowseBean.setupContentAction}</action-listener>
|
||||||
|
<params>
|
||||||
|
<param name="id">#{actionContext.id}</param>
|
||||||
|
</params>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- the 'action-group' elements define unique blocks of actions that reference the actions
|
||||||
as defined above and can override or supply display elements for the group of actions -->
|
as defined above and can override or supply display elements for the group of actions -->
|
||||||
<!-- the component is responsible for making the context Node object available with name
|
<!-- the component is responsible for making the context Node object available with name
|
||||||
of 'actionContext' so the actions can access it directly to get properties -->
|
of 'actionContext' so the actions can access it directly to get properties -->
|
||||||
@@ -141,6 +269,7 @@
|
|||||||
<action idref="cut_node" />
|
<action idref="cut_node" />
|
||||||
<action idref="copy_node" />
|
<action idref="copy_node" />
|
||||||
<action idref="delete_space" />
|
<action idref="delete_space" />
|
||||||
|
<action idref="create_shortcut" />
|
||||||
</action-group>
|
</action-group>
|
||||||
|
|
||||||
<!-- Actions Menu for Forum Details page -->
|
<!-- Actions Menu for Forum Details page -->
|
||||||
@@ -148,6 +277,7 @@
|
|||||||
<action idref="cut_node" />
|
<action idref="cut_node" />
|
||||||
<action idref="copy_node" />
|
<action idref="copy_node" />
|
||||||
<action idref="delete_space" />
|
<action idref="delete_space" />
|
||||||
|
<action idref="create_shortcut" />
|
||||||
</action-group>
|
</action-group>
|
||||||
|
|
||||||
<!-- Actions Menu for Topic Details page -->
|
<!-- Actions Menu for Topic Details page -->
|
||||||
@@ -155,6 +285,87 @@
|
|||||||
<action idref="cut_node" />
|
<action idref="cut_node" />
|
||||||
<action idref="copy_node" />
|
<action idref="copy_node" />
|
||||||
<action idref="delete_space" />
|
<action idref="delete_space" />
|
||||||
|
<action idref="create_shortcut" />
|
||||||
|
</action-group>
|
||||||
|
|
||||||
|
<!-- Create Actions Menu for Forums view -->
|
||||||
|
<action-group id="forums_create_menu">
|
||||||
|
<action idref="create_forums" />
|
||||||
|
<action idref="create_forum" />
|
||||||
|
</action-group>
|
||||||
|
|
||||||
|
<!-- More Actions Menu for Forums view -->
|
||||||
|
<action-group id="forums_actions_menu">
|
||||||
|
<action idref="details_space" />
|
||||||
|
<action idref="delete_forums" />
|
||||||
|
<action idref="cut_node" />
|
||||||
|
<action idref="copy_node" />
|
||||||
|
<action idref="paste_all" />
|
||||||
|
<action idref="manage_space_users" />
|
||||||
|
<action idref="import_space" />
|
||||||
|
<action idref="export_space" />
|
||||||
|
</action-group>
|
||||||
|
|
||||||
|
<!-- Actions for a Forums Space or Forum in Forums view -->
|
||||||
|
<action-group id="forums_actions">
|
||||||
|
<show-link>false</show-link>
|
||||||
|
<style-class>inlineAction</style-class>
|
||||||
|
|
||||||
|
<action idref="cut_node" />
|
||||||
|
<action idref="copy_node" />
|
||||||
|
<action idref="delete_space" />
|
||||||
|
<action idref="details_space" />
|
||||||
|
</action-group>
|
||||||
|
|
||||||
|
<!-- Create Actions Menu for Forum view -->
|
||||||
|
<action-group id="forum_create_menu">
|
||||||
|
<action idref="create_topic" />
|
||||||
|
</action-group>
|
||||||
|
|
||||||
|
<!-- More Actions Menu for Forum view -->
|
||||||
|
<action-group id="forum_actions_menu">
|
||||||
|
<action idref="details_space" />
|
||||||
|
<action idref="delete_forum" />
|
||||||
|
<action idref="cut_node" />
|
||||||
|
<action idref="copy_node" />
|
||||||
|
<action idref="paste_all" />
|
||||||
|
<action idref="manage_space_users" />
|
||||||
|
</action-group>
|
||||||
|
|
||||||
|
<!-- Actions for topics in Forum view -->
|
||||||
|
<action-group id="forum_actions">
|
||||||
|
<show-link>false</show-link>
|
||||||
|
<style-class>inlineAction</style-class>
|
||||||
|
|
||||||
|
<action idref="cut_node" />
|
||||||
|
<action idref="copy_node" />
|
||||||
|
<action idref="delete_topic" />
|
||||||
|
<action idref="details_space" />
|
||||||
|
</action-group>
|
||||||
|
|
||||||
|
<!-- Create Actions Menu for Topic view -->
|
||||||
|
<action-group id="topic_create_menu">
|
||||||
|
<action idref="create_post" />
|
||||||
|
</action-group>
|
||||||
|
|
||||||
|
<!-- More Actions Menu for Topic view -->
|
||||||
|
<action-group id="topic_actions_menu">
|
||||||
|
<action idref="details_space" />
|
||||||
|
<action idref="delete_topic" />
|
||||||
|
<action idref="cut_node" />
|
||||||
|
<action idref="copy_node" />
|
||||||
|
<action idref="paste_all" />
|
||||||
|
<action idref="manage_space_users" />
|
||||||
|
</action-group>
|
||||||
|
|
||||||
|
<!-- Actions for topics in Topic view -->
|
||||||
|
<action-group id="topic_actions">
|
||||||
|
<show-link>false</show-link>
|
||||||
|
<style-class>inlineAction</style-class>
|
||||||
|
|
||||||
|
<action idref="post_reply" />
|
||||||
|
<action idref="edit_post" />
|
||||||
|
<action idref="delete_post" />
|
||||||
</action-group>
|
</action-group>
|
||||||
|
|
||||||
</actions>
|
</actions>
|
||||||
|
@@ -26,9 +26,10 @@ import javax.faces.event.ActionEvent;
|
|||||||
import javax.transaction.UserTransaction;
|
import javax.transaction.UserTransaction;
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
import org.alfresco.service.cmr.model.FileExistsException;
|
||||||
|
import org.alfresco.service.cmr.model.FileFolderService;
|
||||||
|
import org.alfresco.service.cmr.model.FileNotFoundException;
|
||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.CopyService;
|
|
||||||
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
|
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
@@ -51,14 +52,6 @@ public class ClipboardBean
|
|||||||
// ------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------
|
||||||
// Bean property getters and setters
|
// Bean property getters and setters
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Returns the NodeService.
|
|
||||||
*/
|
|
||||||
public NodeService getNodeService()
|
|
||||||
{
|
|
||||||
return this.nodeService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param nodeService The NodeService to set.
|
* @param nodeService The NodeService to set.
|
||||||
*/
|
*/
|
||||||
@@ -66,29 +59,12 @@ public class ClipboardBean
|
|||||||
{
|
{
|
||||||
this.nodeService = nodeService;
|
this.nodeService = nodeService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Returns the NodeOperationsService.
|
* @param fileFolderService The FileFolderService to set.
|
||||||
*/
|
*/
|
||||||
public CopyService getNodeOperationsService()
|
public void setFileFolderService(FileFolderService fileFolderService)
|
||||||
{
|
{
|
||||||
return this.nodeOperationsService;
|
this.fileFolderService = fileFolderService;
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param nodeOperationsService The NodeOperationsService to set.
|
|
||||||
*/
|
|
||||||
public void setNodeOperationsService(CopyService nodeOperationsService)
|
|
||||||
{
|
|
||||||
this.nodeOperationsService = nodeOperationsService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Returns the navigation bean instance.
|
|
||||||
*/
|
|
||||||
public NavigationBean getNavigator()
|
|
||||||
{
|
|
||||||
return this.navigator;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -152,7 +128,7 @@ public class ClipboardBean
|
|||||||
*/
|
*/
|
||||||
public void pasteAll(ActionEvent event)
|
public void pasteAll(ActionEvent event)
|
||||||
{
|
{
|
||||||
performPasteItems(-1);
|
performPasteItems(-1, UIClipboardShelfItem.ACTION_PASTE_ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -168,15 +144,16 @@ public class ClipboardBean
|
|||||||
throw new IllegalStateException("Clipboard attempting paste a non existent item index: " + index);
|
throw new IllegalStateException("Clipboard attempting paste a non existent item index: " + index);
|
||||||
}
|
}
|
||||||
|
|
||||||
performPasteItems(index);
|
performPasteItems(index, clipEvent.Action);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform a paste for the specified clipboard item(s)
|
* Perform a paste for the specified clipboard item(s)
|
||||||
*
|
*
|
||||||
* @param index of clipboard item to paste or -1 for all
|
* @param index of clipboard item to paste or -1 for all
|
||||||
|
* @param action the clipboard action to perform (see UIClipboardShelfItem)
|
||||||
*/
|
*/
|
||||||
private void performPasteItems(int index)
|
private void performPasteItems(int index, int action)
|
||||||
{
|
{
|
||||||
UserTransaction tx = null;
|
UserTransaction tx = null;
|
||||||
try
|
try
|
||||||
@@ -189,7 +166,7 @@ public class ClipboardBean
|
|||||||
// paste all
|
// paste all
|
||||||
for (int i=0; i<this.items.size(); i++)
|
for (int i=0; i<this.items.size(); i++)
|
||||||
{
|
{
|
||||||
performClipboardOperation(this.items.get(i));
|
performClipboardOperation(this.items.get(i), action);
|
||||||
}
|
}
|
||||||
// remove the cut operation item from the clipboard
|
// remove the cut operation item from the clipboard
|
||||||
List<ClipboardItem> newItems = new ArrayList<ClipboardItem>(this.items.size());
|
List<ClipboardItem> newItems = new ArrayList<ClipboardItem>(this.items.size());
|
||||||
@@ -208,7 +185,7 @@ public class ClipboardBean
|
|||||||
{
|
{
|
||||||
// single paste operation
|
// single paste operation
|
||||||
ClipboardItem item = this.items.get(index);
|
ClipboardItem item = this.items.get(index);
|
||||||
performClipboardOperation(item);
|
performClipboardOperation(item, action);
|
||||||
if (item.Mode == ClipboardStatus.CUT)
|
if (item.Mode == ClipboardStatus.CUT)
|
||||||
{
|
{
|
||||||
this.items.remove(index);
|
this.items.remove(index);
|
||||||
@@ -233,45 +210,56 @@ public class ClipboardBean
|
|||||||
/**
|
/**
|
||||||
* Perform the operation for the specified clipboard item
|
* Perform the operation for the specified clipboard item
|
||||||
*
|
*
|
||||||
* @param item
|
* @param item the ClipboardItem
|
||||||
|
* @param action the clipboard action to perform (see UIClipboardShelfItem)
|
||||||
*/
|
*/
|
||||||
private void performClipboardOperation(ClipboardItem item)
|
private void performClipboardOperation(ClipboardItem item, int action)
|
||||||
|
throws FileExistsException, FileNotFoundException
|
||||||
{
|
{
|
||||||
NodeRef parentRef = new NodeRef(Repository.getStoreRef(),
|
NodeRef destRef = new NodeRef(Repository.getStoreRef(), this.navigator.getCurrentNodeId());
|
||||||
this.navigator.getCurrentNodeId());
|
|
||||||
|
|
||||||
// TODO: should we use primary parent here?
|
// TODO: Should we use primary parent here?
|
||||||
// The problem is we can't pass round ChildAssocRefs as form params etc. in the UI!
|
// We are assuming that the item exists in only a single parent and that the source for
|
||||||
// It's tricky if we need to pass childassocref around everywhere...!
|
// the clipboard operation (e.g. the source folder) is specifically that parent node.
|
||||||
|
// This does not allow for more than one possible parent node - or for linked objects!
|
||||||
ChildAssociationRef assocRef = this.nodeService.getPrimaryParent(item.Node.getNodeRef());
|
ChildAssociationRef assocRef = this.nodeService.getPrimaryParent(item.Node.getNodeRef());
|
||||||
|
|
||||||
if (item.Mode == ClipboardStatus.COPY)
|
if (item.Mode == ClipboardStatus.COPY)
|
||||||
|
{
|
||||||
|
if (action == UIClipboardShelfItem.ACTION_PASTE_LINK)
|
||||||
{
|
{
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
logger.debug("Trying to copy node ID: " + item.Node.getId() + " into node ID: " + parentRef.getId());
|
logger.debug("Attempting to link node ID: " + item.Node.getId() + " into node ID: " + destRef.getId());
|
||||||
|
|
||||||
// call the node ops service to initiate the copy
|
// copy as link was specifically requested by the user
|
||||||
// TODO: should the assoc qname be derived from the type...?
|
this.nodeService.addChild(
|
||||||
DictionaryService dd = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getDictionaryService();
|
destRef,
|
||||||
boolean copyChildren = dd.isSubClass(item.Node.getType(), ContentModel.TYPE_FOLDER);
|
|
||||||
NodeRef copyRef = this.nodeOperationsService.copy(
|
|
||||||
item.Node.getNodeRef(),
|
item.Node.getNodeRef(),
|
||||||
parentRef,
|
|
||||||
ContentModel.ASSOC_CONTAINS,
|
ContentModel.ASSOC_CONTAINS,
|
||||||
assocRef.getQName(),
|
assocRef.getQName());
|
||||||
copyChildren);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
logger.debug("Trying to move node ID: " + item.Node.getId() + " into node ID: " + parentRef.getId());
|
logger.debug("Attempting to copy node ID: " + item.Node.getId() + " into node ID: " + destRef.getId());
|
||||||
|
|
||||||
|
// call the node ops service to initiate the copy
|
||||||
|
this.fileFolderService.copy(
|
||||||
|
item.Node.getNodeRef(),
|
||||||
|
destRef,
|
||||||
|
null); // TODO: could add "Copy of ..." here if copy fails
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (logger.isDebugEnabled())
|
||||||
|
logger.debug("Attempting to move node ID: " + item.Node.getId() + " into node ID: " + destRef.getId());
|
||||||
|
|
||||||
// move the node
|
// move the node
|
||||||
this.nodeService.moveNode(
|
this.fileFolderService.move(
|
||||||
item.Node.getNodeRef(),
|
item.Node.getNodeRef(),
|
||||||
parentRef,
|
destRef,
|
||||||
ContentModel.ASSOC_CONTAINS,
|
null); // TODO: could add "Copy of ..." here if move fails
|
||||||
assocRef.getQName());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -325,8 +313,8 @@ public class ClipboardBean
|
|||||||
/** The NodeService to be used by the bean */
|
/** The NodeService to be used by the bean */
|
||||||
protected NodeService nodeService;
|
protected NodeService nodeService;
|
||||||
|
|
||||||
/** The NodeOperationsService to be used by the bean */
|
/** The FileFolderService to be used by the bean */
|
||||||
protected CopyService nodeOperationsService;
|
protected FileFolderService fileFolderService;
|
||||||
|
|
||||||
/** The NavigationBean reference */
|
/** The NavigationBean reference */
|
||||||
protected NavigationBean navigator;
|
protected NavigationBean navigator;
|
||||||
|
@@ -128,9 +128,11 @@ public abstract class AbstractItemSelector extends UIInput
|
|||||||
public abstract Collection<NodeRef> getRootChildren(FacesContext context);
|
public abstract Collection<NodeRef> getRootChildren(FacesContext context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @param ref NodeRef to the item to get the icon for
|
||||||
|
*
|
||||||
* @return The icon image to display next to the item links, or null for no icon
|
* @return The icon image to display next to the item links, or null for no icon
|
||||||
*/
|
*/
|
||||||
public abstract String getItemIcon();
|
public abstract String getItemIcon(FacesContext context, NodeRef ref);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see javax.faces.component.StateHolder#restoreState(javax.faces.context.FacesContext, java.lang.Object)
|
* @see javax.faces.component.StateHolder#restoreState(javax.faces.context.FacesContext, java.lang.Object)
|
||||||
@@ -278,12 +280,6 @@ public abstract class AbstractItemSelector extends UIInput
|
|||||||
boolean showValueInHiddenField = false;
|
boolean showValueInHiddenField = false;
|
||||||
NodeRef value = null;
|
NodeRef value = null;
|
||||||
|
|
||||||
String image = null;
|
|
||||||
if (getItemIcon() != null)
|
|
||||||
{
|
|
||||||
image = "<span style='padding-right:4px'>" + Utils.buildImageTag(context, getItemIcon(), null, "absmiddle") + "</span>";
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (this.mode)
|
switch (this.mode)
|
||||||
{
|
{
|
||||||
case MODE_BEFORE_SELECTION:
|
case MODE_BEFORE_SELECTION:
|
||||||
@@ -486,7 +482,15 @@ public abstract class AbstractItemSelector extends UIInput
|
|||||||
// get the name for the child and output as link
|
// get the name for the child and output as link
|
||||||
NodeRef childNodeRef = new NodeRef(Repository.getStoreRef(), childId);
|
NodeRef childNodeRef = new NodeRef(Repository.getStoreRef(), childId);
|
||||||
String name = Repository.getNameForNode(service, childNodeRef);
|
String name = Repository.getNameForNode(service, childNodeRef);
|
||||||
renderNodeLink(context, childId, name, image, buf);
|
String prefixHtml = null;
|
||||||
|
String icon = getItemIcon(context, childNodeRef);
|
||||||
|
if (icon != null)
|
||||||
|
{
|
||||||
|
prefixHtml = "<span style='padding-right:4px'>" +
|
||||||
|
Utils.buildImageTag(context, icon, null, "absmiddle") +
|
||||||
|
"</span>";
|
||||||
|
}
|
||||||
|
renderNodeLink(context, childId, name, prefixHtml, buf);
|
||||||
buf.append("</td></tr>");
|
buf.append("</td></tr>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -144,7 +144,7 @@ public class UICategorySelector extends AbstractItemSelector
|
|||||||
/**
|
/**
|
||||||
* @see org.alfresco.web.ui.repo.component.AbstractItemSelector#getItemIcon()
|
* @see org.alfresco.web.ui.repo.component.AbstractItemSelector#getItemIcon()
|
||||||
*/
|
*/
|
||||||
public String getItemIcon()
|
public String getItemIcon(FacesContext context, NodeRef ref)
|
||||||
{
|
{
|
||||||
return WebResources.IMAGE_CATEGORY;
|
return WebResources.IMAGE_CATEGORY;
|
||||||
}
|
}
|
||||||
|
@@ -141,8 +141,17 @@ public class UISpaceSelector extends AbstractItemSelector
|
|||||||
/**
|
/**
|
||||||
* @see org.alfresco.web.ui.repo.component.AbstractItemSelector#getItemIcon()
|
* @see org.alfresco.web.ui.repo.component.AbstractItemSelector#getItemIcon()
|
||||||
*/
|
*/
|
||||||
public String getItemIcon()
|
public String getItemIcon(FacesContext context, NodeRef ref)
|
||||||
{
|
{
|
||||||
return WebResources.IMAGE_SPACE;
|
String icon = (String)getNodeService(context).getProperty(ref, ContentModel.PROP_ICON);
|
||||||
|
if (icon != null)
|
||||||
|
{
|
||||||
|
icon = "/images/icons/" + icon + "-16.gif";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
icon = WebResources.IMAGE_SPACE;
|
||||||
|
}
|
||||||
|
return icon;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -122,6 +122,7 @@ public class UIClipboardShelfItem extends UIShelfItem
|
|||||||
|
|
||||||
case ACTION_PASTE_ALL:
|
case ACTION_PASTE_ALL:
|
||||||
case ACTION_PASTE_ITEM:
|
case ACTION_PASTE_ITEM:
|
||||||
|
case ACTION_PASTE_LINK:
|
||||||
Utils.processActionMethod(getFacesContext(), getPasteActionListener(), clipEvent);
|
Utils.processActionMethod(getFacesContext(), getPasteActionListener(), clipEvent);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -158,7 +159,7 @@ public class UIClipboardShelfItem extends UIShelfItem
|
|||||||
ClipboardItem item = items.get(i);
|
ClipboardItem item = items.get(i);
|
||||||
|
|
||||||
// start row with cut/copy state icon
|
// start row with cut/copy state icon
|
||||||
out.write("<tr><td>");
|
out.write("<tr><td width=16>");
|
||||||
if (item.Mode == ClipboardStatus.COPY)
|
if (item.Mode == ClipboardStatus.COPY)
|
||||||
{
|
{
|
||||||
out.write(Utils.buildImageTag(context, WebResources.IMAGE_COPY, 14, 16, bundle.getString(MSG_COPY), null, "absmiddle"));
|
out.write(Utils.buildImageTag(context, WebResources.IMAGE_COPY, 14, 16, bundle.getString(MSG_COPY), null, "absmiddle"));
|
||||||
@@ -167,17 +168,26 @@ public class UIClipboardShelfItem extends UIShelfItem
|
|||||||
{
|
{
|
||||||
out.write(Utils.buildImageTag(context, WebResources.IMAGE_CUT, 13, 16, bundle.getString(MSG_CUT), null, "absmiddle"));
|
out.write(Utils.buildImageTag(context, WebResources.IMAGE_CUT, 13, 16, bundle.getString(MSG_CUT), null, "absmiddle"));
|
||||||
}
|
}
|
||||||
out.write("</td><td>");
|
out.write("</td><td width=16>");
|
||||||
|
|
||||||
if (dd.isSubClass(item.Node.getType(), ContentModel.TYPE_FOLDER))
|
if (dd.isSubClass(item.Node.getType(), ContentModel.TYPE_FOLDER))
|
||||||
{
|
{
|
||||||
// start row with Space icon
|
// start row with correct node icon
|
||||||
out.write(Utils.buildImageTag(context, WebResources.IMAGE_SPACE, 16, 16, null, null, "absmiddle"));
|
String icon = (String)item.Node.getProperties().get("app:icon");
|
||||||
|
if (icon != null)
|
||||||
|
{
|
||||||
|
icon = "/images/icons/" + icon + "-16.gif";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
icon = WebResources.IMAGE_SPACE;
|
||||||
|
}
|
||||||
|
out.write(Utils.buildImageTag(context, icon, 16, 16, null, null, "absmiddle"));
|
||||||
}
|
}
|
||||||
else if (dd.isSubClass(item.Node.getType(), ContentModel.TYPE_CONTENT))
|
else if (dd.isSubClass(item.Node.getType(), ContentModel.TYPE_CONTENT))
|
||||||
{
|
{
|
||||||
String image = Utils.getFileTypeImage(item.Node.getName(), true);
|
String image = Utils.getFileTypeImage(item.Node.getName(), true);
|
||||||
out.write(Utils.buildImageTag(context, image, 16, 16, null, null, "absmiddle"));
|
out.write(Utils.buildImageTag(context, image, null, "absmiddle"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// output cropped item label - we also output with no breaks, this is ok
|
// output cropped item label - we also output with no breaks, this is ok
|
||||||
@@ -190,6 +200,11 @@ public class UIClipboardShelfItem extends UIShelfItem
|
|||||||
out.write(buildActionLink(ACTION_REMOVE_ITEM, i, bundle.getString(MSG_REMOVE_ITEM), WebResources.IMAGE_REMOVE));
|
out.write(buildActionLink(ACTION_REMOVE_ITEM, i, bundle.getString(MSG_REMOVE_ITEM), WebResources.IMAGE_REMOVE));
|
||||||
out.write(" ");
|
out.write(" ");
|
||||||
out.write(buildActionLink(ACTION_PASTE_ITEM, i, bundle.getString(MSG_PASTE_ITEM), WebResources.IMAGE_PASTE));
|
out.write(buildActionLink(ACTION_PASTE_ITEM, i, bundle.getString(MSG_PASTE_ITEM), WebResources.IMAGE_PASTE));
|
||||||
|
//if (item.Mode == ClipboardStatus.COPY)
|
||||||
|
//{
|
||||||
|
// out.write(" ");
|
||||||
|
// out.write(buildActionLink(ACTION_PASTE_LINK, i, bundle.getString(MSG_PASTE_LINK), WebResources.IMAGE_PASTE_LINK));
|
||||||
|
//}
|
||||||
|
|
||||||
// end actions cell and end row
|
// end actions cell and end row
|
||||||
out.write("</nobr></td></tr>");
|
out.write("</nobr></td></tr>");
|
||||||
@@ -340,14 +355,16 @@ public class UIClipboardShelfItem extends UIShelfItem
|
|||||||
private static final String MSG_REMOVE_ALL = "remove_all";
|
private static final String MSG_REMOVE_ALL = "remove_all";
|
||||||
private static final String MSG_PASTE_ALL = "paste_all";
|
private static final String MSG_PASTE_ALL = "paste_all";
|
||||||
private static final String MSG_PASTE_ITEM = "paste_item";
|
private static final String MSG_PASTE_ITEM = "paste_item";
|
||||||
|
private static final String MSG_PASTE_LINK = "paste_link";
|
||||||
private static final String MSG_REMOVE_ITEM = "remove_item";
|
private static final String MSG_REMOVE_ITEM = "remove_item";
|
||||||
private static final String MSG_CUT = "cut";
|
private static final String MSG_CUT = "cut";
|
||||||
private static final String MSG_COPY = "copy";
|
private static final String MSG_COPY = "copy";
|
||||||
|
|
||||||
private final static int ACTION_REMOVE_ITEM = 0;
|
public final static int ACTION_REMOVE_ITEM = 0;
|
||||||
private final static int ACTION_REMOVE_ALL = 1;
|
public final static int ACTION_REMOVE_ALL = 1;
|
||||||
private final static int ACTION_PASTE_ITEM = 2;
|
public final static int ACTION_PASTE_ITEM = 2;
|
||||||
private final static int ACTION_PASTE_ALL = 3;
|
public final static int ACTION_PASTE_ALL = 3;
|
||||||
|
public final static int ACTION_PASTE_LINK = 4;
|
||||||
|
|
||||||
/** the current list of clipboard items */
|
/** the current list of clipboard items */
|
||||||
private List<ClipboardItem> collections;
|
private List<ClipboardItem> collections;
|
||||||
|
@@ -153,9 +153,18 @@ public class UIRecentSpacesShelfItem extends UIShelfItem
|
|||||||
{
|
{
|
||||||
Node item = items.get(i);
|
Node item = items.get(i);
|
||||||
|
|
||||||
// start row with Space icon
|
// start row with correct node icon
|
||||||
out.write("<tr><td>");
|
out.write("<tr><td width=16>");
|
||||||
out.write(Utils.buildImageTag(context, WebResources.IMAGE_SPACE, 16, 16, null, null, "absmiddle"));
|
String icon = (String)item.getProperties().get("app:icon");
|
||||||
|
if (icon != null)
|
||||||
|
{
|
||||||
|
icon = "/images/icons/" + icon + "-16.gif";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
icon = WebResources.IMAGE_SPACE;
|
||||||
|
}
|
||||||
|
out.write(Utils.buildImageTag(context, icon, 16, 16, null, null, "absmiddle"));
|
||||||
|
|
||||||
// output cropped item label - we also output with no breaks, this is ok
|
// output cropped item label - we also output with no breaks, this is ok
|
||||||
// as the copped label will ensure a sensible maximum width
|
// as the copped label will ensure a sensible maximum width
|
||||||
|
@@ -179,16 +179,25 @@ public class UIShortcutsShelfItem extends UIShelfItem
|
|||||||
{
|
{
|
||||||
Node item = items.get(i);
|
Node item = items.get(i);
|
||||||
|
|
||||||
out.write("<tr><td>");
|
out.write("<tr><td width=16>");
|
||||||
if (dd.isSubClass(item.getType(), ContentModel.TYPE_FOLDER))
|
if (dd.isSubClass(item.getType(), ContentModel.TYPE_FOLDER))
|
||||||
{
|
{
|
||||||
// start row with Space icon
|
// start row with correct node icon
|
||||||
out.write(Utils.buildImageTag(context, WebResources.IMAGE_SPACE, 16, 16, null, null, "absmiddle"));
|
String icon = (String)item.getProperties().get("app:icon");
|
||||||
|
if (icon != null)
|
||||||
|
{
|
||||||
|
icon = "/images/icons/" + icon + "-16.gif";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
icon = WebResources.IMAGE_SPACE;
|
||||||
|
}
|
||||||
|
out.write(Utils.buildImageTag(context, icon, 16, 16, null, null, "absmiddle"));
|
||||||
}
|
}
|
||||||
else if (dd.isSubClass(item.getType(), ContentModel.TYPE_CONTENT))
|
else if (dd.isSubClass(item.getType(), ContentModel.TYPE_CONTENT))
|
||||||
{
|
{
|
||||||
String image = Utils.getFileTypeImage(item.getName(), true);
|
String image = Utils.getFileTypeImage(item.getName(), true);
|
||||||
out.write(Utils.buildImageTag(context, image, 16, 16, null, null, "absmiddle"));
|
out.write(Utils.buildImageTag(context, image, null, "absmiddle"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// output cropped item label - we also output with no breaks, this is ok
|
// output cropped item label - we also output with no breaks, this is ok
|
||||||
|
@@ -111,8 +111,8 @@
|
|||||||
<value>#{NodeService}</value>
|
<value>#{NodeService}</value>
|
||||||
</managed-property>
|
</managed-property>
|
||||||
<managed-property>
|
<managed-property>
|
||||||
<property-name>nodeOperationsService</property-name>
|
<property-name>fileFolderService</property-name>
|
||||||
<value>#{CopyService}</value>
|
<value>#{FileFolderService}</value>
|
||||||
</managed-property>
|
</managed-property>
|
||||||
</managed-bean>
|
</managed-bean>
|
||||||
|
|
||||||
|
@@ -79,38 +79,14 @@
|
|||||||
<td align=right>
|
<td align=right>
|
||||||
<%-- Create actions menu --%>
|
<%-- Create actions menu --%>
|
||||||
<a:menu id="createMenu" itemSpacing="4" label="#{msg.create_options}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
<a:menu id="createMenu" itemSpacing="4" label="#{msg.create_options}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="CreateChildren" id="eval1">
|
<r:actions id="actions_create" value="forum_create_menu" context="#{NavigationBean.currentNode}" />
|
||||||
<a:actionLink value="#{msg.create_topic}" image="/images/icons/create_topic.gif" action="dialog:createTopic" actionListener="#{CreateTopicDialog.startWizard}" id="link1" />
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
</a:menu>
|
</a:menu>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td style="padding-left:4px" width=80>
|
<td style="padding-left:4px" width=80>
|
||||||
<%-- More actions menu --%>
|
<%-- More actions menu --%>
|
||||||
<a:menu id="actionsMenu" itemSpacing="4" label="#{msg.more_actions}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
<a:menu id="actionsMenu" itemSpacing="4" label="#{msg.more_actions}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
||||||
<a:actionLink value="#{msg.view_details}" image="/images/icons/View_details.gif" action="dialog:showForumDetails" actionListener="#{BrowseBean.setupSpaceAction}" id="link2">
|
<r:actions id="actions_more" value="forum_actions_menu" context="#{NavigationBean.currentNode}" />
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param1" />
|
|
||||||
</a:actionLink>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="Delete" id="eval2">
|
|
||||||
<a:actionLink value="#{msg.delete_forum}" image="/images/icons/delete_forum.gif" action="dialog:deleteForum" actionListener="#{BrowseBean.setupDeleteAction}" id="link3">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param2" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="Delete" id="eval3">
|
|
||||||
<a:actionLink value="#{msg.cut}" image="/images/icons/cut.gif" actionListener="#{ClipboardBean.cutNode}" id="link4">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param3" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<a:actionLink value="#{msg.copy}" image="/images/icons/copy.gif" actionListener="#{ClipboardBean.copyNode}" id="link5">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param4" />
|
|
||||||
</a:actionLink>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="Write" id="eval4">
|
|
||||||
<a:actionLink value="#{msg.paste_all}" image="/images/icons/paste.gif" actionListener="#{ClipboardBean.pasteAll}" id="link6" />
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="ChangePermissions" id="eval5">
|
|
||||||
<a:actionLink value="#{msg.manage_invited_users}" image="/images/icons/invite.gif" action="dialog:manageInvitedUsers" actionListener="#{BrowseBean.setupSpaceAction}" id="link7">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param5" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
</a:menu>
|
</a:menu>
|
||||||
</td>
|
</td>
|
||||||
</a:panel>
|
</a:panel>
|
||||||
@@ -183,22 +159,9 @@
|
|||||||
<f:facet name="header">
|
<f:facet name="header">
|
||||||
<h:outputText value="#{msg.actions}"/>
|
<h:outputText value="#{msg.actions}"/>
|
||||||
</f:facet>
|
</f:facet>
|
||||||
<r:permissionEvaluator value="#{r}" allow="Delete">
|
|
||||||
<a:actionLink value="#{msg.cut}" image="/images/icons/cut.gif" showLink="false" styleClass="inlineAction" actionListener="#{ClipboardBean.cutNode}">
|
<%-- actions are configured in web-client-config-forum-actions.xml --%>
|
||||||
<f:param name="id" value="#{r.id}" />
|
<r:actions id="actions" value="forum_actions" context="#{r}" showLink="false" styleClass="inlineAction" />
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<a:actionLink value="#{msg.copy}" image="/images/icons/copy.gif" showLink="false" styleClass="inlineAction" actionListener="#{ClipboardBean.copyNode}">
|
|
||||||
<f:param name="id" value="#{r.id}" />
|
|
||||||
</a:actionLink>
|
|
||||||
<r:permissionEvaluator value="#{r}" allow="Delete">
|
|
||||||
<a:actionLink value="#{msg.delete_topic}" image="/images/icons/delete.gif" showLink="false" styleClass="inlineAction" action="dialog:deleteTopic" actionListener="#{BrowseBean.setupDeleteAction}">
|
|
||||||
<f:param name="id" value="#{r.id}" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<a:actionLink value="#{msg.view_details}" image="/images/icons/View_details.gif" showLink="false" styleClass="inlineAction" action="dialog:showTopicDetails" actionListener="#{BrowseBean.setupSpaceAction}">
|
|
||||||
<f:param name="id" value="#{r.id}" />
|
|
||||||
</a:actionLink>
|
|
||||||
</a:column>
|
</a:column>
|
||||||
|
|
||||||
<a:dataPager styleClass="pager" />
|
<a:dataPager styleClass="pager" />
|
||||||
|
@@ -80,47 +80,14 @@
|
|||||||
<td style="padding-left:4px" width=52>
|
<td style="padding-left:4px" width=52>
|
||||||
<%-- Create actions menu --%>
|
<%-- Create actions menu --%>
|
||||||
<a:menu id="createMenu" itemSpacing="4" label="#{msg.create_options}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
<a:menu id="createMenu" itemSpacing="4" label="#{msg.create_options}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="CreateChildren" id="eval1">
|
<r:actions id="actions_create" value="forums_create_menu" context="#{NavigationBean.currentNode}" />
|
||||||
<a:actionLink value="#{msg.create_forums}" image="/images/icons/create_forums.gif" action="dialog:createForums" actionListener="#{CreateForumsDialog.startWizard}" id="link1" />
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="CreateChildren" id="eval2">
|
|
||||||
<a:actionLink value="#{msg.create_forum}" image="/images/icons/create_forum.gif" action="dialog:createForum" actionListener="#{CreateForumDialog.startWizard}" id="link2" />
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
</a:menu>
|
</a:menu>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td style="padding-left:4px" width=80>
|
<td style="padding-left:4px" width=80>
|
||||||
<%-- More actions menu --%>
|
<%-- More actions menu --%>
|
||||||
<a:menu id="actionsMenu" itemSpacing="4" label="#{msg.more_actions}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
<a:menu id="actionsMenu" itemSpacing="4" label="#{msg.more_actions}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
||||||
<a:actionLink value="#{msg.view_details}" image="/images/icons/View_details.gif" action="dialog:showForumsDetails" actionListener="#{BrowseBean.setupSpaceAction}" id="link3">
|
<r:actions id="actions_more" value="forums_actions_menu" context="#{NavigationBean.currentNode}" />
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param1" />
|
|
||||||
</a:actionLink>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="Delete" id="eval3">
|
|
||||||
<a:actionLink value="#{msg.delete_forums}" image="/images/icons/delete_forums.gif" action="dialog:deleteForums" actionListener="#{BrowseBean.setupDeleteAction}" id="link4">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param2" />
|
|
||||||
</a:actionLink>
|
|
||||||
<a:actionLink value="#{msg.cut}" image="/images/icons/cut.gif" actionListener="#{ClipboardBean.cutNode}" id="link5">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param3" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<a:actionLink value="#{msg.copy}" image="/images/icons/copy.gif" actionListener="#{ClipboardBean.copyNode}" id="link6">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param4" />
|
|
||||||
</a:actionLink>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="Write" id="eval4">
|
|
||||||
<a:actionLink value="#{msg.paste_all}" image="/images/icons/paste.gif" actionListener="#{ClipboardBean.pasteAll}" id="link7" />
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="ChangePermissions" id="eval5">
|
|
||||||
<a:actionLink value="#{msg.manage_invited_users}" image="/images/icons/invite.gif" action="dialog:manageInvitedUsers" actionListener="#{BrowseBean.setupSpaceAction}" id="link8">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param5" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="Write" id="eval6">
|
|
||||||
<a:actionLink value="#{msg.import}" image="/images/icons/import.gif" action="dialog:import" actionListener="#{BrowseBean.setupSpaceAction}" id="link9">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<a:actionLink value="#{msg.export}" image="/images/icons/export.gif" action="dialog:export" actionListener="#{BrowseBean.setupSpaceAction}" id="link10">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" />
|
|
||||||
</a:actionLink>
|
|
||||||
</a:menu>
|
</a:menu>
|
||||||
</td>
|
</td>
|
||||||
</a:panel>
|
</a:panel>
|
||||||
@@ -250,22 +217,9 @@
|
|||||||
<f:facet name="header">
|
<f:facet name="header">
|
||||||
<h:outputText value="#{msg.actions}"/>
|
<h:outputText value="#{msg.actions}"/>
|
||||||
</f:facet>
|
</f:facet>
|
||||||
<r:permissionEvaluator value="#{r}" allow="Delete">
|
|
||||||
<a:actionLink value="#{msg.cut}" image="/images/icons/cut.gif" showLink="false" styleClass="inlineAction" actionListener="#{ClipboardBean.cutNode}">
|
<%-- actions are configured in web-client-config-forum-actions.xml --%>
|
||||||
<f:param name="id" value="#{r.id}" />
|
<r:actions id="actions" value="forums_actions" context="#{r}" showLink="false" styleClass="inlineAction" />
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<a:actionLink value="#{msg.copy}" image="/images/icons/copy.gif" showLink="false" styleClass="inlineAction" actionListener="#{ClipboardBean.copyNode}">
|
|
||||||
<f:param name="id" value="#{r.id}" />
|
|
||||||
</a:actionLink>
|
|
||||||
<r:permissionEvaluator value="#{r}" allow="Delete">
|
|
||||||
<a:actionLink value="#{msg.delete}" image="/images/icons/delete.gif" showLink="false" styleClass="inlineAction" action="dialog:deleteSpace" actionListener="#{BrowseBean.setupDeleteAction}">
|
|
||||||
<f:param name="id" value="#{r.id}" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<a:actionLink value="#{msg.view_details}" image="/images/icons/View_details.gif" showLink="false" styleClass="inlineAction" action="dialog:showSpaceDetails" actionListener="#{BrowseBean.setupSpaceAction}">
|
|
||||||
<f:param name="id" value="#{r.id}" />
|
|
||||||
</a:actionLink>
|
|
||||||
</a:column>
|
</a:column>
|
||||||
|
|
||||||
<a:dataPager styleClass="pager" />
|
<a:dataPager styleClass="pager" />
|
||||||
|
@@ -79,38 +79,14 @@
|
|||||||
<td align=right>
|
<td align=right>
|
||||||
<%-- Create actions menu --%>
|
<%-- Create actions menu --%>
|
||||||
<a:menu id="createMenu" itemSpacing="4" label="#{msg.create_options}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
<a:menu id="createMenu" itemSpacing="4" label="#{msg.create_options}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="CreateChildren" id="eval1">
|
<r:actions id="actions_create" value="topic_create_menu" context="#{NavigationBean.currentNode}" />
|
||||||
<a:actionLink value="#{msg.post_to_topic}" image="/images/icons/create_post.gif" action="dialog:createPost" actionListener="#{CreatePostDialog.startWizard}" id="link1" />
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
</a:menu>
|
</a:menu>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td style="padding-left:4px" width=80>
|
<td style="padding-left:4px" width=80>
|
||||||
<%-- More actions menu --%>
|
<%-- More actions menu --%>
|
||||||
<a:menu id="actionsMenu" itemSpacing="4" label="#{msg.more_actions}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
<a:menu id="actionsMenu" itemSpacing="4" label="#{msg.more_actions}" image="/images/icons/menu.gif" menuStyleClass="moreActionsMenu" style="white-space:nowrap">
|
||||||
<a:actionLink value="#{msg.view_details}" image="/images/icons/View_details.gif" action="dialog:showTopicDetails" actionListener="#{BrowseBean.setupSpaceAction}" id="link2">
|
<r:actions id="actions_more" value="topic_actions_menu" context="#{NavigationBean.currentNode}" />
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param1" />
|
|
||||||
</a:actionLink>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="Delete" id="eval2">
|
|
||||||
<a:actionLink value="#{msg.delete_topic}" image="/images/icons/delete_topic.gif" action="dialog:deleteTopic" actionListener="#{BrowseBean.setupDeleteAction}" id="link3">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param2" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="Delete" id="eval3">
|
|
||||||
<a:actionLink value="#{msg.cut}" image="/images/icons/cut.gif" actionListener="#{ClipboardBean.cutNode}" id="link4">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param3" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<a:actionLink value="#{msg.copy}" image="/images/icons/copy.gif" actionListener="#{ClipboardBean.copyNode}" id="link5">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param4" />
|
|
||||||
</a:actionLink>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="Write" id="eval4">
|
|
||||||
<a:actionLink value="#{msg.paste_all}" image="/images/icons/paste.gif" actionListener="#{ClipboardBean.pasteAll}" id="link6" />
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="ChangePermissions" id="eval5">
|
|
||||||
<a:actionLink value="#{msg.manage_invited_users}" image="/images/icons/invite.gif" action="dialog:manageInvitedUsers" actionListener="#{BrowseBean.setupSpaceAction}" id="link7">
|
|
||||||
<f:param name="id" value="#{NavigationBean.currentNodeId}" id="param5" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
</a:menu>
|
</a:menu>
|
||||||
</td>
|
</td>
|
||||||
</a:panel>
|
</a:panel>
|
||||||
@@ -217,21 +193,9 @@
|
|||||||
<f:facet name="header">
|
<f:facet name="header">
|
||||||
<h:outputText value="#{msg.actions}"/>
|
<h:outputText value="#{msg.actions}"/>
|
||||||
</f:facet>
|
</f:facet>
|
||||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="CreateChildren">
|
|
||||||
<a:actionLink value="#{msg.post_reply}" image="/images/icons/post_reply.gif" showLink="false" styleClass="inlineAction" action="dialog:createReply" actionListener="#{CreateReplyDialog.startWizard}">
|
<%-- actions are configured in web-client-config-forum-actions.xml --%>
|
||||||
<f:param name="id" value="#{r.id}" />
|
<r:actions id="actions" value="topic_actions" context="#{r}" showLink="false" styleClass="inlineAction" />
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<r:permissionEvaluator value="#{r}" allow="Write">
|
|
||||||
<a:actionLink value="#{msg.edit_post}" image="/images/icons/edit_post.gif" showLink="false" styleClass="inlineAction" action="dialog:editPost" actionListener="#{EditPostDialog.startWizardForEdit}">
|
|
||||||
<f:param name="id" value="#{r.id}" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
<r:permissionEvaluator value="#{r}" allow="Delete">
|
|
||||||
<a:actionLink value="#{msg.delete_post}" image="/images/icons/delete.gif" showLink="false" styleClass="inlineAction" action="dialog:deletePost" actionListener="#{BrowseBean.setupContentAction}">
|
|
||||||
<f:param name="id" value="#{r.id}" />
|
|
||||||
</a:actionLink>
|
|
||||||
</r:permissionEvaluator>
|
|
||||||
</a:column>
|
</a:column>
|
||||||
|
|
||||||
<a:dataPager styleClass="pager" />
|
<a:dataPager styleClass="pager" />
|
||||||
|
Reference in New Issue
Block a user