diff --git a/Packages/dimseservice/server/DIMSE.js b/Packages/dimseservice/server/DIMSE.js index bbeeecbaa..092f0acc4 100755 --- a/Packages/dimseservice/server/DIMSE.js +++ b/Packages/dimseservice/server/DIMSE.js @@ -54,7 +54,8 @@ var getInstanceRetrievalParams = function(studyInstanceUID, seriesInstanceUID) { }; Meteor.startup(function() { - if (!Meteor.settings.servers.dimse) return; + if (!Meteor.settings.servers.dimse || !Meteor.settings.servers.dimse.length) return; + // TODO: [custom-servers] use active server and check if type is DIMSE var peers = Meteor.settings.servers.dimse[0].peers; console.log('Adding DIMSE peers'); if (peers && peers.length) { diff --git a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationForm.js b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationForm.js index c2f8a9ab2..69a8c1465 100644 --- a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationForm.js +++ b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationForm.js @@ -19,7 +19,7 @@ Template.serverInformationForm.events({ submit: function(event, instance) { event.preventDefault(); var formData = FormUtils.getFormData(instance.data.$form); - Meteor.call('saveServer', formData, function(error) { + Meteor.call('serverSave', formData, function(error) { if (error) { // TODO: check for errors: not-authorized, data-write console.log('>>>>ERROR', error); diff --git a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.html b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.html index d91421378..87bc2c65d 100644 --- a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.html +++ b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.html @@ -14,6 +14,13 @@ {{this.type}}
+ diff --git a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.js b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.js index d3081675e..b00097dd3 100644 --- a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.js +++ b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.js @@ -1,4 +1,7 @@ Template.serverInformationList.helpers({ + isActive: function(server) { + return server._id === Meteor.user().profile.activeServer; + }, servers: function() { return Servers.find().fetch(); } @@ -14,11 +17,15 @@ Template.serverInformationList.events({ }, 'click .js-remove-server': function(event, instance) { var id = this._id; - Meteor.call('removeServer', this._id, function(error) { - if (error) { - // TODO: check for errors: not-authorized, data-write - console.log('>>>>ERROR', error); - } + Meteor.call('serverRemove', this._id, function(error) { + // TODO: [custom-servers] check for errors: not-authorized, data-write + }); + }, + 'click .js-use-server': function(event, instance) { + console.debug('>>>>clicked'); + var id = this._id; + Meteor.call('serverSetActive', this._id, function(error) { + // TODO: [custom-servers] check for errors: not-authorized, data-write }); } }); diff --git a/Packages/lesiontracker/server/servers.js b/Packages/lesiontracker/server/servers.js index b588e15cd..e562bcd3f 100644 --- a/Packages/lesiontracker/server/servers.js +++ b/Packages/lesiontracker/server/servers.js @@ -11,13 +11,22 @@ Meteor.startup(function() { }); -Meteor.methods({ +class ServersControl { - saveServer: function(serverSettings) { + static validateUser() { if (!Meteor.userId()) { throw new Meteor.Error('not-authorized'); } + } + static writeCallback(error, affected) { + if (error) { + throw new Meteor.Error('data-write', error); + } + } + + static save(serverSettings) { + this.validateUser(); var query = { _id: serverSettings._id }; @@ -29,21 +38,34 @@ Meteor.methods({ delete serverSettings._id; } - var callback = function(error, affected) { - if (error) { - throw new Meteor.Error('data-write', error); - } + return Servers.update(query, serverSettings, options, this.writeCallback); + } + static setActive(serverId) { + this.validateUser(); + var query = { + _id: Meteor.userId() }; + var data = { + $set: { + 'profile.activeServer': serverId + } + }; + Accounts.users.update(query, data, this.writeCallback); + } - Servers.update(query, serverSettings, options, callback); - }, - - removeServer: function(serverId) { + static remove(serverId) { + this.validateUser(); var query = { _id: serverId }; - Servers.remove(query, true); + return Servers.remove(query, this.writeCallback); } +} + +Meteor.methods({ + serverSave: serverSettings => ServersControl.save(serverSettings), + serverSetActive: serverId => ServersControl.setActive(serverId), + serverRemove: serverId => ServersControl.remove(serverId) }); diff --git a/Packages/worklist/server/services/dimse/instances.js b/Packages/worklist/server/services/dimse/instances.js index 6a3080e2d..6e222452f 100755 --- a/Packages/worklist/server/services/dimse/instances.js +++ b/Packages/worklist/server/services/dimse/instances.js @@ -31,7 +31,7 @@ function resultDataToStudyMetadata(resultData) { seriesList.push(series); } - // TODO: Check which peer it should point to | brunoalvesdefaria + // TODO: [custom-servers] Check which peer it should point to var server = Meteor.settings.servers.dimse[0].peers[0]; var host = Meteor.settings.servers.dimse.host, port = Meteor.settings.servers.dimse.port;