Mercurial > hg > dml-open-vis
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/DML/MainVisBundle/Resources/assets/marionette/modules/DataModule/DataModule.33-DymanicDefinitionProviderForRecordings.js Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,64 @@ +"use strict"; + +App.module("DataModule", function(DataModule, App, Backbone, Marionette, $, _, Logger) { + // Prevent auto start + //CollectionDefinitionProvider.startWithParent = false; + + // Define private variables + var logger = null; + + /** + * Module initializer + * + */ + DataModule.addInitializer(function(){ + + logger = Logger.get("App.DataModule"); + + DataModule.DynamicDefinitionForRecording = DataModule.DynamicDefinition.extend({}); + DataModule.DymanicDefinitionProviderForRecordings = DataModule.DynamicDefinitionProvider.extend({ + + options: { + DynamicDefinition: DataModule.DynamicDefinitionForRecording, + apiMethod: "getRecordingPerspective", + customAttributesWhenNotApplicable: {label: undefined}, + customAttributesWhileBeingUpdated: {label: null}, + customAttributesWhenFaulty: {label: false} + }, + + isFaulty: function(dynamicDefinition) { + return dynamicDefinition.attributes.label === false; + }, + + isBeingUpdated: function(dynamicDefinition) { + return dynamicDefinition.attributes.label === null; + }, + + configParametersToRequestParameters: function(config) { + var rawConfigParameters = config.attributes.parameters.attributes; + if (rawConfigParameters.recordingURI) { + return {"uri": rawConfigParameters.recordingURI, "pid": "properties"}; + } else { + return null; + } + }, + + apiResponseToAttributes: function(data, query) { + var attributes = {}; + + if (data && data.label) { + attributes = data; + } else { + attributes = {label: false}; + if (data.errors) { + attributes = _.clone(this.options.customAttributesWhenFaulty) + attributes.errors = data.errors; + } + logger.warn("An error occured when attempting to obtain new recording definition. Query / response:", query, data); + }; + attributes.query = query; + return attributes; + } + }); + }); +}, Logger);