138 lines
No EOL
4.7 KiB
Text
138 lines
No EOL
4.7 KiB
Text
@using Lieb.Data
|
|
@using Lieb.Models
|
|
@using Lieb.Models.GuildWars2.Raid
|
|
@using SharedClasses.SharedModels
|
|
|
|
<p>
|
|
<label>
|
|
Static Raid Reminders:
|
|
</label>
|
|
<button type=button @onclick="() => AddReminderClicked()">Add reminder</button>
|
|
<table>
|
|
<tr>
|
|
<th>Date</th>
|
|
<th>Time</th>
|
|
<th>Type</th>
|
|
@if(_raidReminders.Where(r => r.Type == RaidReminder.ReminderType.Group).Any())
|
|
{
|
|
<th>Group</th>
|
|
<th>Signed Up</th>
|
|
}
|
|
else
|
|
{
|
|
<th></th>
|
|
<th></th>
|
|
}
|
|
@if(_raidReminders.Where(r => r.Type == RaidReminder.ReminderType.Channel).Any())
|
|
{
|
|
<th>Server</th>
|
|
<th>Channel</th>
|
|
}
|
|
else
|
|
{
|
|
<th></th>
|
|
<th></th>
|
|
}
|
|
<th>Message</th>
|
|
</tr>
|
|
@foreach( StaticRaidReminder reminder in _raidReminders)
|
|
{
|
|
bool groupHidden = reminder.Type != RaidReminder.ReminderType.Group;
|
|
bool discordHidden = reminder.Type != RaidReminder.ReminderType.Channel;
|
|
<tr>
|
|
<td>
|
|
<label>
|
|
<InputDate @bind-Value="reminder.ReminderDate" />
|
|
</label>
|
|
</td>
|
|
|
|
<td>
|
|
<label>
|
|
<input type="time" @bind="reminder.ReminderTime" />
|
|
</label>
|
|
</td>
|
|
<td>
|
|
<InputSelect @bind-Value="reminder.Type">
|
|
@foreach(RaidReminder.ReminderType type in Enum.GetValues(typeof(RaidReminder.ReminderType)))
|
|
{
|
|
<option value="@type">@type.ToString()</option>
|
|
}
|
|
</InputSelect>
|
|
</td>
|
|
<td>
|
|
<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.RoleType" hidden="@groupHidden">
|
|
@foreach(RaidReminder.RoleReminderType type in Enum.GetValues(typeof(RaidReminder.RoleReminderType)))
|
|
{
|
|
<option value="@type">@type.ToString()</option>
|
|
}
|
|
</InputSelect>
|
|
</td>
|
|
<td>
|
|
<InputSelect @bind-Value="reminder.DiscordServerId" hidden="@discordHidden">
|
|
@foreach(DiscordServer item in _discordServers)
|
|
{
|
|
<option value="@item.Id">@item.Name</option>
|
|
}
|
|
</InputSelect>
|
|
</td>
|
|
<td>
|
|
<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;
|
|
@foreach(DiscordChannel item in channels)
|
|
{
|
|
<option value="@item.Id">@item.Name</option>
|
|
}
|
|
}
|
|
</InputSelect>
|
|
</td>
|
|
<td>
|
|
<InputText @bind-Value="reminder.Message" />
|
|
</td>
|
|
<td><button type=button @onclick="() => DeleteReminderClicked(reminder)">Delete</button></td>
|
|
</tr>
|
|
}
|
|
</table>
|
|
</p>
|
|
|
|
|
|
@code {
|
|
|
|
[Parameter]
|
|
public List<StaticRaidReminder> _raidReminders { get; set; }
|
|
|
|
[Parameter]
|
|
public List<DiscordServer> _discordServers {get; set; }
|
|
|
|
[Parameter]
|
|
public List<RaidReminder> _remindersToDelete {get; set; }
|
|
|
|
[Parameter]
|
|
public List<LiebRole> _availableRoles {get; set; }
|
|
|
|
async Task AddReminderClicked()
|
|
{
|
|
_raidReminders.Add(new StaticRaidReminder()
|
|
{
|
|
Type = RaidReminder.ReminderType.User
|
|
});
|
|
}
|
|
|
|
async Task DeleteReminderClicked(StaticRaidReminder reminder)
|
|
{
|
|
if(reminder.RaidReminderId != 0)
|
|
{
|
|
_remindersToDelete.Add(reminder);
|
|
}
|
|
_raidReminders.Remove(reminder);
|
|
}
|
|
} |