Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OaaS/HeuristicLab.Services.Optimization.Web/Content/job.controller.js @ 9395

Last change on this file since 9395 was 9395, checked in by fschoepp, 11 years ago

#1888:

  • Added visual extensions (dynamic JavaScript) which will be used to render additional result parameters specific to scenarios (e. g. create a graphical representation of a TSP).
  • Added relationship between jobs and experiments (otherwise, it's not possible to get the job's experiment).
  • Updated Admin page to allow removal/addition of visual extensions.
  • Added back-end logic to store/retrieve/delete visual extensions.
  • Added visual extension functionality to the JavaScript views/controllers (job.*.js).
  • Added tsp.js which is a visual extension for the "Genetic Algorithm - TSP" scenario. It adds a graphical representation of the TSP (just like the C# version does) to the results.
File size: 2.3 KB
Line 
1var OAAS_CONTROLLER = (function (my, Backbone, OAAS_VIEW, OAAS_MODEL, _, $) {
2    my.JobVisualExtensionListener = function (model, element) {
3        var extension = new OAAS_MODEL.VisualExtension({ id: model.get('algorithmName') });
4        extension.fetch({ cache: true, success: function () {
5            //eval extension.js -> execute addVisualExtension(model, element):
6            var js = extension.get('ScenarioJs');
7            if (js != null) {
8                (function (model, element) {
9                    addExtension = undefined;
10                    eval(js);
11                    if (addExtension)
12                        addExtension(model, element);
13                } (model, element));
14            }
15        }
16        });
17    },
18    my.JobPageController = function () {
19        this.create = function () {
20            var self = this;
21            var jobList = new OAAS_MODEL.JobList();
22            var jobOverview = new OAAS_VIEW.JobOverView({ collection: jobList, el: $('#jobOverview') });
23
24            var listener = {};
25            // add listener capabilities to instance
26            _.extend(listener, Backbone.Events);
27
28            listener.listenTo(jobList, 'updated', function (evt) {
29                // refresh overview
30                jobOverview.render();
31            });
32
33            listener.listenTo(jobOverview, 'jobSelected', function (jobId) {
34                var runList = new OAAS_MODEL.RunList({ jobId: jobId });
35                var lv = new OAAS_VIEW.LoadingView({ el: $('#jobDetails'), model: 'Loading results of job...' });
36                lv.render();
37                runList.fetch({ cache: false, success: function () {
38                    $('#jobDetails').empty();
39                    var div = $('<div/>').appendTo($('#jobDetails'));
40                    var rv = new OAAS_VIEW.ResultView({ model: runList, el: div });
41                    listener.listenTo(rv, 'renderVisualExtension', my.JobVisualExtensionListener);
42                    rv.render();
43                    var av = new OAAS_VIEW.AccordionView({ el: div });
44                    av.render();
45                }
46                });
47            });
48
49
50
51            jobList.poll();
52        }
53    }
54    return my;
55} (OAAS_CONTROLLER || {}, Backbone, OAAS_VIEW, OAAS_MODEL, _, $));
Note: See TracBrowser for help on using the repository browser.