mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-12 17:04:46 +00:00
[ACA-1574] DocumentList - single click navigation (#513)
* single click navigation * fix tests * allow action on row * use adf link class * update tests
This commit is contained in:
parent
36629adf99
commit
af4089ae74
@ -44,6 +44,7 @@ export class DataTable extends Component {
|
||||
selectedRow: '.adf-datatable-row.is-selected',
|
||||
cell: '.adf-data-table-cell',
|
||||
locationLink: 'aca-location-link',
|
||||
linkCell: '.adf-location-cell',
|
||||
|
||||
selectedIcon: '.mat-icon',
|
||||
|
||||
@ -59,6 +60,7 @@ export class DataTable extends Component {
|
||||
body: ElementFinder = this.component.element(by.css(DataTable.selectors.body));
|
||||
cell = by.css(DataTable.selectors.cell);
|
||||
locationLink = by.css(DataTable.selectors.locationLink);
|
||||
linkCell: ElementFinder = this.component.element(by.css(DataTable.selectors.linkCell));
|
||||
emptyList: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListContainer));
|
||||
emptyFolderDragAndDrop: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyFolderDragAndDrop));
|
||||
emptyListTitle: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListTitle));
|
||||
@ -139,10 +141,18 @@ export class DataTable extends Component {
|
||||
return this.body.element(by.cssContainingText(`.adf-data-table-cell span`, name));
|
||||
}
|
||||
|
||||
getRowLink(name: string): ElementFinder {
|
||||
return this.body.element(by.cssContainingText(`.adf-data-table-cell a`, name));
|
||||
}
|
||||
|
||||
getItemNameTooltip(name: string): promise.Promise<string> {
|
||||
return this.getRowName(name).getAttribute('title');
|
||||
}
|
||||
|
||||
getLinkCellTooltip(name: string): promise.Promise<string> {
|
||||
return this.getRowLink(name).getAttribute('title');
|
||||
}
|
||||
|
||||
countRows(): promise.Promise<number> {
|
||||
return this.getRows().count();
|
||||
}
|
||||
|
@ -150,12 +150,12 @@ describe('File Libraries', () => {
|
||||
});
|
||||
|
||||
it('Tooltip for sites without description [C217096]', () => {
|
||||
const tooltip = dataTable.getItemNameTooltip(sitePrivate);
|
||||
const tooltip = dataTable.getLinkCellTooltip(sitePrivate);
|
||||
expect(tooltip).toBe(`${sitePrivate}`);
|
||||
});
|
||||
|
||||
it('Tooltip for sites with description [C217097]', () => {
|
||||
const tooltip = dataTable.getItemNameTooltip(siteModerated);
|
||||
const tooltip = dataTable.getLinkCellTooltip(siteModerated);
|
||||
expect(tooltip).toBe(`${siteDescription}`);
|
||||
});
|
||||
});
|
||||
|
@ -147,7 +147,7 @@
|
||||
[allowDropFiles]="true"
|
||||
[navigate]="false"
|
||||
[imageResolver]="imageResolver"
|
||||
(node-dblclick)="onNodeDoubleClick($event.detail?.node)">
|
||||
(node-dblclick)="navigateTo($event.detail?.node)">
|
||||
|
||||
<data-columns>
|
||||
<data-column
|
||||
@ -158,11 +158,15 @@
|
||||
</data-column>
|
||||
|
||||
<data-column
|
||||
class="adf-data-table-cell--ellipsis__name"
|
||||
class="adf-data-table-cell--ellipsis__name adf-location-cell"
|
||||
key="name"
|
||||
title="APP.DOCUMENT_LIST.COLUMNS.NAME">
|
||||
<ng-template let-value="value" let-context>
|
||||
<span class="adf-datatable-cell" title="{{ context?.row?.obj | adfNodeNameTooltip }}">{{ value }}</span>
|
||||
<a
|
||||
title="{{ context?.row?.obj | adfNodeNameTooltip }}"
|
||||
(click)="navigateTo(context?.row?.obj)">
|
||||
{{ value }}
|
||||
</a>
|
||||
</ng-template>
|
||||
</data-column>
|
||||
|
||||
|
@ -118,7 +118,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy {
|
||||
});
|
||||
}
|
||||
|
||||
onNodeDoubleClick(node: MinimalNodeEntity) {
|
||||
navigateTo(node: MinimalNodeEntity) {
|
||||
if (node && node.entry) {
|
||||
const { id, isFolder } = node.entry;
|
||||
|
||||
|
@ -49,7 +49,7 @@
|
||||
selectionMode="single"
|
||||
[navigate]="false"
|
||||
[sorting]="[ 'title', 'asc' ]"
|
||||
(node-dblclick)="onNodeDoubleClick($event)">
|
||||
(node-dblclick)="navigateTo($event.detail?.node)">
|
||||
|
||||
<empty-folder-content>
|
||||
<ng-template>
|
||||
@ -70,13 +70,15 @@
|
||||
</data-column>
|
||||
|
||||
<data-column
|
||||
class="adf-data-table-cell--ellipsis__name"
|
||||
class="adf-data-table-cell--ellipsis__name adf-location-cell"
|
||||
key="title"
|
||||
title="APP.DOCUMENT_LIST.COLUMNS.TITLE">
|
||||
<ng-template let-context>
|
||||
<span class="adf-datatable-cell" title="{{ makeLibraryTooltip(context.row.obj.entry) }}">
|
||||
<a
|
||||
title="{{ makeLibraryTooltip(context.row.obj.entry) }}"
|
||||
(click)="navigateTo(context?.row?.obj)">
|
||||
{{ makeLibraryTitle(context.row.obj.entry) }}
|
||||
</span>
|
||||
</a>
|
||||
</ng-template>
|
||||
</data-column>
|
||||
|
||||
|
@ -163,35 +163,23 @@ describe('LibrariesComponent', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('onNodeDoubleClick', () => {
|
||||
it('navigates to document', () => {
|
||||
describe('navigateTo', () => {
|
||||
it('navigates into library folder', () => {
|
||||
spyOn(component, 'navigate');
|
||||
|
||||
const event: any = {
|
||||
detail: {
|
||||
node: {
|
||||
const site: any = {
|
||||
entry: { guid: 'node-guid' }
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
component.onNodeDoubleClick(event);
|
||||
component.navigateTo(site);
|
||||
|
||||
expect(component.navigate).toHaveBeenCalledWith('node-guid');
|
||||
});
|
||||
|
||||
it(' does not navigate when document is not provided', () => {
|
||||
it(' does not navigate when library is not provided', () => {
|
||||
spyOn(component, 'navigate');
|
||||
|
||||
const event: any = {
|
||||
detail: {
|
||||
node: {
|
||||
entry: null
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
component.onNodeDoubleClick(event);
|
||||
component.navigateTo(null);
|
||||
|
||||
expect(component.navigate).not.toHaveBeenCalled();
|
||||
});
|
||||
|
@ -84,11 +84,9 @@ export class LibrariesComponent extends PageComponent implements OnInit {
|
||||
return isDuplicate ? `${title} (${id})` : `${title}`;
|
||||
}
|
||||
|
||||
onNodeDoubleClick(e: CustomEvent) {
|
||||
const node: any = e.detail.node.entry;
|
||||
|
||||
if (node && node.guid) {
|
||||
this.navigate(node.guid);
|
||||
navigateTo(node: SiteEntry) {
|
||||
if (node && node.entry.guid) {
|
||||
this.navigate(node.entry.guid);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user