| | 1 | | @using MUNity.Schema.Conference |
| | 2 | | @inject Services.ConferenceRoleService conferenceRoleService |
| | 3 | | @inject NotificationService NotificationService |
| | 4 | |
|
| | 5 | | <div class="panel panel-inverse"> |
| | 6 | | <div class="panel-heading"> |
| | 7 | | <h4 class="panel-title">Rollen in Gremien</h4> |
| | 8 | | <div class="panel-heading-btn"> |
| 0 | 9 | | <a href="javascript:;" @onclick="() => showCommitteeRoles = !showCommitteeRoles" class="btn btn-xs btn-icon |
| | 10 | | </div> |
| | 11 | | </div> |
| | 12 | |
|
| 0 | 13 | | @if (showCommitteeRoles) |
| 0 | 14 | | { |
| | 15 | | <div class="alert alert-warning rounded-0 mb-0 fade show"> |
| | 16 | | An dieser Stelle können alle Rollen für Gremien eingesehen werden. |
| | 17 | | </div> |
| | 18 | |
|
| | 19 | | <div class="panel-body"> |
| | 20 | | <div class="dataTables_wrapper dt-bootstrap4 no-footer"> |
| | 21 | | <table class="table table-striped table-bordered align-middle dataTable no-footer dtr-inline" role="grid |
| | 22 | | <thead> |
| | 23 | | <tr> |
| | 24 | | <th>#</th> |
| | 25 | | <th class="@committeeRolesNameOrderStyle" @onclick="SetCommitteeRolesOrderModeName">Name</th |
| | 26 | | <th class="@committeeRolesCommitteeOrderStyle" @onclick="SetCommitteeRolesOrderModeCommittee |
| | 27 | | <th class="@committeeRolesDelegationOrderStyle" @onclick="SetCommitteeRolesOrderModeDelegati |
| | 28 | | <th>Bewerbungstyp</th> |
| | 29 | | <th>Ist belegt</th> |
| | 30 | | </tr> |
| | 31 | | </thead> |
| | 32 | | <tbody> |
| 0 | 33 | | @if (Roles != null && Roles.Any()) |
| 0 | 34 | | { |
| 0 | 35 | | foreach (var role in GetCommitteeRolesWithOrder()) |
| 0 | 36 | | { |
| | 37 | | <tr> |
| 0 | 38 | | <td>@role.RoleId</td> |
| 0 | 39 | | <td>@role.RoleName</td> |
| 0 | 40 | | <td>@role.RoleCommitteeName</td> |
| 0 | 41 | | <td>@role.DelegationName</td> |
| | 42 | | <td> |
| 0 | 43 | | <select class="form-select" value="@role.ApplicationState" @onchange="(args) => |
| | 44 | | <option value="@EApplicationStates.Closed">Anmeldung geschlossen</option> |
| | 45 | | <option value="@EApplicationStates.DelegationApplication">Anmeldung auf Dele |
| | 46 | | <option value="@EApplicationStates.DirectApplication">Anmeldung auf Rolle (d |
| | 47 | | </select> |
| | 48 | | </td> |
| 0 | 49 | | <td>@((role.HasParicipant) ? "Ja" : "Nein")</td> |
| | 50 | | </tr> |
| 0 | 51 | | } |
| 0 | 52 | | } |
| | 53 | | </tbody> |
| | 54 | | </table> |
| | 55 | |
|
| | 56 | | </div> |
| | 57 | | </div> |
| 0 | 58 | | } |
| | 59 | |
|
| | 60 | |
|
| | 61 | | </div> |
| | 62 | |
|
| | 63 | | @code { |
| 0 | 64 | | [Parameter] public IEnumerable<ManageDelegationRoleInfo> Roles { get; set; } |
| | 65 | |
|
| 0 | 66 | | [CascadingParameter] public Task<AuthenticationState> AuthStateTask { get; set; } |
| | 67 | |
|
| | 68 | | private bool showCommitteeRoles; |
| | 69 | |
|
| | 70 | | private string committeeRolesNameOrderStyle |
| | 71 | | { |
| | 72 | | get |
| 0 | 73 | | { |
| 0 | 74 | | if (committeeRolesOrderMode == CommitteeRolesOrderModes.ByNameAscending) |
| 0 | 75 | | { |
| 0 | 76 | | return "text-nowrap sorting sorting_asc"; |
| | 77 | | } |
| 0 | 78 | | else if (committeeRolesOrderMode == CommitteeRolesOrderModes.ByNameDescending) |
| 0 | 79 | | { |
| 0 | 80 | | return "text-nowrap sorting sorting_desc"; |
| | 81 | | } |
| | 82 | | else |
| 0 | 83 | | { |
| 0 | 84 | | return "text-nowrap sorting"; |
| | 85 | |
|
| | 86 | | } |
| 0 | 87 | | } |
| | 88 | | } |
| | 89 | |
|
| | 90 | | private string committeeRolesCommitteeOrderStyle |
| | 91 | | { |
| | 92 | | get |
| 0 | 93 | | { |
| 0 | 94 | | if (committeeRolesOrderMode == CommitteeRolesOrderModes.ByCommitteeAscending) |
| 0 | 95 | | { |
| 0 | 96 | | return "text-nowrap sorting sorting_asc"; |
| | 97 | | } |
| 0 | 98 | | else if (committeeRolesOrderMode == CommitteeRolesOrderModes.ByCommitteeDescending) |
| 0 | 99 | | { |
| 0 | 100 | | return "text-nowrap sorting sorting_desc"; |
| | 101 | | } |
| | 102 | | else |
| 0 | 103 | | { |
| 0 | 104 | | return "text-nowrap sorting"; |
| | 105 | |
|
| | 106 | | } |
| 0 | 107 | | } |
| | 108 | | } |
| | 109 | |
|
| | 110 | | private string committeeRolesDelegationOrderStyle |
| | 111 | | { |
| | 112 | | get |
| 0 | 113 | | { |
| 0 | 114 | | if (committeeRolesOrderMode == CommitteeRolesOrderModes.ByCommitteeAscending) |
| 0 | 115 | | { |
| 0 | 116 | | return "text-nowrap sorting sorting_asc"; |
| | 117 | | } |
| 0 | 118 | | else if (committeeRolesOrderMode == CommitteeRolesOrderModes.ByCommitteeDescending) |
| 0 | 119 | | { |
| 0 | 120 | | return "text-nowrap sorting sorting_desc"; |
| | 121 | | } |
| | 122 | | else |
| 0 | 123 | | { |
| 0 | 124 | | return "text-nowrap sorting"; |
| | 125 | |
|
| | 126 | | } |
| 0 | 127 | | } |
| | 128 | | } |
| | 129 | |
|
| | 130 | | private enum CommitteeRolesOrderModes |
| | 131 | | { |
| | 132 | | Default, |
| | 133 | | ByNameAscending, |
| | 134 | | ByNameDescending, |
| | 135 | | ByCommitteeAscending, |
| | 136 | | ByCommitteeDescending, |
| | 137 | | ByDelegationAscending, |
| | 138 | | ByDelegationDescending |
| | 139 | | } |
| | 140 | |
|
| | 141 | | private CommitteeRolesOrderModes committeeRolesOrderMode; |
| | 142 | |
|
| | 143 | | private IEnumerable<ManageDelegationRoleInfo> GetCommitteeRolesWithOrder() |
| 0 | 144 | | { |
| 0 | 145 | | switch (committeeRolesOrderMode) |
| | 146 | | { |
| | 147 | | case CommitteeRolesOrderModes.Default: |
| 0 | 148 | | return Roles.Where(n => !string.IsNullOrEmpty(n.RoleCommitteeId)); |
| | 149 | | case CommitteeRolesOrderModes.ByNameAscending: |
| 0 | 150 | | return Roles.Where(n => !string.IsNullOrEmpty(n.RoleCommitteeId)).OrderBy(n => n.RoleName); |
| | 151 | | case CommitteeRolesOrderModes.ByNameDescending: |
| 0 | 152 | | return Roles.Where(n => !string.IsNullOrEmpty(n.RoleCommitteeId)).OrderByDescending(n => n.RoleName); |
| | 153 | | case CommitteeRolesOrderModes.ByCommitteeAscending: |
| 0 | 154 | | return Roles.Where(n => !string.IsNullOrEmpty(n.RoleCommitteeId)).OrderBy(n => n.RoleCommitteeName); |
| | 155 | | case CommitteeRolesOrderModes.ByCommitteeDescending: |
| 0 | 156 | | return Roles.Where(n => !string.IsNullOrEmpty(n.RoleCommitteeId)).OrderByDescending(n => n.RoleCommittee |
| | 157 | | case CommitteeRolesOrderModes.ByDelegationAscending: |
| 0 | 158 | | return Roles.Where(n => !string.IsNullOrEmpty(n.RoleCommitteeId)).OrderBy(n => n.DelegationName); |
| | 159 | | case CommitteeRolesOrderModes.ByDelegationDescending: |
| 0 | 160 | | return Roles.Where(n => !string.IsNullOrEmpty(n.RoleCommitteeId)).OrderByDescending(n => n.DelegationNam |
| | 161 | | default: |
| 0 | 162 | | return Roles.Where(n => !string.IsNullOrEmpty(n.RoleCommitteeId)); |
| | 163 | | } |
| 0 | 164 | | } |
| | 165 | |
|
| | 166 | |
|
| | 167 | |
|
| | 168 | | private void SetCommitteeRolesOrderModeName() |
| 0 | 169 | | { |
| 0 | 170 | | if (committeeRolesOrderMode == CommitteeRolesOrderModes.ByNameAscending) |
| 0 | 171 | | committeeRolesOrderMode = CommitteeRolesOrderModes.ByNameDescending; |
| | 172 | | else |
| 0 | 173 | | committeeRolesOrderMode = CommitteeRolesOrderModes.ByNameAscending; |
| 0 | 174 | | } |
| | 175 | |
|
| | 176 | | private void SetCommitteeRolesOrderModeCommittee() |
| 0 | 177 | | { |
| 0 | 178 | | if (committeeRolesOrderMode == CommitteeRolesOrderModes.ByCommitteeAscending) |
| 0 | 179 | | committeeRolesOrderMode = CommitteeRolesOrderModes.ByCommitteeDescending; |
| | 180 | | else |
| 0 | 181 | | committeeRolesOrderMode = CommitteeRolesOrderModes.ByCommitteeAscending; |
| 0 | 182 | | } |
| | 183 | |
|
| | 184 | | private void SetCommitteeRolesOrderModeDelegation() |
| 0 | 185 | | { |
| 0 | 186 | | if (committeeRolesOrderMode == CommitteeRolesOrderModes.ByDelegationAscending) |
| 0 | 187 | | committeeRolesOrderMode = CommitteeRolesOrderModes.ByDelegationDescending; |
| | 188 | | else |
| 0 | 189 | | committeeRolesOrderMode = CommitteeRolesOrderModes.ByDelegationAscending; |
| 0 | 190 | | } |
| | 191 | |
|
| | 192 | | private async Task ChangeApplicationMode(ChangeEventArgs args, ManageDelegationRoleInfo role) |
| 0 | 193 | | { |
| 0 | 194 | | var claim = (await AuthStateTask)?.User; |
| 0 | 195 | | if (claim == null) |
| 0 | 196 | | return; |
| | 197 | |
|
| 0 | 198 | | var result = await conferenceRoleService.SetDelegateRoleApplicationState(role.RoleId, args.Value.ToString(), cla |
| 0 | 199 | | @if (!result) |
| 0 | 200 | | { |
| 0 | 201 | | var message = new NotificationMessage() |
| 0 | 202 | | { |
| 0 | 203 | | Detail = "Die Änderung konnte nicht übernommen werden.", |
| 0 | 204 | | Duration = 5, |
| 0 | 205 | | Severity = NotificationSeverity.Error, |
| 0 | 206 | | Summary = "Fehler" |
| 0 | 207 | | }; |
| 0 | 208 | | NotificationService.Notify(message); |
| 0 | 209 | | } |
| 0 | 210 | | } |
| | 211 | | } |