< Summary

Class:MUNity.BlazorServer.Components.Conference.WebEditor.ConferenceWebPageEditorComponent
Assembly:MUNity.BlazorServer
File(s):C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNity.BlazorServer\Components\Conference\WebEditor\ConferenceWebPageEditorComponent.razor
Covered lines:0
Uncovered lines:54
Coverable lines:54
Total lines:150
Line coverage:0% (0 of 54)
Covered branches:0
Total branches:14
Branch coverage:0% (0 of 14)
Covered methods:0
Total methods:6
Method coverage:0% (0 of 6)

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
BuildRenderTree(...)0%120%
get_PageId()100%10%
get_ConferenceId()100%10%
OnParametersSet()0%20%
OnRemoveComponent(...)100%10%
AddTextComponent()100%10%

File(s)

C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNity.BlazorServer\Components\Conference\WebEditor\ConferenceWebPageEditorComponent.razor

#LineLine coverage
 1@using MUNity.Schema.Conference.Website
 2@using MUNity.Database.Models.Website
 3
 4@inject Services.UserConferenceAuthService conferenceAuthService
 5@inject MUNity.Database.Context.MunityContext dbContext
 6@inject Services.ConferenceWebsiteService websiteService
 7
 8<button class="btn btn-default" style="position: absolute; left: auto; right: 50px; top: 10px; bottom: auto;">Speichern<
 9
 10<div class="form-group">
 11    <label>Seitentitel</label>
 12    <input class="form-control" @bind="loadedPage.Title" />
 13    <small>Dieser Name ist nicht automatisch der gleiche, wie der Name im Menü.</small>
 14</div>
 15
 16<div class="row">
 017    <p>Komponenten: @loadedPage.Components.Count</p>
 18    <div class="float-right">
 019        <button class="btn btn-primary" @onclick="() => dbContext.SaveChanges()"><i class="fa fa-save"></i> Änderungen s
 20    </div>
 21</div>
 22
 023@foreach (var component in loadedPage.Components.OrderBy(n => n.SortOrder))
 024{
 025    if (component is MUNity.Database.Models.Website.WebPageTextElement textElement)
 026    {
 27        <EditTextComponent Element="@textElement" RequestRemove=OnRemoveComponent />
 028    }
 029    else if (component is MUNity.Database.Models.Website.TeamCardsElement teamCard)
 030    {
 31        <EditTeamCardComponent Element="@teamCard" />
 032    }
 033    else if (component is MUNity.Database.Models.Website.CommitteeTopicsElement topics)
 034    {
 35        <EditCommitteeTopicsComponent Element="@topics" ConferenceId="@ConferenceId" />
 036    }
 037    else if (component is MUNity.Database.Models.Website.CommitteeDelegatesElement delegates)
 038    {
 39        <EditCommitteeSeatsComponent Element=@delegates ConferenceId=@ConferenceId />
 040    }
 41    else
 042    {
 43        <div class="col-12">
 044            <div class="alert alert-danger">Unbekanntes Element: @component.GetType().Name</div>
 45        </div>
 046    }
 47
 048}
 49
 50<div class="row">
 51    <div class="card text-center border-0">
 52        <div class="card-body">
 053        <button class="btn btn-success btn-icon" @onclick="() => showAddItemModal = true"><i class="fa fa-plus"></i></bu
 54
 55        </div>
 56
 57    </div>
 58</div>
 59
 060@if (showAddItemModal)
 061{
 62    <div class="modal-backdrop opacity-7"></div>
 63    <div class="modal fade show" id="modal-dialog" aria-modal="true" role="dialog" style="display: block">
 64      <div class="modal-dialog">
 65        <div class="modal-content">
 66          <div class="modal-header">
 67            <h4 class="modal-title">Modal Dialog</h4>
 068            <button type="button" class="btn-close" @onclick="() => showAddItemModal = false"></button>
 69          </div>
 70          <div class="modal-body">
 71                        <div class="row">
 72                            <div class="col-4">
 73                                <div class="card cursor-pointer" @onclick=AddTextComponent>
 74                                    <div class="card-body">
 75                                        <h5 class="card-title">Text</h5>
 76                                        <p>Eine Komponente zur Darstellung von Texten und Bildern.</p>
 77                                    </div>
 78                                </div>
 79                            </div>
 80
 81                            <div class="col-4">
 82                                <div class="card">
 83                                    <div class="card-body">
 84                                        <h5 class="card-title">Gremien-Themen</h5>
 85                                        <p>Automatisch generierte Komponente, welche die Themen eines ausgewählten Gremi
 86                                    </div>
 87                                </div>
 88                            </div>
 89
 90                            <div class="col-4">
 91                                <div class="card">
 92                                    <div class="card-body">
 93                                        <h5 class="card-title">Gremien-Sitze</h5>
 94                                        <p>Automatisch generierte Komponente, welche die Sitze in einem Gremium anzeigt.
 95                                    </div>
 96                                </div>
 97                            </div>
 98                        </div>
 99
 100          </div>
 101        </div>
 102      </div>
 103    </div>
 0104}
 105
 106@code {
 0107    [Parameter] public string PageId { get; set; }
 108
 0109    [Parameter] public string ConferenceId { get; set; }
 110
 111
 112    private MUNity.Database.Models.Website.ConferenceWebPage loadedPage;
 113
 114    private bool showAddItemModal;
 115
 116
 117    protected override void OnParametersSet()
 0118    {
 0119        base.OnParametersSet();
 0120        if (!string.IsNullOrEmpty(PageId))
 0121        {
 0122            this.loadedPage = dbContext.ConferenceWebPages
 0123                .Include(n => n.Components)
 0124                .FirstOrDefault(n => n.ConferenceWebPageId == PageId);
 0125        }
 126        else
 0127        {
 0128            this.loadedPage = dbContext.ConferenceWebPages
 0129               .Include(n => n.Components)
 0130               .FirstOrDefault(n => n.Conference.ConferenceId == ConferenceId && n.IsIndexPage);
 0131        }
 0132        this.InvokeAsync(StateHasChanged);
 0133    }
 134
 135     private void OnRemoveComponent(AbstractConferenceWebPageElement element)
 0136    {
 0137        this.loadedPage.Components.Remove(element);
 0138        InvokeAsync(this.StateHasChanged);
 0139    }
 140
 141    private void AddTextComponent()
 0142    {
 0143        this.loadedPage.Components.Add(new WebPageTextElement()
 0144        {
 0145            SortOrder = loadedPage.Components.Count,
 0146            Page = loadedPage
 0147        });
 0148        showAddItemModal = false;
 0149    }
 150}