diff --git a/app/adapters/application.js b/app/adapters/application.js index c087b2cd23f9dd1dcb92bab9ea74c2b1215b7c5e..8b0b00fd56eb9ff139e0ea0d6f9cfc59f42b73d0 100644 --- a/app/adapters/application.js +++ b/app/adapters/application.js @@ -1,5 +1,5 @@ import JSONAPIAdapter from '@ember-data/adapter/json-api'; -import { inject as service } from '@ember/service'; +import { service } from '@ember/service'; import ENV from 'papermerge/config/environment'; diff --git a/app/authenticators/auth-token.js b/app/authenticators/auth-token.js index 8a00242ffeb8429d1deda1beed7e661b8f36a0c8..6dc1171ad34dc4bbe511fd75260496d5dec5a66a 100644 --- a/app/authenticators/auth-token.js +++ b/app/authenticators/auth-token.js @@ -1,5 +1,5 @@ import Base from 'ember-simple-auth/authenticators/base'; -import { base_url } from 'papermerge/utils'; +import { base_url } from 'papermerge/utils/host'; export default class AuthToken extends Base { diff --git a/app/controllers/login.js b/app/controllers/login.js index d9ea8ea91d158ab0d14702b840d3de9cb43190fd..520e58758ffff4309771cc9aee8902821488e951 100644 --- a/app/controllers/login.js +++ b/app/controllers/login.js @@ -2,7 +2,7 @@ import Controller from '@ember/controller'; import { service } from '@ember/service'; import { action } from '@ember/object'; import { tracked } from '@glimmer/tracking'; -import { base_url } from 'papermerge/utils'; +import { base_url } from 'papermerge/utils/host'; export default class LoginController extends Controller { diff --git a/app/services/requests.js b/app/services/requests.js index a370cbeffa40c4e49aff87bd53b0ea17d5865348..afab04b13526576e569848a9497899b5d2709a7f 100644 --- a/app/services/requests.js +++ b/app/services/requests.js @@ -3,11 +3,12 @@ import Service from '@ember/service'; import { computed } from '@ember/object'; import { service } from '@ember/service'; import { - base_url, insert_blob, extract_file_name } from 'papermerge/utils'; +import { base_url } from 'papermerge/utils/host'; + export default class Requests extends Service { @service session; diff --git a/app/services/websockets.js b/app/services/websockets.js index 408c2846d20ae5790fc45913507d5906a56b32e0..a3ebbbbbcce1f9aae8a465f8cedf41f56bbeed8c 100644 --- a/app/services/websockets.js +++ b/app/services/websockets.js @@ -1,5 +1,5 @@ import Service from '@ember/service'; -import { ws_base_url } from 'papermerge/utils'; +import { ws_base_url } from 'papermerge/utils/host'; export default class Websockets extends Service { diff --git a/app/services/ws_nodes_move.js b/app/services/ws_nodes_move.js index e0d4c5bfb74f1fed7d230db2999ac55f9ba4b83d..7bb45103fed7e73feb377856bb07e996b5f00860 100644 --- a/app/services/ws_nodes_move.js +++ b/app/services/ws_nodes_move.js @@ -1,4 +1,4 @@ -import { ws_base_url } from 'papermerge/utils'; +import { ws_base_url } from 'papermerge/utils/host'; import Service from '@ember/service'; diff --git a/app/utils/host.js b/app/utils/host.js new file mode 100644 index 0000000000000000000000000000000000000000..70219f4b8703128903c0daaff8f46fd733854257 --- /dev/null +++ b/app/utils/host.js @@ -0,0 +1,54 @@ +import ENV from 'papermerge/config/environment'; + + +function base_url() { + /* + Returns backend's REST API base url. + + base url is extracted from `window` object, which + means this method is valid only in browser environment. + + Notice there is no `/` at the end of returned string. + */ + let base = `${window.location.protocol}//${window.location.host}`; + + if (ENV.APP.HOST) { + // user can override BACKEND HOST by providing + // ENV.APP.HOST value + // e.g. ENV.APP.HOST = 'http://127.0.0.1:8000'; + base = ENV.APP.HOST; + } + + if (!ENV.APP.NAMESPACE) { + return base; + } + + return `${base}/${ENV.APP.NAMESPACE}`; +} + + +function ws_base_url() { + /* + websockets base url + */ + let base = `ws://${window.location.host}`; + + if (ENV.APP.WS_HOST) { + // user can override BACKEND HOST by providing + // ENV.APP.HOST value + // e.g. ENV.APP.HOST = 'ws://127.0.0.1:8000'; + base = ENV.WS_APP.HOST; + } + + if (!ENV.APP.WS_NAMESPACE) { + return base; + } + + return `${base}/${ENV.APP.WS_NAMESPACE}`; +} + + +export { + base_url, + ws_base_url, +}; diff --git a/app/utils/index.js b/app/utils/index.js index db4624e6659d259bdf3b51ee60f111ccbf1599de..e2559edd6324cd5719e1c7cc545f51b469b0117b 100644 --- a/app/utils/index.js +++ b/app/utils/index.js @@ -63,56 +63,6 @@ function are_sets_equal(set1, set2) { return same_size(set1, set2) && same_values(set1, set2); } -function base_url() { - /* - Returns backend's REST API base url - - Notice there is no `/` at the end of returned string. - */ - let base = `${window.location.protocol}:/${window.location.host}`; - - if (!ENV.APP.HOST) { - - if (!ENV.APP.NAMESPACE) { - return base; - } - - return `${base}/${ENV.APP.NAMESPACE}`; - } - - if (!ENV.APP.NAMESPACE) { - return `${ENV.APP.HOST}`; - } - - return `${ENV.APP.HOST}/${ENV.APP.NAMESPACE}`; -} - -function ws_base_url() { - /* - websockets base url - */ - let base = `ws://${window.location.host}`; - - if (window.location.protocol == "https:") { - base = `wss://${window.location.host}`; - } - - if (!ENV.APP.WS_HOST) { - - if (!ENV.APP.WS_NAMESPACE) { - return base; - } - - return `${base}/${ENV.APP.WS_NAMESPACE}`; - } - - if (!ENV.APP.WS_NAMESPACE) { - return `${ENV.APP.WS_HOST}`; - } - - return `${ENV.APP.WS_HOST}/${ENV.APP.WS_NAMESPACE}`; -} - /** * Extracts file name from a response with accessible Content-Disposition header */ @@ -158,8 +108,6 @@ function insert_blob(file_name, blob) { export { group_perms_by_model, are_sets_equal, - base_url, - ws_base_url, insert_blob, extract_file_name }; diff --git a/config/environment.js b/config/environment.js index be4e8a28315608b867ce6d493ca91b4f3378e085..10fba31aa51a9b26e881c315fc6896185c16eaaa 100644 --- a/config/environment.js +++ b/config/environment.js @@ -28,6 +28,7 @@ module.exports = function (environment) { if (environment === 'development') { ENV.APP.HOST = 'http://127.0.0.1:8000'; ENV.APP.WS_HOST = 'ws://127.0.0.1:8000'; + // ENV.APP.LOG_RESOLVER = true; // ENV.APP.LOG_ACTIVE_GENERATION = true; // ENV.APP.LOG_TRANSITIONS = true; @@ -53,8 +54,6 @@ module.exports = function (environment) { if (environment === 'production') { // here you can enable a production-specific feature - ENV.APP.HOST = 'http://papermerge.local'; - ENV.APP.WS_HOST = 'ws://papermerge.local'; } return ENV;