Merged V2.2 to HEAD

7575: Permission changes for AVM.
   7577: Incorporated most of the feedback provided by Kevin C earlier today
   7578: Removed directory not removed by patch
   7579: EmailServer bug fixes
         AR-1902:  Double posts when emailing to a document
         AR-1904:  Attachments via email should be allowed on forum posts
         AR-1903:  (Partial Fix) Text attachments should be treated the same way as other attachments 
   7583: Fixed WCM-961 & WCM-962: Added confirm dialog for 'Delete All Deployment Reports' and 'Release Server' actions


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8434 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2008-03-06 14:43:55 +00:00
parent c9baaf0bb4
commit 3197d1a2ae
15 changed files with 401 additions and 149 deletions

View File

@@ -129,6 +129,7 @@ new_category_description=Enter information about the new Category then click Cre
status_message_default=No messages.
no_icons_found=No icons found
required_field=Required Field
no_data=--
# UI Component messages
yes=Yes
@@ -1140,6 +1141,11 @@ pending_promote=Submit Now
pending_abort=Abort Submission
task_done_resubmit_all=Task Done & Re-Submit All
delete_all_deploy_reports=Delete All Deploy Reports
delete_reports_info=To remove all deployment reports in the web project, click Yes.
delete_reports_confirm=Are you sure you want to delete all deployment reports across all sandboxes in this webproject?
release_server_title=Release Test Server
release_server_info=To release the test server from this sandbox, click Yes.
release_server_confirm=Are you sure you want to release the test server allocated to this sandbox?
# Website actions and dialog messages
title_import_content=Web Project Bulk Import
@@ -1247,6 +1253,7 @@ deploy_server_allocated=Allocated
deploy_server_source_path=Source Path
deploy_server_excludes=Excludes
deploy_server_target_name=Target Name
deploy_server_include_auto_deploy=Include In Auto Deploy
deploy_automatically=Auto Deploy
deploy_automatically_info=This will deploy the changes from this submission upon approval.
deploy_attempt_date=Attempt Date
@@ -1264,6 +1271,8 @@ edit_alf_deploy_server_info=Edit details of the Alfresco Server Receiver
edit_file_deploy_server_info=Edit details of the File System Receiver
reason=Reason
snapshot=Snapshot
current_working_version=current working version
review_sandbox=Review Sandbox
content_launch=Content Launch
launch_date=Launch Date
expiration_date_header=Content Expiration

View File

@@ -282,6 +282,14 @@
icon="/images/icons/deploy_large.gif" title-id="monitor_deployment_title"
description-id="monitor_deployment_desc" show-ok-button="false" />
<dialog name="deleteDeploymentReports" page="/jsp/dialog/delete.jsp"
managed-bean="DeleteDeploymentReportsDialog" icon="/images/icons/delete_large.gif"
title-id="delete_all_deploy_reports" description-id="delete_reports_info" />
<dialog name="releaseTestServer" page="/jsp/dialog/delete.jsp"
managed-bean="ReleaseTestServerDialog" icon="/images/icons/deploy_server_large.gif"
title-id="release_server_title" description-id="release_server_info" />
<dialog name="linkValidation" page="/jsp/wcm/link-validation.jsp"
managed-bean="LinkValidationDialog"
icon="/images/icons/link_validation_report_large.gif"

View File

@@ -286,7 +286,7 @@
</permissions>
<label-id>delete_all_deploy_reports</label-id>
<image>/images/icons/delete_deploy_reports.gif</image>
<action>#{AVMBrowseBean.deleteAllDeploymentReports}</action>
<action>dialog:deleteDeploymentReports</action>
<action-listener>#{BrowseBean.setupSpaceAction}</action-listener>
<params>
<param name="id">#{actionContext.id}</param>

View File

@@ -50,8 +50,6 @@ import org.alfresco.repo.avm.AVMNodeConverter;
import org.alfresco.repo.avm.actions.AVMRevertStoreAction;
import org.alfresco.repo.avm.actions.AVMUndoSandboxListAction;
import org.alfresco.repo.domain.PropertyValue;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.sandbox.SandboxConstants;
import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.ActionService;
@@ -60,7 +58,6 @@ import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.avm.AVMStoreDescriptor;
import org.alfresco.service.cmr.avmsync.AVMDifference;
import org.alfresco.service.cmr.avmsync.AVMSyncService;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef;
@@ -71,7 +68,6 @@ import org.alfresco.service.cmr.search.SearchParameters;
import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern;
import org.alfresco.util.Pair;
import org.alfresco.util.VirtServerUtils;
import org.alfresco.web.app.Application;
@@ -1422,125 +1418,6 @@ public class AVMBrowseBean implements IContextListener
AVMUtil.updateVServerWebapp(webappPath, true);
}
/**
* Releases the test server allocated to the store
*/
public void releaseTestServer(ActionEvent event)
{
UIActionLink link = (UIActionLink)event.getComponent();
Map<String, String> params = link.getParameterMap();
String store = params.get("store");
if (store != null)
{
UserTransaction tx = null;
try
{
FacesContext context = FacesContext.getCurrentInstance();
tx = Repository.getUserTransaction(context, false);
tx.begin();
NodeRef testServer = DeploymentUtil.findAllocatedTestServer(store);
if (testServer != null)
{
getNodeService().setProperty(testServer,
WCMAppModel.PROP_DEPLOYSERVERALLOCATEDTO, null);
if (logger.isDebugEnabled())
logger.debug("Released test server '" + testServer + "' from store: " + store);
}
tx.commit();
}
catch (Throwable err)
{
Utils.addErrorMessage(MessageFormat.format(Application.getMessage(
FacesContext.getCurrentInstance(), Repository.ERROR_GENERIC), err.getMessage()), err);
try { if (tx != null) {tx.rollback();} } catch (Exception tex) {}
}
}
}
/**
* Deletes all deploymentreport nodes associated with the web project
*/
public String deleteAllDeploymentReports()
{
FacesContext context = FacesContext.getCurrentInstance();
RetryingTransactionHelper txnHelper = Repository.getRetryingTransactionHelper(context);
RetryingTransactionCallback<String> callback = new RetryingTransactionCallback<String>()
{
@SuppressWarnings("unchecked")
public String execute() throws Throwable
{
// just in case there are any left, iterate through any old deploymentreport
// associations from the current web project and delete them.
List<ChildAssociationRef> deployReportRefs = nodeService.getChildAssocs(
getWebsite().getNodeRef(), WCMAppModel.ASSOC_DEPLOYMENTREPORT,
RegexQNamePattern.MATCH_ALL);
int count = deployReportRefs.size();
for (ChildAssociationRef ref : deployReportRefs)
{
NodeRef report = ref.getChildRef();
if (report != null)
{
// remove the node
nodeService.deleteNode(report);
}
}
// iterate through all deploymentattempt associations from the current
// web project and delete them.
List<ChildAssociationRef> deployAttemptRefs = nodeService.getChildAssocs(
getWebsite().getNodeRef(), WCMAppModel.ASSOC_DEPLOYMENTATTEMPT,
RegexQNamePattern.MATCH_ALL);
count += deployAttemptRefs.size();
for (ChildAssociationRef ref : deployAttemptRefs)
{
NodeRef attempt = ref.getChildRef();
if (attempt != null)
{
// remove the node
nodeService.deleteNode(attempt);
}
}
// remove the old properties in case they are still present
nodeService.removeProperty(getWebsite().getNodeRef(),
WCMAppModel.PROP_DEPLOYTO);
nodeService.removeProperty(getWebsite().getNodeRef(),
WCMAppModel.PROP_SELECTEDDEPLOYTO);
nodeService.removeProperty(getWebsite().getNodeRef(),
WCMAppModel.PROP_SELECTEDDEPLOYVERSION);
// remove the hasBeenDeployed object from the session so it gets
// re-evaluated (and disappears)
Map request = FacesContext.getCurrentInstance().
getExternalContext().getRequestMap();
request.remove(REQUEST_BEEN_DEPLOYED_RESULT);
if (logger.isDebugEnabled())
logger.debug("Removed " + count + " previous deployment attempts");
return null;
}
};
try
{
// Execute
txnHelper.doInTransaction(callback);
}
catch (Exception err)
{
Utils.addErrorMessage(MessageFormat.format(Application.getMessage(
FacesContext.getCurrentInstance(), Repository.ERROR_GENERIC),
err.getMessage()), err);
}
return "browseWebsite";
}
/**
* Undo changes to a single node
*/

View File

@@ -956,12 +956,12 @@ public final class AVMUtil
}
// Component Separator.
/*package*/ static final String STORE_SEPARATOR = "--";
public static final String STORE_SEPARATOR = "--";
// names of the stores representing the layers for an AVM website
//XXXarielb this should be private
/*package*/ final static String STORE_WORKFLOW = "workflow";
private final static String STORE_PREVIEW = "preview";
public final static String STORE_WORKFLOW = "workflow";
public final static String STORE_PREVIEW = "preview";
// servlet default webapp
// Note: this webapp is mapped to the URL path ""

View File

@@ -0,0 +1,160 @@
/*
* Copyright (C) 2005-2007 Alfresco Software Limited.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* As a special exception to the terms and conditions of version 2.0 of
* the GPL, you may redistribute this Program in connection with Free/Libre
* and Open Source Software ("FLOSS") applications as described in Alfresco's
* FLOSS exception. You should have recieved a copy of the text describing
* the FLOSS exception, and it is also available here:
* http://www.alfresco.com/legal/licensing"
*/
package org.alfresco.web.bean.wcm;
import java.util.List;
import java.util.Map;
import javax.faces.context.FacesContext;
import org.alfresco.model.WCMAppModel;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
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.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Bean implementation for the "Delete Deployment Reports" dialog
*
* @author gavinc
*/
public class DeleteDeploymentReportsDialog extends BaseDialogBean
{
protected AVMBrowseBean avmBrowseBean;
private static final long serialVersionUID = -3702005115210010993L;
private static final Log logger = LogFactory.getLog(DeleteDeploymentReportsDialog.class);
// ------------------------------------------------------------------------------
// Dialog implementation
@SuppressWarnings("unchecked")
@Override
protected String finishImpl(FacesContext context, String outcome)
throws Exception
{
// get the node service and the website we are deleting reports for
NodeService nodeService = this.getNodeService();
NodeRef websiteRef = this.avmBrowseBean.getWebsite().getNodeRef();
// just in case there are any left, iterate through any old deploymentreport
// associations from the current web project and delete them.
List<ChildAssociationRef> deployReportRefs = nodeService.getChildAssocs(
websiteRef, WCMAppModel.ASSOC_DEPLOYMENTREPORT,
RegexQNamePattern.MATCH_ALL);
int count = deployReportRefs.size();
for (ChildAssociationRef ref : deployReportRefs)
{
NodeRef report = ref.getChildRef();
if (report != null)
{
// remove the node
nodeService.deleteNode(report);
}
}
// iterate through all deploymentattempt associations from the current
// web project and delete them.
List<ChildAssociationRef> deployAttemptRefs = nodeService.getChildAssocs(
websiteRef, WCMAppModel.ASSOC_DEPLOYMENTATTEMPT,
RegexQNamePattern.MATCH_ALL);
count += deployAttemptRefs.size();
for (ChildAssociationRef ref : deployAttemptRefs)
{
NodeRef attempt = ref.getChildRef();
if (attempt != null)
{
// remove the node
nodeService.deleteNode(attempt);
}
}
// remove the old properties in case they are still present
nodeService.removeProperty(websiteRef,
WCMAppModel.PROP_DEPLOYTO);
nodeService.removeProperty(websiteRef,
WCMAppModel.PROP_SELECTEDDEPLOYTO);
nodeService.removeProperty(websiteRef,
WCMAppModel.PROP_SELECTEDDEPLOYVERSION);
// remove the hasBeenDeployed object from the session so it gets
// re-evaluated (and disappears)
Map request = FacesContext.getCurrentInstance().
getExternalContext().getRequestMap();
request.remove(AVMBrowseBean.REQUEST_BEEN_DEPLOYED_RESULT);
if (logger.isDebugEnabled())
logger.debug("Removed " + count + " previous deployment attempts");
// close dialog and refresh website view
return AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME +
AlfrescoNavigationHandler.OUTCOME_SEPARATOR + "browseWebsite";
}
@Override
public boolean getFinishButtonDisabled()
{
return false;
}
@Override
public String getFinishButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), "yes");
}
@Override
public String getCancelButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), "no");
}
// ------------------------------------------------------------------------------
// Bean Getters and Setters
/**
* @param avmBrowseBean The AVM BrowseBean to set
*/
public void setAvmBrowseBean(AVMBrowseBean avmBrowseBean)
{
this.avmBrowseBean = avmBrowseBean;
}
/**
* Returns the confirmation to display to the user before deleting the reports.
*
* @return The message to display
*/
public String getConfirmMessage()
{
return Application.getMessage(FacesContext.getCurrentInstance(), "delete_reports_confirm");
}
}

View File

@@ -0,0 +1,118 @@
/*
* Copyright (C) 2005-2007 Alfresco Software Limited.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* As a special exception to the terms and conditions of version 2.0 of
* the GPL, you may redistribute this Program in connection with Free/Libre
* and Open Source Software ("FLOSS") applications as described in Alfresco's
* FLOSS exception. You should have recieved a copy of the text describing
* the FLOSS exception, and it is also available here:
* http://www.alfresco.com/legal/licensing"
*/
package org.alfresco.web.bean.wcm;
import java.util.Map;
import javax.faces.context.FacesContext;
import org.alfresco.model.WCMAppModel;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.web.app.AlfrescoNavigationHandler;
import org.alfresco.web.app.Application;
import org.alfresco.web.bean.dialog.BaseDialogBean;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Bean implementation for the "Release Test Server" dialog
*
* @author gavinc
*/
public class ReleaseTestServerDialog extends BaseDialogBean
{
protected String store;
private static final long serialVersionUID = -3702005115210010993L;
private static final Log logger = LogFactory.getLog(ReleaseTestServerDialog.class);
// ------------------------------------------------------------------------------
// Dialog implementation
@Override
public void init(Map<String, String> parameters)
{
super.init(parameters);
this.store = parameters.get("store");
if (this.store == null || this.store.length() == 0)
{
throw new IllegalArgumentException("store parameter is mandatory");
}
}
@SuppressWarnings("unchecked")
@Override
protected String finishImpl(FacesContext context, String outcome)
throws Exception
{
NodeRef testServer = DeploymentUtil.findAllocatedTestServer(this.store);
if (testServer != null)
{
getNodeService().setProperty(testServer,
WCMAppModel.PROP_DEPLOYSERVERALLOCATEDTO, null);
if (logger.isDebugEnabled())
logger.debug("Released test server '" + testServer + "' from store: " + this.store);
}
// close dialog and refresh website view
return AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME +
AlfrescoNavigationHandler.OUTCOME_SEPARATOR + "browseWebsite";
}
@Override
public boolean getFinishButtonDisabled()
{
return false;
}
@Override
public String getFinishButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), "yes");
}
@Override
public String getCancelButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), "no");
}
// ------------------------------------------------------------------------------
// Bean Getters and Setters
/**
* Returns the confirmation to display to the user before deleting the reports.
*
* @return The message to display
*/
public String getConfirmMessage()
{
return Application.getMessage(FacesContext.getCurrentInstance(), "release_server_confirm");
}
}

View File

@@ -371,9 +371,16 @@ public class UIDeploymentReports extends SelfRenderingComponent
out.write("</nobr></td><td>");
out.write(attempt.getServers());
out.write("</td><td>");
if (attempt.getVersion() != null)
Integer version = attempt.getVersion();
if (version != null)
{
out.write(attempt.getVersion().toString());
out.write(version.toString());
if (version.intValue() == -1)
{
out.write("&nbsp;(");
out.write(bundle.getString("current_working_version"));
out.write(")");
}
}
out.write("</td></tr>");
}
@@ -527,6 +534,7 @@ public class UIDeploymentReports extends SelfRenderingComponent
content = reader.getContentString();
if (content != null)
{
content = Utils.encode(content);
content = StringUtils.replace(content, "\r\n", "<br/>");
}
else
@@ -673,7 +681,7 @@ public class UIDeploymentReports extends SelfRenderingComponent
out.write("<div id='");
out.write(serverId.toString());
out.write("-deployment-details' style='display: none; border: 1px dotted #eee; margin-left: 14px; margin-top: 4px; padding:3px;'>");
out.write(Utils.encode(content));
out.write(content);
out.write("</div>");
}
out.write("\n<div style='padding-top:6px;'></div>\n");

View File

@@ -48,6 +48,7 @@ import org.alfresco.repo.avm.actions.AVMDeployWebsiteAction;
import org.alfresco.web.app.Application;
import org.alfresco.web.app.servlet.FacesHelper;
import org.alfresco.web.bean.repository.Repository;
import org.alfresco.web.bean.wcm.AVMUtil;
import org.alfresco.web.bean.wcm.DeploymentServerConfig;
import org.alfresco.web.ui.common.ComponentConstants;
import org.alfresco.web.ui.common.PanelGenerator;
@@ -76,10 +77,11 @@ public class UIDeploymentServers extends UIInput
private static final String MSG_SOURCE = "deploy_server_source_path";
private static final String MSG_TARGET = "deploy_server_target_name";
private static final String MSG_EXCLUDES = "deploy_server_excludes";
private static final String MSG_AUTO_DEPLOY = "deploy_automatically";
private static final String MSG_INCLUDE_AUTO_DEPLOY = "deploy_server_include_auto_deploy";
private static final String MSG_EDIT = "edit_deploy_server";
private static final String MSG_DELETE = "delete_deploy_server";
private static final String MSG_NO_DEPLOY_SERVERS = "no_deploy_servers";
private static final String MSG_NO_DATA = "no_data";
private List<DeploymentServerConfig> servers;
private DeploymentServerConfig currentServer;
@@ -319,6 +321,7 @@ public class UIDeploymentServers extends UIInput
{
String contextPath = context.getExternalContext().getRequestContextPath();
ResourceBundle bundle = Application.getBundle(context);
String noData = bundle.getString(MSG_NO_DATA);
String serverName = (String)server.getProperties().get(DeploymentServerConfig.PROP_NAME);
if (serverName == null || serverName.length() == 0)
@@ -358,6 +361,10 @@ public class UIDeploymentServers extends UIInput
{
out.write((String)server.getProperties().get(DeploymentServerConfig.PROP_PORT));
}
else
{
out.write(noData);
}
out.write("</td></tr>");
out.write("<tr><td align='right'>");
@@ -384,6 +391,10 @@ public class UIDeploymentServers extends UIInput
{
out.write(Utils.encode((String)server.getProperties().get(DeploymentServerConfig.PROP_URL)));
}
else
{
out.write(noData);
}
out.write("</td></tr>");
out.write("<tr><td align='right'>");
@@ -393,6 +404,10 @@ public class UIDeploymentServers extends UIInput
{
out.write(Utils.encode((String)server.getProperties().get(DeploymentServerConfig.PROP_USER)));
}
else
{
out.write(noData);
}
out.write("</td></tr></table></td>");
out.write("<td valign='top'><table cellpadding='3' cellspacing='0' class='deployConfigServerDetailsRightCol'>");
@@ -403,6 +418,10 @@ public class UIDeploymentServers extends UIInput
{
out.write(Utils.encode((String)server.getProperties().get(DeploymentServerConfig.PROP_SOURCE_PATH)));
}
else
{
out.write(noData);
}
out.write("</td></tr>");
out.write("<tr><td align='right'><nobr>");
@@ -412,6 +431,10 @@ public class UIDeploymentServers extends UIInput
{
out.write(Utils.encode((String)server.getProperties().get(DeploymentServerConfig.PROP_EXCLUDES)));
}
else
{
out.write(noData);
}
out.write("</td></tr>");
if (WCMAppModel.CONSTRAINT_FILEDEPLOY.equals(server.getDeployType()))
@@ -423,6 +446,10 @@ public class UIDeploymentServers extends UIInput
{
out.write(Utils.encode((String)server.getProperties().get(DeploymentServerConfig.PROP_TARGET_NAME)));
}
else
{
out.write(noData);
}
out.write("</td></tr>");
}
@@ -430,7 +457,7 @@ public class UIDeploymentServers extends UIInput
server.getProperties().get(DeploymentServerConfig.PROP_TYPE)))
{
out.write("<tr><td align='right'><nobr>");
out.write(bundle.getString(MSG_AUTO_DEPLOY));
out.write(bundle.getString(MSG_INCLUDE_AUTO_DEPLOY));
out.write(":</nobr></td><td>");
if (server.getProperties().get(DeploymentServerConfig.PROP_ON_APPROVAL) != null)
{
@@ -459,9 +486,22 @@ public class UIDeploymentServers extends UIInput
DeploymentServerConfig.PROP_ALLOCATED_TO);
out.write("<span title='");
out.write(allocatedToTip);
out.write("'>");
out.write("'><nobr>");
out.write(bundle.getString("yes"));
out.write("</span>");
out.write("&nbsp;(");
if (allocatedToTip.indexOf(
AVMUtil.STORE_SEPARATOR + AVMUtil.STORE_WORKFLOW + "-") != -1)
{
out.write(bundle.getString("review_sandbox"));
}
else
{
String username = allocatedToTip.substring(
allocatedToTip.indexOf(AVMUtil.STORE_SEPARATOR) +
AVMUtil.STORE_SEPARATOR.length());
out.write(username);
}
out.write(")</nobr></span>");
}
else
{
@@ -716,9 +756,7 @@ public class UIDeploymentServers extends UIInput
}
// create the auto deploy checkbox
out.write("<tr><td align='right'><span id='autoDeployLabel'>");
out.write(bundle.getString(MSG_AUTO_DEPLOY));
out.write(":</td><td>");
out.write("<tr><td align='right'></td><td>");
UIComponent auto = context.getApplication().createComponent(
UISelectBoolean.COMPONENT_TYPE);
FacesHelper.setupComponentId(context, auto, "autoDeployCheckbox");
@@ -728,6 +766,8 @@ public class UIDeploymentServers extends UIInput
auto.setValueBinding("value", vbAuto);
this.getChildren().add(auto);
Utils.encodeRecursive(context, auto);
out.write("<span id='autoDeployLabel'>&nbsp;");
out.write(bundle.getString(MSG_INCLUDE_AUTO_DEPLOY));
out.write("</td></tr>");
// create and add the cancel button

View File

@@ -46,8 +46,6 @@ import javax.transaction.UserTransaction;
import org.alfresco.model.WCMAppModel;
import org.alfresco.repo.avm.AVMNodeConverter;
import org.alfresco.repo.domain.PropertyValue;
import org.alfresco.sandbox.SandboxConstants;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.avmsync.AVMDifference;
@@ -65,8 +63,8 @@ import org.alfresco.web.app.servlet.FacesHelper;
import org.alfresco.web.bean.BrowseBean;
import org.alfresco.web.bean.repository.Repository;
import org.alfresco.web.bean.repository.User;
import org.alfresco.web.bean.wcm.AVMUtil;
import org.alfresco.web.bean.wcm.AVMNode;
import org.alfresco.web.bean.wcm.AVMUtil;
import org.alfresco.web.bean.wcm.DeploymentUtil;
import org.alfresco.web.bean.wcm.WebProject;
import org.alfresco.web.config.ClientConfigElement;
@@ -491,7 +489,8 @@ public class UIUserSandboxes extends SelfRenderingComponent implements Serializa
{
UIActionLink releaseServer = createAction(context, mainStore, username,
ACT_SANDBOX_RELEASE_SERVER, "/images/icons/release_server.gif",
"#{AVMBrowseBean.releaseTestServer}", null, null, null, false);
"#{DialogManager.setupParameters}", "dialog:releaseTestServer",
null, null, false);
menu.getChildren().add(releaseServer);
}

View File

@@ -4081,6 +4081,36 @@
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the Delete Deployment Reports Dialog
</description>
<managed-bean-name>DeleteDeploymentReportsDialog</managed-bean-name>
<managed-bean-class>org.alfresco.web.bean.wcm.DeleteDeploymentReportsDialog</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>avmBrowseBean</property-name>
<value>#{AVMBrowseBean}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the Release Test Server Dialog
</description>
<managed-bean-name>ReleaseTestServerDialog</managed-bean-name>
<managed-bean-class>org.alfresco.web.bean.wcm.ReleaseTestServerDialog</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>nodeService</property-name>
<value>#{NodeService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the Link Validation Dialog

View File

@@ -766,6 +766,11 @@ a.sidebarButtonLink, a.sidebarButtonLink:link, a.sidebarButtonLink:visited
width: 200px;
}
#autoDeployLabel
{
vertical-align: 3px;
}
.deployNoConfigServers
{
margin: 26px 5px 16px 3px;

View File

@@ -36,7 +36,7 @@
<h:panelGroup id="panel-facets">
<f:facet name="title">
<a:actionLink id="back-to-last-report" value="#{msg.last_deploy_report}" showLink="false"
<a:actionLink id="back-to-last-report" value="#{msg.last_deploy_report}"
rendered="#{DialogManager.bean.attempt != null}"
image="/images/icons/deployment_report.gif"
actionListener="#{DialogManager.bean.showLastReport}" />

View File

@@ -66,11 +66,9 @@
<f:facet name="title">
<h:panelGroup id="resources-actions" styleClass="deployReviewTaskActions">
<a:actionLink id="resources-action1" value="#{msg.sandbox_deploy}" image="/images/icons/deploy.gif"
action="#{DialogManager.bean.deploy}" showLink="false"
rendered="#{DialogManager.bean.testServersAvailable}" />
action="#{DialogManager.bean.deploy}" rendered="#{DialogManager.bean.testServersAvailable}" />
<a:actionLink id="resources-action2" value="#{msg.deployment_report_action}" image="/images/icons/deployment_report.gif"
action="#{DialogManager.bean.viewDeployReport}" showLink="false"
rendered="#{DialogManager.bean.deployAttempted}" />
action="#{DialogManager.bean.viewDeployReport}" rendered="#{DialogManager.bean.deployAttempted}" />
</h:panelGroup>
</f:facet>
</h:panelGroup>

View File

@@ -176,7 +176,7 @@ Alfresco.deployServerTypeChanged = function()
}
else
{
autoDeployLabel.style.display = "block";
autoDeployLabel.style.display = "inline";
}
}
@@ -190,7 +190,7 @@ Alfresco.deployServerTypeChanged = function()
}
else
{
autoDeployCheckbox.style.display = "block";
autoDeployCheckbox.style.display = "inline";
}
}
}