At this stage, the Serialize() method depends on Newtonsoft.Json:
using Newtonsoft.Json;
namespace Kendo.Mvc.Infrastructure
{
public class DefaultJavaScriptSerializer : IJavaScriptSerializer
{
public string Serialize(object value)
{
return JsonConvert.SerializeObject(value).Replace(@"<", @"\u003c").Replace(@">", @"\u003e");
}
}
}
Is it possible to remove the dependency and use the System.Text.Json serializer instead?
### 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 both UI for ASP.NET MVC and UI for ASP.NET Core Visual Studio extensions are installed and only UI for ASP.NET Core project is loaded, the notification for new version is shown for UI for ASP.NET MVC.
### Bug report
When the Dialog is configured with actions and the Content Security Policy is enabled, it throws an "Invalid template" error.
### Reproduction of the problem
1) Configure a Dialog widget with actions and set the CSP with the following content:
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' https://kendo.cdn.telerik.com https://code.jquery.com; style-src 'self' 'unsafe-inline' https://kendo.cdn.telerik.com;" />
2) Open the browser console to review the error.
A Dojo sample for reproduction: https://dojo.telerik.com/ULOyazUC
### Expected/desired behavior
The Dialog should be rendered correctly without using the 'unsafe-eval' keyword in the "script-src" directive.
### Workaround
Insert the following script before the Dialog initialization:
<script>
kendo.ui.Dialog.fn._mergeTextWithOptions = function(action) { var text = action.text; if(text) { return kendo.isFunction(text) ? text(this.options) : text; } return ""; }
</script>
### Environment
* **Kendo UI version: 2023.2.606
* **jQuery version: 3.4.1
* **Browser: [all]
Running WAVE on websites that use the Slider throw up a load of alerts to do with "Redundant title text" and "Unlabeled form control with title".
You can see examples of this on any demo page such as the Basic Usage one.
Can you please remove the offending attributes - or come up with values that don't throw these issues up? I'm not sure if they're in place to work with ToolTips, but if we elect not to support ToolTips (which is default behaviour) then they are effectively redundant.
I don't want to have to do this myself in script because it is an unnecessary overhead and may cause downstream issues in your code.
Test Environment:
OS Version: 22H2 OS Build 22621.1702
Edge Version: Edge(Chromium) Version 114.0.1823.37 (Official build) (64-bit)
Pre requisites:
High contrast mode: Settings->Accessibility->contrast themes-> select Aquatic/desert theme
Repro-Steps:
Users with low vision and who rely on high contrast aquatic and desert theme will face difficulties if the selected date is not visible clearly.
I'm looking to add the Nonce to the standard inline kendo initialization scripts rather that having to defer initialization and output the initialization scripts in a script tag with a nonce, as demonstrated in the documentation https://docs.telerik.com/aspnet-core/html-helpers/helper-basics/content-security-policy#for-r1-2023-sp1-and-later-working-with-telerik-ui-for-aspnet-mvc-components
Consider the use of TextWriter async methods for the HTML Helpers, for example the WriteInitializationScript methods. In certain scenarios the use of the synchronous methods causes an exception: System.InvalidOperationException: Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true instead.
This can be resolved by explicitly enabling synchronous operations
services.Configure<IISServerOptions>(options =>
{
options.AllowSynchronousIO = true;
});
though synchronous operations have been disabled by default at framework level as of .NET 3.0.
As per the subject, if you use jQuery to get a Kendo TabStrip in a ComboBox change event it inserts this div into the TabStrip control:
<div class="k-tabstrip-items-wrapper k-hstack">
<ul class="k-tabstrip-items k-reset" role="tablist"></ul>
</div>
This used to work as we were changing the selected tab in a TabStrip based on a ComboBox selection, but this no longer works. Please see the following REPL where a new div is added every time you change the ComboBox value:
https://netcorerepl.telerik.com/mxETafaT24zWOe0C50
Kind regards,
David
When using the ASP.NET Core helpers for input elements, it shall be possible to specify separate id and name attributes.
Example
Currently, when rendering a checkbox:
Html.Kendo()
.CheckBox()
.Name("enable")
Results in:
<input id="enable" name="enable" type="checkbox" value="true" data-role="checkbox" class="k-checkbox k-checkbox-md k-rounded-md">
As you can see, this sets both the id AND name attributes to the same string. For more advanced web pages, this is not sufficient. The id attribute must be unique within the the whole page, whereas name does not.
Suggested solution
Add a new InputName() helper method to explicitly set the name for all applicable form/input elements. This is possible with e.g. RadioGroup, but not with CheckBox, RadioButton, DropDownList, etc.
Adding an AdaptiveMode configuration to Editors, similar to UI for Blazor would be beneficial when UI for ASP.NET Core components are used on smaller screens/mobile devices:
https://demos.telerik.com/blazor-ui/dropdownlist/adaptive
I am using TreeList for setting permissions. It seemed a perfect choice until I realized that state of ALL the checkboxes is set to either true or false.
I would like to be able to select checkbox based on the value of record i.e. to be able to save it's state in database, retrieve it, and batch update it.
I know that this behavior can be simulated / achieved by using javascript, but it would be so much better, easier and neater to have it data bound just like all the other columns.
For example, I have an organisational structure on the picture below. We can set permissions on any level.
I imagine that the syntax could be something like:
@(Html.Kendo().TreeList<OrgStrukturaTree>()
.Name("treeOrgRO")
.Columns(columns =>
{
columns.Add().Selectable(true).Width("20px");
columns.Add().Field(e => e.Opis).Width(250);
})
.Filterable(false)
.Sortable(true)
.DataSource(dataSource => dataSource
.Read(read => read.Action("ObjektiTree_Read", "Admin"))
.ServerOperation(false)
.Model(m => {
m.Id(f => f.Id);
m.ParentId(f => f.ParentId);
m.Expanded(true);
m.Selected(f => f.Selected);
m.Field(f => f.Opis);
})
)
)
I sincerely hope you would consider this update, as I cannot think of a scenario when I would use checkboxes that are all the same state.
Thank you in advance.
When trying to install Microsoft.VisualStudio.Web.CodeGeneration.Design 7.0.4 NuGet package in a Telerik UI for ASP.NET Core 2022.3.1109 application, it throws an exception:
NU1107: Version conflict detected for Microsoft.CodeAnalysis.CSharp.Workspaces. Install/reference Microsoft.CodeAnalysis.CSharp.Workspaces 4.4.0 directly to
project TelerikAspNetCoreApp3 to resolve this issue.
### Reproduction of the problem
1) Create a Telerik UI for ASP.NET Core 2022.3.1109 application (.NET 7.0).
2) Install Microsoft.VisualStudio.Web.CodeGeneration.Design NuGet package (version 7.0.4).
3) Review the NuGet Error in the output.
### Workaround
Install the the following NuGet packages:
Alternatively, install an older version of the Microsoft.VisualStudio.Web.CodeGeneration.Design package.
### Environment
* **Telerik UI for ASP.NET Core version: 2022.3.1109
* **.NET version: 7