From febb27d27ec871ecb76f5ebd4ebf76d126a3870f Mon Sep 17 00:00:00 2001 From: Kendo Bot Date: Tue, 14 Jan 2020 04:55:07 +0200 Subject: [PATCH] Sync with Kendo UI Professional --- docs-aspnet/_config-mvc.yml | 3 +- docs-aspnet/_config.yml | 2 + .../accessibility-compliance-core.html | 6 + .../accessibility-compliance-mvc.html | 6 + .../filemanager/binding/local.md | 57 ++ .../filemanager/binding/overview.md | 142 +++ .../filemanager/binding/remote.md | 2 + .../filemanager/binding/server-operations.md | 1 + .../filemanager/context-menu.md | 25 +- .../filemanager/drag-and-drop.md | 17 + .../data-management/filemanager/gridview.png | Bin 0 -> 23361 bytes .../data-management/filemanager/listview.png | Bin 0 -> 7508 bytes .../data-management/filemanager/navigation.md | 16 + .../data-management/filemanager/overview.md | 133 ++- .../filemanager/preview-pane.md | 78 +- .../data-management/filemanager/search.md | 12 + .../data-management/filemanager/search.png | Bin 0 -> 17698 bytes .../data-management/filemanager/sort.md | 20 + .../data-management/filemanager/sort.png | Bin 0 -> 34948 bytes .../data-management/filemanager/toolbar.md | 20 + .../data-management/filemanager/toolbar.png | Bin 0 -> 28073 bytes .../data-management/filemanager/views.md | 39 + .../navigation/breadcrumb/icons.md | 2 +- docs-aspnet/list-of-helpers-core.html | 9 + docs-aspnet/list-of-helpers-mvc.html | 6 + .../navigation/breadcrumb/icons.md | 2 +- docs/_config.yml | 2 + docs/accessibility/keyboard-support.md | 2 + docs/accessibility/section-508-wcag.md | 1 + docs/api/javascript/ui/filemanager.md | 956 +++++++++++++++++- .../filemanager/binding/local.md | 7 +- .../filemanager/binding/overview.md | 8 +- .../filemanager/binding/remote.md | 74 ++ .../data-management/filemanager/overview.md | 2 +- .../filemanager/preview-pane.md | 6 +- .../data-management/filemanager/toolbar.md | 2 +- .../data-management/filemanager/views.md | 2 +- docs/controls/editors/editor/appearance.md | 2 +- .../editors/editor/format-painter.png | Bin 0 -> 34186 bytes docs/controls/editors/editor/formatpainter.md | 40 + docs/controls/editors/editor/immutable.md | 312 +++--- docs/controls/editors/editor/overview.md | 1 + docs/controls/editors/editor/pasting.md | 2 +- docs/controls/editors/editor/post-process.md | 2 +- .../controls/editors/editor/preventing-xss.md | 2 +- .../editors/editor/table-wizard-dialog.md | 189 ++-- docs/controls/navigation/breadcrumb/icons.md | 2 +- docs/introduction.md | 3 +- styles/web/Default/checkbox/_layout.less | 10 +- typescript/kendo.all.d.ts | 2 +- 50 files changed, 1947 insertions(+), 280 deletions(-) create mode 100644 docs-aspnet/html-helpers/data-management/filemanager/gridview.png create mode 100644 docs-aspnet/html-helpers/data-management/filemanager/listview.png create mode 100644 docs-aspnet/html-helpers/data-management/filemanager/search.png create mode 100644 docs-aspnet/html-helpers/data-management/filemanager/sort.png create mode 100644 docs-aspnet/html-helpers/data-management/filemanager/toolbar.png create mode 100644 docs/controls/editors/editor/format-painter.png create mode 100644 docs/controls/editors/editor/formatpainter.md diff --git a/docs-aspnet/_config-mvc.yml b/docs-aspnet/_config-mvc.yml index fac7c911a48..9395cda1f66 100644 --- a/docs-aspnet/_config-mvc.yml +++ b/docs-aspnet/_config-mvc.yml @@ -371,7 +371,8 @@ defaults: path: "html-helpers/navigation/breadcrumb" values: title_prefix: "MVC Breadcrumb Component" -- + title: "Breadcrumb" +- scope: path: "html-helpers/navigation/button" values: diff --git a/docs-aspnet/_config.yml b/docs-aspnet/_config.yml index 747d19cd608..8276ae8190b 100644 --- a/docs-aspnet/_config.yml +++ b/docs-aspnet/_config.yml @@ -326,6 +326,8 @@ navigation: title: "Layout" "html-helpers/navigation": title: "Navigation" + "html-helpers/navigation/breadcrumb": + title: "Breadcrumb" "html-helpers/navigation/radiobutton": title: "RadioButton" "html-helpers/navigation/menu/contextmenu": diff --git a/docs-aspnet/accessibility/accessibility-compliance-core.html b/docs-aspnet/accessibility/accessibility-compliance-core.html index f94b7c985f5..93202e9541e 100644 --- a/docs-aspnet/accessibility/accessibility-compliance-core.html +++ b/docs-aspnet/accessibility/accessibility-compliance-core.html @@ -20,6 +20,12 @@ AAA n/a + + Breadcrumb + Yes + AA + Yes + Button Yes diff --git a/docs-aspnet/accessibility/accessibility-compliance-mvc.html b/docs-aspnet/accessibility/accessibility-compliance-mvc.html index 36ca8df43d0..999b5689cf3 100644 --- a/docs-aspnet/accessibility/accessibility-compliance-mvc.html +++ b/docs-aspnet/accessibility/accessibility-compliance-mvc.html @@ -20,6 +20,12 @@ AAA - + + Breadcrumb + Yes + AA + Yes + Button Yes diff --git a/docs-aspnet/html-helpers/data-management/filemanager/binding/local.md b/docs-aspnet/html-helpers/data-management/filemanager/binding/local.md index d6ebc1dbd4b..db983654bd2 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/binding/local.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/binding/local.md @@ -4,6 +4,63 @@ page_title: Local Binding description: "Learn how to implement Local Binding with Telerik UI FileManager HtmlHelper for {{ site.framework }}." slug: htmlhelpers_filemanager_aspnetcore_localbinding position: 1 +published: false --- # Local Data + +The {{ site.product }} FileManager enables you to bind it to local arrays of data. + + +To bind the FileManager to local data, set the `dataSource` option of the `kendoFileManager` object. The data should correspond ot the FileManager built-in model schema (see [Data Binding Overview]({% slug bindingoverview_kendoui_filemanager_widget %}) article) + +```dojo + // Define the HTML div that will contain the FileManager. +
+ + // Initialize the FileManager with local data. + +``` + +* [Overview of Kendo UI FileManager]({% slug overview_kendoui_filemanager_widget %}) +* [Sort in Kendo UI FileManager]({% slug sort_kendoui_filemanager_widget %}) +* [Toolbar Commands in Kendo UI FileManager]({% slug toolbar_kendoui_filemanager_widget %}) diff --git a/docs-aspnet/html-helpers/data-management/filemanager/binding/overview.md b/docs-aspnet/html-helpers/data-management/filemanager/binding/overview.md index 0356258deeb..7a0a3dbb947 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/binding/overview.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/binding/overview.md @@ -7,3 +7,145 @@ position: 0 --- # DataBiding Overview + +Depending on the configuration of its [DataSource]({% slug htmlhelpers_datasource_aspnetcore %}), the {{ site.product_short }} FileManager provides different types of data binding. + + +## Remote Binding + +The {{ site.product }} FileManager provides its own `ContentProviderController` which you need to inherit, in order to use the inbuilt `read`, `create`, `update` and `destroy` methods. As those as virtual methods, they can be overwritten and extended. + + +To bind the FileManager to remote data, specify the `dataSource` option and supply the object with the needed endpoints for `read`, `create`, `update` and `destroy` operations. The following example demonstrates such implementation, where the FileManagerData inherits the `ContentProviderController`: + +```Razor + @(Html.Kendo().FileManager() + .Name("filemanager") + .DataSource(ds => + { + ds.Read(operation => operation + .Type(HttpVerbs.Post) + .Action("Read", "FileManagerData") + ); + ds.Destroy(operation => operation + .Type(HttpVerbs.Post) + .Action("Destroy", "FileManagerData") + ); + ds.Create(operation => operation + .Type(HttpVerbs.Post) + .Action("Create", "FileManagerData") + ); + ds.Update(operation => operation + .Type(HttpVerbs.Post) + .Action("Update", "FileManagerData") + ); + }) + .UploadUrl("Upload", "FileManagerData") +) +``` +```Controller + // GET: /FileManager/ + private const string contentFolderRoot = "~/Content/"; + private const string prettyName = "Folders/"; + private static readonly string[] foldersToCopy = new[] { "~/Content/shared/filemanager" }; + + + /// + /// Gets the base paths from which content will be served. + /// + public override string ContentPath + { + get + { + return CreateUserFolder(); + } + } + + /// + /// Gets the valid file extensions by which served files will be filtered. + /// + public override string Filter + { + get + { + return "*.*"; + } + } + + private string CreateUserFolder() + { + var virtualPath = Path.Combine(contentFolderRoot, "UserFiles", prettyName); + + var path = Server.MapPath(virtualPath); + if (!Directory.Exists(path)) + { + Directory.CreateDirectory(path); + foreach (var sourceFolder in foldersToCopy) + { + CopyFolder(Server.MapPath(sourceFolder), path); + } + } + return virtualPath; + } + + private void CopyFolder(string source, string destination) + { + if (!Directory.Exists(destination)) + { + Directory.CreateDirectory(destination); + } + + foreach (var file in Directory.EnumerateFiles(source)) + { + var dest = Path.Combine(destination, Path.GetFileName(file)); + System.IO.File.Copy(file, dest); + } + + foreach (var folder in Directory.EnumerateDirectories(source)) + { + var dest = Path.Combine(destination, Path.GetFileName(folder)); + CopyFolder(folder, dest); + } + } +``` + + + +The following list provides information about the default requests and responses for the `create`, `read`, `destroy` operations. + +- `Create`—Makes a `POST` request for the creation of a directory with the following parameters. + + {"Name":"...","Size":0,"Path":"...","Extension":".txt","IsDirectory":...,"HasDirectories":...,"Created":"...","CreatedUtc":"...","Modified":"...","ModifiedUtc":"..."} + +- `Read`—Makes a `POST` request that contains the `path` parameter to specify the path which is browsed and expects a file listing in the following format: + + [ + {"Name":"Documents","Size":0,"Path":"Documents","Extension":"","IsDirectory":true,"HasDirectories":false,"Created":"\/Date(1578897289317)\/","CreatedUtc":"\/Date(1578897289317)\/","Modified":"\/Date(1578897289332)\/","ModifiedUtc":"\/Date(1578897289332)\/"}, + ... + ] + + +- `Destroy`—Makes a `POST` request containing `FormData` with the following parameters: + + - `Name`—The file or directory to be deleted. + - `Path`—The directory in which the file or the directory resides. + - `Extension`— The extension of the deleted file. No extension in the data, if a folder is deleted. + - `Size`&mdash The file size, as provided by the `read` response. + - `IsDirectory`— Boolean, specifying if the deleted is a file or not. + - `HasDirectories`— Boolean, specifying if the deleted contains folders. + - `Created`— Created Date of the deleted item. + - `CreatedUtc`— Created Date in UTC format of the deleted item. + - `Modified`— Modified Date of the deleted item. + - `mModifiedUtc`— Created Date in UTC formats of the deleted item. + +- `Update`—Makes a `POST` request, containing the `FileEntry` object. The expected response is a `file` object in the following format: + + {"Name":"...","Size":0,"Path":"...","Extension":".txt","IsDirectory":...,"HasDirectories":...,"Created":"...","CreatedUtc":"...","Modified":"...","ModifiedUtc":"..."} + + +## See Also +* [Overview of {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_overview %}) +* [Navigation in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_navigation %}) +* [Preview Panes in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_previewpane %}) + +​​​​​​​  \ No newline at end of file diff --git a/docs-aspnet/html-helpers/data-management/filemanager/binding/remote.md b/docs-aspnet/html-helpers/data-management/filemanager/binding/remote.md index 74571f3d832..e08342fee91 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/binding/remote.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/binding/remote.md @@ -4,6 +4,8 @@ page_title: Remote Binding description: "Learn how to implement Remote Binding with Telerik UI FileManager HtmlHelper for {{ site.framework }}." slug: htmlhelpers_filemanager_aspnetcore_remotebinding position: 2 +published: false --- # Remote Data + diff --git a/docs-aspnet/html-helpers/data-management/filemanager/binding/server-operations.md b/docs-aspnet/html-helpers/data-management/filemanager/binding/server-operations.md index 1f6f42794ce..3de3e3debca 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/binding/server-operations.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/binding/server-operations.md @@ -4,6 +4,7 @@ page_title: Server Operations description: "Learn how to implement different Server Operations with Telerik UI FileManager HtmlHelper for {{ site.framework }}." slug: htmlhelpers_filemanager_aspnetcore_serveroperations position: 3 +published: false --- # Server Operations diff --git a/docs-aspnet/html-helpers/data-management/filemanager/context-menu.md b/docs-aspnet/html-helpers/data-management/filemanager/context-menu.md index 62fe14efe49..e679590f8dc 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/context-menu.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/context-menu.md @@ -6,4 +6,27 @@ slug: htmlhelpers_filemanager_aspnetcore_contextmenu position: 3 --- -# ContextMenu + +# ContextMenu in FileManager +The {{ site.product }} FileManager's ContextMenu enables you to easily execute FileManager commands on the selected file or folder. + +The component uses the {{ site.product }} ContextMenu, enabling you to get full advantage of its [Client API](/api/javascript/ui/filemanager). Once an item is selected, the corresponding command is executed. + +The default items in the ContextMenu are `rename` and `delete`. You can define your custom items which can execute custom commands. You can also manage what items should be visible, by enumerating the needed ones in the initialization of the component (see Example below) + + @(Html.Kendo().FileManager() + .Name("filemanager") + .ContextMenu(context => context.Items(items => + { + items.Add("rename"); + items.Add("delete"); + })) + ... + ) + +## See Also + +* [Overview of FileManager]({% slug htmlhelpers_filemanager_aspnetcore_overview %}) +* [Drag and Drop FileManager]({% slug htmlhelpers_filemanager_aspnetcore_dragndrop %}) +* [Navigation in FileManager]({% slug htmlhelpers_filemanager_aspnetcore_navigation %}) + diff --git a/docs-aspnet/html-helpers/data-management/filemanager/drag-and-drop.md b/docs-aspnet/html-helpers/data-management/filemanager/drag-and-drop.md index 66663a568f5..595517b8d9c 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/drag-and-drop.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/drag-and-drop.md @@ -7,3 +7,20 @@ position: 4 --- # Drag and Drop Overview + +The {{ site.product }} FileManager provides inbuilt Drag and Drop functionality, which allows dragging and dropping files from the FileManager view(GridView, ListView) to the TreeView and vice versa. The functionality is enabled by default and it can be controlled by the `Draggable` option. + + +The following example demonstrated how to disable the Drag and Drop functionality of the FileManager: + + @(Html.Kendo().FileManager() + .Name("filemanager") + .Draggable(false) + ... + ) + +## See Also + +* [Overview of {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_overview %}) +* [Preview Panes in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_previewpane %}) +* [ToolbarCommands in{{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_toolbar %}) diff --git a/docs-aspnet/html-helpers/data-management/filemanager/gridview.png b/docs-aspnet/html-helpers/data-management/filemanager/gridview.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9767c346dc1af29dc96b8fef6e0d0a43127d51 GIT binary patch literal 23361 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 Rof)ow(Nxt@DOI)!_%B~9Kf?e3 literal 0 HcmV?d00001 diff --git a/docs-aspnet/html-helpers/data-management/filemanager/listview.png b/docs-aspnet/html-helpers/data-management/filemanager/listview.png new file mode 100644 index 0000000000000000000000000000000000000000..dc244aa45c8213ecc6327200a8ef968fe68f1626 GIT binary patch literal 7508 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 literal 0 HcmV?d00001 diff --git a/docs-aspnet/html-helpers/data-management/filemanager/navigation.md b/docs-aspnet/html-helpers/data-management/filemanager/navigation.md index 970dd5f1384..41f3a20bd8a 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/navigation.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/navigation.md @@ -8,5 +8,21 @@ position: 5 # Navigation Overview +The navigation within the file structure in the {{ site.product }} FileManager is achieved with the help of an inbuilt [TreeView](#treeview) and [Breacrumb](#breadcrumb) components. + ## TreeView +On the left-hand side of the FileManager there is a nested [{{ site.product }} TreeView]({% slug htmlhelpers_treeview_aspnetcore %}) component, listing all folders loaded in the FileManager. The TreeView allows dragging and dropping files inside it, or between the Grid and ListView. It also provides you the possibility to rename files or folders, as well as execute commands with the inbuilt ContextMenu. + +The nested [{{ site.product }} TreeView]({% slug htmlhelpers_treeview_aspnetcore %}) component is the standard component from the {{ site.product }} suite. This is why, all functionalities and features, such as Keyboard Support and Accessibility compliance, are inherited. + ## Breadcrumb + +As for R1 2020, the [{{ site.product }} Breadcrumb]({% slug htmlhelpers_breadcrumb_aspnetcore_overview %}) component is added to the Kendo UI suite and it is incorporated in the FileManager for easy navigation. + +## See Also + +* [Overview of Kendo UI FileManager]({% slug htmlhelpers_filemanager_aspnetcore_overview %}) +* [Kendo UI TreeView]({% slug htmlhelpers_treeview_aspnetcore %}) +* [Breadcrumb]({% slug htmlhelpers_breadcrumb_aspnetcore_overview %}) +* [Sort in Kendo UI FileManager]({% slug htmlhelpers_filemanager_aspnetcore_sort %}) +* [Search in Kendo UI FileManager]({% slug htmlhelpers_filemanager_aspnetcore_search %}) diff --git a/docs-aspnet/html-helpers/data-management/filemanager/overview.md b/docs-aspnet/html-helpers/data-management/filemanager/overview.md index e1e47b4852c..736a2b0f368 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/overview.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/overview.md @@ -1,9 +1,138 @@ --- title: Overview page_title: Overview -description: "Get started with the Telerik IO for {{ site.framework }} FileManager component and learn how to create, initialize, and enable the widget." +description: "Get started with the Telerik UI for {{ site.framework }} FileManager component and learn how to create, initialize, and enable the widget." slug: htmlhelpers_filemanager_aspnetcore_overview position: 0 --- -# FileManager HtmlHelper Overview +# FileManager Overview + +The {{ site.product }} FileManager is an Explorer-like component enabling you to manage file and folders. + +It enables you to organize and manage files and folders and provides you with a rich API for customization. You can show additional information about the selected file in a template-customizable Preview Pane, which you can show or hide via a switch button. The widget is built entirely by Kendo UI for jQuery components: [Grid]({% slug htmlhelpers_grid_aspnetcore_overview %}), [ListView]({% slug htmlhelpers_listview_aspnetcore %}), [TreeView]({% slug htmlhelpers_treeview_aspnetcore %}), [Toolbar]({% slug htmlhelpers_toolbar_aspnetcore %}), [Breadcrumb]({% slug htmlhelpers_breadcrumb_aspnetcore_overview %}). + + +* [Demo page for the FileManager](http://demos.telerik.com/{{ site.platform }}/filemanager/index) + +## Initializing the FileManager + +The following example demonstrates initialization of the FileManager with a local binding. The file structure is served as JSON though the FileManager DataSource object. + +```Razor + @(Html.Kendo().FileManager() + .Name("filemanager") + .DataSource(ds => + { + ds.Read(operation => operation + .Type(HttpVerbs.Post) + .Action("Read", "FileManagerData") + ); + ds.Destroy(operation => operation + .Type(HttpVerbs.Post) + .Action("Destroy", "FileManagerData") + ); + ds.Create(operation => operation + .Type(HttpVerbs.Post) + .Action("Create", "FileManagerData") + ); + ds.Update(operation => operation + .Type(HttpVerbs.Post) + .Action("Update", "FileManagerData") + ); + }) + .UploadUrl("Upload", "FileManagerData") +) +``` +```Controller + // GET: /FileManager/ + private const string contentFolderRoot = "~/Content/"; + private const string prettyName = "Folders/"; + private static readonly string[] foldersToCopy = new[] { "~/Content/shared/filemanager" }; + + + /// + /// Gets the base paths from which content will be served. + /// + public override string ContentPath + { + get + { + return CreateUserFolder(); + } + } + + /// + /// Gets the valid file extensions by which served files will be filtered. + /// + public override string Filter + { + get + { + return "*.*"; + } + } + + private string CreateUserFolder() + { + var virtualPath = Path.Combine(contentFolderRoot, "UserFiles", prettyName); + + var path = Server.MapPath(virtualPath); + if (!Directory.Exists(path)) + { + Directory.CreateDirectory(path); + foreach (var sourceFolder in foldersToCopy) + { + CopyFolder(Server.MapPath(sourceFolder), path); + } + } + return virtualPath; + } + + private void CopyFolder(string source, string destination) + { + if (!Directory.Exists(destination)) + { + Directory.CreateDirectory(destination); + } + + foreach (var file in Directory.EnumerateFiles(source)) + { + var dest = Path.Combine(destination, Path.GetFileName(file)); + System.IO.File.Copy(file, dest); + } + + foreach (var folder in Directory.EnumerateDirectories(source)) + { + var dest = Path.Combine(destination, Path.GetFileName(folder)); + CopyFolder(folder, dest); + } + } +``` +## Referencing Existing Instances + +To refer to an existing Grid instance, use the [`jQuery.data()`](https://api.jquery.com/jQuery.data/) method. Once a reference is established, use the [FileManager client-side API](https://docs.telerik.com/kendo-ui/api/javascript/ui/filemanager) to control its behavior. + + var filemanager = $("#filemanager").data("kendoFileManager"); + +## Functionality and Features + +* [Data binding]({% slug htmlhelpers_filemanager_aspnetcore_binding_overview %}) +* [ContextMenu]({% slug htmlhelpers_filemanager_aspnetcore_contextmenu %}) +* [Drag and Drop]({% slug htmlhelpers_filemanager_aspnetcore_dragndrop %}) +* [Views]({% slug htmlhelpers_filemanager_aspnetcore_views %}) +* [Navigation]({% slug htmlhelpers_filemanager_aspnetcore_navigation %}) +* [PreviewPane]({% slug htmlhelpers_filemanager_aspnetcore_previewpane %}) +* [Search]({% slug htmlhelpers_filemanager_aspnetcore_search %}) +* [Sort]({% slug htmlhelpers_filemanager_aspnetcore_sort %}) +* [Toolbar Commands]({% slug htmlhelpers_filemanager_aspnetcore_toolbar %}) +* [Accessibility]({% slug accessibility_aspnetcore_filemanager %}) +* [Globalization]({% slug globalization_filemanager_aspnetcore %}) + +Visit the [Client API section](https://docs.telerik.com/kendo-ui/api/javascript/ui/filemanager) for full description of the configurations methods and events of the Kendo UI for jQuery FileManager component. + +## See Also + +* [Basic Usage of the FileManager (Demo)](http://demos.telerik.com/{{ site.platform }}/filemanager/index) +* [Binding Overview of the FileManager]({% slug htmlhelpers_filemanager_aspnetcore_binding_overview %}) +* [Globalization in {{ site.product }}]({% slug overview_globalization_core %}) diff --git a/docs-aspnet/html-helpers/data-management/filemanager/preview-pane.md b/docs-aspnet/html-helpers/data-management/filemanager/preview-pane.md index 268edfbd3df..83a524428cd 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/preview-pane.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/preview-pane.md @@ -5,5 +5,81 @@ description: "Understand how you can easily enable, disable and customize the Pr slug: htmlhelpers_filemanager_aspnetcore_previewpane position: 6 --- - # Preview Pane Overview + +The Preview Pane in the {{ site.product }} FileManager shows additional information about the selected files or folders in the view. + +The preview pane visibility could be toggled by the Switch Tool in the FileManager Toolbar. By default, it shows the following information about the selected file or folder: + +* Thumbnail (with the name of the file/folder) +* File extension +* File size +* Date created +* Date modified + +The `MetaFields` object in the PreviewPane configuration, allows you to control which fields from the above-enumerated should be displayed. If you need to show only the Extension and Size information in the Preview Pane, the configuration would be as follows: + + + @(Html.Kendo().FileManager() + .Name("filemanager") + .PreviewPane(p => p.MetaFields("size", "extension")) + ..... + ) + + + +## Customize Preview Pane + +You can customize the Preview Pane layout by specifying a kendo Template. The Pane accepts the following templates: + +* NoFileTemplate: String | Function - Template when no file/folder is selected +* SingleFileTemplate: String | Function - Template when only a single file/folder is selected +* MultipleFilesTemplate: String | Function - Template when multiple files/folders are selected + +The following example demonstrates a singleFileTemplate declaration in the FileManager + + @(Html.Kendo().FileManager().Name("filemanager") + .PreviewPane(p => p.SingleFileTemplateId("preview-template")) + ...... + ) + + + + + +## See Also + +* [Overview of {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_overview %}) +* [Basic Usage of the {{ site.product }} FileManager (Demo)](https://demos.telerik.com/{{ site.product }}/filemanager/index) +* [Client API section](https://docs.telerik.com/kendo-ui/api/javascript/ui/filemanager) +* [Sort in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_sort %}) +* [Toolbar Commands in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_toolbar %}) \ No newline at end of file diff --git a/docs-aspnet/html-helpers/data-management/filemanager/search.md b/docs-aspnet/html-helpers/data-management/filemanager/search.md index 5ae304032ee..fdd658db65e 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/search.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/search.md @@ -7,3 +7,15 @@ position: 7 --- # Search in FileManager + +The {{ site.product }} FileManager provides an inbuilt Search functionality, allowing you to find the specific file in the currently selected folder. + +**Inbuilt Search textbox in FileManager:** + + + +## See Also + +* [Overview of {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_overview %}) +* [Sort in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_sort %}) +* [Toolbar Commands in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_toolbar %}) diff --git a/docs-aspnet/html-helpers/data-management/filemanager/search.png b/docs-aspnet/html-helpers/data-management/filemanager/search.png new file mode 100644 index 0000000000000000000000000000000000000000..968232c74496ea44c4056946efcb08ca12f3ba3a GIT binary patch literal 17698 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 + + +## See Also + +* [Overview of {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_overview %}) +* [Views in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_views %}) +* [Navigation in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_navigation %}) \ No newline at end of file diff --git a/docs-aspnet/html-helpers/data-management/filemanager/sort.png b/docs-aspnet/html-helpers/data-management/filemanager/sort.png new file mode 100644 index 0000000000000000000000000000000000000000..989384b64363b52a02a745a72a598763b92814af GIT binary patch literal 34948 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 DiEG7w literal 0 HcmV?d00001 diff --git a/docs-aspnet/html-helpers/data-management/filemanager/toolbar.md b/docs-aspnet/html-helpers/data-management/filemanager/toolbar.md index 30cf0f1663f..94694cf8dbd 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/toolbar.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/toolbar.md @@ -7,3 +7,23 @@ position: 9 --- # Toolbar Commands + +The {{ site.product }} FileManager component contains a nested {{ site.product }} Toolbar component. + +The toolbar has a predefined set of tools which you can show or hide, depending on your preferences and business scenario. By default, the toolbar contains the following tools: + +* *New Folder* button, allowing you to create new folders in the current location. +* *Upload Button* prompting you with a window to upload files. +* *Sort By* dropdown, allowing you to sort by a number of predicates +* *Views* button group to control +* *View Details* switch button to toggle the Preview Pane visibility +* *Search* textbox to filter the content + +**Inbuilt Sort functionality in {{ site.product }} FileManager:** + + +## See Also + +* [Overview of {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_overview %}) +* [ContextMenu in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_contextmenu %}) +* [Drag and Drop in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_dragndrop %}) diff --git a/docs-aspnet/html-helpers/data-management/filemanager/toolbar.png b/docs-aspnet/html-helpers/data-management/filemanager/toolbar.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd4e30a0c4454cadd31486fc75011aa4994b0ea GIT binary patch literal 28073 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 literal 0 HcmV?d00001 diff --git a/docs-aspnet/html-helpers/data-management/filemanager/views.md b/docs-aspnet/html-helpers/data-management/filemanager/views.md index eb73f03306f..3c6900ea037 100644 --- a/docs-aspnet/html-helpers/data-management/filemanager/views.md +++ b/docs-aspnet/html-helpers/data-management/filemanager/views.md @@ -7,3 +7,42 @@ position: 4 --- # Views Overview + +The {{ site.product }} FileManager provides two inbuilt views for content visualization: `Grid` and `List` Views. + +You can switch between views from the Toolbar button group. + +## Grid View +This view is achieved with the {{ site.product }} Grid and in renders the files in a tabular manner (see Image1 below). That said, you can control the configuration of this view trough the `views.grid` object of the FileManager (see example below). + + + @(Html.Kendo().FileManager() + .Name("filemanager") + .Views(v => v.Grid(grid => grid.Columns(cols => cols.Add(....)))) + + ) + + +**Image1: GridView type in FileManager:** + + + +## List View (Thumbnails) + +The List view is implemented with the help of the {{ site.product }} ListView component. The content in this view is rendered as a list of thumbnails, representing the files. You can control the configuration of this view trough the `views.list` object of the FileManager. + + + @(Html.Kendo().FileManager() + .Name("filemanager") + .Views(v=>v.List(list=>list.TemplateId("..."))) + + ) + +**Image2: ListView type in FileManager:** + + + +## See Also + +* [ContextMenu in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_contextmenu %}) +* [Drag and Drop in {{ site.product }} FileManager]({% slug htmlhelpers_filemanager_aspnetcore_dragndrop %}) diff --git a/docs-aspnet/html-helpers/navigation/breadcrumb/icons.md b/docs-aspnet/html-helpers/navigation/breadcrumb/icons.md index 191a28102b6..25ec52b3ce4 100644 --- a/docs-aspnet/html-helpers/navigation/breadcrumb/icons.md +++ b/docs-aspnet/html-helpers/navigation/breadcrumb/icons.md @@ -12,7 +12,7 @@ The Breadcrumb allows to configure the icons of the items and the delimiters. ## Root Icon -The root icon is the first icon and is rendered as a home icon - ![image](https://user-images.githubusercontent.com/4222379/68296492-6b670300-009d-11ea-95fd-89231ce1fa6d.png). It can be changed through the `items.icon` configuration. It is also clickable and it will reset the value of the component. +The root icon is the first icon and is rendered as a `home` icon. It can be changed through the `items.icon` configuration. It is also clickable and it will reset the value of the component. ## Item Icon diff --git a/docs-aspnet/list-of-helpers-core.html b/docs-aspnet/list-of-helpers-core.html index 937806f3aeb..91b5c68a6e3 100644 --- a/docs-aspnet/list-of-helpers-core.html +++ b/docs-aspnet/list-of-helpers-core.html @@ -443,6 +443,15 @@ Navigation + + Breadcrumb HtmlHelper Docs & Demos + + + Breadcrumb TagHelper Docs & Demos + + + + Button HtmlHelper Docs & Demos diff --git a/docs-aspnet/list-of-helpers-mvc.html b/docs-aspnet/list-of-helpers-mvc.html index 5cd350b0276..85d25b4430c 100644 --- a/docs-aspnet/list-of-helpers-mvc.html +++ b/docs-aspnet/list-of-helpers-mvc.html @@ -308,6 +308,12 @@ Navigation + + Breadcrumb Docs & Demos + + + + Button Docs & Demos diff --git a/docs-aspnet/tag-helpers/navigation/breadcrumb/icons.md b/docs-aspnet/tag-helpers/navigation/breadcrumb/icons.md index 18673036fb0..40e861b3c64 100644 --- a/docs-aspnet/tag-helpers/navigation/breadcrumb/icons.md +++ b/docs-aspnet/tag-helpers/navigation/breadcrumb/icons.md @@ -12,7 +12,7 @@ The Breadcrumb allows to configure the icons of the items and the delimiters. ## Root Icon -The root icon is the first icon and is rendered as a home icon - ![image](https://user-images.githubusercontent.com/4222379/68296492-6b670300-009d-11ea-95fd-89231ce1fa6d.png). It can be changed through the `items.icon` configuration. It is also clickable and it will reset the value of the component. +The root icon is the first icon and is rendered as a `home` icon. It can be changed through the `items.icon` configuration. It is also clickable and it will reset the value of the component. ## Item Icon diff --git a/docs/_config.yml b/docs/_config.yml index fd17ca837db..cf7823ff392 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -183,6 +183,8 @@ navigation: position: 70 "controls/navigation": title: "Navigation" + "controls/navigation/breadcrumb": + title: "Breadcrumb" "controls/navigation/buttongroup": title: "ButtonGroup" "controls/navigation/drawer": diff --git a/docs/accessibility/keyboard-support.md b/docs/accessibility/keyboard-support.md index 3845e433607..2a8f57fd842 100644 --- a/docs/accessibility/keyboard-support.md +++ b/docs/accessibility/keyboard-support.md @@ -25,6 +25,8 @@ Keyboard support in Kendo UI maps access-key combinations and ensures that users In addition to the `accesskey` attribute support, most Kendo UI widgets also offer a series of keyboard controls for interacting with them. The specific keyboard shortcuts supported by each widget are provided in the following keyboard examples. - [AutoComplete](https://demos.telerik.com/kendo-ui/autocomplete/keyboard-navigation) +- [Breadcrumb](https://demos.telerik.com/kendo-ui/breadcrumb/keyboard-navigation) +- [Button](https://demos.telerik.com/kendo-ui/button/keyboard-navigation) - [Button](https://demos.telerik.com/kendo-ui/button/keyboard-navigation) - [ButtonGroup](https://demos.telerik.com/kendo-ui/buttongroup/keyboard-navigation) - [Calendar](https://demos.telerik.com/kendo-ui/calendar/keyboard-navigation) diff --git a/docs/accessibility/section-508-wcag.md b/docs/accessibility/section-508-wcag.md index 61e6163e771..d450aa0f40d 100644 --- a/docs/accessibility/section-508-wcag.md +++ b/docs/accessibility/section-508-wcag.md @@ -24,6 +24,7 @@ The following table lists the Section 508 and WCAG 2.1 compliance levels of supp |:--- |:---|:--- |:--- |AutoComplete |Yes |AA |[Browse](http://demos.telerik.com/kendo-ui/autocomplete/index) |BarCode |Yes |AAA |[Browse](http://demos.telerik.com/kendo-ui/barcode/index) +|Breadcrumb |Yes |AA |[Browse](http://demos.telerik.com/kendo-ui/breadcrumb/index) |Button |Yes |AA |[Browse](http://demos.telerik.com/kendo-ui/button/index) |ButtonGroup |Yes |AA |[Browse](http://demos.telerik.com/kendo-ui/buttongroup/index) |Calendar |Yes |AAA |[Browse](http://demos.telerik.com/kendo-ui/calendar/index) diff --git a/docs/api/javascript/ui/filemanager.md b/docs/api/javascript/ui/filemanager.md index 933c6dac1c0..0ab80041747 100644 --- a/docs/api/javascript/ui/filemanager.md +++ b/docs/api/javascript/ui/filemanager.md @@ -14,33 +14,267 @@ Represents the Kendo UI FileManager. Inherits from [Widget](/api/javascript/ui/w ### width `Number | String` +Configures the width of the FileManager. + +#### Example + +

+ + ### height `Number | String` +Configures the height of the FileManager. + +#### Example + +
+ + ### initialView `String` +Configures the initial view of the FileManager. + +#### Example + +
+ + ### resizable `Boolean` +Configures the resizable features of the FileManager. + +#### Example + +
+ + ### draggable `Boolean` *(default: true)* +Enables or disables the drag and drop features of the FileManager. + +#### Example + +
+ + ### dataSource `Object | Array | kendo.data.FileManagerDataSource` +Sets the [FileManagerDataSource](/api/javascript/data/filemanagerdatasource) of the FileManager. Can be bound to a remote service or local data. + +#### Example + +
+ + +#### Example + +
+ + ### upload `Object` +Configures the composite Upload widget of the FileManager. Accepts the same options as the [kendoUpload widget](/api/javascript/ui/upload). + ### uploadUrl `String` +Sets the upload url for the Upload widget. + +#### Example + +
+ + ### toolbar `Boolean | Object` *(default: true)* +Configures the Toolbar of the FileManager + ### toolbar.items `Array` +Configures the items collection of the toolbar. + +#### Example + +
+ + ### toolbar.items.type `String` +Specifies the type of the button. ### toolbar.items.overflow `String` +Specifies the overflow of the button. ### toolbar.items.command `String` +Specifies the command of the button. ### toolbar.items.options `String` +Specifies the command options of the button. ### toolbar.items.name `String` +Specifies the name of the button. ### toolbar.items.togglable `Boolean` *(default: false)* Specifies if the button is togglable, e.g. has a selected and unselected state. @@ -83,53 +317,422 @@ Specifies the ID of the button. ### dialogs `Object` +Specifies the composite Dialog widgets of the FileManager. + ### dialogs.upload `Object` +Configures the Upload dialog - [kendoDialog](/api/javascript/ui/dialog) + +#### Example + +
+ + ### dialogs.moveConfirm `Object` +Configures the Move (when drag/drop action is performed) dialog - [kendoConfirm](/api/javascript/ui/confirm) + +#### Example + +
+ + ### dialogs.deleteConfirm `Object` +Configures the Delete dialog - [kendoConfirm](/api/javascript/ui/confirm) + +#### Example + +
+ + ### dialogs.renamePrompt `Object` +Configures the Rename dialog - [kendoPrompt](/api/javascript/ui/prompt) + +#### Example + +
+ + ### contextMenu `Object|Boolean` *(default: true)* +Configures the ContextMenu of the FileManager. + +#### Example + +
+ + ### contextMenu.items `Array` +Configures the items of the ContextMenu. + +#### Example + +
+ + ### contextMenu.items.name `String` +Specifies the name of the item. ### contextMenu.items.text `String` +Specifies the text of the item. ### contextMenu.items.spriteCssClass `String` +Specifies the spriteCssClass of the item. ### contextMenu.items.command `String` +Specifies the command of the item. ### views `Object` +Configures every view registered for the FileManager. + ### views.grid `Object` +Configures the built-in grid view - accepts [kendoGrid options](/api/javascript/ui/grid) + +#### Example + +
+ + ### views.list `Object` +Configures the built-in list view (thumbnails) - accepts [kendoListView options](/api/javascript/ui/listview) + +#### Example + +
+ + ### views.tree `Object` +Configures the built-in tree view - accepts [kendoTreeView options](/api/javascript/ui/treeview) + +#### Example + +
+ + ### previewPane `Object` +Configures the Preview Pane of the FileManager. + ### previewPane.metaFields `Array` +Configures the meta fields to be showed in the preview pane. + +#### Example + +
+ + ### previewPane.noFileTemplate `String|Function` +Defines a new template for the preview pane when no file/folder is selected. ### previewPane.singleFileTemplate `String|Function` +Defines a new template for the preview pane when a single file/folder is selected. ### previewPane.multipleFilesTemplate `String|Function` +Defines a new template for the preview pane when multiple files/folders are selected. ### breadcrumb `Object|Boolean` *(default: true)* +Configures or disables the Breadcrumb component. + +#### Example + +
+ + ### breadcrumb.rootIcon `String` +Defines a new root icon for the breadcrumb. ### breadcrumb.delimiterIcon `String` +Defines a new delimiter icon for the breadcrumb. ### messages `Object` +Defines the text of the localizable UI parts of the FileManager. + +#### Example + +
+ ### messages.toolbar `Object` +Defines the localization messages for the toolbar. ### messages.toolbar.createFolder `String` @@ -166,6 +769,7 @@ Specifies the ID of the button. ### messages.toolbar.rename `String` ### messages.views `Object` +Defines the localization messages for the views. ### messages.views.nameField `String` @@ -180,6 +784,7 @@ Specifies the ID of the button. ### messages.views.items `String` ### messages.dialogs `Object` +Defines the localization messages for the dialogs. ### messages.dialogs.upload `Object` @@ -226,6 +831,7 @@ Specifies the ID of the button. ### messages.dialogs.renamePrompt.close `String` ### messages.previewPane `Object` +Defines the localization messages for the preview pane. ### messages.previewPane.noFileSelected `String` @@ -238,42 +844,388 @@ Specifies the ID of the button. ### messages.previewPane.modified `String` ### messages.previewPane.items `String` - - ## Methods ### path +Gets the path that teh FileManager is navigated to + +#### Example + +
+ + ### view +Gets or sets the view of the FileManager. + +#### Parameters + +##### view `String` *(optional)* + +The name of the view. + +#### Example + +
+ + +#### Returns + +`String` The current view. + ### navigate +Navigates to the specified path. + +#### Parameters + +##### path `String` + +The path to navigate. + +#### Example + +
+ + ### refresh +Refreshes the current view of the FileManager. Rebinds the data. + +#### Example + +
+ + ### executeCommand +Executes a command. + +#### Parameters + +##### command `String` + +The command to execute. + +##### args `Object` *(optional)* + +The command arguments. + +#### Example + +
+ + ### getSelected +Gets the selected files (the JSON representation of the files). ### getSize +Gets the size of the FileManager wrapper. ### destroy +Destroys the FileManagers. ## Events ### navigate +Fired when navigation occurs. + +#### Event Data + +##### e.sender `kendo.ui.FileManager` + +The widget instance which fired the event. + +##### e.path `String` + +The navigation path. + ### select +Fired when selection changes. + +#### Event Data + +##### e.sender `kendo.ui.FileManager` + +The widget instance which fired the event. + +##### e.entries `Array` + +The selected file/files (the JSON representation of the files). + ### open +Fired when a file is opened (with double click). + +#### Event Data + +##### e.sender `kendo.ui.FileManager` + +The widget instance which fired the event. + +##### e.entry `Object` + +The opened file (the JSON representation of the file). + ### execute +Fired when a command is executed. + +#### Event Data + +##### e.sender `kendo.ui.FileManager` + +The widget instance which fired the event. + +##### e.command `String` + +The name of the command. + +##### e.options `Object` + +The options of the command. + ### error +Fired when a error in the DataSource happen. + ### dataBinding +Fired before the widget binds to its data source. + +##### e.sender `kendo.ui.FileManager` + +The widget instance which fired the event. + +##### e.preventDefault `Function` + +If invoked prevents the data bind action. + +##### e.action `String` + +The action that caused the dataBinding event. Possible values: `rebind`, `sync`, `add`, `remove`. + +##### e.index `Number` + +Available if the action is add or remove. Shows the index of the added/removed element. + +##### e.items `Array` + +The array of items that shows the elements that are going to be added/removed from the widget dataSource. + +##### e.source `String` + +The source which triggered the event. + ### dataBound +Fired when the widget is bound to data from its data source. + +#### Event Data + +##### e.sender `kendo.ui.FileManager` + +The widget instance which fired the event. + ### drop +Fired when a file is dragged and dropped over a folder. + +#### Event Data + +##### e.sender `kendo.ui.FileManager` + +The widget instance which fired the event. + +##### e.target `String` + +The drop target's id. + +##### e.items `Array` + +The items dragged and dropped over the target. + + + diff --git a/docs/controls/data-management/filemanager/binding/local.md b/docs/controls/data-management/filemanager/binding/local.md index 27a79dc0b42..cc3922f63e4 100644 --- a/docs/controls/data-management/filemanager/binding/local.md +++ b/docs/controls/data-management/filemanager/binding/local.md @@ -11,8 +11,7 @@ position: 1 The Kendo UI FileManager enables you to bind it to local arrays of data. -To bind the FileManager to local data, set the `dataSource` option of the `kendoGrid` object. The data should correspond ot the FileManager built-in model -schema (see [Data Binding Overview]({% slug: bindingoverview_kendoui_filemanager_widget %})article) +To bind the FileManager to local data, set the `dataSource` option of the `kendoFileManager` object. The data should correspond ot the FileManager built-in model schema (see [Data Binding Overview]({% slug bindingoverview_kendoui_filemanager_widget %}) article) ```dojo // Define the HTML div that will contain the FileManager. @@ -60,3 +59,7 @@ schema (see [Data Binding Overview]({% slug: bindingoverview_kendoui_filemanager ``` + +* [Overview of Kendo UI FileManager]({% slug overview_kendoui_filemanager_widget %}) +* [Sort in Kendo UI FileManager]({% slug sort_kendoui_filemanager_widget %}) +* [Toolbar Commands in Kendo UI FileManager]({% slug toolbar_kendoui_filemanager_widget %}) diff --git a/docs/controls/data-management/filemanager/binding/overview.md b/docs/controls/data-management/filemanager/binding/overview.md index bc4c9c8c9e2..cd2627476c9 100644 --- a/docs/controls/data-management/filemanager/binding/overview.md +++ b/docs/controls/data-management/filemanager/binding/overview.md @@ -37,8 +37,6 @@ model: { ``` - - - - -descrive mandatory fields: +* [Overview of Kendo UI FileManager]({% slug overview_kendoui_filemanager_widget %}) +* [Search in Kendo UI FileManager]({% slug search_kendoui_filemanager_widget %}) +* [Toolbar Commands in Kendo UI FileManager]({% slug toolbar_kendoui_filemanager_widget %}) diff --git a/docs/controls/data-management/filemanager/binding/remote.md b/docs/controls/data-management/filemanager/binding/remote.md index 05b56312f06..354cf3d3e5b 100644 --- a/docs/controls/data-management/filemanager/binding/remote.md +++ b/docs/controls/data-management/filemanager/binding/remote.md @@ -7,3 +7,77 @@ position: 2 --- # Remote Data + +The Kendo UI FileManager provides a built-in DataSource which allow you to quickly set up and implement a remote data-binding functionality. + +To bind the FileManager to remote data, specify the `dataSource` option and supply the object with the needed endpoints for `read`, `create`, `update` and `destroy` operations. The following example demonstrates such implementation, and the actual endpoints configurations could be found in [here](https://github.com/telerik/kendo-ui-demos-service/blob/master/demos-and-odata-v3/KendoCRUDService/Controllers/FileManagerController.cs): + +``` +
+ + +``` + + + +The following list provides information about the default requests and responses for the `create`, `read`, `destroy` operations. + +- `create`—Makes a `POST` request for the creation of a directory with the following parameters. + + {"name":"...","size":0,"path":"...","extension":".txt","isDirectory":...,"hasDirectories":...,"created":"...","createdUtc":"...","modified":"...","modifiedUtc":"..."} + +- `read`—Makes a `POST` request that contains the `path` parameter to specify the path which is browsed and expects a file listing in the following format: + + [ + {"name":"Documents","size":0,"path":"Documents","extension":"","isDirectory":true,"hasDirectories":false,"created":"\/Date(1578897289317)\/","createdUtc":"\/Date(1578897289317)\/","modified":"\/Date(1578897289332)\/","modifiedUtc":"\/Date(1578897289332)\/"}, + ... + ] + + +- `destroy`—Makes a `POST` request containing `FormData` with the following parameters: + + - `name`—The file or directory to be deleted. + - `path`—The directory in which the file or the directory resides. + - `extension`— The extension of the deleted file. No extension in the data, if a folder is deleted. + - `size`&mdash The file size, as provided by the `read` response. + - `isDirectory`— Boolean, specifying if the deleted is a file or not. + - `hasDirectories`— Boolean, specifying if the deleted contains folders. + - `created`— Created Date of the deleted item. + - `createdUtc`— Created Date in UTC format of the deleted item. + - `modified`— Modified Date of the deleted item. + - `modifiedUtc`— Created Date in UTC formats of the deleted item. + +- `update`—Makes a `POST` request, containing the `FileEntry` object. The expected response is a `file` object in the following format: + + {"name":"...","size":...,"path":"...","extension":".txt","isDirectory":...,"hasDirectories":...,"created":"...","createdUtc":"...","modified":"...","modifiedUtc":"..."} + + + +* [Overview of Kendo UI FileManager]({% slug overview_kendoui_filemanager_widget %}) +* [Navigation in Kendo UI FileManager]({% slug navigation_kendoui_filemanager_widget %}) +* [Preview Panes in Kendo UI FileManager]({% slug previewpane_kendoui_filemanager_widget %}) diff --git a/docs/controls/data-management/filemanager/overview.md b/docs/controls/data-management/filemanager/overview.md index d8acde7f5f3..fad2cabd3a4 100644 --- a/docs/controls/data-management/filemanager/overview.md +++ b/docs/controls/data-management/filemanager/overview.md @@ -8,7 +8,7 @@ position: 0 # FileManager Overview -The Telerik UI for ASP.NET MVC FileManager is an Explorer-like component enabling you to manage file and folders. +The Kendo UI FileManager is an Explorer-like component enabling you to manage file and folders. It enables you to organize and manage files and folders and provides you with a rich API for customization. You can show additional information about the selected file in a template-customizable Preview Pane, which you can show or hide via a switch button. The widget is built entirely by Kendo UI for jQuery components: [Grid]({% slug overview_kendoui_grid_widget %}), [ListView]({% slug overview_kendoui_listview_widget %}), [TreeView]({% slug overview_kendoui_treeview_widget %}), [Toolbar]({% slug overview_kendoui_toolbar_widget %}), [Breadcrumb]({% slug overview_kendoui_breadcrumb_widget %}). diff --git a/docs/controls/data-management/filemanager/preview-pane.md b/docs/controls/data-management/filemanager/preview-pane.md index 182773bd1cc..148001fa361 100644 --- a/docs/controls/data-management/filemanager/preview-pane.md +++ b/docs/controls/data-management/filemanager/preview-pane.md @@ -13,18 +13,18 @@ The Preview Pane shows additional information about the selected files or folder The preview pane visibility could be toggled by the Switch Tool in the FileManager Toolbar. By default, it shows the following information about the selected file or folder: * Thumbnail, representing the file -* File name +* File extension * File size * Date created * Date modified -The `metaFields` object in the PreivewPane configuration, allows you to control which fields from the above-enumerated should be displayed. If you need to show only the Name and Size information in the Preview Pane, the configuration would be as follows: +The `metaFields` object in the PreivewPane configuration, allows you to control which fields from the above-enumerated should be displayed. If you need to show only the Extension and Size information in the Preview Pane, the configuration would be as follows: ```js
$("#filemanager").kendoFileManager({ previewPane: { - metaFields: ["name", "size"] + metaFields: ["extension", "size"] }, dataSource: { data: myData diff --git a/docs/controls/data-management/filemanager/toolbar.md b/docs/controls/data-management/filemanager/toolbar.md index 4f9b5d46186..1d0c99eaa11 100644 --- a/docs/controls/data-management/filemanager/toolbar.md +++ b/docs/controls/data-management/filemanager/toolbar.md @@ -16,7 +16,7 @@ The toolbar has a predefined set of tools which you can show or hide, depending * *Upload Button* prompting you with a window to upload files. * *Sort By* dropdown, allowing you to sort by a number of predicates * *Views* button group to control -* *View Details* switch button to toggle the Preivew Pane visibility +* *View Details* switch button to toggle the Preview Pane visibility * *Search* textbox to filter the content **Inbuilt Sort functionality in FileManager:** diff --git a/docs/controls/data-management/filemanager/views.md b/docs/controls/data-management/filemanager/views.md index 14eaa91177d..74e74ad0c25 100644 --- a/docs/controls/data-management/filemanager/views.md +++ b/docs/controls/data-management/filemanager/views.md @@ -35,7 +35,7 @@ This view is achieved with the Kendo Grid and in renders the files in a tabular ## List View (Thumbnails) -The List view is implemented with the help of the Kendo ListView component. The content in this view is rendered as a list of thumbnails, representing the files. You can control the configuration of this view trough the `views.listview` object of the FileManager. +The List view is implemented with the help of the Kendo ListView component. The content in this view is rendered as a list of thumbnails, representing the files. You can control the configuration of this view trough the `views.list` object of the FileManager. ```js $("#filemanager").kendoFileManager({ diff --git a/docs/controls/editors/editor/appearance.md b/docs/controls/editors/editor/appearance.md index c3c35570418..39bb308b44a 100644 --- a/docs/controls/editors/editor/appearance.md +++ b/docs/controls/editors/editor/appearance.md @@ -3,7 +3,7 @@ title: Appearance page_title: jQuery Editor Documentation | Appearance | Kendo UI description: "Get started with the jQuery Editor by Kendo UI and set its size and use the default content styles or implement custom styles." slug: appearance_kendoui_editor_widget -position: 12 +position: 13 --- # Appearance diff --git a/docs/controls/editors/editor/format-painter.png b/docs/controls/editors/editor/format-painter.png new file mode 100644 index 0000000000000000000000000000000000000000..deebb2b697894410a57ce151163a2dfbab6b8b53 GIT binary patch literal 34186 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 target elements will not be modified. Instead, the copied structure will be applied within them. +* `` and `` target elements will not be modified. The copied structure will also be applied within them. + +## See Also + +* [Editor Format Painter tool (Demo)](https://demos.telerik.com/kendo-ui/editor/format-painter) +* [JavaScript API Reference of the Editor](/api/javascript/ui/editor) diff --git a/docs/controls/editors/editor/immutable.md b/docs/controls/editors/editor/immutable.md index 660bce1ffe2..6bba147d46c 100644 --- a/docs/controls/editors/editor/immutable.md +++ b/docs/controls/editors/editor/immutable.md @@ -1,156 +1,156 @@ ---- -title: Immutable Elements -page_title: jQuery Editor Documentation | Immutable Elements | Kendo UI -description: "Get started with the jQuery Editor by Kendo UI and add HTML elements which cannot be edited by the user." -previous_url: /controls/editors/editor/immutable-elements -slug: immutable_elements_editor_widget -position: 7 ---- - -# Immutable Elements - -The immutable feature enables you to add HTML elements that cannot be edited by the user. - -## Enabling Immutable Elements - -To define the immutable elements in the content area, set the [`contenteditable`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/contentEditable) DOM attribute to `false`. To make the Editor prevent the user from editing this element, you also need to enable the [`immutables`](/api/javascript/ui/editor/configuration/immutables) option. - -```dojo - - -``` - -## Serializing Immutables - -The [`immutables.serialization`](/api/javascript/ui/editor/configuration/immutables.serialization) option enables you to control the HTML representation of the immutable elements in the **viewHtml** dialog. - -The `immutables.serialization` configuration option accepts the following parameters: - -* `String`—A plain string that implements an opening and a closing tag of the representation you want to display in the **viewHtml** dialog. - - ```dojo - - - ``` - -* [Kendo UI Template]({%slug overview_kendoui_templatescomponent %})—In it, the immutable DOM element is `data`. - - ```dojo - - - ``` - -* `Function`—A callback function that exposes the immutable DOM element in the overload and is expected to return a string. - - ```dojo - - - ``` - -## Deserializing Immutables - -The [`immutables.deserialization`](/api/javascript/ui/editor/configuration/immutables.deserialization) does the opposite of the `immutables.serialization` one—it takes the HTML representation from the **viewHtml** dialog and alters the immutable DOM element based on the logic implemented in the callback function. - -The following example demonstrates how to use the `immutables.serialization` and `immutables.deserialization` options to expose the CSS `text-align` property in the **viewHtml** dialog so that the user is able to change it from the HTML code. - -```dojo - - -``` - -## Applying a Default Decoration - -To decorate all `contenteditable="false"` elements and improve user experience (UX), use a CSS rule. - -* If you use the [classic mode]({% slug overview_kendoui_editor_widget %}#classic-mode), add the CSS rule to an external CSS file adjoined to the [stylesheet collection](/api/javascript/ui/editor/configuration/stylesheets) of the Editor. -* If you use the [inline mode]({% slug overview_kendoui_editor_widget %}#inline-mode), place the CSS rule on the page as demonstrated in the following example. - -```dojo - - - -``` - -## See Also - -* [Basic Usage of the Editor (Demo)](https://demos.telerik.com/kendo-ui/editor/index) -* [JavaScript API Reference of the Editor](/api/javascript/ui/editor) +--- +title: Immutable Elements +page_title: jQuery Editor Documentation | Immutable Elements | Kendo UI +description: "Get started with the jQuery Editor by Kendo UI and add HTML elements which cannot be edited by the user." +previous_url: /controls/editors/editor/immutable-elements +slug: immutable_elements_editor_widget +position: 8 +--- + +# Immutable Elements + +The immutable feature enables you to add HTML elements that cannot be edited by the user. + +## Enabling Immutable Elements + +To define the immutable elements in the content area, set the [`contenteditable`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/contentEditable) DOM attribute to `false`. To make the Editor prevent the user from editing this element, you also need to enable the [`immutables`](/api/javascript/ui/editor/configuration/immutables) option. + +```dojo + + +``` + +## Serializing Immutables + +The [`immutables.serialization`](/api/javascript/ui/editor/configuration/immutables.serialization) option enables you to control the HTML representation of the immutable elements in the **viewHtml** dialog. + +The `immutables.serialization` configuration option accepts the following parameters: + +* `String`—A plain string that implements an opening and a closing tag of the representation you want to display in the **viewHtml** dialog. + + ```dojo + + + ``` + +* [Kendo UI Template]({%slug overview_kendoui_templatescomponent %})—In it, the immutable DOM element is `data`. + + ```dojo + + + ``` + +* `Function`—A callback function that exposes the immutable DOM element in the overload and is expected to return a string. + + ```dojo + + + ``` + +## Deserializing Immutables + +The [`immutables.deserialization`](/api/javascript/ui/editor/configuration/immutables.deserialization) does the opposite of the `immutables.serialization` one—it takes the HTML representation from the **viewHtml** dialog and alters the immutable DOM element based on the logic implemented in the callback function. + +The following example demonstrates how to use the `immutables.serialization` and `immutables.deserialization` options to expose the CSS `text-align` property in the **viewHtml** dialog so that the user is able to change it from the HTML code. + +```dojo + + +``` + +## Applying a Default Decoration + +To decorate all `contenteditable="false"` elements and improve user experience (UX), use a CSS rule. + +* If you use the [classic mode]({% slug overview_kendoui_editor_widget %}#classic-mode), add the CSS rule to an external CSS file adjoined to the [stylesheet collection](/api/javascript/ui/editor/configuration/stylesheets) of the Editor. +* If you use the [inline mode]({% slug overview_kendoui_editor_widget %}#inline-mode), place the CSS rule on the page as demonstrated in the following example. + +```dojo + + + +``` + +## See Also + +* [Basic Usage of the Editor (Demo)](https://demos.telerik.com/kendo-ui/editor/index) +* [JavaScript API Reference of the Editor](/api/javascript/ui/editor) diff --git a/docs/controls/editors/editor/overview.md b/docs/controls/editors/editor/overview.md index 126bb428ee7..08330f5ee4a 100644 --- a/docs/controls/editors/editor/overview.md +++ b/docs/controls/editors/editor/overview.md @@ -31,6 +31,7 @@ To initialize the Editor, use an existing `HTML` element and a jQuery selector. * [Tools]({% slug tools_kendoui_editor_widget %}) * [Selection]({% slug set_selections_editor_widget %}) * [Image browser]({% slug image_browser_editor_widget %}) +* [Format Painter]({% slug format_painter_editor_widget %}) * [Immutable elements]({% slug immutable_elements_editor_widget %}) * [Pasting content]({% slug pasting_editor_widget %}) * [Post-processing content]({% slug post_process_content_editor_widget %}) diff --git a/docs/controls/editors/editor/pasting.md b/docs/controls/editors/editor/pasting.md index a0386a65129..13057cd7c6c 100644 --- a/docs/controls/editors/editor/pasting.md +++ b/docs/controls/editors/editor/pasting.md @@ -3,7 +3,7 @@ title: Pasting Content page_title: jQuery Editor Documentation | Pasting Content | Kendo UI description: "Get started with the jQuery Editor by Kendo UI and paste content from HTML and MS Word documents." slug: pasting_editor_widget -position: 8 +position: 9 --- # Pasting Content diff --git a/docs/controls/editors/editor/post-process.md b/docs/controls/editors/editor/post-process.md index fade72e93eb..df444309678 100644 --- a/docs/controls/editors/editor/post-process.md +++ b/docs/controls/editors/editor/post-process.md @@ -3,7 +3,7 @@ title: Post-Processing Content page_title: jQuery Editor Documentation | Post-Processing Content | Kendo UI description: "Get started with the jQuery Editor by Kendo UI and learn how to post-process its content so it fits your needs." slug: post_process_content_editor_widget -position: 9 +position: 10 --- # Post-Processing Content diff --git a/docs/controls/editors/editor/preventing-xss.md b/docs/controls/editors/editor/preventing-xss.md index 425ef6d4bde..641d9e99970 100644 --- a/docs/controls/editors/editor/preventing-xss.md +++ b/docs/controls/editors/editor/preventing-xss.md @@ -3,7 +3,7 @@ title: Preventing Cross-Site Scripting page_title: jQuery Editor Documentation | Preventing Cross-Site Scripting | Kendo UI description: "Get started with the jQuery Editor by Kendo UI and learn about the security implications of allowing an HTML editing in your pages and how to secure them." slug: prevent_xss_editor_widget -position: 10 +position: 11 --- # Preventing Cross-Site Scripting diff --git a/docs/controls/editors/editor/table-wizard-dialog.md b/docs/controls/editors/editor/table-wizard-dialog.md index 7300e3f2f91..c8893b93f2a 100644 --- a/docs/controls/editors/editor/table-wizard-dialog.md +++ b/docs/controls/editors/editor/table-wizard-dialog.md @@ -1,92 +1,97 @@ ---- -title: Table Wizard Dialog -page_title: jQuery Editor Documentation | Table Wizard Dialog | Kendo UI -description: "Get started with the jQuery Editor by Kendo UI and enable the user to add and configure HTML tables with the Table Wizard dialog." -slug: table_wizard_dialog_editor_widget -position: 11 ---- - -# Table Wizard Dialog - -As of the Kendo UI R3 2016 release and in addition to the **Insert Table** tool, the user can add and configure tables by using the **Table Wizard** dialog. - -![Table Wizard](table-wizard.png) - -## Inserting Tables - -To insert a new table by using the **Table Wizard** dialog: - -1. Open the **Insert Table** tool. -1. To open the dialog, click the **Table Wizard** button. -1. Configure the table that is to be inserted. -1. Click the **OK** button. - -![Table Wizard Open](table-wizard-open.png) - -## Modifying Tables - -To modify an existing table or a table cell: - -1. Select the table or the table cell to edit. -1. Click the **Table Wizard** tool in the toolbar. - -> You can resize the table rows and columns by dragging the cell border with the mouse and without using the **Table Wizard** dialog. - -![Table Wizard Edit](table-wizard-edit.png) - -## Available Options - -The table and cell options that are available in the **Table Wizard** are displayed in the following three tabs: - -* [**Table**](#table-tab)—The available options for the table element. -* [**Cell**](#cell-tab)—The available options for the selected cell or all cells in the table. -* [**Accessibility**](#accessibility-tab)—The available options related to accessibility. - -### Table Tab - -The **Table** tab provides the following options: - -* **Width**—Changes the width of the table (in pixels, em, or percent). -* **Height**—Changes the height of the table (in pixels, em, or percent). -* **Columns**—Defines the columns of the table. -* **Rows**—Defines the rows of the table. -* **Cell Spacing**—Specifies the space between the cells ([`cellspacing` attribute](http://www.w3schools.com/tags/att_table_cellspacing.asp)). -* **Cell Padding**—Specifies the padding in the cells ([`cellpadding` attribute](http://www.w3schools.com/tags/att_table_cellpadding.asp)). -* **Alignment**—Specifies the text alignment in the cells. -* **Background**—Specifies the background color of the table. -* **CSS Class**—Defines the class names for the table element (white space-separated). -* **ID**—Defines the id of the table element. -* **Border**—Defines the border size (in pixels only) and color. -* **Border Style**—Defines the border style (`none`, `hidden`, `dotted`, `dashed`, `solid`, `double`, `groove`, `ridge`, `inset`, `outset`, `initial`, and `inherit`). -* **Collapse borders**—Adds an inline style to that table element with the `border-collapse: collapse` rule ([`border-collapse` property](http://www.w3schools.com/cssref/pr_border-collapse.asp)). - -### Cell Tab - -The **Cell** tab provides the following options: - -* **Select All Cells**—Applies the changes to all cells in the table. -* **Width**—Changes the width of the cell or cells (in pixels, em, or percent). -* **Height**—Changes the height of the cell or cells (in pixels, em, or percent). -* **Cell Margin**—Defines the margin of the cell or cells. -* **Cell Padding**—Defines the padding of the cell or cells. -* **Alignment**—Specifies the text alignment of the cell or cells. -* **Background**—Specifies the background color of the cell or cells. -* **CSS Class**—Defines class names for the cells (white space-separated). -* **ID**—Defines the id of the cells. -* **Border**—Defines the border size (in pixels only) and color of the cells. -* **Border Style**—Defines the border style (`none`, `hidden`, `dotted`, `dashed`, `solid`, `double`, `groove`, `ridge`, `inset`, `outset`, `initial`, and `inherit`). -* **Wrap text**—When unchecked, applies a `white-space: nowrap` style to the cells ([`white-space` property](http://www.w3schools.com/cssref/pr_text_white-space.asp)). - -### Accessibility Tab - -The **Accessibility** tab provides the following options: - -* **Caption**—Adds a caption text for the table. -* **Alignment**—Defines the text alignment of the caption. -* **Summary**—Adds a [`summary` attribute](http://www.w3schools.com/tags/att_table_summary.asp) with the value defined to the table. -* **Associate cells with headers**—Associates the cells with the header id attributes. For more information on using id and header attributes, refer to the article on [using id and header attributes to associate data cells with header cells in data tables](https://www.w3.org/TR/WCAG20-TECHS/H43.html)). - -## See Also - -* [Basic Usage of the Editor (Demo)](https://demos.telerik.com/kendo-ui/editor/index) -* [JavaScript API Reference of the Editor](/api/javascript/ui/editor) +--- +title: Table Wizard Dialog +page_title: jQuery Editor Documentation | Table Wizard Dialog | Kendo UI +description: "Get started with the jQuery Editor by Kendo UI and enable the user to add and configure HTML tables with the Table Wizard dialog." +slug: table_wizard_dialog_editor_widget +position: 12 +--- + +# Table Wizard Dialog + +As of the Kendo UI R3 2016 release and in addition to the **Insert Table** tool, the user can add and configure tables by using the **Table Wizard** dialog. + +![Table Wizard](table-wizard.png) + +## Inserting Tables + +To insert a new table by using the **Table Wizard** dialog: + +1. Open the **Insert Table** tool. +1. To open the dialog, click the **Table Wizard** button. +1. Configure the table that is to be inserted. +1. Click the **OK** button. + +![Table Wizard Open](table-wizard-open.png) + +## Modifying Tables + +To modify an existing table or a table cell: + +1. Select the table or the table cell to edit. +1. Click the **Table Wizard** tool in the toolbar. + +> You can resize the table rows and columns by dragging the cell border with the mouse and without using the **Table Wizard** dialog. + +![Table Wizard Edit](table-wizard-edit.png) + +## Available Options + +The table and cell options that are available in the **Table Wizard** are displayed in the following three tabs: + +* [**Table**](#table-tab)—The available options for the table element. +* [**Cell**](#cell-tab)—The available options for the selected cell or all cells in the table. +* [**Accessibility**](#accessibility-tab)—The available options related to accessibility. + +### Table Tab + +The **Table** tab provides the following options: + +* **Width**—Changes the width of the table (in pixels, em, or percent). +* **Height**—Changes the height of the table (in pixels, em, or percent). +* **Columns**—Defines the columns of the table. +* **Rows**—Defines the rows of the table. +* **Cell Spacing**—Specifies the space between the cells ([`cellspacing` attribute](http://www.w3schools.com/tags/att_table_cellspacing.asp)). +* **Cell Padding**—Specifies the padding in the cells ([`cellpadding` attribute](http://www.w3schools.com/tags/att_table_cellpadding.asp)). +* **Alignment**—Specifies the text alignment in the cells. +* **Background**—Specifies the background color of the table. +* **CSS Class**—Defines the class names for the table element (white space-separated). +* **ID**—Defines the id of the table element. +* **Border**—Defines the border size (in pixels only) and color. +* **Border Style**—Defines the border style (`none`, `hidden`, `dotted`, `dashed`, `solid`, `double`, `groove`, `ridge`, `inset`, `outset`, `initial`, and `inherit`). +* **Collapse borders**—Adds an inline style to that table element with the `border-collapse: collapse` rule ([`border-collapse` property](http://www.w3schools.com/cssref/pr_border-collapse.asp)). + +### Cell Tab + +The **Cell** tab provides the following options: + +* **Select All Cells**—Applies the changes to all cells in the table. +* **Width**—Changes the width of the cell or cells (in pixels, em, or percent). +* **Height**—Changes the height of the cell or cells (in pixels, em, or percent). +* **Cell Margin**—Defines the margin of the cell or cells. +* **Cell Padding**—Defines the padding of the cell or cells. +* **Alignment**—Specifies the text alignment of the cell or cells. +* **Background**—Specifies the background color of the cell or cells. +* **CSS Class**—Defines class names for the cells (white space-separated). +* **ID**—Defines the id of the cells. +* **Border**—Defines the border size (in pixels only) and color of the cells. +* **Border Style**—Defines the border style (`none`, `hidden`, `dotted`, `dashed`, `solid`, `double`, `groove`, `ridge`, `inset`, `outset`, `initial`, and `inherit`). +* **Wrap text**—When unchecked, applies a `white-space: nowrap` style to the cells ([`white-space` property](http://www.w3schools.com/cssref/pr_text_white-space.asp)). + +### Accessibility Tab + +The **Accessibility** tab provides the following options: + +* **Header Rows**—Allows the user to specify the number of rows in the table that should belong to header and should render `` cell elements instead of ``. When creating a new Table, those rows will be placed within a `` element. +* **Header Cols**—Allows the user to specify the number of columns in the table that would be headers for their respective rows. The cells will be rendered as `` elements instead of ``. +* **Caption**—Adds a [`caption` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption) for the table with the respective text. +* **Alignment**—Defines the text alignment of the caption. +* **Summary**—Adds a [`summary` attribute](http://www.w3schools.com/tags/att_table_summary.asp) to the table using value defined. The `summary` attribute has been deprecated in HTML5 and its use should be avoided when possible. +* **Associate headers**—Allows the user to specify the mode in which content cells should be associated with their header cells. it provides the following three options: + * **None** - Will not explicitly associate cells. That is the default option and it is appropriate for tables with simple structure (no merged cells). + * **Associate using 'scope' attribute** - The wizard will add the appropriate [`scope` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th) to all header cells. + * **Associate using Ids** - The wizard will assign IDs to all header cells and will inject [`headers` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td) with the appropriate value to all data (and header, if needed) cells. + +## See Also + +* [Basic Usage of the Editor (Demo)](https://demos.telerik.com/kendo-ui/editor/index) +* [JavaScript API Reference of the Editor](/api/javascript/ui/editor) diff --git a/docs/controls/navigation/breadcrumb/icons.md b/docs/controls/navigation/breadcrumb/icons.md index b923c833a05..c666a31c79a 100644 --- a/docs/controls/navigation/breadcrumb/icons.md +++ b/docs/controls/navigation/breadcrumb/icons.md @@ -12,7 +12,7 @@ The Breadcrumb allows to configure the icons of the items and the delimiters. ## Root Icon -The root icon is the first icon and is rendered as a home icon - ![image](https://user-images.githubusercontent.com/4222379/68296492-6b670300-009d-11ea-95fd-89231ce1fa6d.png). It can be changed through the [`items.icon`](/api/javascript/ui/breadcrumb/configuration/items) configuration. It is also clickable and it will reset the value of the component. +The root icon is the first icon and is rendered as a `home` icon. It can be changed through the [`items.icon`](/api/javascript/ui/breadcrumb/configuration/items) configuration. It is also clickable and it will reset the value of the component. ## Item Icon diff --git a/docs/introduction.md b/docs/introduction.md index 4eeef6c3510..a0e9c322bc9 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -91,7 +91,8 @@ The following table lists all Kendo UI widgets (controls) that are available in | |[Splitter Overview]({% slug overview_kendoui_splitter_widget %}) & [Demos](http://demos.telerik.com/kendo-ui/splitter/index) | Yes| Yes | | |[Tooltip Overview]({% slug overview_kendoui_tooltip_widget %}) & [Demos](http://demos.telerik.com/kendo-ui/tooltip/index) | Yes | Yes | | |[Window Overview]({% slug overview_kendoui_window_widget %}) & [Demos](http://demos.telerik.com/kendo-ui/window/index) | Yes | Yes | -| **Navigation** |[Button Overview]({% slug overview_kendoui_button_widget %}) & [Demos](http://demos.telerik.com/kendo-ui/button/index) | Yes | Yes | +| **Navigation** |[Breadcrumb Overview]({% slug overview_kendoui_breadcrumb_widget %}) & [Demos](http://demos.telerik.com/kendo-ui/breadcrumb/index) | No | Yes | + |[Button Overview]({% slug overview_kendoui_button_widget %}) & [Demos](http://demos.telerik.com/kendo-ui/button/index) | Yes | Yes | | |[ButtonGroup Overview]({% slug overview_kendoui_buttongroup_widget %}) & [Demos](http://demos.telerik.com/kendo-ui/buttongroup/index) | Yes | Yes | | |[Drawer]({% slug overview_kendoui_drawer_widget %}) & [Demos](https://demos.telerik.com/kendo-ui/drawer/index) | No | Yes | | |[Menu Overview]({% slug overview_kendoui_menu_widget %}) & [Demos](http://demos.telerik.com/kendo-ui/menu/index) | Yes | Yes | diff --git a/styles/web/Default/checkbox/_layout.less b/styles/web/Default/checkbox/_layout.less index cee8a13e1b7..d8475e94397 100644 --- a/styles/web/Default/checkbox/_layout.less +++ b/styles/web/Default/checkbox/_layout.less @@ -74,13 +74,17 @@ cursor: pointer; // Hide empty label - &:empty, - &.k-no-text { + &:empty { display: none; } + // Keep it "visible" in jquery grid + &.k-no-text { + min-width: 1px; + } + .k-ripple { - display: none !important; + visibility: hidden !important; } } .k-checkbox + .k-checkbox-label { diff --git a/typescript/kendo.all.d.ts b/typescript/kendo.all.d.ts index 2eb66915f24..375546bf081 100644 --- a/typescript/kendo.all.d.ts +++ b/typescript/kendo.all.d.ts @@ -1,4 +1,4 @@ -// Type definitions for Kendo UI Professional v2019.3.917 +// Type definitions for Kendo UI Professional v2020.1.114 // Project: http://www.telerik.com/kendo-ui // Definitions by: Telerik // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped