It is not possible to select a Toolbar item in RadFileExplorer on Enter press if the control is used in Lightweight render mode.
Steps to reproduce:
1. Open https://demos.telerik.com/aspnet-ajax/fileexplorer/examples/keyboardsupport/defaultcs.aspx
2. Press "Ctrl+f2" to focus RadFileExplorer
3. Press "Shift+1" to focus its toolbar
4. Use the Arrow keys to navigate between to Toolbar items
5. Press Enter over a button (e.g. Upload)
Result: The command is not triggered
Workaround: The issue is not reproducible in Classic render mode.
It is not possible to navigate between ContextMenu items with the arrow keys when the Keyboard support is enabled.
The ThreeView remains the focused element even after the ContextMenu is shown and using the arrow keys navigates through the tree nodes instead of the ContextMenu items.
Steps to reproduce.
Result: The navigation occurs in the three instead of the Context menu
<telerik:RadFileExplorer ID="RadFileExplorer1" Height="380px" Width="750px"
AllowPaging="false" EnableCopy="true" runat="server">
<Configuration EnableAsyncUpload="true" SearchPatterns="*.*" UploadPaths="~/Images/" DeletePaths="~/Images/" ViewPaths="~/Images/"></Configuration>
<KeyboardShortcuts
FocusFileExplorer="F"
FocusAddressBar="A"
FocusToolBar="B"
FocusTreeView="T"
ContextMenu="C"
/>
FileExplorer does not scroll its tree properly to the programatically selected folders.
Steps to reproduce:
1. Set a nested folder with a long path programatically:
fileExplorer.set_currentDirectory("/images/AAA/FolderA1/FolderA2/FolderA3/FolderA4/FolderA5")
2. Select another nested folder programatically:
fileExplorer.set_currentDirectory("/images/BBB/FolderB1/FolderB2/FolderB3/FolderB4/FolderB5")
Result: The second folder is selected, but the TreeView does not properly scroll into view containing it.
Moving of folder from the tree to the grid works, but event is not raised. Also, there is no other suitable event that handles the situation. The following patch will raise the event, but you should make sure to remove the override once the bug is fixed: <telerik:RadFileExplorer RenderMode="Lightweight" runat="server" ID="FileExplorer1" EnableCopy="true" OnClientMove="OnClientMove" OnItemCommand="FileExplorer1_ItemCommand" > <Configuration ViewPaths="~/Images" UploadPaths="~/Images" DeletePaths="~/Images"></Configuration> </telerik:RadFileExplorer> <script> var origFunction = Telerik.Web.UI.RadFileExplorer.prototype._onTreeNodeDropping; Telerik.Web.UI.RadFileExplorer.prototype._onTreeNodeDropping = function (sender, args) { origFunction.call(this, sender, args); var destNode = args.get_destNode(); if (!destNode) { var destElement = args.get_htmlElement(); if (!destElement) return; var gridElement = this.get_grid(); var grid = gridElement != null ? this._isOverElement(destElement, gridElement.get_id()) : null; if (grid) { var isCopying = this._enableCopy && args.get_domEvent().ctrlKey; var eventName = isCopying ? "copy" : "move"; var args2 = new Telerik.Web.UI.FileExplorerEventArgs(this.get_tree().get_selectedNode(), this.get_currentDirectory()); this.raiseEvent(eventName, args2); } } } function OnClientMove(sender, ev) { // Do something } </script>
For the time being the following workaround can be used: <telerik:RadFileExplorer ID="RadFileExplorer1" runat="server" Width="230px" Height="430px" DisplayUpFolderItem="true" ExplorerMode="FileTree"> </telerik:RadFileExplorer> <script> Telerik.Web.UI.RadFileExplorer.prototype._onTreeContextMenuItemClicked = function (sender, args) { var treeNode = args.get_node(); var menuItem = args.get_menuItem().get_value(); switch (menuItem) { case "Rename": treeNode.startEdit(); var nodeInput = treeNode.get_inputElement(); if (!this._allowFileExtensionRename) { var item = this._createItemFromTreeViewNode(treeNode); if (!item.isDirectory()) nodeInput.value = $T.FileExplorerHelper.stripExtension(item); } this._attachFileNameValidator(nodeInput); var treeUL = sender.get_childListElement(); this._treeKeyDownDelegate = Function.createDelegate(this, this._treeKeyDown); if (treeUL) $telerik.addHandler(treeUL, "keydown", this._treeKeyDownDelegate, true); break; case "NewFolder": if (!this._isNodeADirectory(treeNode)) { treeNode = treeNode.get_parent(); } var nodeValue = treeNode.get_value(); this.createNewDirectory(nodeValue); break; case "Delete": var selItems = sender.get_selectedNodes(); var delItem = new Array(); for (var i = 0; i < selItems.length; i++) { var currItem = this._createItemFromTreeViewNode(selItems[i]); delItem.push(currItem); } this.deleteItem(delItem); break; case "Upload": this._showUploadWindow(); break; case "Copy": var selectedItem = null; if (!treeNode.get_selected()) { selectedItem = this._createItemFromTreeViewNode(treeNode); } this._copy("tree", selectedItem); break; case "Paste": var pasteItem = this._createItemFromTreeViewNode(treeNode); this._paste(pasteItem); break; } } </script>
When the height of FileExplrorer is bigger that the current view port and an item from its right pane is selected, the content of the page jumps (the active element is brought to the top corner of the page). video: http://screencast.com/t/Ezuteb3xIoCp
FileExplorer does not persist the scrolling position of its tree pane when a folder from the tree is selected in LW (and both horizontal and vertical sroll-bars are shown). video - http://screencast.com/t/gG0l8Vbf7
The current page FileList items are not properly updated when the paging is enabled. Returning to a previously paged folder is properly restored to page 1, but it keeps showing the content of lastly listed page. The issue is reproducible in all explorer modes of the control. Video - http://screencast.com/t/KVpgADxanuh