mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-10 03:23:19 +00:00
71 lines
2.4 KiB
JavaScript
71 lines
2.4 KiB
JavaScript
/*
|
|
* This file is part of Phraseanet
|
|
*
|
|
* (c) 2005-2014 Alchemy
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
define([
|
|
"jquery",
|
|
"underscore",
|
|
"backbone"
|
|
], function ($, _, Backbone) {
|
|
var RefreshView = Backbone.View.extend({
|
|
initialize: function(options) {
|
|
if (false === ("pingView" in options)) {
|
|
throw "You must set the ping view"
|
|
}
|
|
this.pingView = options.pingView;
|
|
if (false === ("scheduler" in options)) {
|
|
throw "You must set the scheduler model"
|
|
}
|
|
this.scheduler = options.scheduler;
|
|
if (false === ("tasksCollection" in options)) {
|
|
throw "You must set the tasks collection model"
|
|
}
|
|
this.tasksCollection = options.tasksCollection;
|
|
|
|
this.refreshUrl = this.$el.data('refresh-url');
|
|
},
|
|
events: {
|
|
"click .btn-refresh": "refreshAction"
|
|
},
|
|
refreshAction: function(event) {
|
|
var $this = this;
|
|
$.ajax({
|
|
dataType: "json",
|
|
url: $this.refreshUrl,
|
|
success: function(response) {
|
|
$this.pingView.render();
|
|
$this.scheduler.set({
|
|
"actual": response.manager["actual"],
|
|
"process-id": response.manager["process-id"],
|
|
"configuration": response.manager["configuration"]
|
|
});
|
|
_.each(response.tasks, function(data, id) {
|
|
var jobModel = $this.tasksCollection.get(id);
|
|
if ("undefined" !== typeof jobModel) {
|
|
jobModel.set({
|
|
"actual": data["actual"],
|
|
"process-id": data["process-id"],
|
|
"configuration": data["configuration"]
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
},
|
|
loadState: function(state) {
|
|
if (state) {
|
|
$("#spinner", this.$el).addClass('icon-spinner icon-spin');
|
|
} else {
|
|
$("#spinner", this.$el).removeClass('icon-spinner icon-spin');
|
|
}
|
|
}
|
|
});
|
|
|
|
return RefreshView;
|
|
});
|