diff --git a/capsule-prototype/index.html b/capsule-prototype/index.html index bc1796f105bf35cd6de401e39802073da033c89f..eb41085d8407578af0a8dd9c7f4c025a7da5bc58 100644 --- a/capsule-prototype/index.html +++ b/capsule-prototype/index.html @@ -26,6 +26,8 @@ <script language="javascript" type='text/javascript' src='../shared/js/libs/fastdom.js'></script> <script language="javascript" type='text/javascript' src='../shared/js/libs/moment-with-langs.min.js'></script> + <script language="javascript" type='text/javascript' src="../shared/php/rekallApp.js.php"></script> + <script language="javascript" type='text/javascript' src='../shared/js/rekall/Utils.js'></script> <script language="javascript" type='text/javascript' src='../shared/js/online-rekall/Rekall.js'></script> <script language="javascript" type='text/javascript' src='../shared/js/rekall/Source.js'></script> @@ -35,6 +37,7 @@ <script language="javascript" type='text/javascript' src='../shared/js/online-rekall/Tag.js'></script> <script language="javascript" type='text/javascript' src='../shared/js/online-rekall/Tags.js'></script> <script language="javascript" type='text/javascript' src='../shared/js/online-rekall/Timeline.js'></script> + <script language="javascript" type='text/javascript' src="../shared/js/online-rekall/RekallApplication.js"></script> <script language="javascript" type='text/javascript' src='../shared/js/iannix.js'></script> <script language="javascript" type='text/javascript' src='../shared/js/online-script.js'></script> @@ -66,11 +69,6 @@ <script> videojs.options.flash.swf = "video-js/video-js.swf"; </script> - <script type="javascript" > - function init(PubSub){ - window.PubSub = PubSub; - } - </script> <link rel="stylesheet" type="text/css" href="../shared/css/online-theme.css" /> </head> diff --git a/capsule-prototype/js/online-rekall/RekallApplication.js b/capsule-prototype/js/online-rekall/RekallApplication.js new file mode 100644 index 0000000000000000000000000000000000000000..e8097663b7d4946f56da8b48cfed0241fcf37062 --- /dev/null +++ b/capsule-prototype/js/online-rekall/RekallApplication.js @@ -0,0 +1,64 @@ +((app) => { + function RekallApplication(opts = {}) { + const METHODS = [ + 'openUrl', + 'pubSub', + 'init', + 'setPlaybackRate', + 'videoPlayer', + 'rekall' + ]; + + let localOptions = {}; + + const OPTIONS = { + openUrl: function () { + if (!arguments) + return; + if (localOptions.links && localOptions.links[arguments[0]]) { + window.top.location.assign(localOptions.links[arguments[0]]) + } else { + window.top.location.assign(arguments[0]); + } + }, + pubSub: function () { + return localOptions.PubSub; + }, + init: function (opts) { + if (opts) { + $.extend(localOptions, opts); + } + }, + setPlaybackRate: function () { + if (arguments.length > 0 && 'number' === typeof arguments[0] && 0 < arguments[0] && arguments[0] < 10) { + localOptions.videoPlayer.playbackRate(arguments[0]); + } + }, + videoPlayer: function () { + if (arguments.length > 0) { + localOptions._videoPlayer = arguments[0]; + } + + return localOptions._videoPlayer; + }, + rekall: function () { + return localOptions.Rekall; + } + }; + + $.extend(localOptions, OPTIONS, opts); + + return { + Rekall: function () { + if (!arguments || !arguments.length) + return localOptions['rekall'].apply(this, arguments); + + let [action, ...params] = arguments; + if (METHODS.includes(action)) { + return localOptions[action].apply(this, params); + } + } + } + } + app.rekall = new RekallApplication() +})(window.app = window.app || {}) \ No newline at end of file diff --git a/capsule-prototype/js/online-script.js b/capsule-prototype/js/online-script.js index 53d7f7fc1a0055c192f83af14c7d10db1a28ebe3..5a1a1ac2dbdaf3627c543e3169454a607ed7a3cb 100644 --- a/capsule-prototype/js/online-script.js +++ b/capsule-prototype/js/online-script.js @@ -4,6 +4,9 @@ var pubSub = null; window.onload = function() { pubSub = window.top.PubSub; + window.app.rekall.Rekall('init', { + PubSub: pubSub + }); pubSub.subscribe('mosaic', openMosaic); pubSub.subscribe('video', openVideo); pubSub.subscribe('open_paste_modal', openPasteModal); @@ -11,6 +14,10 @@ window.onload = function() { }; $(document).ready(function() { + window.app.rekall.Rekall('init', { + Rekall: rekall + }); + window.app.rekall.Rekall().allowProjectDeletion(window.app.Settings.Project.ProjectDeletionEnabled); rekall.allowProjectDeletion(window.app.Settings.Project.ProjectDeletionEnabled) Utils.actionPrefix = "php/"; diff --git a/capsule-prototype/php/rekallApp.js.php b/capsule-prototype/php/rekallApp.js.php index bce36d1c97fde5bd849797b7b4242de78a03ebbf..a55c34cab55a0088be048f7cb8ceaca1e206f655 100644 --- a/capsule-prototype/php/rekallApp.js.php +++ b/capsule-prototype/php/rekallApp.js.php @@ -5,51 +5,9 @@ $front_url = $_ENV["FRONT_URL_EXTERNAL"]; $member_url = $_ENV["MEMBER_URL_EXTERNAL"]; $project_allow_deletion = isset($_ENV["LEGACY_PROJECT_DELETION_ENABLED"]) && $_ENV["LEGACY_PROJECT_DELETION_ENABLED"] == 'true' ? 'true' : 'false'; ?> -function RekallApp (opts = {}){ - const METHODS = [ - 'openUrl', - 'pubSub', - 'init' - ]; - - const OPTIONS = { - openUrl: function (){ - if(!arguments) - return; - window.top.location.assign(arguments[0]); - }, - pubSub: function(PubSub){ - return window.PubSub; - }, - init: function(PubSub){ - window.PubSub = PubSub; - } - }; - - var localOptions = $.extend({}, OPTIONS, opts); - - return { - Rekall: function(){ - if (!arguments) - return; - - var [action, ...params] = arguments; - if(METHODS.includes(action)){ - return localOptions[action](params); - } - } - } -} - ((app) => { - - if(app.urls){ - return; - } - - app.rekall = RekallApp(); app.urls = { frontHome : '<?= $front_url ?>', memberHome : '<?= $member_url ?>',