Ver Fonte

fix(maintenance): say that deleting a custom type applies to every printer

maziggy há 1 semana atrás
pai
commit
9712d27c64
98 ficheiros alterados com 43 adições e 8 exclusões
  1. 1 0
      CHANGELOG.md
  2. 23 2
      frontend/src/__tests__/pages/MaintenancePage.test.tsx
  3. 1 0
      frontend/src/i18n/locales/de.ts
  4. 1 0
      frontend/src/i18n/locales/en.ts
  5. 1 0
      frontend/src/i18n/locales/es.ts
  6. 1 0
      frontend/src/i18n/locales/fr.ts
  7. 1 0
      frontend/src/i18n/locales/it.ts
  8. 1 0
      frontend/src/i18n/locales/ja.ts
  9. 1 0
      frontend/src/i18n/locales/ko.ts
  10. 1 0
      frontend/src/i18n/locales/nl.ts
  11. 1 0
      frontend/src/i18n/locales/pt-BR.ts
  12. 1 0
      frontend/src/i18n/locales/ru.ts
  13. 1 0
      frontend/src/i18n/locales/sv.ts
  14. 1 0
      frontend/src/i18n/locales/tr.ts
  15. 1 0
      frontend/src/i18n/locales/uk.ts
  16. 1 0
      frontend/src/i18n/locales/zh-CN.ts
  17. 1 0
      frontend/src/i18n/locales/zh-TW.ts
  18. 1 1
      frontend/src/pages/MaintenancePage.tsx
  19. 0 0
      static/assets/AdditionalSection-DXRD7AnY.js
  20. 0 0
      static/assets/AmsUnitCard-DZxPS3xA.js
  21. 0 0
      static/assets/ArchivesPage-Cc-Afs6N.js
  22. 0 0
      static/assets/AssignToAmsModal-DxMRLw9M.js
  23. 0 0
      static/assets/CamWallPage-CT2wYxz_.js
  24. 0 0
      static/assets/CameraDiagnoseModal-DFSm4iqj.js
  25. 0 0
      static/assets/CameraPage-DcsCiwvU.js
  26. 0 0
      static/assets/CameraWall-N2Nmuy_x.js
  27. 0 0
      static/assets/ColumnConfigModal-BI9EKxKX.js
  28. 0 0
      static/assets/ConfigureAmsSlotModal-oO1BYxjJ.js
  29. 0 0
      static/assets/ConnectAuthorizePage--tchC0OA.js
  30. 0 0
      static/assets/ContextMenu-DhMK-T4f.js
  31. 0 0
      static/assets/ExternalLinkPage-CNM9LMax.js
  32. 0 1
      static/assets/FileManagerPage-B6moaOZC.js
  33. 0 0
      static/assets/FileUploadModal-D-AYfZnD.js
  34. 0 0
      static/assets/FinancePage-76NLYr_U.js
  35. 0 0
      static/assets/GCodeViewerPage-fws-inQ6.js
  36. 0 0
      static/assets/GroupEditPage-CsOe4non.js
  37. 0 0
      static/assets/ImagePreviewModal-CTlkt0sY.js
  38. 0 0
      static/assets/InventoryPage-BTq0yWoy.js
  39. 0 0
      static/assets/LibraryTrashPage-DjKLrLls.js
  40. 0 0
      static/assets/LoginPage-Czd50HzW.js
  41. 0 0
      static/assets/MaintenancePage-DnqHbNcD.js
  42. 0 0
      static/assets/ModelSourcesPage-DNijFRF-.js
  43. 0 0
      static/assets/NotificationsPage-Cq-P-397.js
  44. 0 1
      static/assets/PdfPreviewModal-B6sVcYE5.js
  45. 0 0
      static/assets/PhotoGalleryModal-BOqXKY8o.js
  46. 0 0
      static/assets/PrinterLocationsPage-D3LGywI1.js
  47. 0 0
      static/assets/PrintersPage-D20Q75tu.js
  48. 0 0
      static/assets/ProfilesPage-CwhFzZRH.js
  49. 0 0
      static/assets/ProjectDetailPage-B02Ky91G.js
  50. 0 0
      static/assets/ProjectsPage-i8Xbxcq3.js
  51. 0 0
      static/assets/QueuePage-BThzYmt5.js
  52. 0 0
      static/assets/RichTextEditor-DkmKwPOG.js
  53. 0 0
      static/assets/SettingsPage-CLOSy2Df.js
  54. 0 0
      static/assets/SetupPage-CLzdfZGN.js
  55. 0 0
      static/assets/SliceModal-CzgErUkx.js
  56. 0 0
      static/assets/SpoolBuddyAmsPage-BeqRXxPq.js
  57. 0 0
      static/assets/SpoolBuddyCalibrationPage-CI9EI9Si.js
  58. 0 0
      static/assets/SpoolBuddyDashboard-DFFhiXHA.js
  59. 0 0
      static/assets/SpoolBuddyInventoryPage-CCHfxrCJ.js
  60. 1 1
      static/assets/SpoolBuddySettingsPage-DUK8kwWy.js
  61. 0 0
      static/assets/SpoolBuddyWriteTagPage-BT0Cfenn.js
  62. 0 0
      static/assets/SpreadsheetPreviewModal-DTYn6MjH.js
  63. 0 0
      static/assets/StatsPage-Cdep-gvR.js
  64. 0 0
      static/assets/StreamOverlayPage-CNK1gOAU.js
  65. 0 0
      static/assets/SystemInfoPage-Ciw-6MRc.js
  66. 0 0
      static/assets/de-CRIz-V_S.js
  67. 0 0
      static/assets/de-bIen8vBa.js
  68. 0 0
      static/assets/es-D3Lxzz5P.js
  69. 0 0
      static/assets/es-DJlNQ9n2.js
  70. 0 0
      static/assets/fr-CHlHrq6D.js
  71. 0 0
      static/assets/fr-Om92FA6_.js
  72. 0 0
      static/assets/index-CJ0w0cCi.js
  73. 1 1
      static/assets/inventorySearch-abrgiuGv.js
  74. 0 0
      static/assets/it-4I6jx5bN.js
  75. 0 0
      static/assets/it-BvW9M3Vz.js
  76. 0 0
      static/assets/ja-BNEUPGWW.js
  77. 0 0
      static/assets/ja-D2EOAyJD.js
  78. 0 0
      static/assets/ko-B-_J2Kfz.js
  79. 0 0
      static/assets/ko-DfBFmlKY.js
  80. 0 0
      static/assets/locationSensorDefaults-BpOt1qFI.js
  81. 0 0
      static/assets/nl-bENooHN3.js
  82. 0 0
      static/assets/pdf-CWCRHxpU.js
  83. 0 0
      static/assets/pt-BR-92EhOKVO.js
  84. 0 0
      static/assets/pt-BR-CYc2SLsN.js
  85. 0 0
      static/assets/ru-BIcZal2N.js
  86. 0 0
      static/assets/ru-D-8vaLZZ.js
  87. 0 0
      static/assets/sv-Din8JniN.js
  88. 0 0
      static/assets/sv-s25PQYIG.js
  89. 0 0
      static/assets/tr-DsMABk7-.js
  90. 0 0
      static/assets/tr-zuS-RAgq.js
  91. 0 0
      static/assets/uk-DtWUCD87.js
  92. 0 0
      static/assets/uk-VLDlCeAG.js
  93. 0 0
      static/assets/utils-HWU1IUBT.js
  94. 0 0
      static/assets/zh-CN-7T9n_nz-.js
  95. 0 0
      static/assets/zh-CN-CYCzjlSw.js
  96. 0 0
      static/assets/zh-TW-CUA15mBh.js
  97. 0 0
      static/assets/zh-TW-D4Nxyg0K.js
  98. 1 1
      static/index.html

+ 1 - 0
CHANGELOG.md

@@ -135,6 +135,7 @@ All notable changes to Bambuddy will be documented in this file.
 - **Dutch (nl) is now a supported interface language (#2891, requested and contributed by @Igiegel)** — Adds `nl` as the fourteenth locale, listed as "Nederlands" in the language picker. The translation was contributed as a file on the issue and needed three corrections before it could be wired up, all of which the parity gate found. First, the nine `stats.timeframe.*` entries had their **keys** translated along with their values (`'today'` had become `'vandaag'`), which would have left the Statistics timeframe selector resolving nothing and rendering raw key names for every Dutch user — the values were kept and the keys restored. Second, the file was translated against an older `en.ts` and was 84 leaves short, missing the Filament Track Switch feed prompts, the AI-detection status strings, the no-3MF internal-history banner, the batch-order stranded-plate notices, the Avery starting-position field and the whole `locationHaSensors` section from #2824; those were translated and added. Rather than splice them in, `nl.ts` was regenerated from the `en.ts` skeleton with the contributor's strings carried over, so its structure, key order and section comments now match the reference locale exactly and a future diff against `en.ts` reads as content rather than as reordering. Third, 229 leaves were identical to English; each was checked individually and all were kept, because Dutch takes most technical UI vocabulary verbatim — printer, filament, status, nozzle, timelapse, dashboard — and Dutch slicer users use the English feature names (support, ironing, prime tower, gap fill) untranslated. Those 123 distinct values are now listed explicitly in a `NL_COGNATES` allow-list in `check-i18n-parity.mjs`, the same shape the other twelve locales use, so the exemption is an enumerated translator decision rather than a blanket skip. Parity green at 6264 leaves across all 14 locales.
 
 ### Changed
+- **Deleting a custom maintenance type says it applies to every printer** — Maintenance types are shared, so deleting a custom one removes it, with its maintenance history, from every printer, including those of other teams when printer access is limited. The confirmation now says so.
 - **The web interface downloads about 70% less on each new version (#3175, requested by @mason9468)** — The interface's script files were sent uncompressed and with no caching instructions, so a phone fetched the whole 11 MB again and the browser asked for it on every load.
   - **Compressed:** scripts, styles and other text files under `/assets` now go out gzip-compressed when the browser accepts it. The main script drops from 11.0 MB to 3.0 MB.
   - **Cached for good:** files whose name carries a content hash are now marked as never changing, so the browser loads them from its own cache until an update brings new ones. The page itself is still checked on every load, so updates are picked up as before.

+ 23 - 2
frontend/src/__tests__/pages/MaintenancePage.test.tsx

@@ -2,8 +2,8 @@
  * Tests for the MaintenancePage component.
  */
 
-import { describe, it, expect, beforeEach } from 'vitest';
-import { screen, waitFor } from '@testing-library/react';
+import { describe, it, expect, beforeEach, vi } from 'vitest';
+import { fireEvent, screen, waitFor, within } from '@testing-library/react';
 import { render } from '../utils';
 import { MaintenancePage } from '../../pages/MaintenancePage';
 import { http, HttpResponse } from 'msw';
@@ -147,4 +147,25 @@ describe('MaintenancePage', () => {
       });
     });
   });
+
+  it('says that deleting a custom type applies to every printer', async () => {
+    server.use(
+      http.get('/api/v1/maintenance/types', () =>
+        HttpResponse.json([
+          ...mockMaintenanceTypes,
+          { id: 9, name: 'Custom Check', description: null, default_interval_hours: 10, is_system: false },
+        ]),
+      ),
+    );
+    const confirm = vi.spyOn(window, 'confirm').mockReturnValue(false);
+
+    render(<MaintenancePage />);
+    fireEvent.click(await screen.findByText('Settings'));
+    const card = (await screen.findByText('Custom Check')).closest('.rounded-xl') as HTMLElement;
+    const buttons = within(card).getAllByRole('button');
+    fireEvent.click(buttons[buttons.length - 1]);
+
+    expect(confirm).toHaveBeenCalledWith(expect.stringContaining('not only yours'));
+    confirm.mockRestore();
+  });
 });

+ 1 - 0
frontend/src/i18n/locales/de.ts

@@ -1958,6 +1958,7 @@ export default {
     printerRemoved: 'Drucker entfernt',
     // Confirmation
     deleteTypeConfirm: '"{{name}}" löschen?',
+    deleteTypeAllPrinters: 'Das entfernt ihn von allen Druckern, nicht nur von deinen, samt seinem Wartungsverlauf.',
     deleteSystemTypeTitle: 'Standard-Wartungsaufgabe löschen?',
     deleteSystemTypeMessage: 'Möchten Sie die Standard-Wartungsaufgabe "{{name}}" wirklich löschen?',
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/en.ts

@@ -1978,6 +1978,7 @@ export default {
     printerRemoved: 'Printer removed',
     // Confirmation
     deleteTypeConfirm: 'Delete "{{name}}"?',
+    deleteTypeAllPrinters: 'This removes it from every printer, not only yours, including its maintenance history.',
     deleteSystemTypeTitle: 'Delete default maintenance task?',
     deleteSystemTypeMessage: 'Are you sure you want to delete the default maintenance task "{{name}}"?',
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/es.ts

@@ -1959,6 +1959,7 @@ export default {
     printerRemoved: 'Impresora eliminada',
     // Confirmation
     deleteTypeConfirm: '¿Eliminar "{{name}}"?',
+    deleteTypeAllPrinters: 'Esto lo elimina de todas las impresoras, no solo de las tuyas, incluido su historial de mantenimiento.',
     deleteSystemTypeTitle: '¿Eliminar la tarea de mantenimiento predeterminada?',
     deleteSystemTypeMessage: '¿Está seguro de que desea eliminar la tarea de mantenimiento predeterminada "{{name}}"?',
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/fr.ts

@@ -1957,6 +1957,7 @@ export default {
     printerRemoved: 'Imprimante retirée',
     // Confirmation
     deleteTypeConfirm: 'Supprimer "{{name}}" ?',
+    deleteTypeAllPrinters: 'Cela le supprime de toutes les imprimantes, pas seulement des vôtres, y compris son historique de maintenance.',
     deleteSystemTypeTitle: 'Supprimer la tâche de maintenance par défaut ?',
     deleteSystemTypeMessage: 'Êtes-vous sûr de vouloir supprimer la tâche de maintenance par défaut "{{name}}" ?',
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/it.ts

@@ -1957,6 +1957,7 @@ export default {
     printerRemoved: 'Stampante rimossa',
     // Confirmation
     deleteTypeConfirm: 'Eliminare "{{name}}"?',
+    deleteTypeAllPrinters: 'Questo lo rimuove da tutte le stampanti, non solo dalle tue, compresa la sua cronologia di manutenzione.',
     deleteSystemTypeTitle: 'Eliminare attività di manutenzione predefinita?',
     deleteSystemTypeMessage: 'Sei sicuro di voler eliminare l\'attività di manutenzione predefinita "{{name}}"?',
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/ja.ts

@@ -1957,6 +1957,7 @@ export default {
     printerRemoved: 'プリンターを削除しました',
     // Confirmation
     deleteTypeConfirm: '「{{name}}」を削除しますか?',
+    deleteTypeAllPrinters: 'あなたのプリンターだけでなく、すべてのプリンターから削除され、メンテナンス履歴も削除されます。',
     deleteSystemTypeTitle: 'デフォルトのメンテナンスタスクを削除しますか?',
     deleteSystemTypeMessage: 'デフォルトのメンテナンスタスク「{{name}}」を削除してもよろしいですか?',
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/ko.ts

@@ -1875,6 +1875,7 @@ export default {
     printerAssigned: '프린터가 할당되었습니다',
     printerRemoved: '프린터가 제거되었습니다',
     deleteTypeConfirm: '"{{name}}"을(를) 삭제하시겠습니까?',
+    deleteTypeAllPrinters: '내 프린터뿐 아니라 모든 프린터에서 유지보수 기록과 함께 삭제됩니다.',
     deleteSystemTypeTitle: '기본 유지보수 작업을 삭제하시겠습니까?',
     deleteSystemTypeMessage: '기본 유지보수 작업 "{{name}}"을(를) 삭제하시겠습니까?',
     noPermissionUpdate: '유지보수 항목을 업데이트할 권한이 없습니다',

+ 1 - 0
frontend/src/i18n/locales/nl.ts

@@ -1976,6 +1976,7 @@ export default {
     printerRemoved: 'Printer verwijderd',
     // Confirmation
     deleteTypeConfirm: '"{{name}}" verwijderen?',
+    deleteTypeAllPrinters: 'Dit verwijdert het van alle printers, niet alleen van die van jou, inclusief de onderhoudsgeschiedenis.',
     deleteSystemTypeTitle: 'Standaard onderhoudstaak verwijderen?',
     deleteSystemTypeMessage: 'Weet je zeker dat je de standaard onderhoudstaak "{{name}}" wilt verwijderen?',
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/pt-BR.ts

@@ -1957,6 +1957,7 @@ export default {
     printerRemoved: 'Impressora removida',
     // Confirmation
     deleteTypeConfirm: 'Excluir "{{name}}"?',
+    deleteTypeAllPrinters: 'Isso o remove de todas as impressoras, não só das suas, incluindo o histórico de manutenção.',
     deleteSystemTypeTitle: 'Excluir tarefa de manutenção padrão?',
     deleteSystemTypeMessage: 'Tem certeza de que deseja excluir a tarefa de manutenção padrão "{{name}}"?',
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/ru.ts

@@ -1872,6 +1872,7 @@ export default {
     printerAssigned: "Принтер назначен",
     printerRemoved: "Принтер удалён из назначения",
     deleteTypeConfirm: "Удалить «{{name}}»?",
+    deleteTypeAllPrinters: 'Он будет удалён со всех принтеров, а не только с ваших, вместе с историей обслуживания.',
     deleteSystemTypeTitle: "Удалить стандартную задачу обслуживания?",
     deleteSystemTypeMessage: "Удалить стандартную задачу обслуживания «{{name}}»?",
     noPermissionUpdate: "У вас нет разрешения обновлять задачи обслуживания",

+ 1 - 0
frontend/src/i18n/locales/sv.ts

@@ -1975,6 +1975,7 @@ export default {
     printerRemoved: 'Skrivare borttagen',
     // Confirmation
     deleteTypeConfirm: 'Ta bort "{{name}}"?',
+    deleteTypeAllPrinters: 'Detta tar bort den från alla skrivare, inte bara dina, inklusive underhållshistoriken.',
     deleteSystemTypeTitle: 'Ta bort standardunderhållsuppgift?',
     deleteSystemTypeMessage: 'Är du säker på att du vill ta bort standardunderhållsuppgift "{{name}}"?',
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/tr.ts

@@ -1959,6 +1959,7 @@ export default {
     printerRemoved: 'Yazıcı kaldırıldı',
     // Onay
     deleteTypeConfirm: '"{{name}}" silinsin mi?',
+    deleteTypeAllPrinters: 'Bu, bakım geçmişi dahil olmak üzere onu yalnızca sizin yazıcılarınızdan değil, tüm yazıcılardan kaldırır.',
     deleteSystemTypeTitle: 'Varsayılan bakım görevi silinsin mi?',
     deleteSystemTypeMessage: '"{{name}}" varsayılan bakım görevini silmek istediğinizden emin misiniz?',
     // İzinler

+ 1 - 0
frontend/src/i18n/locales/uk.ts

@@ -1974,6 +1974,7 @@ export default {
     printerRemoved: "Принтер видалено",
     // Confirmation
     deleteTypeConfirm: "Видалити \"{{name}}\"?",
+    deleteTypeAllPrinters: 'Його буде видалено з усіх принтерів, а не лише з ваших, разом з історією обслуговування.',
     deleteSystemTypeTitle: "Видалити завдання обслуговування за умовчанням?",
     deleteSystemTypeMessage: "Ви впевнені, що бажаєте видалити стандартне завдання обслуговування \"{{name}}\"?",
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/zh-CN.ts

@@ -1957,6 +1957,7 @@ export default {
     printerRemoved: '打印机已移除',
     // Confirmation
     deleteTypeConfirm: '删除"{{name}}"?',
+    deleteTypeAllPrinters: '这会将其从所有打印机(而不仅是你的打印机)中删除,包括其维护记录。',
     deleteSystemTypeTitle: '删除默认维护任务?',
     deleteSystemTypeMessage: '确定要删除默认维护任务"{{name}}"吗?',
     // Permissions

+ 1 - 0
frontend/src/i18n/locales/zh-TW.ts

@@ -1957,6 +1957,7 @@ export default {
     printerRemoved: '印表機已移除',
     // Confirmation
     deleteTypeConfirm: '刪除"{{name}}"?',
+    deleteTypeAllPrinters: '這會將其從所有印表機(而不只是你的印表機)中刪除,包括其維護紀錄。',
     deleteSystemTypeTitle: '刪除預設維護任務?',
     deleteSystemTypeMessage: '確定要刪除預設維護任務"{{name}}"嗎?',
     // Permissions

+ 1 - 1
frontend/src/pages/MaintenancePage.tsx

@@ -905,7 +905,7 @@ function SettingsSection({
                   </button>
                   <button
                     onClick={() => {
-                      if (confirm(t('maintenance.deleteTypeConfirm', { name: type.name }))) {
+                      if (confirm(`${t('maintenance.deleteTypeConfirm', { name: type.name })}\n\n${t('maintenance.deleteTypeAllPrinters')}`)) {
                         onDeleteType(type.id);
                       }
                     }}

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/AdditionalSection-DXRD7AnY.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/AmsUnitCard-DZxPS3xA.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ArchivesPage-Cc-Afs6N.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/AssignToAmsModal-DxMRLw9M.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/CamWallPage-CT2wYxz_.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/CameraDiagnoseModal-DFSm4iqj.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/CameraPage-DcsCiwvU.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/CameraWall-N2Nmuy_x.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ColumnConfigModal-BI9EKxKX.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ConfigureAmsSlotModal-oO1BYxjJ.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ConnectAuthorizePage--tchC0OA.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ContextMenu-DhMK-T4f.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ExternalLinkPage-CNM9LMax.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
static/assets/FileManagerPage-B6moaOZC.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/FileUploadModal-D-AYfZnD.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/FinancePage-76NLYr_U.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/GCodeViewerPage-fws-inQ6.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/GroupEditPage-CsOe4non.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ImagePreviewModal-CTlkt0sY.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/InventoryPage-BTq0yWoy.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/LibraryTrashPage-DjKLrLls.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/LoginPage-Czd50HzW.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/MaintenancePage-DnqHbNcD.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ModelSourcesPage-DNijFRF-.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/NotificationsPage-Cq-P-397.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 1
static/assets/PdfPreviewModal-B6sVcYE5.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/PhotoGalleryModal-BOqXKY8o.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/PrinterLocationsPage-D3LGywI1.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/PrintersPage-D20Q75tu.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ProfilesPage-CwhFzZRH.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ProjectDetailPage-B02Ky91G.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ProjectsPage-i8Xbxcq3.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/QueuePage-BThzYmt5.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/RichTextEditor-DkmKwPOG.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/SettingsPage-CLOSy2Df.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/SetupPage-CLzdfZGN.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/SliceModal-CzgErUkx.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/SpoolBuddyAmsPage-BeqRXxPq.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/SpoolBuddyCalibrationPage-CI9EI9Si.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/SpoolBuddyDashboard-DFFhiXHA.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/SpoolBuddyInventoryPage-CCHfxrCJ.js


Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 1
static/assets/SpoolBuddySettingsPage-DUK8kwWy.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/SpoolBuddyWriteTagPage-BT0Cfenn.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/SpreadsheetPreviewModal-DTYn6MjH.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/StatsPage-Cdep-gvR.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/StreamOverlayPage-CNK1gOAU.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/SystemInfoPage-Ciw-6MRc.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/de-CRIz-V_S.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/de-bIen8vBa.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/es-D3Lxzz5P.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/es-DJlNQ9n2.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/fr-CHlHrq6D.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/fr-Om92FA6_.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/index-CJ0w0cCi.js


+ 1 - 1
static/assets/inventorySearch-B6iqizR8.js → static/assets/inventorySearch-abrgiuGv.js

@@ -1 +1 @@
-import{ft as e}from"./index-CizsGNuz.js";function t(t,n){let r=n.trim().toLowerCase();if(!r)return!0;let i=r.match(/^#(\d+)$/);return i?t.id===Number(i[1]):String(t.id).includes(r)||t.material.toLowerCase().includes(r)||(t.brand?.toLowerCase().includes(r)??!1)||(t.color_name?.toLowerCase().includes(r)??!1)||(e(t.color_name,t.rgba,t.color_name_is_synthesized)?.toLowerCase().includes(r)??!1)||(t.subtype?.toLowerCase().includes(r)??!1)||(t.note?.toLowerCase().includes(r)??!1)||(t.slicer_filament_name?.toLowerCase().includes(r)??!1)||(t.storage_location?.toLowerCase().includes(r)??!1)||(t.material_number?.toLowerCase().includes(r)??!1)||(t.suppliers?.some(e=>e.supplier_name.toLowerCase().includes(r)||(e.supplier_article_number?.toLowerCase().includes(r)??!1))??!1)}function n(e,n){return n?e.filter(e=>t(e,n)):e}export{n as t};
+import{ft as e}from"./index-CJ0w0cCi.js";function t(t,n){let r=n.trim().toLowerCase();if(!r)return!0;let i=r.match(/^#(\d+)$/);return i?t.id===Number(i[1]):String(t.id).includes(r)||t.material.toLowerCase().includes(r)||(t.brand?.toLowerCase().includes(r)??!1)||(t.color_name?.toLowerCase().includes(r)??!1)||(e(t.color_name,t.rgba,t.color_name_is_synthesized)?.toLowerCase().includes(r)??!1)||(t.subtype?.toLowerCase().includes(r)??!1)||(t.note?.toLowerCase().includes(r)??!1)||(t.slicer_filament_name?.toLowerCase().includes(r)??!1)||(t.storage_location?.toLowerCase().includes(r)??!1)||(t.material_number?.toLowerCase().includes(r)??!1)||(t.suppliers?.some(e=>e.supplier_name.toLowerCase().includes(r)||(e.supplier_article_number?.toLowerCase().includes(r)??!1))??!1)}function n(e,n){return n?e.filter(e=>t(e,n)):e}export{n as t};

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/it-4I6jx5bN.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/it-BvW9M3Vz.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ja-BNEUPGWW.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ja-D2EOAyJD.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ko-B-_J2Kfz.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ko-DfBFmlKY.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/locationSensorDefaults-BpOt1qFI.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/nl-bENooHN3.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/pdf-CWCRHxpU.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/pt-BR-92EhOKVO.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/pt-BR-CYc2SLsN.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ru-BIcZal2N.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/ru-D-8vaLZZ.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/sv-Din8JniN.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/sv-s25PQYIG.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/tr-DsMABk7-.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/tr-zuS-RAgq.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/uk-DtWUCD87.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/uk-VLDlCeAG.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/utils-HWU1IUBT.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/zh-CN-7T9n_nz-.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/zh-CN-CYCzjlSw.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/zh-TW-CUA15mBh.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
static/assets/zh-TW-D4Nxyg0K.js


+ 1 - 1
static/index.html

@@ -26,7 +26,7 @@
 
     <!-- Splash screens for iOS -->
     <link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
-    <script type="module" crossorigin src="/assets/index-CizsGNuz.js"></script>
+    <script type="module" crossorigin src="/assets/index-CJ0w0cCi.js"></script>
     <link rel="modulepreload" crossorigin href="/assets/chunk-aKtaBQYM.js">
     <link rel="modulepreload" crossorigin href="/assets/client-C3LdD0iY.js">
     <link rel="modulepreload" crossorigin href="/assets/QueryClientProvider-DzWmuIjj.js">

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff