Daniel@0: "use strict"; Daniel@0: Daniel@0: App.module("DataModule", function(DataModule, App, Backbone, Marionette, $, _, Logger) { Daniel@0: // Prevent auto start Daniel@0: //CollectionDefinitionProvider.startWithParent = false; Daniel@0: Daniel@0: // Define private variables Daniel@0: var logger = null; Daniel@0: Daniel@0: /** Daniel@0: * Module initializer Daniel@0: * Daniel@0: */ Daniel@0: DataModule.addInitializer(function(){ Daniel@0: Daniel@0: logger = Logger.get("App.DataModule"); Daniel@0: Daniel@0: DataModule.DynamicDefinitionForRecording = DataModule.DynamicDefinition.extend({}); Daniel@0: DataModule.DymanicDefinitionProviderForRecordings = DataModule.DynamicDefinitionProvider.extend({ Daniel@0: Daniel@0: options: { Daniel@0: DynamicDefinition: DataModule.DynamicDefinitionForRecording, Daniel@0: apiMethod: "getRecordingPerspective", Daniel@0: customAttributesWhenNotApplicable: {label: undefined}, Daniel@0: customAttributesWhileBeingUpdated: {label: null}, Daniel@0: customAttributesWhenFaulty: {label: false} Daniel@0: }, Daniel@0: Daniel@0: isFaulty: function(dynamicDefinition) { Daniel@0: return dynamicDefinition.attributes.label === false; Daniel@0: }, Daniel@0: Daniel@0: isBeingUpdated: function(dynamicDefinition) { Daniel@0: return dynamicDefinition.attributes.label === null; Daniel@0: }, Daniel@0: Daniel@0: configParametersToRequestParameters: function(config) { Daniel@0: var rawConfigParameters = config.attributes.parameters.attributes; Daniel@0: if (rawConfigParameters.recordingURI) { Daniel@0: return {"uri": rawConfigParameters.recordingURI, "pid": "properties"}; Daniel@0: } else { Daniel@0: return null; Daniel@0: } Daniel@0: }, Daniel@0: Daniel@0: apiResponseToAttributes: function(data, query) { Daniel@0: var attributes = {}; Daniel@0: Daniel@0: if (data && data.label) { Daniel@0: attributes = data; Daniel@0: } else { Daniel@0: attributes = {label: false}; Daniel@0: if (data.errors) { Daniel@0: attributes = _.clone(this.options.customAttributesWhenFaulty) Daniel@0: attributes.errors = data.errors; Daniel@0: } Daniel@0: logger.warn("An error occured when attempting to obtain new recording definition. Query / response:", query, data); Daniel@0: }; Daniel@0: attributes.query = query; Daniel@0: return attributes; Daniel@0: } Daniel@0: }); Daniel@0: }); Daniel@0: }, Logger);