diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 000000000..e047b54ed --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,91 @@ +name: Bug report +description: Something is not working +title: "[BUG] Concise description of the issue" +labels: ["bug", "unconfirmed"] +body: + - type: markdown + attributes: + value: | + Have a question? 👉 [Start a new discussion](https://github.com/paperless-ngx/paperless-ngx/discussions/new) or [ask in chat](https://matrix.to/#/#paperless:adnidor.de). + + Before opening an issue, please check [the documentation](https://paperless-ngx.readthedocs.io/en/latest/troubleshooting.html) and see if it helps you resolve your issue. Please also make sure that you followed the installation instructions. + + If you encounter issues while installing or configuring Paperless-ngx, please post in the ["Support" section of the discussions](https://github.com/paperless-ngx/paperless-ngx/discussions/new?category=support). Remember that Paperless successfully runs on a variety of different systems. If Paperless-ngx does not start, it's likely an issue with your system, not an issue of Paperless-ngx. + + Finally, please search issues and discussions before opening a new bug report. + - type: textarea + id: description + attributes: + label: Description + description: A clear and concise description of what the bug is. + placeholder: Currently... + validations: + required: true + - type: textarea + id: expected-behavior + attributes: + label: Expected behavior + description: A clear and concise description of what you expected to happen. + placeholder: In this situation... + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: Steps to reproduce + description: Steps to reproduce the behavior + placeholder: "1. Go to '...', 2. Click on '....', 3. See error" + validations: + required: true + - type: textarea + id: logs + attributes: + label: Webserver logs + description: If available, post any logs from the web server related to your issue. + render: bash + - type: textarea + id: screenshots + attributes: + label: Screenshots + description: If applicable, add screenshots to help explain your problem. + - type: input + id: version + attributes: + label: Paperless-ngx version + placeholder: e.g. 1.6.0 + validations: + required: true + - type: input + id: host-os + attributes: + label: Host OS + description: Host OS of the machine running paperless-ngx + placeholder: e.g. Archlinux / Ubuntu 20.04 + validations: + required: true + - type: dropdown + id: install-method + attributes: + label: Installation method + options: + - Docker + - Bare metal + - Other (please describe above) + validations: + required: true + - type: input + id: browser + attributes: + label: Browser + description: Which browser you are using, if relevant + placeholder: e.g. Chrome, Safari + - type: input + id: config-changes + attributes: + label: Configuration changes + description: Any configuration changes you made in `docker-compose.yml`, `docker-compose.env` or `paperless.conf`. + - type: input + id: other + attributes: + label: Other + description: Any other relevant details diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 8bc941ba7..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -name: Bug report -about: Something is not working -title: '[BUG] Concise description of the issue' -labels: '' -assignees: '' ---- - - - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: - -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Webserver logs** - -``` -If available, post any logs from the web server related to your issue. -``` - -**Relevant information** - -- Host OS of the machine running paperless: [e.g. Archlinux / Ubuntu 20.04] -- Browser [e.g. chrome, safari] -- Version [e.g. 1.0.0] -- Installation method: [docker / bare metal] -- Any configuration changes you made in `docker-compose.yml`, `docker-compose.env` or `paperless.conf`. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..b68154433 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: false +contact_links: + - name: 🤔 Questions and Help + url: https://github.com/paperless-ngx/paperless-ngx/discussions + about: This issue tracker is not for support questions. Please refer to our Discussions. + - name: 💬 Chat + url: https://matrix.to/#/#paperless:adnidor.de + about: Want to discuss Paperless-ngx with others? Check out our chat. + - name: 🚀 Feature Request + url: https://github.com/paperless-ngx/paperless-ngx/discussions/new?category=feature-requests + about: Remember to search for existing feature requests and "up-vote" any you like diff --git a/.github/ISSUE_TEMPLATE/other.md b/.github/ISSUE_TEMPLATE/other.md deleted file mode 100644 index 45cb35d5c..000000000 --- a/.github/ISSUE_TEMPLATE/other.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: Other -about: Anything that is not a feature request or bug. -title: '[Other] Title of your issue' -labels: '' -assignees: '' ---- - - diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index f5c9ebeb5..d3e2e165f 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -1,4 +1,7 @@ categories: + - title: 'Breaking Changes' + labels: + - 'breaking-change' - title: 'Features' labels: - 'enhancement' @@ -29,6 +32,6 @@ change-template: '- $TITLE @$AUTHOR (#$NUMBER)' change-title-escapes: '\<*_&#@' tag-prefix: "ngx-" template: | - ## Changelog + # Changelog $CHANGES diff --git a/.github/stale.yml b/.github/stale.yml index f5b193a8f..ef287a3fd 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -2,11 +2,8 @@ daysUntilStale: 30 # Number of days of inactivity before a stale issue is closed daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - pinned - - security - - fixpending +onlyLabels: + - unconfirmed # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ceabd191d..10b81bf79 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -185,6 +185,9 @@ jobs: # build and push image to docker hub. build-docker-image: if: github.event_name == 'push' && (startsWith(github.ref, 'refs/heads/feature-') || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/beta' || startsWith(github.ref, 'refs/tags/ngx-') || startsWith(github.ref, 'refs/tags/beta-')) + concurrency: + group: ${{ github.workflow }}-build-docker-image-${{ github.ref }} + cancel-in-progress: true runs-on: ubuntu-20.04 needs: [tests-backend, tests-frontend] steps: @@ -195,7 +198,6 @@ jobs: with: images: ghcr.io/${{ github.repository }} tags: | - type=match,pattern=ngx-(\d.\d.\d),group=1 type=ref,event=branch type=ref,event=tag - diff --git a/Dockerfile b/Dockerfile index 35aa767d7..8b46d072b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ WORKDIR /src/src-ui RUN npm update npm -g && npm ci --no-optional RUN ./node_modules/.bin/ng build --configuration production -FROM ghcr.io/paperless-ngx/builder/ngx-base:dev as main-app +FROM ghcr.io/paperless-ngx/builder/ngx-base:1.7.0 as main-app LABEL org.opencontainers.image.authors="paperless-ngx team " LABEL org.opencontainers.image.documentation="https://paperless-ngx.readthedocs.io/en/latest/" diff --git a/docker/compose/docker-compose.sqlite-tika.arm.yml b/docker/compose/docker-compose.sqlite-tika.arm.yml index d6ac848ec..16633fd1d 100644 --- a/docker/compose/docker-compose.sqlite-tika.arm.yml +++ b/docker/compose/docker-compose.sqlite-tika.arm.yml @@ -69,10 +69,11 @@ services: PAPERLESS_TIKA_ENDPOINT: http://tika:9998 gotenberg: - image: thecodingmachine/gotenberg + image: gotenberg/gotenberg:7 restart: unless-stopped - environment: - DISABLE_GOOGLE_CHROME: 1 + command: + - "gotenberg" + - "--chromium-disable-routes=true" tika: image: iwishiwasaneagle/apache-tika-arm@sha256:a78c25ffe57ecb1a194b2859d42a61af46e9e845191512b8f1a4bf90578ffdfd diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css new file mode 100644 index 000000000..3dbe0318f --- /dev/null +++ b/docs/_static/css/custom.css @@ -0,0 +1,592 @@ +/* Variables */ +:root { + --color-text-body: #5c5962; + --color-text-body-light: #fcfcfc; + --color-text-anchor: #7253ed; + --color-text-alt: rgba(0, 0, 0, 0.3); + --color-text-title: #27262b; + --color-text-code-inline: #e74c3c; + --color-text-code-nt: #062873; + --color-text-selection: #b19eff; + --color-bg-body: #fcfcfc; + --color-bg-body-alt: #f3f6f6; + --color-bg-side-nav: #f5f6fa; + --color-bg-side-nav-hover: #ebedf5; + --color-bg-code-block: var(--color-bg-side-nav); + --color-border: #eeebee; + --color-btn-neutral-bg: #f3f6f6; + --color-btn-neutral-bg-hover: #e5ebeb; + --color-success-title: #1abc9c; + --color-success-body: #dbfaf4; + --color-warning-title: #f0b37e; + --color-warning-body: #ffedcc; + --color-danger-title: #f29f97; + --color-danger-body: #fdf3f2; + --color-info-title: #6ab0de; + --color-info-body: #e7f2fa; +} + +.dark-mode { + --color-text-body: #abb2bf; + --color-text-body-light: #9499a2; + --color-text-alt: rgba(0255, 255, 255, 0.5); + --color-text-title: var(--color-text-anchor); + --color-text-code-inline: #abb2bf; + --color-text-code-nt: #2063f3; + --color-text-selection: #030303; + --color-bg-body: #1d1d20 !important; + --color-bg-body-alt: #131315; + --color-bg-side-nav: #18181a; + --color-bg-side-nav-hover: #101216; + --color-bg-code-block: #101216; + --color-border: #47494f; + --color-btn-neutral-bg: #242529; + --color-btn-neutral-bg-hover: #101216; + --color-success-title: #02120f; + --color-success-body: #041b17; + --color-warning-title: #1b0e03; + --color-warning-body: #371d06; + --color-danger-title: #120902; + --color-danger-body: #1b0503; + --color-info-title: #020608; + --color-info-body: #06141e; +} + +* { + transition: background-color 0.3s ease, border-color 0.3s ease; +} + +/* Typography */ +body { + font-family: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; + font-size: inherit; + line-height: 1.4; + color: var(--color-text-body); +} + +h1, h2, h3, h4, h5, h6 { + font-family: inherit; +} + +.rst-content .toctree-wrapper>p.caption, .rst-content h1, .rst-content h2, .rst-content h3, .rst-content h4, .rst-content h5, .rst-content h6 { + padding-top: .5em; +} + +p, .main-content-wrap, .rst-content .section ul, .rst-content .toctree-wrapper ul, .rst-content section ul, .wy-plain-list-disc, article ul { + line-height: 1.6; +} + +pre, .code, .rst-content .linenodiv pre, .rst-content div[class^=highlight] pre, .rst-content pre.literal-block { + font-family: "SFMono-Regular", Menlo,Consolas, Monospace; + font-size: 0.75em; + line-height: 1.8; +} + +.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4 { + font-size: 1rem +} + +.rst-versions { + font-family: inherit; + line-height: 1; +} + +footer, footer p { + font-size: .8rem; +} + +footer .rst-footer-buttons { + font-size: 1rem; +} + +@media (max-width: 400px) { + /* break code lines on mobile */ + pre, code { + word-break: break-word; + } +} + + +/* Layout */ +.wy-side-nav-search, .wy-menu-vertical { + width: auto; +} + +.wy-nav-side { + z-index: 0; + display: flex; + flex-wrap: wrap; + background-color: var(--color-bg-side-nav); +} + +.wy-side-scroll { + width: 100%; + overflow-y: auto; +} + +@media (min-width: 66.5rem) { + .wy-side-scroll { + width:264px + } +} + +@media (min-width: 50rem) { + .wy-nav-side { + flex-wrap: nowrap; + position: fixed; + width: 248px; + height: 100%; + flex-direction: column; + border-right: 1px solid var(--color-border); + align-items:flex-end + } +} + +@media (min-width: 66.5rem) { + .wy-nav-side { + width: calc((100% - 1064px) / 2 + 264px); + min-width:264px + } +} + +@media (min-width: 50rem) { + .wy-nav-content-wrap { + position: relative; + max-width: 800px; + margin-left:248px + } +} + +@media (min-width: 66.5rem) { + .wy-nav-content-wrap { + margin-left:calc((100% - 1064px) / 2 + 264px) + } +} + + +/* Colors */ +body.wy-body-for-nav, +.wy-nav-content { + background: var(--color-bg-body); +} + +.wy-nav-side { + border-right: 1px solid var(--color-border); +} + +.wy-side-nav-search, .wy-nav-top { + background: var(--color-bg-side-nav); + border-bottom: 1px solid var(--color-border); +} + +.wy-nav-content-wrap { + background: inherit; +} + +.wy-side-nav-search > a, .wy-nav-top a, .wy-nav-top i { + color: var(--color-text-title); +} + +.wy-side-nav-search > a:hover, .wy-nav-top a:hover { + background: transparent; +} + +.wy-side-nav-search > div.version { + color: var(--color-text-alt) +} + +.wy-side-nav-search > div[role="search"] { + border-top: 1px solid var(--color-border); +} + +.wy-menu-vertical li.toctree-l2.current>a, .wy-menu-vertical li.toctree-l2.current li.toctree-l3>a, +.wy-menu-vertical li.toctree-l3.current>a, .wy-menu-vertical li.toctree-l3.current li.toctree-l4>a { + background: var(--color-bg-side-nav); +} + +.rst-content .highlighted { + background: #eedd85; + box-shadow: 0 0 0 2px #eedd85; + font-weight: 600; +} + +.wy-side-nav-search input[type=text], +html.writer-html5 .rst-content table.docutils th { + color: var(--color-text-body); +} + +.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td, +.wy-table-backed, +.wy-table-odd td, +.wy-table-striped tr:nth-child(2n-1) td { + background-color: var(--color-bg-body-alt); +} + +.rst-content table.docutils, +.wy-table-bordered-all, +html.writer-html5 .rst-content table.docutils th, +.rst-content table.docutils td, +.wy-table-bordered-all td, +hr { + border-color: var(--color-border) !important; +} + +::selection { + background: var(--color-text-selection); +} + +/* Ridiculous rules are taken from sphinx_rtd */ +.rst-content .admonition-title, +.wy-alert-title { + color: var(--color-text-body-light); +} + +.rst-content .hint, +.rst-content .important, +.rst-content .tip, +.rst-content .wy-alert-success, +.wy-alert.wy-alert-success { + background: var(--color-success-body); +} + +.rst-content .hint .admonition-title, +.rst-content .hint .wy-alert-title, +.rst-content .important .admonition-title, +.rst-content .important .wy-alert-title, +.rst-content .tip .admonition-title, +.rst-content .tip .wy-alert-title, +.rst-content .wy-alert-success .admonition-title, +.rst-content .wy-alert-success .wy-alert-title, +.wy-alert.wy-alert-success .rst-content .admonition-title, +.wy-alert.wy-alert-success .wy-alert-title { + background-color: var(--color-success-title); +} + +.rst-content .admonition-todo, +.rst-content .attention, +.rst-content .caution, +.rst-content .warning, +.rst-content .wy-alert-warning, +.wy-alert.wy-alert-warning { + background: var(--color-warning-body); +} + +.rst-content .admonition-todo .admonition-title, +.rst-content .admonition-todo .wy-alert-title, +.rst-content .attention .admonition-title, +.rst-content .attention .wy-alert-title, +.rst-content .caution .admonition-title, +.rst-content .caution .wy-alert-title, +.rst-content .warning .admonition-title, +.rst-content .warning .wy-alert-title, +.rst-content .wy-alert-warning .admonition-title, +.rst-content .wy-alert-warning .wy-alert-title, +.rst-content .wy-alert.wy-alert-warning .admonition-title, +.wy-alert.wy-alert-warning .rst-content .admonition-title, +.wy-alert.wy-alert-warning .wy-alert-title { + background: var(--color-warning-title); +} + +.rst-content .danger, +.rst-content .error, +.rst-content .wy-alert-danger, +.wy-alert.wy-alert-danger { + background: var(--color-danger-body); +} + +.rst-content .danger .admonition-title, +.rst-content .danger .wy-alert-title, +.rst-content .error .admonition-title, +.rst-content .error .wy-alert-title, +.rst-content .wy-alert-danger .admonition-title, +.rst-content .wy-alert-danger .wy-alert-title, +.wy-alert.wy-alert-danger .rst-content .admonition-title, +.wy-alert.wy-alert-danger .wy-alert-title { + background: var(--color-danger-title); +} + +.rst-content .note, +.rst-content .seealso, +.rst-content .wy-alert-info, +.wy-alert.wy-alert-info { + background: var(--color-info-body); +} + +.rst-content .note .admonition-title, +.rst-content .note .wy-alert-title, +.rst-content .seealso .admonition-title, +.rst-content .seealso .wy-alert-title, +.rst-content .wy-alert-info .admonition-title, +.rst-content .wy-alert-info .wy-alert-title, +.wy-alert.wy-alert-info .rst-content .admonition-title, +.wy-alert.wy-alert-info .wy-alert-title { + background: var(--color-info-title); +} + + + +/* Links */ +a, a:visited, +.wy-menu-vertical a, +a.icon.icon-home, +.wy-menu-vertical li.toctree-l1.current > a.current { + color: var(--color-text-anchor); + text-decoration: none; +} + +a:hover, .wy-breadcrumbs-aside a { + color: var(--color-text-anchor); /* reset */ +} + +.rst-versions a, .rst-versions .rst-current-version { + color: #var(--color-text-anchor); +} + +.wy-nav-content a.reference, .wy-nav-content a:not([class]) { + background-image: linear-gradient(var(--color-border) 0%, var(--color-border) 100%); + background-repeat: repeat-x; + background-position: 0 100%; + background-size: 1px 1px; +} + +.wy-nav-content a.reference:hover, .wy-nav-content a:not([class]):hover { + background-image: linear-gradient(rgba(114,83,237,0.45) 0%, rgba(114,83,237,0.45) 100%); + background-size: 1px 1px; +} + +.wy-menu-vertical a:hover, +.wy-menu-vertical li.current a:hover, +.wy-menu-vertical a:active { + background: var(--color-bg-side-nav-hover) !important; + color: var(--color-text-body); +} + +.wy-menu-vertical li.toctree-l1.current>a, +.wy-menu-vertical li.current>a, +.wy-menu-vertical li.on a { + background-color: var(--color-bg-side-nav-hover); + border: none; + font-weight: normal; +} + +.wy-menu-vertical li.current { + background-color: inherit; +} + +.wy-menu-vertical li.current a { + border-right: none; +} + +.wy-menu-vertical li.toctree-l2 a, +.wy-menu-vertical li.toctree-l3 a, +.wy-menu-vertical li.toctree-l4 a, +.wy-menu-vertical li.toctree-l5 a, +.wy-menu-vertical li.toctree-l6 a, +.wy-menu-vertical li.toctree-l7 a, +.wy-menu-vertical li.toctree-l8 a, +.wy-menu-vertical li.toctree-l9 a, +.wy-menu-vertical li.toctree-l10 a { + color: var(--color-text-body); +} + +a.image-reference, a.image-reference:hover { + background: none !important; +} + +a.image-reference img { + cursor: zoom-in; +} + + +/* Code blocks */ +.rst-content code, .rst-content tt, code { + padding: 0.25em; + font-weight: 400; + background-color: var(--color-bg-code-block); + border: 1px solid var(--color-border); + border-radius: 4px; +} + +.rst-content div[class^=highlight], .rst-content pre.literal-block { + padding: 0.7rem; + margin-top: 0; + margin-bottom: 0.75rem; + overflow-x: auto; + background-color: var(--color-bg-side-nav); + border-color: var(--color-border); + border-radius: 4px; + box-shadow: none; +} + +.rst-content .admonition-title, +.rst-content div.admonition, +.wy-alert-title { + padding: 10px 12px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.highlight .go { + color: inherit; +} + +.highlight .nt { + color: var(--color-text-code-nt); +} + +.rst-content code.literal, +.rst-content tt.literal { + border-color: var(--color-border); + background-color: var(--color-border); + color: var(--color-text-code-inline) +} + + +/* Search */ +.wy-side-nav-search input[type=text] { + border: none; + border-radius: 0; + background-color: transparent; + font-family: inherit; + font-size: .85rem; + box-shadow: none; + padding: .7rem 1rem .7rem 2.8rem; + margin: 0; +} + +#rtd-search-form { + position: relative; +} + +#rtd-search-form:before { + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f002"; + color: var(--color-text-alt); + position: absolute; + left: 1.5rem; + top: .7rem; +} + +/* Side nav */ +.wy-side-nav-search { + padding: 1rem 0 0 0; +} + +.wy-menu-vertical li a button.toctree-expand { + float: right; + margin-right: -1.5em; + padding: 0 .5em; +} + +.wy-menu-vertical a, +.wy-menu-vertical li.current>a, +.wy-menu-vertical li.current li>a { + padding-right: 1.5em !important; +} + +.wy-menu-vertical li.current li>a.current { + font-weight: 600; +} + +/* Misc spacing */ +.rst-content .admonition-title, .wy-alert-title { + padding: 10px 12px; +} + +/* Buttons */ +.btn { + display: inline-block; + box-sizing: border-box; + padding: 0.3em 1em; + margin: 0; + font-family: inherit; + font-size: inherit; + font-weight: 500; + line-height: 1.5; + color: #var(--color-text-anchor); + text-decoration: none; + vertical-align: baseline; + background-color: #f7f7f7; + border-width: 0; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0,0,0,0.12),0 3px 10px rgba(0,0,0,0.08); + appearance: none; +} + +.btn:active { + padding: 0.3em 1em; +} + +.rst-content .btn:focus { + outline: 1px solid #ccc; +} + +.rst-content .btn-neutral, .rst-content .btn span.fa { + color: var(--color-text-body) !important; +} + +.btn-neutral { + background-color: var(--color-btn-neutral-bg) !important; + color: var(--color-btn-neutral-text) !important; + border: 1px solid var(--color-btn-neutral-bg); +} + +.btn:hover, .btn-neutral:hover { + background-color: var(--color-btn-neutral-bg-hover) !important; +} + + +/* Icon overrides */ +.wy-side-nav-search a.icon-home:before { + display: none; +} + +.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before { + content: "\f106"; /* fa-angle-up */ +} + +.fa-plus-square-o:before, .wy-menu-vertical li button.toctree-expand:before { + content: "\f107"; /* fa-angle-down */ +} + + +/* Misc */ +.wy-nav-top { + line-height: 36px; +} + +.wy-nav-top > i { + font-size: 24px; + padding: 8px 0 0 2px; + color:#var(--color-text-anchor); +} + +.rst-content table.docutils td, +.rst-content table.docutils th, +.rst-content table.field-list td, +.rst-content table.field-list th, +.wy-table td, +.wy-table th { + padding: 8px 14px; +} + +.dark-mode-toggle { + position: absolute; + top: 14px; + right: 12px; + height: 20px; + width: 24px; + z-index: 10; + border: none; + background-color: transparent; + color: inherit; + opacity: 0.7; +} + +.wy-nav-content-wrap { + z-index: 20; +} diff --git a/docs/_static/custom.css b/docs/_static/custom.css deleted file mode 100644 index bb60b53d3..000000000 --- a/docs/_static/custom.css +++ /dev/null @@ -1,14 +0,0 @@ -/* override table width restrictions */ -@media screen and (min-width: 767px) { - - .wy-table-responsive table td { - /* !important prevents the common CSS stylesheets from - overriding this as on RTD they are loaded after this stylesheet */ - white-space: normal !important; - } - - .wy-table-responsive { - overflow: visible !important; - } - -} diff --git a/docs/_static/js/darkmode.js b/docs/_static/js/darkmode.js new file mode 100644 index 000000000..49cf0eeec --- /dev/null +++ b/docs/_static/js/darkmode.js @@ -0,0 +1,47 @@ +let toggleButton; +let icon; + +function load() { + "use strict"; + + toggleButton = document.createElement("button"); + toggleButton.setAttribute("title", "Toggle dark mode"); + toggleButton.classList.add("dark-mode-toggle"); + icon = document.createElement("i"); + icon.classList.add("fa", darkModeState ? "fa-sun-o" : "fa-moon-o"); + toggleButton.appendChild(icon); + document.body.prepend(toggleButton); + + // Listen for changes in the OS settings + // addListener is used because older versions of Safari don't support addEventListener + // prefersDarkQuery set in + if (prefersDarkQuery) { + prefersDarkQuery.addListener(function (evt) { + toggleDarkMode(evt.matches); + }); + } + + // Initial setting depending on the prefers-color-mode or localstorage + // darkModeState should be set in the document to prevent flash + if (darkModeState == undefined) darkModeState = false; + toggleDarkMode(darkModeState); + + // Toggles the "dark-mode" class on click and sets localStorage state + toggleButton.addEventListener("click", () => { + darkModeState = !darkModeState; + + toggleDarkMode(darkModeState); + localStorage.setItem("dark-mode", darkModeState); + }); +} + +function toggleDarkMode(state) { + document.documentElement.classList.toggle("dark-mode", state); + document.documentElement.classList.toggle("light-mode", !state); + icon.classList.remove("fa-sun-o"); + icon.classList.remove("fa-moon-o"); + icon.classList.add(state ? "fa-sun-o" : "fa-moon-o"); + darkModeState = state; +} + +document.addEventListener("DOMContentLoaded", load); diff --git a/docs/_static/screenshot.png b/docs/_static/screenshot.png deleted file mode 100644 index 581e14a1d..000000000 Binary files a/docs/_static/screenshot.png and /dev/null differ diff --git a/docs/_static/screenshots/bulk-edit.png b/docs/_static/screenshots/bulk-edit.png new file mode 100644 index 000000000..61589f052 Binary files /dev/null and b/docs/_static/screenshots/bulk-edit.png differ diff --git a/docs/_static/screenshots/correspondents.png b/docs/_static/screenshots/correspondents.png index 269543b26..4b1283797 100644 Binary files a/docs/_static/screenshots/correspondents.png and b/docs/_static/screenshots/correspondents.png differ diff --git a/docs/_static/screenshots/dashboard.png b/docs/_static/screenshots/dashboard.png index 3a3494e72..41fe23ffc 100644 Binary files a/docs/_static/screenshots/dashboard.png and b/docs/_static/screenshots/dashboard.png differ diff --git a/docs/_static/screenshots/documents-filter.png b/docs/_static/screenshots/documents-filter.png index feb0f58d5..beb419722 100644 Binary files a/docs/_static/screenshots/documents-filter.png and b/docs/_static/screenshots/documents-filter.png differ diff --git a/docs/_static/screenshots/documents-largecards.png b/docs/_static/screenshots/documents-largecards.png index d65c4a0d7..17faf4e91 100644 Binary files a/docs/_static/screenshots/documents-largecards.png and b/docs/_static/screenshots/documents-largecards.png differ diff --git a/docs/_static/screenshots/documents-smallcards-dark.png b/docs/_static/screenshots/documents-smallcards-dark.png new file mode 100644 index 000000000..e2892f457 Binary files /dev/null and b/docs/_static/screenshots/documents-smallcards-dark.png differ diff --git a/docs/_static/screenshots/documents-smallcards.png b/docs/_static/screenshots/documents-smallcards.png index 77de7a04d..dddbbaa65 100644 Binary files a/docs/_static/screenshots/documents-smallcards.png and b/docs/_static/screenshots/documents-smallcards.png differ diff --git a/docs/_static/screenshots/documents-table.png b/docs/_static/screenshots/documents-table.png index a5f2a3d7f..f7833c521 100644 Binary files a/docs/_static/screenshots/documents-table.png and b/docs/_static/screenshots/documents-table.png differ diff --git a/docs/_static/screenshots/editing.png b/docs/_static/screenshots/editing.png index 21a0bcdf2..47f04518b 100644 Binary files a/docs/_static/screenshots/editing.png and b/docs/_static/screenshots/editing.png differ diff --git a/docs/_static/screenshots/logs.png b/docs/_static/screenshots/logs.png index 10a0d393a..c2dfe0a54 100644 Binary files a/docs/_static/screenshots/logs.png and b/docs/_static/screenshots/logs.png differ diff --git a/docs/_static/screenshots/mobile.png b/docs/_static/screenshots/mobile.png index 1217f06b3..06e782373 100644 Binary files a/docs/_static/screenshots/mobile.png and b/docs/_static/screenshots/mobile.png differ diff --git a/docs/_static/screenshots/new-tag.png b/docs/_static/screenshots/new-tag.png index 4ea438530..f763c0ecf 100644 Binary files a/docs/_static/screenshots/new-tag.png and b/docs/_static/screenshots/new-tag.png differ diff --git a/docs/_static/screenshots/search-preview.png b/docs/_static/screenshots/search-preview.png index 78925ae18..5e7c29049 100644 Binary files a/docs/_static/screenshots/search-preview.png and b/docs/_static/screenshots/search-preview.png differ diff --git a/docs/_static/screenshots/search-results.png b/docs/_static/screenshots/search-results.png index f9db14190..7ba399d56 100644 Binary files a/docs/_static/screenshots/search-results.png and b/docs/_static/screenshots/search-results.png differ diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html new file mode 100644 index 000000000..cf648b606 --- /dev/null +++ b/docs/_templates/layout.html @@ -0,0 +1,13 @@ +{% extends "!layout.html" %} +{% block extrahead %} + + {{ super() }} +{% endblock %} diff --git a/docs/administration.rst b/docs/administration.rst index 51135e0fc..85f573460 100644 --- a/docs/administration.rst +++ b/docs/administration.rst @@ -369,7 +369,7 @@ the naming scheme. .. warning:: - Since this command moves you documents around alot, it is advised to to + Since this command moves you documents around a lot, it is advised to to a backup before. The renaming logic is robust and will never overwrite or delete a file, but you can't ever be careful enough. diff --git a/docs/advanced_usage.rst b/docs/advanced_usage.rst index 6a339b8e1..4dbb32f36 100644 --- a/docs/advanced_usage.rst +++ b/docs/advanced_usage.rst @@ -243,7 +243,7 @@ will create a directory structure as follows: last filename a document was stored as. If you do rename a file, paperless will report your files as missing and won't be able to find them. -Paperless provides the following placeholders withing filenames: +Paperless provides the following placeholders within filenames: * ``{asn}``: The archive serial number of the document, or "none". * ``{correspondent}``: The name of the correspondent, or "none". diff --git a/docs/changelog.rst b/docs/changelog.rst index cf34e2e5f..984c86075 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -5,6 +5,87 @@ Changelog ********* +paperless-ngx 1.7.0 +################### + +Breaking Changes + +* ``PAPERLESS_URL`` is now required when using a reverse proxy. See `#674`_. + +Features + +* Allow setting more than one tag in mail rules `@jonasc`_ (#270) +* global drag'n'drop `@shamoon`_ (#283). +* Fix: download buttons should disable while waiting `@shamoon`_ (#630). +* Update checker `@shamoon`_ (#591). +* Show prompt on password-protected pdfs `@shamoon`_ (#564). +* Filtering query params aka browser navigation for filtering `@shamoon`_ (#540). +* Clickable tags in dashboard widgets `@shamoon`_ (#515). +* Add bottom pagination `@shamoon`_ (#372). +* Feature barcode splitter `@gador`_ (#532). +* App loading screen `@shamoon`_ (#298). +* Use progress bar for delayed buttons `@shamoon`_ (#415). +* Add minimum length for documents text filter `@shamoon`_ (#401). +* Added nav buttons in the document detail view `@GruberViktor`_ (#273). +* Improve date keyboard input `@shamoon`_ (#253). +* Color theming `@shamoon`_ (#243). +* Parse dates when entered without separators `@GruberViktor`_ (#250). + +Bug Fixes + +* add "localhost" to ALLOWED_HOSTS `@gador`_ (#700). +* Fix: scanners table `@qcasey`_ (#690). +* Adds wait for file before consuming `@stumpylog`_ (#483). +* Fix: frontend document editing erases time data `@shamoon`_ (#654). +* Increase length of SavedViewFilterRule `@stumpylog`_ (#612). +* Fixes attachment filename matching during mail fetching `@stumpylog`_ (#680). +* Add ``PAPERLESS_URL`` env variable & CSRF var `@shamoon`_ (#674). +* Fix: download buttons should disable while waiting `@shamoon`_ (#630). +* Fixes downloaded filename, add more consumer ignore settings `@stumpylog`_ (#599). +* FIX BUG: case-sensitive matching was not possible `@danielBreitlauch`_ (#594). +* uses shutil.move instead of rename `@gador`_ (#617). +* Fix npm deps 01.02.22 2 `@shamoon`_ (#610). +* Fix npm dependencies 01.02.22 `@shamoon`_ (#600). +* fix issue 416: implement PAPERLESS_OCR_MAX_IMAGE_PIXELS `@hacker-h`_ (#441). +* fix: exclude cypress from build in Dockerfile `@FrankStrieter`_ (#526). +* Corrections to pass pre-commit hooks `@schnuffle`_ (#454). +* Fix 311 unable to click checkboxes in document list `@shamoon`_ (#313). +* Fix imap tools bug `@stumpylog`_ (#393). +* Fix filterable dropdown buttons arent translated `@shamoon`_ (#366). +* Fix 224: "Auto-detected date is day before receipt date" `@a17t`_ (#246). +* Fix minor sphinx errors `@shamoon`_ (#322). +* Fix page links hidden `@shamoon`_ (#314). +* Fix: Include excluded items in dropdown count `@shamoon`_ (#263). + +Translation + +* `@miku323`_ contributed to Slovenian translation. +* `@FaintGhost`_ contributed to Chinese Simplified translation. +* `@DarkoBG79`_ contributed to Serbian translation. +* `Kemal Secer`_ contributed to Turkish translation. +* `@Prominence`_ contributed to Belarusian translation. + +Documentation + +* Fix: scanners table `@qcasey`_ (#690). +* Add `PAPERLESS_URL` env variable & CSRF var `@shamoon`_ (#674). +* Fixes downloaded filename, add more consumer ignore settings `@stumpylog`_ (#599). +* fix issue 416: implement ``PAPERLESS_OCR_MAX_IMAGE_PIXELS`` `@hacker-h`_ (#441). +* Fix minor sphinx errors `@shamoon`_ (#322). + +Maintenance + +* Add ``PAPERLESS_URL`` env variable & CSRF var `@shamoon`_ (#674). +* Chore: Implement release-drafter action for Changelogs `@qcasey`_ (#669). +* Chore: Add CODEOWNERS `@qcasey`_ (#667). +* Support docker-compose v2 in install `@stumpylog`_ (#611). +* Add Belarusian localization `@shamoon`_ (#588). +* Add Turkish localization `@shamoon`_ (#536). +* Add Serbian localization `@shamoon`_ (#504). +* Create PULL_REQUEST_TEMPLATE.md `@shamoon`_ (#304). +* Add Chinese localization `@shamoon`_ (#247). +* Add Slovenian language for frontend `@shamoon`_ (#315). + paperless-ngx 1.6.0 ################### @@ -35,6 +116,10 @@ Version 1.6.0 merges several pending PRs from jonaswinkler's repo and includes n * `@shamoon`_ created a slick new logo (#165). * `@tim-vogel`_ fixed exports missing groups (#193). +Known issues: + +* 1.6.0 included a malformed package-lock.json, as a result users who want to build the docker image themselves need to change line 6 of the ``Dockerfile`` to ``RUN npm update npm -g && npm install --legacy-peer-deps``. + Thank you to the following people for their documentation updates, fixes, and comprehensive testing: `@m0veax`_, `@a17t`_, `@fignew`_, `@muued`_, `@bauerj`_, `@isigmund`_, `@denilsonsa`_, `@mweimerskirch`_, `@alexander-bauer`_, `@apeltzer`_, `@tribut`_, `@yschroeder`_, `@gador`_, `@sAksham-Ar`_, `@sbrunner`_, `@philpagel`_, `@davemachado`_, `@2600box`_, `@qcasey`_, `@Nicarim`_, `@kpj`_, `@filcuk`_, `@Timoms`_, `@mattlamb99`_, `@padraigkitterick`_, `@ajkavanagh`_, `@Tooa`_, `@Unkn0wnCat`_, `@pewter77`_, `@stumpylog`_, `@Toxix`_, `@azapater`_, `@jschpp`_ @@ -140,7 +225,7 @@ paperless-ng 1.4.0 * New URL pattern for accessing documents by ASN directly (http:///asn/123) - * Added logging when executing pre- and post-consume scripts. + * Added logging when executing pre* and post-consume scripts. * Better error logging during document consumption. @@ -1576,6 +1661,16 @@ bulk of the work on this big change. .. _@azapater: https://github.com/azapater .. _@tim-vogel: https://github.com/tim-vogel .. _@jschpp: https://github.com/jschpp +.. _@schnuffle: https://github.com/schnuffle +.. _@GruberViktor: https://github.com/gruberviktor +.. _@hacker-h: https://github.com/hacker-h +.. _@danielBreitlauch: https://github.com/danielbreitlauch +.. _@miku323: https://github.com/miku323 +.. _@FaintGhost: https://github.com/FaintGhost +.. _@DarkoBG79: https://github.com/DarkoBG79 +.. _Kemal Secer: https://crowdin.com/profile/kemal.secer +.. _@Prominence: https://github.com/Prominence +.. _@jonasc: https://github.com/jonasc .. _#20: https://github.com/the-paperless-project/paperless/issues/20 .. _#44: https://github.com/the-paperless-project/paperless/issues/44 @@ -1684,6 +1779,7 @@ bulk of the work on this big change. .. _#488: https://github.com/the-paperless-project/paperless/pull/488 .. _#489: https://github.com/the-paperless-project/paperless/pull/489 .. _#492: https://github.com/the-paperless-project/paperless/pull/492 +.. _#674: https://github.com/paperless-ngx/paperless-ngx/pull/674 .. _a new home on Docker Hub: https://hub.docker.com/r/danielquinn/paperless/ .. _optipng: http://optipng.sourceforge.net/ diff --git a/docs/conf.py b/docs/conf.py index ef1948dab..19efbbdf8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,7 +15,7 @@ extensions = [ ] # Add any paths that contain templates here, relative to this directory. -# templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix of source filenames. source_suffix = ".rst" @@ -119,6 +119,16 @@ html_theme_path = [] # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] +# These paths are either relative to html_static_path +# or fully qualified paths (eg. https://...) +html_css_files = [ + "css/custom.css", +] + +html_js_files = [ + "js/darkmode.js", +] + # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. diff --git a/docs/configuration.rst b/docs/configuration.rst index 3541f2e07..42935dab8 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -130,6 +130,8 @@ PAPERLESS_LOGROTATE_MAX_BACKUPS= Defaults to 20. +.. _hosting-and-security: + Hosting & Security ################## @@ -170,6 +172,9 @@ PAPERLESS_ALLOWED_HOSTS= Can also be set using PAPERLESS_URL (see above). + If manually set, please remember to include "localhost". Otherwise docker + healthcheck will fail. + Defaults to "*", which is all hosts. PAPERLESS_CORS_ALLOWED_HOSTS= @@ -206,7 +211,7 @@ PAPERLESS_AUTO_LOGIN_USERNAME= PAPERLESS_ADMIN_USER= If this environment variable is specified, Paperless automatically creates a superuser with the provided username at start. This is useful in cases - where you can not run the `createsuperuser` command seperately, such as Kubernetes + where you can not run the `createsuperuser` command separately, such as Kubernetes or AWS ECS. Requires `PAPERLESS_ADMIN_PASSWORD` to be set. diff --git a/docs/faq.rst b/docs/faq.rst index 35122f4d8..1b2892fc3 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -7,7 +7,7 @@ Frequently asked questions **A:** While Paperless-ngx is already considered largely "feature-complete" it is a community-driven project and development will be guided in this way. New features can be submitted via -GitHub discussions and "up-voted" by the community but this is not a garauntee the feature +GitHub discussions and "up-voted" by the community but this is not a guarantee the feature will be implemented. This project will always be open to collaboration in the form of PRs, ideas etc. diff --git a/docs/screenshots.rst b/docs/screenshots.rst index 8889afe94..1815575f1 100644 --- a/docs/screenshots.rst +++ b/docs/screenshots.rst @@ -4,41 +4,60 @@ Screenshots *********** -This is what paperless-ngx looks like. You shouldn't use paperless to index -research papers though, its a horrible tool for that job. +This is what Paperless-ngx looks like. The dashboard shows customizable views on your document and allows document uploads: .. image:: _static/screenshots/dashboard.png + :target: _static/screenshots/dashboard.png The document list provides three different styles to scroll through your documents: .. image:: _static/screenshots/documents-table.png + :target: _static/screenshots/documents-table.png .. image:: _static/screenshots/documents-smallcards.png + :target: _static/screenshots/documents-smallcards.png .. image:: _static/screenshots/documents-largecards.png + :target: _static/screenshots/documents-largecards.png + +Paperless-ngx also supports "dark mode": + +.. image:: _static/screenshots/documents-smallcards-dark.png + :target: _static/screenshots/documents-smallcards-dark.png Extensive filtering mechanisms: .. image:: _static/screenshots/documents-filter.png + :target: _static/screenshots/documents-filter.png -Side-by-side editing of documents. Optimized for 1080p. +Bulk editing of document tags, correspondents, etc.: + +.. image:: _static/screenshots/bulk-edit.png + :target: _static/screenshots/bulk-edit.png + +Side-by-side editing of documents: .. image:: _static/screenshots/editing.png + :target: _static/screenshots/editing.png Tag editing. This looks about the same for correspondents and document types. .. image:: _static/screenshots/new-tag.png + :target: _static/screenshots/new-tag.png Searching provides auto complete and highlights the results. .. image:: _static/screenshots/search-preview.png + :target: _static/screenshots/search-preview.png .. image:: _static/screenshots/search-results.png + :target: _static/screenshots/search-results.png Fancy mail filters! .. image:: _static/screenshots/mail-rules-edited.png + :target: _static/screenshots/mail-rules-edited.png -Mobile support in the future? This kinda works, however some layouts are still -too wide. +Mobile devices are supported. .. image:: _static/screenshots/mobile.png + :target: _static/screenshots/mobile.png diff --git a/docs/setup.rst b/docs/setup.rst index 72d18c785..de694bda8 100644 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -291,12 +291,14 @@ writing. Windows is not and will never be supported. * ``libpq-dev`` for PostgreSQL * ``libmagic-dev`` for mime type detection * ``mime-support`` for mime type detection + * ``libzbar0`` for barcode detection + * ``poppler-utils`` for barcode detection Use this list for your preferred package management: .. code:: - python3 python3-pip python3-dev imagemagick fonts-liberation optipng gnupg libpq-dev libmagic-dev mime-support + python3 python3-pip python3-dev imagemagick fonts-liberation optipng gnupg libpq-dev libmagic-dev mime-support libzbar0 poppler-utils These dependencies are required for OCRmyPDF, which is used for text recognition. @@ -345,6 +347,8 @@ writing. Windows is not and will never be supported. paperless stores its data. If you like, you can point both to the same directory. * ``PAPERLESS_SECRET_KEY`` should be a random sequence of characters. It's used for authentication. Failure to do so allows third parties to forge authentication credentials. + * ``PAPERLESS_URL`` if you are behind a reverse proxy. This should point to your domain. Please see + :ref:`configuration` for more information. Many more adjustments can be made to paperless, especially the OCR part. The following options are recommended for everyone: @@ -784,4 +788,6 @@ the following configuration is required for paperless to operate: } } +The ``PAPERLESS_URL`` configuration variable is also required when using a reverse proxy. Please refer to the :ref:`hosting-and-security` docs. + Also read `this `__, towards the end of the section. diff --git a/docs/usage_overview.rst b/docs/usage_overview.rst index ea1080177..d7cfb8250 100644 --- a/docs/usage_overview.rst +++ b/docs/usage_overview.rst @@ -62,7 +62,7 @@ your documents: 1. OCR the document, if it has no text. Digital documents usually have text, and this step will be skipped for those documents. -2. Paperless will create an archiveable PDF/A document from your document. +2. Paperless will create an archivable PDF/A document from your document. If this document is coming from your scanner, it will have embedded selectable text. 3. Paperless performs automatic matching of tags, correspondents and types on the document before storing it in the database. @@ -102,12 +102,14 @@ files from the scanner. Typically, you're looking at an FTP server like .. TODO: hyperref to configuration of the location of this magic folder. -Dashboard upload -================ +Web UI Upload +============= The dashboard has a file drop field to upload documents to paperless. Simply drag a file onto this field or select a file with the file dialog. Multiple files are supported. +You can also upload documents on any other page of the web UI by dragging-and-dropping +files into your browser window. .. _usage-mobile_upload: diff --git a/src-ui/src/app/components/app-frame/app-frame.component.scss b/src-ui/src/app/components/app-frame/app-frame.component.scss index bcf87a12a..5fe408660 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.scss +++ b/src-ui/src/app/components/app-frame/app-frame.component.scss @@ -1,4 +1,3 @@ -@import "/src/theme"; /* * Sidebar */ @@ -36,10 +35,15 @@ .sidebar .nav-link { font-weight: 500; - &:hover, &.active { + &:hover, &.active, &:focus { color: var(--bs-primary); } + &:focus-visible { + outline: none; + background-color: var(--bs-body-bg); + } + &.active { font-weight: bold; } diff --git a/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.scss b/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.scss index a72473112..dfb989fea 100644 --- a/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.scss +++ b/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.scss @@ -1,5 +1,3 @@ -@import "/src/theme"; - .badge-corner { position: absolute; top: -8px; diff --git a/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.scss b/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.scss index cd3afe46f..0e81d8bb5 100644 --- a/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.scss +++ b/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.scss @@ -1,5 +1,3 @@ -@import "/src/theme"; - form { position: relative; } diff --git a/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.scss b/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.scss index 33deebc37..e3398c245 100644 --- a/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.scss +++ b/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.scss @@ -1,5 +1,3 @@ -@import "/src/theme"; - .result-content { overflow-wrap: anywhere; } diff --git a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.scss b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.scss index ae89ea9d6..4d03d0a4d 100644 --- a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.scss +++ b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.scss @@ -1,5 +1,3 @@ -@import "/src/theme"; - .card-text { font-size: 90%; } diff --git a/src-ui/src/app/components/document-list/document-list.component.scss b/src-ui/src/app/components/document-list/document-list.component.scss index 616069b08..b2d138d7f 100644 --- a/src-ui/src/app/components/document-list/document-list.component.scss +++ b/src-ui/src/app/components/document-list/document-list.component.scss @@ -1,5 +1,3 @@ -@import "/src/theme"; - ::ng-deep app-document-list app-page-header > div.mb-3 { margin-bottom: 0 !important; } diff --git a/src-ui/src/app/components/manage/settings/settings.component.html b/src-ui/src/app/components/manage/settings/settings.component.html index dac266277..7e52db59e 100644 --- a/src-ui/src/app/components/manage/settings/settings.component.html +++ b/src-ui/src/app/components/manage/settings/settings.component.html @@ -7,7 +7,7 @@