Merge pull request #2839 from paperless-ngx/handle-private-objects

Fix: frontend handle "private" tags, doctypes, correspondents
This commit is contained in:
shamoon
2023-03-17 00:21:19 -07:00
committed by GitHub
6 changed files with 59 additions and 5 deletions

View File

@@ -5,6 +5,7 @@
[disabled]="disabled"
[style.color]="textColor"
[style.background]="backgroundColor"
[class.private]="isPrivate"
[clearable]="allowNull"
[items]="items"
[addTag]="allowCreateNew && addItemRef"

View File

@@ -12,3 +12,8 @@
}
}
}
::ng-deep .private .ng-value-container {
font-style: italic;
opacity: .75;
}

View File

@@ -26,8 +26,23 @@ export class SelectComponent extends AbstractInputComponent<number> {
this.addItemRef = this.addItem.bind(this)
}
_items: any[]
@Input()
items: any[]
set items(items) {
if (this.value && items.find((i) => i.id === this.value) === undefined) {
items.push({
id: this.value,
name: $localize`Private`,
private: true,
})
}
this._items = items
}
get items(): any[] {
return this._items
}
@Input()
textColor: any
@@ -61,6 +76,10 @@ export class SelectComponent extends AbstractInputComponent<number> {
return this.createNew.observers.length > 0
}
get isPrivate(): boolean {
return this.items.find((i) => i.id === this.value)?.private
}
getSuggestions() {
if (this.suggestions && this.items) {
return this.suggestions

View File

@@ -1,2 +1,9 @@
<span *ngIf="!clickable" class="badge" [style.background]="tag.color" [style.color]="tag.text_color">{{tag.name}}</span>
<a [title]="linkTitle" *ngIf="clickable" class="badge" [style.background]="tag.color" [style.color]="tag.text_color">{{tag.name}}</a>
<ng-container *ngIf="tag !== undefined; else privateTag" >
<span *ngIf="!clickable" class="badge" [style.background]="tag.color" [style.color]="tag.text_color">{{tag.name}}</span>
<a [title]="linkTitle" *ngIf="clickable" class="badge" [style.background]="tag.color" [style.color]="tag.text_color">{{tag.name}}</a>
</ng-container>
<ng-template #privateTag>
<span *ngIf="!clickable" class="badge private" i18n>Private</span>
<a [title]="linkTitle" *ngIf="clickable" class="badge private" i18n>Private</a>
</ng-template>

View File

@@ -4,3 +4,10 @@ a {
word-break: break-word;
text-align: end;
}
.private {
background-color: #000000;
color: #ffffff;
opacity: .5;
font-style: italic;
}