1. Is it hard to understand the version numbers of our releases? If yes, what makes them hard to understand them?
2. Would semantic versioning (SemVer) of our releases make it easier to understand our version numbers and what's behind them?
3. If we go with SemVer, we might need to start with version 3000.0.0 as we currently use 2022.x.x. Please share your thoughts about this approach and ideas for what number versioning would work best for you.
Hi,
I have a problem displaying the content from the AIPrompt Output tab and I'm getting An error occurred while processing the request.
I'm not sure if I'm missing a parameter returning the response from the content. I am using OpenAI as a service.
public async Task<ActionResult> GenerateSupplierAIReponse()
{
var apiKey = ConfigurationManager.AppSettings["OpenAPIKey"];
var aiServiceUrl = "https://api.openai.com/v1/chat/completions";
StringBuilder sb = new StringBuilder();
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", apiKey);
try
{
using (var requestStream = new StreamReader(HttpContext.Request.InputStream))
{
var body = await requestStream.ReadToEndAsync();
var requestBody = new
{
model = "gpt-4",
messages = new[]
{
new { role = "user", content = body }
}
};
var response = await httpClient.PostAsJsonAsync(aiServiceUrl, requestBody);
response.EnsureSuccessStatusCode();
var jsonResponse = await response.Content.ReadAsStringAsync();
OpenAIResponse aIResponse = JsonConvert.DeserializeObject<OpenAIResponse>(jsonResponse);
foreach (var i in aIResponse.choices)
{
sb.AppendLine(i.message.content);
}
var formattedResponse = new
{
Output = sb.ToString(),
};
string finalJsonResult = new JavaScriptSerializer().Serialize(formattedResponse);
return Content(finalJsonResult, "application/json");
}
}
catch (HttpRequestException ex)
{
// Log the error
Console.Error.WriteLine($"HTTP Error: {ex.Message}");
return Json(new { error = "Error communicating with OpenAI." }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
// Log the error
Console.Error.WriteLine($"General Error: {ex.Message}");
return Json(new { error = "An unexpected error occurred." }, JsonRequestBehavior.AllowGet);
}
}
}
"{\"Output\":\"As an AI, I don\\u0027t have real-time data access, but as of my last update, I don\\u0027t have specific information about the parent company of Acme Electronics. Acme is a common generic name used in various forms of fiction, and there could be many small companies by that name. It would help if you were more specific about the company\\u0027s location or other details.\\r\\n\"}"
@(Html.Kendo().AIPrompt() .Name("aiprompt") .ActiveView(0) .Service("GenerateSupplierAIReponse", "Supplier") //.Events(events => events // .PromptRequest("onPromptRequest") //) .ToolbarItems(items => { items.Add().Type(ItemType.Spacer); items.Add() .Type(ItemType.Button) .Icon("x") .FillMode(ButtonFillMode.Flat) .Rounded(Rounded.Full) .ThemeColor(ThemeColor.Primary) .Click("onToolbarButtonClick"); }) .Views(views => { views.Add().Type(Kendo.Mvc.UI.ViewType.Prompt) .PromptSuggestions(new string[] { "What is the parent company of " + Model.Name, "Give me the headquarter address of " + Model.Name }); views.Add().Type(Kendo.Mvc.UI.ViewType.Output); }) )
Everything is getting all the correct authentication and the ai response message content but upon returning the content it will prompt an error message.
Please advice.
Thank you,
Gerber Manalo
I'm encountering an issue with the Kendo UI Form when using a MultiSelect widget. When I render a form that includes a single MultiSelect field bound to a value, the widget inexplicably displays two chips for that value.
This occurs with both single and multiple selections.
The issue does not occur when the MultiSelect is used outside the context of a Kendo Form.
I'm fairly certain this is related to how the form is configured or how the binding is set up.
I've reduced my code to a minimal test case to replicate the issue.
See attached screenshots for reference.
Has anyone else encountered this behavior when using a MultiSelect within a Kendo UI Form? Any tips on what might be causing the duplicate value chips?
Thank you in advance! :)
public class TestViewModel
{
public List<string> SelectedItems { get; set; } = new List<string>();
public List<string> AvailableItems { get; set; } = new List<string>();
}
public class TestController : Controller
{
public ActionResult Index()
{
var model = new TestViewModel
{
AvailableItems = ["Option A", "Option B", "Option C"],
SelectedItems = []
};
return View(model);
}
[HttpPost]
public ActionResult Index(TestViewModel model)
{
model.AvailableItems = ["Option A", "Option B", "Option C"];
return View(model);
}
}
@(Html.Kendo().Form<TestViewModel>()
.Name("testForm")
.HtmlAttributes(new { method = "post", id = "testForm" })
.Items(items =>
{
items.AddGroup()
.Label("Demo")
.Items(g =>
{
g.Add().Field(m => m.SelectedItems)
.Label("Pick Items")
.Editor(e => e.MultiSelect()
.BindTo(Model.AvailableItems)
.Placeholder("Select…")
);
});
})
)
Hi,
We are using Kendo controls for MVC. There was a security scan done in our application, it capture few of the security issues.
We are able to fix all of the security issues except one.
CWE 829 - The application contains unsafe Content-Security-Policy (CSP) directives that could allow malicious script code to be included on the page.
So, as a result we have removed all the custom inline javascript and css to an external files and refer those external .js and .css files in our .cshtml page.
But when we use any of the Kendo controls like Kendo grid or Kendo calendar then in the runtime it create some inline scripts and we are getting application contains unsafe Content-Security-Policy (CSP) directives.
How to bypass those runtime inline scripts created by Kendo controls so that we don't get unsafe Content-Security-Policy (CSP) directives
during the security scan of the application.
Please let me know if you need any more information on this.
Hi,
I am working on a kendo grid, where user can copy records from the excel and paste in the kendo grid.
But when we copy more than 50 records from the excel and paste in the kendo grid then it is taking some time.
Can we increase the performance while pasting in to the Kendo grid or is it possible we can provide a progress bar or something to show to the user when the user paste more than 50 record. Attached kendo grid for the reference.
Hi,
wie have a Model A which is related to Model B (1:n). Both have a field of type DateTime with the DisplayFormat-Annotation '[DisplayFormat(DataFormatString = "{0:d}")]'.
If we display both fields in the Details-View of Model A, the formats are applied correctly.
If we display bot fields in a Telerik-GridView, only the format for Model A is applied. Model B shows something like '/Date(1741302000000)/'.
It's important to note, that our application is multilanguage, and we have to support different data formats for each language.
How would we go about this? Is this known behaviour?
I have a ListView that works very nicely with most of the default behavior as shown below. However, I would like to create a new item in the ListView by using a Popup form. This form could also be used by the edit event if that simplifies the code, but does not have to be the same, and the edit functionality could work as it does now. I have looked at the popup editing feature as described here. However, I could not figure out how to make this work for create as there is no create event on the ListView. Does everything have to work outside the framework of the control, so that the add is using a separate Ajax call and then refreshing the view, or is there a better way to keep this within the structure of the ListView and its events?
Add Button and ListView:
@(Html.Kendo().Button()
.Name("AddNew")
.Icon("plus")
.FillMode(ButtonFillMode.Solid)
.Rounded(Rounded.Medium)
.HtmlAttributes(new { @class = "add-button" })
.Events(e=>e.Click("addNewClick"))
)
@(Html.Kendo().ListView<MyNamespace.Models.ItemComment>()
.Name("listView")
.TagName("div")
.ClientTemplateId("commentListTemplate")
.Editable()
.DataSource(dataSource => dataSource
.Model(model => model.Id(comment => comment.CommentID))
.Read(read => read.Action("Comments_Read", "Comment").Data("getCommentReadParameters"))
.Update(update => update.Action("Comments_Update", "Comment"))
.Destroy(destroy => destroy.Action("Comments_Delete", "Comment"))
.Events(e => e.Error("epic.error.kendoErrorHandler"))
)
.Events(e => e.DataBound("onCommentsDataBound"))
.Events(e => e.Remove("deleteConfirmation"))
)
Display Template:
<script type="text/x-kendo-tmpl" id="commentListTemplate">
<div class="k-card">
<div class="k-card-body k-card-horizontal k-vbox k-column" style="margin:0;padding:4px 4px 0">
<img class='k-card-image' style="height:16px; margin-right:5px;" src="@Url.Content("~/Content/assets/images/blue-person.png")">
<div class='commentHeader'>
<h6 class='k-card-subtitle'>#= UserID #</h6>
<div class="edit-buttons">
<a role="button" class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-edit-button" href="\\#">#= kendo.ui.icon({ icon: 'pencil' }) #</a>
<a role="button" class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-delete-button" href="\\#">#= kendo.ui.icon({ icon: 'x' }) #</a>
</div>
<p>
#: Comment #
</p>
</div>
</div>
</div>
</script>
Supporting JavaScript functions:
<script type="text/javascript">
function onCommentsDataBound() {
if (this.dataSource.data().length == 0) {
$("#listView").append("<h3 style='padding: 2px 4px 0;'>No comments</h3>");
}
}
function addNewClick(e) {
var listView = $("#listView").data("kendoListView");
listView.add();
e.preventDefault();
}
function deleteConfirmation(event) {
if (!confirm("Are you sure you want to delete this comment?"))
event.preventDefault();
}
</script>
Thanks, Bob
I am trying to implement a custom tool in the Kendo Editor, following demo/doc implementation and always getting a typeError of some form whenever the custom tool uses a kendo template. For example:
@(Html.Kendo().Editor()
.Name("editor")
.Tools(tools => {
tools
.Clear()
.Bold()
.Italic()
.CustomTemplate(temp => temp.Template(
Html.Kendo().DropDownList()
.Name("ddl1")
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<object>
{
new { Text = "text 1", Value = "Value 1" },
new { Text = "text 2", Value = "Value 2" },
new { Text = "text 3", Value = "Value 3" },
new { Text = "text 4", Value = "Value 4" }
})
.ToClientTemplate()
.ToHtmlString()
));
})
)
In this case the error is as follows:
Uncaught TypeError: Cannot read properties of null (reading 'length')