Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/files_videoplayer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2016-12-03 00:38:45 +0300
committerRobin Appelman <robin@icewind.nl>2016-12-03 00:38:45 +0300
commit8f038bb25466a19cc0b3f49222c6351682e96c85 (patch)
tree957bf5f38f0c40571807494056025d454f0ec569
parentee36769e0b8b0857fc5fde710315acf5fea10591 (diff)
rich sidebar previews in the sidebar
Signed-off-by: Robin Appelman <robin@icewind.nl>
-rwxr-xr-xjs/viewer.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/js/viewer.js b/js/viewer.js
index 63f32c5..18baf09 100755
--- a/js/viewer.js
+++ b/js/viewer.js
@@ -115,3 +115,50 @@ $(document).ready(function(){
}
});
+
+(function () {
+
+ var SidebarPreview = function () {
+ };
+
+ SidebarPreview.prototype = {
+ attach: function (manager) {
+ var handler = this.handlePreview.bind(this);
+ $.each(videoViewer.mimeTypes, function (key, value) {
+ if (value !== 'text') { // let the regular text preview handle this
+ manager.addPreviewHandler(value, handler);
+ }
+ });
+ },
+
+ handlePreview: function (model, $thumbnailDiv, $thumbnailContainer, fallback) {
+ var video = document.createElement('video');
+ if (video.canPlayType(model.get('mimetype'))) {
+ $thumbnailContainer.addClass('large');
+ $thumbnailDiv.removeClass('icon-32');
+ $thumbnailDiv.children('.stretcher').remove();
+ video.src = OC.linkToRemoteBase('files' + model.getFullPath());
+ video.autoplay = true;
+ video.muted = true;
+ video.loop = true;
+ video.addEventListener('loadeddata', function () {
+ $thumbnailDiv.removeClass('icon-loading');
+ setTimeout(video.play.bind(video), 100);
+ });
+ $thumbnailDiv.append(video);
+ video.load();
+ video.onclick = function() {
+ if (video.paused) {
+ video.play();
+ } else {
+ video.pause();
+ }
+ };
+ } else {
+ fallback();
+ }
+ }
+ };
+
+ OC.Plugins.register('OCA.Files.SidebarPreviewManager', new SidebarPreview());
+})();