mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
Support passing current term from input-select search to create dialog e.g. for doc type / correspondent
This commit is contained in:
parent
cd72ed2cec
commit
52bc1a62e1
@ -10,11 +10,12 @@
|
|||||||
bindLabel="name"
|
bindLabel="name"
|
||||||
bindValue="id"
|
bindValue="id"
|
||||||
(change)="onChange(value)"
|
(change)="onChange(value)"
|
||||||
(blur)="onTouched()">
|
(search)="onSearch($event)"
|
||||||
|
(focus)="onFocus()">
|
||||||
</ng-select>
|
</ng-select>
|
||||||
|
|
||||||
<div *ngIf="showPlusButton()" class="input-group-append">
|
<div *ngIf="showPlusButton()" class="input-group-append">
|
||||||
<button class="btn btn-outline-secondary" type="button" (click)="createNew.emit()">
|
<button class="btn btn-outline-secondary" type="button" (click)="clickNew()">
|
||||||
<svg class="buttonicon" fill="currentColor">
|
<svg class="buttonicon" fill="currentColor">
|
||||||
<use xlink:href="assets/bootstrap-icons.svg#plus" />
|
<use xlink:href="assets/bootstrap-icons.svg#plus" />
|
||||||
</svg>
|
</svg>
|
||||||
@ -27,7 +28,7 @@
|
|||||||
<ng-container *ngFor="let s of getSuggestions()">
|
<ng-container *ngFor="let s of getSuggestions()">
|
||||||
<a (click)="value = s.id; onChange(value)" [routerLink]="">{{s.name}}</a>
|
<a (click)="value = s.id; onChange(value)" [routerLink]="">{{s.name}}</a>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
|
@ -34,7 +34,9 @@ export class SelectComponent extends AbstractInputComponent<number> {
|
|||||||
suggestions: number[]
|
suggestions: number[]
|
||||||
|
|
||||||
@Output()
|
@Output()
|
||||||
createNew = new EventEmitter()
|
createNew = new EventEmitter<string>()
|
||||||
|
|
||||||
|
private _lastSearchTerm: string
|
||||||
|
|
||||||
showPlusButton(): boolean {
|
showPlusButton(): boolean {
|
||||||
return this.createNew.observers.length > 0
|
return this.createNew.observers.length > 0
|
||||||
@ -48,4 +50,17 @@ export class SelectComponent extends AbstractInputComponent<number> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clickNew() {
|
||||||
|
this.createNew.next(this._lastSearchTerm)
|
||||||
|
this._lastSearchTerm = null
|
||||||
|
}
|
||||||
|
|
||||||
|
onFocus() {
|
||||||
|
this._lastSearchTerm = null
|
||||||
|
}
|
||||||
|
|
||||||
|
onSearch($event) {
|
||||||
|
this._lastSearchTerm = $event.term
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -60,9 +60,9 @@
|
|||||||
<app-input-number i18n-title title="Archive serial number" [error]="error?.archive_serial_number" formControlName='archive_serial_number'></app-input-number>
|
<app-input-number i18n-title title="Archive serial number" [error]="error?.archive_serial_number" formControlName='archive_serial_number'></app-input-number>
|
||||||
<app-input-date i18n-title title="Date created" formControlName="created" [error]="error?.created"></app-input-date>
|
<app-input-date i18n-title title="Date created" formControlName="created" [error]="error?.created"></app-input-date>
|
||||||
<app-input-select [items]="correspondents" i18n-title title="Correspondent" formControlName="correspondent" [allowNull]="true"
|
<app-input-select [items]="correspondents" i18n-title title="Correspondent" formControlName="correspondent" [allowNull]="true"
|
||||||
(createNew)="createCorrespondent()" [suggestions]="suggestions?.correspondents"></app-input-select>
|
(createNew)="createCorrespondent($event)" [suggestions]="suggestions?.correspondents"></app-input-select>
|
||||||
<app-input-select [items]="documentTypes" i18n-title title="Document type" formControlName="document_type" [allowNull]="true"
|
<app-input-select [items]="documentTypes" i18n-title title="Document type" formControlName="document_type" [allowNull]="true"
|
||||||
(createNew)="createDocumentType()" [suggestions]="suggestions?.document_types"></app-input-select>
|
(createNew)="createDocumentType($event)" [suggestions]="suggestions?.document_types"></app-input-select>
|
||||||
<app-input-tags formControlName="tags" [suggestions]="suggestions?.tags"></app-input-tags>
|
<app-input-tags formControlName="tags" [suggestions]="suggestions?.tags"></app-input-tags>
|
||||||
|
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
@ -127,9 +127,10 @@ export class DocumentDetailComponent implements OnInit {
|
|||||||
this.documentForm.patchValue(doc)
|
this.documentForm.patchValue(doc)
|
||||||
}
|
}
|
||||||
|
|
||||||
createDocumentType() {
|
createDocumentType(newName: string) {
|
||||||
var modal = this.modalService.open(DocumentTypeEditDialogComponent, {backdrop: 'static'})
|
var modal = this.modalService.open(DocumentTypeEditDialogComponent, {backdrop: 'static'})
|
||||||
modal.componentInstance.dialogMode = 'create'
|
modal.componentInstance.dialogMode = 'create'
|
||||||
|
if (newName) modal.componentInstance.object = { name: newName }
|
||||||
modal.componentInstance.success.subscribe(newDocumentType => {
|
modal.componentInstance.success.subscribe(newDocumentType => {
|
||||||
this.documentTypeService.listAll().subscribe(documentTypes => {
|
this.documentTypeService.listAll().subscribe(documentTypes => {
|
||||||
this.documentTypes = documentTypes.results
|
this.documentTypes = documentTypes.results
|
||||||
@ -138,9 +139,10 @@ export class DocumentDetailComponent implements OnInit {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
createCorrespondent() {
|
createCorrespondent(newName: string) {
|
||||||
var modal = this.modalService.open(CorrespondentEditDialogComponent, {backdrop: 'static'})
|
var modal = this.modalService.open(CorrespondentEditDialogComponent, {backdrop: 'static'})
|
||||||
modal.componentInstance.dialogMode = 'create'
|
modal.componentInstance.dialogMode = 'create'
|
||||||
|
if (newName) modal.componentInstance.object = { name: newName }
|
||||||
modal.componentInstance.success.subscribe(newCorrespondent => {
|
modal.componentInstance.success.subscribe(newCorrespondent => {
|
||||||
this.correspondentService.listAll().subscribe(correspondents => {
|
this.correspondentService.listAll().subscribe(correspondents => {
|
||||||
this.correspondents = correspondents.results
|
this.correspondents = correspondents.results
|
||||||
|
Loading…
x
Reference in New Issue
Block a user