Rename input to file picker

This commit is contained in:
Pat Hartl 2023-09-11 17:56:23 -05:00
parent 8de8d7cfdc
commit bf63813e90
6 changed files with 26 additions and 17 deletions

View file

@ -10,7 +10,13 @@
</SpaceItem> </SpaceItem>
@if (ArchiveId != Guid.Empty) { @if (ArchiveId != Guid.Empty) {
<SpaceItem> <SpaceItem>
<Button OnClick="() => BrowseForFile()" Type="@ButtonType.Primary" Icon="@IconType.Outline.FolderOpen" Disabled="!ArchiveExists" /> <Button OnClick="BrowseForFile" Type="@ButtonType.Primary" Icon="@IconType.Outline.FolderOpen" Disabled="!ArchiveExists" />
</SpaceItem>
}
else if (!String.IsNullOrWhiteSpace(Root))
{
<SpaceItem>
<Button OnClick="BrowseForFile" Type="@ButtonType.Primary" Icon="@IconType.Outline.FolderOpen" />
</SpaceItem> </SpaceItem>
} }
</Space> </Space>
@ -19,9 +25,10 @@
[Parameter] public string Value { get; set; } [Parameter] public string Value { get; set; }
[Parameter] public EventCallback<string> ValueChanged { get; set; } [Parameter] public EventCallback<string> ValueChanged { get; set; }
[Parameter] public Guid ArchiveId { get; set; } [Parameter] public Guid ArchiveId { get; set; }
[Parameter] public string ArchiveBrowserTitle { get; set; } = "Choose File"; [Parameter] public string Title { get; set; } = "Choose File";
[Parameter] public bool AllowDirectories { get; set; } = false; [Parameter] public bool AllowDirectories { get; set; } = false;
[Parameter] public string Prefix { get; set; } [Parameter] public string Prefix { get; set; }
[Parameter] public string Root { get; set; }
bool ArchiveExists { get; set; } = false; bool ArchiveExists { get; set; } = false;
@ -35,28 +42,29 @@
{ {
var modalOptions = new ModalOptions() var modalOptions = new ModalOptions()
{ {
Title = ArchiveBrowserTitle, Title = Title,
Maximizable = false, Maximizable = false,
DefaultMaximized = true, DefaultMaximized = true,
Closable = true, Closable = true,
OkText = "Select File", OkText = "Select File",
WrapClassName = "archive-file-picker-dialog" WrapClassName = "file-picker-dialog"
}; };
var browserOptions = new ArchiveFilePickerOptions() var browserOptions = new FilePickerOptions()
{ {
ArchiveId = ArchiveId, ArchiveId = ArchiveId,
Root = Root,
Select = true, Select = true,
Multiple = false, Multiple = false,
AllowDirectories = AllowDirectories AllowDirectories = AllowDirectories
}; };
var modalRef = await ModalService.CreateModalAsync<ArchiveFilePickerDialog, ArchiveFilePickerOptions, IEnumerable<IFileManagerEntry>>(modalOptions, browserOptions); var modalRef = await ModalService.CreateModalAsync<FilePickerDialog, FilePickerOptions, IEnumerable<IFileManagerEntry>>(modalOptions, browserOptions);
modalRef.OnOk = async (results) => modalRef.OnOk = async (results) =>
{ {
if (!String.IsNullOrWhiteSpace(Prefix)) if (!String.IsNullOrWhiteSpace(Prefix))
Value = "{InstallDir}/" + results?.FirstOrDefault()?.Path; Value = Prefix + results?.FirstOrDefault()?.Path;
else else
Value = results?.FirstOrDefault()?.Path; Value = results?.FirstOrDefault()?.Path;

View file

@ -1,9 +1,9 @@
@inherits FeedbackComponent<ArchiveFilePickerOptions, IEnumerable<IFileManagerEntry>> @inherits FeedbackComponent<FilePickerOptions, IEnumerable<IFileManagerEntry>>
@using System.IO.Compression; @using System.IO.Compression;
@using LANCommander.Components.FileManagerComponents; @using LANCommander.Components.FileManagerComponents;
@using LANCommander.Models; @using LANCommander.Models;
<FileManager ArchiveId="Options.ArchiveId" @bind-Selected="SelectedFiles" EntryVisible="IsEntryVisible" SelectMultiple="Options.Multiple" Features="@(FileManagerFeatures.NavigationBack | FileManagerFeatures.NavigationForward | FileManagerFeatures.UpALevel | FileManagerFeatures.Breadcrumbs)" /> <FileManager ArchiveId="@Options.ArchiveId" WorkingDirectory="@Options.Root" @bind-Selected="SelectedFiles" EntrySelectable="IsEntrySelectable" SelectMultiple="Options.Multiple" Features="@(FileManagerFeatures.NavigationBack | FileManagerFeatures.NavigationForward | FileManagerFeatures.UpALevel | FileManagerFeatures.Breadcrumbs)" />
@code { @code {
private IEnumerable<IFileManagerEntry> SelectedFiles { get; set; } private IEnumerable<IFileManagerEntry> SelectedFiles { get; set; }
@ -13,7 +13,7 @@
await base.OkCancelRefWithResult!.OnOk(SelectedFiles); await base.OkCancelRefWithResult!.OnOk(SelectedFiles);
} }
bool IsEntryVisible(IFileManagerEntry entry) bool IsEntrySelectable(IFileManagerEntry entry)
{ {
if (!Options.AllowDirectories && entry is FileManagerDirectory) if (!Options.AllowDirectories && entry is FileManagerDirectory)
return false; return false;

View file

@ -1,8 +1,9 @@
namespace LANCommander.Models namespace LANCommander.Models
{ {
public class ArchiveFilePickerOptions public class FilePickerOptions
{ {
public Guid ArchiveId { get; set; } public Guid ArchiveId { get; set; }
public string Root { get; set; }
public bool Select { get; set; } public bool Select { get; set; }
public bool Multiple { get; set; } = false; public bool Multiple { get; set; } = false;
public bool AllowDirectories { get; set; } = false; public bool AllowDirectories { get; set; } = false;

View file

@ -12,7 +12,7 @@
<Input Type="text" @bind-Value="context.Name" /> <Input Type="text" @bind-Value="context.Name" />
</PropertyColumn> </PropertyColumn>
<PropertyColumn Property="a => a.Path"> <PropertyColumn Property="a => a.Path">
<ArchiveFilePicker @bind-Value="context.Path" ArchiveId="@ArchiveId" AllowDirectories="true" /> <FilePicker @bind-Value="context.Path" ArchiveId="@ArchiveId" AllowDirectories="true" />
</PropertyColumn> </PropertyColumn>
<PropertyColumn Property="a => a.Arguments"> <PropertyColumn Property="a => a.Arguments">
<Input Type="text" @bind-Value="context.Arguments" /> <Input Type="text" @bind-Value="context.Arguments" />
@ -101,14 +101,14 @@
OkText = "Select File" OkText = "Select File"
}; };
var browserOptions = new ArchiveFilePickerOptions() var browserOptions = new FilePickerOptions()
{ {
ArchiveId = ArchiveId, ArchiveId = ArchiveId,
Select = true, Select = true,
Multiple = false Multiple = false
}; };
var modalRef = await ModalService.CreateModalAsync<ArchiveFilePickerDialog, ArchiveFilePickerOptions, IEnumerable<IFileManagerEntry>>(modalOptions, browserOptions); var modalRef = await ModalService.CreateModalAsync<FilePickerDialog, FilePickerOptions, IEnumerable<IFileManagerEntry>>(modalOptions, browserOptions);
modalRef.OnOk = (results) => modalRef.OnOk = (results) =>
{ {

View file

@ -14,7 +14,7 @@
} }
else else
{ {
<ArchiveFilePicker @bind-Value="context.Path" ArchiveId="@ArchiveId" AllowDirectories="true" /> <FilePicker @bind-Value="context.Path" ArchiveId="@ArchiveId" AllowDirectories="true" />
} }
</PropertyColumn> </PropertyColumn>
<ActionColumn> <ActionColumn>

View file

@ -214,14 +214,14 @@
OkText = "Insert File Path" OkText = "Insert File Path"
}; };
var browserOptions = new ArchiveFilePickerOptions() var browserOptions = new FilePickerOptions()
{ {
ArchiveId = ArchiveId, ArchiveId = ArchiveId,
Select = true, Select = true,
Multiple = false Multiple = false
}; };
var modalRef = await ModalService.CreateModalAsync<ArchiveFilePickerDialog, ArchiveFilePickerOptions, IEnumerable<IFileManagerEntry>>(modalOptions, browserOptions); var modalRef = await ModalService.CreateModalAsync<FilePickerDialog, FilePickerOptions, IEnumerable<IFileManagerEntry>>(modalOptions, browserOptions);
modalRef.OnOk = (results) => modalRef.OnOk = (results) =>
{ {