A workaround is to add the settings in the markup, for example: <telerik:RadPersistenceManager runat="server" ID="RadPersistenceManager1"> <PersistenceSettings> <telerik:PersistenceSetting ControlID="RadTileList1" /> </PersistenceSettings> </telerik:RadPersistenceManager> <telerik:RadTileList runat="server" ID="RadTileList1"> </telerik:RadTileList>
When a dropdown element is decorated, dragging of items causes incorrect selection. The problem is due to browser behavior of the click event. When performing a dragging like action on plain list items the event target is the UL element instead the LI. The following resolution will work only for dropdowns without multiple selection: <telerik:RadFormDecorator ID="FormDecorator1" runat="server" DecoratedControls="All" DecorationZoneID="decorationZone" Skin="Silk"></telerik:RadFormDecorator> <div id="decorationZone"> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="false" Width="135px" TabIndex="3"> <asp:ListItem Text="Comedy" Value="1"></asp:ListItem> <asp:ListItem Text="Drama" Value="2"></asp:ListItem> <asp:ListItem Text="Romance" Value="3"></asp:ListItem> <asp:ListItem Text="Religious" Value="4"></asp:ListItem> <asp:ListItem Text="Fantasy" Value="5"></asp:ListItem> <asp:ListItem Text="Mystery" Value="6"></asp:ListItem> <asp:ListItem Text="Science fiction" Value="7"></asp:ListItem> </asp:DropDownList> </div> <script type="text/javascript"> Telerik.Web.UI.RadFormDecorator.prototype.decorateSelects = function (rootElement) { var selects = rootElement.getElementsByTagName("select"); if (selects.length == 0 && rootElement.tagName && rootElement.tagName.toLowerCase() == "select") selects = [rootElement]; for (var i = 0; i < selects.length; i++) { this.decorateSelect(selects[i]); } if (selects.length > 0) { if (!this._selectBodyClickDelegate) { this._selectBodyClickDelegate = Function.createDelegate(this, this._selectBodyClickHandler); if ($telerik.isTouchDevice) { this._ensureThisDelegate("_selectScrollingDelegate", this._selectScrollingHandler); $telerik.addHandler(document, "touchmove", this._selectScrollingDelegate); } $telerik.addHandler(document, ($telerik.isTouchDevice ? "touchend" : "mousedown"), this._selectBodyClickDelegate); } } }; </script>
Stylebuilder seems to be down. I get a server error when trying to create a new skin or edit an existing one?
When the Editor is set with Skin=Window7, fieldsets has a non designed margin top value. The New Area bottom also drop to a new line, where it should be next to the radio buttons. Possible solutions is setting a CSS file to the DialogsCssFile property with CSS rules that resolve the issue: <telerik:RadEditor ID="RadEditor1" runat="server" Skin="Windows7" DialogsCssFile="~/Styles/Styles.css"> </telerik:RadEditor> Styles.css html.redImageMapDialog.RadForm_Windows7 #dialogControl fieldset { margin-top:0; } button#ImageMap_NewArea { width:110px !important; }
The best approach is to handle the OnClientTileClicking event for the TileList and determine whether it should be cancelled: http://www.telerik.com/help/aspnet-ajax/tilelist-client-side-events-onclienttileclicking.html. A possible way to change the behavior is to pass the _cancel field value from the Clicking event of the Tile to the TileClicking event of the TileList with the following override. var $T = Telerik.Web.UI; $T.RadTileList.prototype._onTileClicking = function (tile, args) { var eventArgs = new $T.RadTileListCancelEventArgs(tile, args.get_value()); eventArgs.set_cancel(args.get_cancel()); //the change - pass the _cancel argument to the TileList handler too this.raiseEvent("tileClicking", eventArgs); args.set_cancel(tile._isDragged || eventArgs.get_cancel()); args.set_value(eventArgs.get_value()); tile._isDragged = false; }
When user adds paragraph with formatting (e.g., Underline), this style is transferred to new lines automatically. The issue is when these paragraphs are empty. They contain an or <br> which is styled too, although this empty paragraphs should not be formatted until some text is inserted.
When adding nested list elements in the content, the user is able to go to parent element, press enter and add a sibling element. This element, as expected has a br tag that allows user to type text, but deleting this tag causes the list item to be not editable and the user is forced to go to HTML mode to modify the HTML code manually.
This issue causes an additional ghost character to appear in the text without any incorrect user interaction. For the time being you can incorporate the JavaScript code from the following example: <telerik:RadEditor runat="server" ID="RadEditor1" EnableTrackChanges="true"> <Tools> <telerik:EditorToolGroup> <telerik:EditorTool name="AcceptTrackChange" text="Accept Track Change" /> <telerik:EditorTool name="RejectTrackChange" text="Reject Track Change" /> <telerik:EditorTool name="AcceptAllTrackChanges" text="Accept All Track Changes" /> <telerik:EditorTool name="RejectAllTrackChanges" text="Reject All Track Changes" /> <telerik:EditorTool name="EnableTrackChangesOverride" text="Enable Track Changes Override" /> </telerik:EditorToolGroup> </Tools> </telerik:RadEditor> <script type="text/javascript"> (function () { var $E = Telerik.Web.UI.Editor; var utils = $E.Utils; var isTypingKey = utils.isTypingKey; utils.isTypingKey = function (e) { return e.keyCode != 13 && isTypingKey(e); } var extractFrom = $E.InsertParagraphCommand.prototype.extractFrom; $E.InsertParagraphCommand.prototype.extractFrom = function (cursor, container) { var newElement = extractFrom.call(this, cursor, container); if (!this.get_editor().get_enableTrackChanges() || utils.isTextNode(cursor.nextSibling)) return newElement; $telerik.$(newElement).find("*").each(function (index, item) { if ($E.TrackChangesUtils.isTrackChangeElement(item)) { if (utils.isTag(item, "ins") || utils.isTag(item, "del")) { utils.removeNode(item); return; } $E.TrackChangesUtils.removeNodeTracking(item); } }); return newElement; } }()); </script>
In Chrome and Safari, adding a space with disabled Track Changes right after a tracked text, the space appears inside the <ins> tag instead of outside.
The NewLine command behave inconsistently across browsers and causes different incorrect content generation in IE, Chrome and Safari. - In IE - New lines are added, but the cursor stays in the initial/first line. This issue also causes an performance problems when typing and pressing Enter with regular speed. - In Chrome - Pressing Enter causes mixed content of tracked and not-tracked text to appear without toggling the state of the Track Changes. Also, adds an empty INS tag in from of the new line. - In Safari - Adds an empty INS tag in from of the new line. For the time being you can incorporate the JavaScript code from the following example: <telerik:RadEditor runat="server" ID="RadEditor1" EnableTrackChanges="true"> <Tools> <telerik:EditorToolGroup> <telerik:EditorTool name="AcceptTrackChange" text="Accept Track Change" /> <telerik:EditorTool name="RejectTrackChange" text="Reject Track Change" /> <telerik:EditorTool name="AcceptAllTrackChanges" text="Accept All Track Changes" /> <telerik:EditorTool name="RejectAllTrackChanges" text="Reject All Track Changes" /> <telerik:EditorTool name="EnableTrackChangesOverride" text="Enable Track Changes Override" /> </telerik:EditorToolGroup> </Tools> </telerik:RadEditor> <script type="text/javascript"> (function () { var $E = Telerik.Web.UI.Editor; var utils = $E.Utils; var isTypingKey = utils.isTypingKey; utils.isTypingKey = function (e) { return e.keyCode != 13 && isTypingKey(e); } var extractFrom = $E.InsertParagraphCommand.prototype.extractFrom; $E.InsertParagraphCommand.prototype.extractFrom = function (cursor, container) { var newElement = extractFrom.call(this, cursor, container); if (!this.get_editor().get_enableTrackChanges() || utils.isTextNode(cursor.nextSibling)) return newElement; $telerik.$(newElement).find("*").each(function (index, item) { if ($E.TrackChangesUtils.isTrackChangeElement(item)) { if (utils.isTag(item, "ins") || utils.isTag(item, "del")) { utils.removeNode(item); return; } $E.TrackChangesUtils.removeNodeTracking(item); } }); return newElement; } }()); </script>
RadScheduler's "today" link is positioned below the Prev/Next arrows in Safari on iOS and OS X. It is positioned properly after changing the views. As a quick fix, you can set CSS: <style type="text/css"> html .RadScheduler .rsHeader > p { width: 80px; } </style> Width value will vary depending on the skin used.
Hello, jquery has two deployment versions -- development, which is ~280k, and production, which is minified down to ~90k. Deploying the non-minified version to production is a waste of almost 200k of unnecessary data. There should be a configuration setting (either in RadScriptManager or in web.config; web.config preferred) for specifying that the production (minified) version is desired. thanks, matt
Steps to reproduce: 1. Set a singe paragraph in content area - <p>some paragraph</p> 2. Select any part of it and apply FontName or RealFontSize command. Workaround: <telerik:RadEditor ID="RadEditor1" runat="server"> <Content> <p>some paragraph</p> </Content> </telerik:RadEditor> <script type="text/javascript"> (function () { var getValue = Telerik.Web.UI.Editor.InlineCommandWithValue.prototype.getValue; Telerik.Web.UI.Editor.InlineCommandWithValue.prototype.getValue = function (wnd, range) { try { if (!range || !this.settings.enableToolStateValue) return; if (!range.isCollapsed()) { range.normalizeEdges(); } var startNode = range.startContainer; if (Telerik.Web.UI.Editor.Utils.isTextNode(startNode)) { startNode = startNode.parentNode; } else if (startNode.childNodes[range.startOffset] && !Telerik.Web.UI.Editor.Utils.isTextNode(startNode.childNodes[range.startOffset])) { startNode = startNode.childNodes[range.startOffset]; } return $telerik.getComputedStyle(startNode, this.settings.cssName) || $telerik.getComputedStyle(startNode, this.getAltCssName(this.settings.cssName)); } catch (e) { getValue.call(this, wnd, range); } } })(); </script>
This results to a breaking behavior of the Bold, Italic etc. (Inline Commands) when the last word in a line is selected and user tries to format it.
Under IE11 the pasting from Word is handled natively by the browser. When pasting content with list element, the list items are pasted with paragraphs inside. This behavior is W3C compliant, but when it comes to editable content, such scenario causes inappropriate behavior of the tools interacting with the block elements. E.g., a paragraph in a list item cannot be considered as list item, and the tools will not be able to modify the list item. On other side, if a paragraph is considered as list item, any paragraph formatting commands will affect the paragraph, and not the list. A suitable behavior would be to handle the paragraphs and transform them to span or br elements to keep correct formatting, and the list, indent, outdent and other block commands to interact correctly with the Editor content. The following paste event handler transforms the paragraphs to span elements: <telerik:RadEditor runat="server" ID="RadEditor1" OnClientPasteHtml="OnClientPasteHtml"></telerik:RadEditor> <script type="text/javascript"> function OnClientPasteHtml(editor, args) { var cleanContent = args.get_value(), regexp = /(<li.+)(<p)(.+)(<\/p)(.+)/gi, replaceString = "$1<span$3</span$5"; while (cleanContent.match(regexp)) { cleanContent = cleanContent.replace(regexp, replaceString) } args.set_value(cleanContent); } </script>