Add missing mail rules & accounts
This commit is contained in:
parent
5d22fc76b4
commit
2f21046c50
@ -160,6 +160,7 @@ import {
|
|||||||
doorOpen,
|
doorOpen,
|
||||||
download,
|
download,
|
||||||
envelope,
|
envelope,
|
||||||
|
envelopeAt,
|
||||||
exclamationCircleFill,
|
exclamationCircleFill,
|
||||||
exclamationTriangle,
|
exclamationTriangle,
|
||||||
exclamationTriangleFill,
|
exclamationTriangleFill,
|
||||||
@ -256,6 +257,7 @@ const icons = {
|
|||||||
doorOpen,
|
doorOpen,
|
||||||
download,
|
download,
|
||||||
envelope,
|
envelope,
|
||||||
|
envelopeAt,
|
||||||
exclamationCircleFill,
|
exclamationCircleFill,
|
||||||
exclamationTriangle,
|
exclamationTriangle,
|
||||||
exclamationTriangleFill,
|
exclamationTriangleFill,
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
@if (type === DataType.Document) {
|
@if (type === DataType.Document) {
|
||||||
<i-bs width="1em" height="1em" name="pencil"></i-bs>
|
<i-bs width="1em" height="1em" name="pencil"></i-bs>
|
||||||
<span> <ng-container i18n>Open</ng-container></span>
|
<span> <ng-container i18n>Open</ng-container></span>
|
||||||
} @else if (type === DataType.Workflow || type === DataType.CustomField || type === DataType.Group || type === DataType.User) {
|
} @else if (type === DataType.Workflow || type === DataType.CustomField || type === DataType.Group || type === DataType.User || type === DataType.MailAccount || type === DataType.MailRule) {
|
||||||
<i-bs width="1em" height="1em" name="pencil"></i-bs>
|
<i-bs width="1em" height="1em" name="pencil"></i-bs>
|
||||||
<span> <ng-container i18n>Edit</ng-container></span>
|
<span> <ng-container i18n>Edit</ng-container></span>
|
||||||
} @else {
|
} @else {
|
||||||
@ -41,7 +41,7 @@
|
|||||||
<span> <ng-container i18n>Filter documents</ng-container></span>
|
<span> <ng-container i18n>Filter documents</ng-container></span>
|
||||||
}
|
}
|
||||||
</button>
|
</button>
|
||||||
@if (type !== DataType.Workflow && type !== DataType.CustomField && type !== DataType.Group && type !== DataType.User) {
|
@if (type !== DataType.Workflow && type !== DataType.CustomField && type !== DataType.Group && type !== DataType.User && type !== DataType.MailAccount && type !== DataType.MailRule) {
|
||||||
<button #secondaryButton type="button" class="btn btn-sm btn-outline-primary d-flex"
|
<button #secondaryButton type="button" class="btn btn-sm btn-outline-primary d-flex"
|
||||||
(click)="secondaryAction(type, item); $event.stopPropagation()"
|
(click)="secondaryAction(type, item); $event.stopPropagation()"
|
||||||
[disabled]="disableSecondaryButton(type, item)"
|
[disabled]="disableSecondaryButton(type, item)"
|
||||||
@ -119,6 +119,20 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@if (searchResults?.mail_accounts.length) {
|
||||||
|
<h6 class="dropdown-header" i18n="@@searchResults.mailAccounts">Mail accounts</h6>
|
||||||
|
@for (mailAccount of searchResults.mail_accounts; track mailAccount.id) {
|
||||||
|
<ng-container *ngTemplateOutlet="resultItemTemplate; context: {item: mailAccount, nameProp: 'name', type: DataType.MailAccount, icon: 'envelope-at'}"></ng-container>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@if (searchResults?.mail_rules.length) {
|
||||||
|
<h6 class="dropdown-header" i18n="@@searchResults.mailRules">Mail rules</h6>
|
||||||
|
@for (mailRule of searchResults.mail_rules; track mailRule.id) {
|
||||||
|
<ng-container *ngTemplateOutlet="resultItemTemplate; context: {item: mailRule, nameProp: 'name', type: DataType.MailRule, icon: 'envelope'}"></ng-container>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@if (searchResults?.workflows.length) {
|
@if (searchResults?.workflows.length) {
|
||||||
<h6 class="dropdown-header" i18n="@@searchResults.workflows">Workflows</h6>
|
<h6 class="dropdown-header" i18n="@@searchResults.workflows">Workflows</h6>
|
||||||
@for (workflow of searchResults.workflows; track workflow.id) {
|
@for (workflow of searchResults.workflows; track workflow.id) {
|
||||||
|
@ -66,7 +66,7 @@ const searchResults = {
|
|||||||
storage_paths: [
|
storage_paths: [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
path: 'TestStoragePath',
|
name: 'TestStoragePath',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
tags: [
|
tags: [
|
||||||
@ -208,6 +208,17 @@ describe('GlobalSearchComponent', () => {
|
|||||||
)
|
)
|
||||||
expect(component['currentItemIndex']).toBe(-1)
|
expect(component['currentItemIndex']).toBe(-1)
|
||||||
expect(inputFocusSpy).toHaveBeenCalled()
|
expect(inputFocusSpy).toHaveBeenCalled()
|
||||||
|
|
||||||
|
component.handleKeyboardEvent(
|
||||||
|
new KeyboardEvent('keydown', { key: 'ArrowDown' })
|
||||||
|
)
|
||||||
|
component['currentItemIndex'] = searchResults.total - 1
|
||||||
|
component['setCurrentItem']()
|
||||||
|
component.handleKeyboardEvent(
|
||||||
|
new KeyboardEvent('keydown', { key: 'ArrowDown' })
|
||||||
|
)
|
||||||
|
expect(component['currentItemIndex']).toBe(0)
|
||||||
|
expect(zeroItemSpy).toHaveBeenCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should search on query debounce', fakeAsync(() => {
|
it('should search on query debounce', fakeAsync(() => {
|
||||||
|
@ -1130,7 +1130,7 @@ class GlobalSearchView(PassUserMixin):
|
|||||||
|
|
||||||
tags = (
|
tags = (
|
||||||
get_objects_for_user_owner_aware(request.user, "view_tag", Tag).filter(
|
get_objects_for_user_owner_aware(request.user, "view_tag", Tag).filter(
|
||||||
name__contains=query,
|
name__icontains=query,
|
||||||
)[:3]
|
)[:3]
|
||||||
if request.user.has_perm("documents.view_tag")
|
if request.user.has_perm("documents.view_tag")
|
||||||
else []
|
else []
|
||||||
@ -1140,7 +1140,7 @@ class GlobalSearchView(PassUserMixin):
|
|||||||
request.user,
|
request.user,
|
||||||
"view_correspondent",
|
"view_correspondent",
|
||||||
Correspondent,
|
Correspondent,
|
||||||
).filter(name__contains=query)[:3]
|
).filter(name__icontains=query)[:3]
|
||||||
if request.user.has_perm("documents.view_correspondent")
|
if request.user.has_perm("documents.view_correspondent")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
@ -1149,7 +1149,7 @@ class GlobalSearchView(PassUserMixin):
|
|||||||
request.user,
|
request.user,
|
||||||
"view_documenttype",
|
"view_documenttype",
|
||||||
DocumentType,
|
DocumentType,
|
||||||
).filter(name__contains=query)[:3]
|
).filter(name__icontains=query)[:3]
|
||||||
if request.user.has_perm("documents.view_documenttype")
|
if request.user.has_perm("documents.view_documenttype")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
@ -1158,37 +1158,37 @@ class GlobalSearchView(PassUserMixin):
|
|||||||
request.user,
|
request.user,
|
||||||
"view_storagepath",
|
"view_storagepath",
|
||||||
StoragePath,
|
StoragePath,
|
||||||
).filter(name__contains=query)[:3]
|
).filter(name__icontains=query)[:3]
|
||||||
if request.user.has_perm("documents.view_storagepath")
|
if request.user.has_perm("documents.view_storagepath")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
users = (
|
users = (
|
||||||
User.objects.filter(username__contains=query)[:3]
|
User.objects.filter(username__icontains=query)[:3]
|
||||||
if request.user.has_perm("documents.view_user")
|
if request.user.has_perm("documents.view_user")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
groups = (
|
groups = (
|
||||||
Group.objects.filter(name__contains=query)[:3]
|
Group.objects.filter(name__icontains=query)[:3]
|
||||||
if request.user.has_perm("documents.view_group")
|
if request.user.has_perm("documents.view_group")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
mail_rules = (
|
mail_rules = (
|
||||||
MailRule.objects.filter(name__contains=query)[:3]
|
MailRule.objects.filter(name__icontains=query)[:3]
|
||||||
if request.user.has_perm("documents.view_mailrule")
|
if request.user.has_perm("paperless_mail.view_mailrule")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
mail_accounts = (
|
mail_accounts = (
|
||||||
MailAccount.objects.filter(name__contains=query)[:3]
|
MailAccount.objects.filter(name__icontains=query)[:3]
|
||||||
if request.user.has_perm("documents.view_mailaccount")
|
if request.user.has_perm("paperless_mail.view_mailaccount")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
workflows = (
|
workflows = (
|
||||||
Workflow.objects.filter(name__contains=query)[:3]
|
Workflow.objects.filter(name__icontains=query)[:3]
|
||||||
if request.user.has_perm("documents.view_workflow")
|
if request.user.has_perm("documents.view_workflow")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
custom_fields = (
|
custom_fields = (
|
||||||
CustomField.objects.filter(name__contains=query)[:3]
|
CustomField.objects.filter(name__icontains=query)[:3]
|
||||||
if request.user.has_perm("documents.view_customfield")
|
if request.user.has_perm("documents.view_customfield")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user