Skip to content

Commit 294cbb0

Browse files
author
Kendo Bot
committed
Sync with Kendo UI Professional
1 parent f3c08fb commit 294cbb0

File tree

8 files changed

+159
-48
lines changed

8 files changed

+159
-48
lines changed

docs-aspnet-mvc/helpers/grid/binding/ajax-binding.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ Below are listed the steps for you to follow when configuring the Kendo UI Grid
7676
}
7777

7878
> **Important**
79-
> * The `ToDataSourceResult()` method will page, sort, filter, and group the collection that is passed to it. If this collection is already paged, the method returns an empty result.
80-
> * As of the Kendo UI R1 2017 SP1 release, you can use the `ToDataSourceResultAsync` extension method to provide the asynchronous functionality of `ToDataSourceResult` by leveraging the `async` and `await` features of the .NET Framework.
81-
> * If you have impersonation enabled, `ToDataSourceResultAsync` extension method works well when only one thread is used in your ASP.NET application. As soon as you create a new one, impersonation drops off in the newly created child thread because all newly created child threads in ASP.NET by default run under the ASP.NET worker process's identity. To change this behaviour you have to explicitly impersonate current identity within the child thread's code.
79+
> * The `ToDataSourceResult()` method will page, sort, filter, and group the collection that is passed to it. If this collection is already paged, the method returns an empty result.
80+
> * As of the Kendo UI R1 2017 SP1 release, you can use the `ToDataSourceResultAsync` extension method to provide the asynchronous functionality of `ToDataSourceResult` by leveraging the `async` and `await` features of the .NET Framework.
81+
> * If you impersonation is enabled, use the `ToDataSourceResultAsync` extension method with only one thread in your ASP.NET application. If you create a new thread, the impersonation in the newly created child thread decreases because, by default, all newly created child threads in ASP.NET run under the ASP.NET identity of the worker process. To change this behavior, explicitly impersonate the current identity within the code of the child thread.
8282
8383
The following example demonstrates how to implement the `ToDataSourceResultAsync` extension method in your project.
8484

docs/controls/charts/overview.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,14 +158,14 @@ The category name can also be bound to a field of the data item, as demonstrated
158158
}
159159
});
160160

161-
#### Label Position of the Categorical Chart Axes
161+
#### Label Positioning for the Categorical Chart Axes
162162

163163
The category and value axes provide options for displaying their labels either next to the axis or at the outer edges of the plot area. By default, the labels are positioned next to the axis.
164164

165-
To change the label position, set the [`position`](/api/javascript/dataviz/ui/chart#configuration-categoryAxis.labels.position) option of the axis labels:
165+
To change the label position, set the [`position`](/api/javascript/dataviz/ui/chart#configuration-categoryAxis.labels.position) option of the axis labels which provides the following available options:
166+
* (Default) When `position` is set to `"onAxis"` or `undefined`, the labels are positioned next to the axis.
166167
* When `position` is set to `"end"`, the labels are placed at the end of the crossing axis. Typically, this configuration positions the labels at the top or right end of the Chart unless the crossing axis was reversed.
167168
* When `position` is set to `"start"`, the labels are placed at the start of the crossing axis. Typically, this configuration positions the labels at the left or bottom end of the Chart unless the crossing axis was reversed.
168-
* When `position` is set to `"onAxis"` or `undefined`, the labels are positioned next to the axis. This is the default value.
169169

170170
###### Example
171171

@@ -292,14 +292,14 @@ XY Kendo UI Charts, such as [Scatter](http://demos.telerik.com/kendo-ui/scatter-
292292
}
293293
});
294294

295-
### Label Position of the Scatter Chart Axes
295+
### Label Positioning for the Scatter Chart Axes
296296

297297
The X and Y axes provide options for displaying their labels either next to the axis or at the outer edges of the plot area. By default, the labels are positioned next to the axis.
298298

299-
To change the label position, set the [`position`](/api/javascript/dataviz/ui/chart#configuration-xAxis.labels.position) option of the axis labels:
299+
To change the label position, set the [`position`](/api/javascript/dataviz/ui/chart#configuration-xAxis.labels.position) option of the axis labels which provides the following available options:
300+
* (Default) When `position` is set to `"onAxis"` or `undefined`, the labels are positioned next to the axis.
300301
* When `position` is set to `"end"`, the labels are placed at the end of the crossing axis. Typically, this configuration positions the labels at the top or right end of the Chart unless the crossing axis was reversed.
301302
* When `position` is set to `"start"`, the labels are placed at the start of the crossing axis. Typically, this configuration positions the labels at the left or bottom end of the Chart unless the crossing axis was reversed.
302-
* When `position` is set to `"onAxis"` or `undefined`, the labels are positioned next to the axis. This is the default value.
303303

304304
###### Example
305305

docs/controls/conversational-ui/chat/overview.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ The Chat provides rich conversational experience that goes beyond the natural la
4747

4848
## Features
4949

50-
* [Configuring the items of the Chat]({% slug chat_items %})
50+
* [Items]({% slug chat_items %})
51+
* [Toolbar]({% slug toolbar_for_chat %})
5152
* [Connecting to Chat Bot services]({% slug connect_to_chatbot_service %})
5253
* [Connecting to Microsoft Bot Framework]({% slug connect_to_ms_bot_framework %})
5354
* [Connecting to Google DialogFlow]({% slug connect_to_google_dialogflow %})

docs/controls/conversational-ui/chat/toolbar.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ position: 3
88

99
# Chat Toolbar
1010

11-
The Chat Toolbar allows adding different toolbar actions for achieving more user friendly conversational UI.
11+
The toolbar of the Chat allows you to add toolbar actions for achieving more user-friendly conversational UI.
1212

13-
The Toolbar is placed below the Chat input box and it can be shown/hidden by clicking the toolbar icon placed just to the left from the send button. The Chat Toolbar allows you to include buttons, which the end users can interact with. By handling the [`toolClick`](/api/javascript/ui/chat/events/toolclick) event you can implement functionality based on the command executed in the toolbar.
13+
The toolbar is located below the input box of the Chat. You can display or hide the toolbar by clicking the toolbar icon which is placed to the left of the **Send** button. The Chat toolbar enables you to add buttons for end-user interaction. Depending on the executed command in the toolbar, you can also implement a specific functionality by handling the [`toolClick`](/api/javascript/ui/chat/events/toolclick) event.
1414

15-
## Configure Toolbar Items
15+
## Configuring Toolbar Items
1616

17-
In order to configure the Toolbar items, you will need to use the [`toolbar.buttons`](/api/javascript/ui/chat/configuration/toolbar.buttons) configuration option of the Chat widget:
17+
To configure the Toolbar items, use the [`toolbar.buttons`](/api/javascript/ui/chat/configuration/toolbar.buttons) option of the Chat.
1818

1919
```html
2020
<div id="chat"></div>
@@ -33,15 +33,13 @@ In order to configure the Toolbar items, you will need to use the [`toolbar.butt
3333
</script>
3434
```
3535

36-
## Configure Toolbar Behavior
36+
## Configuring Toolbar Behavior
3737

38-
The Chat configuration object allows you to configure:
38+
The Chat configuration object allows you to configure the following behavior aspects of the toolbar:
3939

40-
* The [animation](/api/javascript/ui/chat/configuration/toolbar.animation) behavior of its Toolbar.
41-
42-
* Wether the Toolbar will have a [scroll](/api/javascript/ui/chat/configuration/toolbar.scrollable). That is useful in cases when the buttons could not entirely fit within the width of the widget.
43-
44-
* Wether it could be [hidden and shown](/api/javascript/ui/chat/configuration/toolbar.toggleable) upon a button click.
40+
* The [animation](/api/javascript/ui/chat/configuration/toolbar.animation) behavior of its toolbar.
41+
* Whether the toolbar will be [scrollable](/api/javascript/ui/chat/configuration/toolbar.scrollable). A scrollbar is useful when the buttons cannot entirely fit within the width of the Chat.
42+
* Whether the toolbar will be [displayed or hidden](/api/javascript/ui/chat/configuration/toolbar.toggleable) upon a button click.
4543

4644
```html
4745
<div id="chat"></div>

docs/knowledge-base/grid-display-hidden-values-in-details.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
---
2-
title: Display Hidden Columns Values in Detail Template
2+
title: Display Hidden Column Values in Detail Template
33
description: An example on how to show the values of the hidden column in the detail template of the Kendo UI Grid.
44
type: how-to
5-
page_title: Responsive Value Display | Kendo UI Grid
5+
page_title: Implement Responsive Value Display | Kendo UI Grid
66
slug: grid-display-hidden-values-in-details
77
tags: grid, responsive, details
88
ticketid: 1180379
99
res_type: kb
1010
---
1111

1212
## Environment
13+
1314
<table>
1415
<tr>
1516
<td>Product Version</td>
@@ -27,8 +28,6 @@ How can I display the hidden columns values in the detail template of the rows i
2728

2829
## Solution
2930

30-
To display the hidden columns values:
31-
3231
1. Implement a [`detailTemplate`](https://docs.telerik.com/kendo-ui/api/javascript/ui/grid/configuration/detailtemplate).
3332
1. Use [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries) to show and hide the desired data in the detail template.
3433

@@ -103,4 +102,4 @@ To display the hidden columns values:
103102
}
104103
});
105104
</script>
106-
```
105+
```
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
---
2+
title: Displaying Grid Toolbar at Bottom
3+
description: An example demonstrating how to display the toolbar at the bottom of the Grid
4+
type: how-to
5+
page_title: Positioning the Toolbar Below Grid Body | Kendo UI Grid
6+
slug: grid-toolbar-bottom-position-placement
7+
tags: grid, toolbar, bottom, position, placement
8+
ticketid: 1120199
9+
res_type: kb
10+
---
11+
12+
## Environment
13+
<table>
14+
<tr>
15+
<td>Product</td>
16+
<td>Grid for Progress® Kendo UI®</td>
17+
</tr>
18+
<tr>
19+
<td>Product Version</td>
20+
<td>2018.2.620</td>
21+
</tr>
22+
</table>
23+
24+
## Description
25+
26+
How can I change the Kendo UI Grid's toolbar position to the bottom?
27+
28+
## Solution
29+
30+
Using jQuery, the toolbar can be placed below the content of the Kendo UI Grid:
31+
32+
```
33+
$("#grid").find(".k-grid-toolbar").insertAfter($("#grid .k-grid-content"));
34+
35+
```
36+
The following demonstrates a Kendo UI Grid using batch editing with the toolbar at the bottom above the pager:
37+
```html
38+
<div id="example">
39+
<div id="grid"></div>
40+
<script>
41+
$(document).ready(function () {
42+
var crudServiceBaseUrl = "https://demos.telerik.com/kendo-ui/service",
43+
dataSource = new kendo.data.DataSource({
44+
transport: {
45+
read: {
46+
url: crudServiceBaseUrl + "/Products",
47+
dataType: "jsonp"
48+
},
49+
update: {
50+
url: crudServiceBaseUrl + "/Products/Update",
51+
dataType: "jsonp"
52+
},
53+
destroy: {
54+
url: crudServiceBaseUrl + "/Products/Destroy",
55+
dataType: "jsonp"
56+
},
57+
create: {
58+
url: crudServiceBaseUrl + "/Products/Create",
59+
dataType: "jsonp"
60+
},
61+
parameterMap: function(options, operation) {
62+
if (operation !== "read" && options.models) {
63+
return {models: kendo.stringify(options.models)};
64+
}
65+
}
66+
},
67+
batch: true,
68+
pageSize: 20,
69+
schema: {
70+
model: {
71+
id: "ProductID",
72+
fields: {
73+
ProductID: { editable: false, nullable: true },
74+
ProductName: { validation: { required: true } },
75+
UnitPrice: { type: "number", validation: { required: true, min: 1} },
76+
Discontinued: { type: "boolean" },
77+
UnitsInStock: { type: "number", validation: { min: 0, required: true } }
78+
}
79+
}
80+
}
81+
});
82+
$("#grid").kendoGrid({
83+
dataSource: dataSource,
84+
pageable: true,
85+
height: 550,
86+
toolbar: ["create", "save", "cancel"],
87+
columns: [
88+
"ProductName",
89+
{ field: "UnitPrice", title: "Unit Price", format: "{0:c}", width: "120px" },
90+
{ field: "UnitsInStock", title:"Units In Stock", width: "120px" },
91+
{ field: "Discontinued", width: "120px", editor: customBoolEditor },
92+
{ command: ["edit", "destroy"], title: "&nbsp;", width: "250px" }],
93+
editable: "inline"
94+
});
95+
96+
//Sets toolbar below Kendo UI Grid body
97+
$("#grid").find(".k-grid-toolbar").insertAfter($("#grid .k-grid-content"));
98+
});
99+
100+
function customBoolEditor(container, options) {
101+
$('<input class="k-checkbox" type="checkbox" name="Discontinued" data-type="boolean" data-bind="checked:Discontinued">').appendTo(container);
102+
$('<label class="k-checkbox-label">​</label>').appendTo(container);
103+
}
104+
</script>
105+
</div>
106+
```
107+
108+
## See Also
109+
110+
* [.find() - jQuery Documentation](https://api.jquery.com/find/)
111+
* [.insertAfter() - jQuery Documentation](http://api.jquery.com/insertafter/)

docs/knowledge-base/treelist-drag-and-scroll-mobile.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: Scroll and Drag & Drop on Mobile Devices
3-
description: An example on how to provide scrolling and the drag and drop functionality at the same time in the Kendo UI TreeList on mobile devices.
2+
title: Scroll and Drag and Drop on Mobile Devices
3+
description: An example on how to provide scrolling and the drag-and-drop functionality at the same time in the Kendo UI TreeList on mobile devices.
44
type: how-to
55
page_title: Drag and Drop on Mobile Devices | Kendo UI TreeList
66
slug: treelist-drag-and-scroll-mobile
@@ -10,6 +10,7 @@ res_type: kb
1010
---
1111

1212
## Environment
13+
1314
<table>
1415
<tr>
1516
<td>Product Version</td>
@@ -23,16 +24,16 @@ res_type: kb
2324

2425
## Description
2526

26-
How can I use the Drag & Drop functionality of the Kendo UI TreeList on mobile devices?
27+
How can I use the Drag-and-Drop functionality of the Kendo UI TreeList on mobile devices?
2728

2829
## Solution
2930

30-
To overcome the interference of the device scrolling and the Drag & Drop:
31+
To overcome the interference of the device scrolling and the drag-and-drop:
3132

3233
1. Add an additional column for dragging.
33-
1. Stop the propagation of the `touchstart` event for all the other cells.
34+
1. Stop the propagation of the `touchstart` event for all other cells.
3435

35-
> Test the below code on a mobile device.
36+
> Test the following code on a mobile device.
3637
3738
```html
3839
<div id="example">
@@ -84,4 +85,4 @@ To overcome the interference of the device scrolling and the Drag & Drop:
8485
});
8586
</script>
8687
</div>
87-
```
88+
```

tests/combobox/api.js

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
var data = [{text: "Foo", value: 1}, {text:"Bar", value:2}];
44

55
var ComboBox = kendo.ui.ComboBox;
6+
var MultiColumnComboBox = kendo.ui.MultiColumnComboBox;
67

78
var SELECTED = "k-state-selected";
89
var keys = kendo.keys;
@@ -1230,42 +1231,42 @@ test("setOptions method hides footer template", 1, function() {
12301231
});
12311232

12321233
test("each default colums header template is applied", function() {
1233-
var combobox = new ComboBox(input, {
1234+
var combobox = new MultiColumnComboBox(input, {
12341235
columns: [
12351236
{field: "name"},
12361237
{field: "id", title:"Sometitle"}
12371238
]
12381239
});
12391240

1240-
equal(combobox.columnsHeader.children().length, 2);
1241-
equal(combobox.columnsHeader.children().first().text(), "name");
1242-
equal(combobox.columnsHeader.children().last().text(), "Sometitle");
1241+
equal(combobox.columnsHeader.find(".k-header").length, 2);
1242+
equal(combobox.columnsHeader.find(".k-header").first().text(), "name");
1243+
equal(combobox.columnsHeader.find(".k-header").last().text(), "Sometitle");
12431244
});
12441245

12451246
test("each colums header template is applied", function() {
1246-
var combobox = new ComboBox(input, {
1247+
var combobox = new MultiColumnComboBox(input, {
12471248
columns: [
12481249
{field: "name", headerTemplate:"new Header"},
12491250
{field: "id", title:"Sometitle", headerTemplate:"new Header 2"}
12501251
]
12511252
});
12521253

1253-
equal(combobox.columnsHeader.children().length, 2);
1254-
equal(combobox.columnsHeader.children().first().text(), "new Header");
1255-
equal(combobox.columnsHeader.children().last().text(), "new Header 2");
1254+
equal(combobox.columnsHeader.find(".k-header").length, 2);
1255+
equal(combobox.columnsHeader.find(".k-header").first().text(), "new Header");
1256+
equal(combobox.columnsHeader.find(".k-header").last().text(), "new Header 2");
12561257
});
12571258

12581259
test("setOptions re-renders colums header template is applied", function() {
1259-
var combobox = new ComboBox(input, {
1260+
var combobox = new MultiColumnComboBox(input, {
12601261
columns: [
12611262
{field: "name", headerTemplate:"new Header"},
12621263
{field: "id", title:"Sometitle", headerTemplate:"new Header 2"}
12631264
]
12641265
});
12651266

1266-
equal(combobox.columnsHeader.children().length, 2);
1267-
equal(combobox.columnsHeader.children().first().text(), "new Header");
1268-
equal(combobox.columnsHeader.children().last().text(), "new Header 2");
1267+
equal(combobox.columnsHeader.find(".k-header").length, 2);
1268+
equal(combobox.columnsHeader.find(".k-header").first().text(), "new Header");
1269+
equal(combobox.columnsHeader.find(".k-header").last().text(), "new Header 2");
12691270

12701271
combobox.setOptions(
12711272
{
@@ -1275,9 +1276,9 @@ test("setOptions re-renders colums header template is applied", function() {
12751276
]
12761277
}
12771278
);
1278-
equal(combobox.columnsHeader.children().length, 2);
1279-
equal(combobox.columnsHeader.children().first().text(), "new Header Updated");
1280-
equal(combobox.columnsHeader.children().last().text(), "new Header 2 Updated");
1279+
equal(combobox.columnsHeader.find(".k-header").length, 2);
1280+
equal(combobox.columnsHeader.find(".k-header").first().text(), "new Header Updated");
1281+
equal(combobox.columnsHeader.find(".k-header").last().text(), "new Header 2 Updated");
12811282
});
12821283

12831284
test("setOptions re-renders noDataTemplate", function() {

0 commit comments

Comments
 (0)