mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V4.0-BUG-FIX to HEAD
36604: ALF-13745: Merged V3.4-BUG-FIX (3.4.10) to V4.0-BUG-FIX (4.0.3) 36602: ALF-13667 Additional OpenOffice mimetypes to be added to the mime-type maps - xls to pdf limit had been commented out - failover.transformer.PdfRenderer.PdfToImage and failover.transformer.PdfBox.PdfToImage should not have been been registered. Introduced an unregisteredBaseContentTransformer. In the case of these two transforms this would not have been a problem, as they were disable anyway due to EXPLICIT setting elsewhere. 36608: First part of ALF-14209 SOLR - does not support query for all stores - dynamic SOLR cores to track a store - NEW, DELETE, and change properties and reload 36635: ALF-13404 for documentlibrary-v2 APIs 36669: Fix issue with rendering multi-valued properties in JSON from server-side JS (from DaveD) 36676: Fix for ALF-14216 Solr Exception when you try to sort folders or files by size. 36692: Fix ALF-12966 - Comments doesn't work on iOS Safari. Anywhere TinyMCE is present does not work correctly e.g. comments, blogs, wiki, HTML content creation. 36693: ALF-14138: Prevent default Surf CMIS content WebScript clashing with Alfreco version (updated Surf libs r1081) 36714: ALF-14224: WorkflowTaskDefinition form-key fetching fixed for multi-instance UserTasks 36721: Fix for ALF-8374 - Simple view: incorrect file type icon for *.page and *.eps files 36726: Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 36724: Fix for ALF-14207 - cm:link not correctly handled in Share's doclist when users don't have permission 36728: Fix for ALF-14002: "No dashlets listed when customizing Site dashboard for the "Web Site Design Project" sample Share Site " 36732: Merged V3.4-BUG-FIX to V4.0-BUG-FIX 36637: ALF-6162 Thumbnail is not produced for PDFs encoded with JBIG2Decode << Reported problem still exists, but have made improvements see https://issues.alfresco.com/jira/browse/ALF-6162?focusedCommentId=162936&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-162936 >> - PDFRenderer now fails with an exception in more cases, rather than just silently continuing. Specific case was not handling JBig2 images. previously just resulted in a black box) - Handle the font family CIDFontType0 which includes HiddenHorzOCR 36640: ALF-13769: Merged BELARUS/DEV/V3.4-BUG-FIX-2012_05_04 to V3.4-BUG-FIX (3.4.10) 36440: ALF-11956: WCM accessibility Assignment of TinyMCE accessibility hotkeys only to activated RTE between multiple instances is added. Headings and some other related labels within the context of 'Create Web Content Wizard' were shortened and clarified. Fixed some issues related to hidden text for accessibility support in context of IE, which doesn't calculate styles and dimensions that are applied to elements before adding to DOM 36443: ALF-11956: WCM accessibility Added some changes missed in r36440 36645: ALF-13769: Merged DEV/V3.4-BUG-FIX-2012_01_10 to V3.4-BUG-FIX (3.4.10) 33381: ALF-10162: Web Form validation can be bypassed 1. New method was introduced to XFormsBean which allows it to validate the last inserted values. 2. CreateWebContentWizard finds XFormsBean in session and invokes isXformValid. If any validation errors exist it goes back and show the JSF error. 3. xform.js - contains code that removes JSF error as well as the XForms error. This is necessary because we need to clear the JSF error on the Javascript actions 4. container.jsp - includes a div wrapper with the id to be able unambiguously find the JSF error block. 36700: Merged DEV to V3.4-BUG-FIX (Reviewed by Erik) 36450: ALF-12261 : IE8 Specific: It's impossible add relationship type "Parent/Child" The type of the submit button should be set to 'button' in 'new-rmreference.get.html.ftl'. 36702: Merged DEV to V3.4-BUG-FIX (Reviewed by Erik) 36670: ALF-12825: Impossible choose the "Publication Date", the calendar isn't displayed The DatePicker component register a validation handler for the date entry field so that the submit button disables when an invalid date is entered. This handler register with the forms runtime instance. We should create this instance in FormUI_consructor, not is onReady method (form.js), because constructors always in order will be invoked. 36703: Fix for Mac Office 2011 Powerpoint save fails on CIFS. ALF-13615. 36733: Merged V4.0 to V4.0-BUG-FIX 36628: Added ${NOW} variable option for schema bootstrap scripts (see ALF-14174) 36632: Fix last part of ALF-14174: The patch adding timestamps to acl_change_set breaks SOLR tracking - Added ${NOW} to ACL change set timestamp when upgrading: commit_time_ms = ${NOW} 36647: ALF-14190: FSTR is not working - Due to someone updating dependencies without updating the build scripts! 36734: Merged V4.0 to V4.0-BUG-FIX (RECORD ONLY) 36605: ALF-13745: Merged V4.0-BUG-FIX (4.0.3) to V4.0 (4.0.2) 36604: ALF-13745: Merged V3.4-BUG-FIX (3.4.10) to V4.0-BUG-FIX (4.0.3) 36602: ALF-13667 Additional OpenOffice mimetypes to be added to the mime-type maps 36678: Merged BRANCHES/DEV/V4.0-BUG-FIX to BRANCHES/V4.0 36675: Fix for ALF-14216 Solr Exception when you try to sort folders or files by size. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@36737 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1990,6 +1990,7 @@ error_no_stack_trace=No stack trace available
|
||||
error_permissions=You do not have sufficient permissions to view the requested item.
|
||||
error_not_found=Sorry, the requested file does not exist at this location
|
||||
error_external_protocol_support=External links should be typed manually in the text box.
|
||||
error_validate_xforms=Please fill in all required fields with valid data
|
||||
|
||||
# Confirmations
|
||||
return_to_application=Return to application
|
||||
@@ -2155,7 +2156,7 @@ msg_err_invalid_expiration_date_on_submit=The expiration date(s) has already pas
|
||||
msg_err_pattern_invalid_expiration_date_on_submit=Please select an expiration date(s) that is later than the launch date for the listed documents: {0}
|
||||
|
||||
#
|
||||
# ALF-11956 WCM Accessibility. XForms
|
||||
# ALF-11956 WCM Accessibility. XForms and Create Web Content Wizard
|
||||
#
|
||||
|
||||
# Date/Time picker
|
||||
@@ -2182,10 +2183,10 @@ item_title=Item
|
||||
mandatory_parameter=Mandatory field
|
||||
state_expanded=Expanded
|
||||
state_not_expanded=Not Expanded
|
||||
select_path_menu=The current directory (press Enter, to select a different folder from the menu list)
|
||||
wizard_command_buttons_description=Wizard Command Buttons. Use these buttons to navigate steps, or to finish/cancel the wizard
|
||||
accessibility_validation_message=Some fields contain invalid data. Use the Tab and Shift + Tab keys to walk through the fields with invalid data. Use Alt + V keys in IE or Alt + Shift + V keys in FireFox to return to, the first field of a sequence of fields with incorrect data
|
||||
accessibility_validation_message_with_error_count=field(s) contain invalid data. Use the Tab and Shift + Tab keys to walk through the fields with invalid data. Use Alt + V keys in IE or Alt + Shift + V keys in FireFox to return to, the first field of a sequence of fields with incorrect data
|
||||
select_path_menu=Selected directory. Expandable list
|
||||
wizard_command_buttons_description=Wizard Command Buttons
|
||||
accessibility_validation_message=Some fields contain invalid data. Use the Tab and Shift + Tab keys to walk through the fields with invalid data. Use Alt + V keys in IE or Alt + Shift + V keys in FireFox to return to the first field of a sequence of fields with incorrect data
|
||||
accessibility_validation_message_with_error_count=field(s) contain invalid data. Use the Tab and Shift + Tab keys to walk through the fields with invalid data. Use Alt + V keys in IE or Alt + Shift + V keys in FireFox to return to the first field of a sequence of fields with incorrect data
|
||||
|
||||
# Team properties
|
||||
team_login_warning=The requested Alfresco Explorer page is unsupported. Access this page only at the direction of Alfresco Support.
|
||||
|
@@ -66,6 +66,7 @@ import org.alfresco.web.forms.FormsService;
|
||||
import org.alfresco.web.forms.RenderingEngineTemplate;
|
||||
import org.alfresco.web.forms.Rendition;
|
||||
import org.alfresco.util.XMLUtil;
|
||||
import org.alfresco.web.forms.xforms.XFormsBean;
|
||||
import org.alfresco.web.ui.common.Utils;
|
||||
import org.alfresco.web.ui.common.component.UIListItem;
|
||||
import org.alfresco.web.ui.wcm.component.UIUserSandboxes;
|
||||
@@ -86,6 +87,8 @@ public class CreateWebContentWizard extends CreateContentWizard
|
||||
|
||||
private static final Log logger = LogFactory.getLog(CreateWebContentWizard.class);
|
||||
|
||||
private static final String MSG_ERROR_XFORMVALIDATION = "error_validate_xforms";
|
||||
|
||||
transient private List<SelectItem> formChoices;
|
||||
protected String createdPath = null;
|
||||
protected List<Rendition> renditions = null;
|
||||
@@ -267,6 +270,22 @@ public class CreateWebContentWizard extends CreateContentWizard
|
||||
if (MimetypeMap.MIMETYPE_XML.equals(this.mimeType))
|
||||
{
|
||||
FacesContext context = FacesContext.getCurrentInstance();
|
||||
// ALF-10162 : invoke XForm validation during forced browser submit
|
||||
Map sessionMap = context.getExternalContext().getSessionMap();
|
||||
if (sessionMap.containsKey("XFormsBean"))
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("XFormsBean found in session, trying to validate the XForm form");
|
||||
|
||||
XFormsBean xFormsBean = (XFormsBean) context.getExternalContext().getSessionMap().get("XFormsBean");
|
||||
if (!xFormsBean.isXformValid())
|
||||
{
|
||||
Application.getWizardManager().getState().setCurrentStep(Application.getWizardManager().getCurrentStep() - 1);
|
||||
Utils.addErrorMessage(Application.getMessage(context, MSG_ERROR_XFORMVALIDATION));
|
||||
return super.next();
|
||||
}
|
||||
}
|
||||
|
||||
RetryingTransactionHelper txnHelper = Repository.getRetryingTransactionHelper(context);
|
||||
RetryingTransactionCallback<String> callback = new RetryingTransactionCallback<String>()
|
||||
{
|
||||
|
@@ -545,6 +545,49 @@ public class XFormsBean implements Serializable
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Introduced for ALF-10162 and ALF-10163
|
||||
* This method is used in JSF context to be able to validate last inserted values.
|
||||
* Note! This method clears event log. Do not use it for form validation during AJAX actions,
|
||||
* because this method doesn't return response.
|
||||
*
|
||||
* It is useful for Form validation, when Xform has been passed without AJAX "submit" action.
|
||||
* @see CreateWebContentWizard
|
||||
* @return
|
||||
*/
|
||||
public boolean isXformValid()
|
||||
{
|
||||
ChibaBean chibaBean = getXformsSession().getChibaBean();
|
||||
try
|
||||
{
|
||||
// throws XFormsException
|
||||
chibaBean.dispatch("submit", DOMEventNames.ACTIVATE);
|
||||
Node eventLogDoc = getEventLog();
|
||||
Node eventsNode = eventLogDoc.getFirstChild();
|
||||
if (eventsNode != null && "events".equals(eventsNode.getNodeName()))
|
||||
{
|
||||
NodeList childNodeList = eventsNode.getChildNodes();
|
||||
for(int i = 0; i < childNodeList.getLength(); i++)
|
||||
{
|
||||
Node childNode = childNodeList.item(i);
|
||||
if ("xforms-submit-error".equals(childNode.getNodeName()) &&
|
||||
childNode.getAttributes().getNamedItem("targetId") != null &&
|
||||
"submission-validate".equals(childNode.getAttributes().getNamedItem("targetId").getNodeValue()))
|
||||
{
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug("Found xforms-submit-error, it means that form wasn't validated, throwing error");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (XFormsException e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void swapRepeatItems(final RepeatItem from,
|
||||
final RepeatItem to)
|
||||
throws XFormsException
|
||||
|
@@ -307,3 +307,11 @@
|
||||
color: grey;
|
||||
}
|
||||
|
||||
.xformsAccessibilityInvisibleText
|
||||
{
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
color: transparent;
|
||||
overflow: hidden;
|
||||
filter: alpha(opacity=1);
|
||||
}
|
||||
|
@@ -73,19 +73,24 @@ if (Application.getWizardManager().getState() == null)
|
||||
<tr>
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/statuspanel_4.gif); width:4px;"></td>
|
||||
<td style="background-color: #dfe6ed;">
|
||||
|
||||
<%-- Status and Actions inner contents table --%>
|
||||
<%-- Generally this consists of an icon, textual summary and actions for the current object --%>
|
||||
<%-- Accessibility heading level 1 titles --%>
|
||||
<table cellspacing="4" cellpadding="0" style="width:100%;" role="heading" aria-level="1" aria-describedby="mainTitle mainSubText">
|
||||
<table cellspacing="4" cellpadding="0" style="width:100%;">
|
||||
<tr>
|
||||
<td style="width:32px;">
|
||||
<h:graphicImage id="wizard-logo" url="#{WizardManager.icon}" alt=""/>
|
||||
</td>
|
||||
<td>
|
||||
<div class="mainTitle"><label id="mainTitle"><h:outputText value="#{WizardManager.title}" /></label></div>
|
||||
<%-- Accessibility heading level 1 title --%>
|
||||
<div style="width: 1px; height: 1px; filter: alpha(opacity=1); color: transparent; overflow: hidden;">
|
||||
<span id="level1HeadingTitle" role="heading" aria-level="1" aria-labelledby="level1HeadingTitle">
|
||||
<h:outputText value="#{WizardManager.title}" />
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="mainTitle"><h:outputText value="#{WizardManager.title}" /></div>
|
||||
<div class="mainSubTitle"><h:outputText value="#{WizardManager.subTitle}" /></div>
|
||||
<div class="mainSubText"><label id="mainSubText"><h:outputText value="#{WizardManager.description}" /></label></div>
|
||||
<div class="mainSubText"><h:outputText value="#{WizardManager.description}" /></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -109,30 +114,23 @@ if (Application.getWizardManager().getState() == null)
|
||||
<tr>
|
||||
<td style="width:20%;" valign="top">
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "greyround", "#F5F5F5"); %>
|
||||
<div id="stepsHeading" role="heading" aria-labelledby="stepsHeading" aria-level="2">
|
||||
<h:outputText styleClass="mainSubTitle" value="#{msg.steps}"/><br/>
|
||||
<a:modeList itemSpacing="3" iconColumnWidth="2" selectedStyleClass="statusListHighlight"
|
||||
value="#{WizardManager.currentStepAsString}" disabled="true">
|
||||
<a:listItems value="#{WizardManager.stepItems}" />
|
||||
</a:modeList>
|
||||
</div>
|
||||
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "greyround"); %>
|
||||
</td>
|
||||
|
||||
<td style="width:100%;" valign="top">
|
||||
|
||||
<a:errors message="#{WizardManager.errorMessage}" styleClass="errorMessage" />
|
||||
|
||||
<div id="wizard-errors-wrapper">
|
||||
<a:errors id="wizard-errors" message="#{WizardManager.errorMessage}" styleClass="errorMessage" />
|
||||
</div>
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
|
||||
<%-- Accessibility heading level 2 titles. FireFox doesn't use labels from the table below --%>
|
||||
<div id="bodyHeading" role="heading" aria-level="2" style="width: 1px; height: 1px; filter: alpha(opacity=0.01); color: transparent; overflow: hidden;">
|
||||
<p>
|
||||
<div id="bodyHeading" role="heading" aria-level="2" style="width: 1px; height: 1px; filter: alpha(opacity=1); color: transparent; overflow: hidden;">
|
||||
<h:outputText value="#{WizardManager.stepTitle}" />
|
||||
</p>
|
||||
<p>
|
||||
<h:outputText value="#{WizardManager.stepDescription}" />
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<table cellpadding="2" cellspacing="2" style="border-width: 0px; width: 100%;">
|
||||
@@ -154,9 +152,7 @@ if (Application.getWizardManager().getState() == null)
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="step-instructions" role="heading" aria-level="2" aria-labelledby="step-instructions">
|
||||
<h:outputText value="#{WizardManager.stepInstructions}" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -167,10 +163,8 @@ if (Application.getWizardManager().getState() == null)
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "greyround", "#F5F5F5"); %>
|
||||
|
||||
<%-- Accessibility heading level 2 titles --%>
|
||||
<div id="buttonsTitle" role="heading" aria-level="2" style="width: 1px; height: 1px; filter: alpha(opacity=0.01); color: transparent; overflow: hidden;">
|
||||
<p>
|
||||
<div id="buttonsTitle" role="heading" aria-level="2" style="width: 1px; height: 1px; filter: alpha(opacity=1); color: transparent; overflow: hidden;">
|
||||
<h:outputText value="#{msg.wizard_command_buttons_description}" />
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<table cellpadding="1" cellspacing="1" border="0">
|
||||
|
@@ -47,6 +47,7 @@ alfresco.log = alfresco.constants.DEBUG ? log : Class.empty;
|
||||
// this script.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
alfresco.xforms.constants.XFORMS_ERROR_DIV_ID = "alfresco-xforms-error";
|
||||
alfresco.xforms.constants.JSF_ERROR_DIV_ID = "wizard-errors-wrapper";
|
||||
|
||||
alfresco.xforms.constants.EXPANDED_IMAGE = new Image();
|
||||
alfresco.xforms.constants.EXPANDED_IMAGE.src =
|
||||
@@ -924,22 +925,10 @@ alfresco.xforms.RichTextEditor = alfresco.xforms.Widget.extend({
|
||||
alfresco.xforms.RichTextEditor.clickMask.id = 'xformsRichTextEditorHoverLayer';
|
||||
alfresco.xforms.RichTextEditor.clickMask.style.display='none';
|
||||
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler = new Element("a");
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.src = "#";
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.accessKey = "e";
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.style.width = "1px";
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.style.height = "1px";
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.style.position = "absolute";
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.style.border.width = 0;
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.style.padding = 0;
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.style.margin = 0;
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.tabIndex = 0;
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.innerHTML = '<div style="height: 1px; width: 1px; filter: alpha(opacity=0.01); color: transparent; overflow: hidden;">' + this.getLabel() + '</div>';
|
||||
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.onfocus = function()
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler =
|
||||
{
|
||||
alfresco.xforms.RichTextEditor.clickMask.onclick();
|
||||
return;
|
||||
_focusHandlers: [],
|
||||
_activatedRTE: null
|
||||
};
|
||||
|
||||
document.body.appendChild(alfresco.xforms.RichTextEditor.clickMask);
|
||||
@@ -961,6 +950,21 @@ alfresco.xforms.RichTextEditor = alfresco.xforms.Widget.extend({
|
||||
}
|
||||
tinyMCE.get(this.widget.id).hide();
|
||||
this._focused = false;
|
||||
|
||||
this._changeTinyMceHotKey((this.widget.id + "QKey"), "");
|
||||
this._changeTinyMceHotKey((this.widget.id + "ZKey"), "");
|
||||
},
|
||||
|
||||
_changeTinyMceHotKey: function(id, key)
|
||||
{
|
||||
if (null != id)
|
||||
{
|
||||
var keyLink = document.getElementById(id);
|
||||
if (null != keyLink)
|
||||
{
|
||||
keyLink.accessKey = key;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_createTinyMCE:function()
|
||||
@@ -1014,11 +1018,18 @@ alfresco.xforms.RichTextEditor = alfresco.xforms.Widget.extend({
|
||||
|
||||
render: function(attach_point)
|
||||
{
|
||||
attach_point.appendChild(alfresco.xforms.RichTextEditor.maskFocusHandler);
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.style.top = this.domNode.style.top;
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.style.left = this.domNode.style.left;
|
||||
|
||||
this._focusLink = this._createFocusHandler();
|
||||
this._focusLink._index = alfresco.xforms.RichTextEditor.maskFocusHandler._focusHandlers.length;
|
||||
attach_point.appendChild(this._focusLink);
|
||||
attach_point.appendChild(this.domNode);
|
||||
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler._focusHandlers.push(this._focusLink);
|
||||
if (!alfresco.xforms.RichTextEditor.maskFocusHandler._applied)
|
||||
{
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler._applied = true;
|
||||
this._focusLink.accessKey = "e";
|
||||
}
|
||||
|
||||
this.domNode.addClass("xformsTextArea");
|
||||
if (this._params.height)
|
||||
{
|
||||
@@ -1087,6 +1098,32 @@ alfresco.xforms.RichTextEditor = alfresco.xforms.Widget.extend({
|
||||
}
|
||||
},
|
||||
|
||||
_createFocusHandler: function()
|
||||
{
|
||||
var result = new Element("a");
|
||||
result.src = "#";
|
||||
result.style.width = "1px";
|
||||
result.style.height = "1px";
|
||||
result.style.border.width = 0;
|
||||
result.style.padding = 0;
|
||||
result.style.margin = 0;
|
||||
result.tabIndex = 0;
|
||||
result.innerHTML = '<div class="xformsAccessibilityInvisibleText">' + this.getLabel() + '</div>';
|
||||
|
||||
var t = this;
|
||||
result.onfocus = function()
|
||||
{
|
||||
alfresco.xforms.RichTextEditor.currentInstance = t;
|
||||
alfresco.xforms.RichTextEditor.clickMask.onclick = t._hoverLayer_clickHandler.bindAsEventListener(t);
|
||||
alfresco.xforms.RichTextEditor.clickMask.onmouseout = t._hoverLayer_mouseoutHandler.bindAsEventListener(t);
|
||||
|
||||
alfresco.xforms.RichTextEditor.clickMask.onclick();
|
||||
return;
|
||||
}
|
||||
|
||||
return result;
|
||||
},
|
||||
|
||||
setValue: function(value, forceCommit)
|
||||
{
|
||||
if (value != this._oldValue || forceCommit)
|
||||
@@ -1256,15 +1293,36 @@ alfresco.xforms.RichTextEditor = alfresco.xforms.Widget.extend({
|
||||
{
|
||||
alfresco.xforms.RichTextEditor.clickMask.style.display='none'
|
||||
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.tabIndex = -1;
|
||||
alfresco.xforms.RichTextEditor.maskFocusHandler.style.display = "none";
|
||||
|
||||
document.body.appendChild(alfresco.xforms.RichTextEditor.clickMask);
|
||||
if (alfresco.xforms.RichTextEditor.currentInstance && document.getElementById(alfresco.xforms.RichTextEditor.currentInstance.domNode.id)
|
||||
&& alfresco.xforms.RichTextEditor.currentInstance != this)
|
||||
{
|
||||
alfresco.xforms.RichTextEditor.currentInstance._removeTinyMCE();
|
||||
}
|
||||
|
||||
var handler = alfresco.xforms.RichTextEditor.maskFocusHandler;
|
||||
|
||||
this._focusLink.accessKey = null;
|
||||
this._focusLink.tabIndex = -1;
|
||||
|
||||
if (null != handler._activatedRTE)
|
||||
{
|
||||
if (null != tinyMCE.get(handler._activatedRTE.widget.id))
|
||||
{
|
||||
handler._activatedRTE._removeTinyMCE();
|
||||
}
|
||||
|
||||
handler._activatedRTE._focusLink.tabIndex = 0;
|
||||
}
|
||||
|
||||
handler._activatedRTE = this;
|
||||
|
||||
var index = (this._focusLink._index + 1) % handler._focusHandlers.length;
|
||||
handler._focusHandlers[index].accessKey = "e";
|
||||
|
||||
this._changeTinyMceHotKey((this.widget.id + "QKey"), "q");
|
||||
this._changeTinyMceHotKey((this.widget.id + "ZKey"), "z");
|
||||
|
||||
if (this._created===false)
|
||||
{
|
||||
this._createTinyMCE();
|
||||
@@ -1276,6 +1334,12 @@ alfresco.xforms.RichTextEditor = alfresco.xforms.Widget.extend({
|
||||
alfresco.xforms.RichTextEditor.currentInstance = this;
|
||||
alfresco.xforms.RichTextEditor.clickMask.style.display='none'
|
||||
document.body.appendChild(alfresco.xforms.RichTextEditor.clickMask);
|
||||
|
||||
var editor = tinyMCE.get(this.widget.id);
|
||||
if (null != editor)
|
||||
{
|
||||
editor.focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -5155,7 +5219,12 @@ function _hide_errors()
|
||||
errorDiv.empty();
|
||||
errorDiv.style.display = "none";
|
||||
}
|
||||
|
||||
var jsfErrorDiv = $(alfresco.xforms.constants.JSF_ERROR_DIV_ID);
|
||||
if (jsfErrorDiv)
|
||||
{
|
||||
jsfErrorDiv.empty();
|
||||
jsfErrorDiv.style.display = "none";
|
||||
}
|
||||
var errorLink = $("errorLink-with-key-v");
|
||||
if (null != errorLink)
|
||||
{
|
||||
@@ -5209,7 +5278,7 @@ function _show_error(msg, errorCount)
|
||||
|
||||
errorMessage.style.width = "1px";
|
||||
errorMessage.style.height = "1px";
|
||||
errorMessage.style.filter = "alpha(opacity=0.01)";
|
||||
errorMessage.style.filter = "alpha(opacity=1)";
|
||||
errorMessage.style.color = "transparent";
|
||||
errorMessage.style.overflow = "hidden";
|
||||
}
|
||||
@@ -5237,28 +5306,28 @@ function _getDateTimePickerLabels(parent)
|
||||
{
|
||||
"tagName": "div",
|
||||
"id": "increase-week-label",
|
||||
"style": "width: 1px; height: 1px; filter: alpha(opacity=0.01); color: transparent; overflow: hidden",
|
||||
"cssClass": "xformsAccessibilityInvisibleText",
|
||||
"parent": parent,
|
||||
"text": alfresco.resources["increase_week_label"]
|
||||
},
|
||||
{
|
||||
"tagName": "div",
|
||||
"id": "increase-month-label",
|
||||
"style": "width: 1px; height: 1px; filter: alpha(opacity=0.01); color: transparent; overflow: hidden",
|
||||
"cssClass": "xformsAccessibilityInvisibleText",
|
||||
"parent": parent,
|
||||
"text": alfresco.resources["increase_month_label"]
|
||||
},
|
||||
{
|
||||
"tagName": "div",
|
||||
"id": "decrease-week-label",
|
||||
"style": "width: 1px; height: 1px; filter: alpha(opacity=0.01); color: transparent; overflow: hidden",
|
||||
"cssClass": "xformsAccessibilityInvisibleText",
|
||||
"parent": parent,
|
||||
"text": alfresco.resources["decrease_week_label"]
|
||||
},
|
||||
{
|
||||
"tagName": "div",
|
||||
"id": "decrease-month-label",
|
||||
"style": "width: 1px; height: 1px; filter: alpha(opacity=0.01); color: transparent; overflow: hidden",
|
||||
"cssClass": "xformsAccessibilityInvisibleText",
|
||||
"parent": parent,
|
||||
"text": alfresco.resources["decrease_month_label"]
|
||||
}
|
||||
@@ -5279,8 +5348,7 @@ function _createExternalLabels(labelIds)
|
||||
{
|
||||
var label = new Element(el.tagName,
|
||||
{
|
||||
"id": el.id,
|
||||
"style": el.style
|
||||
"id": el.id
|
||||
});
|
||||
|
||||
if (null != el.parent)
|
||||
@@ -5293,6 +5361,11 @@ function _createExternalLabels(labelIds)
|
||||
}
|
||||
|
||||
label.appendChild(document.createTextNode(el.text));
|
||||
|
||||
if (null != el.cssClass)
|
||||
{
|
||||
label.addClass(el.cssClass);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5561,7 +5634,7 @@ alfresco.constants.TINY_MCE_DEFAULT_SETTINGS =
|
||||
height: -1,
|
||||
auto_resize: false,
|
||||
force_p_newlines: false,
|
||||
forced_root_block: false,
|
||||
// forced_root_block: false,
|
||||
encoding: "UTF-8",
|
||||
entity_encoding: "raw",
|
||||
add_unload_trigger: false,
|
||||
|
File diff suppressed because one or more lines are too long
@@ -658,7 +658,8 @@
|
||||
if (!ed.getParam('accessibility_focus'))
|
||||
h.push(DOM.createHTML('a', {href : '#', onfocus : 'tinyMCE.get(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));
|
||||
|
||||
h.push(DOM.createHTML('a', {href : '#', accesskey : 'q', title : ed.getLang("advanced.toolbar_focus")}, '<!-- IE -->'));
|
||||
var accessibilityLink = DOM.createHTML('a', {id: ed.id + "QKey", href : '#', accesskey : 'q', title : ed.getLang("advanced.toolbar_focus")}, '<!-- IE -->');
|
||||
h.push(accessibilityLink);
|
||||
|
||||
// Create toolbar and add the controls
|
||||
for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {
|
||||
@@ -678,7 +679,8 @@
|
||||
o.deltaHeight -= s.theme_advanced_row_height;
|
||||
}
|
||||
|
||||
h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));
|
||||
accessibilityLink = DOM.createHTML('a', {id: ed.id + "ZKey", href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->');
|
||||
h.push(accessibilityLink);
|
||||
DOM.setHTML(n, h.join(''));
|
||||
},
|
||||
|
||||
|
Reference in New Issue
Block a user