diff --git a/config/alfresco/messages/webclient.properties b/config/alfresco/messages/webclient.properties
index d6431f20e0..02d2130864 100644
--- a/config/alfresco/messages/webclient.properties
+++ b/config/alfresco/messages/webclient.properties
@@ -810,6 +810,9 @@ website_browse_folders=Browse Folders
website_browse_files=Browse Files
creator=Creator
modified_items=Modified Items
+store_created_on=Created On
+store_created_by=Created By
+store_working_users=There are {0} user(s) working on this website.
# Website actions and dialog messages
title_import_content=Import Content into Website
diff --git a/config/alfresco/web-client-application-context.xml b/config/alfresco/web-client-application-context.xml
index 4c625d66cf..1c03c8494c 100644
--- a/config/alfresco/web-client-application-context.xml
+++ b/config/alfresco/web-client-application-context.xml
@@ -14,6 +14,7 @@
classpath:alfresco/web-client-config-actions.xml
classpath:alfresco/web-client-config-workflow.xml
classpath:alfresco/web-client-config-forum-actions.xml
+ classpath:alfresco/web-client-config-wcm-actions.xml
classpath:alfresco/web-client-config-workflow-actions.xml
classpath:alfresco/extension/web-client-config-custom.xml
diff --git a/config/alfresco/web-client-config-wcm-actions.xml b/config/alfresco/web-client-config-wcm-actions.xml
new file mode 100644
index 0000000000..613a134400
--- /dev/null
+++ b/config/alfresco/web-client-config-wcm-actions.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+ edit
+ /images/icons/edit_icon.gif
+ #{AVMEditBean.setupEditAction}
+
+ #{actionContext.path}
+
+
+
+
+
+
+ false
+
+
+
+
+
+ false
+
+
+
+
+
+
+
diff --git a/source/java/org/alfresco/web/bean/CheckinCheckoutBean.java b/source/java/org/alfresco/web/bean/CheckinCheckoutBean.java
index 4f0c938ad5..422b9a8a23 100644
--- a/source/java/org/alfresco/web/bean/CheckinCheckoutBean.java
+++ b/source/java/org/alfresco/web/bean/CheckinCheckoutBean.java
@@ -579,11 +579,16 @@ public class CheckinCheckoutBean
// navigate to appropriate screen
FacesContext fc = FacesContext.getCurrentInstance();
this.navigator.setupDispatchContext(node);
- String s = (MimetypeMap.MIMETYPE_XML.equals(mimetype)
- ? "dialog:editXmlInline"
- : "dialog:editTextInline");
- fc.getApplication().getNavigationHandler().handleNavigation(fc, null, s);
-
+ String outcome;
+ if (MimetypeMap.MIMETYPE_XML.equals(mimetype))
+ {
+ outcome = "dialog:editXmlInline";
+ }
+ else
+ {
+ outcome = "dialog:editTextInline";
+ }
+ fc.getApplication().getNavigationHandler().handleNavigation(fc, null, outcome);
}
else
{
diff --git a/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java b/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java
index 8c3a0d2e2c..794c50e206 100644
--- a/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java
+++ b/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java
@@ -19,8 +19,10 @@ package org.alfresco.web.bean.wcm;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.ResourceBundle;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
@@ -30,6 +32,7 @@ import org.alfresco.model.ContentModel;
import org.alfresco.repo.avm.AVMNodeConverter;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.avm.AVMService;
+import org.alfresco.service.cmr.avm.AVMStoreDescriptor;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.search.SearchService;
@@ -62,6 +65,9 @@ public class AVMBrowseBean implements IContextListener
private static final String MSG_SANDBOXTITLE = "sandbox_title";
private static final String MSG_SANDBOXSTAGING = "sandbox_staging";
+ private static final String MSG_CREATED_ON = "store_created_on";
+ private static final String MSG_CREATED_BY = "store_created_by";
+ private static final String MSG_WORKING_USERS = "store_working_users";
private String sandbox;
private String username;
@@ -104,8 +110,6 @@ public class AVMBrowseBean implements IContextListener
public AVMBrowseBean()
{
UIContextService.getInstance(FacesContext.getCurrentInstance()).registerBean(this);
-
- //initFromClientConfig();
}
@@ -170,20 +174,46 @@ public class AVMBrowseBean implements IContextListener
this.navigator = navigator;
}
+ /**
+ * Summary text for the staging store:
+ * Created On: xx/yy/zz
+ * Created By: username
+ * There are N user(s) working on this website.
+ *
+ * @return summary text
+ */
+ public String getStagingSummary()
+ {
+ StringBuilder summary = new StringBuilder(128);
+
+ FacesContext fc = FacesContext.getCurrentInstance();
+ ResourceBundle msg = Application.getBundle(fc);
+ Node websiteNode = this.navigator.getCurrentNode();
+ String storeRoot = (String)websiteNode.getProperties().get(ContentModel.PROP_AVMSTORE);
+ String stagingStore = AVMConstants.buildAVMStagingStoreName(storeRoot);
+ AVMStoreDescriptor store = this.avmService.getAVMStore(stagingStore);
+ if (store != null)
+ {
+ // TODO: count user stores!
+ int users = 1;
+ summary.append(msg.getString(MSG_CREATED_ON)).append(": ")
+ .append(Utils.getDateFormat(fc).format(new Date(store.getCreateDate())))
+ .append("
");
+ summary.append(msg.getString(MSG_CREATED_BY)).append(": ")
+ .append(store.getCreator())
+ .append("
");
+ summary.append(MessageFormat.format(msg.getString(MSG_WORKING_USERS), users));
+ }
+
+ return summary.toString();
+ }
+
/**
* @param foldersRichList The foldersRichList to set.
*/
public void setFoldersRichList(UIRichList foldersRichList)
{
this.foldersRichList = foldersRichList;
- /*if (this.foldersRichList != null)
- {
- // set the initial sort column and direction
- this.foldersRichList.setInitialSortColumn(
- this.viewsConfig.getDefaultSortColumn(PAGE_NAME_FORUMS));
- this.foldersRichList.setInitialSortDescending(
- this.viewsConfig.hasDescendingSort(PAGE_NAME_FORUMS));
- }*/
}
/**
@@ -278,11 +308,17 @@ public class AVMBrowseBean implements IContextListener
return this.username == null ? WebResources.IMAGE_SANDBOX_32 : WebResources.IMAGE_USERSANDBOX_32;
}
+ /**
+ * @return website node the view is currently within
+ */
public Node getWebsite()
{
return this.navigator.getCurrentNode();
}
+ /**
+ * @return Map of avm node objects representing the folders with the current website space
+ */
public List