From 43b1a39a5a93c7fd5dd5f0ab23e4d61a5b909f78 Mon Sep 17 00:00:00 2001 From: Harvey Kandola Date: Fri, 2 Dec 2016 18:25:02 -0800 Subject: [PATCH] experimental electron-based desktop app support --- app/app/authenticators/documize.js | 12 ++- app/app/components/onboard/share-folder.js | 20 ++-- .../components/section/code/type-editor.js | 8 +- .../components/section/code/type-renderer.js | 6 +- .../components/section/wysiwyg/type-editor.js | 13 ++- app/app/index.html | 22 ++--- app/app/initializers/application.js | 4 +- app/app/pods/auth/forgot/template.hbs | 2 +- app/app/pods/auth/login/template.hbs | 2 +- app/app/pods/auth/reset/template.hbs | 2 +- app/app/pods/auth/sso/template.hbs | 2 +- app/app/pods/setup/template.hbs | 4 +- app/app/services/app-meta.js | 2 +- app/app/services/session.js | 6 +- .../components/document/document-files.hbs | 2 +- .../components/document/document-view.hbs | 2 +- .../components/document/edit-tools.hbs | 4 +- .../components/document/editor-history.hbs | 2 +- .../components/document/page-wizard.hbs | 2 +- .../components/folder/documents-list.hbs | 2 +- .../components/folder/start-document.hbs | 2 +- .../components/onboard/share-folder.hbs | 6 +- .../components/section/base-editor.hbs | 2 +- app/config/environment.js | 5 +- app/electron.js | 91 +++++++++++++++++++ app/package.json | 49 +++++++++- app/tests/electron.js | 33 +++++++ app/tests/package.json | 4 + core/database/templates/db-error.html | 24 ++--- 29 files changed, 273 insertions(+), 62 deletions(-) create mode 100644 app/electron.js create mode 100644 app/tests/electron.js create mode 100644 app/tests/package.json diff --git a/app/app/authenticators/documize.js b/app/app/authenticators/documize.js index af522f9c..b3965fdc 100644 --- a/app/app/authenticators/documize.js +++ b/app/app/authenticators/documize.js @@ -1,11 +1,11 @@ // Copyright 2016 Documize Inc. . All rights reserved. // -// This software (Documize Community Edition) is licensed under +// This software (Documize Community Edition) is licensed under // GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html // // You can operate outside the AGPL restrictions by purchasing // Documize Enterprise Edition and obtaining a commercial license -// by contacting . +// by contacting . // // https://documize.com @@ -35,6 +35,12 @@ export default Base.extend({ authenticate(credentials) { let domain = netUtil.getSubdomain(); + if (is.empty(domain)) { + console.log(domain); + domain = "demo1"; + console.log(domain); + } + let encoded; if (typeof credentials === 'object') { @@ -63,4 +69,4 @@ export default Base.extend({ invalidate() { return resolve(); } -}); \ No newline at end of file +}); diff --git a/app/app/components/onboard/share-folder.js b/app/app/components/onboard/share-folder.js index b9f4fa19..7eb6322b 100644 --- a/app/app/components/onboard/share-folder.js +++ b/app/app/components/onboard/share-folder.js @@ -24,14 +24,20 @@ export default Ember.Component.extend({ didRender() { let self = this; + let assetUrl = this.session.get('assetURL'); + // handle desktop app + if (assetUrl === null) { + assetUrl = ''; + } + $("#stage-1-firstname").focus(); // Stage 1 - person name keypress handler $("#stage-1-firstname, #stage-1-lastname").keyup(function() { if (!$("#stage-1-firstname").val() || !$("#stage-1-lastname").val()) { - $(".name-status").attr("src", "/assets/img/onboard/person-red.png"); + $(".name-status").attr("src", assetUrl + "assets/img/onboard/person-red.png"); } else { - $(".name-status").attr("src", "/assets/img/onboard/person-green.png"); + $(".name-status").attr("src", assetUrl + "assets/img/onboard/person-green.png"); } }); @@ -40,14 +46,14 @@ export default Ember.Component.extend({ if (!$("#stage-1-firstname").val()) { $("#stage-1-firstname").focus(); $("#stage-1-firstname").addClass("error"); - $(".name-status").attr("src", "/assets/img/onboard/person-red.png"); + $(".name-status").attr("src", assetUrl + "assets/img/onboard/person-red.png"); return; } if (!$("#stage-1-lastname").val()) { $("#stage-1-lastname").focus(); $("#stage-1-lastname").addClass("error"); - $(".name-status").attr("src", "/assets/img/onboard/person-red.png"); + $(".name-status").attr("src", assetUrl + "assets/img/onboard/person-red.png"); return; } @@ -67,9 +73,9 @@ export default Ember.Component.extend({ $("#stage-2-password-confirm").keyup(function() { if ($("#stage-2-password").val().length < 6 || $("#stage-2-password").val().length > 50 || ($("#stage-2-password").val() !== $("#stage-2-password-confirm").val())) { - $(".password-status").attr("src", "/assets/img/onboard/lock-red.png"); + $(".password-status").attr("src", assetUrl + "assets/img/onboard/lock-red.png"); } else { - $(".password-status").attr("src", "/assets/img/onboard/lock-green.png"); + $(".password-status").attr("src", assetUrl + "assets/img/onboard/lock-green.png"); } }); }); @@ -91,7 +97,7 @@ export default Ember.Component.extend({ if ($("#stage-2-password-confirm").val() !== $("#stage-2-password").val()) { $(".mismatch").show(); - $(".password-status").attr("src", "/assets/img/onboard/lock-red.png"); + $(".password-status").attr("src", assetUrl + "assets/img/onboard/lock-red.png"); return; } diff --git a/app/app/components/section/code/type-editor.js b/app/app/components/section/code/type-editor.js index 14fb6f68..76e40903 100644 --- a/app/app/components/section/code/type-editor.js +++ b/app/app/components/section/code/type-editor.js @@ -23,7 +23,13 @@ export default Ember.Component.extend(TooltipMixin, { this._super(...arguments); let self = this; - CodeMirror.modeURL = "/codemirror/mode/%N/%N.js"; + + // handle desktop app + if (this.session.get('assetURL') === null) { + CodeMirror.modeURL = "codemirror/mode/%N/%N.js"; + } else { + CodeMirror.modeURL = "/codemirror/mode/%N/%N.js"; + } let rawBody = this.get('meta.rawBody'); let cleanBody = rawBody.replace("", ""); diff --git a/app/app/components/section/code/type-renderer.js b/app/app/components/section/code/type-renderer.js index 742e8665..bd5d6be6 100644 --- a/app/app/components/section/code/type-renderer.js +++ b/app/app/components/section/code/type-renderer.js @@ -16,7 +16,11 @@ export default Ember.Component.extend({ codeSyntax: "htmlmixed", didReceiveAttrs() { - CodeMirror.modeURL = "/codemirror/mode/%N/%N.js"; + if (this.session.get('assetURL') === null) { + CodeMirror.modeURL = "codemirror/mode/%N/%N.js"; + } else { + CodeMirror.modeURL = "/codemirror/mode/%N/%N.js"; + } let page = this.get('page'); let rawBody = page.get('body'); diff --git a/app/app/components/section/wysiwyg/type-editor.js b/app/app/components/section/wysiwyg/type-editor.js index a55fb2d7..65161e14 100644 --- a/app/app/components/section/wysiwyg/type-editor.js +++ b/app/app/components/section/wysiwyg/type-editor.js @@ -67,9 +67,18 @@ export default Ember.Component.extend({ }; if (typeof tinymce === 'undefined') { - $.getScript("/tinymce/tinymce.min.js?v=443", function () { + let url = this.session.get('assetURL'); + let tinymceBaseURL = "//" + window.location.host + "/tinymce"; + + // handle desktop app + if (url === null) { + url = ''; + tinymceBaseURL = "tinymce"; + } + + $.getScript(url + "tinymce/tinymce.min.js?v=443", function () { window.tinymce.dom.Event.domLoaded = true; - tinymce.baseURL = "//" + window.location.host + "/tinymce"; + tinymce.baseURL = tinymceBaseURL; tinymce.suffix = ".min"; tinymce.init(options); }); diff --git a/app/app/index.html b/app/app/index.html index 66d8284c..108084b8 100644 --- a/app/app/index.html +++ b/app/app/index.html @@ -11,22 +11,22 @@ - - - - + + + + {{content-for 'head-footer'}} {{content-for 'body'}} - - - - - - - + + + + + + + {{content-for 'body-footer'}} diff --git a/app/app/initializers/application.js b/app/app/initializers/application.js index 11372ba4..a03ae2bb 100644 --- a/app/app/initializers/application.js +++ b/app/app/initializers/application.js @@ -9,7 +9,9 @@ // // https://documize.com -export function initialize( /*application*/ ) { +// import env from '../config/environment'; + +export function initialize(/*application*/) { // address insecure jquery defaults (kudos: @nathanhammond) $.globalEval = function() {}; $.ajaxSetup({ diff --git a/app/app/pods/auth/forgot/template.hbs b/app/app/pods/auth/forgot/template.hbs index 74fc8db1..7118e106 100644 --- a/app/app/pods/auth/forgot/template.hbs +++ b/app/app/pods/auth/forgot/template.hbs @@ -1,6 +1,6 @@