Skip to content

Commit

Permalink
feat(spoolman): remember spool selection dialog sort key/order (#1305)
Browse files Browse the repository at this point in the history
Signed-off-by: Mathis Mensing <github@matmen.dev>
Co-authored-by: Pedro Lamas <pedrolamas@gmail.com>
  • Loading branch information
matmen and pedrolamas committed Jan 11, 2024
1 parent ebfd5bc commit 3843701
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 3 deletions.
26 changes: 24 additions & 2 deletions src/components/widgets/spoolman/SpoolSelectionDialog.vue
Expand Up @@ -93,12 +93,14 @@
:custom-filter="filterResults"
:no-data-text="$t('app.file_system.msg.not_found')"
:no-results-text="$t('app.file_system.msg.not_found')"
sort-by="last_used"
sort-desc
:sort-by="sortOrder.key ?? undefined"
:sort-desc="sortOrder.desc ?? undefined"
mobile-breakpoint="0"
class="file-system spool-table"
hide-default-footer
disable-pagination
@update:sort-by="handleSortOrderKeyChange"
@update:sort-desc="handleSortOrderDescChange"
>
<template #item="{ item }">
<tr
Expand Down Expand Up @@ -469,6 +471,26 @@ export default class SpoolSelectionDialog extends Mixins(StateMixin, BrowserMixi
get warnOnFilamentTypeMismatch (): boolean {
return this.$store.state.config.uiSettings.spoolman.warnOnFilamentTypeMismatch
}
get sortOrder () {
return this.$store.state.config.uiSettings.spoolman.selectionDialogSortOrder
}
handleSortOrderKeyChange (value?: string) {
this.$store.dispatch('config/saveByPath', {
path: 'uiSettings.spoolman.selectionDialogSortOrder.key',
value: value ?? null,
server: true
})
}
handleSortOrderDescChange (value?: boolean) {
this.$store.dispatch('config/saveByPath', {
path: 'uiSettings.spoolman.selectionDialogSortOrder.desc',
value: value ?? null,
server: true
})
}
}
</script>
Expand Down
6 changes: 5 additions & 1 deletion src/store/config/state.ts
Expand Up @@ -149,7 +149,11 @@ export const defaultState = (): ConfigState => {
autoSelectSpoolOnMatch: false,
preferDeviceCamera: false,
warnOnNotEnoughFilament: true,
warnOnFilamentTypeMismatch: true
warnOnFilamentTypeMismatch: true,
selectionDialogSortOrder: {
key: 'last_used',
desc: false
}
}
}
}
Expand Down
4 changes: 4 additions & 0 deletions src/store/config/types.ts
Expand Up @@ -37,6 +37,10 @@ export interface SpoolmanConfig {
preferDeviceCamera: boolean;
warnOnNotEnoughFilament: boolean;
warnOnFilamentTypeMismatch: boolean;
selectionDialogSortOrder: {
key: string | null;
desc: boolean | null;
}
}

export interface HostConfig {
Expand Down

0 comments on commit 3843701

Please sign in to comment.