Skip to content

Commit

Permalink
External File Storage: Fix Parent Folder Navigation in Storage Browset (
Browse files Browse the repository at this point in the history
#3159)

<!-- Thank you for submitting a Pull Request. If you're new to
contributing to BCApps please read our pull request guideline below
* https://github.com/microsoft/BCApps/Contributing.md
-->
#### Summary <!-- Provide a general summary of your changes -->
```
trigger OnAction()
var
    ExternalFileStorage: Codeunit "External File Storage";
    Path: Text;
begin
    ExternalFileStorage.Initialize("File Scenario"::Default);
    Path := ExternalFileStorage.SelectAndGetFolderPath('');
end;
```

Shows no Parent Folder ins Sub Folders.

#### Work Item(s) <!-- Add the issue number here after the #. The issue
needs to be open and approved. Submitting PRs with no linked issues or
unapproved issues is highly discouraged. -->
Fixes #3158

Fixes
[AB#567964](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/567964)

Co-authored-by: Thomas Williamson <[email protected]>
  • Loading branch information
IceOnly and twityde authored Mar 4, 2025
1 parent 79b9fac commit 74a56a0
Showing 1 changed file with 15 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ codeunit 9458 "File Account Browser Mgt."
ExternalFileStorage.ListDirectories(Path, FilePaginationData, TempFileAccountContent);
until FilePaginationData.IsEndOfListing();

ListFiles(TempFileAccountContent, Path, DoNotLoadFiles, CurrentPath, FileNameFilter);
ListFiles(TempFileAccountContent, Path, DoNotLoadFiles, FileNameFilter);
AddParentFolder(TempFileAccountContent, CurrentPath);
if TempFileAccountContent.FindFirst() then;
end;

Expand Down Expand Up @@ -76,7 +77,7 @@ codeunit 9458 "File Account Browser Mgt."
ExternalFileStorage.CreateDirectory(ExternalFileStorage.CombinePath(Path, FolderName));
end;

local procedure ListFiles(var TempFileAccountContent: Record "File Account Content" temporary; Path: Text; DoNotLoadFields: Boolean; CurrentPath: Text; FileNameFilter: Text)
local procedure ListFiles(var TempFileAccountContent: Record "File Account Content" temporary; Path: Text; DoNotLoadFields: Boolean; FileNameFilter: Text)
var
TempFileAccountContentToAdd: Record "File Account Content" temporary;
FilePaginationData: Codeunit "File Pagination Data";
Expand All @@ -88,10 +89,10 @@ codeunit 9458 "File Account Browser Mgt."
ExternalFileStorage.ListFiles(Path, FilePaginationData, TempFileAccountContent);
until FilePaginationData.IsEndOfListing();

AddFiles(TempFileAccountContent, TempFileAccountContentToAdd, CurrentPath, FileNameFilter);
AddFiles(TempFileAccountContent, TempFileAccountContentToAdd, FileNameFilter);
end;

local procedure AddFiles(var TempFileAccountContent: Record "File Account Content" temporary; var FileAccountContentToAdd: Record "File Account Content" temporary; CurrentPath: Text; FileNameFilter: Text)
local procedure AddFiles(var TempFileAccountContent: Record "File Account Content" temporary; var FileAccountContentToAdd: Record "File Account Content" temporary; FileNameFilter: Text)
begin
if FileNameFilter <> '' then
FileAccountContentToAdd.SetFilter(Name, FileNameFilter);
Expand All @@ -102,11 +103,20 @@ codeunit 9458 "File Account Browser Mgt."
TempFileAccountContent.TransferFields(FileAccountContentToAdd);
TempFileAccountContent.Insert();
until FileAccountContentToAdd.Next() = 0;
end;

local procedure AddParentFolder(var TempFileAccountContent: Record "File Account Content" temporary; CurrentPath: Text)
var
ParentFolder: Text;
begin
ParentFolder := ExternalFileStorage.GetParentPath(CurrentPath);
if ParentFolder = CurrentPath then
exit;

TempFileAccountContent.Init();
TempFileAccountContent.Validate(Name, '..');
TempFileAccountContent.Validate(Type, TempFileAccountContent.Type::Directory);
TempFileAccountContent.Validate("Parent Directory", CopyStr(ExternalFileStorage.GetParentPath(CurrentPath), 1, MaxStrLen(TempFileAccountContent."Parent Directory")));
TempFileAccountContent.Validate("Parent Directory", CopyStr(ParentFolder, 1, MaxStrLen(TempFileAccountContent."Parent Directory")));
TempFileAccountContent.Insert();
end;

Expand Down

0 comments on commit 74a56a0

Please sign in to comment.