Skip to content

Commit

Permalink
Issue-609 (#617)
Browse files Browse the repository at this point in the history
* Removed right click menu on learning element and learning space

* Introduced confirmation dialog for deleting objects in pathway

* Changed deletion icon learning space and pathway condition

* Added deletion icon on learning element

* Added title for deleting objects

* Updated Changelog.md

* Adjusted tests

---------

Co-authored-by: e01118 <e01118@th-ab.de>
  • Loading branch information
MarvinHo64 and e01118 authored Oct 14, 2024
1 parent dde9927 commit c6b827a
Show file tree
Hide file tree
Showing 25 changed files with 329 additions and 690 deletions.
3 changes: 3 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,17 @@

### Added
- Added a feature to mark H5P Elements as primitive.
- Added Confirmation dialog when deleting a learning element, learning space and pathway condition.

### Changed
- Improved the filter search field in unplaced learning elements to be case-insensitive.
- Changed the order of learning elements in 13- and 15-slot floor plan.
- Changed Icon for deleting learning elements, learning spaces and pathway conditions.

### Deprecated

### Removed
- Removed the right-click menu for learning element, learning space and pathway condition.

### Fixed
- Fixed a bug in adaptivity elements where changes in the learning content were not applied correctly.
Expand Down
36 changes: 12 additions & 24 deletions Presentation/Components/Draggable.razor
Original file line number Diff line number Diff line change
Expand Up @@ -12,40 +12,29 @@

///Code from https://github.com/AlexeyBoiko/BlazorDraggableDemo
//get (optional) child html content as a RenderFragment
[Parameter]
[Parameter]
public RenderFragment? ChildContent { get; set; }

//fields bound to translate vector of <g> element
//make these nullable so we can have parent set them once via Parameter X and Y

[Parameter, EditorRequired]
public T? LearningObject { get; set; }
[Parameter, EditorRequired] public T? LearningObject { get; set; }

[Parameter]
public double X { get; set; }
[Parameter] public double X { get; set; }

[Parameter]
public double Y { get; set; }
[Parameter] public double Y { get; set; }

//we need these lines for @bind-X and @bind-Y to work, even if they look like we don't use them anywhere
[Parameter]
public EventCallback<double> XChanged { get; set; }
[Parameter] public EventCallback<double> XChanged { get; set; }

[Parameter]
public EventCallback<double> YChanged { get; set; }
[Parameter] public EventCallback<double> YChanged { get; set; }

[Parameter]
public EventCallback<T> OnClicked { get; set; }
[Parameter] public EventCallback<T> OnClicked { get; set; }

[Parameter]
public EventCallback<T> OnDoubleClicked { get; set; }
[Parameter] public EventCallback<T> OnDoubleClicked { get; set; }

[Parameter]
public EventCallback<T> OnRightClicked { get; set; }

[Parameter]
public DraggedEventArgs<T>.DraggedEventHandler? OnDragged { get; set; }
[Parameter] public DraggedEventArgs<T>.DraggedEventHandler? OnDragged { get; set; }


//cursorX and cursorY are used to remove the offset between cursor and element on move, so we only get a delta
Expand Down Expand Up @@ -106,16 +95,15 @@
_lastClick = DateTime.Now;
OnClick(sender, e);
break;
case 2:
OnRightClicked.InvokeAsync(LearningObject);
break;
}

break;
}
case true when _hasMoved:
OnDrag(sender, e);
break;
}

_isDown = false;
_cursor = "grab";
}
Expand All @@ -138,7 +126,7 @@
private Task OnClick(object? sender, MouseEventArgs e)
{
Logger.LogDebug("OnClick");
//override nullability because we check in OnParametersSet - n.stich
//override nullability because we check in OnParametersSet - n.stich
Logger.LogDebug("e.OffsetX:{EOffsetX} e.OffsetY:{EOffsetY}", e.OffsetX, e.OffsetY);
return OnClicked.InvokeAsync(LearningObject);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,6 @@
{
<DragDropLearningElement
LearningElement="@context"
OnShowLearningElementContent="@WorldPresenter.ShowSelectedElementContentAsync"
OnEditLearningElement="@WorldPresenter.SetSelectedLearningElement"
OnDeleteLearningElement="@WorldPresenter.DeleteLearningElement"
OnClicked="@WorldPresenter.SetSelectedLearningElement"/>
}
Expand Down
101 changes: 0 additions & 101 deletions Presentation/Components/RightClickMenu/RightClickMenu.razor

This file was deleted.

12 changes: 0 additions & 12 deletions Presentation/Components/RightClickMenu/RightClickMenuEntry.cs

This file was deleted.

24 changes: 16 additions & 8 deletions Presentation/Presentation.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -129,14 +129,6 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>LearningSpaceView.en.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Resources\Components\RightClickMenu\RightClickMenu.de.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>RightClickMenu.de.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Resources\Components\RightClickMenu\RightClickMenu.en.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>RightClickMenu.en.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Resources\Components\CloseAppButton.de.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>CloseAppButton.de.Designer.cs</LastGenOutput>
Expand Down Expand Up @@ -261,5 +253,21 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>DragDropLearningElement.en.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Resources\View\LearningPathWay\DraggableLearningSpace.de.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>DraggableLearningSpace.de.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Resources\View\LearningPathWay\DraggableLearningSpace.en.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>DraggableLearningSpace.en.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Resources\View\LearningPathWay\DraggablePathWayCondition.de.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>DraggablePathWayCondition.de.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Resources\View\LearningPathWay\DraggablePathWayCondition.en.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>DraggablePathWayCondition.en.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,6 @@ public interface ILearningWorldPresenter : INotifyPropertyChanged, INotifyProper
/// </summary>
ILearningWorldViewModel? LearningWorldVm { get; }

/// <summary>
/// If any object in the LearningWorld has an active RightClickMenu, this object is set in this variable.
/// Otherwise, it is null.
/// </summary>
IObjectInPathWayViewModel? RightClickedLearningObject { get; }

/// <summary>
/// Deletes the selected learning object in the currently selected learning world and sets an other space or element as selected learning object.
/// </summary>
Expand Down Expand Up @@ -93,12 +87,6 @@ void EditLearningWorld(string name, string shortname, string authors, string lan
/// <param name="draggedEventArgs">The arguments containing the learning object being dragged, and its old X and Y positions.</param>
void DragObjectInPathWay(object sender, DraggedEventArgs<IObjectInPathWayViewModel> draggedEventArgs);

/// <summary>
/// Handles a right-click event on an object in the pathway, setting the right-clicked learning object.
/// </summary>
/// <param name="objectInPathWayView">The object in the pathway that was right-clicked.</param>
void RightClickOnObjectInPathWay(IObjectInPathWayViewModel objectInPathWayView);

/// <summary>
/// Handles a click event on an object in the world, setting the selected learning object.
/// </summary>
Expand All @@ -115,11 +103,6 @@ void EditLearningWorld(string name, string shortname, string authors, string lan
/// <param name="pathWayCondition">The pathway condition to switch, represented as a PathWayConditionViewModel.</param>
void SwitchPathWayCondition(PathWayConditionViewModel pathWayCondition);

/// <summary>
/// Hides the right-click menu by resetting the right-clicked learning object.
/// </summary>
void HideRightClickMenu();

/// <summary>
/// Deletes the specified learning space from the current learning world.
/// </summary>
Expand Down Expand Up @@ -194,5 +177,7 @@ void CreateUnplacedLearningElement(string name, ILearningContentViewModel learni
void EditSelectedLearningSpace();

void CreateUnplacedLearningElementFromFormModel(LearningElementFormModel model);
void EditLearningElementFromFormModel(ILearningSpaceViewModel? parent, ILearningElementViewModel elementToEdit, LearningElementFormModel model);

void EditLearningElementFromFormModel(ILearningSpaceViewModel? parent, ILearningElementViewModel elementToEdit,
LearningElementFormModel model);
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ public class LearningWorldPresenter : ILearningWorldPresenter,
private readonly IErrorService _errorService;
private readonly ILearningSpacePresenter _learningSpacePresenter;
private readonly ILogger<LearningWorldPresenter> _logger;
private readonly IMapper _mapper;
private readonly IMediator _mediator;

private readonly IPresentationLogic _presentationLogic;
private readonly ISelectedViewModelsProvider _selectedViewModelsProvider;
private readonly IMapper _mapper;

private ILearningWorldViewModel? _learningWorldVm;

Expand Down Expand Up @@ -65,7 +65,6 @@ internal set
if (!BeforeSetField(_learningWorldVm, value))
return;
SetField(ref _learningWorldVm, value);
HideRightClickMenu();
}
}

Expand All @@ -79,9 +78,6 @@ public event EventHandler<CommandUndoRedoOrExecuteArgs> OnCommandUndoRedoOrExecu
remove => _presentationLogic.OnCommandUndoRedoOrExecute -= value;
}

/// <inheritdoc cref="ILearningWorldPresenter.RightClickedLearningObject"/>
public IObjectInPathWayViewModel? RightClickedLearningObject { get; private set; }

public event PropertyChangedEventHandler? PropertyChanged;

public event PropertyChangingEventHandler? PropertyChanging;
Expand Down Expand Up @@ -185,27 +181,12 @@ internal void SetSelectedLearningObject(ISelectableObjectInWorldViewModel pathWa
}

_selectedViewModelsProvider.SetLearningObjectInPathWay(pathWayObject, null);

HideRightClickMenu();
}

/// <inheritdoc cref="ILearningWorldPresenter.DragObjectInPathWay"/>
public void DragObjectInPathWay(object sender, DraggedEventArgs<IObjectInPathWayViewModel> args)
{
_presentationLogic.DragObjectInPathWay(args.LearningObject, args.OldPositionX, args.OldPositionY);
HideRightClickMenu();
}

/// <inheritdoc cref="ILearningWorldPresenter.RightClickOnObjectInPathWay"/>
public void RightClickOnObjectInPathWay(IObjectInPathWayViewModel objectInPathWayView)
{
RightClickedLearningObject = objectInPathWayView;
}

/// <inheritdoc cref="ILearningWorldPresenter.HideRightClickMenu"/>
public void HideRightClickMenu()
{
RightClickedLearningObject = null;
}

/// <inheritdoc cref="ILearningWorldPresenter.ClickOnObjectInWorld"/>
Expand Down Expand Up @@ -568,6 +549,7 @@ public void SetSelectedLearningElement(ILearningElementViewModel learningElement
_mediator.RequestOpenElementDialog();
break;
}

_selectedViewModelsProvider.SetLearningElement(learningElement, null);
}

Expand Down
Loading

0 comments on commit c6b827a

Please sign in to comment.