@@ -26,7 +26,7 @@ window.onblur = function() {
2626} ;
2727
2828var Polyglot = require ( 'node-polyglot' ) ,
29- ipcRenderer = require ( 'ipc-renderer' ) ,
29+ ipcRenderer = require ( 'electron' ) . ipcRenderer ,
3030 remote = require ( 'electron' ) . remote ,
3131 getBTPrice = require ( './utils/getBitcoinPrice' ) ,
3232 router = require ( './router' ) ,
@@ -132,14 +132,23 @@ window.addEventListener('contextmenu', (e) => {
132132
133133app . serverConfigs = new ServerConfigsCl ( ) ;
134134app . serverConfigs . fetch ( ) . done ( ( ) => {
135- var oldConfig ,
135+ var activeServer = app . serverConfigs . getActive ( ) ,
136+ oldConfig ,
136137 defaultConfig ;
137138
138- if ( ! app . serverConfigs . getActive ( ) ) {
139- defaultConfig = app . serverConfigs . create ( {
139+ if ( ! activeServer ) {
140+ var serverConfigOpts = {
140141 name : window . polyglot . t ( 'serverConnectModal.defaultServerName' ) ,
141142 default : true
142- } ) ;
143+ } ;
144+
145+ if ( remote . getGlobal ( 'launched_from_installer' ) ) {
146+ serverConfigOpts . rest_api_port = remote . getGlobal ( 'restAPIPort' ) ;
147+ serverConfigOpts . api_socket_port = remote . getGlobal ( 'apiSocketPort' ) ;
148+ serverConfigOpts . heartbeat_socket_port = remote . getGlobal ( 'heartbeatSocketPort' ) ;
149+ }
150+
151+ defaultConfig = app . serverConfigs . create ( serverConfigOpts ) ;
143152
144153 // migrate any existing connection from the
145154 // old single config set-up (_serverConfig-1)
@@ -177,6 +186,12 @@ app.serverConfigs.fetch().done(() => {
177186 } else {
178187 app . serverConfigs . setActive ( defaultConfig . id ) ;
179188 }
189+ } else if ( remote . getGlobal ( 'launched_from_installer' ) && activeServer . get ( 'default' ) ) {
190+ activeServer . save ( {
191+ 'rest_api_port' : remote . getGlobal ( 'restAPIPort' ) ,
192+ 'api_socket_port' : remote . getGlobal ( 'apiSocketPort' ) ,
193+ 'heartbeat_socket_port' : remote . getGlobal ( 'heartbeatSocketPort' ) ,
194+ } ) ;
180195 }
181196} ) ;
182197
@@ -208,7 +223,7 @@ app.serverConfigs.on('activeServerChange', () => {
208223var platform = process . platform ;
209224
210225if ( platform === "linux" ) {
211- var scaleFactor = require ( 'screen' ) . getPrimaryDisplay ( ) . scaleFactor ;
226+ var scaleFactor = require ( 'electron' ) . screen . getPrimaryDisplay ( ) . scaleFactor ;
212227 if ( scaleFactor === 0 ) {
213228 scaleFactor = 1 ;
214229 }
@@ -259,8 +274,8 @@ $(document).on('mouseleave', 'a[data-href-tooltip]', function() {
259274
260275//record changes to the app state
261276$ ( window ) . bind ( 'hashchange' , function ( ) {
262- const host = encodeURIComponent ( app . serverConfigs . getActive ( ) . getServerBaseUrl ( ) ) ;
263- const route = Backbone . history . getFragment ( ) ;
277+ const host = encodeURIComponent ( app . serverConfigs . getActive ( ) . getServerBaseUrl ( ) ) ;
278+ const route = Backbone . history . getFragment ( ) ;
264279 localStorage . setItem ( host , route ) ;
265280} ) ;
266281
@@ -298,49 +313,49 @@ $(window).bind('keydown', function(e) {
298313
299314 if ( ctrl ) {
300315 switch ( char ) {
301- case window . config . keyShortcuts . undo :
302- e . preventDefault ( ) ;
303- //run undo programmatically to avoid crash
304- document . execCommand ( 'undo' ) ;
305- break ;
306- case window . config . keyShortcuts . discover :
307- route = 'home' ;
308- break ;
309- case window . config . keyShortcuts . myPage :
310- route = 'userPage' ;
311- break ;
312- case window . config . keyShortcuts . customizePage :
313- route = 'userPage/' + user . get ( 'guid' ) + '/customize' ;
314- break ;
315- case window . config . keyShortcuts . create :
316- route = 'userPage/' + user . get ( 'guid' ) + '/listingNew' ;
317- break ;
318- case window . config . keyShortcuts . purchases :
319- route = 'transactions/purchases' ;
320- break ;
321- case window . config . keyShortcuts . sales :
322- route = 'transactions/sales' ;
323- break ;
324- case window . config . keyShortcuts . cases :
325- route = 'transactions/cases' ;
326- break ;
327- case window . config . keyShortcuts . settings :
328- route = 'settings' ;
329- break ;
330- case window . config . keyShortcuts . addressBar :
331- // Select all text in address bar
332- $ ( '.js-navAddressBar' ) . select ( ) ;
333- break ;
334- case window . config . keyShortcuts . save :
335- window . obEventBus . trigger ( 'saveCurrentForm' ) ;
336- break ;
337- case window . config . keyShortcuts . refresh :
338- e . preventDefault ( ) ;
339- app . router . refresh ( ) ;
340- break ;
341- case window . config . keyShortcuts . restart :
342- location . reload ( ) ;
343- break ;
316+ case window . config . keyShortcuts . undo :
317+ e . preventDefault ( ) ;
318+ //run undo programmatically to avoid crash
319+ document . execCommand ( 'undo' ) ;
320+ break ;
321+ case window . config . keyShortcuts . discover :
322+ route = 'home' ;
323+ break ;
324+ case window . config . keyShortcuts . myPage :
325+ route = 'userPage' ;
326+ break ;
327+ case window . config . keyShortcuts . customizePage :
328+ route = 'userPage/' + user . get ( 'guid' ) + '/customize' ;
329+ break ;
330+ case window . config . keyShortcuts . create :
331+ route = 'userPage/' + user . get ( 'guid' ) + '/listingNew' ;
332+ break ;
333+ case window . config . keyShortcuts . purchases :
334+ route = 'transactions/purchases' ;
335+ break ;
336+ case window . config . keyShortcuts . sales :
337+ route = 'transactions/sales' ;
338+ break ;
339+ case window . config . keyShortcuts . cases :
340+ route = 'transactions/cases' ;
341+ break ;
342+ case window . config . keyShortcuts . settings :
343+ route = 'settings' ;
344+ break ;
345+ case window . config . keyShortcuts . addressBar :
346+ // Select all text in address bar
347+ $ ( '.js-navAddressBar' ) . select ( ) ;
348+ break ;
349+ case window . config . keyShortcuts . save :
350+ window . obEventBus . trigger ( 'saveCurrentForm' ) ;
351+ break ;
352+ case window . config . keyShortcuts . refresh :
353+ e . preventDefault ( ) ;
354+ app . router . refresh ( ) ;
355+ break ;
356+ case window . config . keyShortcuts . restart :
357+ location . reload ( ) ;
358+ break ;
344359 }
345360
346361 if ( route !== null ) {
@@ -408,7 +423,7 @@ var loadProfile = function(landingRoute, onboarded) {
408423 var userLang = model . get ( 'language' ) ;
409424 cCode = model . get ( 'currency_code' ) ;
410425
411- if ( userLang != window . polyglot . currentLocale ) {
426+ if ( userLang != window . polyglot . currentLocale ) {
412427 //when switching nodes, the language saved in localStorage can be different than the language in the
413428 // user model, but the user model does not trigger a change because it hasn't changed
414429 updatePolyglot ( userLang ) ;
@@ -643,64 +658,64 @@ removeStartupRetry = function() {
643658app . getHeartbeatSocket ( ) . on ( 'message' , function ( e ) {
644659 if ( e . jsonData && e . jsonData . status ) {
645660 switch ( e . jsonData . status ) {
646- case 'generating GUID' :
647- profileLoaded && location . reload ( ) ;
648- if ( guidCreating ) return ;
649-
650- // todo: put in some timeout in the off chance the guid
651- // creation process doesn't complete after a long time.
652- guidCreating = $ . Deferred ( ) ;
653-
654- // launch onboarding, pass in guid creating
655- launchOnboarding ( guidCreating ) ;
656- break ;
657- case 'GUID generation complete' :
658- profileLoaded && location . reload ( ) ;
659-
660- app . serverConfigs . getActive ( ) . save ( {
661- username : e . jsonData . username ,
662- password : e . jsonData . password
663- } ) ;
664-
665- app . login ( ) . done ( function ( ) {
666- guidCreating . resolve ( ) ;
667- } ) ;
661+ case 'generating GUID' :
662+ profileLoaded && location . reload ( ) ;
663+ if ( guidCreating ) return ;
664+
665+ // todo: put in some timeout in the off chance the guid
666+ // creation process doesn't complete after a long time.
667+ guidCreating = $ . Deferred ( ) ;
668+
669+ // launch onboarding, pass in guid creating
670+ launchOnboarding ( guidCreating ) ;
671+ break ;
672+ case 'GUID generation complete' :
673+ profileLoaded && location . reload ( ) ;
674+
675+ app . serverConfigs . getActive ( ) . save ( {
676+ username : e . jsonData . username ,
677+ password : e . jsonData . password
678+ } ) ;
668679
669- break ;
670- case 'online' :
671- if ( loadProfileNeeded && ! guidCreating ) {
672- loadProfileNeeded = false ;
673- onboardingModal && onboardingModal . remove ( ) ;
674-
675- app . login ( ) . done ( function ( data ) {
676- if ( data . success ) {
677- $ . getJSON ( app . serverConfigs . getActive ( ) . getServerBaseUrl ( ) + '/profile' )
678- . done ( function ( profile , textStatus ) {
679- if ( textStatus == 'parsererror' ) {
680- alert ( window . polyglot . t ( 'errorMessages.serverError' ) + "\n\n" + window . polyglot . t ( 'errorMessages.badJSON' ) ) ;
681- app . serverConnectModal . failConnection ( null , app . serverConfigs . getActive ( ) )
682- . open ( ) ;
683- return ;
684- }
685-
686- if ( __ . isEmpty ( profile ) ) {
687- launchOnboarding ( guidCreating = $ . Deferred ( ) . resolve ( ) . promise ( ) ) ;
688- } else {
689- app . serverConnectModal . succeedConnection ( app . serverConfigs . getActive ( ) ) ;
690- loadProfile ( ) ;
691- }
692- } ) ;
693- } else {
694- app . serverConnectModal . failConnection (
695- data . reason === 'too many attempts' ? 'failed-auth-too-many' : 'failed-auth' ,
696- app . serverConfigs . getActive ( )
697- ) . open ( ) ;
698- }
699- } ) . fail ( function ( ) {
700- app . serverConnectModal . failConnection ( null , app . serverConfigs . getActive ( ) )
701- . open ( ) ;
680+ app . login ( ) . done ( function ( ) {
681+ guidCreating . resolve ( ) ;
702682 } ) ;
703- }
683+
684+ break ;
685+ case 'online' :
686+ if ( loadProfileNeeded && ! guidCreating ) {
687+ loadProfileNeeded = false ;
688+ onboardingModal && onboardingModal . remove ( ) ;
689+
690+ app . login ( ) . done ( function ( data ) {
691+ if ( data . success ) {
692+ $ . getJSON ( app . serverConfigs . getActive ( ) . getServerBaseUrl ( ) + '/profile' )
693+ . done ( function ( profile , textStatus ) {
694+ if ( textStatus == 'parsererror' ) {
695+ alert ( window . polyglot . t ( 'errorMessages.serverError' ) + "\n\n" + window . polyglot . t ( 'errorMessages.badJSON' ) ) ;
696+ app . serverConnectModal . failConnection ( null , app . serverConfigs . getActive ( ) )
697+ . open ( ) ;
698+ return ;
699+ }
700+
701+ if ( __ . isEmpty ( profile ) ) {
702+ launchOnboarding ( guidCreating = $ . Deferred ( ) . resolve ( ) . promise ( ) ) ;
703+ } else {
704+ app . serverConnectModal . succeedConnection ( app . serverConfigs . getActive ( ) ) ;
705+ loadProfile ( ) ;
706+ }
707+ } ) ;
708+ } else {
709+ app . serverConnectModal . failConnection (
710+ data . reason === 'too many attempts' ? 'failed-auth-too-many' : 'failed-auth' ,
711+ app . serverConfigs . getActive ( )
712+ ) . open ( ) ;
713+ }
714+ } ) . fail ( function ( ) {
715+ app . serverConnectModal . failConnection ( null , app . serverConfigs . getActive ( ) )
716+ . open ( ) ;
717+ } ) ;
718+ }
704719 }
705720 }
706721 if ( e . jsonData && e . jsonData . libbitcoin ) {
0 commit comments