1@using Escali.LicenseControl.Client.ViewModels
2@using Escali.LicenseControl.Client.ClientModels
4@using System.ComponentModel
5@inject ProductViewModel _productViewService
6@inject ModuleViewModel _moduleViewService
7@inject StateService _stateService
11@if (_stateService.EditModule.Value != null)
13 <EditForm Model="_stateService.EditModule.Value" OnValidSubmit="UpdateModule" OnInvalidSubmit="EventCallback.Empty">
14 <StandardModal Header="Endre modul" SubmitButtonName="Oppdater modul" ShowModal="true" OnModalClosed="ResetModal">
16 <div class="create-modal-container">
17 <ObjectGraphDataAnnotationsValidator />
19 <div class="input-split">
20 <div class="input-container form-floating mb-3">
21 <InputText @bind-Value="_stateService.EditModule.Value.ModuleName" type="text" class="form-control input-text" id="floatingInput" placeholder="Modulnavn" />
22 <label for="floatingInput">Modulnavn</label>
25 <InputCheckbox @bind-Value="_stateService.EditModule.Value.IsActive" class="form-check-input is-active-module-checkbox" title="Activate/deactivate module"></InputCheckbox>
28 <div class="module-level-modal-list">
30 <h6 class="modal-header-second">Modulnivå</h6>
32 @foreach (var ml in _stateService.EditModule.Value.ModuleLevels)
34 <InputModuleLevel NewModuleLevel="ml" OnChange="OnModuleLevelChange">
36 <InputCheckbox disabled="@(!_stateService.EditModule.Value.IsActive)" @bind-Value="ml.IsActive" class="form-check-input is-active-module-level-checkbox" title="Activate/deactivate module level"></InputCheckbox>
41 <button class="add-module-level-button" type="button" @onclick="() => AddModuleLevelToModule(_stateService.EditModule.Value.ModuleLevels)">
42 <img class="" src="Icons/add-icon-black.svg" alt=""/>
54 private EventCallback<ChangeEventArgs> OnModuleLevelChange { get; set; }
57 public EventCallback SetEditModalToNull { get; set; }
59 private async Task UpdateModule()
61 var updatedModule = await _moduleViewService.UpdateModule(_stateService.EditModule.Value!)!;
62 if (updatedModule != null) ResetModal();
65 private async Task AddModuleLevelToModule(List<ModuleLevelClientModel> moduleLevels)
67 _stateService.EditModule.Value!.ModuleLevels!.Add(new ModuleLevelClientModel());
70 private void ResetModal()
72 _stateService.UpdateEditModule(null);
75 protected override void OnInitialized()
77 _stateService.EditModule.ValueChanged += StateHasChanged;
80 void IDisposable.Dispose()
82 _stateService.EditModule.ValueChanged -= StateHasChanged;