mirror of
				https://github.com/alchemy-fr/Phraseanet.git
				synced 2025-10-24 18:33:13 +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;
 | |
| });
 | 
