From fec9e54049d94eea30b83f46a40cd96fdde4c8cd Mon Sep 17 00:00:00 2001 From: Jonas Winkler Date: Sun, 22 Nov 2020 12:54:08 +0100 Subject: [PATCH 01/25] new setting: PAPERLESS_OCR_PAGES --- docs/changelog.rst | 3 +++ docs/configuration.rst | 10 ++++++++++ docs/setup.rst | 26 ++++++++++++++++++++++++++ paperless.conf.example | 1 + src/paperless/settings.py | 2 ++ src/paperless_tesseract/parsers.py | 17 ++++++++++++----- 6 files changed, 54 insertions(+), 5 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 2af97b33..bb119bf1 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -26,6 +26,9 @@ next * Much better admin for mail rule editing. +* New setting ``PAPERLESS_OCR_PAGES`` limits the tesseract parser + to the first n pages of scanned documents. + paperless-ng 0.9.1 ################## diff --git a/docs/configuration.rst b/docs/configuration.rst index 1ddd7ca0..afb0b5f9 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -184,6 +184,16 @@ PAPERLESS_TIME_ZONE= +PAPERLESS_OCR_PAGES= + Tells paperless to use only the specified amount of pages for OCR. Documents + with less than the specified amount of pages get OCR'ed completely. + + Specifying 1 here will only use the first page. + + Defaults to 0, which disables this feature and always uses all pages. + + + PAPERLESS_OCR_LANGUAGE= Customize the default language that tesseract will attempt to use when parsing documents. The default language is used whenever diff --git a/docs/setup.rst b/docs/setup.rst index 5520f559..dff60588 100644 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -358,4 +358,30 @@ management commands as below. 7. Start paperless. +Considerations for less powerful devices +######################################## + +Paperless runs on Raspberry Pi. However, some things are rather slow on the Pi and +configuring some options in paperless can help improve performance immensely: + +* Consider setting ``PAPERLESS_OCR_PAGES`` to 1, so that paperless will only OCR + the first page of your documents. +* ``PAPERLESS_TASK_WORKERS`` and ``PAPERLESS_THREADS_PER_WORKER`` are configured + to use all cores. The Raspberry Pi models 3 and up have 4 cores, meaning that + paperless will use 2 workers and 2 threads per worker. This may result in + slugish response times during consumption, so you might want to lower these + settings (example: 2 workers and 1 thread to always have some computing power + left for other tasks). +* Keep ``PAPERLESS_OCR_ALWAYS`` at its default value 'false' and consider OCR'ing + your documents before feeding them into paperless. Some scanners are able to + do this! +* Lower ``PAPERLESS_CONVERT_DENSITY`` from its default value 300 to 200. This + will still result in rather accurate OCR, but will decrease consumption time + by quite a bit. +* Set ``PAPERLESS_OPTIMIZE_THUMBNAILS`` to 'false' if you want faster consumption + times. Thumbnails will be about 20% larger. + +For details, refer to :ref:`configuration`. + + .. _redis: https://redis.io/ diff --git a/paperless.conf.example b/paperless.conf.example index e1fd17a7..4749151e 100644 --- a/paperless.conf.example +++ b/paperless.conf.example @@ -35,6 +35,7 @@ #PAPERLESS_TASK_WORKERS=1 #PAPERLESS_THREADS_PER_WORKER=1 #PAPERLESS_TIME_ZONE=UTC +#PAPERLESS_OCR_PAGES=1 #PAPERLESS_OCR_LANGUAGE=eng #PAPERLESS_OCR_ALWAYS=false #PAPERLESS_CONSUMER_POLLING=10 diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 06895e92..0d64efa5 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -322,6 +322,8 @@ CONSUMER_DELETE_DUPLICATES = __get_boolean("PAPERLESS_CONSUMER_DELETE_DUPLICATES OPTIMIZE_THUMBNAILS = __get_boolean("PAPERLESS_OPTIMIZE_THUMBNAILS", "true") +OCR_PAGES = int(os.getenv('PAPERLESS_OCR_PAGES', 0)) + # The default language that tesseract will attempt to use when parsing # documents. It should be a 3-letter language code consistent with ISO 639. OCR_LANGUAGE = os.getenv("PAPERLESS_OCR_LANGUAGE", "eng") diff --git a/src/paperless_tesseract/parsers.py b/src/paperless_tesseract/parsers.py index c9e77486..b8320a4f 100644 --- a/src/paperless_tesseract/parsers.py +++ b/src/paperless_tesseract/parsers.py @@ -147,18 +147,25 @@ class RasterisedDocumentParser(DocumentParser): Greyscale images are easier for Tesseract to OCR """ + # Convert PDF to multiple PNMs + input_file = self.document_path + + if settings.OCR_PAGES == 1: + input_file += "[0]" + elif settings.OCR_PAGES > 1: + input_file += f"[0-{settings.OCR_PAGES - 1}]" + self.log( "debug", - f"Converting document {self.document_path} into greyscale images") + f"Converting document {input_file} into greyscale images") - # Convert PDF to multiple PNMs - pnm = os.path.join(self.tempdir, "convert-%04d.pnm") + output_files = os.path.join(self.tempdir, "convert-%04d.pnm") run_convert(density=settings.CONVERT_DENSITY, depth="8", type="grayscale", - input_file=self.document_path, - output_file=pnm, + input_file=input_file, + output_file=output_files, logging_group=self.logging_group) # Get a list of converted images From d2df1b0fc941de680032fcee2575ff3cd88b3203 Mon Sep 17 00:00:00 2001 From: Jonas Winkler Date: Sun, 22 Nov 2020 13:20:20 +0100 Subject: [PATCH 02/25] updated travis --- .travis.yml | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2db24da8..fd525337 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,37 @@ language: python -python: - - "3.6" - - "3.7" - - "3.8" +matrix: + include: + - name: "Paperless on Python 3.6" + python: "3.6" + + - name: "Paperless on Python 3.7" + python: "3.7" + + - name: "Paperless on Python 3.8" + python: "3.8" + + - name: "Documentation" + before_install: true + install: true + script: + - cd docs/ + - make html + after_success: true + + - name: "Front end" + language: node_js + node_js: + - 6 + before_install: true + install: + - cd src-ui/ + - npm install -g + script: + - cd src-ui/ + - ng build --prod + after_success: true + before_install: - sudo apt-get update -qq From 5a292426c91a32ba9e3e4641aec79cbdb88ac973 Mon Sep 17 00:00:00 2001 From: Jonas Winkler Date: Sun, 22 Nov 2020 13:23:46 +0100 Subject: [PATCH 03/25] codestyle --- src/paperless_mail/admin.py | 40 ++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/src/paperless_mail/admin.py b/src/paperless_mail/admin.py index b959171f..0440234b 100644 --- a/src/paperless_mail/admin.py +++ b/src/paperless_mail/admin.py @@ -20,24 +20,36 @@ class MailRuleAdmin(admin.ModelAdmin): 'fields': ('name', 'order', 'account', 'folder') }), ("Filter", { - 'description': "Paperless will only process mails that match ALL " - "of the filters given below.", - 'fields': ('filter_from', 'filter_subject', 'filter_body', 'maximum_age') + 'description': + "Paperless will only process mails that match ALL of the " + "filters given below.", + 'fields': + ('filter_from', + 'filter_subject', + 'filter_body', + 'maximum_age') }), ("Actions", { - 'description': "The action applied to the mail. This action is " - "only performed when documents were consumed from " - "the mail. Mails without attachments will remain " - "entirely untouched.", - 'fields': ('action', 'action_parameter') + 'description': + "The action applied to the mail. This action is only " + "performed when documents were consumed from the mail. Mails " + "without attachments will remain entirely untouched.", + 'fields': ( + 'action', + 'action_parameter') }), ("Metadata", { - 'description': "Assign metadata to documents consumed from this " - "rule automatically. If you do not assign tags, " - "types or correspondents here, paperless will " - "still process all matching rules that you have " - "defined.", - "fields": ('assign_title_from', 'assign_tag', 'assign_document_type', 'assign_correspondent_from', 'assign_correspondent') + 'description': + "Assign metadata to documents consumed from this rule " + "automatically. If you do not assign tags, types or " + "correspondents here, paperless will still process all " + "matching rules that you have defined.", + "fields": ( + 'assign_title_from', + 'assign_tag', + 'assign_document_type', + 'assign_correspondent_from', + 'assign_correspondent') }) ) From 79e6b1f5dd0aaf3c5fad6d448ed3fd2d58617262 Mon Sep 17 00:00:00 2001 From: Jonas Winkler Date: Sun, 22 Nov 2020 13:25:59 +0100 Subject: [PATCH 04/25] travis fixes --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index fd525337..f0412c93 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,6 @@ matrix: - name: "Documentation" before_install: true - install: true script: - cd docs/ - make html @@ -22,7 +21,7 @@ matrix: - name: "Front end" language: node_js node_js: - - 6 + - 15 before_install: true install: - cd src-ui/ From 1e0020b56b05b1f23ccef80fa54ce43ab098536c Mon Sep 17 00:00:00 2001 From: Jonas Winkler Date: Sun, 22 Nov 2020 13:31:54 +0100 Subject: [PATCH 05/25] travis fixes --- .travis.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index f0412c93..1eaa9da6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: python -matrix: +jobs: include: - name: "Paperless on Python 3.6" python: "3.6" @@ -12,7 +12,6 @@ matrix: python: "3.8" - name: "Documentation" - before_install: true script: - cd docs/ - make html @@ -25,9 +24,8 @@ matrix: before_install: true install: - cd src-ui/ - - npm install -g + - npm install -g @angular/cli script: - - cd src-ui/ - ng build --prod after_success: true From 9e3142973287d01f45359f8ee5286a98d495e0c0 Mon Sep 17 00:00:00 2001 From: Jonas Winkler Date: Sun, 22 Nov 2020 13:37:24 +0100 Subject: [PATCH 06/25] travis fixes --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 1eaa9da6..248eebb6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,6 +25,7 @@ jobs: install: - cd src-ui/ - npm install -g @angular/cli + - npm install script: - ng build --prod after_success: true From d8e27600be59f45efb7958d88da440e1cf09a4bc Mon Sep 17 00:00:00 2001 From: Jonas Winkler Date: Sun, 22 Nov 2020 13:53:19 +0100 Subject: [PATCH 07/25] workaround for a bug in django-q: task results with too long names would not show up in the result lists. --- src/documents/forms.py | 2 +- src/documents/management/commands/document_consumer.py | 4 ++-- src/paperless_mail/mail.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/documents/forms.py b/src/documents/forms.py index 0471a831..63dd307b 100644 --- a/src/documents/forms.py +++ b/src/documents/forms.py @@ -56,4 +56,4 @@ class UploadForm(forms.Form): async_task("documents.tasks.consume_file", f.name, override_filename=original_filename, - task_name=os.path.basename(original_filename)) + task_name=os.path.basename(original_filename)[:100]) diff --git a/src/documents/management/commands/document_consumer.py b/src/documents/management/commands/document_consumer.py index 70c36a03..05711ebd 100644 --- a/src/documents/management/commands/document_consumer.py +++ b/src/documents/management/commands/document_consumer.py @@ -21,7 +21,7 @@ class Handler(FileSystemEventHandler): try: async_task("documents.tasks.consume_file", file, - task_name=os.path.basename(file)) + task_name=os.path.basename(file)[:100]) except Exception as e: # Catch all so that the consumer won't crash. logging.getLogger(__name__).error( @@ -71,7 +71,7 @@ class Command(BaseCommand): if entry.is_file(): async_task("documents.tasks.consume_file", entry.path, - task_name=os.path.basename(entry.path)) + task_name=os.path.basename(entry.path)[:100]) # Start the watchdog. Woof! if settings.CONSUMER_POLLING > 0: diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index dfdfa09c..1ce4fe82 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -286,7 +286,7 @@ class MailAccountHandler(LoggingMixin): override_correspondent_id=correspondent.id if correspondent else None, # NOQA: E501 override_document_type_id=doc_type.id if doc_type else None, # NOQA: E501 override_tag_ids=[tag.id] if tag else None, - task_name=f"Mail: {att.filename}" + task_name=att.filename[:100] ) processed_attachments += 1 From e75f48d148a95eea4c00e0941ad7ec7fdf5c2d6e Mon Sep 17 00:00:00 2001 From: Jonas Winkler Date: Sun, 22 Nov 2020 13:55:31 +0100 Subject: [PATCH 08/25] changelog --- docs/changelog.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/changelog.rst b/docs/changelog.rst index bb119bf1..38866c3e 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -29,6 +29,8 @@ next * New setting ``PAPERLESS_OCR_PAGES`` limits the tesseract parser to the first n pages of scanned documents. +* Fixed a bug where tasks with too long task names would not show + up in the admin. paperless-ng 0.9.1 ################## From 25f88b7ae945c48156efa39eaa63aad33cf46786 Mon Sep 17 00:00:00 2001 From: Jonas Winkler Date: Sun, 22 Nov 2020 14:43:59 +0100 Subject: [PATCH 09/25] now using SCSS for better theming support --- src-ui/angular.json | 254 +++++++++--------- .../{app.component.css => app.component.scss} | 0 src-ui/src/app/app.component.ts | 2 +- ...component.css => app-frame.component.scss} | 0 .../app-frame/app-frame.component.ts | 2 +- ...onent.css => delete-dialog.component.scss} | 0 .../delete-dialog/delete-dialog.component.ts | 2 +- ...eck.component.css => check.component.scss} | 0 .../common/input/check/check.component.ts | 2 +- ...component.css => date-time.component.scss} | 0 .../input/date-time/date-time.component.ts | 2 +- ...ct.component.css => select.component.scss} | 0 .../common/input/select/select.component.ts | 2 +- ...tags.component.css => tags.component.scss} | 0 .../common/input/tags/tags.component.ts | 2 +- ...text.component.css => text.component.scss} | 0 .../common/input/text/text.component.ts | 2 +- ...mponent.css => page-header.component.scss} | 0 .../page-header/page-header.component.ts | 2 +- .../{tag.component.css => tag.component.scss} | 0 .../components/common/tag/tag.component.ts | 2 +- ...ts.component.css => toasts.component.scss} | 0 .../common/toasts/toasts.component.ts | 2 +- ...component.css => dashboard.component.scss} | 0 .../dashboard/dashboard.component.ts | 2 +- ...ent.css => document-detail.component.scss} | 0 .../document-detail.component.ts | 2 +- ...css => document-card-large.component.scss} | 0 .../document-card-large.component.ts | 2 +- ...css => document-card-small.component.scss} | 0 .../document-card-small.component.ts | 2 +- ...onent.css => document-list.component.scss} | 0 .../document-list/document-list.component.ts | 2 +- ...=> save-view-config-dialog.component.scss} | 0 .../save-view-config-dialog.component.ts | 2 +- ...onent.css => filter-editor.component.scss} | 0 .../filter-editor/filter-editor.component.ts | 2 +- ... correspondent-edit-dialog.component.scss} | 0 .../correspondent-edit-dialog.component.ts | 2 +- ....css => correspondent-list.component.scss} | 0 .../correspondent-list.component.ts | 2 +- ... document-type-edit-dialog.component.scss} | 0 .../document-type-edit-dialog.component.ts | 2 +- ....css => document-type-list.component.scss} | 0 .../document-type-list.component.ts | 2 +- ...logs.component.css => logs.component.scss} | 0 .../components/manage/logs/logs.component.ts | 2 +- ....component.css => settings.component.scss} | 0 .../manage/settings/settings.component.ts | 2 +- ...ent.css => tag-edit-dialog.component.scss} | 0 .../tag-edit-dialog.component.ts | 2 +- ....component.css => tag-list.component.scss} | 0 .../manage/tag-list/tag-list.component.ts | 2 +- ...component.css => not-found.component.scss} | 0 .../not-found/not-found.component.ts | 2 +- ...t.css => result-hightlight.component.scss} | 0 .../result-hightlight.component.ts | 2 +- ...ch.component.css => search.component.scss} | 0 .../app/components/search/search.component.ts | 2 +- src-ui/src/{styles.css => styles.scss} | 2 + 60 files changed, 160 insertions(+), 154 deletions(-) rename src-ui/src/app/{app.component.css => app.component.scss} (100%) rename src-ui/src/app/components/app-frame/{app-frame.component.css => app-frame.component.scss} (100%) rename src-ui/src/app/components/common/delete-dialog/{delete-dialog.component.css => delete-dialog.component.scss} (100%) rename src-ui/src/app/components/common/input/check/{check.component.css => check.component.scss} (100%) rename src-ui/src/app/components/common/input/date-time/{date-time.component.css => date-time.component.scss} (100%) rename src-ui/src/app/components/common/input/select/{select.component.css => select.component.scss} (100%) rename src-ui/src/app/components/common/input/tags/{tags.component.css => tags.component.scss} (100%) rename src-ui/src/app/components/common/input/text/{text.component.css => text.component.scss} (100%) rename src-ui/src/app/components/common/page-header/{page-header.component.css => page-header.component.scss} (100%) rename src-ui/src/app/components/common/tag/{tag.component.css => tag.component.scss} (100%) rename src-ui/src/app/components/common/toasts/{toasts.component.css => toasts.component.scss} (100%) rename src-ui/src/app/components/dashboard/{dashboard.component.css => dashboard.component.scss} (100%) rename src-ui/src/app/components/document-detail/{document-detail.component.css => document-detail.component.scss} (100%) rename src-ui/src/app/components/document-list/document-card-large/{document-card-large.component.css => document-card-large.component.scss} (100%) rename src-ui/src/app/components/document-list/document-card-small/{document-card-small.component.css => document-card-small.component.scss} (100%) rename src-ui/src/app/components/document-list/{document-list.component.css => document-list.component.scss} (100%) rename src-ui/src/app/components/document-list/save-view-config-dialog/{save-view-config-dialog.component.css => save-view-config-dialog.component.scss} (100%) rename src-ui/src/app/components/filter-editor/{filter-editor.component.css => filter-editor.component.scss} (100%) rename src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/{correspondent-edit-dialog.component.css => correspondent-edit-dialog.component.scss} (100%) rename src-ui/src/app/components/manage/correspondent-list/{correspondent-list.component.css => correspondent-list.component.scss} (100%) rename src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/{document-type-edit-dialog.component.css => document-type-edit-dialog.component.scss} (100%) rename src-ui/src/app/components/manage/document-type-list/{document-type-list.component.css => document-type-list.component.scss} (100%) rename src-ui/src/app/components/manage/logs/{logs.component.css => logs.component.scss} (100%) rename src-ui/src/app/components/manage/settings/{settings.component.css => settings.component.scss} (100%) rename src-ui/src/app/components/manage/tag-list/tag-edit-dialog/{tag-edit-dialog.component.css => tag-edit-dialog.component.scss} (100%) rename src-ui/src/app/components/manage/tag-list/{tag-list.component.css => tag-list.component.scss} (100%) rename src-ui/src/app/components/not-found/{not-found.component.css => not-found.component.scss} (100%) rename src-ui/src/app/components/search/result-hightlight/{result-hightlight.component.css => result-hightlight.component.scss} (100%) rename src-ui/src/app/components/search/{search.component.css => search.component.scss} (100%) rename src-ui/src/{styles.css => styles.scss} (99%) diff --git a/src-ui/angular.json b/src-ui/angular.json index aca54b8e..2ff1bb3b 100644 --- a/src-ui/angular.json +++ b/src-ui/angular.json @@ -1,126 +1,130 @@ { - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, - "newProjectRoot": "projects", - "projects": { - "paperless-ui": { - "projectType": "application", - "schematics": {}, - "root": "", - "sourceRoot": "src", - "prefix": "app", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:browser", - "options": { - "outputPath": "dist/paperless-ui", - "outputHashing": "none", - "index": "src/index.html", - "main": "src/main.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "tsconfig.app.json", - "aot": true, - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "node_modules/bootstrap/dist/css/bootstrap.min.css", - "src/styles.css" - ], - "scripts": [] - }, - "configurations": { - "production": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ], - "optimization": true, - "outputHashing": "none", - "sourceMap": false, - "extractCss": true, - "namedChunks": false, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, - "budgets": [ - { - "type": "initial", - "maximumWarning": "2mb", - "maximumError": "5mb" - }, - { - "type": "anyComponentStyle", - "maximumWarning": "6kb", - "maximumError": "10kb" - } - ] - } - } - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "options": { - "browserTarget": "paperless-ui:build" - }, - "configurations": { - "production": { - "browserTarget": "paperless-ui:build:production" - } - } - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "browserTarget": "paperless-ui:build" - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "src/test.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "tsconfig.spec.json", - "karmaConfig": "karma.conf.js", - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "src/styles.css" - ], - "scripts": [] - } - }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": [ - "tsconfig.app.json", - "tsconfig.spec.json", - "e2e/tsconfig.json" - ], - "exclude": [ - "**/node_modules/**" - ] - } - }, - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "e2e/protractor.conf.js", - "devServerTarget": "paperless-ui:serve" - }, - "configurations": { - "production": { - "devServerTarget": "paperless-ui:serve:production" - } - } - } - } - }}, - "defaultProject": "paperless-ui" -} + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "paperless-ui": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/paperless-ui", + "outputHashing": "none", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "aot": true, + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "none", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "6kb", + "maximumError": "10kb" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "paperless-ui:build" + }, + "configurations": { + "production": { + "browserTarget": "paperless-ui:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "paperless-ui:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "tsconfig.app.json", + "tsconfig.spec.json", + "e2e/tsconfig.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "paperless-ui:serve" + }, + "configurations": { + "production": { + "devServerTarget": "paperless-ui:serve:production" + } + } + } + } + } + }, + "defaultProject": "paperless-ui" +} \ No newline at end of file diff --git a/src-ui/src/app/app.component.css b/src-ui/src/app/app.component.scss similarity index 100% rename from src-ui/src/app/app.component.css rename to src-ui/src/app/app.component.scss diff --git a/src-ui/src/app/app.component.ts b/src-ui/src/app/app.component.ts index a6cd8beb..84c173a1 100644 --- a/src-ui/src/app/app.component.ts +++ b/src-ui/src/app/app.component.ts @@ -3,7 +3,7 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] + styleUrls: ['./app.component.scss'] }) export class AppComponent { diff --git a/src-ui/src/app/components/app-frame/app-frame.component.css b/src-ui/src/app/components/app-frame/app-frame.component.scss similarity index 100% rename from src-ui/src/app/components/app-frame/app-frame.component.css rename to src-ui/src/app/components/app-frame/app-frame.component.scss diff --git a/src-ui/src/app/components/app-frame/app-frame.component.ts b/src-ui/src/app/components/app-frame/app-frame.component.ts index be72ad46..a7755ffe 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.ts +++ b/src-ui/src/app/components/app-frame/app-frame.component.ts @@ -12,7 +12,7 @@ import { DocumentDetailComponent } from '../document-detail/document-detail.comp @Component({ selector: 'app-app-frame', templateUrl: './app-frame.component.html', - styleUrls: ['./app-frame.component.css'] + styleUrls: ['./app-frame.component.scss'] }) export class AppFrameComponent implements OnInit, OnDestroy { diff --git a/src-ui/src/app/components/common/delete-dialog/delete-dialog.component.css b/src-ui/src/app/components/common/delete-dialog/delete-dialog.component.scss similarity index 100% rename from src-ui/src/app/components/common/delete-dialog/delete-dialog.component.css rename to src-ui/src/app/components/common/delete-dialog/delete-dialog.component.scss diff --git a/src-ui/src/app/components/common/delete-dialog/delete-dialog.component.ts b/src-ui/src/app/components/common/delete-dialog/delete-dialog.component.ts index dd00b45f..20114c78 100644 --- a/src-ui/src/app/components/common/delete-dialog/delete-dialog.component.ts +++ b/src-ui/src/app/components/common/delete-dialog/delete-dialog.component.ts @@ -4,7 +4,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; @Component({ selector: 'app-delete-dialog', templateUrl: './delete-dialog.component.html', - styleUrls: ['./delete-dialog.component.css'] + styleUrls: ['./delete-dialog.component.scss'] }) export class DeleteDialogComponent implements OnInit { diff --git a/src-ui/src/app/components/common/input/check/check.component.css b/src-ui/src/app/components/common/input/check/check.component.scss similarity index 100% rename from src-ui/src/app/components/common/input/check/check.component.css rename to src-ui/src/app/components/common/input/check/check.component.scss diff --git a/src-ui/src/app/components/common/input/check/check.component.ts b/src-ui/src/app/components/common/input/check/check.component.ts index 28b7ea4d..de0b9a0d 100644 --- a/src-ui/src/app/components/common/input/check/check.component.ts +++ b/src-ui/src/app/components/common/input/check/check.component.ts @@ -11,7 +11,7 @@ import { AbstractInputComponent } from '../abstract-input'; }], selector: 'app-input-check', templateUrl: './check.component.html', - styleUrls: ['./check.component.css'] + styleUrls: ['./check.component.scss'] }) export class CheckComponent extends AbstractInputComponent { diff --git a/src-ui/src/app/components/common/input/date-time/date-time.component.css b/src-ui/src/app/components/common/input/date-time/date-time.component.scss similarity index 100% rename from src-ui/src/app/components/common/input/date-time/date-time.component.css rename to src-ui/src/app/components/common/input/date-time/date-time.component.scss diff --git a/src-ui/src/app/components/common/input/date-time/date-time.component.ts b/src-ui/src/app/components/common/input/date-time/date-time.component.ts index f8b66133..07238e94 100644 --- a/src-ui/src/app/components/common/input/date-time/date-time.component.ts +++ b/src-ui/src/app/components/common/input/date-time/date-time.component.ts @@ -11,7 +11,7 @@ import { AbstractInputComponent } from '../abstract-input'; }], selector: 'app-input-date-time', templateUrl: './date-time.component.html', - styleUrls: ['./date-time.component.css'] + styleUrls: ['./date-time.component.scss'] }) export class DateTimeComponent implements OnInit,ControlValueAccessor { diff --git a/src-ui/src/app/components/common/input/select/select.component.css b/src-ui/src/app/components/common/input/select/select.component.scss similarity index 100% rename from src-ui/src/app/components/common/input/select/select.component.css rename to src-ui/src/app/components/common/input/select/select.component.scss diff --git a/src-ui/src/app/components/common/input/select/select.component.ts b/src-ui/src/app/components/common/input/select/select.component.ts index c8e21372..e6e02ac8 100644 --- a/src-ui/src/app/components/common/input/select/select.component.ts +++ b/src-ui/src/app/components/common/input/select/select.component.ts @@ -10,7 +10,7 @@ import { AbstractInputComponent } from '../abstract-input'; }], selector: 'app-input-select', templateUrl: './select.component.html', - styleUrls: ['./select.component.css'] + styleUrls: ['./select.component.scss'] }) export class SelectComponent extends AbstractInputComponent { diff --git a/src-ui/src/app/components/common/input/tags/tags.component.css b/src-ui/src/app/components/common/input/tags/tags.component.scss similarity index 100% rename from src-ui/src/app/components/common/input/tags/tags.component.css rename to src-ui/src/app/components/common/input/tags/tags.component.scss diff --git a/src-ui/src/app/components/common/input/tags/tags.component.ts b/src-ui/src/app/components/common/input/tags/tags.component.ts index dd57d8e5..81bd9d47 100644 --- a/src-ui/src/app/components/common/input/tags/tags.component.ts +++ b/src-ui/src/app/components/common/input/tags/tags.component.ts @@ -15,7 +15,7 @@ import { TagService } from 'src/app/services/rest/tag.service'; }], selector: 'app-input-tags', templateUrl: './tags.component.html', - styleUrls: ['./tags.component.css'] + styleUrls: ['./tags.component.scss'] }) export class TagsComponent implements OnInit, ControlValueAccessor { diff --git a/src-ui/src/app/components/common/input/text/text.component.css b/src-ui/src/app/components/common/input/text/text.component.scss similarity index 100% rename from src-ui/src/app/components/common/input/text/text.component.css rename to src-ui/src/app/components/common/input/text/text.component.scss diff --git a/src-ui/src/app/components/common/input/text/text.component.ts b/src-ui/src/app/components/common/input/text/text.component.ts index d4dc1c58..ffb8c0c3 100644 --- a/src-ui/src/app/components/common/input/text/text.component.ts +++ b/src-ui/src/app/components/common/input/text/text.component.ts @@ -11,7 +11,7 @@ import { AbstractInputComponent } from '../abstract-input'; }], selector: 'app-input-text', templateUrl: './text.component.html', - styleUrls: ['./text.component.css'] + styleUrls: ['./text.component.scss'] }) export class TextComponent extends AbstractInputComponent { diff --git a/src-ui/src/app/components/common/page-header/page-header.component.css b/src-ui/src/app/components/common/page-header/page-header.component.scss similarity index 100% rename from src-ui/src/app/components/common/page-header/page-header.component.css rename to src-ui/src/app/components/common/page-header/page-header.component.scss diff --git a/src-ui/src/app/components/common/page-header/page-header.component.ts b/src-ui/src/app/components/common/page-header/page-header.component.ts index 6046a645..d1218ec8 100644 --- a/src-ui/src/app/components/common/page-header/page-header.component.ts +++ b/src-ui/src/app/components/common/page-header/page-header.component.ts @@ -3,7 +3,7 @@ import { Component, Input, OnInit } from '@angular/core'; @Component({ selector: 'app-page-header', templateUrl: './page-header.component.html', - styleUrls: ['./page-header.component.css'] + styleUrls: ['./page-header.component.scss'] }) export class PageHeaderComponent implements OnInit { diff --git a/src-ui/src/app/components/common/tag/tag.component.css b/src-ui/src/app/components/common/tag/tag.component.scss similarity index 100% rename from src-ui/src/app/components/common/tag/tag.component.css rename to src-ui/src/app/components/common/tag/tag.component.scss diff --git a/src-ui/src/app/components/common/tag/tag.component.ts b/src-ui/src/app/components/common/tag/tag.component.ts index a7f81fa0..ec59e86f 100644 --- a/src-ui/src/app/components/common/tag/tag.component.ts +++ b/src-ui/src/app/components/common/tag/tag.component.ts @@ -4,7 +4,7 @@ import { TAG_COLOURS, PaperlessTag } from 'src/app/data/paperless-tag'; @Component({ selector: 'app-tag', templateUrl: './tag.component.html', - styleUrls: ['./tag.component.css'] + styleUrls: ['./tag.component.scss'] }) export class TagComponent implements OnInit { diff --git a/src-ui/src/app/components/common/toasts/toasts.component.css b/src-ui/src/app/components/common/toasts/toasts.component.scss similarity index 100% rename from src-ui/src/app/components/common/toasts/toasts.component.css rename to src-ui/src/app/components/common/toasts/toasts.component.scss diff --git a/src-ui/src/app/components/common/toasts/toasts.component.ts b/src-ui/src/app/components/common/toasts/toasts.component.ts index 53abf1f1..8f142646 100644 --- a/src-ui/src/app/components/common/toasts/toasts.component.ts +++ b/src-ui/src/app/components/common/toasts/toasts.component.ts @@ -5,7 +5,7 @@ import { Toast, ToastService } from 'src/app/services/toast.service'; @Component({ selector: 'app-toasts', templateUrl: './toasts.component.html', - styleUrls: ['./toasts.component.css'] + styleUrls: ['./toasts.component.scss'] }) export class ToastsComponent implements OnInit, OnDestroy { diff --git a/src-ui/src/app/components/dashboard/dashboard.component.css b/src-ui/src/app/components/dashboard/dashboard.component.scss similarity index 100% rename from src-ui/src/app/components/dashboard/dashboard.component.css rename to src-ui/src/app/components/dashboard/dashboard.component.scss diff --git a/src-ui/src/app/components/dashboard/dashboard.component.ts b/src-ui/src/app/components/dashboard/dashboard.component.ts index f8d5fb0a..5bedf638 100644 --- a/src-ui/src/app/components/dashboard/dashboard.component.ts +++ b/src-ui/src/app/components/dashboard/dashboard.component.ts @@ -15,7 +15,7 @@ export interface Statistics { @Component({ selector: 'app-dashboard', templateUrl: './dashboard.component.html', - styleUrls: ['./dashboard.component.css'] + styleUrls: ['./dashboard.component.scss'] }) export class DashboardComponent implements OnInit { diff --git a/src-ui/src/app/components/document-detail/document-detail.component.css b/src-ui/src/app/components/document-detail/document-detail.component.scss similarity index 100% rename from src-ui/src/app/components/document-detail/document-detail.component.css rename to src-ui/src/app/components/document-detail/document-detail.component.scss diff --git a/src-ui/src/app/components/document-detail/document-detail.component.ts b/src-ui/src/app/components/document-detail/document-detail.component.ts index e8744570..00b840b4 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.ts +++ b/src-ui/src/app/components/document-detail/document-detail.component.ts @@ -21,7 +21,7 @@ import { TagEditDialogComponent } from '../manage/tag-list/tag-edit-dialog/tag-e @Component({ selector: 'app-document-detail', templateUrl: './document-detail.component.html', - styleUrls: ['./document-detail.component.css'] + styleUrls: ['./document-detail.component.scss'] }) export class DocumentDetailComponent implements OnInit { diff --git a/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.css b/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.scss similarity index 100% rename from src-ui/src/app/components/document-list/document-card-large/document-card-large.component.css rename to src-ui/src/app/components/document-list/document-card-large/document-card-large.component.scss diff --git a/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.ts b/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.ts index c05b1f03..1c1e110c 100644 --- a/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.ts +++ b/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.ts @@ -6,7 +6,7 @@ import { DocumentService } from 'src/app/services/rest/document.service'; @Component({ selector: 'app-document-card-large', templateUrl: './document-card-large.component.html', - styleUrls: ['./document-card-large.component.css'] + styleUrls: ['./document-card-large.component.scss'] }) export class DocumentCardLargeComponent implements OnInit { diff --git a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.css b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.scss similarity index 100% rename from src-ui/src/app/components/document-list/document-card-small/document-card-small.component.css rename to src-ui/src/app/components/document-list/document-card-small/document-card-small.component.scss diff --git a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts index 939f28bf..1ca9847b 100644 --- a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts +++ b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts @@ -5,7 +5,7 @@ import { DocumentService } from 'src/app/services/rest/document.service'; @Component({ selector: 'app-document-card-small', templateUrl: './document-card-small.component.html', - styleUrls: ['./document-card-small.component.css'] + styleUrls: ['./document-card-small.component.scss'] }) export class DocumentCardSmallComponent implements OnInit { diff --git a/src-ui/src/app/components/document-list/document-list.component.css b/src-ui/src/app/components/document-list/document-list.component.scss similarity index 100% rename from src-ui/src/app/components/document-list/document-list.component.css rename to src-ui/src/app/components/document-list/document-list.component.scss diff --git a/src-ui/src/app/components/document-list/document-list.component.ts b/src-ui/src/app/components/document-list/document-list.component.ts index 2ea2c9e3..2b155c34 100644 --- a/src-ui/src/app/components/document-list/document-list.component.ts +++ b/src-ui/src/app/components/document-list/document-list.component.ts @@ -11,7 +11,7 @@ import { SaveViewConfigDialogComponent } from './save-view-config-dialog/save-vi @Component({ selector: 'app-document-list', templateUrl: './document-list.component.html', - styleUrls: ['./document-list.component.css'] + styleUrls: ['./document-list.component.scss'] }) export class DocumentListComponent implements OnInit { diff --git a/src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.css b/src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.scss similarity index 100% rename from src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.css rename to src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.scss diff --git a/src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.ts b/src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.ts index 6fcdbd2c..0dd35177 100644 --- a/src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.ts +++ b/src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.ts @@ -5,7 +5,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; @Component({ selector: 'app-save-view-config-dialog', templateUrl: './save-view-config-dialog.component.html', - styleUrls: ['./save-view-config-dialog.component.css'] + styleUrls: ['./save-view-config-dialog.component.scss'] }) export class SaveViewConfigDialogComponent implements OnInit { diff --git a/src-ui/src/app/components/filter-editor/filter-editor.component.css b/src-ui/src/app/components/filter-editor/filter-editor.component.scss similarity index 100% rename from src-ui/src/app/components/filter-editor/filter-editor.component.css rename to src-ui/src/app/components/filter-editor/filter-editor.component.scss diff --git a/src-ui/src/app/components/filter-editor/filter-editor.component.ts b/src-ui/src/app/components/filter-editor/filter-editor.component.ts index dc23450c..9a104c46 100644 --- a/src-ui/src/app/components/filter-editor/filter-editor.component.ts +++ b/src-ui/src/app/components/filter-editor/filter-editor.component.ts @@ -12,7 +12,7 @@ import { TagService } from 'src/app/services/rest/tag.service'; @Component({ selector: 'app-filter-editor', templateUrl: './filter-editor.component.html', - styleUrls: ['./filter-editor.component.css'] + styleUrls: ['./filter-editor.component.scss'] }) export class FilterEditorComponent implements OnInit { diff --git a/src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.css b/src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.scss similarity index 100% rename from src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.css rename to src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.scss diff --git a/src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.ts b/src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.ts index f3f76804..855fc159 100644 --- a/src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.ts +++ b/src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.ts @@ -9,7 +9,7 @@ import { ToastService } from 'src/app/services/toast.service'; @Component({ selector: 'app-correspondent-edit-dialog', templateUrl: './correspondent-edit-dialog.component.html', - styleUrls: ['./correspondent-edit-dialog.component.css'] + styleUrls: ['./correspondent-edit-dialog.component.scss'] }) export class CorrespondentEditDialogComponent extends EditDialogComponent { diff --git a/src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.css b/src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.scss similarity index 100% rename from src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.css rename to src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.scss diff --git a/src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.ts b/src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.ts index f867a10e..83aa5d2c 100644 --- a/src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.ts +++ b/src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.ts @@ -8,7 +8,7 @@ import { CorrespondentEditDialogComponent } from './correspondent-edit-dialog/co @Component({ selector: 'app-correspondent-list', templateUrl: './correspondent-list.component.html', - styleUrls: ['./correspondent-list.component.css'] + styleUrls: ['./correspondent-list.component.scss'] }) export class CorrespondentListComponent extends GenericListComponent { diff --git a/src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.css b/src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.scss similarity index 100% rename from src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.css rename to src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.scss diff --git a/src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.ts b/src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.ts index 88b7d6da..087eede8 100644 --- a/src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.ts +++ b/src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.ts @@ -9,7 +9,7 @@ import { ToastService } from 'src/app/services/toast.service'; @Component({ selector: 'app-document-type-edit-dialog', templateUrl: './document-type-edit-dialog.component.html', - styleUrls: ['./document-type-edit-dialog.component.css'] + styleUrls: ['./document-type-edit-dialog.component.scss'] }) export class DocumentTypeEditDialogComponent extends EditDialogComponent { diff --git a/src-ui/src/app/components/manage/document-type-list/document-type-list.component.css b/src-ui/src/app/components/manage/document-type-list/document-type-list.component.scss similarity index 100% rename from src-ui/src/app/components/manage/document-type-list/document-type-list.component.css rename to src-ui/src/app/components/manage/document-type-list/document-type-list.component.scss diff --git a/src-ui/src/app/components/manage/document-type-list/document-type-list.component.ts b/src-ui/src/app/components/manage/document-type-list/document-type-list.component.ts index ae502efc..733d2c44 100644 --- a/src-ui/src/app/components/manage/document-type-list/document-type-list.component.ts +++ b/src-ui/src/app/components/manage/document-type-list/document-type-list.component.ts @@ -8,7 +8,7 @@ import { DocumentTypeEditDialogComponent } from './document-type-edit-dialog/doc @Component({ selector: 'app-document-type-list', templateUrl: './document-type-list.component.html', - styleUrls: ['./document-type-list.component.css'] + styleUrls: ['./document-type-list.component.scss'] }) export class DocumentTypeListComponent extends GenericListComponent { diff --git a/src-ui/src/app/components/manage/logs/logs.component.css b/src-ui/src/app/components/manage/logs/logs.component.scss similarity index 100% rename from src-ui/src/app/components/manage/logs/logs.component.css rename to src-ui/src/app/components/manage/logs/logs.component.scss diff --git a/src-ui/src/app/components/manage/logs/logs.component.ts b/src-ui/src/app/components/manage/logs/logs.component.ts index f80aada2..d52b90a5 100644 --- a/src-ui/src/app/components/manage/logs/logs.component.ts +++ b/src-ui/src/app/components/manage/logs/logs.component.ts @@ -6,7 +6,7 @@ import { LogService } from 'src/app/services/rest/log.service'; @Component({ selector: 'app-logs', templateUrl: './logs.component.html', - styleUrls: ['./logs.component.css'] + styleUrls: ['./logs.component.scss'] }) export class LogsComponent implements OnInit { diff --git a/src-ui/src/app/components/manage/settings/settings.component.css b/src-ui/src/app/components/manage/settings/settings.component.scss similarity index 100% rename from src-ui/src/app/components/manage/settings/settings.component.css rename to src-ui/src/app/components/manage/settings/settings.component.scss diff --git a/src-ui/src/app/components/manage/settings/settings.component.ts b/src-ui/src/app/components/manage/settings/settings.component.ts index e14c2bd7..1b93268f 100644 --- a/src-ui/src/app/components/manage/settings/settings.component.ts +++ b/src-ui/src/app/components/manage/settings/settings.component.ts @@ -8,7 +8,7 @@ import { SavedViewConfigService } from 'src/app/services/saved-view-config.servi @Component({ selector: 'app-settings', templateUrl: './settings.component.html', - styleUrls: ['./settings.component.css'] + styleUrls: ['./settings.component.scss'] }) export class SettingsComponent implements OnInit { diff --git a/src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.css b/src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.scss similarity index 100% rename from src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.css rename to src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.scss diff --git a/src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts b/src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts index 7aee39e7..bb016260 100644 --- a/src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts +++ b/src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts @@ -9,7 +9,7 @@ import { ToastService } from 'src/app/services/toast.service'; @Component({ selector: 'app-tag-edit-dialog', templateUrl: './tag-edit-dialog.component.html', - styleUrls: ['./tag-edit-dialog.component.css'] + styleUrls: ['./tag-edit-dialog.component.scss'] }) export class TagEditDialogComponent extends EditDialogComponent { diff --git a/src-ui/src/app/components/manage/tag-list/tag-list.component.css b/src-ui/src/app/components/manage/tag-list/tag-list.component.scss similarity index 100% rename from src-ui/src/app/components/manage/tag-list/tag-list.component.css rename to src-ui/src/app/components/manage/tag-list/tag-list.component.scss diff --git a/src-ui/src/app/components/manage/tag-list/tag-list.component.ts b/src-ui/src/app/components/manage/tag-list/tag-list.component.ts index 88fc03a5..761a9484 100644 --- a/src-ui/src/app/components/manage/tag-list/tag-list.component.ts +++ b/src-ui/src/app/components/manage/tag-list/tag-list.component.ts @@ -9,7 +9,7 @@ import { TagEditDialogComponent } from './tag-edit-dialog/tag-edit-dialog.compon @Component({ selector: 'app-tag-list', templateUrl: './tag-list.component.html', - styleUrls: ['./tag-list.component.css'] + styleUrls: ['./tag-list.component.scss'] }) export class TagListComponent extends GenericListComponent { diff --git a/src-ui/src/app/components/not-found/not-found.component.css b/src-ui/src/app/components/not-found/not-found.component.scss similarity index 100% rename from src-ui/src/app/components/not-found/not-found.component.css rename to src-ui/src/app/components/not-found/not-found.component.scss diff --git a/src-ui/src/app/components/not-found/not-found.component.ts b/src-ui/src/app/components/not-found/not-found.component.ts index 33da0a49..7cb4124f 100644 --- a/src-ui/src/app/components/not-found/not-found.component.ts +++ b/src-ui/src/app/components/not-found/not-found.component.ts @@ -3,7 +3,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-not-found', templateUrl: './not-found.component.html', - styleUrls: ['./not-found.component.css'] + styleUrls: ['./not-found.component.scss'] }) export class NotFoundComponent implements OnInit { diff --git a/src-ui/src/app/components/search/result-hightlight/result-hightlight.component.css b/src-ui/src/app/components/search/result-hightlight/result-hightlight.component.scss similarity index 100% rename from src-ui/src/app/components/search/result-hightlight/result-hightlight.component.css rename to src-ui/src/app/components/search/result-hightlight/result-hightlight.component.scss diff --git a/src-ui/src/app/components/search/result-hightlight/result-hightlight.component.ts b/src-ui/src/app/components/search/result-hightlight/result-hightlight.component.ts index 0f20c93c..cd37448e 100644 --- a/src-ui/src/app/components/search/result-hightlight/result-hightlight.component.ts +++ b/src-ui/src/app/components/search/result-hightlight/result-hightlight.component.ts @@ -4,7 +4,7 @@ import { SearchHitHighlight } from 'src/app/data/search-result'; @Component({ selector: 'app-result-hightlight', templateUrl: './result-hightlight.component.html', - styleUrls: ['./result-hightlight.component.css'] + styleUrls: ['./result-hightlight.component.scss'] }) export class ResultHightlightComponent implements OnInit { diff --git a/src-ui/src/app/components/search/search.component.css b/src-ui/src/app/components/search/search.component.scss similarity index 100% rename from src-ui/src/app/components/search/search.component.css rename to src-ui/src/app/components/search/search.component.scss diff --git a/src-ui/src/app/components/search/search.component.ts b/src-ui/src/app/components/search/search.component.ts index bd15611c..f8c5d6cd 100644 --- a/src-ui/src/app/components/search/search.component.ts +++ b/src-ui/src/app/components/search/search.component.ts @@ -6,7 +6,7 @@ import { SearchService } from 'src/app/services/rest/search.service'; @Component({ selector: 'app-search', templateUrl: './search.component.html', - styleUrls: ['./search.component.css'] + styleUrls: ['./search.component.scss'] }) export class SearchComponent implements OnInit { diff --git a/src-ui/src/styles.css b/src-ui/src/styles.scss similarity index 99% rename from src-ui/src/styles.css rename to src-ui/src/styles.scss index c7849912..454f7d22 100644 --- a/src-ui/src/styles.css +++ b/src-ui/src/styles.scss @@ -1,3 +1,5 @@ +@import "bootstrap"; + .toolbaricon { width: 1.2em; From 8650af05f7632d998b789cbf18c8787933e18dae Mon Sep 17 00:00:00 2001 From: Jonas Winkler Date: Sun, 22 Nov 2020 16:33:26 +0100 Subject: [PATCH 10/25] many layout and theme changes --- .../app-frame/app-frame.component.html | 24 +++-- .../app-frame/app-frame.component.scss | 9 +- .../common/input/check/check.component.html | 6 +- .../page-header/page-header.component.html | 5 +- .../page-header/page-header.component.ts | 3 + .../dashboard/dashboard.component.html | 94 ++++++++++++------- .../document-detail.component.html | 4 +- .../document-list.component.html | 18 ++-- .../correspondent-list.component.html | 2 +- .../document-type-list.component.html | 2 +- .../manage/logs/logs.component.html | 2 +- .../manage/tag-list/tag-list.component.html | 2 +- src-ui/src/index.html | 2 +- src-ui/src/styles.scss | 9 +- src-ui/src/theme.scss | 6 ++ 15 files changed, 114 insertions(+), 74 deletions(-) create mode 100644 src-ui/src/theme.scss diff --git a/src-ui/src/app/components/app-frame/app-frame.component.html b/src-ui/src/app/components/app-frame/app-frame.component.html index 1232ecf1..05289bec 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.html +++ b/src-ui/src/app/components/app-frame/app-frame.component.html @@ -1,24 +1,14 @@ -