Merge branch 'feature/shared-content' of https://bitbucket.org/equilibriumito/gabinete-digital-fo into feature/shared-content

This commit is contained in:
Eudes Inácio
2023-12-01 12:19:37 +01:00
12 changed files with 155 additions and 24 deletions
@@ -9,6 +9,7 @@ import { ViewPublicationsPage } from './view-publications.page';
import { Attributes, IntersectionObserverHooks, LazyLoadImageModule, LAZYLOAD_IMAGE_HOOKS } from 'ng-lazyload-image';
import { PublicationCardPageModule } from './publication-card/publication-card.module'
import { ShowMorePageModule } from './show-more/show-more.module';
import { VisibilityDirective } from 'src/app/services/directives/visibility.directive';
export class LazyLoadImageHooks extends IntersectionObserverHooks {
setup(attributes: Attributes) {
attributes.offset = 10;
@@ -30,7 +31,7 @@ setup(attributes: Attributes) {
PublicationCardPageModule
],
exports: [ViewPublicationsPage],
declarations: [ViewPublicationsPage],
declarations: [ViewPublicationsPage, VisibilityDirective],
providers: [{provide: LAZYLOAD_IMAGE_HOOKS, useClass: LazyLoadImageHooks}],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
@@ -34,19 +34,22 @@
<ion-refresher-content>
</ion-refresher-content>
</ion-refresher>
<div class="main-container px-20" *ngIf="publicationFolderService.FolderDetails[folderId]">
<div class="main-container px-20" *ngIf="publicationFolderService.FolderDetails[folderId]" class="VideoManager" #VideoManager>
<p class="item-content-detail">{{publicationFolderService.FolderDetails[folderId].Detail}}</p>
<ion-card *ngFor="let publication of publicationFolderService.publicationList[folderId] let i = index">
<ion-card-content>
<swiper-container [modules]="swiperModules" [speed]=400 navigation="true" [pagination]="{clickable: true, dynamicBullets: true }">
<swiper-slide *ngFor="let files of publication.Files let k = index">
<div (click)="viewPublicationDetail(publication.DocumentId, publication.ProcessId)">
<img *ngIf="checkFileType.checkFileType(files.FileExtension ) == 'image'" class="post-img cursor-pointer"
<img *ngIf="checkFileType.checkFileType(files.FileExtension ) == 'image'" class="post-img cursor-pointer"
[lazyLoad]="'data:image/jpg;base64,' + files.FileBase64">
<video #myVideo *ngIf="checkFileType.checkFileType(files.FileExtension ) == 'video'" class="post-video" controls="controls" preload="metadata"
<video [appVisibility]="onVisibilityChange" #myVideo *ngIf="checkFileType.checkFileType(files.FileExtension ) == 'video'" class="post-video" controls="controls" preload="metadata"
webkit-playsinline="webkit-playsinline" class="videoPlayer">
<source [src]="'data:video/mp4;base64,' + files.FileBase64" type="video/mp4">
</video>
@@ -15,6 +15,7 @@ import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
import { PublicationFolderService } from 'src/app/store/publication-folder.service';
import { AskModalPage } from 'src/app/modals/ask-modal/ask-modal.page';
import { checkFileTypeService } from 'src/app/services/checkFileType.service';
import { PublicationVideoManagerService } from "src/app/services/publication/publication-video-manager.service"
@Component({
selector: 'app-view-publications',
@@ -41,6 +42,8 @@ export class ViewPublicationsPage implements OnInit {
swiperModules = [IonicSlides];
@ViewChild('myVideo') myVideo: any;
@ViewChild('VideoManager') VideoManager;
public lastScrollTop = 0;
public isHidden = false;
@@ -53,11 +56,28 @@ export class ViewPublicationsPage implements OnInit {
public p: PermissionService,
private httpErrorHandle: HttpErrorHandle,
public publicationFolderService: PublicationFolderService,
public checkFileType: checkFileTypeService
public checkFileType: checkFileTypeService,
private publicationVideoManagerService: PublicationVideoManagerService
) {
setTimeout(()=> {
// console.log("this.VideoManager", this.VideoManager, document.querySelector('.VideoManager'))
this.publicationVideoManagerService.setContainer(this.VideoManager.nativeElement)
}, 2000)
// this.publicationVideoManagerService.setContainer(this.VideoManager.nativeElement)
this.createPublicationList()
}
onVisibilityChange = (e: boolean) => {
console.log("nice to have", e)
if(!e) {
this.stopVideo()
}
}
ngOnInit() {
if (typeof (this.folderId) == 'object') {
this.folderId = this.folderId['ProcessId']
@@ -92,6 +112,9 @@ export class ViewPublicationsPage implements OnInit {
this.getPublicationsIds();
this.stopVideo();
}
@@ -298,15 +321,19 @@ export class ViewPublicationsPage implements OnInit {
}
stopVideo() {
this.myVideo.nativeElement.pause();
this.myVideo.nativeElement.currentTime = 0;
var videos = document.querySelectorAll('video');
// Pause each video
videos.forEach(function (video) {
video.pause();
})
}
public onScroll(event): void {
if(this.lastScrollTop < event.detail.scrollTop) {
console.log("scrolling down")
// console.log("scrolling down")
} else {
console.log("scrolling up")
// console.log("scrolling up")
}
this.lastScrollTop = event.detail.scrollTop;