Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

automatically save file saving order #2096

Merged
merged 1 commit into from
Jul 29, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/app/config/config.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -308,4 +308,14 @@ export class ConfigService {
public isZAxisInverted(): boolean {
return this.config.octodash.invertAxisControl.z;
}

public setSortingAttribute(attribute: 'name' | 'date' | 'size'): void {
this.config.octodash.fileSorting.attribute = attribute;
this.saveConfig(this.config);
}

public setSortingOrder(order: 'asc' | 'dsc'): void {
this.config.octodash.fileSorting.order = order;
this.saveConfig(this.config);
}
}
17 changes: 10 additions & 7 deletions src/app/files/files.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@
<img src="assets/folder.svg" class="files__icon" />
<div class="files__info">
<span class="files__info-value">
{{ folder.size }} <span class="files__info-unit" *ngIf="folder.size !== undefined" i18n="@@files-mb-1">mb</span>
{{ folder.size }}
<span class="files__info-unit" *ngIf="folder.size !== undefined" i18n="@@files-mb-1">mb</span>
</span>
</div>
<span class="files__name">
Expand All @@ -70,7 +71,9 @@
>
<img src="assets/object.svg" class="files__icon" />
<div class="files__info">
<span class="files__info-value"> {{ file.size }}<span class="files__info-unit" i18n="@@files-mb-2">mb</span> </span>
<span class="files__info-value">
{{ file.size }}<span class="files__info-unit" i18n="@@files-mb-2">mb</span>
</span>
<span class="files__info-value" *ngIf="file.hasOwnProperty('filamentWeight')">
{{ file.filamentWeight }}<span class="files__info-unit" i18n="@@files-g">g</span>
</span>
Expand Down Expand Up @@ -143,21 +146,21 @@
<td>
<span style="font-size: 2.9vw" i18n="@@files-sort-by">sort by</span>
<br />
<div class="sorting__checkbox-container" (click)="sortingAttribute = 'name'">
<div class="sorting__checkbox-container" (click)="setSortAttribute('name')">
<span class="sorting__checkbox">
<span class="sorting__checkbox-checked" *ngIf="sortingAttribute === 'name'"></span>
</span>
<span class="sorting__checkbox-descriptor" i18n="@@files-name">Name</span>
</div>
<br />
<div class="sorting__checkbox-container" (click)="sortingAttribute = 'date'">
<div class="sorting__checkbox-container" (click)="setSortAttribute('date')">
<span class="sorting__checkbox">
<span class="sorting__checkbox-checked" *ngIf="sortingAttribute === 'date'"></span>
</span>
<span class="sorting__checkbox-descriptor" i18n="@@files-date">Date</span>
</div>
<br />
<div class="sorting__checkbox-container" (click)="sortingAttribute = 'size'">
<div class="sorting__checkbox-container" (click)="setSortAttribute('size')">
<span class="sorting__checkbox">
<span class="sorting__checkbox-checked" *ngIf="sortingAttribute === 'size'"></span>
</span>
Expand All @@ -168,14 +171,14 @@
<td>
<span style="font-size: 2.9vw" i18n="@@files-order">order</span>
<br />
<div class="sorting__checkbox-container" (click)="sortingOrder = 'asc'">
<div class="sorting__checkbox-container" (click)="setSortOrder('asc')">
<span class="sorting__checkbox">
<span class="sorting__checkbox-checked" *ngIf="sortingOrder === 'asc'"></span>
</span>
<span class="sorting__checkbox-descriptor" i18n="@@files-ascending">Ascending</span>
</div>
<br />
<div class="sorting__checkbox-container" (click)="sortingOrder = 'dsc'">
<div class="sorting__checkbox-container" (click)="setSortOrder('dsc')">
<span class="sorting__checkbox">
<span class="sorting__checkbox-checked" *ngIf="sortingOrder === 'dsc'"></span>
</span>
Expand Down
10 changes: 10 additions & 0 deletions src/app/files/files.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,16 @@ export class FilesComponent {
}, 240);
}

public setSortAttribute(attribute: 'name' | 'date' | 'size'): void {
this.sortingAttribute = attribute;
this.configService.setSortingAttribute(attribute);
}

public setSortOrder(order: 'asc' | 'dsc'): void {
this.sortingOrder = order;
this.configService.setSortingOrder(order);
}

public sortFolder(by: 'name' | 'date' | 'size' = 'name', order: 'asc' | 'dsc' = 'asc'): void {
this.directory.folders.sort((a, b): number => ((order === 'asc' ? a.name > b.name : a.name < b.name) ? 1 : -1));
this.directory.files.sort((a, b): number => ((order === 'asc' ? a[by] > b[by] : a[by] < b[by]) ? 1 : -1));
Expand Down
87 changes: 21 additions & 66 deletions src/app/settings/settings.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@
<span class="settings__made">
<span i18n="@@made-with">made with</span>
<fa-icon [icon]="['fas', 'heart']" class="settings__made-heart"></fa-icon>
<span i18n="@@by-unchartedbull">
by /u/UnchartedBull
</span>
<span i18n="@@by-unchartedbull"> by /u/UnchartedBull </span>
</span>
<!-- <span class="settings__version">OctoDash v{{ version }}</span> -->
</div>
Expand All @@ -48,7 +46,9 @@
<div class="settings__scroll">
<span class="settings__heading-2" i18n="@@general-octoprint-connection">OctoPrint Connection</span>
<form class="settings__form">
<label for="octoprintURLName" class="settings__input-label" i18n="@@general-octoprint-url">Octoprint URL</label>
<label for="octoprintURLName" class="settings__input-label" i18n="@@general-octoprint-url"
>Octoprint URL</label
>
<span class="settings__input-prefix">http://</span>
<input
type="text"
Expand Down Expand Up @@ -114,7 +114,9 @@
</td>
</tr>
<tr>
<td colspan="2" class="settings__sub-heading" i18n="@@general-default">Default Temperatures & Fan Speed</td>
<td colspan="2" class="settings__sub-heading" i18n="@@general-default">
Default Temperatures & Fan Speed
</td>
</tr>
<tr>
<td style="width: 25.6vw; display: block">
Expand Down Expand Up @@ -335,7 +337,9 @@
*ngIf="config.octodash.turnOnPrinterWhenExitingSleep"
></span>
</span>
<span class="settings__checkbox-descriptor" i18n="@@turn-on-after-sleep">Turn on printer when exiting sleep</span>
<span class="settings__checkbox-descriptor" i18n="@@turn-on-after-sleep"
>Turn on printer when exiting sleep</span
>
</div>
<br />
<div
Expand All @@ -345,7 +349,9 @@
<span class="settings__checkbox">
<span class="settings__checkbox-checked" *ngIf="config.octodash.preferPreviewWhilePrinting"></span>
</span>
<span class="settings__checkbox-descriptor" i18n="@@default-preview">Preview by default while printing</span>
<span class="settings__checkbox-descriptor" i18n="@@default-preview"
>Preview by default while printing</span
>
</div>
<br />
<div
Expand Down Expand Up @@ -387,63 +393,6 @@
<span class="settings__checkbox-descriptor">Z</span>
</div>

<span class="settings__heading-2" i18n="@@octodash-files">Files</span>
<table class="settings__files">
<tr>
<td>
<span style="font-size: 2.9vw" i18n="@@octodash-files-sort">sort by</span>
<br />
<div class="settings__checkbox-container" (click)="config.octodash.fileSorting.attribute = 'name'">
<span class="settings__checkbox">
<span
class="settings__checkbox-checked"
*ngIf="config.octodash.fileSorting.attribute === 'name'"
></span>
</span>
<span class="settings__checkbox-descriptor" i18n="@@octodash-files-name">Name</span>
</div>
<br />
<div class="settings__checkbox-container" (click)="config.octodash.fileSorting.attribute = 'date'">
<span class="settings__checkbox">
<span
class="settings__checkbox-checked"
*ngIf="config.octodash.fileSorting.attribute === 'date'"
></span>
</span>
<span class="settings__checkbox-descriptor" i18n="@@octodash-files-date">Date</span>
</div>
<br />
<div class="settings__checkbox-container" (click)="config.octodash.fileSorting.attribute = 'size'">
<span class="settings__checkbox">
<span
class="settings__checkbox-checked"
*ngIf="config.octodash.fileSorting.attribute === 'size'"
></span>
</span>
<span class="settings__checkbox-descriptor" i18n="@@octodash-files-size">Size</span>
</div>
<br />
</td>
<td>
<span style="font-size: 2.9vw" i18n="@@octodash-files-order">order</span>
<br />
<div class="settings__checkbox-container" (click)="config.octodash.fileSorting.order = 'asc'">
<span class="settings__checkbox">
<span class="settings__checkbox-checked" *ngIf="config.octodash.fileSorting.order === 'asc'"></span>
</span>
<span class="settings__checkbox-descriptor" i18n="@@octodash-files-ascending">Ascending</span>
</div>
<br />
<div class="settings__checkbox-container" (click)="config.octodash.fileSorting.order = 'dsc'">
<span class="settings__checkbox">
<span class="settings__checkbox-checked" *ngIf="config.octodash.fileSorting.order === 'dsc'"></span>
</span>
<span class="settings__checkbox-descriptor" i18n="@@octodash-files-descending">Descending</span>
</div>
<br />
</td>
</tr>
</table>
<span class="settings__heading-2" i18n="@@octodash-custom">Custom Actions</span>
<div *ngFor="let number of [0, 1, 2, 3, 4, 5]">
<span class="settings__heading-3">{{ customActionsPosition[number] }}</span>
Expand Down Expand Up @@ -620,7 +569,9 @@
</span>
<span class="settings__checkbox-descriptor" i18n="@@settings-tplink-smartplug-enabled">enabled</span>
</div>
<label for="smart-plug-ip" class="settings__input-label" i18n="@@settings-tplink-smartplug-ip">SmartPlug IP</label>
<label for="smart-plug-ip" class="settings__input-label" i18n="@@settings-tplink-smartplug-ip"
>SmartPlug IP</label
>
<input
type="text"
id="smart-plug-ip"
Expand Down Expand Up @@ -703,7 +654,11 @@
<div class="settings__scroll">
<img src="assets/icon/icon-main-title.svg" class="settings__about-icon" />
<span class="settings__about-version">v{{ service.getVersion() }}</span>
<button class="settings__about-update settings__about-update-not-available" *ngIf="!service.updateAvailable" i18n="@@about-no-update">
<button
class="settings__about-update settings__about-update-not-available"
*ngIf="!service.updateAvailable"
i18n="@@about-no-update"
>
no update available
</button>
<button
Expand Down