Unify list styling, add tour step, refactor components

This commit is contained in:
shamoon 2023-09-22 21:59:22 -07:00
parent e0f22d8734
commit 782113a526
8 changed files with 45 additions and 34 deletions

View File

@ -21,7 +21,7 @@ import {
PermissionAction, PermissionAction,
PermissionType, PermissionType,
} from './services/permissions.service' } from './services/permissions.service'
import { ConsumptionTemplatesListComponent } from './components/manage/consumption-templates-list/consumption-templates-list.component' import { ConsumptionTemplatesComponent } from './components/manage/consumption-templates/consumption-templates.component'
import { MailComponent } from './components/manage/mail/mail.component' import { MailComponent } from './components/manage/mail/mail.component'
import { UsersAndGroupsComponent } from './components/admin/users-groups/users-groups.component' import { UsersAndGroupsComponent } from './components/admin/users-groups/users-groups.component'
@ -191,7 +191,7 @@ export const routes: Routes = [
}, },
{ {
path: 'templates', path: 'templates',
component: ConsumptionTemplatesListComponent, component: ConsumptionTemplatesComponent,
canActivate: [PermissionsGuard], canActivate: [PermissionsGuard],
data: { data: {
requiredPermission: { requiredPermission: {

View File

@ -187,6 +187,14 @@ export class AppComponent implements OnInit, OnDestroy {
offset: 0, offset: 0,
}, },
}, },
{
anchorId: 'tour.consumption-templates',
content: $localize`Consumption templates give you finer control over the document ingestion process.`,
route: '/templates',
backdropConfig: {
offset: 0,
},
},
{ {
anchorId: 'tour.file-tasks', anchorId: 'tour.file-tasks',
content: $localize`File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process.`, content: $localize`File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process.`,

View File

@ -95,7 +95,7 @@ import { UsernamePipe } from './pipes/username.pipe'
import { LogoComponent } from './components/common/logo/logo.component' import { LogoComponent } from './components/common/logo/logo.component'
import { IsNumberPipe } from './pipes/is-number.pipe' import { IsNumberPipe } from './pipes/is-number.pipe'
import { ShareLinksDropdownComponent } from './components/common/share-links-dropdown/share-links-dropdown.component' import { ShareLinksDropdownComponent } from './components/common/share-links-dropdown/share-links-dropdown.component'
import { ConsumptionTemplatesListComponent } from './components/manage/consumption-templates-list/consumption-templates-list.component' import { ConsumptionTemplatesComponent } from './components/manage/consumption-templates/consumption-templates.component'
import { ConsumptionTemplateEditDialogComponent } from './components/common/edit-dialog/consumption-template-edit-dialog/consumption-template-edit-dialog.component' import { ConsumptionTemplateEditDialogComponent } from './components/common/edit-dialog/consumption-template-edit-dialog/consumption-template-edit-dialog.component'
import { MailComponent } from './components/manage/mail/mail.component' import { MailComponent } from './components/manage/mail/mail.component'
import { UsersAndGroupsComponent } from './components/admin/users-groups/users-groups.component' import { UsersAndGroupsComponent } from './components/admin/users-groups/users-groups.component'
@ -237,7 +237,7 @@ function initializeApp(settings: SettingsService) {
LogoComponent, LogoComponent,
IsNumberPipe, IsNumberPipe,
ShareLinksDropdownComponent, ShareLinksDropdownComponent,
ConsumptionTemplatesListComponent, ConsumptionTemplatesComponent,
ConsumptionTemplateEditDialogComponent, ConsumptionTemplateEditDialogComponent,
MailComponent, MailComponent,
UsersAndGroupsComponent, UsersAndGroupsComponent,

View File

@ -155,7 +155,7 @@
</svg><span>&nbsp;<ng-container i18n>Storage paths</ng-container></span> </svg><span>&nbsp;<ng-container i18n>Storage paths</ng-container></span>
</a> </a>
</li> </li>
<li class="nav-item" *pngxIfPermissions="{ action: PermissionAction.View, type: PermissionType.ConsumptionTemplate }"> <li class="nav-item" *pngxIfPermissions="{ action: PermissionAction.View, type: PermissionType.ConsumptionTemplate }" tourAnchor="tour.consumption-templates">
<a class="nav-link" routerLink="templates" routerLinkActive="active" (click)="closeMenu()" ngbPopover="Consumption templates" i18n-ngbPopover [disablePopover]="!slimSidebarEnabled" placement="end" container="body" triggers="mouseenter:mouseleave" popoverClass="popover-slim"> <a class="nav-link" routerLink="templates" routerLinkActive="active" (click)="closeMenu()" ngbPopover="Consumption templates" i18n-ngbPopover [disablePopover]="!slimSidebarEnabled" placement="end" container="body" triggers="mouseenter:mouseleave" popoverClass="popover-slim">
<svg class="sidebaricon" fill="currentColor"> <svg class="sidebaricon" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#file-earmark-ruled"/> <use xlink:href="assets/bootstrap-icons.svg#file-earmark-ruled"/>

View File

@ -5,29 +5,32 @@
</svg> </svg>
<ng-container i18n>Add Template</ng-container> <ng-container i18n>Add Template</ng-container>
</button> </button>
</pngx-page-header> </pngx-page-header>
<table class="table table-striped align-middle border shadow-sm"> <ul class="list-group">
<thead>
<tr> <li class="list-group-item">
<th scope="col" i18n>Name</th> <div class="row">
<th scope="col" i18n>Sort order</th> <div class="col" i18n>Name</div>
<th scope="col" i18n>Document Sources</th> <div class="col" i18n>Sort order</div>
<th scope="col" i18n>Actions</th> <div class="col" i18n>Document Sources</div>
</tr> <div class="col" i18n>Actions</div>
</thead> </div>
<tbody> </li>
<tr *ngFor="let template of templates">
<td scope="row"><button class="btn btn-link p-0" type="button" (click)="editTemplate(template)" [disabled]="!permissionsService.currentUserCan(PermissionAction.Change, PermissionType.ConsumptionTemplate)">{{template.name}}</button></td> <li *ngFor="let template of templates" class="list-group-item">
<td scope="row"><code>{{template.order}}</code></td> <div class="row">
<td scope="row">{{getSourceList(template)}}</td> <div class="col d-flex align-items-center"><button class="btn btn-link p-0" type="button" (click)="editTemplate(template)" [disabled]="!permissionsService.currentUserCan(PermissionAction.Change, PermissionType.ConsumptionTemplate)">{{template.name}}</button></div>
<td scope="row"> <div class="col d-flex align-items-center"><code>{{template.order}}</code></div>
<div class="col d-flex align-items-center">{{getSourceList(template)}}</div>
<div class="col">
<div class="btn-group"> <div class="btn-group">
<button *pngxIfPermissions="{ action: PermissionAction.Change, type: PermissionType.ConsumptionTemplate }" class="btn btn-sm btn-primary" type="button" (click)="editTemplate(template)" i18n>Edit</button> <button *pngxIfPermissions="{ action: PermissionAction.Change, type: PermissionType.ConsumptionTemplate }" class="btn btn-sm btn-primary" type="button" (click)="editTemplate(template)" i18n>Edit</button>
<button *pngxIfPermissions="{ action: PermissionAction.Delete, type: PermissionType.ConsumptionTemplate }" class="btn btn-sm btn-outline-danger" type="button" (click)="deleteTemplate(template)" i18n>Delete</button> <button *pngxIfPermissions="{ action: PermissionAction.Delete, type: PermissionType.ConsumptionTemplate }" class="btn btn-sm btn-outline-danger" type="button" (click)="deleteTemplate(template)" i18n>Delete</button>
</div> </div>
</td> </div>
</tr> </div>
</tbody> </li>
</table> </ul>
<div *ngIf="templates.length === 0" i18n>No templates defined.</div> <div *ngIf="templates.length === 0" i18n>No templates defined.</div>

View File

@ -18,7 +18,7 @@ import { ConsumptionTemplateService } from 'src/app/services/rest/consumption-te
import { ToastService } from 'src/app/services/toast.service' import { ToastService } from 'src/app/services/toast.service'
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component' import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
import { PageHeaderComponent } from '../../common/page-header/page-header.component' import { PageHeaderComponent } from '../../common/page-header/page-header.component'
import { ConsumptionTemplatesListComponent } from './consumption-templates-list.component' import { ConsumptionTemplatesComponent } from './consumption-templates.component'
import { ConsumptionTemplateEditDialogComponent } from '../../common/edit-dialog/consumption-template-edit-dialog/consumption-template-edit-dialog.component' import { ConsumptionTemplateEditDialogComponent } from '../../common/edit-dialog/consumption-template-edit-dialog/consumption-template-edit-dialog.component'
import { PermissionsService } from 'src/app/services/permissions.service' import { PermissionsService } from 'src/app/services/permissions.service'
@ -48,8 +48,8 @@ const templates: PaperlessConsumptionTemplate[] = [
] ]
describe('ConsumptionTemplatesComponent', () => { describe('ConsumptionTemplatesComponent', () => {
let component: ConsumptionTemplatesListComponent let component: ConsumptionTemplatesComponent
let fixture: ComponentFixture<ConsumptionTemplatesListComponent> let fixture: ComponentFixture<ConsumptionTemplatesComponent>
let consumptionTemplateService: ConsumptionTemplateService let consumptionTemplateService: ConsumptionTemplateService
let modalService: NgbModal let modalService: NgbModal
let toastService: ToastService let toastService: ToastService
@ -57,7 +57,7 @@ describe('ConsumptionTemplatesComponent', () => {
beforeEach(() => { beforeEach(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [ declarations: [
ConsumptionTemplatesListComponent, ConsumptionTemplatesComponent,
IfPermissionsDirective, IfPermissionsDirective,
PageHeaderComponent, PageHeaderComponent,
ConfirmDialogComponent, ConfirmDialogComponent,
@ -92,7 +92,7 @@ describe('ConsumptionTemplatesComponent', () => {
modalService = TestBed.inject(NgbModal) modalService = TestBed.inject(NgbModal)
toastService = TestBed.inject(ToastService) toastService = TestBed.inject(ToastService)
fixture = TestBed.createComponent(ConsumptionTemplatesListComponent) fixture = TestBed.createComponent(ConsumptionTemplatesComponent)
component = fixture.componentInstance component = fixture.componentInstance
fixture.detectChanges() fixture.detectChanges()
}) })

View File

@ -14,11 +14,11 @@ import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dial
import { EditDialogMode } from '../../common/edit-dialog/edit-dialog.component' import { EditDialogMode } from '../../common/edit-dialog/edit-dialog.component'
@Component({ @Component({
selector: 'pngx-consumption-templates-list', selector: 'pngx-consumption-templates',
templateUrl: './consumption-templates-list.component.html', templateUrl: './consumption-templates.component.html',
styleUrls: ['./consumption-templates-list.component.scss'], styleUrls: ['./consumption-templates.component.scss'],
}) })
export class ConsumptionTemplatesListComponent export class ConsumptionTemplatesComponent
extends ComponentWithPermissions extends ComponentWithPermissions
implements OnInit implements OnInit
{ {