You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
282 lines
10 KiB
282 lines
10 KiB
@page "/Company/CompanyContact"
|
|
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
|
|
@inherits Admin.ListBase
|
|
@using Syncfusion.Blazor.Grids;
|
|
@using Syncfusion.Blazor.Buttons;
|
|
@using Syncfusion.Blazor.Spinner;
|
|
@using Syncfusion.Blazor.Popups;
|
|
@using Syncfusion.Blazor.Notifications;
|
|
@using BlazorApp.Helper
|
|
@using BWPMModels;
|
|
|
|
@using BlazorApp.Controller;
|
|
|
|
|
|
<h3><b>Ansprechpartner</b></h3>
|
|
|
|
|
|
<div class="col-lg-12 control-section">
|
|
<div class="content-wrapper">
|
|
<div class="row">
|
|
<SfGrid DataSource="@GridData" @ref="Grid" AllowPaging="true" AllowSorting="true" Toolbar="@(new List<string>() { "Add", "Edit", "Delete" })">
|
|
<GridPageSettings PageCount="5" PageSizes="true"></GridPageSettings>
|
|
<GridEditSettings AllowAdding="true" AllowDeleting="true" ShowDeleteConfirmDialog="true" AllowEditing="true" Mode="EditMode.Dialog"></GridEditSettings>
|
|
<GridEvents OnActionBegin="OnBeginHandler" OnActionComplete="OnCompletedHandler" TValue="Ansprechpartner" OnDataBound="RowDataBoundHandler"></GridEvents>
|
|
<GridColumns>
|
|
@*<GridColumn Type="ColumnType.CheckBox" AllowFiltering="false" AllowSorting="false" Width="60"></GridColumn>*@
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.ID) HeaderText="Id" IsPrimaryKey="true" AllowAdding="false" Width="60" Visible="false"></GridColumn>
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.FirmaID) HeaderText="Firmaid" Width="100" Visible="false"></GridColumn>
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.name) HeaderText="Name" Width="100" Visible="true"></GridColumn>
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.vorname) HeaderText="Vorname" Width="100" Visible="true"></GridColumn>
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.anrede) HeaderText="Anrede" Width="100" Visible="true"></GridColumn>
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.tel) HeaderText="Tel" Width="100" Visible="true"></GridColumn>
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.email) HeaderText="Email" Width="100" Visible="true"></GridColumn>
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.aktiv) HeaderText="Aktiv" Width="100" Visible="false" DisplayAsCheckBox="true"></GridColumn>
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.erstellt_am) HeaderText="Erstellt_am" Width="100" Visible="false" Format="d" Type="ColumnType.Date"></GridColumn>
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.mutiert_am) HeaderText="Mutiert_am" Width="100" Visible="false" Format="d" Type="ColumnType.Date"></GridColumn>
|
|
|
|
<GridColumn Field=@nameof(Ansprechpartner.mutierer) HeaderText="Mutierer" Width="100" Visible="false"></GridColumn>
|
|
</GridColumns>
|
|
</SfGrid>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<SfDialog Width="250px" IsModal="true" @bind-Visible="@ShowDialog">
|
|
<DialogTemplates>
|
|
<Header> Formmular unvollständig </Header>
|
|
<Content> Bitte zuerst die Firmen-Daten vollständig ausfüllen. </Content>
|
|
|
|
</DialogTemplates>
|
|
<DialogButtons>
|
|
<DialogButton Content="OK" IsPrimary="true" OnClick="@CloseDialog" />
|
|
</DialogButtons>
|
|
</SfDialog>
|
|
<SfDialog Width="250px" IsModal="true" @bind-Visible="@ShowDialogDeleteError">
|
|
<DialogTemplates>
|
|
<Header> Löschung nicht möglich </Header>
|
|
<Content> Dem Ansprechpartner sind noch Berufsangebote zugeordnet. Diese bitte zuerst löschen. </Content>
|
|
|
|
</DialogTemplates>
|
|
<DialogButtons>
|
|
<DialogButton Content="OK" IsPrimary="true" OnClick="@CloseDialog" />
|
|
</DialogButtons>
|
|
</SfDialog>
|
|
|
|
<div class="col-lg-12 control-section toast-default-section">
|
|
<SfToast ID="toast_default" @ref="ToastObj" Content="@ToastContent" Timeout="5000" Icon="e-meeting">
|
|
<ToastPosition X="Right" Y="Bottom"></ToastPosition>
|
|
<ToastAnimationSettings>
|
|
<ToastShowAnimationSettings Effect="@ShowAnimation"></ToastShowAnimationSettings>
|
|
<ToastHideAnimationSettings Effect="@HideAnimation"></ToastHideAnimationSettings>
|
|
</ToastAnimationSettings>
|
|
</SfToast>
|
|
</div>
|
|
<style>
|
|
|
|
|
|
.bootstrap4 #toast_default .e-meeting::before {
|
|
content: "\e763";
|
|
font-size: 20px;
|
|
}
|
|
|
|
.e-toast-container .e-toast {
|
|
background-color: lightgreen;
|
|
}
|
|
</style>
|
|
@code {
|
|
SfToast ToastObj;
|
|
private string ToastPosition = "Right";
|
|
private string ToastContent = "Daten erfolgreich gespeichert";
|
|
private ToastEffect ShowAnimation = ToastEffect.FadeIn;
|
|
private ToastEffect HideAnimation = ToastEffect.FadeOut;
|
|
}
|
|
|
|
@code {
|
|
SfGrid<Ansprechpartner> Grid { get; set; }
|
|
public List<BWPMModels.Ansprechpartner> GridData { get; set; }
|
|
public List<BWPMModels.Ansprechpartner> Ansprechpartners { get; set; }
|
|
string userid = "";
|
|
public static int? pkey { get; set; }
|
|
public bool Initial { get; set; } = true;
|
|
public bool ShowDialogDeleteError = false;
|
|
|
|
public bool ContinuePaging = true;
|
|
public bool InitialRender { get; set; }
|
|
public int Value = 0; // consider that value your querystring contains
|
|
public int foundrow = 0;
|
|
|
|
private Firma _firma { get; set; } = new BWPMModels.Firma();
|
|
public List<BWPMModels.Firma> Firmendaten { get; set; }
|
|
private bool ShowDialog { get; set; } = false;
|
|
|
|
private void CloseDialog()
|
|
{
|
|
if (ShowDialog == true)
|
|
{
|
|
this.ShowDialog = false;
|
|
NavigationManager.NavigateTo("/Company/Company");
|
|
|
|
}
|
|
}
|
|
|
|
protected override async void OnInitialized()
|
|
{
|
|
|
|
}
|
|
|
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
|
{
|
|
|
|
@*userid = "4c456017-85b9-4f34-a42c-f3ac534cc34f";*@
|
|
|
|
userid = await sessionStorage.GetItemAsync<string>("UserID");
|
|
if (userid == null)
|
|
{
|
|
var authState = await authenticationStateTask;
|
|
var userId = authState.User.Claims.FirstOrDefault().Value;
|
|
var user = authState.User;
|
|
|
|
if (user.Identity.IsAuthenticated)
|
|
|
|
{
|
|
await sessionStorage.SetItemAsync("UserID", userId);
|
|
userid = userId;
|
|
}
|
|
else
|
|
{
|
|
await sessionStorage.SetItemAsync("UserID", userId);
|
|
userid = userId;
|
|
}
|
|
}
|
|
|
|
Firmendaten = BlazorApp.Controller.FirmaController.GetByUserID(userid);
|
|
_firma = Firmendaten.First<BWPMModels.Firma>();
|
|
if (_firma.nameZ1 == "")
|
|
{
|
|
ShowDialog = true;
|
|
return;
|
|
}
|
|
GridData = BlazorApp.Controller.AnsprechpartnerController.GetByFirmaID(_firma.ID);
|
|
|
|
}
|
|
private async Task OnBeginHandler(ActionEventArgs<BWPMModels.Ansprechpartner> Args)
|
|
|
|
{
|
|
if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Save)
|
|
{
|
|
if (Args.Action == "Add")
|
|
{
|
|
|
|
Args.Data.erstellt_am = DateTime.Now;
|
|
Args.Data.mutierer = userid;
|
|
Args.Data.mutiert_am = DateTime.Now;
|
|
Args.Data.aktiv = true;
|
|
Args.Data.FirmaID = _firma.ID;
|
|
Args.Data.ID = BlazorApp.Controller.AnsprechpartnerController.POST(Args.Data);
|
|
Value = Args.Data.ID;
|
|
ToastObj.ShowAsync();
|
|
|
|
}
|
|
else
|
|
{
|
|
Args.Data.mutierer = userid.ToString();
|
|
Args.Data.mutiert_am = DateTime.Now;
|
|
BlazorApp.Controller.AnsprechpartnerController.PUT(Args.Data);
|
|
ToastObj.ShowAsync();
|
|
}
|
|
}
|
|
if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Delete)
|
|
{
|
|
List<BWPMModels.Firmaberuf> FB = new List<BWPMModels.Firmaberuf>();
|
|
FB = BlazorApp.Controller.FirmaberufController.GetAllAktiveByAnsprechpartnerID(Args.Data.ID);
|
|
if (FB.Count > 0)
|
|
{
|
|
ShowDialogDeleteError=true;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
Args.Data.aktiv = false;
|
|
Args.Data.mutierer = userid;
|
|
Args.Data.mutiert_am = DateTime.Now;
|
|
BlazorApp.Controller.AnsprechpartnerController.PUT(Args.Data);
|
|
GridData = BlazorApp.Controller.AnsprechpartnerController.GetByFirmaID(_firma.ID);
|
|
}
|
|
}
|
|
}
|
|
|
|
public async Task OnCompletedHandler(ActionEventArgs<BWPMModels.Ansprechpartner> Args)
|
|
|
|
{
|
|
if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Save)
|
|
{
|
|
await Grid.SetRowData(Args.Data.ID, Args.Data);
|
|
double xx = 0;
|
|
Value = Args.Data.ID;
|
|
xx = await DataHandler();
|
|
await Grid.SelectRow(xx);
|
|
|
|
}
|
|
}
|
|
public async void RowDataBoundHandler(BeforeDataBoundArgs<BWPMModels.Ansprechpartner> args)
|
|
{
|
|
if (!Initial)
|
|
{
|
|
//await Task.Delay(100);
|
|
//var Idx = await this.Grid.GetRowIndexByPrimaryKey(Convert.ToDouble(Value)); //get index value
|
|
//this.Grid.SelectRow(Convert.ToDouble(Idx));
|
|
}
|
|
Initial = false;
|
|
}
|
|
|
|
public async Task<double> DataHandler()
|
|
{
|
|
var PageCount = (GridData.Count / Grid.PageSettings.PageSize) + 1;
|
|
ContinuePaging = true;
|
|
var CurrentPage = 1;
|
|
Grid.Refresh();
|
|
await Grid.GoToPage(1);
|
|
|
|
for (int i = 1; i <= PageCount; i++)
|
|
|
|
{
|
|
List<Ansprechpartner> Rows = await Grid.GetCurrentViewRecords(); // returns the current view data
|
|
for (int j = 0; j < Grid.PageSettings.PageSize; j++)
|
|
{
|
|
if (j < Rows.Count && Rows[j].ID == Value)
|
|
{
|
|
foundrow = j;
|
|
|
|
ContinuePaging = false; // prevent the default navigation
|
|
break;
|
|
}
|
|
}
|
|
if (ContinuePaging)
|
|
{
|
|
if (i >= PageCount)
|
|
{
|
|
i = 0;
|
|
}
|
|
await Grid.GoToPage(i + 1);
|
|
|
|
}
|
|
else
|
|
{
|
|
return foundrow;
|
|
}
|
|
}
|
|
return foundrow;
|
|
}
|
|
}
|