[ADF-2455] fix properly fall back datatable thumbnail

fix search node selector
drop down list style
This commit is contained in:
Eugenio Romano
2018-04-17 01:19:59 +01:00
parent c8cbc8d645
commit 0a8438954b
10 changed files with 41 additions and 20 deletions

View File

@@ -29,7 +29,7 @@ install:
if ([ "$TRAVIS_BRANCH" = "master" ]); then if ([ "$TRAVIS_BRANCH" = "master" ]); then
(./scripts/npm-build-all.sh || exit 1;); (./scripts/npm-build-all.sh || exit 1;);
else else
(./scripts/npm-build-all.sh -vjsapi alpha || exit 1;); (./scripts/npm-build-all.sh -vjsapi alpha -sb || exit 1;);
fi fi
fi fi

View File

@@ -252,7 +252,7 @@
</data-column> </data-column>
<data-column <data-column
title="{{'DOCUMENT_LIST.COLUMNS.CREATED_BY' | translate}}" title="{{'DOCUMENT_LIST.COLUMNS.CREATED_BY' | translate}}"
key="createdByUser.displayName" key="createdByUser?.displayName"
class="desktop-only"> class="desktop-only">
</data-column> </data-column>
<data-column <data-column

View File

@@ -7,7 +7,7 @@
data-automation-id="dropdown-breadcrumb-trigger"> data-automation-id="dropdown-breadcrumb-trigger">
<mat-icon [class.isRoot]="!hasPreviousNodes()">folder</mat-icon> <mat-icon [class.isRoot]="!hasPreviousNodes()">folder</mat-icon>
</button> </button>
<mat-icon class="adf-dropddown-breadcrumb-item-chevron">chevron_right</mat-icon> <mat-icon class="adf-dropdown-breadcrumb-item-chevron">chevron_right</mat-icon>
<mat-select <mat-select
#select #select

View File

@@ -17,6 +17,10 @@
background: transparent; background: transparent;
} }
&-dropdown-breadcrumb-item-chevron {
margin-top: 5px;
}
&-dropdown-breadcumb-trigger.isRoot { &-dropdown-breadcumb-trigger.isRoot {
cursor: not-allowed; cursor: not-allowed;
} }
@@ -35,8 +39,8 @@
&-current-folder { &-current-folder {
text-align: left; text-align: left;
line-height: 33px;
margin-left: $dropdownHorizontalOffset; margin-left: $dropdownHorizontalOffset;
line-height: 26px;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;

View File

@@ -92,6 +92,7 @@
<adf-infinite-pagination <adf-infinite-pagination
[target]="documentList" [target]="documentList"
[loading]="loadingSearchResults" [loading]="loadingSearchResults"
(loadMore)="getNextPageOfSearch($event)"
data-automation-id="content-node-selector-search-pagination"> data-automation-id="content-node-selector-search-pagination">
{{ 'ADF-DOCUMENT-LIST.LAYOUT.LOAD_MORE' | translate }} {{ 'ADF-DOCUMENT-LIST.LAYOUT.LOAD_MORE' | translate }}
</adf-infinite-pagination> </adf-infinite-pagination>

View File

@@ -324,6 +324,20 @@ export class ContentNodeSelectorPanelComponent implements OnInit, PaginatedCompo
return !this.showingSearchResults || this.chosenNode; return !this.showingSearchResults || this.chosenNode;
} }
/**
* Loads the next batch of search results
*
* @param event Pagination object
*/
getNextPageOfSearch(event: Pagination): void {
this.infiniteScroll = true;
this.skipCount = event.skipCount;
if (this.searchTerm.length > 0) {
this.querySearch();
}
}
/** /**
* Selects node as chosen if it has the right permission, clears the selection otherwise * Selects node as chosen if it has the right permission, clears the selection otherwise
* *

View File

@@ -380,6 +380,9 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
this.loadFolder(); this.loadFolder();
} else if (this.data) { } else if (this.data) {
if (changes.node && changes.node.currentValue) { if (changes.node && changes.node.currentValue) {
if (changes.node.currentValue.list.pagination) {
changes.node.currentValue.list.pagination.skipCount = 0;
}
this.data.loadPage(changes.node.currentValue); this.data.loadPage(changes.node.currentValue);
this.onDataReady(changes.node.currentValue); this.onDataReady(changes.node.currentValue);
} else if (changes.rowFilter) { } else if (changes.rowFilter) {
@@ -742,7 +745,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
this.currentFolderId = nodeId; this.currentFolderId = nodeId;
this.resetNewFolderPagination(); this.resetNewFolderPagination();
this.loadFolder(); this.loadFolder();
this.folderChange.emit(new NodeEntryEvent({id: nodeId})); this.folderChange.emit(new NodeEntryEvent({ id: nodeId }));
} }
private resetNewFolderPagination() { private resetNewFolderPagination() {

View File

@@ -726,7 +726,7 @@ describe('DataTable', () => {
expect(event.target.src).toBe(dataTable.fallbackThumbnail); expect(event.target.src).toBe(dataTable.fallbackThumbnail);
}); });
it('should replace image source only when fallback available', () => { it('should replace image source with miscellaneous icon when fallback is not available', () => {
const originalSrc = 'missing-image'; const originalSrc = 'missing-image';
let event = <any> { let event = <any> {
target: { target: {
@@ -736,7 +736,7 @@ describe('DataTable', () => {
dataTable.fallbackThumbnail = null; dataTable.fallbackThumbnail = null;
dataTable.onImageLoadingError(event); dataTable.onImageLoadingError(event);
expect(event.target.src).toBe(originalSrc); expect(event.target.src).toBe('./assets/images/ft_ic_miscellaneous.svg' );
}); });
it('should replace image source with icon if fallback is not available and mimeType is provided', () => { it('should replace image source with icon if fallback is not available and mimeType is provided', () => {

View File

@@ -162,11 +162,9 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck
private singleClickStreamSub: Subscription; private singleClickStreamSub: Subscription;
private multiClickStreamSub: Subscription; private multiClickStreamSub: Subscription;
constructor( constructor(private elementRef: ElementRef,
private elementRef: ElementRef,
differs: IterableDiffers, differs: IterableDiffers,
private thumbnailService?: ThumbnailService private thumbnailService?: ThumbnailService) {
) {
if (differs) { if (differs) {
this.differ = differs.find([]).create(null); this.differ = differs.find([]).create(null);
} }
@@ -427,13 +425,15 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck
} }
onImageLoadingError(event: Event, mimeType?: string) { onImageLoadingError(event: Event, mimeType?: string) {
if (mimeType && !this.fallbackThumbnail) {
this.fallbackThumbnail = this.thumbnailService.getMimeTypeIcon(mimeType);
}
if (event && this.fallbackThumbnail) { if (event) {
let element = <any> event.target; let element = <any> event.target;
if (this.fallbackThumbnail) {
element.src = this.fallbackThumbnail; element.src = this.fallbackThumbnail;
} else {
element.src = this.thumbnailService.getMimeTypeIcon(mimeType);
}
} }
} }

View File

@@ -62,7 +62,6 @@ export class InfinitePaginationComponent implements OnInit, OnDestroy, Paginatio
@Input('loading') @Input('loading')
isLoading: boolean = false; isLoading: boolean = false;
/** @deprecated 2.3.0 use the paginated component interface to use it. */
/** Emitted when the "Load More" button is clicked. */ /** Emitted when the "Load More" button is clicked. */
@Output() @Output()
loadMore: EventEmitter<Pagination> = new EventEmitter<Pagination>(); loadMore: EventEmitter<Pagination> = new EventEmitter<Pagination>();