Merged V3.2 to HEAD

16841: Fix for ETHREEOH-3046 - discussion post replies and further post content now all set to UTF-8 encoding format.
   16853: Merged V3.1 to V3.2
      13681: Disable CMIS Web Services.
      13958: ETHREEOH-1625 - Incorrect save file process via Office Addin
      14026: ETHREEOH-1805 - update GET login web script description to recommend use of POST login web script instead.
   16861: Merged V3.1 to V3.2
      14162: ETHREEOH-1733 - multiday events display correctly
      14273: fix for ETHREEOH-2031
      14274: fix for event not adjusted by height issue in week view, after adding
   16867: Merged V3.1 to V3.2
      15429: The solution is to remove 'label' and 'description attributes' and add appropriate 'label-id' and 'description-id' attributes in 
   web-client\config\alfresco\web-client-config.xml for dashlets. Appropriate ids were added into webclient.properties.
      16677: ETHREEOH-1208 - Upload/recall documents with apostrophe/accent via Alfresco Office plugin
   16869: Merged V3.1 to V3.2
      16848: Merged V2.2 to V3.1
         15217: Fix for ETWOTWO-1268. Check for existence of desired control on first step of the dialog.
         15218: Fix for ETWOTWO-1269. Remove node.hasPermission(PermissionService.CREATE_CHILDREN) from CheckoutDocEvaluator#evaluate method (like 3.2 version).
      16849: Merged V2.2 to V3.1
         15424: ETWOTWO-1349
      16851: Merged V2.2 to V3.1
         15432: **RECORD ONLY** Input characters validation script was modified to disallow  !@#$%^&*().
         15433: This check-in fixes ETWOTWO-1351, ETWOTWO-1352, ETWOTWO-1353 because their behaviour is similar.
   16874: Merged DEV/TEMPORARY to V3.2
      16789: ETHREEOH-1895: Incorrect working of Link Destination Details
      16790: ETHREEOH-2372: Incorrect working of Link Destination Details
      16791: ETHREEOH-2342: Error message appear when "Coordinator" try to remove himself from the space
      16793: ETHREEOH-1364 & ETHREEOH-1367
      16794: ETHREEOH-2358: Letters and special symbols can be typed in Date value of property while creation of Content Rule and it leads to error
      16837: ETHREEOH-2631: two jsp:root elements cause compilation error in Weblogic 10.3.1

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16956 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2009-10-15 10:38:44 +00:00
parent 755abcca82
commit c350b0140a
14 changed files with 193 additions and 46 deletions

View File

@@ -173,6 +173,7 @@ public class ExternalAccessServlet extends BaseServlet
browseBean.setupContentAction(nodeRef.getId(), true);
}
fc.getExternalContext().getSessionMap().put(AlfrescoNavigationHandler.EXTERNAL_CONTAINER_SESSION, Boolean.TRUE);
// perform the appropriate JSF navigation outcome
NavigationHandler navigationHandler = fc.getApplication().getNavigationHandler();
navigationHandler.handleNavigation(fc, null, "dialog:" + OUTCOME_DOCDETAILS);
@@ -205,7 +206,7 @@ public class ExternalAccessServlet extends BaseServlet
// setup the Space on the browse bean
browseBean.setupSpaceAction(nodeRef.getId(), true);
}
fc.getExternalContext().getSessionMap().put(AlfrescoNavigationHandler.EXTERNAL_CONTAINER_SESSION, Boolean.TRUE);
// perform the appropriate JSF navigation outcome
NavigationHandler navigationHandler = fc.getApplication().getNavigationHandler();
navigationHandler.handleNavigation(fc, null, "dialog:" + OUTCOME_SPACEDETAILS);

View File

@@ -32,6 +32,7 @@ import java.util.Map;
import javax.faces.context.FacesContext;
import org.alfresco.i18n.I18NUtil;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.action.executer.ImporterActionExecuter;
import org.alfresco.repo.content.MimetypeMap;
@@ -42,6 +43,7 @@ import org.alfresco.service.cmr.action.ActionService;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.ContentService;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.DuplicateChildNodeNameException;
import org.alfresco.service.cmr.repository.MimetypeService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.NamespaceService;
@@ -69,6 +71,7 @@ public class ImportDialog extends BaseDialogBean
private static final String DEFAULT_OUTCOME = "dialog:close";
private static final String MSG_ERROR = "error_import";
private static final String ERR_DUPLICATE_NAME = "system.err.duplicate_name";
private static final String MSG_ERROR_NO_FILE = "error_import_no_file";
private static final String MSG_ERROR_EMPTY_FILE = "error_import_empty_file";
private static final String MSG_OK = "ok";
@@ -139,8 +142,18 @@ public class ImportDialog extends BaseDialogBean
}
catch (Throwable e)
{
Utils.addErrorMessage(MessageFormat.format(Application.getMessage(
FacesContext.getCurrentInstance(), MSG_ERROR), e.toString()), e);
if (e instanceof DuplicateChildNodeNameException)
{
String name = ((DuplicateChildNodeNameException)e).getName();
String err_mess = MessageFormat.format(I18NUtil.getMessage(ERR_DUPLICATE_NAME), name);
Utils.addErrorMessage(MessageFormat.format(Application.getMessage(
FacesContext.getCurrentInstance(), MSG_ERROR), err_mess), e);
}
else
{
Utils.addErrorMessage(MessageFormat.format(Application.getMessage(
FacesContext.getCurrentInstance(), MSG_ERROR), e.toString()), e);
}
outcome = null;
ReportedException.throwIfNecessary(e);
}

View File

@@ -69,6 +69,9 @@ public class CreatePostDialog extends CreateContentWizard
// remove link breaks and replace with <br>
this.content = Utils.replaceLineBreaks(this.content, false);
// set UTF-8 encoding for the post (all original posts are UTF-8 also)
this.encoding = "UTF-8";
return super.finishImpl(context, outcome);
}

View File

@@ -30,7 +30,8 @@ import javax.faces.event.ActionEvent;
import org.alfresco.web.app.Application;
import org.alfresco.web.bean.dialog.BaseDialogBean;
public class RemoveInvitedUserDialog extends BaseDialogBean {
public class RemoveInvitedUserDialog extends BaseDialogBean
{
private static final long serialVersionUID = -7457234588814115434L;
@@ -45,43 +46,51 @@ public class RemoveInvitedUserDialog extends BaseDialogBean {
private SpaceUsersBean spaceUsersBean;
@Override
public boolean getFinishButtonDisabled() {
public boolean getFinishButtonDisabled()
{
return false;
}
@Override
protected String finishImpl(FacesContext context, String outcome) throws Exception {
spaceUsersBean.removeOK();
return outcome;
protected String finishImpl(FacesContext context, String outcome) throws Exception
{
return spaceUsersBean.removeOK();
}
public void setupUserAction(ActionEvent event) {
public void setupUserAction(ActionEvent event)
{
spaceUsersBean.setupUserAction(event);
}
public String getPersonName() {
public String getPersonName()
{
return spaceUsersBean.getPersonName();
}
public void setPersonName(String personName) {
public void setPersonName(String personName)
{
this.spaceUsersBean.setPersonName(personName);
}
public SpaceUsersBean getSpaceUsersBean() {
public SpaceUsersBean getSpaceUsersBean()
{
return spaceUsersBean;
}
public void setSpaceUsersBean(SpaceUsersBean spaceUsersBean) {
public void setSpaceUsersBean(SpaceUsersBean spaceUsersBean)
{
this.spaceUsersBean = spaceUsersBean;
}
@Override
public String getCancelButtonLabel() {
public String getCancelButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), BUTTON_NO);
}
@Override
public String getFinishButtonLabel() {
public String getFinishButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), BUTTON_YES);
}
@@ -89,7 +98,7 @@ public class RemoveInvitedUserDialog extends BaseDialogBean {
public String getContainerTitle()
{
FacesContext fc = FacesContext.getCurrentInstance();
return Application.getMessage(fc, MSG_REMOVE_USER) + " " + Application.getMessage(fc, MSG_LEFT_QUOTE)
+ spaceUsersBean.getPersonName() + Application.getMessage(fc, MSG_RIGHT_QUOTE);
return Application.getMessage(fc, MSG_REMOVE_USER) + " " + Application.getMessage(fc, MSG_LEFT_QUOTE) + spaceUsersBean.getPersonName()
+ Application.getMessage(fc, MSG_RIGHT_QUOTE);
}
}

View File

@@ -851,7 +851,7 @@ public abstract class UserMembersBean extends BaseDialogBean implements IContext
*/
public String removeOK()
{
String outcome = OUTCOME_FINISH;
String outcome = getDefaultFinishOutcome();
UserTransaction tx = null;
FacesContext context = FacesContext.getCurrentInstance();

View File

@@ -402,6 +402,8 @@ public class DatePickerRenderer extends BaseRenderer
{
outputAttribute(out, component.getAttributes().get("disabled"), "disabled");
}
outputAttribute(out, clientId, "id");
out.write(" onkeyup=\"checkOkButtonState();\" onchange=\"checkOkButtonState();\"");
}
else
{

View File

@@ -44,6 +44,7 @@ import javax.faces.event.FacesEvent;
import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.SearcherException;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authority.AuthorityDAO;
import org.alfresco.service.cmr.dictionary.AssociationDefinition;
@@ -1085,6 +1086,11 @@ public abstract class BaseAssociationEditor extends UIInput
results = Repository.getServiceRegistry(context).getSearchService().query(searchParams);
this.availableOptions = results.getNodeRefs();
}
catch (SearcherException se)
{
logger.info("Search failed for: " + query, se);
Utils.addErrorMessage(Application.getMessage(FacesContext.getCurrentInstance(), Repository.ERROR_QUERY));
}
finally
{
if (results != null)

View File

@@ -198,8 +198,9 @@
function checkButtonState()
{
if (document.getElementById("dialog:dialog-body:name").value.length == 0
|| document.getElementById("dialog:dialog-body:language").selectedIndex == 0)
if (document.getElementById("dialog:dialog-body:name") == undefined ||
document.getElementById("dialog:dialog-body:name").value.length == 0 ||
document.getElementById("dialog:dialog-body:language").selectedIndex == 0)
{
document.getElementById("dialog:finish-button").disabled = true;
}

View File

@@ -40,6 +40,33 @@
var disabled = (inputField.value.length == 0);
document.getElementById("contains-text-condition:ok-button").disabled = disabled;
}
function checkOkButtonState()
{
var input = document.getElementById("contains-text-condition:pattern_hour");
if (!input.disabled)
{
if (input.value.length == 0 || input.value.charCodeAt(0) < 48 || input.value.charCodeAt(0) > 57 ||
(input.value.length == 2 && (input.value.charCodeAt(1) < 48 || input.value.charCodeAt(1) > 57)))
{
document.getElementById("contains-text-condition:ok-button").disabled = true;
return;
}
}
input = document.getElementById("contains-text-condition:pattern_minute");
if (!input.disabled)
{
if (input.value.length == 0 || input.value.charCodeAt(0) < 48 || input.value.charCodeAt(0) > 57 ||
(input.value.length == 2 && (input.value.charCodeAt(1) < 48 || input.value.charCodeAt(1) > 57)))
{
document.getElementById("contains-text-condition:ok-button").disabled = true;
return;
}
}
document.getElementById("contains-text-condition:ok-button").disabled = false;
}
</script>
<f:view>

View File

@@ -57,6 +57,28 @@
rendering_engine_template_file_input.value = filename;
rendering_engine_template_file_input.form.submit();
}
function refresh_add_to_list_button()
{
var wizard = document.forms["wizard"]["wizard:wizard-body:rendering-engine"];
var count = wizard.length;
var checked = false;
while (count > 0)
{
count--;
if (wizard[count].checked) checked = true;
}
var name = document.getElementById("wizard:wizard-body:name").value;
var output_path_pattern = document.getElementById("wizard:wizard-body:output-path-pattern").value;
if (name.length == 0 || output_path_pattern.length == 0 || !checked)
{
document.getElementById("wizard:wizard-body:add-to-list-button").disabled = true;
}
else
{
document.getElementById("wizard:wizard-body:add-to-list-button").disabled = false;
}
}
</script>
</f:verbatim>
@@ -86,6 +108,7 @@
type="file"
size="35"
name="alfFileInput"
contentEditable="false"
onchange="javascript:handle_upload(this)"/></f:verbatim>
</h:column>
@@ -127,7 +150,8 @@
value="#{msg.rendering_engine}:"/>
<h:selectOneRadio id="rendering-engine"
value="#{WizardManager.bean.renderingEngineName}"
disabled="#{WizardManager.bean.renderingEngineTemplateFileName == null}">
disabled="#{WizardManager.bean.renderingEngineTemplateFileName == null}"
onchange="refresh_add_to_list_button();">
<f:selectItems id="rendering-engine-choices"
value="#{WizardManager.bean.renderingEngineChoices}"/>
</h:selectOneRadio>
@@ -146,7 +170,9 @@
value="#{WizardManager.bean.renderingEngineTemplateName}"
disabled="#{WizardManager.bean.renderingEngineTemplateFileName == null}"
maxlength="1024"
size="35"/>
size="35"
onkeyup="refresh_add_to_list_button();"
onchange="refresh_add_to_list_button();"/>
<h:column id="name-help"/>
<h:outputText id="no_graphic_image_title" value=""/>
@@ -199,7 +225,9 @@
<h:inputText id="output-path-pattern"
disabled="#{WizardManager.bean.renderingEngineTemplateFileName == null}"
value="#{WizardManager.bean.outputPathPatternForRendition}"
style="width:100%;"/>
style="width:100%;"
onkeyup="refresh_add_to_list_button();"
onchange="refresh_add_to_list_button();"/>
<h:graphicImage id="graphic_image_output_path_pattern_help"
value="/images/icons/Help_icon.gif" style="cursor:help"
onclick="javascript:toggleOutputPathPatternHelp()" />
@@ -207,7 +235,7 @@
<h:column id="output_path_pattern_help_empty_col_1"/>
<h:column id="output_path_pattern_help_empty_col_2"/>
<f:verbatim>
<jsp:directive.include file="/jsp/wcm/output-path-pattern-help.jsp"/>
<c:import url="/jsp/wcm/output-path-pattern-help.jsp" />
</f:verbatim>
<h:column id="output_path_pattern_help_empty_col_3"/>
</h:panelGrid>
@@ -218,7 +246,11 @@
value="#{msg.add_to_list_button}"
actionListener="#{WizardManager.bean.addSelectedRenderingEngineTemplate}"
styleClass="wizardButton"
disabled="#{WizardManager.bean.addToListDisabled}" />
disabled="#{WizardManager.bean.renderingEngineTemplateFileName == null ||
WizardManager.bean.renderingEngineName == null ||
WizardManager.bean.renderingEngineTemplateName == null ||
WizardManager.bean.mimetypeForRendition == null ||
WizardManager.bean.outputPathPatternForRendition}" />
</h:panelGroup>
<h:panelGroup id="data-table-panel-group">
<h:dataTable id="rendering-engine-template-data-table"

View File

@@ -138,6 +138,7 @@
type="file"
size="35"
name="alfFileInput"
contentEditable="false"
onchange="javascript:handle_upload(this)"/></f:verbatim>
</h:column>
<h:column id="column_schema_not_empty"
@@ -242,7 +243,7 @@
<h:column id="output_path_pattern_help_empty_col_1"/>
<h:column id="output_path_pattern_help_empty_col_2"/>
<f:verbatim>
<jsp:directive.include file="/jsp/wcm/output-path-pattern-help.jsp"/>
<c:import url="/jsp/wcm/output-path-pattern-help.jsp" />
</f:verbatim>
<h:column id="output_path_pattern_help_empty_col_3"/>

View File

@@ -31,6 +31,9 @@
<%@ page isELIgnored="false" %>
<f:verbatim>
<script type="text/javascript" src="<%=request.getContextPath()%>/scripts/validation.js"> </script>
<script type="text/javascript">
window.onload = pageLoaded;
@@ -42,7 +45,11 @@
function checkButtonState()
{
if (document.getElementById("dialog:dialog-body:title").value.length == 0)
var name = document.getElementById("dialog:dialog-body:title");
var filepattern = document.getElementById("dialog:dialog-body:filepattern");
var description = document.getElementById("dialog:dialog-body:description");
if (!validateName(name, "", false) || filepattern.value.length == 0 || description.value.length > 1024)
{
document.getElementById("dialog:finish-button").disabled = true;
}
@@ -52,6 +59,7 @@
}
}
</script>
</f:verbatim>
@@ -82,7 +90,7 @@
</td>
<td>
</f:verbatim>
<h:inputText id="title" value="#{DialogManager.bean.title}" size="45" maxlength="1024" onkeyup="javascript:checkButtonState();" />
<h:inputText id="title" value="#{DialogManager.bean.title}" size="45" maxlength="1024" onchange="javascript:checkButtonState();" onkeyup="javascript:checkButtonState();" />
<f:verbatim>
</td>
</tr>
@@ -95,7 +103,7 @@
</td>
<td>
</f:verbatim>
<h:inputTextarea id="description" value="#{DialogManager.bean.description}" rows="3" cols="42" />
<h:inputTextarea id="description" value="#{DialogManager.bean.description}" rows="3" cols="42" onchange="javascript:checkButtonState();" onkeyup="javascript:checkButtonState();" />
<f:verbatim>
</td>
</tr>
@@ -124,6 +132,11 @@
</table>
<table cellpadding="3" cellspacing="2" border="0">
<tr>
<td align="left" width=16>
</f:verbatim>
<h:graphicImage value="/images/icons/required_field.gif" alt="#{msg.required_field}" />
<f:verbatim>
</td>
<td>
<nobr>
</f:verbatim>
@@ -133,7 +146,7 @@
</td>
<td>
</f:verbatim>
<h:inputText id="filepattern" value="#{DialogManager.bean.outputPathPattern}" size="70" maxlength="1024" />
<h:inputText id="filepattern" value="#{DialogManager.bean.outputPathPattern}" size="70" maxlength="1024" onchange="javascript:checkButtonState();" onkeyup="javascript:checkButtonState();" />
<h:graphicImage value="/images/icons/Help_icon.gif" style="vertical-align:-20%;padding-left:8px;cursor:help" onclick="javascript:toggleOutputPathPatternHelp()" />
<f:verbatim>
</td>
@@ -141,7 +154,7 @@
<tr>
<td></td>
<td>
<jsp:directive.include file="/jsp/wcm/output-path-pattern-help.jsp"/>
<c:import url="/jsp/wcm/output-path-pattern-help.jsp" />
</td>
</tr>
</table>

View File

@@ -30,6 +30,52 @@
<%@ page buffer="32kb" contentType="text/html;charset=UTF-8" %>
<%@ page isELIgnored="false" %>
<f:verbatim>
<script type="text/javascript" src="<%=request.getContextPath()%>/scripts/validation.js"> </script>
<script type="text/javascript">
window.onload = pageLoaded;
function pageLoaded()
{
checkButtonState();
}
function checkButtonState(control)
{
var outputPatterns = $("dialog:dialog-body:templates").getElements('input[name^=dialog:dialog-body:templates]');
var disable = false;
for (var i = 0; i < outputPatterns.length; i++)
{
if (outputPatterns[i].value.length == 0)
{
disable = true;
break;
}
}
if (disable)
{
document.getElementById("dialog:finish-button").disabled = true;
}
else
{
document.getElementById("dialog:finish-button").disabled = false;
}
}
</script>
</f:verbatim>
<h:panelGrid id="grid-1" columns="1" cellpadding="2" cellpadding="2" width="100%">
<%-- Template selection list --%>
<h:outputText id="msg-select" styleClass="mainSubText" value="#{msg.website_select_templates}:" />
@@ -60,11 +106,16 @@
<h:column id="col2">
<h:outputText id="msg-01" value="#{row.title}" />
</h:column>
<h:column>
<h:graphicImage value="/images/icons/required_field.gif" alt="#{msg.required_field}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText id="head-2" value="#{msg.output_path_pattern}" />
</f:facet>
<h:inputText id="in-01" value="#{row.outputPathPattern}" size="70" maxlength="1024" />
<h:inputText id="in-01" value="#{row.outputPathPattern}" size="70" maxlength="1024"
onchange="javascript:checkButtonState(this);"
onkeyup="javascript:checkButtonState(this);" />
</h:column>
<h:column>
<a:actionLink id="act-01" actionListener="#{DialogManager.bean.removeTemplate}" image="/images/icons/delete.gif"
@@ -74,7 +125,7 @@
<h:graphicImage id="img-help" value="/images/icons/Help_icon.gif" style="vertical-align:-20%;padding-left:8px;cursor:help" onclick="javascript:toggleOutputPathPatternHelp()" />
</h:panelGrid>
<f:verbatim>
<jsp:directive.include file="/jsp/wcm/output-path-pattern-help.jsp"/>
<c:import url="/jsp/wcm/output-path-pattern-help.jsp" />
</f:verbatim>
</h:panelGroup>