comparison src/DML/MainVisBundle/Resources/assets/marionette/modules/DataModule/DataModule.33-DymanicDefinitionProviderForRecordings.js @ 0:493bcb69166c

added public content
author Daniel Wolff
date Tue, 09 Feb 2016 20:54:02 +0100
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:493bcb69166c
1 "use strict";
2
3 App.module("DataModule", function(DataModule, App, Backbone, Marionette, $, _, Logger) {
4 // Prevent auto start
5 //CollectionDefinitionProvider.startWithParent = false;
6
7 // Define private variables
8 var logger = null;
9
10 /**
11 * Module initializer
12 *
13 */
14 DataModule.addInitializer(function(){
15
16 logger = Logger.get("App.DataModule");
17
18 DataModule.DynamicDefinitionForRecording = DataModule.DynamicDefinition.extend({});
19 DataModule.DymanicDefinitionProviderForRecordings = DataModule.DynamicDefinitionProvider.extend({
20
21 options: {
22 DynamicDefinition: DataModule.DynamicDefinitionForRecording,
23 apiMethod: "getRecordingPerspective",
24 customAttributesWhenNotApplicable: {label: undefined},
25 customAttributesWhileBeingUpdated: {label: null},
26 customAttributesWhenFaulty: {label: false}
27 },
28
29 isFaulty: function(dynamicDefinition) {
30 return dynamicDefinition.attributes.label === false;
31 },
32
33 isBeingUpdated: function(dynamicDefinition) {
34 return dynamicDefinition.attributes.label === null;
35 },
36
37 configParametersToRequestParameters: function(config) {
38 var rawConfigParameters = config.attributes.parameters.attributes;
39 if (rawConfigParameters.recordingURI) {
40 return {"uri": rawConfigParameters.recordingURI, "pid": "properties"};
41 } else {
42 return null;
43 }
44 },
45
46 apiResponseToAttributes: function(data, query) {
47 var attributes = {};
48
49 if (data && data.label) {
50 attributes = data;
51 } else {
52 attributes = {label: false};
53 if (data.errors) {
54 attributes = _.clone(this.options.customAttributesWhenFaulty)
55 attributes.errors = data.errors;
56 }
57 logger.warn("An error occured when attempting to obtain new recording definition. Query / response:", query, data);
58 };
59 attributes.query = query;
60 return attributes;
61 }
62 });
63 });
64 }, Logger);