Note: I already opened issue #7910 in the kendo-ui-core repo for this but wasn't sure if I should report this through the Feedback Portal.
The TextArea TagHelper does not render the "maxlength" attribute when set via data annotations.
Note: this is essentially the same issue from #6884 but applies to the TextArea helper (and not the TextBox helper), so perhaps the fix for that issue just needs to be applied to the TextArea helper (it's always that easy, right? 😉).
Given the following model property:
[StringLength(500)]
[DisplayName("Example")]
public string Example { get; set; }
The Kendo TextArea helper:
<kendo-textarea for="Example" rows="3"></kendo-textarea>
...generates code without the "maxlength" attribute:
<textarea
data-val="true"
data-val-length="The field Example must be a string with a maximum length of 500."
data-val-length-max="500"
id="Example"
name="Example"
data-role="textarea"
aria-disabled="false"
rows="3"
class="!k-overflow-auto !k-flex-none k-input-inner"
autocomplete="off">
</textarea>
The default ASP.NET Core TextArea helper:
<textarea asp-for="Example" rows="3"></textarea>
...generates code with the "maxlength" attribute:
<textarea
rows="3"
data-val="true"
data-val-length="The field Example must be a string with a maximum length of 500."
data-val-length-max="500"
id="Example"
maxlength="500"
name="Example">
</textarea>
The Kendo helper should generate the "maxlength" attribute like the built-in helper.
Setting the Reoderable.Rows.ClickMoveClick() API configuration explicitly to false
results in an error when using the HTML Helper wrappers.
Setting the Reoderable.Rows.ClickMoveClick() explicitly to false
throws the following error:
Setting the Reoderable.Rows.ClickMoveClick() explicitly to false
should not throw an error.
### Bug report
The click event of the SplitButton in the Toolbar does not trigger when displayed in the overflow menu.
**Regression introduced with R1 2023**
### Reproduction of the problem
1. Open the ToolBar Events demo.
2. Resize the Toolbar to render the SplitButton in the overflow menu.
3. Open the overflow menu and click a specified SplitButton item.
### Current behavior
The "splitButtonClickHandler" handler does not fire.
### Expected/desired behavior
The SplitButton click event must fire when the button is rendered in the Toolbar overflow menu.
### Environment
* **Kendo UI version: 2024.2.514
* **Browser: [all]
Scheduler Adaptive Rendering in Month View shows wrong year when the selected month is switched from December to January
Next
button to select the next monthThe year doesn't get update properly when the selected Month is switched from December to January
The correct year must be shown in the Scheduler's .k-scheduler-navigation element.
Reproducible with the Grid's tag helper. Works as expected in the Html helper.
The toolbar does not show the RadioGroup.
A RadioGroup should appear in the toolbar, as set in the toolbar command template:
<toolbar-command-template>
<kendo-radiogroup name="test">
<kendo-radiogroup-items>
<kendo-radiogroup-item label="Factor" value="F"></kendo-radiogroup-item>
<kendo-radiogroup-item label="Equation" value="E"></kendo-radiogroup-item>
</kendo-radiogroup-items>
</kendo-radiogroup>
</toolbar-command-template>
### Bug report
The ContextMenu does not show when the mouse is moved normally. It will show only when the mouse is moved very slowly.
### Reproduction of the problem
1. Create a Grid with a custom column command.
2. Define a ContextMenu that will be displayed when the custom column command is clicked.
3. Click over a specified column command - the ContextMenu opens.
4. Move the mouse over another row and click the custom column command - the ContextMenu does not open.
A Dojo sample for reproduction: https://dojo.telerik.com/aYiVUzum
### Current behavior
The ContextMenu does not open over every item as expected.
### Expected/desired behavior
The ContextMenu must open when clicking each item.
#### The issue is a regression starting with 2023.1.314 version
### Workaround
Add the following script before the ContextMenu initialization:
<script>
function contains(parent, child) {
try {
return $.contains(parent, child);
} catch (e) {
return false;
}
}
kendo.ui.ContextMenu.fn.open = function (x, y) {
var OPEN = "open",
ACTIVATE = "activate",
DOCUMENT_ELEMENT = $(document.documentElement),
NS = ".kendoMenu";
var that = this;
x = $(x)[0];
if (contains(that.element[0], $(x)[0]) || that._itemHasChildren($(x))) { // call parent open for children elements
kendo.ui.Menu.fn.open.call(that, x);
} else {
if (that._triggerEvent({ item: that.element, type: OPEN }) === false) {
if (that.popup.visible() && that.options.filter) {
that.popup.close(true);
that.popup.element.parent().kendoStop(true);
}
if (!that._triggerFocusOnActivate) {
that._triggerFocusOnActivate = that._focusMenu.bind(that);
}
that.bind(ACTIVATE, that._triggerFocusOnActivate);
if (y !== undefined) {
var overflowWrapper = that._overflowWrapper();
if (overflowWrapper) {
var offset = overflowWrapper.offset();
x -= offset.left;
y -= offset.top;
}
that.popup.wrapper.hide();
that._configurePopupScrolling(x, y);
that.popup.open(x, y);
} else {
that.popup.options.anchor = (x ? x : that.popup.anchor) || that.target;
that.popup.element.parent().kendoStop(true);
that._configurePopupScrolling();
that.popup.open();
}
DOCUMENT_ELEMENT.off(that.popup.downEvent, that.popup._mousedownProxy);
DOCUMENT_ELEMENT
.on(kendo.support.mousedown + NS + that._marker, that._closeProxy);
}
}
return that;
};
</script>
### Environment
* **Kendo UI version: 2023.1.314
* **Browser: [all]
The issue is reproducible when the TimePicker's dates configuration is set and its min() API method is called. Afterwards, if the user select a time, the component shows the wrong time (2h earlier) as selected.
The TimePicker shows a selected value that is 2h earlier than the actual time the user has selected.
The time the user selects is shown as selected value.
### Bug report
The attributes set through the "HtmlAttributes", "ContentHtmlAttributes", and "LinkHtmlAttributes"methods are not applied to the TreeView items.
### Reproduction of the problem
1. Create a TreeView and set attributes by using the "HtmlAttributes", "ContentHtmlAttributes", "LinkHtmlAttributes"methods:
@(Html.Kendo().TreeView()
.Name("treeview-kendo2")
.Items(treeview =>
{
treeview.Add().Text("My Documents")
.SpriteCssClasses("k-icon k-i-globe")
.Expanded(true)
.Url("/")
.HtmlAttributes(new { @class = "fairydust1" })
.ContentHtmlAttributes(new { data_navigate = "navigate_content", @class = "trigger", title = "content_title" })
.LinkHtmlAttributes(new { data_navigate = "navigate_link", @class = "trigger", title = "content_link" });
})
)
2. Run the page and inspect the TreeView item.
### Expected/desired behavior
The attributes are serialized and rendered.
### Environment
* **Kendo UI version: 2021.2.616
* **jQuery version: 1.12.4
* **Browser: [all]
### Bug report
The "confirmation" attribute of the editable tag does not accept a string.
### Reproduction of the problem
Add a confirmation text as a string in the "confirmation" attribute, as per the example below:
<kendo-grid name="grid">
...
<editable mode="popup" confirmation="Are you sure you want to hide this invoice?" />
</kendo-grid>
A REPL sample for reproduction: https://netcorerepl.telerik.com/moEqPSFo32PrwW4d01
### Expected/desired behavior
The "confirmation" option must accept a string.
### Environment
* **Telerik UI for ASP.NET Core version: 2024.2.514
* **Browser: [all]
### Bug report
The DropDownTree TagHelper does not serialize the "Value" and "Id" properties when it is configured for local data binding (using the "bind-to" option).
### Reproduction of the problem
1) Use the following DropDownTree TagHelper configuration:
//Controller
public IActionResult Index()
{
List<DropDownTreeItemModel> ddtData = new List<DropDownTreeItemModel>()
{
new DropDownTreeItemModel() { Id = "1", Text = "Option 1", Value = "S1" },
new DropDownTreeItemModel() { Id = "2", Text = "Option 2", Value = "S2",
Items = new List<DropDownTreeItemModel>()
{
new DropDownTreeItemModel() { Id = "3", Text = "Option 3", Value = "S3" }
}
}
};
ViewBag.StateTreeListData = ddtData;
return View();
}
// View
<kendo-dropdowntree name="StateLocationDropDownTree" style="width: 100%"
height="500px"
auto-width="true"
bind-to="(IEnumerable<DropDownTreeItemModel>)ViewBag.StateTreeListData">
</kendo-dropdowntree>
2) When the DropDownTree is loaded, inspect its initialization script - the "value" and "id" properties are "null".
### Expected/desired behavior
The "Id" and "Value" properties must be serialized as the rest of the DropDownTreeItemModel properties.
### Environment
* **Telerik UI for ASP.NET Core version: 2024.2.514
* **Browser: [all]
### Bug report
Adding the [Authorize(Roles = "Admin, User")] attribute at Controller or Actions within the Controller does not show the Menu items.
### Reproduction of the problem
1. Create an application with authorization and add "Admin" and "User" roles.
2. Add the [Authorize(Roles = "Admin, User")] attribute to a specified Action method within the Controller:
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
[Authorize(Roles = "Admin, User")]
public IActionResult Security_Information()
{
return View();
}
}
3. Add a Menu:
@(Html.Kendo().Menu()
.Name("htmlhelperMenu")
.SecurityTrimming(true)
.Items(menu =>
{
menu.Add().Text("Home").Action("Index", "Home");
menu.Add().Text("Security Information").Action("Security_Information", "Home");
})
)
<kendo-menu name="taghelperMenu">
<items>
<menu-item text="View Inventory">
<sub-items>
<menu-item text="Home" asp-controller="Home" asp-action="Index"></menu-item>
<menu-item text="Security Information" asp-controller="Home" asp-action="Security_Information"></menu-item>
</sub-items>
</menu-item>
</items>
</kendo-menu>
3. The "Security Information" Menu item is not visible when the user is logged as "Admin" or as "User".
### Expected/desired behavior
The "Security Information" Menu item should be visible when the [Authorize(Roles = "Admin, User")] attribute is added to the respective Action/Controller and the user is logged as "Admin" or as "User".
### Environment
* **Telerik UI for ASP.NET Core version: 2023.2.606
* **Browser: [all]
### Bug report
The Column.Exportable option is not correctly serialized and cannot be used to export hidden columns.
### Reproduction of the problem
1. Set Column.Exportable(true) and Column.Hidden(true).
2. Export the grid and see that the column is not present in the exported file.
### TicketID:
1543405
### Environment
* **Kendo UI version:** 2021.3.1109
* **jQuery version:** 1.12.4
* **Browser:** [all]
### Bug report
The options of the MultiSelect are not serialized when used in Template component.
### Reproduction of the problem
1. Open the following REPL sample: https://netcorerepl.telerik.com/mIOgYfFU47fvuM5N17
2. Review the MultiSelect that is initialized into the Grid's toolbar and notice that its options are not serialized.
### Current behavior
The Template component does not serialize the options of the MultiSelect.
### Expected/desired behavior
The Template component must serialize all options for the MultiSelect.
### Environment
* **Telerik UI for ASP.NET Core version: 2024.2.514
* **Browser: [all]
Toolbar.Items.Group.CustomTool() API of the Scheduler produces an invalid configuration.
To give more context, the Toolbar's buttonGroup items do not expose, nor should they expose a template
configuration. The currently available options advocate that each of the buttons must apply options similar to that of the ToggleButton.
Thus, making the wrapper configuration not applicable. The following dojo verifies this - https://dojo.telerik.com/@alexander64836/ayedUsAh
Toolbar.Custom.Items.Group.CustomTool() API configuration of the Scheduler produces an invalid configuration which is not serialized accordingly.
Toolbar.Items.Group API configuration of the Scheduler should expose a CustomTool() API configuration for the ButtonGroups.
The current workaround would be to declare the CustomTool via the Toolbar.Custom.Items.CustomTool() API configuration. And a ButtonGroup via the Template component:
@(Html.Kendo().Scheduler<Kendo.Mvc.Examples.Models.Scheduler.TaskViewModel>()
.Name("scheduler")
...
.Toolbar(t => t.Custom(c =>
c.Items(itm => {
itm.CustomTool(Html.Kendo().Template().AddComponent(c => c
.ButtonGroup()
.Name("select-period")
.Items(t =>
{
t.Add().Text(string.Empty).Icon("chevron-up");
t.Add().Text(string.Empty).Icon("chevron-down");
})
));
})
)
)
)
The following Telerik REPL illustrates this approach.
### Bug report
When the deferred scripts are created, the script source points at the root of the application instead of the application's root directory.
### Reproduction of the problem
Enable the global deferred initialization and call the @(Html.Kendo().DeferredScriptFile()) method.
The rendered script tag is: <script src="/kendo-deferred-scripts-XXXX.js"></script>
But it must be: <script src="/MyWebsite/kendo-deferred-scripts-XXXX.js"></script>
### Solution:
If you add a tilde in the Url.Content(), the generated script file must be located as expected:
public HtmlString DeferredScriptFile(string nonce = "")
{
...
var scriptResult= hasDeferredScritps ? $@"<script src=""{urlHelper.Content("~/kendo-deferred-scripts-" + guid + ".js")}"" {(string.IsNullOrEmpty(nonce) ? "" : "nonce=" + '"' + nonce + '"')}></script>" : "";
var styleResult = hasDeferredStyles ? $@"<link href=""{urlHelper.Content("~/kendo-deferred-styles-" + guid + ".css")}"" {(string.IsNullOrEmpty(nonce) ? "" : "nonce=" + '"' + nonce + '"')} rel=""stylesheet""></link>" : "";
return new HtmlString(scriptResult + System.Environment.NewLine + styleResult);
}
### Environment
* **Telerik UI for ASP.NET Core version: 2023.3.1114
* **Browser:** [all]
When tabbing in a batch editable Grid cells do not enter edit mode.
This is a regression introduced with v 2023.2.606.
The corresponding Unit Price is focused, but an editor is not generated
The cell should enter edit mode, as with v2023.1.425 - dojo
Menu popup container closes on hover when scrollable
is enabled.
This is a regression introduced with v2023.2.606.
Popup container closes on hover and subitems cannot be selected.
Popup container should not close on hover.
Regression introduced with 2023.2.606
The menu dropdown does not respect hoverDelay and it remains open on initial expansion.
If the mouse/cursor doesn't hover over the menu item for the entirety of the hover-delay duration, the menu item opens.
If the mouse/cursor doesn't hover over the menu item for the entirety of the hover-delay duration, the menu item should not open. This behavior can be exhibited with versions prior to 2023.2.606.
For example:
https://dojo.telerik.com/iyAfaVUR