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)
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 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:
The scheduler is either editable or not. And deletion events are either allowed or not. This isn't a black and white thing. Consider employees at a store. They can see each other's events for scheduling but they are only allowed to modify their own events. So I want editing and deleting enabled but conditionally.
In my case I hook into the databound event and I add a class "nodelete" on events that cannot be deleted. Then I have CSS that hides the "X" button on hover and I block the edit window from appearing.
However, the keyboard still prompts for a deletion. I think there should be some function for whether an event is editable. That, or an event should fire before the deletion prompt so I can stop it from occurring.
Here's a hacky work around. I don't like accessing properties starting with underbar as they are considered private and subject to change but I don't see a better way.
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
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")
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 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
Currently it is not possible to provide a selected date format template when the scheduler is shown in mobile "phone" mode.
It would be nice if this is configurable in the view: views: [
{
type: "day", minorTickCount: MinorTickCount,
selectedDateFormat: "{0:D}",
selectedDateFormatMobile: "{0:D}",
dateHeaderTemplate: kendo.template("<strong>#=kendo.toString(date, 'ddd d-M')#</strong>")
},
]
Require an Editor method to provide the cursor position as an integer representing the offset of the current cursor position from the start of the document with respect to the text displayed in the editor.
For example consider an editor displaying 'This is text content'. The underlying html will be <p><span>This is text content</span></p>. When cursor is placed after 'text', I would like to obtain the cursor position as 12 i.e. the offset based on the text displayed irrespective of the underlying html.
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.
The ability to have finer control over the zoom level would be useful, i.e. with each click of the zoom in / out button the ability to zoom slightly less. The levels currently available zoom too far with each step, so when plotting many points on the map I'm unable to auto zoom in as far as I'd like (while keeping all markers in the visible area), because the next zoom level in cannot fit all of the markers into the viewable map area.
The Kendo UI ListView widget supports setting the selected items via the select method. Up to version 2022.2.802, calling select() triggered a change event. This is no longer the case.
You can see the different behaviors in these two DOJOS: 2022.2.802 vs 2023.1.117 (the item gets selected after a second to make sure the dataSource has finished loading).
Test Environment:
Browser: Edge Anaheim 107.0.1387.2 (Official build) dev (64-bit
OS: OS version (OS Build 25203.1000)
Screen reader: Narrator
URL: WPG - Home
Credentials: V- ID
Screen Reader: Narrator
1. Open given URL - WPG - Results (fungates.azurewebsites.net) in Edge and turn on Narrator.
2. WPG Home page will open.
3. Navigate on “Dates" dropdown and activate it.
4. Now navigate to "within dates" split button and observe the issue.
Diagram shapes get converted into SVG elements such as Path, Text, Image, or group (g) tags. These tags support the primary HTML event handlers (such as on click) and other attributes. It becomes essential to add a hiddle sibling with identification to work around this limitation.
var fooText = new KD.TextBlock({
x: fooX,
y: fooY,
text: textFromDb,
id: uniqueIdBasedOnDataFromDb, // This ID (or another property "domId") should become the Id in the HTML
onclick: someMethod,
customAttributeA: valueAFromDb,
customAttributeB: valueBFromDb});
barGroup.append(fooText);
Exporting to excel cells with empty values and zeros is not correct
A Problem is that if there is an item with the real value "0" in the data source, the item would also be exported with an empty string.
We have use cases where the value "0" has a different meaning than an empty value.
https://codesandbox.io/s/brave-northcutt-pe21l9?file=/src/main.vue:2996-3346
no difference between the empty value and the 0
there should be a difference between the empty value and the 0
ticket: 1598649
Error when trying to run npm run dev
X [ERROR] Unterminated string literal
node_modules/@progress/kendo-ui/umd/kendo.all.min.js.map:1:5961245:
download project from ticket : 1597960 01 Mar 2023
npm ci
npm run dev
an error is observer
the site runs without errors
use the following import
import '@progress/kendo-ui/esm/kendo.all.js'
Refresh the grid with a function. I now do a queryselector to find and click the refresh button that i only added so i can refresh the grid with javascript. I'm using an array (global scope) to store data.
The grid.refresh() didn't work, probably because i don't use transport. I have tried all the solutions on telerik and stackoverflow websites.
The data in the array gets manipulated outside of the kendo grid. document.queryselector(".k-pager-refresh").click() option works , but there has got to be a better way to do this.
P.s. deleting and rebuilding the grid with the new data gives bugs with grouping the data by column header, so that isn't an option.