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):
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:
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.
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.
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.
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.