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() {
|
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;
|
var peers = Meteor.settings.servers.dimse[0].peers;
|
||||||
console.log('Adding DIMSE peers');
|
console.log('Adding DIMSE peers');
|
||||||
if (peers && peers.length) {
|
if (peers && peers.length) {
|
||||||
|
|||||||
@ -19,7 +19,7 @@ Template.serverInformationForm.events({
|
|||||||
submit: function(event, instance) {
|
submit: function(event, instance) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
var formData = FormUtils.getFormData(instance.data.$form);
|
var formData = FormUtils.getFormData(instance.data.$form);
|
||||||
Meteor.call('saveServer', formData, function(error) {
|
Meteor.call('serverSave', formData, function(error) {
|
||||||
if (error) {
|
if (error) {
|
||||||
// TODO: check for errors: not-authorized, data-write
|
// TODO: check for errors: not-authorized, data-write
|
||||||
console.log('>>>>ERROR', error);
|
console.log('>>>>ERROR', error);
|
||||||
|
|||||||
@ -14,6 +14,13 @@
|
|||||||
<td>{{this.type}}</td>
|
<td>{{this.type}}</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
<div class="btn-group" role="group" aria-label="Actions">
|
<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">
|
<button class="btn btn-sm btn-default js-edit-server" title="Edit">
|
||||||
<i class="fa fa-pencil"></i>
|
<i class="fa fa-pencil"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
Template.serverInformationList.helpers({
|
Template.serverInformationList.helpers({
|
||||||
|
isActive: function(server) {
|
||||||
|
return server._id === Meteor.user().profile.activeServer;
|
||||||
|
},
|
||||||
servers: function() {
|
servers: function() {
|
||||||
return Servers.find().fetch();
|
return Servers.find().fetch();
|
||||||
}
|
}
|
||||||
@ -14,11 +17,15 @@ Template.serverInformationList.events({
|
|||||||
},
|
},
|
||||||
'click .js-remove-server': function(event, instance) {
|
'click .js-remove-server': function(event, instance) {
|
||||||
var id = this._id;
|
var id = this._id;
|
||||||
Meteor.call('removeServer', this._id, function(error) {
|
Meteor.call('serverRemove', this._id, function(error) {
|
||||||
if (error) {
|
// TODO: [custom-servers] check for errors: not-authorized, data-write
|
||||||
// TODO: check for errors: not-authorized, data-write
|
});
|
||||||
console.log('>>>>ERROR', error);
|
},
|
||||||
}
|
'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()) {
|
if (!Meteor.userId()) {
|
||||||
throw new Meteor.Error('not-authorized');
|
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 = {
|
var query = {
|
||||||
_id: serverSettings._id
|
_id: serverSettings._id
|
||||||
};
|
};
|
||||||
@ -29,21 +38,34 @@ Meteor.methods({
|
|||||||
delete serverSettings._id;
|
delete serverSettings._id;
|
||||||
}
|
}
|
||||||
|
|
||||||
var callback = function(error, affected) {
|
return Servers.update(query, serverSettings, options, this.writeCallback);
|
||||||
if (error) {
|
}
|
||||||
throw new Meteor.Error('data-write', error);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
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);
|
static remove(serverId) {
|
||||||
},
|
this.validateUser();
|
||||||
|
|
||||||
removeServer: function(serverId) {
|
|
||||||
var query = {
|
var query = {
|
||||||
_id: serverId
|
_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);
|
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 server = Meteor.settings.servers.dimse[0].peers[0];
|
||||||
var host = Meteor.settings.servers.dimse.host,
|
var host = Meteor.settings.servers.dimse.host,
|
||||||
port = Meteor.settings.servers.dimse.port;
|
port = Meteor.settings.servers.dimse.port;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user