Added group reminder

This commit is contained in:
Sarah Faey 2022-12-08 23:27:26 +01:00
parent 83f9b2d0b8
commit 64ce169094
12 changed files with 853 additions and 45 deletions

View file

@ -14,21 +14,38 @@
<th>Hours</th>
<th>Minutes</th>
<th>Type</th>
@if(_raidReminders.Where(r => r.Type == RaidReminder.ReminderType.Channel).Any())
@{bool channelReminderExists = _raidReminders.Where(r => r.Type == RaidReminder.ReminderType.Channel).Any();
bool groupReminderExists = _raidReminders.Where(r => r.Type == RaidReminder.ReminderType.Group).Any();}
@if(channelReminderExists && groupReminderExists)
{
<th>Group</th>
<th>Server</th>
<th>Channel</th>
}
else if(channelReminderExists)
{
<th></th>
<th>Server</th>
<th>Channel</th>
}
else if(groupReminderExists)
{
<th>Group</th>
<th></th>
<th></th>
}
else
{
<th></th>
<th></th>
<th></th>
}
<th>Message</th>
</tr>
@foreach( DynamicRaidReminder reminder in _raidReminders)
{
bool hidden = reminder.Type == RaidReminder.ReminderType.User;
bool groupHidden = reminder.Type != RaidReminder.ReminderType.Group;
bool discordHidden = reminder.Type != RaidReminder.ReminderType.Channel;
<tr>
<td><InputNumber @bind-Value="reminder.DaysBeforeRaid" /></td>
<td><InputNumber @bind-Value="reminder.HoursBeforeRaid" /></td>
@ -42,7 +59,15 @@
</InputSelect>
</td>
<td>
<InputSelect @bind-Value="reminder.DiscordServerId" hidden="@hidden">
<InputSelect @bind-Value="reminder.RoleId" hidden="@groupHidden">
@foreach(LiebRole role in _availableRoles)
{
<option value="@role.LiebRoleId">@role.RoleName</option>
}
</InputSelect>
</td>
<td>
<InputSelect @bind-Value="reminder.DiscordServerId" hidden="@discordHidden">
@foreach(DiscordServer item in _discordServers)
{
<option value="@item.Id">@item.Name</option>
@ -50,7 +75,7 @@
</InputSelect>
</td>
<td>
<InputSelect @bind-Value="reminder.DiscordChannelId" hidden="@hidden">
<InputSelect @bind-Value="reminder.DiscordChannelId" hidden="@discordHidden">
@if(reminder.DiscordServerId > 0)
{
List<DiscordChannel> channels = _discordServers.Where(s => s.Id == reminder.DiscordServerId).FirstOrDefault(new DiscordServer()).Channels;
@ -81,6 +106,9 @@
[Parameter]
public List<RaidReminder> _remindersToDelete {get; set; }
[Parameter]
public List<LiebRole> _availableRoles {get; set; }
async Task AddReminderClicked()
{

View file

@ -167,8 +167,8 @@
<DiscordMessageEdit _raid=@_raid _discordServers=@_discordServers _messagesToDelete=@_messagesToDelete ></DiscordMessageEdit>
<StaticReminderEdit _raidReminders=@_staticReminders _discordServers=@_discordServers _remindersToDelete=@_remindersToDelete ></StaticReminderEdit>
<DynamicReminderEdit _raidReminders=@_dynamicReminders _discordServers=@_discordServers _remindersToDelete=@_remindersToDelete ></DynamicReminderEdit>
<StaticReminderEdit _raidReminders=@_staticReminders _discordServers=@_discordServers _remindersToDelete=@_remindersToDelete _availableRoles=@_availabeGroups></StaticReminderEdit>
<DynamicReminderEdit _raidReminders=@_dynamicReminders _discordServers=@_discordServers _remindersToDelete=@_remindersToDelete _availableRoles=@_availabeGroups></DynamicReminderEdit>
<ValidationSummary />
<label class="validation-message" >@_errorMessage</label>
@ -203,7 +203,7 @@
private List<DynamicRaidReminder> _dynamicReminders = new List<DynamicRaidReminder>();
private List<DiscordServer> _discordServers = new List<DiscordServer>();
private List<LiebRole> _availabeGroups = new List<LiebRole>();
protected override async Task OnInitializedAsync()
@ -267,6 +267,7 @@
}
_discordServers = await DiscordService.GetServers();
_availabeGroups = UserService.GetUserRoles(_user.Id).Where(u => u.Type == RoleType.UserDefinedRole).ToList();
}
async Task AddRoleClicked()

View file

@ -189,8 +189,8 @@
}
<DiscordMessageEdit _raid=@_template _discordServers=@_discordServers _messagesToDelete=@_messagesToDelete ></DiscordMessageEdit>
<StaticReminderEdit _raidReminders=@_staticReminders _discordServers=@_discordServers _remindersToDelete=@_remindersToDelete ></StaticReminderEdit>
<DynamicReminderEdit _raidReminders=@_dynamicReminders _discordServers=@_discordServers _remindersToDelete=@_remindersToDelete ></DynamicReminderEdit>
<StaticReminderEdit _raidReminders=@_staticReminders _discordServers=@_discordServers _remindersToDelete=@_remindersToDelete _availableRoles=@_availabeGroups></StaticReminderEdit>
<DynamicReminderEdit _raidReminders=@_dynamicReminders _discordServers=@_discordServers _remindersToDelete=@_remindersToDelete _availableRoles=@_availabeGroups></DynamicReminderEdit>
<ValidationSummary />
<label class="validation-message" >@_errorMessage</label>
@ -232,6 +232,7 @@
private List<DynamicRaidReminder> _dynamicReminders = new List<DynamicRaidReminder>();
private List<DiscordServer> _discordServers = new List<DiscordServer>();
private List<LiebRole> _availabeGroups = new List<LiebRole>();
protected override async Task OnInitializedAsync()
@ -300,6 +301,7 @@
}
_userTimeZone = await TimeZoneService.GetUserTimeZone();
_discordServers = await DiscordService.GetServers();
_availabeGroups = UserService.GetUserRoles(_user.Id).Where(u => u.Type == RoleType.UserDefinedRole).ToList();
}
async Task AddRoleClicked()

View file

@ -13,21 +13,38 @@
<th>Date</th>
<th>Time</th>
<th>Type</th>
@if(_raidReminders.Where(r => r.Type == RaidReminder.ReminderType.Channel).Any())
@{bool channelReminderExists = _raidReminders.Where(r => r.Type == RaidReminder.ReminderType.Channel).Any();
bool groupReminderExists = _raidReminders.Where(r => r.Type == RaidReminder.ReminderType.Group).Any();}
@if(channelReminderExists && groupReminderExists)
{
<th>Group</th>
<th>Server</th>
<th>Channel</th>
}
else if(channelReminderExists)
{
<th></th>
<th>Server</th>
<th>Channel</th>
}
else if(groupReminderExists)
{
<th>Group</th>
<th></th>
<th></th>
}
else
{
<th></th>
<th></th>
<th></th>
}
<th>Message</th>
</tr>
@foreach( StaticRaidReminder reminder in _raidReminders)
{
bool hidden = reminder.Type == RaidReminder.ReminderType.User;
bool groupHidden = reminder.Type != RaidReminder.ReminderType.Group;
bool discordHidden = reminder.Type != RaidReminder.ReminderType.Channel;
<tr>
<td>
<label>
@ -49,7 +66,15 @@
</InputSelect>
</td>
<td>
<InputSelect @bind-Value="reminder.DiscordServerId" hidden="@hidden">
<InputSelect @bind-Value="reminder.RoleId" hidden="@groupHidden">
@foreach(LiebRole role in _availableRoles)
{
<option value="@role.LiebRoleId">@role.RoleName</option>
}
</InputSelect>
</td>
<td>
<InputSelect @bind-Value="reminder.DiscordServerId" hidden="@discordHidden">
@foreach(DiscordServer item in _discordServers)
{
<option value="@item.Id">@item.Name</option>
@ -57,7 +82,7 @@
</InputSelect>
</td>
<td>
<InputSelect @bind-Value="reminder.DiscordChannelId" hidden="@hidden">
<InputSelect @bind-Value="reminder.DiscordChannelId" hidden="@discordHidden">
@if(reminder.DiscordServerId > 0)
{
List<DiscordChannel> channels = _discordServers.Where(s => s.Id == reminder.DiscordServerId).FirstOrDefault(new DiscordServer()).Channels;
@ -88,6 +113,9 @@
[Parameter]
public List<RaidReminder> _remindersToDelete {get; set; }
[Parameter]
public List<LiebRole> _availableRoles {get; set; }
async Task AddReminderClicked()
{