Skip to content

Added column drag and drop reordering with persistant sizing and ordering#484

Open
jschick04 wants to merge 2 commits intomainfrom
optimize_eventtable
Open

Added column drag and drop reordering with persistant sizing and ordering#484
jschick04 wants to merge 2 commits intomainfrom
optimize_eventtable

Conversation

@jschick04
Copy link
Copy Markdown
Collaborator

Resolves #332

Copilot AI review requested due to automatic review settings April 18, 2026 19:45
@jschick04 jschick04 requested a review from a team as a code owner April 18, 2026 19:45
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds persisted column sizing and drag-and-drop column reordering to the EventTable UI, introducing defaults and preference storage so column layouts survive app restarts.

Changes:

  • Reworked event_table.js to use an init/dispose lifecycle, add column drag-reorder, and persist column resize events back to .NET.
  • Added persisted ColumnWidths + ColumnOrder to EventTableState, along with new actions/reducers/effects and a “Reset Column Defaults” menu item.
  • Introduced centralized ColumnDefaults (enabled columns, order, widths) and removed hardcoded column-width CSS.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/EventLogExpert/wwwroot/js/event_table.js New JS lifecycle + resize persistence + drag/drop reorder support
src/EventLogExpert/Shared/Components/TableColumnMenu.razor.cs Adds Reset Defaults dispatch
src/EventLogExpert/Shared/Components/TableColumnMenu.razor Adds UI entry to reset column defaults
src/EventLogExpert/Services/PreferencesProvider.cs Adds preference keys/properties for column widths + order
src/EventLogExpert/Components/EventTable.razor.css Removes hardcoded column width rules; adds dragging style
src/EventLogExpert/Components/EventTable.razor.cs JS interop callbacks + persisted width lookup + ordered enabled columns
src/EventLogExpert/Components/EventTable.razor Applies persisted width inline and adds data-column + @key to headers
src/EventLogExpert.UI/Store/EventTable/EventTableState.cs Adds ColumnWidths + ColumnOrder to state
src/EventLogExpert.UI/Store/EventTable/EventTableReducers.cs Implements reducers for reorder + set width; loads widths/order on LoadColumnsCompleted
src/EventLogExpert.UI/Store/EventTable/EventTableEffects.cs Loads/persists widths+order and adds reset defaults effect
src/EventLogExpert.UI/Store/EventTable/EventTableAction.cs Adds actions for reorder, set width, reset defaults; extends LoadColumnsCompleted payload
src/EventLogExpert.UI/Interfaces/IPreferencesProvider.cs Exposes column widths/order preferences
src/EventLogExpert.UI/ColumnDefaults.cs New central defaults for enabled columns, order, widths
src/EventLogExpert.UI.Tests/Store/EventTable/EventTableStoreTests.cs Updates and adds reducer/action tests for widths/order
src/EventLogExpert.UI.Tests/Store/EventTable/EventTableEffectsTests.cs Adds effect tests for loading/persisting widths/order and reset defaults

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/EventLogExpert/wwwroot/js/event_table.js Outdated
Comment thread src/EventLogExpert/wwwroot/js/event_table.js Outdated
Comment thread src/EventLogExpert.UI/Store/EventTable/EventTableEffects.cs Outdated
Comment thread src/EventLogExpert/Components/EventTable.razor.cs Outdated
Comment thread src/EventLogExpert/Services/PreferencesProvider.cs
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/EventLogExpert/wwwroot/js/event_table.js
Comment thread src/EventLogExpert/wwwroot/js/event_table.js
Comment thread src/EventLogExpert/Shared/Components/TableColumnMenu.razor Outdated
Comment thread src/EventLogExpert/wwwroot/js/event_table.js
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 16 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/EventLogExpert/wwwroot/js/event_table.js
Comment thread src/EventLogExpert/wwwroot/js/event_table.js Outdated
Comment thread src/EventLogExpert/wwwroot/js/event_table.js
Comment thread src/EventLogExpert/Shared/Components/TableColumnMenu.razor.cs
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

src/EventLogExpert/Shared/Components/TableColumnMenu.razor.cs:54

  • ToggleColumn dispatches both EventTableAction.ToggleColumn and EventTableAction.LoadColumns(). With the new EventTableEffects.HandleToggleColumn already computing widths/order and dispatching LoadColumnsCompleted, the extra LoadColumns causes a second redundant state update/render (and potentially extra JS re-init work). Consider removing the LoadColumns() dispatch here (or changing the effect to only update preferences and rely on a single load action) so toggling a column results in one state transition.
    private void ToggleColumn(ColumnName columnName)
    {
        Dispatcher.Dispatch(new EventTableAction.ToggleColumn(columnName));
        Dispatcher.Dispatch(new EventTableAction.LoadColumns());
    }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/EventLogExpert/wwwroot/js/details_pane.js Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/EventLogExpert/wwwroot/js/event_table.js Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/EventLogExpert/wwwroot/js/event_table.js Outdated
@jschick04 jschick04 force-pushed the optimize_eventtable branch from ffdf4b5 to d0d503b Compare April 18, 2026 21:50
@jschick04 jschick04 requested a review from Copilot April 18, 2026 21:50
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 20 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/EventLogExpert/wwwroot/js/event_table.js
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 20 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

persisting sizing preferences

2 participants