]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix display of private objects sometimes
authorshamoon <4887959+shamoon@users.noreply.github.com>
Sun, 16 Apr 2023 04:39:44 +0000 (21:39 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Sun, 16 Apr 2023 07:09:41 +0000 (00:09 -0700)
src-ui/cypress/e2e/settings/settings.cy.ts
src-ui/src/app/components/common/input/select/select.component.ts

index 259f1540362b382417a2d180b0fa086343354ea3..51a2ae38098e8e35b25759111184625d10de0ad7 100644 (file)
@@ -56,8 +56,6 @@ describe('settings', () => {
             'GET',
             'http://localhost:8000/api/mail_accounts/*',
             (req) => {
-              console.log(req, this.newMailAccounts)
-
               let response = { ...mailAccountsJson }
               if (this.newMailAccounts.length) {
                 response.results = response.results.concat(this.newMailAccounts)
@@ -142,7 +140,7 @@ describe('settings', () => {
     cy.get('app-saved-view-widget').contains('Inbox').should('not.exist')
   })
 
-  it('should show a list of mail accounts & rules & support creation', () => {
+  it('should show a list of mail accounts & support creation', () => {
     cy.contains('a', 'Mail').click()
     cy.get('app-settings .tab-content ul li').its('length').should('eq', 5) // 2 headers, 2 accounts, 1 rule
     cy.contains('button', 'Add Account').click()
@@ -162,6 +160,13 @@ describe('settings', () => {
       .wait('@getAccounts')
     cy.contains('Saved account')
 
+    cy.get('app-settings .tab-content ul li').its('length').should('eq', 6)
+  })
+
+  it('should show a list of mail rules & support creation', () => {
+    cy.contains('a', 'Mail').click()
+    cy.get('app-settings .tab-content ul li').its('length').should('eq', 5) // 2 headers, 2 accounts, 1 rule
+
     cy.wait(1000)
     cy.contains('button', 'Add Rule').click()
     cy.contains('Create new mail rule')
@@ -177,6 +182,6 @@ describe('settings', () => {
       .wait('@getRules')
     cy.contains('Saved rule').wait(1000)
 
-    cy.get('app-settings .tab-content ul li').its('length').should('eq', 7)
+    cy.get('app-settings .tab-content ul li').its('length').should('eq', 6)
   })
 })
index ddf900bf6b151aa082186999e8f85204b39114d2..5e5ee81006c4774176ac05b8304c561c110541fd 100644 (file)
@@ -27,21 +27,31 @@ export class SelectComponent extends AbstractInputComponent<number> {
   }
 
   _items: any[]
+  privateItems: any[] = []
 
   @Input()
   set items(items) {
-    if (this.value && items.find((i) => i.id === this.value) === undefined) {
-      items.push({
-        id: this.value,
+    this._items = items
+    if (this.value) this.checkForPrivateItem(this.value)
+  }
+
+  writeValue(newValue: any): void {
+    if (newValue && this._items) this.checkForPrivateItem(newValue)
+    super.writeValue(newValue)
+  }
+
+  checkForPrivateItem(value) {
+    if (this._items.find((i) => i.id === value) === undefined) {
+      this.privateItems.push({
+        id: value,
         name: $localize`Private`,
         private: true,
       })
     }
-    this._items = items
   }
 
   get items(): any[] {
-    return this._items
+    return this._items?.concat(this.privateItems)
   }
 
   @Input()