Releases: LMSCloud/LMSEventManagement
Carnival
Full Changelog: v1.6.4-beta.12...v1.6.12-beta.14
Carnival
Release Notes
These commits involve various changes and improvements to the codebase, including refactoring, feature additions, and code organization. Some notable changes include:
Summary:
-
Refactoring:
- Removing unused elements and consolidating dynamic breadcrumbs.
- Updating to use ES2021 features like
replaceAll
. - Simplifying and separating
RequestHandler
components. - Introducing an abstract view class for code consistency.
- Making properties optional and using directives for conditional rendering.
-
New Features:
- Adding a new feature called "skeleton-floating-menu."
-
Bug Fixes:
- Fixing issues like accidental bottom margins in mobile views.
- Using the context API to prevent prop drilling.
- Adding a new component to handle open-API errors.
-
Code Organization:
- Modularizing the code for better organization.
- Updating components and views to use the new
requestHandler
interface.
Refactoring
refactor: initial refactor
refactor: remove unused elements and consolidate dynamic breadcrumbs
refactor: remove legacy type declaration
refactor: clean up opac events view template
- Remove legacy type declaration.
- Include active link to current breadcrumb for resetting state.
refactor: replace regex replacements w/ 'replaceAll' call
refactor: simplify and separate RequestHandler components
- Add a config file for
ENDPOINTS
andBASE_PATH
. - Move common types into a shared declaration file.
- Simplify the library by using pattern matching in the individual, now commented, steps of an actual request.
- Use names that map to the names used in native requests to avoid confusion.
- Use the logic of the
requestInit
interface instead of reinventing it.
- Add a config file for
refactor: introduce abstract view class
- This is intended to prevent logical divergences in future refactors of the views used in the application.
- The abstraction allows for more concise view declarations.
refactor: use abstract view class in views
- Initialize the components in their
connectedCallback
calls. - Use pattern matching on the current state to render the appropriate template.
- Initialize the components in their
refactor: make properties optional in LMSDropdown
- Handle potentially undefined property.
refactor: update LMSStaffEventCard subcomponents
- Use refactored
requestHandler
version. - Use directives where applicable.
- Make properties optional and remove properties passed via context from components.
- Use refactored
refactor: modularize the render method in LMSTable
- Move optionally renderable content into sub-render methods.
refactor: update requestHandler calls to use new interface
refactor: update extensions to use new requestHandler interface
refactor: adjust opac events filter to new interfaces
refactor: export abstract view and open API errors classes
refactor: adjust opac events view to new interfaces
New Features
feat: add skeleton-floating-menu
- Correct border-radii to reflect daisyUI's settings.
feat: show active entry in floating menu bars
- Use map directives instead of plain array iterations.
- Add a prototypical
isActive
method meant to be implemented in extensions of theLMSFloatingMenu
component. - Make all properties optional.
- Extend the refactored component in
LMSEventManagementMenu
.
feat: introduce new component to communicate open-API errors
Bug Fixes
fix: accidental bottom margin in mobile view
fix: correct request body format in staff events view
fix: adjust field name in detail to refactored standard
Code Organization
chore: remove unused LMSView component
chore: reformat after change in Prettier's sorting order
chore: reformat after change in prettier's sorting order
chore: stage removal of submodule sfrom root for git
follow-up: add the submodules previously removed again
chore: add hash store class
follow-up(656bcfcc92fcae83091343e9b216888b06fb0d41): update logfile name
chore: update package scripts to reflect new symlinks
refactor: add a class field for optional parameters
chore: build new package
Carnival
What's Changed
Fixes
- Infinite "Scrolling": Fixed the infinite "scrolling" (rather requesting) functionality for the
LMSEventsView
component. The pagination of event results now dynamically adjusts with the_per_page
parameter, removing the need for a separate event count endpoint. This update provides a smoother user experience by seamlessly loading more events as needed. - Event Count Endpoint Removal: The
/public/events/count
endpoint and its associated backend methodcount
have been removed to optimize the event fetching process in line with the new infinite scrolling feature.
Chores
- Added caching for
perltidy
to improve the performance of formatting operations. - Included individual entries for formatting in the build process to cater to different file types.
- Adjusted the build package script to use canonical exit values for better interoperability.
- Updated the
.gitignore
to include cache files forprettier
andperltidy
.
Refactoring and Improvements
- Refactored the event retrieval logic in the Public/Events controller for better readability and maintainability.
- Fixed issues related to event filtering and target group selection to ensure accurate data retrieval.
- Enhanced DOM update performance by using the
repeat
directive in the frontend.
Breaking Changes
- The removal of the
count
method and/public/events/count
endpoint requires clients to update their implementations to handle event counts via the infinite scrolling mechanism. This change is intended to streamline the frontend experience but necessitates changes on the client side.
Reversions
- Reverted a previous fix where
id
was temporarily set as the default sort column due to unforeseen issues that arose from the change.
Miscellaneous
- Corrected the name of
perltidyrc
as it was accidentally namedperlcriticrc
. - Fixed an issue where settings updates were not correctly refetched and rendered, which caused confusion due to outdated state information.
Carnival
Build and Package Updates
- Incremented version after applying a patch.
Bug Fixes
- Reverted the omission of
open_registration
to address unintended behavior in the Events controller. - Temporarily set
id
as the default sort column to ensure proper listing of all events. (Note: This change will be reverted after resolving a bug related to unexpected filtering based on 'start_time.') - Updated filters on the load of additional content to prevent issues with filter states.
- Limited the width of pell editor modal to 5xl or 1024px from sm.
- Prevented null pointer on event type links.
Features and Enhancements
- Required double-click on modal editors for simple edits. Added titles to describe the new behavior.
- Commenced work on API tests (requires fix in upstream).
Refactoring
- Moved count into Public::Events controller for code conciseness. Changed route to events/count instead of events_count.
- Reordered and formatted Tailwind classes.
- Added .perlcriticrc and reformatted modules.
Localization
- Updated German translations.
Information and Communication
- Informed users about cascading on event type deletion due to events being deleted.
Carnival
Improvements
- Let users delete event types which was previously prevented by a foreign key constraint.
- Inform users on cascading on event deletion.
If you need the plugin to work w/ perl 5.030, pick the appropriate version *-5.030-*.kpz.
Carnival
Improvements
- Fix an error where you couldn't save an event without declaring registration dates, even though they're optional
Carnival
New Features:
- Build & Formatting: Added formatting rules for Perl files on builds, and a new build package. Reformatting Perl files according to new rules is now supported.
Improvements:
- Chores & Refactoring: Various chores and refactoring efforts have been implemented, including:
- An automatic datetime update script for demo instances.
- A cleanup of unmaintained tests and orphaned table rows.
- Added transactions to migration helper and reformatted Perl code.
- Incremented the patch version multiple times.
- Localization: Multiple updates to the German translations have been made to enhance the user experience for German-speaking audiences.
Bug Fixes:
- UI & Interaction: Numerous fixes have been made to enhance user interaction:
- Proper grouping of evaluations for the "load more" button.
- Proper handling of checkbox and textarea inputs.
- Fixes to revert modals and inputs to empty or previous states on specific events.
- Fixed the centered text issue in the pell editor to be left-aligned.
- Prevent masking of updated form fields and proper use of convention 'images' in event types modal.
- Validations & Registrations: Improved handling of validations, including skipping validations if nullish value and nullable is true. Additionally, registration dates have been set as optional for the moment.
- Database & Migrations: Several enhancements to the migration process, including:
- More verbose logs while applying migrations.
- Logging of database error strings if statements fail.
- Fixing missing private methods and returning failing statements in migration helper.
This release encapsulates a series of enhancements, chores, and critical bug fixes that aim to improve the overall stability and usability of the system. The efforts in localization and UI refinements are particularly noticeable, ensuring a more streamlined and user-friendly experience. The introduction of new build and formatting features further streamline the development process.
Carnival
This release contains many bug fixes and a refactored code base.
- Fixes a state leak in the staff event cards where a subsequent event card took the place of its neighboring card and populated all inputs with the deleted card's current values by mistake.
- Fixes a minor bug where Koha::Objects were sent in API responses due to changes in the schema.
- Explicitly destroys intersectionObserverHandler instances to prevent memory leaks.
- Fixes an unidiomatic approach to nested components for the staff event card deck.
- Styles anchor components like links.
- TSConfig is now much stricter.
- Fixes a mismatch of modal requests and user input by creating consistent handling of target group state objects in modals. Modals now also use the shared input converter class.
- Reintroduces updating event creation modals on event type changes.
- Reintroduce locale based datetime display in user-facing components.
Carnival
This release contains 2 new features and several bug fixes.
- Revert commit 2885b7e which introduced several bugs and did not fix the timezone issue. For reference look at release v1.1.1-beta.2.
- Introduces dayjs for date parsing and formatting.
- Standardizes all datetime writes to the db. This time using dayjs.
- Uses dayjs w/o explicit utc conversion as the api implementation does that already. This behaviour caused the confusion in the first place but is actually great if you know about it.
- Handles null values in new entries in the db now gracefully when rendering.
- Adds a reset button for filters in the staff events view.
- Adds a confirmation modal for deletions.
- Fixes some typos in the german translations.
- Some housekeeping.
Carnival
This release contains some bug fixes.
- Fix wrongly interpreted 'booleans': 1|0 and use actual bools for 21.05
- Fix bug where configured datetimes jump by the difference between UTC and client tz
- Write all datetimes as UTC into the db
- Don't use Date constructor on api responses which caused this behaviour