From 6a26a06ff32881e0b5b2a26843bb2472847503fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Wed, 26 Feb 2020 17:00:52 +0100 Subject: [PATCH] Fix 18 public folder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) Signed-off-by: npmbuildbot[bot] --- js/main.js | 4 ++-- js/main.js.map | 2 +- src/viewer.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/js/main.js b/js/main.js index 8760b41..e773180 100644 --- a/js/main.js +++ b/js/main.js @@ -1,4 +1,4 @@ -!function(e){function n(n){for(var i,o,l=n[0],r=n[1],a=0,s=[];a * @@ -19,5 +19,5 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -i.nc=btoa(OC.requestToken),i.p=OC.filePath("files_videoplayer","","js/");var t=null,o={UI:{show:function(){var e=document.createElement("source");e.src=escapeHTML(o.location).replace("&","&"),o.mime&&(e.type=escapeHTML(o.mime));var n=document.createElement("video");if(n.id="my_video_1",n.classList.add("video-js"),n.classList.add("vjs-fill"),n.classList.add("vjs-big-play-centered"),n.controls=!0,n.preload="auto",n.width="100%",n.height="100%",n.poster=OC.filePath("files_videoplayer","","img")+"/poster.png",n.setAttribute("data-setup",'{"techOrder": ["html5"]}'),n.appendChild(e),null===o.inline){var i=document.createElement("div");i.id="videoplayer_overlay";var l=document.createElement("div");l.id="videoplayer_outer_container";var r=document.createElement("div");r.id="videoplayer_container";var a=document.createElement("div");a.id="videoplayer",r.appendChild(a),l.appendChild(r),i.appendChild(l),a.appendChild(n),document.body.appendChild(i),i.addEventListener("click",function(e){e.target===this&&o.hidePlayer()}),setTimeout(function(){i.className="show"},0)}else{var d=document.createElement("div");d.id="videoplayer_view",d.appendChild(n),o.inline.appendChild(d)}t("my_video_1",{fill:!0}).ready(function(){if(o.player=this,null===o.inline){var e=document.createElement("a");e.className="icon-view-close",e.id="box-close",e.href="#",e.addEventListener("click",function(){o.hidePlayer()}),document.getElementById("my_video_1").appendChild(e)}null===document.getElementById("body-public")&&o.player.play()})},hide:function(){var e=document.getElementById("videoplayer_overlay");e.className="",setTimeout(function(){e.parentElement.removeChild(e)},500)}},mime:null,file:null,location:null,player:null,inline:null,mimeTypes:["video/mp4","video/x-m4v","video/webm","video/x-flv","video/ogg","video/quicktime","video/x-matroska"],mimeTypeAliasses:{"video/x-matroska":"video/webm"},onView:function(e,n){o.file=e,o.dir=n.dir,o.location=n.fileList.getDownloadUrl(e,o.dir),o.mime=n.$file.attr("data-mime"),o.mimeTypeAliasses.hasOwnProperty(o.mime)&&(o.mime=o.mimeTypeAliasses[o.mime]),o.showPlayer()},onViewInline:function(e,n,i){o.location=n,o.mime=i,o.mimeTypeAliasses.hasOwnProperty(o.mime)&&(o.mime=o.mimeTypeAliasses[o.mime]),o.inline=e,o.showPlayer()},showPlayer:function(){Promise.all([i.e(1),i.e(2)]).then(i.bind(null,3)).then(function(e){t=e.default,Promise.all([Promise.all([i.e(1),i.e(2)]).then(i.t.bind(null,1,7)),Promise.all([i.e(1),i.e(2)]).then(i.t.bind(null,2,7))]).then(function(){o.UI.show()})})},hidePlayer:function(){null!==o.player&&!1!==o.player&&null===o.inline&&(o.player.dispose(),o.player=!1,o.UI.hide())},log:function(e){console.log(e)}};document.addEventListener("DOMContentLoaded",function(){if(document.addEventListener("keyup",function(e){(void 0!==e.key&&"Escape"===e.key||void 0!==e.keyCode&&27===e.keyCode)&&o.hidePlayer()}),"undefined"!=typeof FileActions&&!OCA.Viewer)for(var e=0;e\n *\n * @author 2018 Christoph Wurst \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\n__webpack_nonce__ = btoa(OC.requestToken)\n__webpack_public_path__ = OC.filePath('files_videoplayer', '', 'js/')\n\nvar videojs = null;\n\nvar videoViewer = {\n\tUI: {\n\t\tshow: function () {\n\n\t\t\tvar source = document.createElement('source');\n\t\t\tsource.src = escapeHTML(videoViewer.location).replace('&', '&');\n\n\t\t\tif (videoViewer.mime) {\n\t\t\t\tsource.type = escapeHTML(videoViewer.mime);\n\t\t\t}\n\n\t\t\tvar playerView = document.createElement('video');\n\t\t\tplayerView.id = 'my_video_1';\n\t\t\tplayerView.classList.add('video-js');\n\t\t\tplayerView.classList.add('vjs-fill');\n\t\t\tplayerView.classList.add('vjs-big-play-centered');\n\t\t\tplayerView.controls = true;\n\t\t\tplayerView.preload = \"auto\";\n\t\t\tplayerView.width = \"100%\";\n\t\t\tplayerView.height = \"100%\";\n\t\t\tplayerView.poster = OC.filePath('files_videoplayer', '', 'img') + '/poster.png';\n\t\t\tplayerView.setAttribute('data-setup', '{\"techOrder\": [\"html5\"]}');\n\t\t\tplayerView.appendChild(source);\n\n\t\t\tif (videoViewer.inline === null) {\n\t\t\t\tvar overlay = document.createElement('div');\n\t\t\t\toverlay.id = 'videoplayer_overlay';\n\n\t\t\t\tvar outer_container = document.createElement('div');\n\t\t\t\touter_container.id = 'videoplayer_outer_container';\n\n\t\t\t\tvar container = document.createElement('div');\n\t\t\t\tcontainer.id = 'videoplayer_container';\n\n\t\t\t\tvar player = document.createElement('div');\n\t\t\t\tplayer.id = 'videoplayer';\n\n\t\t\t\tcontainer.appendChild(player);\n\t\t\t\touter_container.appendChild(container);\n\t\t\t\toverlay.appendChild(outer_container);\n\n\t\t\t\tplayer.appendChild(playerView);\n\t\t\t\tdocument.body.appendChild(overlay);\n\n\t\t\t\t// close when clicking on the overlay\n\t\t\t\toverlay.addEventListener('click', function(e) {\n\t\t\t\t\tif (e.target === this) {\n\t\t\t\t\t\tvideoViewer.hidePlayer();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tsetTimeout(() => { overlay.className = 'show'; }, 0);\n\t\t\t} else {\n\t\t\t\tvar wrapper = document.createElement('div');\n\t\t\t\twrapper.id = 'videoplayer_view';\n\t\t\t\twrapper.appendChild(playerView);\n\t\t\t\tvideoViewer.inline.appendChild(wrapper);\n\t\t\t}\n\t\t\t// initialize player\n\t\t\tvideojs(\"my_video_1\", {\n\t\t\t\tfill: true,\n\t\t\t}).ready(function () {\n\t\t\t\tvideoViewer.player = this;\n\t\t\t\tif (videoViewer.inline === null) {\n\t\t\t\t\t// append close button to video element\n\t\t\t\t\tvar closeButton = document.createElement('a');\n\t\t\t\t\tcloseButton.className = 'icon-view-close';\n\t\t\t\t\tcloseButton.id = 'box-close';\n\t\t\t\t\tcloseButton.href = '#';\n\t\t\t\t\tcloseButton.addEventListener('click', function () {\n\t\t\t\t\t\tvideoViewer.hidePlayer();\n\t\t\t\t\t});\n\t\t\t\t\tdocument.getElementById('my_video_1').appendChild(closeButton);\n\t\t\t\t}\n\t\t\t\t// autoplay\n\t\t\t\tif (document.getElementById('body-public') === null) {\n\t\t\t\t\tvideoViewer.player.play();\n\t\t\t\t}\n\t\t\t});\n\n\t\t},\n\t\thide: function () {\n\t\t\tvar overlay = document.getElementById('videoplayer_overlay');\n\t\t\toverlay.className = '';\n\t\t\tsetTimeout(() => {\n\t\t\t\toverlay.parentElement.removeChild(overlay);\n\t\t\t}, 500);\n\t\t}\n\t},\n\tmime: null,\n\tfile: null,\n\tlocation: null,\n\tplayer: null,\n\tinline: null,\n\tmimeTypes: [\n\t\t'video/mp4',\n\t\t'video/x-m4v',\n\t\t'video/webm',\n\t\t'video/x-flv',\n\t\t'video/ogg',\n\t\t'video/quicktime',\n\t\t'video/x-matroska'\n\t],\n\tmimeTypeAliasses: {\n\t\t'video/x-matroska': 'video/webm' // mkv support for Chrome. webm uses the same container format\n\t},\n\tonView: function (file, data) {\n\t\tvideoViewer.file = file;\n\t\tvideoViewer.dir = data.dir;\n\t\tvideoViewer.location = data.fileList.getDownloadUrl(file, videoViewer.dir);\n\t\tvideoViewer.mime = data.$file.attr('data-mime');\n\t\tif (videoViewer.mimeTypeAliasses.hasOwnProperty(videoViewer.mime)) {\n\t\t\tvideoViewer.mime = videoViewer.mimeTypeAliasses[videoViewer.mime];\n\t\t}\n\t\tvideoViewer.showPlayer();\n\t},\n\tonViewInline: function (element, file, mime) {\n\t\tvideoViewer.location = file;\n\t\tvideoViewer.mime = mime;\n\t\tif (videoViewer.mimeTypeAliasses.hasOwnProperty(videoViewer.mime)) {\n\t\t\tvideoViewer.mime = videoViewer.mimeTypeAliasses[videoViewer.mime];\n\t\t}\n\t\tvideoViewer.inline = element;\n\t\tvideoViewer.showPlayer();\n\t},\n\tshowPlayer: function () {\n\t\timport(/* webpackChunkName: \"videojs\" */ 'video.js').then((_videojs) => {\n\t\t\tvideojs = _videojs.default;\n\t\t\tPromise.all([\n\t\t\t\timport(/* webpackChunkName: \"videojs\" */ '../css/style.css'),\n\t\t\t\timport(/* webpackChunkName: \"videojs\" */'!style-loader!css-loader!video.js/dist/video-js.css')\n\t\t\t]).then(() => {\n\t\t\t\tvideoViewer.UI.show();\n\t\t\t});\n\t\t});\n\t},\n\thidePlayer: function () {\n\t\tif (videoViewer.player !== null && videoViewer.player !== false && videoViewer.inline === null) {\n\t\t\tvideoViewer.player.dispose();\n\t\t\tvideoViewer.player = false;\n\t\t\tvideoViewer.UI.hide();\n\t\t}\n\t},\n\tlog: function (message) {\n\t\tconsole.log(message);\n\t}\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\n\t// add event to ESC key\n\tdocument.addEventListener('keyup', function(e) {\n\t\tif ((e.key !== undefined && e.key === 'Escape') ||\n\t\t\t(e.keyCode !== undefined && e.keyCode === 27)) {\n\t\t\tvideoViewer.hidePlayer();\n\t\t}\n\t});\n\n\tif (typeof FileActions !== 'undefined' && !OCA.Viewer) {\n\t\tfor (var i = 0; i < videoViewer.mimeTypes.length; ++i) {\n\t\t\tvar mime = videoViewer.mimeTypes[i];\n\t\t\tOCA.Files.fileActions.register(mime, 'View', OC.PERMISSION_READ, '', videoViewer.onView);\n\t\t\tOCA.Files.fileActions.setDefault(mime, 'View');\n\t\t\tif (mime === mimetype) {\n\t\t\t\tisSupportedMimetype = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Public page magic\n\tif (document.getElementById('body-public') && document.getElementById('imgframe')) {\n\t\tvar mimetype = document.getElementById('mimetype').value;\n\t\tfor (var i = 0; i < videoViewer.mimeTypes.length; ++i) {\n\t\t\tif (videoViewer.mimeTypes[i] === mimetype) {\n\t\t\t\tvar videoUrl = window.location.href.split('?')[0] + '/download';\n\t\t\t\tvideoViewer.onViewInline(document.getElementById('imgframe'), videoUrl, mimetype);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/viewer.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","installedModules","0","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","1","2","jsonpScriptSrc","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","error","Error","request","undefined","setTimeout","head","appendChild","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","__webpack_nonce__","btoa","OC","requestToken","__webpack_public_path__","filePath","videojs","videoViewer","UI","show","source","escapeHTML","location","replace","mime","playerView","id","classList","add","controls","preload","width","height","poster","inline","overlay","outer_container","container","player","body","addEventListener","this","hidePlayer","className","wrapper","fill","ready","closeButton","href","getElementById","play","hide","parentElement","removeChild","file","mimeTypes","mimeTypeAliasses","video/x-matroska","onView","dir","fileList","getDownloadUrl","$file","attr","showPlayer","onViewInline","element","then","_videojs","default","dispose","log","message","keyCode","OCA","Files","fileActions","Viewer","register","PERMISSION_READ","setDefault","mimetype","isSupportedMimetype","videoUrl","split"],"mappings":"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","file":"main.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"1\":\"vendors~videojs\",\"2\":\"videojs\"}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/*\n * @copyright 2018 Christoph Wurst \n *\n * @author 2018 Christoph Wurst \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\n__webpack_nonce__ = btoa(OC.requestToken)\n__webpack_public_path__ = OC.filePath('files_videoplayer', '', 'js/')\n\nvar videojs = null;\n\nvar videoViewer = {\n\tUI: {\n\t\tshow: function () {\n\n\t\t\tvar source = document.createElement('source');\n\t\t\tsource.src = escapeHTML(videoViewer.location).replace('&', '&');\n\n\t\t\tif (videoViewer.mime) {\n\t\t\t\tsource.type = escapeHTML(videoViewer.mime);\n\t\t\t}\n\n\t\t\tvar playerView = document.createElement('video');\n\t\t\tplayerView.id = 'my_video_1';\n\t\t\tplayerView.classList.add('video-js');\n\t\t\tplayerView.classList.add('vjs-fill');\n\t\t\tplayerView.classList.add('vjs-big-play-centered');\n\t\t\tplayerView.controls = true;\n\t\t\tplayerView.preload = \"auto\";\n\t\t\tplayerView.width = \"100%\";\n\t\t\tplayerView.height = \"100%\";\n\t\t\tplayerView.poster = OC.filePath('files_videoplayer', '', 'img') + '/poster.png';\n\t\t\tplayerView.setAttribute('data-setup', '{\"techOrder\": [\"html5\"]}');\n\t\t\tplayerView.appendChild(source);\n\n\t\t\tif (videoViewer.inline === null) {\n\t\t\t\tvar overlay = document.createElement('div');\n\t\t\t\toverlay.id = 'videoplayer_overlay';\n\n\t\t\t\tvar outer_container = document.createElement('div');\n\t\t\t\touter_container.id = 'videoplayer_outer_container';\n\n\t\t\t\tvar container = document.createElement('div');\n\t\t\t\tcontainer.id = 'videoplayer_container';\n\n\t\t\t\tvar player = document.createElement('div');\n\t\t\t\tplayer.id = 'videoplayer';\n\n\t\t\t\tcontainer.appendChild(player);\n\t\t\t\touter_container.appendChild(container);\n\t\t\t\toverlay.appendChild(outer_container);\n\n\t\t\t\tplayer.appendChild(playerView);\n\t\t\t\tdocument.body.appendChild(overlay);\n\n\t\t\t\t// close when clicking on the overlay\n\t\t\t\toverlay.addEventListener('click', function(e) {\n\t\t\t\t\tif (e.target === this) {\n\t\t\t\t\t\tvideoViewer.hidePlayer();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tsetTimeout(() => { overlay.className = 'show'; }, 0);\n\t\t\t} else {\n\t\t\t\tvar wrapper = document.createElement('div');\n\t\t\t\twrapper.id = 'videoplayer_view';\n\t\t\t\twrapper.appendChild(playerView);\n\t\t\t\tvideoViewer.inline.appendChild(wrapper);\n\t\t\t}\n\t\t\t// initialize player\n\t\t\tvideojs(\"my_video_1\", {\n\t\t\t\tfill: true,\n\t\t\t}).ready(function () {\n\t\t\t\tvideoViewer.player = this;\n\t\t\t\tif (videoViewer.inline === null) {\n\t\t\t\t\t// append close button to video element\n\t\t\t\t\tvar closeButton = document.createElement('a');\n\t\t\t\t\tcloseButton.className = 'icon-view-close';\n\t\t\t\t\tcloseButton.id = 'box-close';\n\t\t\t\t\tcloseButton.href = '#';\n\t\t\t\t\tcloseButton.addEventListener('click', function () {\n\t\t\t\t\t\tvideoViewer.hidePlayer();\n\t\t\t\t\t});\n\t\t\t\t\tdocument.getElementById('my_video_1').appendChild(closeButton);\n\t\t\t\t}\n\t\t\t\t// autoplay\n\t\t\t\tif (document.getElementById('body-public') === null) {\n\t\t\t\t\tvideoViewer.player.play();\n\t\t\t\t}\n\t\t\t});\n\n\t\t},\n\t\thide: function () {\n\t\t\tvar overlay = document.getElementById('videoplayer_overlay');\n\t\t\toverlay.className = '';\n\t\t\tsetTimeout(() => {\n\t\t\t\toverlay.parentElement.removeChild(overlay);\n\t\t\t}, 500);\n\t\t}\n\t},\n\tmime: null,\n\tfile: null,\n\tlocation: null,\n\tplayer: null,\n\tinline: null,\n\tmimeTypes: [\n\t\t'video/mp4',\n\t\t'video/x-m4v',\n\t\t'video/webm',\n\t\t'video/x-flv',\n\t\t'video/ogg',\n\t\t'video/quicktime',\n\t\t'video/x-matroska'\n\t],\n\tmimeTypeAliasses: {\n\t\t'video/x-matroska': 'video/webm' // mkv support for Chrome. webm uses the same container format\n\t},\n\tonView: function (file, data) {\n\t\tvideoViewer.file = file;\n\t\tvideoViewer.dir = data.dir;\n\t\tvideoViewer.location = data.fileList.getDownloadUrl(file, videoViewer.dir);\n\t\tvideoViewer.mime = data.$file.attr('data-mime');\n\t\tif (videoViewer.mimeTypeAliasses.hasOwnProperty(videoViewer.mime)) {\n\t\t\tvideoViewer.mime = videoViewer.mimeTypeAliasses[videoViewer.mime];\n\t\t}\n\t\tvideoViewer.showPlayer();\n\t},\n\tonViewInline: function (element, file, mime) {\n\t\tvideoViewer.location = file;\n\t\tvideoViewer.mime = mime;\n\t\tif (videoViewer.mimeTypeAliasses.hasOwnProperty(videoViewer.mime)) {\n\t\t\tvideoViewer.mime = videoViewer.mimeTypeAliasses[videoViewer.mime];\n\t\t}\n\t\tvideoViewer.inline = element;\n\t\tvideoViewer.showPlayer();\n\t},\n\tshowPlayer: function () {\n\t\timport(/* webpackChunkName: \"videojs\" */ 'video.js').then((_videojs) => {\n\t\t\tvideojs = _videojs.default;\n\t\t\tPromise.all([\n\t\t\t\timport(/* webpackChunkName: \"videojs\" */ '../css/style.css'),\n\t\t\t\timport(/* webpackChunkName: \"videojs\" */'!style-loader!css-loader!video.js/dist/video-js.css')\n\t\t\t]).then(() => {\n\t\t\t\tvideoViewer.UI.show();\n\t\t\t});\n\t\t});\n\t},\n\thidePlayer: function () {\n\t\tif (videoViewer.player !== null && videoViewer.player !== false && videoViewer.inline === null) {\n\t\t\tvideoViewer.player.dispose();\n\t\t\tvideoViewer.player = false;\n\t\t\tvideoViewer.UI.hide();\n\t\t}\n\t},\n\tlog: function (message) {\n\t\tconsole.log(message);\n\t}\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\n\t// add event to ESC key\n\tdocument.addEventListener('keyup', function(e) {\n\t\tif ((e.key !== undefined && e.key === 'Escape') ||\n\t\t\t(e.keyCode !== undefined && e.keyCode === 27)) {\n\t\t\tvideoViewer.hidePlayer();\n\t\t}\n\t});\n\n\tif (OCA && OCA.Files && OCA.Files.fileActions && !OCA.Viewer) {\n\t\tfor (var i = 0; i < videoViewer.mimeTypes.length; ++i) {\n\t\t\tvar mime = videoViewer.mimeTypes[i];\n\t\t\tOCA.Files.fileActions.register(mime, 'View', OC.PERMISSION_READ, '', videoViewer.onView);\n\t\t\tOCA.Files.fileActions.setDefault(mime, 'View');\n\t\t\tif (mime === mimetype) {\n\t\t\t\tisSupportedMimetype = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Public page magic\n\tif (document.getElementById('body-public') && document.getElementById('imgframe')) {\n\t\tvar mimetype = document.getElementById('mimetype').value;\n\t\tfor (var i = 0; i < videoViewer.mimeTypes.length; ++i) {\n\t\t\tif (videoViewer.mimeTypes[i] === mimetype) {\n\t\t\t\tvar videoUrl = window.location.href.split('?')[0] + '/download';\n\t\t\t\tvideoViewer.onViewInline(document.getElementById('imgframe'), videoUrl, mimetype);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/src/viewer.js b/src/viewer.js index 7aa69ff..caecba0 100755 --- a/src/viewer.js +++ b/src/viewer.js @@ -182,7 +182,7 @@ document.addEventListener('DOMContentLoaded', function () { } }); - if (typeof FileActions !== 'undefined' && !OCA.Viewer) { + if (OCA && OCA.Files && OCA.Files.fileActions && !OCA.Viewer) { for (var i = 0; i < videoViewer.mimeTypes.length; ++i) { var mime = videoViewer.mimeTypes[i]; OCA.Files.fileActions.register(mime, 'View', OC.PERMISSION_READ, '', videoViewer.onView);