diff --git a/README.md b/README.md index e59535af4..45c71ab67 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ [![ci](https://github.com/jonaswinkler/paperless-ng/workflows/ci/badge.svg)](https://github.com/jonaswinkler/paperless-ng/actions) ![Ansible Role](https://github.com/jonaswinkler/paperless-ng/workflows/Ansible%20Role/badge.svg) +[![Crowdin](https://badges.crowdin.net/paperless-ng/localized.svg)](https://crowdin.com/project/paperless-ng) [![Documentation Status](https://readthedocs.org/projects/paperless-ng/badge/?version=latest)](https://paperless-ng.readthedocs.io/en/latest/?badge=latest) [![Gitter](https://badges.gitter.im/paperless-ng/community.svg)](https://gitter.im/paperless-ng/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Docker Hub Pulls](https://img.shields.io/docker/pulls/jonaswinkler/paperless-ng.svg)](https://hub.docker.com/r/jonaswinkler/paperless-ng) @@ -77,9 +78,9 @@ The documentation for Paperless-ng is available on [ReadTheDocs](https://paperle # Translation -Paperless is currently available in English, German, Dutch, French, and Portuguese. +Paperless is currently available in English, German, Dutch, French, Portuguese, Italian, and Romanian. -There's an active translation project at transifex! If you want to help out by translating paperless into your language, please head over to https://github.com/jonaswinkler/paperless-ng/issues/212 for details. +There's an active translation project at crowdin! If you want to help out by translating paperless into your language, please head over to https://github.com/jonaswinkler/paperless-ng/issues/212 for details. # Feature Requests diff --git a/install-paperless-ng.sh b/install-paperless-ng.sh index 8fb44e222..c550d253c 100755 --- a/install-paperless-ng.sh +++ b/install-paperless-ng.sh @@ -1,7 +1,5 @@ #!/bin/bash -set -e - ask() { while true ; do if [[ -z $3 ]] ; then @@ -64,6 +62,19 @@ if [[ -z $(which docker-compose) ]] ; then exit 1 fi +# Check if user has permissions to run Docker by trying to get the status of Docker (docker status). +# If this fails, the user probably does not have permissions for Docker. +docker stats --no-stream 2>/dev/null 1>&2 +if [ $? -ne 0 ] ; then + echo "" + echo "WARN: It look like the current user does not have Docker permissions." + echo "WARN: Use 'sudo usermod -aG docker $USER' to assign Docker permissions to the user." + echo "" + sleep 3 +fi + +set -e + echo "" echo "############################################" echo "### Paperless-ng docker installation ###" diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index 7049f88ae..4b0456899 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -1043,63 +1043,77 @@ Title src/app/components/document-list/filter-editor/filter-editor.component.ts - 73 + 77 Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 74 + 78 + + + + ASN + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 79 Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 32 + 33 Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 34 + 35 Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 39 + 40 Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 41 + 42 Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 45 + 46 Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 49 + 50 Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 53 + 54 + + + + ASN: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 57 @@ -1826,13 +1840,6 @@ 39 - - ASN - - src/app/services/rest/document.service.ts - 17 - - Correspondent diff --git a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts index 3ac9df1ff..43387c08f 100644 --- a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts +++ b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts @@ -8,12 +8,13 @@ import { DocumentTypeService } from 'src/app/services/rest/document-type.service import { TagService } from 'src/app/services/rest/tag.service'; import { CorrespondentService } from 'src/app/services/rest/correspondent.service'; import { FilterRule } from 'src/app/data/filter-rule'; -import { FILTER_ADDED_AFTER, FILTER_ADDED_BEFORE, FILTER_CORRESPONDENT, FILTER_CREATED_AFTER, FILTER_CREATED_BEFORE, FILTER_DOCUMENT_TYPE, FILTER_HAS_ANY_TAG, FILTER_HAS_TAG, FILTER_TITLE, FILTER_TITLE_CONTENT } from 'src/app/data/filter-rule-type'; +import { FILTER_ADDED_AFTER, FILTER_ADDED_BEFORE, FILTER_ASN, FILTER_CORRESPONDENT, FILTER_CREATED_AFTER, FILTER_CREATED_BEFORE, FILTER_DOCUMENT_TYPE, FILTER_HAS_ANY_TAG, FILTER_HAS_TAG, FILTER_TITLE, FILTER_TITLE_CONTENT } from 'src/app/data/filter-rule-type'; import { FilterableDropdownSelectionModel } from '../../common/filterable-dropdown/filterable-dropdown.component'; import { ToggleableItemState } from '../../common/filterable-dropdown/toggleable-dropdown-button/toggleable-dropdown-button.component'; const TEXT_FILTER_TARGET_TITLE = "title" const TEXT_FILTER_TARGET_TITLE_CONTENT = "title-content" +const TEXT_FILTER_TARGET_ASN = "asn" @Component({ selector: 'app-filter-editor', @@ -51,6 +52,9 @@ export class FilterEditorComponent implements OnInit, OnDestroy { case FILTER_TITLE: return $localize`Title: ${rule.value}` + + case FILTER_ASN: + return $localize`ASN: ${rule.value}` } } @@ -71,7 +75,8 @@ export class FilterEditorComponent implements OnInit, OnDestroy { textFilterTargets = [ {id: TEXT_FILTER_TARGET_TITLE, name: $localize`Title`}, - {id: TEXT_FILTER_TARGET_TITLE_CONTENT, name: $localize`Title & content`} + {id: TEXT_FILTER_TARGET_TITLE_CONTENT, name: $localize`Title & content`}, + {id: TEXT_FILTER_TARGET_ASN, name: $localize`ASN`} ] textFilterTarget = TEXT_FILTER_TARGET_TITLE_CONTENT @@ -111,6 +116,10 @@ export class FilterEditorComponent implements OnInit, OnDestroy { this._textFilter = rule.value this.textFilterTarget = TEXT_FILTER_TARGET_TITLE_CONTENT break + case FILTER_ASN: + this._textFilter = rule.value + this.textFilterTarget = TEXT_FILTER_TARGET_ASN + break case FILTER_CREATED_AFTER: this.dateCreatedAfter = rule.value break @@ -147,6 +156,9 @@ export class FilterEditorComponent implements OnInit, OnDestroy { if (this._textFilter && this.textFilterTarget == TEXT_FILTER_TARGET_TITLE) { filterRules.push({rule_type: FILTER_TITLE, value: this._textFilter}) } + if (this._textFilter && this.textFilterTarget == TEXT_FILTER_TARGET_ASN) { + filterRules.push({rule_type: FILTER_ASN, value: this._textFilter}) + } if (this.tagSelectionModel.isNoneSelected()) { filterRules.push({rule_type: FILTER_HAS_ANY_TAG, value: "false"}) } else {