From bcc3b4d3acfaf9cbbbb273c6d565988cae3dd7de Mon Sep 17 00:00:00 2001 From: Ivanq Date: Sun, 31 Dec 2017 19:48:28 +0300 Subject: [PATCH] Add sign/publish code --- plugins/Sidebar/media/Sidebar.coffee | 58 +++++++-------- plugins/Sidebar/media/all.js | 101 +++++++++++++-------------- 2 files changed, 74 insertions(+), 85 deletions(-) diff --git a/plugins/Sidebar/media/Sidebar.coffee b/plugins/Sidebar/media/Sidebar.coffee index cdccd3a3..4f15c6bb 100644 --- a/plugins/Sidebar/media/Sidebar.coffee +++ b/plugins/Sidebar/media/Sidebar.coffee @@ -360,8 +360,32 @@ class Sidebar extends Class @tag.find(".contents + .flex").removeClass("sign-publish-flex") menu = new Menu(@tag.find("#wrapper-sign-publish")) - menu.addItem "Sign" - menu.addItem "Publush" + menu.addItem "Sign", => + inner_path = @tag.find("#input-contents").val() + + wrapper.ws.cmd "fileRules", {inner_path: inner_path}, (res) => + if wrapper.site_info.privatekey or wrapper.site_info.auth_address in res.signers + # Privatekey stored in users.json + wrapper.ws.cmd "siteSign", {privatekey: "stored", inner_path: inner_path, update_changed_files: true}, (res) => + if res == "ok" + wrapper.notifications.add "sign", "done", "#{inner_path} Signed!", 5000 + + else + # Ask the user for privatekey + wrapper.displayPrompt "Enter your private key:", "password", "Sign", "", (privatekey) => # Prompt the private key + wrapper.ws.cmd "siteSign", {privatekey: privatekey, inner_path: inner_path, update_changed_files: true}, (res) => + if res == "ok" + wrapper.notifications.add "sign", "done", "#{inner_path} Signed!", 5000 + + @tag.find(".contents + .flex").removeClass "active" + menu.hide() + + menu.addItem "Publish", => + inner_path = @tag.find("#input-contents").val() + wrapper.ws.cmd "sitePublish", {"inner_path": inner_path, "sign": false} + + @tag.find(".contents + .flex").removeClass "active" + menu.hide() @tag.find("#menu-sign-publish").off("click touchend").on "click touchend", => if window.visible_menu == menu @@ -393,36 +417,6 @@ class Sidebar extends Class if res == "ok" wrapper.notifications.add "sign", "done", "#{inner_path} Signed and published!", 5000 - @tag.find("#button-sign-publish-menu").removeClass("visible") - return false - - # Sign content.json - @tag.find("#button-sign").off("click touchend").on "click touchend", => - inner_path = @tag.find("#input-contents").val() - - wrapper.ws.cmd "fileRules", {inner_path: inner_path}, (res) => - if wrapper.site_info.privatekey or wrapper.site_info.auth_address in res.signers - # Privatekey stored in users.json - wrapper.ws.cmd "siteSign", {privatekey: "stored", inner_path: inner_path, update_changed_files: true}, (res) => - if res == "ok" - wrapper.notifications.add "sign", "done", "#{inner_path} Signed!", 5000 - - else - # Ask the user for privatekey - wrapper.displayPrompt "Enter your private key:", "password", "Sign", "", (privatekey) => # Prompt the private key - wrapper.ws.cmd "siteSign", {privatekey: privatekey, inner_path: inner_path, update_changed_files: true}, (res) => - if res == "ok" - wrapper.notifications.add "sign", "done", "#{inner_path} Signed!", 5000 - - @tag.find("#button-sign-publish-menu").removeClass("visible") - return false - - # Publish content.json - @tag.find("#button-publish").off("click touchend").on "click touchend", => - inner_path = @tag.find("#input-contents").val() - @tag.find("#button-publish").addClass "loading" - wrapper.ws.cmd "sitePublish", {"inner_path": inner_path, "sign": false}, => - @tag.find("#button-publish").removeClass "loading" return false # Close diff --git a/plugins/Sidebar/media/all.js b/plugins/Sidebar/media/all.js index 6ad58f7c..a77f8ceb 100644 --- a/plugins/Sidebar/media/all.js +++ b/plugins/Sidebar/media/all.js @@ -693,8 +693,54 @@ window.initScrollable = function () { }; })(this)); menu = new Menu(this.tag.find("#wrapper-sign-publish")); - menu.addItem("Sign"); - menu.addItem("Publush"); + menu.addItem("Sign", (function(_this) { + return function() { + var inner_path; + inner_path = _this.tag.find("#input-contents").val(); + 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", { + 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); + } + }); + } else { + return wrapper.displayPrompt("Enter your private key:", "password", "Sign", "", function(privatekey) { + return 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); + } + }); + }); + } + }); + _this.tag.find(".contents + .flex").removeClass("active"); + return menu.hide(); + }; + })(this)); + menu.addItem("Publish", (function(_this) { + return function() { + var inner_path; + inner_path = _this.tag.find("#input-contents").val(); + wrapper.ws.cmd("sitePublish", { + "inner_path": inner_path, + "sign": false + }); + _this.tag.find(".contents + .flex").removeClass("active"); + return menu.hide(); + }; + })(this)); this.tag.find("#menu-sign-publish").off("click touchend").on("click touchend", (function(_this) { return function() { if (window.visible_menu === menu) { @@ -745,57 +791,6 @@ window.initScrollable = function () { }); } }); - _this.tag.find("#button-sign-publish-menu").removeClass("visible"); - return false; - }; - })(this)); - this.tag.find("#button-sign").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", { - 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", { - 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); - } - }); - } else { - return wrapper.displayPrompt("Enter your private key:", "password", "Sign", "", function(privatekey) { - return 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); - } - }); - }); - } - }); - _this.tag.find("#button-sign-publish-menu").removeClass("visible"); - return false; - }; - })(this)); - this.tag.find("#button-publish").off("click touchend").on("click touchend", (function(_this) { - return function() { - var inner_path; - inner_path = _this.tag.find("#input-contents").val(); - _this.tag.find("#button-publish").addClass("loading"); - wrapper.ws.cmd("sitePublish", { - "inner_path": inner_path, - "sign": false - }, function() { - return _this.tag.find("#button-publish").removeClass("loading"); - }); return false; }; })(this));