From 40693471e99d18073ce806ecdb0f16ec89e9e79c Mon Sep 17 00:00:00 2001 From: shortcutme Date: Wed, 21 Feb 2018 03:15:04 +0100 Subject: [PATCH] Merge sidebar and wrapper js --- plugins/Sidebar/media/all.js | 120 ++++++++++----------- src/Ui/media/all.js | 202 ++++++++++++++++++++++++++--------- 2 files changed, 210 insertions(+), 112 deletions(-) diff --git a/plugins/Sidebar/media/all.js b/plugins/Sidebar/media/all.js index bf1f07d5..02e4f5fb 100644 --- a/plugins/Sidebar/media/all.js +++ b/plugins/Sidebar/media/all.js @@ -269,7 +269,7 @@ window.initScrollable = function () { (function() { - var Sidebar, + var Sidebar, wrapper, bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, hasProp = {}.hasOwnProperty, @@ -278,7 +278,8 @@ window.initScrollable = function () { Sidebar = (function(superClass) { extend(Sidebar, superClass); - function Sidebar() { + function Sidebar(wrapper1) { + this.wrapper = wrapper1; this.unloadGlobe = bind(this.unloadGlobe, this); this.displayGlobe = bind(this.displayGlobe, this); this.loadGlobe = bind(this.loadGlobe, this); @@ -300,7 +301,7 @@ window.initScrollable = function () { this.dragStarted = 0; this.globe = null; this.preload_html = null; - this.original_set_site_info = wrapper.setSiteInfo; + this.original_set_site_info = this.wrapper.setSiteInfo; if (false) { this.startDrag(); this.moved(); @@ -310,15 +311,6 @@ window.initScrollable = function () { } Sidebar.prototype.initFixbutton = function() { - - /* - @fixbutton.on "mousedown touchstart", (e) => - if not @opened - @logStart("Preloading") - wrapper.ws.cmd "sidebarGetHtmlTag", {}, (res) => - @logEnd("Preloading") - @preload_html = res - */ this.fixbutton.on("mousedown touchstart", (function(_this) { return function(e) { if (e.button > 0) { @@ -413,10 +405,10 @@ window.initScrollable = function () { }; })(this)); $(window).trigger("resize"); - wrapper.setSiteInfo = (function(_this) { + this.wrapper.setSiteInfo = (function(_this) { return function(site_info) { _this.setSiteInfo(site_info); - return _this.original_set_site_info.apply(wrapper, arguments); + return _this.original_set_site_info.apply(_this.wrapper, arguments); }; })(this); img = new Image(); @@ -452,7 +444,7 @@ window.initScrollable = function () { this.setHtmlTag(this.preload_html); return this.preload_html = null; } else { - return wrapper.ws.cmd("sidebarGetHtmlTag", {}, this.setHtmlTag); + return this.wrapper.ws.cmd("sidebarGetHtmlTag", {}, this.setHtmlTag); } }; @@ -527,7 +519,9 @@ window.initScrollable = function () { this.opened = false; } else { targetx = this.width; - if (!this.opened) { + if (this.opened) { + onOpened(); + } else { this.when_loaded.done((function(_this) { return function() { return _this.onOpened(); @@ -570,9 +564,9 @@ window.initScrollable = function () { })(this)); this.tag.find("#button-sitelimit").off("click touchend").on("click touchend", (function(_this) { return function() { - wrapper.ws.cmd("siteSetLimit", $("#input-sitelimit").val(), function(res) { + _this.wrapper.ws.cmd("siteSetLimit", $("#input-sitelimit").val(), function(res) { if (res === "ok") { - wrapper.notifications.add("done-sitelimit", "done", "Site storage limit modified!", 5000); + _this.wrapper.notifications.add("done-sitelimit", "done", "Site storage limit modified!", 5000); } return _this.updateHtmlTag(); }); @@ -581,8 +575,8 @@ window.initScrollable = function () { })(this)); this.tag.find("#button-dbreload").off("click touchend").on("click touchend", (function(_this) { return function() { - wrapper.ws.cmd("dbReload", [], function() { - wrapper.notifications.add("done-dbreload", "done", "Database schema reloaded!", 5000); + _this.wrapper.ws.cmd("dbReload", [], function() { + _this.wrapper.notifications.add("done-dbreload", "done", "Database schema reloaded!", 5000); return _this.updateHtmlTag(); }); return false; @@ -590,9 +584,9 @@ window.initScrollable = function () { })(this)); this.tag.find("#button-dbrebuild").off("click touchend").on("click touchend", (function(_this) { return function() { - wrapper.notifications.add("done-dbrebuild", "info", "Database rebuilding...."); - wrapper.ws.cmd("dbRebuild", [], function() { - wrapper.notifications.add("done-dbrebuild", "done", "Database rebuilt!", 5000); + _this.wrapper.notifications.add("done-dbrebuild", "info", "Database rebuilding...."); + _this.wrapper.ws.cmd("dbRebuild", [], function() { + _this.wrapper.notifications.add("done-dbrebuild", "done", "Database rebuilt!", 5000); return _this.updateHtmlTag(); }); return false; @@ -601,8 +595,8 @@ window.initScrollable = function () { this.tag.find("#button-update").off("click touchend").on("click touchend", (function(_this) { return function() { _this.tag.find("#button-update").addClass("loading"); - wrapper.ws.cmd("siteUpdate", wrapper.site_info.address, function() { - wrapper.notifications.add("done-updated", "done", "Site updated!", 5000); + _this.wrapper.ws.cmd("siteUpdate", _this.wrapper.site_info.address, function() { + _this.wrapper.notifications.add("done-updated", "done", "Site updated!", 5000); return _this.tag.find("#button-update").removeClass("loading"); }); return false; @@ -611,30 +605,30 @@ window.initScrollable = function () { this.tag.find("#button-pause").off("click touchend").on("click touchend", (function(_this) { return function() { _this.tag.find("#button-pause").addClass("hidden"); - wrapper.ws.cmd("sitePause", wrapper.site_info.address); + _this.wrapper.ws.cmd("sitePause", _this.wrapper.site_info.address); return false; }; })(this)); this.tag.find("#button-resume").off("click touchend").on("click touchend", (function(_this) { return function() { _this.tag.find("#button-resume").addClass("hidden"); - wrapper.ws.cmd("siteResume", wrapper.site_info.address); + _this.wrapper.ws.cmd("siteResume", _this.wrapper.site_info.address); return false; }; })(this)); this.tag.find("#button-delete").off("click touchend").on("click touchend", (function(_this) { return function() { - wrapper.displayConfirm("Are you sure?", ["Delete this site", "Blacklist"], function(confirmed) { + _this.wrapper.displayConfirm("Are you sure?", ["Delete this site", "Blacklist"], function(confirmed) { if (confirmed === 1) { _this.tag.find("#button-delete").addClass("loading"); - return wrapper.ws.cmd("siteDelete", wrapper.site_info.address, function() { + return _this.wrapper.ws.cmd("siteDelete", _this.wrapper.site_info.address, function() { return document.location = $(".fixbutton-bg").attr("href"); }); } else if (confirmed === 2) { - return wrapper.displayPrompt("Blacklist this site", "text", "Delete and Blacklist", "Reason", function(reason) { + return _this.wrapper.displayPrompt("Blacklist this site", "text", "Delete and Blacklist", "Reason", function(reason) { _this.tag.find("#button-delete").addClass("loading"); - wrapper.ws.cmd("blacklistAdd", [wrapper.site_info.address, reason]); - return wrapper.ws.cmd("siteDelete", wrapper.site_info.address, function() { + _this.wrapper.ws.cmd("blacklistAdd", [_this.wrapper.site_info.address, reason]); + return _this.wrapper.ws.cmd("siteDelete", _this.wrapper.site_info.address, function() { return document.location = $(".fixbutton-bg").attr("href"); }); }); @@ -645,40 +639,40 @@ window.initScrollable = function () { })(this)); this.tag.find("#checkbox-owned").off("click touchend").on("click touchend", (function(_this) { return function() { - return wrapper.ws.cmd("siteSetOwned", [_this.tag.find("#checkbox-owned").is(":checked")]); + return _this.wrapper.ws.cmd("siteSetOwned", [_this.tag.find("#checkbox-owned").is(":checked")]); }; })(this)); this.tag.find("#checkbox-autodownloadoptional").off("click touchend").on("click touchend", (function(_this) { return function() { - return wrapper.ws.cmd("siteSetAutodownloadoptional", [_this.tag.find("#checkbox-autodownloadoptional").is(":checked")]); + return _this.wrapper.ws.cmd("siteSetAutodownloadoptional", [_this.tag.find("#checkbox-autodownloadoptional").is(":checked")]); }; })(this)); this.tag.find("#button-identity").off("click touchend").on("click touchend", (function(_this) { return function() { - wrapper.ws.cmd("certSelect"); + _this.wrapper.ws.cmd("certSelect"); return false; }; })(this)); this.tag.find("#checkbox-owned").off("click touchend").on("click touchend", (function(_this) { return function() { - return wrapper.ws.cmd("siteSetOwned", [_this.tag.find("#checkbox-owned").is(":checked")]); + return _this.wrapper.ws.cmd("siteSetOwned", [_this.tag.find("#checkbox-owned").is(":checked")]); }; })(this)); this.tag.find("#button-settings").off("click touchend").on("click touchend", (function(_this) { return function() { - wrapper.ws.cmd("fileGet", "content.json", function(res) { + _this.wrapper.ws.cmd("fileGet", "content.json", function(res) { var data, json_raw; data = JSON.parse(res); data["title"] = $("#settings-title").val(); data["description"] = $("#settings-description").val(); json_raw = unescape(encodeURIComponent(JSON.stringify(data, void 0, '\t'))); - return wrapper.ws.cmd("fileWrite", ["content.json", btoa(json_raw), true], function(res) { + return _this.wrapper.ws.cmd("fileWrite", ["content.json", btoa(json_raw), true], function(res) { if (res !== "ok") { - return wrapper.notifications.add("file-write", "error", "File write error: " + res); + return _this.wrapper.notifications.add("file-write", "error", "File write error: " + res); } else { - wrapper.notifications.add("file-write", "done", "Site settings saved!", 5000); - if (wrapper.site_info.privatekey) { - wrapper.ws.cmd("siteSign", { + _this.wrapper.notifications.add("file-write", "done", "Site settings saved!", 5000); + if (_this.wrapper.site_info.privatekey) { + _this.wrapper.ws.cmd("siteSign", { privatekey: "stored", inner_path: "content.json", update_changed_files: true @@ -703,29 +697,29 @@ window.initScrollable = function () { return function() { var inner_path; inner_path = _this.tag.find("#input-contents").val(); - wrapper.ws.cmd("fileRules", { + _this.wrapper.ws.cmd("fileRules", { inner_path: inner_path }, function(res) { var ref; - if (wrapper.site_info.privatekey || (ref = wrapper.site_info.auth_address, indexOf.call(res.signers, ref) >= 0)) { - return wrapper.ws.cmd("siteSign", { + if (_this.wrapper.site_info.privatekey || (ref = _this.wrapper.site_info.auth_address, indexOf.call(res.signers, ref) >= 0)) { + return _this.wrapper.ws.cmd("siteSign", { privatekey: "stored", inner_path: inner_path, update_changed_files: true }, function(res) { if (res === "ok") { - return wrapper.notifications.add("sign", "done", inner_path + " Signed!", 5000); + return _this.wrapper.notifications.add("sign", "done", inner_path + " Signed!", 5000); } }); } else { - return wrapper.displayPrompt("Enter your private key:", "password", "Sign", "", function(privatekey) { - return wrapper.ws.cmd("siteSign", { + return _this.wrapper.displayPrompt("Enter your private key:", "password", "Sign", "", function(privatekey) { + return _this.wrapper.ws.cmd("siteSign", { privatekey: privatekey, inner_path: inner_path, update_changed_files: true }, function(res) { if (res === "ok") { - return wrapper.notifications.add("sign", "done", inner_path + " Signed!", 5000); + return _this.wrapper.notifications.add("sign", "done", inner_path + " Signed!", 5000); } }); }); @@ -739,7 +733,7 @@ window.initScrollable = function () { return function() { var inner_path; inner_path = _this.tag.find("#input-contents").val(); - wrapper.ws.cmd("sitePublish", { + _this.wrapper.ws.cmd("sitePublish", { "inner_path": inner_path, "sign": false }); @@ -762,36 +756,38 @@ window.initScrollable = function () { })(this)); $("body").on("click", (function(_this) { return function() { - return _this.tag.find(".contents + .flex").removeClass("active"); + if (_this.tag) { + return _this.tag.find(".contents + .flex").removeClass("active"); + } }; })(this)); this.tag.find("#button-sign-publish").off("click touchend").on("click touchend", (function(_this) { return function() { var inner_path; inner_path = _this.tag.find("#input-contents").val(); - wrapper.ws.cmd("fileRules", { + _this.wrapper.ws.cmd("fileRules", { inner_path: inner_path }, function(res) { var ref; - if (wrapper.site_info.privatekey || (ref = wrapper.site_info.auth_address, indexOf.call(res.signers, ref) >= 0)) { - return wrapper.ws.cmd("sitePublish", { + if (_this.wrapper.site_info.privatekey || (ref = _this.wrapper.site_info.auth_address, indexOf.call(res.signers, ref) >= 0)) { + return _this.wrapper.ws.cmd("sitePublish", { privatekey: "stored", inner_path: inner_path, sign: true }, function(res) { if (res === "ok") { - return wrapper.notifications.add("sign", "done", inner_path + " Signed and published!", 5000); + return _this.wrapper.notifications.add("sign", "done", inner_path + " Signed and published!", 5000); } }); } else { - return wrapper.displayPrompt("Enter your private key:", "password", "Sign", "", function(privatekey) { - return wrapper.ws.cmd("sitePublish", { + return _this.wrapper.displayPrompt("Enter your private key:", "password", "Sign", "", function(privatekey) { + return _this.wrapper.ws.cmd("sitePublish", { privatekey: privatekey, inner_path: inner_path, sign: true }, function(res) { if (res === "ok") { - return wrapper.notifications.add("sign", "done", inner_path + " Signed and published!", 5000); + return _this.wrapper.notifications.add("sign", "done", inner_path + " Signed and published!", 5000); } }); }); @@ -821,7 +817,7 @@ window.initScrollable = function () { } }; })(this)); - return wrapper.setSiteInfo = this.original_set_site_info; + return this.wrapper.setSiteInfo = this.original_set_site_info; }; Sidebar.prototype.loadGlobe = function() { @@ -845,7 +841,7 @@ window.initScrollable = function () { img.src = "/uimedia/globe/world.jpg"; return img.onload = (function(_this) { return function() { - return wrapper.ws.cmd("sidebarGetPeers", [], function(globe_data) { + return _this.wrapper.ws.cmd("sidebarGetPeers", [], function(globe_data) { var e, ref, ref1; if (_this.globe) { _this.globe.scene.remove(_this.globe.points); @@ -892,8 +888,10 @@ window.initScrollable = function () { })(Class); + wrapper = window.wrapper; + setTimeout((function() { - return window.sidebar = new Sidebar(); + return window.sidebar = new Sidebar(wrapper); }), 500); window.transitionEnd = 'transitionend webkitTransitionEnd oTransitionEnd otransitionend'; diff --git a/src/Ui/media/all.js b/src/Ui/media/all.js index 6a1f8af1..128d46df 100644 --- a/src/Ui/media/all.js +++ b/src/Ui/media/all.js @@ -44,17 +44,18 @@ (function() { var ZeroWebsocket, - __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, - __slice = [].slice; + bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, + slice = [].slice; ZeroWebsocket = (function() { function ZeroWebsocket(url) { - this.onCloseWebsocket = __bind(this.onCloseWebsocket, this); - this.onErrorWebsocket = __bind(this.onErrorWebsocket, this); - this.onOpenWebsocket = __bind(this.onOpenWebsocket, this); - this.log = __bind(this.log, this); - this.route = __bind(this.route, this); - this.onMessage = __bind(this.onMessage, this); + this.onCloseWebsocket = bind(this.onCloseWebsocket, this); + this.onErrorWebsocket = bind(this.onErrorWebsocket, this); + this.onOpenWebsocket = bind(this.onOpenWebsocket, this); + this.log = bind(this.log, this); + this.response = bind(this.response, this); + this.route = bind(this.route, this); + this.onMessage = bind(this.onMessage, this); this.url = url; this.next_message_id = 1; this.waiting_cb = {}; @@ -138,17 +139,17 @@ ZeroWebsocket.prototype.log = function() { var args; - args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; - return console.log.apply(console, ["[ZeroWebsocket]"].concat(__slice.call(args))); + args = 1 <= arguments.length ? slice.call(arguments, 0) : []; + return console.log.apply(console, ["[ZeroWebsocket]"].concat(slice.call(args))); }; ZeroWebsocket.prototype.onOpenWebsocket = function(e) { - var message, _i, _len, _ref; + var i, len, message, ref; this.log("Open"); this.connected = true; - _ref = this.message_queue; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - message = _ref[_i]; + ref = this.message_queue; + for (i = 0, len = ref.length; i < len; i++) { + message = ref[i]; this.ws.send(JSON.stringify(message)); } this.message_queue = []; @@ -818,13 +819,16 @@ jQuery.extend( jQuery.easing, Wrapper = (function() { function Wrapper(ws_url) { - this.gotoSite = bind(this.gotoSite, this); this.setSizeLimit = bind(this.setSizeLimit, this); - this.onLoad = bind(this.onLoad, this); + this.onWrapperLoad = bind(this.onWrapperLoad, this); + this.onPageLoad = bind(this.onPageLoad, this); this.onCloseWebsocket = bind(this.onCloseWebsocket, this); this.onOpenWebsocket = bind(this.onOpenWebsocket, this); + this.handleMessage = bind(this.handleMessage, this); + this.cmd = bind(this.cmd, this); this.onMessageInner = bind(this.onMessageInner, this); this.onMessageWebsocket = bind(this.onMessageWebsocket, this); + this.verifyEvent = bind(this.verifyEvent, this); this.log("Created!"); this.loading = new Loading(); this.notifications = new Notifications($(".notifications")); @@ -838,6 +842,7 @@ jQuery.extend( jQuery.easing, this.ws.onMessage = this.onMessageWebsocket; this.ws.connect(); this.ws_error = null; + this.next_cmd_message_id = -1; this.site_info = null; this.event_site_info = $.Deferred(); this.inner_loaded = false; @@ -846,7 +851,8 @@ jQuery.extend( jQuery.easing, this.site_error = null; this.address = null; this.opener_tested = false; - window.onload = this.onLoad; + this.allowed_event_constructors = [MouseEvent, KeyboardEvent]; + window.onload = this.onPageLoad; window.onhashchange = (function(_this) { return function(e) { var src; @@ -871,6 +877,19 @@ jQuery.extend( jQuery.easing, $("#inner-iframe").focus(); } + Wrapper.prototype.verifyEvent = function(allowed_target, e) { + var ref; + if (!e.originalEvent.isTrusted) { + throw "Event not trusted"; + } + if (ref = e.originalEvent.constructor, indexOf.call(this.allowed_event_constructors, ref) < 0) { + throw "Invalid event constructor: " + e.constructor + " != " + allowed_event_constructor; + } + if (e.originalEvent.currentTarget !== allowed_target[0]) { + throw "Invalid event target: " + e.originalEvent.currentTarget + " != " + allowed_target[0]; + } + }; + Wrapper.prototype.onMessageWebsocket = function(e) { var cmd, id, message, ref, type; message = JSON.parse(e.data); @@ -914,7 +933,6 @@ jQuery.extend( jQuery.easing, this.ws.ws.close(); return this.ws.onCloseWebsocket(null, 4000); } else if (cmd === "injectHtml") { - console.log("inject", message); return $("body").append(message.params); } else { return this.sendInner(message); @@ -922,7 +940,7 @@ jQuery.extend( jQuery.easing, }; Wrapper.prototype.onMessageInner = function(e) { - var cmd, message, query; + var message; if (!window.postmessage_nonce_security && this.opener_tested === false) { if (window.opener && window.opener !== window) { this.log("Opener present", window.opener); @@ -941,6 +959,30 @@ jQuery.extend( jQuery.easing, this.log("Message nonce error:", message.wrapper_nonce, '!=', window.wrapper_nonce); return; } + return this.handleMessage(message); + }; + + Wrapper.prototype.cmd = function(cmd, params, cb) { + var message; + if (params == null) { + params = {}; + } + if (cb == null) { + cb = null; + } + message = {}; + message.cmd = cmd; + message.params = params; + message.id = this.next_cmd_message_id; + if (cb) { + this.ws.waiting_cb[message.id] = cb; + } + this.next_cmd_message_id -= 1; + return this.handleMessage(message); + }; + + Wrapper.prototype.handleMessage = function(message) { + var cmd, query; cmd = message.cmd; if (cmd === "innerReady") { this.inner_ready = true; @@ -1079,14 +1121,19 @@ jQuery.extend( jQuery.easing, Wrapper.prototype.actionPermissionAdd = function(message) { var permission; permission = message.params; - return this.ws.cmd("permissionDetails", permission, (function(_this) { - return function(permission_details) { - return _this.displayConfirm("This site requests permission:" + (" " + (_this.toHtmlSafe(permission)) + "") + ("
" + permission_details + ""), "Grant", function() { - return _this.ws.cmd("permissionAdd", permission, function() { - return _this.sendInner({ - "cmd": "response", - "to": message.id, - "result": "Granted" + return $.when(this.event_site_info).done((function(_this) { + return function() { + if (indexOf.call(_this.site_info.settings.permissions, permission) >= 0) { + return false; + } + return _this.ws.cmd("permissionDetails", permission, function(permission_details) { + return _this.displayConfirm("This site requests permission:" + (" " + (_this.toHtmlSafe(permission)) + "") + ("
" + permission_details + ""), "Grant", function() { + return _this.ws.cmd("permissionAdd", permission, function(res) { + return _this.sendInner({ + "cmd": "response", + "to": message.id, + "result": res + }); }); }); }); @@ -1102,21 +1149,25 @@ jQuery.extend( jQuery.easing, }; Wrapper.prototype.displayConfirm = function(message, captions, cb) { - var body, button, buttons, caption, i, j, len; + var body, button, buttons, caption, fn, i, j, len; body = $("" + message + ""); buttons = $(""); if (!(captions instanceof Array)) { captions = [captions]; } + fn = (function(_this) { + return function(button) { + return button.on("click", function(e) { + _this.verifyEvent(button, e); + cb(parseInt(e.currentTarget.dataset.value)); + return false; + }); + }; + })(this); for (i = j = 0, len = captions.length; j < len; i = ++j) { caption = captions[i]; button = $("" + caption + ""); - button.on("click", (function(_this) { - return function(e) { - cb(parseInt(e.currentTarget.dataset.value)); - return false; - }; - })(this)); + fn(button); buttons.append(button); } body.append(buttons); @@ -1157,15 +1208,17 @@ jQuery.extend( jQuery.easing, input = $(""); input.on("keyup", (function(_this) { return function(e) { + _this.verifyEvent(input, e); if (e.keyCode === 13) { - return button.trigger("click"); + return cb(input.val()); } }; })(this)); body.append(input); button = $("" + caption + ""); button.on("click", (function(_this) { - return function() { + return function(e) { + _this.verifyEvent(button, e); cb(input.val()); return false; }; @@ -1270,7 +1323,7 @@ jQuery.extend( jQuery.easing, }; Wrapper.prototype.actionReload = function(message) { - return this.reload(); + return this.reload(message.params[0]); }; Wrapper.prototype.reload = function(url_post) { @@ -1367,7 +1420,7 @@ jQuery.extend( jQuery.easing, })(this)), 1000); }; - Wrapper.prototype.onLoad = function(e) { + Wrapper.prototype.onPageLoad = function(e) { var ref; this.inner_loaded = true; if (!this.inner_ready) { @@ -1383,6 +1436,12 @@ jQuery.extend( jQuery.easing, } }; + Wrapper.prototype.onWrapperLoad = function() { + delete window.wrapper; + delete window.wrapper_key; + return $("#script_init").remove(); + }; + Wrapper.prototype.sendInner = function(message) { return this.inner.postMessage(message, '*'); }; @@ -1499,7 +1558,7 @@ jQuery.extend( jQuery.easing, value = this.toHtmlSafe(value); } else { value = String(value).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - value = value.replace(/<([\/]{0,1}(br|b|u|i))>/g, "<$1>"); + value = value.replace(/<([\/]{0,1}(br|b|u|i|small))>/g, "<$1>"); } values[i] = value; } @@ -1528,18 +1587,6 @@ jQuery.extend( jQuery.easing, return false; }; - Wrapper.prototype.isProxyRequest = function() { - return window.location.pathname === "/"; - }; - - Wrapper.prototype.gotoSite = function(elem) { - var href; - href = $(elem).attr("href"); - if (this.isProxyRequest()) { - return $(elem).attr("href", "http://zero" + href); - } - }; - Wrapper.prototype.log = function() { var args; args = 1 <= arguments.length ? slice.call(arguments, 0) : []; @@ -1569,3 +1616,56 @@ jQuery.extend( jQuery.easing, window.wrapper = new Wrapper(ws_url); }).call(this); + + + +/* ---- src/Ui/media/WrapperZeroFrame.coffee ---- */ + + +(function() { + var WrapperZeroFrame, + bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + + WrapperZeroFrame = (function() { + function WrapperZeroFrame(wrapper) { + this.certSelectGotoSite = bind(this.certSelectGotoSite, this); + this.response = bind(this.response, this); + this.cmd = bind(this.cmd, this); + this.wrapperCmd = wrapper.cmd; + this.wrapperResponse = wrapper.ws.response; + console.log("WrapperZeroFrame", wrapper); + } + + WrapperZeroFrame.prototype.cmd = function(cmd, params, cb) { + if (params == null) { + params = {}; + } + if (cb == null) { + cb = null; + } + return this.wrapperCmd(cmd, params, cb); + }; + + WrapperZeroFrame.prototype.response = function(to, result) { + return this.wrapperResponse(to, result); + }; + + WrapperZeroFrame.prototype.isProxyRequest = function() { + return window.location.pathname === "/"; + }; + + WrapperZeroFrame.prototype.certSelectGotoSite = function(elem) { + var href; + href = $(elem).attr("href"); + if (this.isProxyRequest()) { + return $(elem).attr("href", "http://zero" + href); + } + }; + + return WrapperZeroFrame; + + })(); + + window.zeroframe = new WrapperZeroFrame(window.wrapper); + +}).call(this); \ No newline at end of file