mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
. WCM UI
- Preview Staging area action added - Preview User Sandbox action added - Generates the virtualisation server URLs to an AVM sandboxes for the - possible to preview the entire website with transparent overlays for each user. - Fix to generation of mangled DNS name for a user store to remove the "main" part (implicit) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3918 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -226,6 +226,13 @@ public class AVMBrowseBean implements IContextListener
|
||||
this.actionService = actionService;
|
||||
}
|
||||
|
||||
public String getStagingStore()
|
||||
{
|
||||
Node websiteNode = this.navigator.getCurrentNode();
|
||||
String storeRoot = (String)websiteNode.getProperties().get(ContentModel.PROP_AVMSTORE);
|
||||
return AVMConstants.buildAVMStagingStoreName(storeRoot);
|
||||
}
|
||||
|
||||
/**
|
||||
* Summary text for the staging store:
|
||||
* Created On: xx/yy/zz
|
||||
@@ -242,7 +249,7 @@ public class AVMBrowseBean implements IContextListener
|
||||
ResourceBundle msg = Application.getBundle(fc);
|
||||
Node websiteNode = this.navigator.getCurrentNode();
|
||||
String storeRoot = (String)websiteNode.getProperties().get(ContentModel.PROP_AVMSTORE);
|
||||
String stagingStore = AVMConstants.buildAVMStagingStoreName(storeRoot);
|
||||
String stagingStore = getStagingStore();
|
||||
AVMStoreDescriptor store = this.avmService.getAVMStore(stagingStore);
|
||||
if (store != null)
|
||||
{
|
||||
@@ -261,6 +268,11 @@ public class AVMBrowseBean implements IContextListener
|
||||
return summary.toString();
|
||||
}
|
||||
|
||||
public String getPreviewUrl()
|
||||
{
|
||||
return AVMConstants.buildAVMStoreUrl(getStagingStore());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param foldersRichList The foldersRichList to set.
|
||||
*/
|
||||
|
@@ -16,6 +16,18 @@
|
||||
*/
|
||||
package org.alfresco.web.bean.wcm;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.faces.context.FacesContext;
|
||||
|
||||
import org.alfresco.repo.domain.PropertyValue;
|
||||
import org.alfresco.service.cmr.avm.AVMService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.web.app.Application;
|
||||
import org.alfresco.web.bean.repository.Repository;
|
||||
import org.alfresco.web.config.ClientConfigElement;
|
||||
|
||||
/**
|
||||
* @author Kevin Roast
|
||||
*/
|
||||
@@ -53,6 +65,23 @@ public final class AVMConstants
|
||||
return store + ":/" + DIR_APPBASE + '/' + DIR_WEBAPPS;
|
||||
}
|
||||
|
||||
public static String buildAVMStoreUrl(String store)
|
||||
{
|
||||
String url = null;;
|
||||
|
||||
FacesContext fc = FacesContext.getCurrentInstance();
|
||||
AVMService avmService = Repository.getServiceRegistry(fc).getAVMService();
|
||||
ClientConfigElement config = Application.getClientConfig(fc);
|
||||
Map<QName, PropertyValue> props = avmService.queryStorePropertyKey(store, QName.createQName(null, PROP_DNS + '%'));
|
||||
if (props.size() == 1)
|
||||
{
|
||||
String dns = props.entrySet().iterator().next().getKey().getLocalName().substring(PROP_DNS.length());
|
||||
url = MessageFormat.format(PREVIEW_SANDBOX_URL, dns, config.getWCMDomain(), config.getWCMPort());
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
// names of the stores representing the layers for an AVM website
|
||||
public final static String STORE_STAGING = "-staging";
|
||||
public final static String STORE_MAIN = "-main";
|
||||
@@ -72,4 +101,8 @@ public final class AVMConstants
|
||||
public final static String PROP_WEBSITE_NAME = ".website.name";
|
||||
public final static String PROP_SANDBOX_STORE_PREFIX = ".sandbox.store.";
|
||||
public final static String SPACE_ICON_WEBSITE = "space-icon-website";
|
||||
|
||||
// URLs for preview of sandboxes and assets
|
||||
public final static String PREVIEW_SANDBOX_URL = "http://www-{0}.avm.{1}:{2}";
|
||||
public final static String PREVIEW_ASSET_URL = "http://www-{0}.avm.{1}:{2}/{3}";
|
||||
}
|
||||
|
@@ -359,7 +359,7 @@ public class CreateWebsiteWizard extends BaseWizardBean
|
||||
new PropertyValue(DataTypeDefinition.TEXT, null));
|
||||
|
||||
// tag the store with the DNS name property
|
||||
tagStoreDNSPath(userStore, name, username, "main");
|
||||
tagStoreDNSPath(userStore, name, username);
|
||||
|
||||
|
||||
// create the user 'preview' store
|
||||
|
@@ -213,7 +213,7 @@ public class UIUserSandboxes extends SelfRenderingComponent
|
||||
// this is currently identical to the sandbox_browse action as below
|
||||
Utils.encodeRecursive(context, aquireAction(
|
||||
context, mainStore, username, "sandbox_icon", WebResources.IMAGE_USERSANDBOX_32,
|
||||
"#{AVMBrowseBean.setupSandboxAction}", "browseSandbox"));
|
||||
"#{AVMBrowseBean.setupSandboxAction}", "browseSandbox", null));
|
||||
out.write("</td><td width=100%>");
|
||||
out.write("<b>");
|
||||
out.write(bundle.getString(MSG_USERNAME));
|
||||
@@ -222,24 +222,25 @@ public class UIUserSandboxes extends SelfRenderingComponent
|
||||
out.write("</td><td><nobr>");
|
||||
|
||||
// direct actions for a sandbox
|
||||
String sandboxUrl = AVMConstants.buildAVMStoreUrl(mainStore);
|
||||
Utils.encodeRecursive(context, aquireAction(
|
||||
context, mainStore, username, "sandbox_preview", "/images/icons/preview_website.gif",
|
||||
null, null));
|
||||
null, null, sandboxUrl));
|
||||
out.write(" ");
|
||||
|
||||
Utils.encodeRecursive(context, aquireAction(
|
||||
context, mainStore, username, "sandbox_create", "/images/icons/new_content.gif",
|
||||
"#{AVMBrowseBean.setupSandboxAction}", "wizard:createWebContent"));
|
||||
"#{AVMBrowseBean.setupSandboxAction}", "wizard:createWebContent", null));
|
||||
out.write(" ");
|
||||
|
||||
Utils.encodeRecursive(context, aquireAction(
|
||||
context, mainStore, username, "sandbox_submitall", "/images/icons/submit.gif",
|
||||
"#{AVMBrowseBean.submitAll}", null));
|
||||
"#{AVMBrowseBean.submitAll}", null, null));
|
||||
out.write(" ");
|
||||
|
||||
Utils.encodeRecursive(context, aquireAction(
|
||||
context, mainStore, username, "sandbox_browse", "/images/icons/space_small.gif",
|
||||
"#{AVMBrowseBean.setupSandboxAction}", "browseSandbox"));
|
||||
"#{AVMBrowseBean.setupSandboxAction}", "browseSandbox", null));
|
||||
out.write("</nobr></td></tr>");
|
||||
|
||||
// modified items panel
|
||||
@@ -505,19 +506,20 @@ public class UIUserSandboxes extends SelfRenderingComponent
|
||||
* @param store Root store name for the user sandbox
|
||||
* @param username Username of the user for the action
|
||||
* @param name Action name - will be used for I18N message lookup
|
||||
* @param icon Icon to display for the actio n
|
||||
* @param icon Icon to display for the action
|
||||
* @param actionListener Actionlistener for the action
|
||||
* @param outcome Navigation outcome for the action
|
||||
* @param url HREF URL for the action
|
||||
*
|
||||
* @return UIActionLink component
|
||||
*/
|
||||
private UIActionLink aquireAction(FacesContext fc, String store, String username,
|
||||
String name, String icon, String actionListener, String outcome)
|
||||
String name, String icon, String actionListener, String outcome, String url)
|
||||
{
|
||||
UIActionLink action = findAction(name, username);
|
||||
if (action == null)
|
||||
{
|
||||
action = createAction(fc, store, username, name, icon, actionListener, outcome);
|
||||
action = createAction(fc, store, username, name, icon, actionListener, outcome, url);
|
||||
}
|
||||
return action;
|
||||
}
|
||||
@@ -555,11 +557,12 @@ public class UIUserSandboxes extends SelfRenderingComponent
|
||||
* @param icon Icon to display for the actio n
|
||||
* @param actionListener Actionlistener for the action
|
||||
* @param outcome Navigation outcome for the action
|
||||
* @param url HREF URL for the action
|
||||
*
|
||||
* @return UIActionLink child component
|
||||
*/
|
||||
private UIActionLink createAction(FacesContext fc, String store, String username,
|
||||
String name, String icon, String actionListener, String outcome)
|
||||
String name, String icon, String actionListener, String outcome, String url)
|
||||
{
|
||||
javax.faces.application.Application facesApp = fc.getApplication();
|
||||
UIActionLink control = (UIActionLink)facesApp.createComponent(UIActions.COMPONENT_ACTIONLINK);
|
||||
@@ -588,6 +591,11 @@ public class UIUserSandboxes extends SelfRenderingComponent
|
||||
{
|
||||
control.setAction(new ConstantMethodBinding(outcome));
|
||||
}
|
||||
if (url != null)
|
||||
{
|
||||
control.setHref(url);
|
||||
control.setTarget("new");
|
||||
}
|
||||
|
||||
this.getChildren().add(control);
|
||||
|
||||
|
@@ -105,7 +105,7 @@
|
||||
<td align=left width=32><a:actionLink image="/images/icons/sandbox_large.gif" showLink="false" value="#{msg.staging_sandbox}" actionListener="#{AVMBrowseBean.setupSandboxAction}" action="browseSandbox" /></td>
|
||||
<td align=left><h:outputText value="#{msg.staging_sandbox}" styleClass="mainSubTitle" /></td>
|
||||
<td align=right>
|
||||
<a:actionLink value="#{msg.sandbox_preview}" image="/images/icons/preview_website.gif" showLink="false" actionListener="#{AVMBrowseBean.setupSandboxAction}" />
|
||||
<a:actionLink value="#{msg.sandbox_preview}" image="/images/icons/preview_website.gif" showLink="false" actionListener="#{AVMBrowseBean.setupSandboxAction}" href="#{AVMBrowseBean.previewUrl}" target="new" />
|
||||
<a:actionLink value="#{msg.sandbox_create}" image="/images/icons/new_content.gif" showLink="false" actionListener="#{AVMBrowseBean.setupSandboxAction}" action="wizard:createWebContent" />
|
||||
<a:actionLink value="#{msg.sandbox_browse}" image="/images/icons/space_small.gif" showLink="false" actionListener="#{AVMBrowseBean.setupSandboxAction}" action="browseSandbox" />
|
||||
</td>
|
||||
|
Reference in New Issue
Block a user