Markup to reproduce the issue:
<telerik:RadEditor ID="RadEditor1" runat="server" EditModes="Design" RenderMode="Lightweight">
<Tools>
<telerik:EditorToolGroup>
<telerik:EditorTool Name="Bold" />
<telerik:EditorTool Name="Italic" />
<telerik:EditorTool Name="Underline" />
</telerik:EditorToolGroup>
</Tools>
<Content>
<p>test</p>
<p>test</p>
</Content>
</telerik:RadEditor>
Resolution:
<script type="text/javascript">
(function ($UI) {
$UI.SizerLightweight.prototype._calcUiHeight = function () {
var that = this,
view = that._view,
editor = that.editor,
calculator = new $UI.DimensionsCalculator(editor),
toolBarContainer = view.toolBarContainer(),
toolBarHeight = that._getComponentHeight(toolBarContainer),
paddings = calculator.getComputedSizes(editor.get_element(), ["padding-top", "padding-bottom"]),
margins = calculator.getComputedSizes(toolBarContainer, ["margin-bottom"]),
borders = calculator.getComputedSizes(view.contentAreaContainer(), ["border-top-width", "border-bottom-width"]),
modesHeight = that._getComponentHeight(view.modesRowContainer()),
modulesHeight = that._getComponentHeight(view.modulesContainer());
return toolBarHeight + modesHeight + modulesHeight + margins + borders + paddings;
}
})(Telerik.Web.UI.Editor.UI);
</script>
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';"> </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>
This causes also to cancel submit and produce an incorrect behavior. You can use RadButton as a toggle button with type Checkbox as alternative solution: <telerik:RadButton runat="server" ButtonType="ToggleButton" ToggleType="CheckBox" RenderMode="Lightweight" AutoPostBack="false"></telerik:RadButton>
RadToolTipManager cannot find custom embedded skin, when a custom skin DLL is created with the Skins assembly builder (http://skinsassemblybuilder.telerik.com/).
Steps to reproduce:
1. Create a custom skin and wownload ZIP from Visual Style Builder (http://skinsassemblybuilder.telerik.com/)
2. Upload ZIP to Skins Assembly builder (http://skinsassemblybuilder.telerik.com/)
3. Create new project with Telerik template, turn off all options (like additional skins).
4. Add downloaded DLL as project reference.
5. Add to web.config: <add key="Telerik.Skin" value="My_Skin" />
<add key="Telerik.EnableEmbeddedSkins" value="true" />
<add key="Telerik.EnableEmbeddedBaseStylesheet" value="true" />
<add key="Telerik.Web.SkinsAssembly" value="My_Skin"/>
6. In Default.aspx, add
<telerik:RadToolTipManager runat="server"></telerik:RadToolTipManager>
Result: an Internal Server Error is thrown:
Telerik.Web.UI.RadToolTipManager with ID='ctl03' was unable to find an embedded skin with the name 'My_Skin'. Please, make sure that the skin name is spelled correctly and that you have added a reference to the Telerik.Web.UI.Skins.dll assembly in your project. If you want to use a custom skin, set EnableEmbeddedSkins=false.
This behavior stops the user to be able o insert these elements without being tracked
When the Zip Skin archive is modified and uploaded to the SkinsAssemblyBuilder, the page throws a server error.