paperless-ngx/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.ts

125 lines
2.9 KiB
TypeScript
Raw Normal View History

import {
Component,
EventEmitter,
Input,
OnInit,
Output,
ViewChild,
} from '@angular/core'
import { PaperlessDocument } from 'src/app/data/paperless-document'
import { DocumentService } from 'src/app/services/rest/document.service'
2022-05-09 11:01:45 -07:00
import { SettingsService } from 'src/app/services/settings.service'
import { NgbPopover } from '@ng-bootstrap/ng-bootstrap'
import { OpenDocumentsService } from 'src/app/services/open-documents.service'
2022-05-09 11:01:45 -07:00
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
import { FILTER_FULLTEXT_MORELIKE } from 'src/app/data/filter-rule-type'
import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
2020-10-27 01:10:18 +01:00
@Component({
selector: 'app-document-card-large',
templateUrl: './document-card-large.component.html',
styleUrls: [
'./document-card-large.component.scss',
'../popover-preview/popover-preview.scss',
],
2020-10-27 01:10:18 +01:00
})
export class DocumentCardLargeComponent implements OnInit {
constructor(
private documentService: DocumentService,
private settingsService: SettingsService,
2022-05-15 23:25:46 -07:00
public openDocumentsService: OpenDocumentsService
) {}
2020-10-27 01:10:18 +01:00
2020-12-22 02:43:18 +01:00
@Input()
2020-12-26 01:08:54 +01:00
selected = false
2020-12-22 02:43:18 +01:00
@Output()
toggleSelected = new EventEmitter()
2020-12-22 02:43:18 +01:00
get selectable() {
return this.toggleSelected.observers.length > 0
2020-12-22 02:43:18 +01:00
}
2020-10-27 01:10:18 +01:00
@Input()
document: PaperlessDocument
@Output()
clickTag = new EventEmitter<number>()
@Output()
clickCorrespondent = new EventEmitter<number>()
@Output()
clickDocumentType = new EventEmitter<number>()
Feature: Dynamic document storage pathes (#916) * Added devcontainer * Add feature storage pathes * Exclude tests and add versioning * Check escaping * Check escaping * Check quoting * Echo * Escape * Escape : * Double escape \ * Escaping * Remove if * Escape colon * Missing \ * Esacpe : * Escape all * test * Remove sed * Fix exclude * Remove SED command * Add LD_LIBRARY_PATH * Adjusted to v1.7 * Updated test-cases * Remove devcontainer * Removed internal build-file * Run pre-commit * Corrected flak8 error * Adjusted to v1.7 * Updated test-cases * Corrected flak8 error * Adjusted to new plural translations * Small adjustments due to code-review backend * Adjusted line-break * Removed PAPERLESS prefix from settings variables * Corrected style change due to search+replace * First documentation draft * Revert changes to Pipfile * Add sphinx-autobuild with keep-outdated * Revert merge error that results in wrong storage path is evaluated * Adjust styles of generated files ... * Adds additional testing to cover dynamic storage path functionality * Remove unnecessary condition * Add hint to edit storage path dialog * Correct spelling of pathes to paths * Minor documentation tweaks * Minor typo * improving wrapping of filter editor buttons with new storage path button * Update .gitignore * Fix select border radius in non input-groups * Better storage path edit hint * Add note to edit storage path dialog re document_renamer * Add note to bulk edit storage path re document_renamer * Rename FILTER_STORAGE_DIRECTORY to PATH * Fix broken filter rule parsing * Show default storage if unspecified * Remove note re storage path on bulk edit * Add basic validation of filename variables Co-authored-by: Markus Kling <markus@markus-kling.net> Co-authored-by: Trenton Holmes <holmes.trenton@gmail.com> Co-authored-by: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Co-authored-by: Quinn Casey <quinn@quinncasey.com>
2022-05-19 23:42:25 +02:00
@Output()
clickStoragePath = new EventEmitter<number>()
@Output()
clickMoreLike = new EventEmitter()
2021-02-24 13:02:26 -08:00
@ViewChild('popover') popover: NgbPopover
mouseOnPreview = false
popoverHidden = true
2020-12-17 21:36:21 +01:00
get searchScoreClass() {
2021-04-03 21:50:05 +02:00
if (this.document.__search_hit__) {
if (this.document.__search_hit__.score > 0.7) {
return 'success'
2021-04-03 21:50:05 +02:00
} else if (this.document.__search_hit__.score > 0.3) {
return 'warning'
2021-04-03 21:50:05 +02:00
} else {
return 'danger'
2021-04-03 21:50:05 +02:00
}
2020-12-17 21:36:21 +01:00
}
}
ngOnInit(): void {}
2020-10-27 01:10:18 +01:00
getIsThumbInverted() {
return this.settingsService.get(SETTINGS_KEYS.DARK_MODE_THUMB_INVERTED)
}
2020-10-27 01:10:18 +01:00
getThumbUrl() {
return this.documentService.getThumbUrl(this.document.id)
}
getDownloadUrl() {
return this.documentService.getDownloadUrl(this.document.id)
}
get previewUrl() {
return this.documentService.getPreviewUrl(this.document.id)
}
2021-02-24 13:02:26 -08:00
mouseEnterPreview() {
this.mouseOnPreview = true
if (!this.popover.isOpen()) {
// we're going to open but hide to pre-load content during hover delay
this.popover.open()
this.popoverHidden = true
setTimeout(() => {
if (this.mouseOnPreview) {
// show popover
this.popoverHidden = false
} else {
this.popover.close()
}
}, 600)
2021-02-24 13:02:26 -08:00
}
}
mouseLeavePreview() {
this.mouseOnPreview = false
}
mouseLeaveCard() {
this.popover.close()
}
get contentTrimmed() {
return this.document.content.substr(0, 500)
}
2020-10-27 01:10:18 +01:00
}