Describe the bug
Kendo ComboBox and DropDownList controls are conflicting with kendo PanelBar.
If ComboBox or DropDownList control is included inside a kendo PanelBar, the the dropdown elements of both controls are detached from the combobox or dropdownlist inputs respectively.
To reproduce
In order to reproduce the behaviour:
Expected behavior
ComboBox or DropDownList controls should work correctly and the dropdown elements of controls should not be detached.
When a Kendo widget is initialized in a navigatable Drawer and the user clicks in the intiialized component an error Uncaught TypeError: Cannot read properties of undefined (reading 'attr')
is thrown
An error: Uncaught TypeError: Cannot read properties of undefined (reading 'attr') is thrown
No error should be trhown even if the 'drawer-item' attribute is missing
Apparently the dark theme we are using adds the glass.png to tabs. Great. Looks good. However it also seems to be applying to the area inside the tab as well.
It's a little hard to see on most of our popups with tabs but it's visible through gaps in the controls. I have removed the top layer in this image so you can see it. Underneath is the html for one of the pages affected so you can see we aren't setting them up incorrectly. This is the kendo black theme.
@using DispatchCrude.Models;
@model OriginEditModel
@* NOTE: This script section must be at the top of the page for the pop-up to function properly. It cannot be moved to the bottom of the page. *@
<div>
@Html.HiddenFor(x => x.ID)
<ul class="gridErrors NullValidator"></ul>
@(Html.Kendo().TabStrip()
.Name("tabstrip")
.Items(tabstrip =>
{
tabstrip.Add().Text("General").Selected(true).Content(@<text>
<div class="popup-editor-container">
<div class="popup-editor-column-sm">
<div class="popup-editor-label">
@Html.LabelFor(model => model.TimeZoneID).IsRequired()
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.TimeZoneID, new { htmlAttributes = new { style = "width:120px; height:30px;" } })
</div>
</div>
<div class="popup-editor-column-sm">
<div class="popup-editor-label">
@Html.LabelFor(model => model.RegionID).IsRequired()
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.RegionID)
</div>
<script>
function filterDestination() {
var dataItem = getGridEditRowModel();
let shipperIds = (dataItem.Products != null) ? dataItem.Products.map(x => x.ID).join(',') : -1;
let productIds = (dataItem.Shippers != null) ? dataItem.Shippers.map(x => x.ID).join(',') : -1;
return {
"regionid": dataItem.RegionID || -1,
"terminalid": dataItem.TerminalID || -1,
"productids": (shipperIds != '') ? shipperIds : '-1',
"shipperids": (productIds != '') ? productIds : '-1'
}
}
</script>
<div class="popup-editor-field">
@Html.EditorFor(model => model.PreferredDestinationID, new { table = "GetPreferredDestinations", controller = "origins", filter = "filterDestination()" })
</div>
</div>
</div>
</text>);
tabstrip.Add().Text("Oil Field").Content(@<text>
<div class="popup-editor-container">
<div class="popup-editor-column-sm">
<div class="popup-editor-label">
@Html.LabelFor(model => model.LeaseName).IsRequired()
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.LeaseName)
</div>
<div class="popup-editor-label">
@Html.LabelFor(model => model.LegalDescription)
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.LegalDescription)
</div>
</div>
</div>
</text>);
tabstrip.Add().Text("GPS").Content(@<text>
<div>
<div class="popup-editor-column-lg">
<div class="popup-editor-label">
@Html.LabelFor(model => model.GeoFenceRadiusMeters)
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.GeoFenceRadiusMeters, new { htmlAttributes = new { style = "" } })
</div>
</div>
</div>
</text>);
})
)
</div>
<script>
$("#RegionID,#TerminalID").on("change", function () { refreshDestinations(); });
</script>
When a decimal number has 8 digits after the decimal separator and '#' is used for formatting the precision is lost and the number is rounded.
kendo.toString(0.00000015,"###.########"
returns 0.0000002
The number should not be rounded and the precision should not be lost. The results should be the same with kendo.toString(0.00000015,"n8")
and kendo.toString(0.00000015,"0.00000000")
Hi,
When I double click a cell and enter into editing mode, scrolling up or down will make the editor div out-of-place.
It should follow the target cell instead.
This can be easily reproduced here: https://demos.telerik.com/kendo-ui/spreadsheet/index
It seems Kendo UI for Angular/React also have the same issue.
kendo-ui-license.js
button.Clicking on the kendo-ui-license.js
button attempts to download multiple files of the same type:
Clicking on the kendo-ui-license.js
button should not attempt to download multiple files of the same type at once
Inserting sheets in the Spreadsheet component is not working as expected.
Load New Sheet
ButtonError is thrown.
Error to not be persistent.
I have a number of DataSource items in the event editor template. They are small JSON objects and it would be dumb to read them from the server each time. They do not change and are part of the page load. You can see here I am just serializing them into the page itself:
This works 9 out of 10 times. But sometimes the dataset is empty. Which is crazy because I am always filling it. I managed to find a work around on the event edit event that gets called but this seems strange to do. Not sure if there is a true bug here or not. Feels like it because this code should not have been needed:
I have an event template. Inside this template I am using a MultiSelect. It is defined like: <select data-down-Arrow="true"… . The downArrow property does not work. I discovered via debugging the kendo.all.js file the problem. Fortunately this one is fixable outside that file:
I have some client events for creating/updating events.
They are currently the same and call the same method:
Due to JSON serialization, I end up with dates being serialized as ticks when sent to the client. This function converts these ticks to a proper JavaScript Date() object. The code works perfectly fine.
We run into an error on random occasions. This happens maybe once a day per user. It is not repeatable but it was fixable. This code is from the Kendo.all.js file. The highlighted lines were added:
99% of the time things work fine. But sometimes this convertData() method is called before the client methods are called. Perhaps a threading or AJAX or promise issue? Perhaps there is one scenario where the client method is not being called? The real bug here is that convertData() can sometimes get called before the client’s event where I would have corrected by dates. This is another case where it is tough to upgrade Kendo versions because I need to port this as minified JavaScript to the custom downloaded minified file.
Here is the text from the browser’s F12 window when we hit this error (If I have not applied the fix above):
kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1 Uncaught TypeError: f.start.getTimezoneOffset is not a function
at ai (kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1:1182628)
at init.data (kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1:1182352)
at init._readData (kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1:96753)
at init._push (kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1:90345)
at init._pushUpdate (kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1:90237)
at init.e (jquery?v=9zl6bqYAmbr9FSUZX0T1VSNbWQ5Gc01X9-RaVvSk-7A1:1:95021)
at init.a (signalr?v=4OffKgJP3BKl-a0HMCu8SoFYj-iqmWy-1sbyLwYhtvk1:1:36810)
at init.dispatch (jquery?v=9zl6bqYAmbr9FSUZX0T1VSNbWQ5Gc01X9-RaVvSk-7A1:1:55579)
at y.handle (jquery?v=9zl6bqYAmbr9FSUZX0T1VSNbWQ5Gc01X9-RaVvSk-7A1:1:53581)
at Object.trigger (jquery?v=9zl6bqYAmbr9FSUZX0T1VSNbWQ5Gc01X9-RaVvSk-7A1:1:78599)
In my application, when a user changes their view date on the scheduler, there are two other schedulers on the other two tabs of the tab strip that are not visible. The dates here get changed too. This happens in a navigate event. They end up in a broken state from this. It seems the issue is that they are not visible so rendering is not happening. I found a hacky way to work around this. I am adding a newDate property and a needRefresh property to the scheduler. When a tab is activated, the scheduler in that tab is checked. If it needs a refresh, it is refreshed. If it has a new date, that is also set.
The schedulers are sitting inside a tab strip control. When the page loads, some computations are done by Kendo for setting up column widths. I feel there is a scrollbar issue somewhere. As it is a larger screenshot, please look at the attached Scrollbar size computation issue.png file. Start with the “All day” events. Notice the first event on Monday crosses the line into Tuesday just a little bit. This is highlighted and indicated with a “2” on it. Now look at the events for the week – numbers 3, 4, and 5. The events span into the next column a little more each time. They WOULD be correct if there was no scrollbar on the right! Now look at the events below with a time. “1” has the correct left offset from Monday’s left side. As you go to 2, 3, 4, and 5, this offset grows. It’s the same issue.
Now look down at “6”. Notice the scheduler has no footer and is drawing far too low.
The problem is that the tabstrip content is allowing scrolling. I can see this in the F12 window. Notice the scheduler does not have the scrollbar:
But the tab strip content DOES have a scrollbar:
Please note that I am specifically blocking the tab strip from scrolling in my code. The scheduler should handle the scroll.
So, I added the following CSS which fixes this issue for me:
See the Scrollbar size computation fixed.png file for the end result. The scheduler is scrolling now instead of the tab strip.
My recurrence rule is: FREQ=MONTHLY;COUNT=2;INTERVAL=1;BYSETPOS=2;BYDAY=WE;WKST=SU. This event falls on the second Wednesday of the month for two months in a row. When I edit the event, the wrong option is picked. Note in the screenshot attached we are on 11/09/2022 which is the second Wednesday. And the scheduler correctly shows this event. But the edit window sets the properties wrong. I am using a custom template for the edit window, however the recurrence editor portion is unmodified.
I was able to fix this in the Kendo.all.js file directly. The highlighted lines below were added. When I publish this for customers I use the Kendo custom download tool to get a minified script of only what I need. I then need to carefully port this change using Notepad++. This makes it tough to update versions which is why I am a few versions back.
From the kendo.common-bootstrap.css file:
This cuts off the dates which have ample room to be displayed (this is my app):
I overrode this to remove the max-width:
In the scheduler component, create a new event. Select monthly for the repeat. If you are using the Bootstrap theme the day will be cut off. The problem lies in the kendo.common-bootstrap.css file.
Overriding to 10em works. The same issue exists on the demo site today which I assume is running the current version (https://demos.telerik.com/kendo-ui/scheduler/index?autoRun=true&theme=bootstrap-main):
Bug report
Grid - Frozen Columns - 'lockable' property being ignored with Drag to Lock/Unlock
Regression introduced with 2023.3.1114
Reproduction of the problem
Open this Dojo example - https://dojo.telerik.com/ovaHinas/4
Drag a column from the locked section to the unlocked one
Expected/desired behavior
No drop shall be available.
Environment
Kendo UI version: 2023.3.1114 or newer
Browser: [all]
Hello Kendo UI Team,
I found one bug regarding the multidrop down selection while we want to add new on search text we enter some text and than after click on clear button and click on the add new button text is saved.
I attached one video for the same so you can easily find the issue.
Thanks & Regards.
There are several problems when extending a widget .
In this example we have extended the DropDownTree.
selectedProductId: [{ id: "a" }, { id: "c" }],
and not
selectedProductId: ["b", "c"]
So some properties are supported and other that have been added later not.
I present you the source code (https://dojo.telerik.com/ewewERiD)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Untitled</title>
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2022.2.510/js/angular.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2022.2.510/js/jszip.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2022.2.510/js/kendo.all.min.js"></script>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2022.2.510/styles/kendo.default-ocean-blue.min.css">
</head>
<body>
<input id="dropdowntreeExt" data-bind="value: selectedProductId">
<script>
(function ($) {
var kendo = window.kendo,
ui = kendo.ui,
DropDownTree = ui.DropDownTree;
var DemoDropDownTree = DropDownTree.extend({
init: function (element, options) {
DropDownTree.fn.init.call(this, element, options);
$(element).parent().addClass("k-picker-solid k-picker k-rounded");
},
options: {
name: "DemoDropDownTree",
checkboxes: true,
fillMode: "flat"
}
});
ui.plugin(DemoDropDownTree);
})(jQuery);
var viewModel = kendo.observable({
selectedProductId: [{ id: "a" }, { id: "c" }],
//selectedProductId: ["b", "c"],
products: [
{ id: "a", name: "Coffee" },
{ id: "b", name: "Tea" },
{ id: "c", name: "Juice" }
]
});
kendo.bind($("#dropdowntreeExt"), viewModel);
//kendoDemoDropDownTree
//kendoDropDownTree
$("#dropdowntreeExt").kendoDemoDropDownTree({
valuePrimitive: true,
dataTextField: "name",
dataValueField: "id",
//checkboxes: true,
dataSource: viewModel.products//,
//fillMode: "flat"
});
alert($("#dropdowntreeExt").data("kendoDemoDropDownTree").options['fillMode']);
</script>
</body>
</html>
(!) This also applies in the latest versions as well (2022R2 and 2022R3).
2. if you place the properties in kendoDropDownTree, everything works well and the datasource also accepts the format selectedProductId: ["b", "c"]
3. Many options, like autoWidth property, don't apply in extended widgets (i.e. MultiSelect, DropDownList, DropDownTree etc).
4, In DropDownTree for the extended widget, valuePrimitive: true is not applicable. Instead of returning an array of the selected keys, it returns an array of the entire item.