LT-67 Storing the activeServer in user's profile
This commit is contained in:
parent
1ca585bfb0
commit
9bf96f24d7
@ -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) {
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -14,6 +14,13 @@
|
||||
<td>{{this.type}}</td>
|
||||
<td class="text-right">
|
||||
<div class="btn-group" role="group" aria-label="Actions">
|
||||
<button class="btn btn-sm btn-default js-use-server" title="Use this server" disabled="{{#if isActive this}}disabled{{/if}}">
|
||||
{{#if isActive this}}
|
||||
<i class="fa fa-check-square-o"></i>
|
||||
{{else}}
|
||||
<i class="fa fa-square-o"></i>
|
||||
{{/if}}
|
||||
</button>
|
||||
<button class="btn btn-sm btn-default js-edit-server" title="Edit">
|
||||
<i class="fa fa-pencil"></i>
|
||||
</button>
|
||||
|
||||
@ -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
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@ -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)
|
||||
});
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user