2017-07-16 23:15:42 +08:00
|
|
|
<div #photoContainer class="photo-container" (mouseover)="mouseOver()" (mouseout)="mouseOut()">
|
2018-11-23 02:12:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
<img #img [src]="thumbnail.Src | fixOrientation:gridPhoto.Orientation | async"
|
2018-11-02 17:40:09 +08:00
|
|
|
*ngIf="thumbnail.Available">
|
2016-06-17 17:25:15 +08:00
|
|
|
|
2018-11-23 02:12:10 +08:00
|
|
|
<div *ngIf="gridPhoto.isVideo()" class="video-indicator"
|
|
|
|
[style.marginTop.px]="-container.nativeElement.offsetHeight"
|
|
|
|
[style.marginLeft.px]="container.nativeElement.offsetWidth">
|
|
|
|
{{gridPhoto.Video.metadata.duration | duration}} <span class="oi oi-video"></span></div>
|
|
|
|
|
2018-05-04 07:17:08 +08:00
|
|
|
<app-gallery-grid-photo-loading
|
2017-07-18 05:11:35 +08:00
|
|
|
[error]="thumbnail.Error"
|
2017-07-16 02:23:02 +08:00
|
|
|
[animate]="thumbnail.loading"
|
|
|
|
*ngIf="!thumbnail.Available">
|
2018-05-04 07:17:08 +08:00
|
|
|
</app-gallery-grid-photo-loading>
|
2016-06-17 06:05:31 +08:00
|
|
|
|
2017-07-16 02:23:02 +08:00
|
|
|
<!--Info box -->
|
|
|
|
<div #info class="info"
|
|
|
|
*ngIf="infoBar.visible"
|
|
|
|
[style.margin-top.px]="infoBar.marginTop"
|
2018-05-08 03:42:32 +08:00
|
|
|
[style.background]="infoBar.background"
|
|
|
|
[style.width.px]="container.nativeElement.offsetWidth">
|
2018-11-05 02:28:32 +08:00
|
|
|
<div class="photo-name">{{gridPhoto.media.name}}</div>
|
2016-05-16 00:52:07 +08:00
|
|
|
|
2018-05-14 04:59:57 +08:00
|
|
|
<div class="photo-position" *ngIf="gridPhoto.hasPositionData()">
|
|
|
|
<span class="oi oi-map-marker"></span>
|
2017-07-16 02:23:02 +08:00
|
|
|
<ng-template [ngIf]="getPositionText()">
|
|
|
|
<a [routerLink]="['/search', getPositionText(), {type:SearchTypes[SearchTypes.position]}]"
|
|
|
|
*ngIf="searchEnabled">
|
|
|
|
{{getPositionText()}}
|
|
|
|
</a>
|
|
|
|
<span *ngIf="!searchEnabled">{{getPositionText()}}</span>
|
|
|
|
</ng-template>
|
|
|
|
</div>
|
2016-05-16 00:52:07 +08:00
|
|
|
|
2018-11-05 02:28:32 +08:00
|
|
|
<div class="photo-keywords" *ngIf="gridPhoto.media.metadata.keywords && gridPhoto.media.metadata.keywords.length">
|
|
|
|
<ng-template ngFor let-keyword [ngForOf]="gridPhoto.media.metadata.keywords" let-last="last">
|
2017-07-16 02:23:02 +08:00
|
|
|
<a *ngIf="searchEnabled"
|
|
|
|
[routerLink]="['/search', keyword, {type: SearchTypes[SearchTypes.keyword]}]">#{{keyword}}</a>
|
|
|
|
<span *ngIf="!searchEnabled">#{{keyword}}</span>
|
2018-11-02 17:40:09 +08:00
|
|
|
<ng-template [ngIf]="!last">,</ng-template>
|
2017-07-16 02:23:02 +08:00
|
|
|
</ng-template>
|
2016-05-16 00:52:07 +08:00
|
|
|
|
|
|
|
</div>
|
2017-07-16 02:23:02 +08:00
|
|
|
</div>
|
2017-06-11 04:32:56 +08:00
|
|
|
</div>
|