1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/web/ synced 2025-03-30 00:00:13 +01:00
VILLASweb/app/services/running-simulations.js
Markus Grigull f3d10d8340 Add simulation-model to simulator relationship
Add simulation to projects
Add running dialog to simulations
Remove running dialog from simulators (simulator should be auto-detected)
Change running-simulation to simulation-models based
2016-10-06 16:56:08 +02:00

64 lines
2 KiB
JavaScript

/**
* File: running-simulations.js
* Author: Markus Grigull <mgrigull@eonerc.rwth-aachen.de>
* Date: 26.07.2016
* Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC
* This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential.
* Unauthorized copying of this file, via any medium is strictly prohibited.
**********************************************************************************/
import Ember from 'ember';
const {
inject: { service }
} = Ember;
export default Ember.Service.extend({
session: service('session'),
sessionUser: Ember.inject.service('session-user'),
store: service(),
simulationModels: [],
loadRunningSimulations: function() {
var self = this;
// check for running simulations
setInterval(function() {
if (self.get('sessionUser.user') != null) {
// check if running simulations did changed
self.get('store').findAll('simulation').then(function(simulations) {
// search for running simulations
simulations.forEach(function(simulation) {
if (simulation.get('running') === true) {
// get all models of the simulation
simulation.get('models').forEach(function(model) {
self.get('store').findRecord('simulation-model', model.get('id')).then(function(m) {
// add to array
self._addSimulationModel(m);
});
});
} else {
// clear all models of the simulation
}
});
});
}
}, 3000);
},
_addSimulationModel(simulationModel) {
// check if the model is already in the array
var models = this.get('simulationModels');
var length = models.get('length');
for (var i = 0; i < length; i++) {
if (models[i].get('id') === simulationModel.get('id')) {
return;
}
}
// not found, so add to the array
this.get('simulationModels').pushObject(simulationModel);
}
});