Completed
Last Updated: 15 Feb 2016 15:19 by ADMIN
ADMIN
Created by: Viktor Tachev
Comments: 0
Category: UI for ASP.NET AJAX
Type: Feature Request
0

			
Completed
Last Updated: 03 May 2016 14:08 by ADMIN
ADMIN
Created by: Nikolay
Comments: 0
Category: UI for ASP.NET AJAX
Type: Bug Report
1
Steps to reproduce:

Use the following markup and click set html button:

<telerik:RadEditor ID="RadEditor1" runat="server" NewLineMode="Div">
<Content>
<div><span style="font-family: 'Courier New';">test</span></div>
<div><span style="font-family: 'Courier New';">&nbsp;</span></div>
<div><span style="font-family: 'Courier New';">test</span></div>
</Content>
</telerik:RadEditor>

<button type="button" onclick="getSetHtml();return false;">set html</button>

<script>
function getSetHtml() {
var editor = $find("RadEditor1");
var html = editor.get_html(true);
editor.set_html(html);
}
</script>

Actual: The white space character in the empty line is removed and the empty line is not rendered

Expected: The space is not removed and the new line is rendered

Workaround:

<script>
	(function ($E) {
		var utils = $E.Utils;
		Telerik.Web.UI.Editor.TrackerBase.prototype.removeZeroWidthNodes = 
			function () {
				var that = this,
					nodes = that.nodes,
					reZeroWidthChar = new RegExp("^[" + that._zeroWidthCharacter + "]+$");

				var nodeValuePairs = that.nodeValuePairs = [];
				for (var i = 0; i < nodes.length; i++) {
					var node = nodes[i];
					if (utils.isTextNode(node) && !that._isNodeRemoved(node)) {
						var nodeValue = node.nodeValue;
						if (reZeroWidthChar.test(nodeValue)) {
							nodeValuePairs.push({ node: node, value: node.nodeValue });
							var parentBlockElement = utils.getBlockParent(node);
							var isInEmptyBlockElement = parentBlockElement && utils.isNodeEmptyRecursive(parentBlockElement);
							node.nodeValue = isInEmptyBlockElement ? "\u00A0" : "";
						}
						else {
							that.removeFirstZeroWidthChar(node);
						}
					}
				}
			}
	})(Telerik.Web.UI.Editor);
</script>
Completed
Last Updated: 17 Feb 2016 11:13 by ADMIN
Completed
Last Updated: 11 Feb 2016 16:38 by ADMIN
ADMIN
Created by: Kostadin
Comments: 0
Category: UI for ASP.NET AJAX
Type: Bug Report
0

			
Completed
Last Updated: 01 Jun 2016 14:18 by abigail
Created by: abigail
Comments: 3
Category: UI for ASP.NET AJAX
Type: Feature Request
0
Hi! could you consider implemnet a custom radio button that for the selected shows and image instead of the default circle for the radio button and that include a access key to select the option. That can bind a datasource an configure columns for show the radio options in the image for example can bind a databound for the answers and configure that shows by 2 columns and the image for the radio selected and maybe you can configure if the image is in the left, right, top or bottom
Completed
Last Updated: 30 Jun 2022 04:09 by ADMIN
ADMIN
Created by: Nikolay
Comments: 3
Category: UI for ASP.NET AJAX
Type: Bug Report
3
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>
Completed
Last Updated: 18 Feb 2016 17:49 by ADMIN
Completed
Last Updated: 12 Jul 2023 15:23 by ADMIN
ADMIN
Created by: Pavlina
Comments: 6
Category: UI for ASP.NET AJAX
Type: Bug Report
3

			
Completed
Last Updated: 23 Feb 2016 11:18 by ADMIN
Completed
Last Updated: 15 Feb 2016 14:30 by ADMIN
Declined
Last Updated: 01 Jun 2016 11:57 by ADMIN
Created by: abigail
Comments: 2
Category: UI for ASP.NET AJAX
Type: Feature Request
2
Hi! would you consider add a new control for time line for add events in a timeline something like this
https://timeline.codeplex.com/
Completed
Last Updated: 04 Feb 2016 12:34 by Luis
Completed
Last Updated: 22 Jan 2016 11:48 by ADMIN
Completed
Last Updated: 18 Mar 2016 09:11 by ADMIN
Completed
Last Updated: 16 Feb 2016 10:00 by Imported User
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>
Completed
Last Updated: 03 Feb 2016 14:26 by Imported User
ADMIN
Created by: Dimitar
Comments: 1
Category: UI for ASP.NET AJAX
Type: Bug Report
1

			
Completed
Last Updated: 06 Nov 2019 13:36 by ADMIN
Created by: Jon
Comments: 1
Category: UI for ASP.NET AJAX
Type: Feature Request
1
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.
Completed
Last Updated: 07 Jun 2016 05:30 by croach01
ADMIN
Created by: Ianko
Comments: 1
Category: UI for ASP.NET AJAX
Type: Feature Request
0
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>