2020-11-22 16:33:26 +01:00
< nav class = "navbar navbar-dark sticky-top bg-primary flex-md-nowrap p-0 shadow" >
2020-12-30 23:39:07 -08:00
< button class = "navbar-toggler d-md-none collapsed border-0" type = "button" data-toggle = "collapse"
2020-11-22 11:35:04 +01:00
data-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation"
(click)="isMenuCollapsed = !isMenuCollapsed">
2020-10-27 01:10:18 +01:00
< span class = "navbar-toggler-icon" > < / span >
< / button >
2022-02-20 01:21:30 +01:00
< a class = "navbar-brand col-auto col-md-3 col-lg-2 me-0 px-3 py-3 order-sm-0" routerLink = "/dashboard" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 198.43 238.91" width = "1em" class = "me-2" fill = "currentColor" >
2020-12-27 23:05:34 -08:00
< path d = "M194.7,0C164.22,70.94,17.64,79.74,64.55,194.06c.58,1.47-10.85,17-18.47,29.9-1.76-6.45-3.81-13.48-3.52-14.07,38.11-45.14-27.26-70.65-30.78-107.58C-4.64,131.62-10.5,182.92,39,212.53c.3,0,2.64,11.14,3.81,16.71a58.55,58.55,0,0,0-2.93,6.45c-1.17,2.93,7.62,2.64,7.62,3.22.88-.29,21.7-36.93,22.28-37.23C187.67,174.72,208.48,68.6,194.7,0ZM134.61,74.75C79.5,124,70.12,160.64,71.88,178.53,53.41,134.85,107.64,86.77,134.61,74.75ZM28.2,145.11c10.55,9.67,28.14,39.28,13.19,56.57C44.91,193.77,46.08,175.89,28.2,145.11Z" transform = "translate(0 0)" / >
< / svg >
2022-02-19 21:42:09 +01:00
< ng-container i18n = "app title" > Paperless-ngx< / ng-container >
2020-12-30 23:39:07 -08:00
< / a >
2022-02-20 01:21:30 +01:00
< div class = "search-form-container flex-grow-1 py-2 pb-3 pb-sm-2 px-3 ps-md-4 me-sm-auto order-3 order-sm-1" >
2020-12-30 23:39:07 -08:00
< form ( ngSubmit ) = " search ( ) " class = "form-inline flex-grow-1" >
2022-04-01 01:47:21 -07:00
< svg width = "1em" height = "1em" fill = "currentColor" >
2020-12-30 23:39:07 -08:00
< use xlink:href = "assets/bootstrap-icons.svg#search" / >
< / svg >
2022-02-19 22:23:56 -08:00
< input class = "form-control form-control-sm" type = "text" placeholder = "Search documents" aria-label = "Search"
[formControl]="searchField" [ngbTypeahead]="searchAutoComplete" (selectItem)="itemSelected($event)" i18n-placeholder>
2020-12-30 23:39:07 -08:00
< / form >
< / div >
< ul ngbNav class = "order-sm-3" >
< li ngbDropdown class = "nav-item dropdown" >
2022-05-09 11:08:28 -07:00
< button class = "btn" id = "userDropdown" ngbDropdownToggle >
< span class = "small me-2 d-none d-sm-inline" >
{{this.settingsService.displayName}}
2020-12-31 16:23:08 -08:00
< / span >
2022-04-01 01:47:21 -07:00
< svg width = "1.3em" height = "1.3em" fill = "currentColor" >
2020-12-30 23:39:07 -08:00
< use xlink:href = "assets/bootstrap-icons.svg#person-circle" / >
< / svg >
< / button >
2022-02-19 23:10:13 -08:00
< div ngbDropdownMenu class = "dropdown-menu-end shadow me-2" aria-labelledby = "userDropdown" >
2022-05-09 11:08:28 -07:00
< div class = "d-sm-none" >
< p class = "small mb-0 px-3 text-muted" i18n > Logged in as {{this.settingsService.displayName}}< / p >
2020-12-31 16:23:08 -08:00
< div class = "dropdown-divider" > < / div >
< / div >
2021-01-01 22:29:25 +01:00
< a ngbDropdownItem class = "nav-link" routerLink = "settings" ( click ) = " closeMenu ( ) " >
2022-02-20 01:21:30 +01:00
< svg class = "sidebaricon me-2" fill = "currentColor" >
2020-12-31 16:23:08 -08:00
< use xlink:href = "assets/bootstrap-icons.svg#gear" / >
< / svg > < ng-container i18n > Settings< / ng-container >
< / a >
< a ngbDropdownItem class = "nav-link" href = "accounts/logout/" >
2022-02-20 01:21:30 +01:00
< svg class = "sidebaricon me-2" fill = "currentColor" >
2020-12-31 16:23:08 -08:00
< use xlink:href = "assets/bootstrap-icons.svg#door-open" / >
< / svg > < ng-container i18n > Logout< / ng-container >
< / a >
2020-12-30 23:39:07 -08:00
< / div >
< / li >
< / ul >
2020-10-27 01:10:18 +01:00
< / nav >
< div class = "container-fluid" >
< div class = "row" >
2020-11-22 11:35:04 +01:00
< nav id = "sidebarMenu" class = "col-md-3 col-lg-2 d-md-block bg-light sidebar collapse" [ ngbCollapse ] = " isMenuCollapsed " >
2021-01-31 16:31:32 -08:00
< div class = "sidebar-sticky pt-3 d-flex flex-column justify-space-around" >
2020-10-27 01:10:18 +01:00
< ul class = "nav flex-column" >
< li class = "nav-item" >
2020-11-22 17:48:54 +01:00
< a class = "nav-link" routerLink = "dashboard" routerLinkActive = "active" ( click ) = " closeMenu ( ) " >
2020-10-27 01:10:18 +01:00
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#house" / >
2020-12-23 15:09:39 +01:00
< / svg > < ng-container i18n > Dashboard< / ng-container >
2020-10-27 01:10:18 +01:00
< / a >
< / li >
< li class = "nav-item" >
2022-03-26 23:30:01 -07:00
< a class = "nav-link" routerLink = "documents" routerLinkActive = "active" ( click ) = " closeMenu ( ) " >
2020-10-27 01:10:18 +01:00
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#files" / >
2020-12-23 15:09:39 +01:00
< / svg > < ng-container i18n > Documents< / ng-container >
2020-10-27 01:10:18 +01:00
< / a >
< / li >
< / ul >
2022-05-08 14:16:37 -07:00
< h6 class = "sidebar-heading px-3 mt-4 mb-1 text-muted" * ngIf = 'savedViewService.loading || savedViewService.sidebarViews.length > 0' >
2020-12-23 15:09:39 +01:00
< ng-container i18n > Saved views< / ng-container >
2022-05-08 14:16:37 -07:00
< div * ngIf = "savedViewService.loading" class = "spinner-border spinner-border-sm fw-normal ms-2" role = "status" > < / div >
2020-10-30 22:46:43 +01:00
< / h6 >
< ul class = "nav flex-column mb-2" >
2020-12-14 19:26:36 +01:00
< li class = "nav-item w-100" * ngFor = "let view of savedViewService.sidebarViews" >
< a class = "nav-link text-truncate" routerLink = "view/{{view.id}}" routerLinkActive = "active" ( click ) = " closeMenu ( ) " >
2020-10-30 22:46:43 +01:00
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#funnel" / >
2020-12-23 15:09:39 +01:00
< / svg > {{view.name}}
2020-10-30 22:46:43 +01:00
< / a >
< / li >
< / ul >
2021-01-31 19:11:21 -08:00
< h6 class = "sidebar-heading px-3 mt-4 mb-1 text-muted" * ngIf = 'openDocuments.length > 0' >
2020-12-23 15:09:39 +01:00
< ng-container i18n > Open documents< / ng-container >
2020-10-27 01:10:18 +01:00
< / h6 >
< ul class = "nav flex-column mb-2" >
2020-11-04 21:18:16 +01:00
< li class = "nav-item w-100" * ngFor = 'let d of openDocuments' >
2020-11-22 17:48:54 +01:00
< a class = "nav-link text-truncate" routerLink = "documents/{{d.id}}" routerLinkActive = "active" ( click ) = " closeMenu ( ) " >
2020-10-27 01:10:18 +01:00
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#file-text" / >
2020-12-23 15:09:39 +01:00
< / svg > {{d.title | documentTitle}}
2022-03-08 15:50:10 -08:00
< span class = "close" ( click ) = " closeDocument ( d ) ; $ event . preventDefault ( ) " >
2021-02-25 07:43:02 -08:00
< svg xmlns = "http://www.w3.org/2000/svg" fill = "currentColor" class = "bi bi-x" viewBox = "0 0 16 16" >
< use xlink:href = "assets/bootstrap-icons.svg#x" / >
< / svg >
< / span >
2020-10-27 01:10:18 +01:00
< / a >
< / li >
2021-03-06 12:00:58 +01:00
< li class = "nav-item w-100" * ngIf = "openDocuments.length >= 1" >
2022-02-17 00:16:57 +01:00
< a class = "nav-link text-truncate" [ routerLink ] = " [ ] " ( click ) = " closeAll ( ) " >
2020-11-12 11:11:57 +01:00
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#x" / >
2020-12-23 15:09:39 +01:00
< / svg > < ng-container i18n > Close all< / ng-container >
2020-11-12 11:11:57 +01:00
< / a >
< / li >
2020-10-27 01:10:18 +01:00
< / ul >
2021-01-31 19:11:21 -08:00
< h6 class = "sidebar-heading px-3 mt-4 mb-1 text-muted" >
2020-12-23 15:09:39 +01:00
< ng-container i18n > Manage< / ng-container >
2020-10-27 01:10:18 +01:00
< / h6 >
< ul class = "nav flex-column mb-2" >
< li class = "nav-item" >
2020-11-22 17:48:54 +01:00
< a class = "nav-link" routerLink = "correspondents" routerLinkActive = "active" ( click ) = " closeMenu ( ) " >
2020-10-27 01:10:18 +01:00
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#person" / >
2020-12-23 15:09:39 +01:00
< / svg > < ng-container i18n > Correspondents< / ng-container >
2020-10-27 01:10:18 +01:00
< / a >
< / li >
< li class = "nav-item" >
2020-11-22 17:48:54 +01:00
< a class = "nav-link" routerLink = "tags" routerLinkActive = "active" ( click ) = " closeMenu ( ) " >
2020-10-27 01:10:18 +01:00
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#tags" / >
2020-12-23 15:09:39 +01:00
< / svg > < ng-container i18n > Tags< / ng-container >
2020-10-27 01:10:18 +01:00
< / a >
< / li >
< li class = "nav-item" >
2020-11-22 17:48:54 +01:00
< a class = "nav-link" routerLink = "documenttypes" routerLinkActive = "active" ( click ) = " closeMenu ( ) " >
2020-10-27 01:10:18 +01:00
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#hash" / >
2020-12-23 15:09:39 +01:00
< / svg > < ng-container i18n > Document types< / ng-container >
2020-10-27 01:10:18 +01:00
< / a >
< / li >
2022-05-19 23:42:25 +02:00
< li class = "nav-item" >
< a class = "nav-link" routerLink = "storagepaths" routerLinkActive = "active" ( click ) = " closeMenu ( ) " >
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#folder" / >
< / svg > < ng-container i18n > Storage paths< / ng-container >
< / a >
< / li >
2020-10-27 01:10:18 +01:00
< li class = "nav-item" >
2020-11-22 17:48:54 +01:00
< a class = "nav-link" routerLink = "logs" routerLinkActive = "active" ( click ) = " closeMenu ( ) " >
2020-10-27 01:10:18 +01:00
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#text-left" / >
2020-12-23 15:09:39 +01:00
< / svg > < ng-container i18n > Logs< / ng-container >
2020-10-27 01:10:18 +01:00
< / a >
< / li >
2021-01-06 14:13:52 +01:00
< li class = "nav-item" >
< a class = "nav-link" routerLink = "settings" routerLinkActive = "active" ( click ) = " closeMenu ( ) " >
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#gear" / >
< / svg > < ng-container i18n > Settings< / ng-container >
< / a >
< / li >
2020-10-29 00:34:54 +01:00
< li class = "nav-item" >
< a class = "nav-link" href = "admin/" >
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#toggles" / >
2020-12-23 15:09:39 +01:00
< / svg > < ng-container i18n > Admin< / ng-container >
2020-10-29 00:34:54 +01:00
< / a >
< / li >
2020-10-27 01:10:18 +01:00
< / ul >
2020-11-18 18:39:09 +01:00
2021-01-31 19:11:27 -08:00
< h6 class = "sidebar-heading px-3 mt-auto pt-4 mb-1 text-muted" >
2021-01-31 16:31:32 -08:00
< ng-container i18n > Info< / ng-container >
2020-11-18 18:39:09 +01:00
< / h6 >
< ul class = "nav flex-column mb-2" >
< li class = "nav-item" >
2022-02-19 21:42:09 +01:00
< a class = "nav-link" target = "_blank" rel = "noopener noreferrer" href = "https://paperless-ngx.readthedocs.io/en/latest/" >
2020-11-18 18:39:09 +01:00
< svg class = "sidebaricon" fill = "currentColor" >
< use xlink:href = "assets/bootstrap-icons.svg#question-circle" / >
2020-12-23 15:09:39 +01:00
< / svg > < ng-container i18n > Documentation< / ng-container >
2020-11-18 18:39:09 +01:00
< / a >
< / li >
2021-01-31 17:16:39 -08:00
< li class = "nav-item" >
2021-02-02 23:58:11 +01:00
< div class = "d-flex w-100 flex-wrap" >
2022-03-08 15:50:10 -08:00
< a class = "nav-link pe-2 pb-1" target = "_blank" rel = "noopener noreferrer" href = "https://github.com/paperless-ngx/paperless-ngx" >
2022-04-01 01:47:21 -07:00
< svg xmlns = "http://www.w3.org/2000/svg" fill = "currentColor" class = "sidebaricon" viewBox = "0 0 16 16" >
< use xlink:href = "assets/bootstrap-icons.svg#github" / >
2021-01-31 17:16:39 -08:00
< / svg > < ng-container i18n > GitHub< / ng-container >
< / a >
2022-02-20 01:21:30 +01:00
< a class = "nav-link-additional small text-muted ms-3" target = "_blank" rel = "noopener noreferrer" href = "https://github.com/paperless-ngx/paperless-ngx/discussions/categories/feature-requests" title = "Suggest an idea" >
2022-04-01 01:47:21 -07:00
< svg xmlns = "http://www.w3.org/2000/svg" width = "1.1em" height = "1.1em" fill = "currentColor" class = "me-1" viewBox = "0 0 16 16" >
< use xlink:href = "assets/bootstrap-icons.svg#lightbulb" / >
2021-01-31 17:16:39 -08:00
< / svg >
< ng-container i18n > Suggest an idea< / ng-container >
< / a >
< / div >
2021-01-31 16:31:32 -08:00
< / li >
2021-02-02 23:58:11 +01:00
< li class = "nav-item mt-2" >
2022-04-01 01:53:59 -07:00
< div class = "px-3 py-2 text-muted small d-flex align-items-center flex-wrap" >
< div class = "me-3" > {{ versionString }}< / div >
2022-04-02 10:10:49 -07:00
< div * ngIf = "appRemoteVersion" class = "version-check" >
< ng-template # updateAvailablePopContent >
2022-05-11 08:26:24 +02:00
< span class = "small" > Paperless-ngx {{ appRemoteVersion.version }} < ng-container i18n > is available.< / ng-container > < br / > < ng-container i18n > Click to view.< / ng-container > < / span >
2022-04-01 01:53:59 -07:00
< / ng-template >
2022-04-02 10:10:49 -07:00
< ng-template # updateCheckingNotEnabledPopContent >
< span class = "small" > < ng-container i18n > Checking for updates is disabled.< / ng-container > < br / > < ng-container i18n > Click for more information.< / ng-container > < / span >
< / ng-template >
< ng-container * ngIf = "appRemoteVersion.feature_is_set; else updateCheckNotSet" >
< a * ngIf = "appRemoteVersion.update_available" class = "small text-decoration-none" target = "_blank" rel = "noopener noreferrer" href = "https://github.com/paperless-ngx/paperless-ngx/releases"
[ngbPopover]="updateAvailablePopContent" popoverClass="shadow" triggers="mouseenter:mouseleave" container="body">
< svg fill = "currentColor" class = "me-1" width = "1.2em" height = "1.2em" style = "vertical-align: text-top;" viewBox = "0 0 16 16" >
< use xlink:href = "assets/bootstrap-icons.svg#info-circle" / >
< / svg >
< ng-container * ngIf = "appRemoteVersion?.update_available" i18n > Update available< / ng-container >
< / a >
< / ng-container >
< ng-template # updateCheckNotSet >
< a class = "small text-decoration-none" target = "_blank" rel = "noopener noreferrer" href = "https://paperless-ngx.readthedocs.io/en/latest/configuration.html#update-checking"
[ngbPopover]="updateCheckingNotEnabledPopContent" popoverClass="shadow" triggers="mouseenter:mouseleave" container="body">
< svg fill = "currentColor" class = "me-1" width = "1.2em" height = "1.2em" style = "vertical-align: text-top;" viewBox = "0 0 16 16" >
< use xlink:href = "assets/bootstrap-icons.svg#info-circle" / >
< / svg >
< / a >
< / ng-template >
2022-04-01 01:53:59 -07:00
< / div >
2021-01-31 17:16:39 -08:00
< / div >
2020-11-22 16:33:26 +01:00
< / li >
2020-11-18 18:39:09 +01:00
< / ul >
2020-10-27 01:10:18 +01:00
< / div >
< / nav >
2022-02-20 01:21:30 +01:00
< main role = "main" class = "col-md-9 ms-sm-auto col-lg-10 px-md-4" >
2020-10-27 01:10:18 +01:00
< router-outlet > < / router-outlet >
< / main >
< / div >
2020-11-22 11:35:04 +01:00
< / div >