Add file upload popup dialog
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
using Hcs.WebApp.BackgroundServices;
|
||||
using Hcs.WebApp.Components.Dialogs;
|
||||
using Hcs.WebApp.Data.Hcs;
|
||||
using Hcs.WebApp.Services;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using Radzen;
|
||||
using System.Security.Claims;
|
||||
|
||||
namespace Hcs.WebApp.Components.Shared
|
||||
@ -12,6 +14,7 @@ namespace Hcs.WebApp.Components.Shared
|
||||
protected SyncedPageState state;
|
||||
protected IEnumerable<TData> data;
|
||||
protected string syncButtonText = "...";
|
||||
protected string parseButtonText = "...";
|
||||
|
||||
protected abstract Campaign.CampaignType CampaignType { get; }
|
||||
|
||||
@ -24,6 +27,9 @@ namespace Hcs.WebApp.Components.Shared
|
||||
[Inject]
|
||||
private CampaignManagementState CampaignManagementState { get; set; }
|
||||
|
||||
[Inject]
|
||||
protected DialogService DialogService { get; set; }
|
||||
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (firstRender)
|
||||
@ -78,31 +84,63 @@ namespace Hcs.WebApp.Components.Shared
|
||||
}
|
||||
}
|
||||
|
||||
protected async Task ParseDataAsync()
|
||||
{
|
||||
if (state == SyncedPageState.SyncWaiting) return;
|
||||
|
||||
ChangeState(SyncedPageState.SyncWaiting);
|
||||
|
||||
if (await HeadquartersService.HasActiveCampaignAsync(CampaignType))
|
||||
{
|
||||
ChangeState(SyncedPageState.Idle);
|
||||
}
|
||||
else
|
||||
{
|
||||
await DialogService.OpenAsync<StartParsing>(
|
||||
"Отправка файла",
|
||||
null,
|
||||
new DialogOptions()
|
||||
{
|
||||
Width = "600px",
|
||||
CloseDialogOnEsc = false,
|
||||
CloseDialogOnOverlayClick = false,
|
||||
ShowClose = false
|
||||
});
|
||||
|
||||
//// TODO: Use user id
|
||||
//var campaign = await HeadquartersService.InitiateCampaignAsync(CampaignType, "");
|
||||
//CampaignManagementState.EnqueueCampaign(campaign);
|
||||
}
|
||||
}
|
||||
|
||||
private void ChangeState(SyncedPageState state)
|
||||
{
|
||||
if (this.state == state) return;
|
||||
|
||||
this.state = state;
|
||||
|
||||
SetSyncButtonText();
|
||||
SetButtonsText();
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private void SetSyncButtonText()
|
||||
private void SetButtonsText()
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case SyncedPageState.Init:
|
||||
syncButtonText = "...";
|
||||
parseButtonText = "...";
|
||||
break;
|
||||
|
||||
case SyncedPageState.Loading:
|
||||
case SyncedPageState.Idle:
|
||||
syncButtonText = "Синхронизировать";
|
||||
parseButtonText = "Спарсить";
|
||||
break;
|
||||
|
||||
case SyncedPageState.SyncWaiting:
|
||||
syncButtonText = "Идет синхронизация...";
|
||||
parseButtonText = "Идет парсинг...";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user