Skip to content
Snippets Groups Projects
Verified Commit 2dac9a62 authored by Alexander-Krause's avatar Alexander-Krause
Browse files

wip: alway rerender when data is changed

parent bd45fa56
No related branches found
No related tags found
No related merge requests found
......@@ -49,6 +49,7 @@ export default Component.extend(AlertifyHandler, {
if(self.get('initDone')) {
self.updateCytoscapeGraph(newAgentList);
} else {
console.log("da");
// force re-render on initial list
self.set('showCytoscape', true);
}
......@@ -58,7 +59,8 @@ export default Component.extend(AlertifyHandler, {
// there already might be a list
// this occurs, when a user transitions
// to another route and comes back
if(this.get('agentRepo.agentList.length') > 0) {
//console.log(this.get('agentRepo.agentList'));
if(this.get('agentRepo.agentListAA.length') > 0) {
self.set('showCytoscape', true);
}
},
......@@ -70,17 +72,22 @@ export default Component.extend(AlertifyHandler, {
*
* @method didRender
*/
didRender(){
didRender(){
this._super(...arguments);
if(this.get('agentRepo.agentList.length') > 0 && !this.get('initDone') && this.get('showCytoscape')) {
console.log("didrender");
if(this.get('agentRepo.agentListAA.length') > 0 && !this.get('initDone') && this.get('showCytoscape')) {
console.log("hier");
this.initCytoscape();
this.setupListener();
this.set('initDone', true);
//this.rerender();
// manually call once, so there won't be
// a downtime until next update
this.updateCytoscapeGraph(this.get('agentRepo.agentList'));
this.updateCytoscapeGraph(this.get('agentRepo.agentListAA'));
}
},
......@@ -237,6 +244,8 @@ export default Component.extend(AlertifyHandler, {
updateCytoscapeGraph(newAgentList) {
console.log("update", newAgentList);
const cy = this.get('cytoscapeGraph');
const layout = this.get('cytoscapeLayout');
......
......@@ -29,7 +29,7 @@ export default Component.extend(AlertifyHandler, {
this.get('procezz').save({include: 'agent'}).then(() => {
self.set('showSpinner', false);
self.handleMessageForUser();
self.handleMessageForUser(false);
})
.catch((errorObject) => {
self.get('procezz').rollbackAttributes();
......@@ -38,28 +38,59 @@ export default Component.extend(AlertifyHandler, {
self.errorHandling(errorObject);
});
} else {
self.handleMessageForUser();
self.handleMessageForUser(false);
}
},
restartProcezz() {
const self = this;
this.set('showSpinner', true);
this.get('procezz').save({
include: 'agent',
adapterOptions: {
pathExtension: 'restart'
}
})
.then(() => {
self.set('showSpinner', false);
self.handleMessageForUser(true);
})
.catch((errorObject) => {
console.log("catch");
self.get('procezz').rollbackAttributes();
// closure action from discovery controller
self.errorHandling(errorObject);
});
}
},
handleMessageForUser() {
handleMessageForUser(wasRestarted) {
let defaultMessage = "Procezz updated.";
let monitoringMessageForUser = "";
const monitoredFlag = this.get('procezz').get('monitoredFlag');
const oldMonitoredFlag = this.get('monitoredFlag');
if(wasRestarted) {
defaultMessage = "Procezz restarted.";
if(monitoredFlag !== oldMonitoredFlag && monitoredFlag) {
// was set from off to on
monitoringMessageForUser = "Monitoring was started.";
}
else if(monitoredFlag !== oldMonitoredFlag && !monitoredFlag) {
// was set from on to off
monitoringMessageForUser = "Monitoring was stopped.";
const monitoredFlag = this.get('procezz').get('monitoredFlag');
const oldMonitoredFlag = this.get('monitoredFlag');
if(monitoredFlag !== oldMonitoredFlag && monitoredFlag) {
// was set from off to on
monitoringMessageForUser = "Monitoring was started.";
}
else if(monitoredFlag !== oldMonitoredFlag && !monitoredFlag) {
// was set from on to off
monitoringMessageForUser = "Monitoring was stopped.";
}
}
this.set('monitoredFlag', this.get('procezz').get('monitoredFlag'));
this.showAlertifyMessage(`Procezz updated. ${monitoringMessageForUser} Click on <b>Discovery</b> to go back.`);
this.showAlertifyMessageWithDuration(
`${defaultMessage} ${monitoringMessageForUser} Click on <b>Discovery</b> to go back.` ,4);
}
});
......@@ -37,12 +37,13 @@ export default Reload.extend(AlertifyHandler, {
const self = this;
this.debug("start agents-request");
this.get("store").findAll('agent', {include: 'procezzes'})
this.get("store").findAll('agent')
.then(success, failure).catch(error);
//--------------inner functions--------------
function success(agentList){
self.debug("end agents-request");
console.log(agentList);
self.get('agentRepo').updateAgentList(agentList);
}
......
......@@ -10,13 +10,18 @@ import { observer } from '@ember/object';
*/
export default Service.extend(Evented, {
agentList: null,
agentListAA: null,
updateAgentList(agentList) {
if(!this.isDestroyed) {
this.set('agentList', agentList);
this.trigger("updated", this.get("agentList"));
}
observer: observer("agentListAA.procezzList.length", function(){
console.log("updated");
this.trigger("updated", this.get("agentListAA"));
}),
updateAgentList(test) {
//if(!this.isDestroyed) {
this.set('agentListAA', test);
//this.trigger("updated", this.get("agentListAA"));
//}
}
});
\ No newline at end of file
......@@ -4,57 +4,58 @@
</div>
{{/if}}
<div class="text-center" style="margin-bottom: 5px;">
<button type="button" class="btn btn-success" {{action "saveProcezz"}}>Save</button>
<div style="margin-bottom: 5px;" class="button-box text-center">
<a class="btn btn-info" {{action "saveProcezz"}} role="button">Save</a>
<a class="btn btn-warning" {{action "restartProcezz"}} role="button">Restart</a>
</div>
<div class="panel-group" id="accordion">
<div class="panel-group" id="accordion">
<!-- BEGIN collapse1 -->
<div class="panel panel-default">
<div data-toggle="collapse" data-parent="#accordion" data-target="#collapse1" class="panel-heading darker-accordion-header container-shadow" style="cursor:pointer">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse1">
{{name-selector procezz.pid procezz.name}} - <b>General Information</b>
</a>
</h4>
</div>
<div id="collapse1" class="panel-collapse collapse in">
<div class="panel-body">
{{procezz-details-tables/general-information procezz=procezz}}
</div>
<!-- BEGIN collapse1 -->
<div class="panel panel-default">
<div data-toggle="collapse" data-parent="#accordion" data-target="#collapse1" class="panel-heading darker-accordion-header container-shadow" style="cursor:pointer">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse1">
{{name-selector procezz.pid procezz.name}} - <b>General Information</b>
</a>
</h4>
</div>
<div id="collapse1" class="panel-collapse collapse in">
<div class="panel-body">
{{procezz-details-tables/general-information procezz=procezz}}
</div>
</div>
</div>
<!-- BEGIN collapse2 -->
<div class="panel panel-default">
<div data-toggle="collapse" data-parent="#accordion" data-target="#collapse2" class="panel-heading darker-accordion-header container-shadow" style="cursor:pointer">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse2">
{{name-selector procezz.pid procezz.name}} - <b>Execution Information</b>
</a>
</h4>
</div>
<div id="collapse2" class="panel-collapse collapse">
<div class="panel-body">
{{procezz-details-tables/execution-information procezz=procezz}}
</div>
<!-- BEGIN collapse2 -->
<div class="panel panel-default">
<div data-toggle="collapse" data-parent="#accordion" data-target="#collapse2" class="panel-heading darker-accordion-header container-shadow" style="cursor:pointer">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse2">
{{name-selector procezz.pid procezz.name}} - <b>Execution Information</b>
</a>
</h4>
</div>
<div id="collapse2" class="panel-collapse collapse">
<div class="panel-body">
{{procezz-details-tables/execution-information procezz=procezz}}
</div>
</div>
</div>
<!-- BEGIN collapse3 -->
<div class="panel panel-default">
<div data-toggle="collapse" data-parent="#accordion" data-target="#collapse3" class="panel-heading darker-accordion-header container-shadow" style="cursor:pointer">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse3">
{{name-selector procezz.pid procezz.name}} - <b>Monitoring Information</b>
</a>
</h4>
</div>
<div id="collapse3" class="panel-collapse collapse">
<div class="panel-body">
{{procezz-details-tables/monitoring-information procezz=procezz}}
</div>
<!-- BEGIN collapse3 -->
<div class="panel panel-default">
<div data-toggle="collapse" data-parent="#accordion" data-target="#collapse3" class="panel-heading darker-accordion-header container-shadow" style="cursor:pointer">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse3">
{{name-selector procezz.pid procezz.name}} - <b>Monitoring Information</b>
</a>
</h4>
</div>
<div id="collapse3" class="panel-collapse collapse">
<div class="panel-body">
{{procezz-details-tables/monitoring-information procezz=procezz}}
</div>
</div>
</div>
</div>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment