mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-09-27 20:00:31 +00:00
Much simpler
This commit is contained in:
+2
-2
@@ -73,11 +73,11 @@
|
||||
<div ngbDropdownMenu class="shadow p-3">
|
||||
<div class="small text-muted mb-2" i18n>Suggest using:</div>
|
||||
<div class="form-check small">
|
||||
<input class="form-check-input" type="checkbox" id="suggestionSourceML" [checked]="useML" [disabled]="useML && !useAI" (change)="toggleSource(SuggestionSource.ML)">
|
||||
<input class="form-check-input" type="checkbox" id="suggestionSourceML" [checked]="useML" [disabled]="useML && !useAI" (change)="setSources($event.target.checked, useAI)">
|
||||
<label class="form-check-label d-inline-flex align-items-center gap-1" for="suggestionSourceML"><i-bs name="cpu"></i-bs><ng-container i18n>ML</ng-container></label>
|
||||
</div>
|
||||
<div class="form-check small">
|
||||
<input class="form-check-input" type="checkbox" id="suggestionSourceAI" [checked]="useAI" [disabled]="useAI && !useML" (change)="toggleSource(SuggestionSource.AI)">
|
||||
<input class="form-check-input" type="checkbox" id="suggestionSourceAI" [checked]="useAI" [disabled]="useAI && !useML" (change)="setSources(useML, $event.target.checked)">
|
||||
<label class="form-check-label d-inline-flex align-items-center gap-1" for="suggestionSourceAI"><i-bs name="stars"></i-bs><ng-container i18n>AI</ng-container></label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+5
-7
@@ -224,17 +224,15 @@ describe('SuggestionsDropdownComponent', () => {
|
||||
|
||||
it('should emit source changes and never allow no source', () => {
|
||||
const emitSpy = jest.spyOn(component.sourceChange, 'emit')
|
||||
fixture.componentRef.setInput('source', SuggestionSource.AI)
|
||||
component.toggleSource(SuggestionSource.ML)
|
||||
component.setSources(true, true)
|
||||
expect(emitSpy).toHaveBeenCalledWith(SuggestionSource.Both)
|
||||
|
||||
fixture.componentRef.setInput('source', SuggestionSource.Both)
|
||||
component.toggleSource(SuggestionSource.AI)
|
||||
component.setSources(true, false)
|
||||
expect(emitSpy).toHaveBeenCalledWith(SuggestionSource.ML)
|
||||
component.setSources(false, true)
|
||||
expect(emitSpy).toHaveBeenCalledWith(SuggestionSource.AI)
|
||||
|
||||
emitSpy.mockClear()
|
||||
fixture.componentRef.setInput('source', SuggestionSource.ML)
|
||||
component.toggleSource(SuggestionSource.ML)
|
||||
component.setSources(false, false)
|
||||
expect(emitSpy).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
|
||||
+8
-11
@@ -86,17 +86,14 @@ export class SuggestionsDropdownComponent {
|
||||
)
|
||||
}
|
||||
|
||||
public toggleSource(source: SuggestionSource.ML | SuggestionSource.AI) {
|
||||
const ml = source === SuggestionSource.ML ? !this.useML : this.useML
|
||||
const ai = source === SuggestionSource.AI ? !this.useAI : this.useAI
|
||||
if (!ml && !ai) return
|
||||
this.sourceChange.emit(
|
||||
ml && ai
|
||||
? SuggestionSource.Both
|
||||
: ml
|
||||
? SuggestionSource.ML
|
||||
: SuggestionSource.AI
|
||||
)
|
||||
public setSources(ml: boolean, ai: boolean) {
|
||||
if (ml && ai) {
|
||||
this.sourceChange.emit(SuggestionSource.Both)
|
||||
} else if (ml) {
|
||||
this.sourceChange.emit(SuggestionSource.ML)
|
||||
} else if (ai) {
|
||||
this.sourceChange.emit(SuggestionSource.AI)
|
||||
}
|
||||
}
|
||||
|
||||
get novelSuggestions(): number {
|
||||
|
||||
Reference in New Issue
Block a user