mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
82 lines
1.7 KiB
Plaintext
82 lines
1.7 KiB
Plaintext
@using Management.Web.Shared.Components
|
|
|
|
@inject CoursePlanner planner
|
|
|
|
@code
|
|
{
|
|
[Parameter, EditorRequired]
|
|
public IEnumerable<RubricItem> Rubric { get; set; } = default!;
|
|
|
|
[Parameter, EditorRequired]
|
|
public Action<IEnumerable<RubricItem>> SetRubric { get; set; } = default!;
|
|
|
|
private void addItem()
|
|
{
|
|
SetRubric(
|
|
Rubric.Append(new RubricItem
|
|
{
|
|
Id=Guid.NewGuid().ToString(),
|
|
Label="",
|
|
Points=0
|
|
})
|
|
);
|
|
StateHasChanged();
|
|
}
|
|
private void editItem(RubricItem newItem)
|
|
{
|
|
var newRubric = Rubric.Select(i => i.Id == newItem.Id ? newItem : i);
|
|
SetRubric(newRubric);
|
|
StateHasChanged();
|
|
}
|
|
private void MoveUp(RubricItem item)
|
|
{
|
|
var rubricList = Rubric.ToList();
|
|
var index = rubricList.IndexOf(item);
|
|
|
|
if(index > 0)
|
|
{
|
|
var previous = rubricList[index - 1];
|
|
rubricList[index - 1] = item;
|
|
rubricList[index] = previous;
|
|
SetRubric(rubricList);
|
|
}
|
|
}
|
|
private void MoveDown(RubricItem item)
|
|
{
|
|
var rubricList = Rubric.ToList();
|
|
var index = rubricList.IndexOf(item);
|
|
|
|
if(index < rubricList.Count())
|
|
{
|
|
var next = rubricList[index + 1];
|
|
rubricList[index + 1] = item;
|
|
rubricList[index] = next;
|
|
SetRubric(rubricList);
|
|
}
|
|
}
|
|
}
|
|
|
|
<br>
|
|
<h5>Rubric</h5>
|
|
<ul class="list-group">
|
|
@foreach (var rubricItem in Rubric)
|
|
{
|
|
<RubricEditorItem
|
|
RubricItem="rubricItem"
|
|
OnUpdate="editItem"
|
|
MoveUp="() => MoveUp(rubricItem)"
|
|
MoveDown="() => MoveDown(rubricItem)"
|
|
/>
|
|
}
|
|
</ul>
|
|
|
|
<div class="text-end my-1">
|
|
<button
|
|
@onclick:preventDefault="true"
|
|
@onclick="addItem"
|
|
type="button"
|
|
class="btn btn-outline-primary"
|
|
>
|
|
+ rubric item
|
|
</button>
|
|
</div> |