Deleting of a table by delete or backspace key does not work when the selection contains only the table. Steps to reproduce: 1. Set the following content <p>test p1</p> <table> <tbody> <tr> <td>test</td> <td>test</td> </tr> </tbody> </table> <p>test p2</p> 2. Select the table only and press delete or backspace key Actual: Only the content has been deleted. Expected: The table and its content to be deleted. Workaround: <telerik:RadEditor ID="RadEditor1" runat="server"> </telerik:RadEditor> <script type="text/javascript"> (function () { var $T = Telerik.Web.UI; var utils = $T.Editor.Utils; var isTableSelected = function (selected) { if (utils.isTag(selected, "table")) { return true; } var table = utils.getElementParentByTag(selected, "TABLE"); return table && !!utils.getElementParentByCondition(selected, function (current) { return utils.isAncestorOrSelf(table, current) && utils.isSingleChild(current); }); }; // Fix for delete table by delete or backspace key var formatFragments = $T.Editor.DeleteSelectionCommand.prototype.formatFragments; $T.Editor.DeleteSelectionCommand.prototype.formatFragments = function (fragments) { var cmd = this; var selected = cmd.get_editor().getSelectedElement(); if (isTableSelected(selected) && fragments.length) { var table = utils.isTag(selected, "table") ? selected : utils.getElementParentByTag(selected, "TABLE"); var $table = $telerik.$(table); var data = $table.find("th,td"); var firstCell = data.first().get(0); var lastCell = data.last().get(0); var firstFragment = fragments[0]; var lastFragment = fragments[fragments.length - 1]; var firstSelected = firstFragment.nodes[0]; var lastSelected = lastFragment.nodes[lastFragment.nodes.length - 1]; if ((firstSelected == firstCell || firstSelected == firstCell.firstChild || cmd.isMarker(firstCell.firstChild)) && (lastSelected == lastCell || lastSelected == lastCell.lastChild)) { $table.find("." + cmd.getMarkersCssClass()).insertBefore(table); $telerik.$(table).remove(); return; } } formatFragments.call(cmd, fragments); }; // Fix for select and delete a table by the DomInspector in Chrome var Modules = $T.Editor.Modules; if (Modules && Modules.RadEditorDomInspector) { var removeSelectedElement = Modules.RadEditorDomInspector.prototype.removeSelectedElement; Modules.RadEditorDomInspector.prototype.removeSelectedElement = function (element) { if (isTableSelected(element)) { element = utils.isTag(element, "table") ? element : utils.getElementParentByTag(element, "TABLE"); } removeSelectedElement.call(this, element); }; } })(); </script>
Hi! would you consider add a new control for time line for add events in a timeline something like this https://timeline.codeplex.com/
The CommandArgument value of RadButton is not available in the ClientClicking eventargs of RadButton. The get_commandName() method of the event arguments always returns null. The issue is introduced in Q1 2016 release. Steps to reproduce: Run the following code and click the button. <script type="text/javascript"> function btnEdit_Clicking(sender, eventArgs) { alert(eventArgs.get_commandArgument()); } </script> <telerik:RadButton ID="RadButton2" AutoPostBack="false" runat="server" Text="Click Me" OnClientClicking="btnEdit_Clicking" CommandArgument="Name"> </telerik:RadButton>
It would be nice to have a CardView type panel control. This could simply be a dezoned raddock control that is optionally missing the header. I am using some custom CSS for this now so that when the mouse moves over the div the shadow deepens to indicate selection. It would be nice to adjust the elevation as well. You can kind of get this now but taking a radwindow or a raddock but a dedicated control would be nice.
IE browser handles backspaces at some extent, but causes undesired HTML formatting when the entire UL|OL is wrapped in another DOM element. RadEditor can reuse the DeleteCommand implementation in order to bypass browser's behavior and give more reliable results. The following override can show you how you can handle this on your own and correct the browser result (Note that the script should be loaded after the RadEditor scripts in order to work): <telerik:RadEditor runat="server" ID="RadEditor1"> <Content> <div> <ul> <li>Purple</li> <li></li> </ul> </div> </Content> </telerik:RadEditor> <script> var originalApplyFix = Telerik.Web.UI.Editor.DeleteFix.prototype.applyFix; Telerik.Web.UI.Editor.DeleteFix.prototype.applyFix = function (e) { var that = this; var $E = Telerik.Web.UI.Editor; var utils = $E.Utils; var range = that._getRange(); originalApplyFix.call(that, e); if (Telerik.Web.Browser.ie) { var startContainer = range.startContainer; if (utils.isTag(startContainer, "li") && utils.isEmptyDom(startContainer) && !startContainer.nextElementSibling) { var outdent = new $E.OutdentCommand(that.editor); outdent.onExecute(); $telerik.preventDefault(e); } } }; </script>
When the user selects all the content and changes the font family through the FontName command, the chosen value does not remain as the selected one. The issue is most prominent in Firefox, but could be reproduced in Chrome with a subsequent select all.
AllowSpecialTags should retain special tags like script and iframe. However, enabling it escapes the tags, but they are never restored. Workaround: SharePoint 2013 allows iframe tags to be saved in the content, so the AllowSpecialTags can be safely removed. <telerik:RadHtmlField id="content" FieldName="PublishingPageContent" runat="server" AllowScripts="true"/>