Mercurial > hg > dml-open-vis
diff src/DML/MainVisBundle/Resources/assets/marionette/modules/RepresentationModule/RepresentationModule.20-Master.entity._.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/RepresentationModule/RepresentationModule.20-Master.entity._.js Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,167 @@ +"use strict"; + +App.module("RepresentationModule", function(RepresentationModule, App, Backbone, Marionette, $, _, Logger) { + + RepresentationModule.addInitializer(function(options){ + + RepresentationModule.registerMaster({ + id: "entity._", + inherit: "_", + + + // ================================================================= + // config grid header + + _generateCollectionConfigTitle: function(config) { + var rawConfigParameters = config.attributes.parameters.attributes; + var labelParts = []; + if (rawConfigParameters.library) { + if (rawConfigParameters.genre) { + labelParts.push(rawConfigParameters.genre); + } + if (rawConfigParameters.collection) { + if (!rawConfigParameters.place) { + labelParts.push("recordings"); + } + labelParts.push(" in ‘", rawConfigParameters.collection, "’ collection"); + } + if (rawConfigParameters.genre && (rawConfigParameters.title || rawConfigParameters.composer)) { + labelParts.push(" / "); + } + if (rawConfigParameters.composer) { + labelParts.push(rawConfigParameters.composer); + } + if (rawConfigParameters.title && rawConfigParameters.composer) { + labelParts.push(" – "); + } + if (rawConfigParameters.title) { + labelParts.push(rawConfigParameters.title); + } + if (rawConfigParameters.year) { + labelParts.push(" (", rawConfigParameters.year, ")"); + } + if (rawConfigParameters.place) { + labelParts.push(" from ", rawConfigParameters.place); + } + + if (labelParts.length) { + labelParts.unshift(": "); + } + if (!RepresentationModule.getMasterById("entity._")._cachedLibraryLabelsByLibraryId) { + var cachedLibraryLabelsByLibraryId = {}; + var $panelContents = $(Marionette.TemplateCache.get("#cgpma_collection_entity_default")()); + var $tickboxes = $panelContents.find(".cgpma__tickbox"); + $tickboxes.each(function() { + var $tickbox = $(this); + var id = $tickbox.getMod("cgpma_", "id"); + cachedLibraryLabelsByLibraryId[id] = $tickbox.text(); + }); + RepresentationModule.getMasterById("entity._")._cachedLibraryLabelsByLibraryId = cachedLibraryLabelsByLibraryId; + } + var libraries = rawConfigParameters.library.toLowerCase().split(";"); + var libraryLabels = []; + for (var i = 0; i < libraries.length; i++) { + libraryLabels.push(RepresentationModule.getMasterById("entity._")._cachedLibraryLabelsByLibraryId[_.str.trim(libraries[i])]); + } + labelParts.unshift(libraryLabels.join(", ")); + + } else { + labelParts.push("an empty collection"); + } + return labelParts.join(""); + }, + + + _doRenderHeaderContentRelatedToOwnData: function(entityHeaderView, instant) { + if (!entityHeaderView._$label1) { + entityHeaderView._$label1 = $.bem.generateElement("config-grid-cells", "entity-header-label").appendTo(entityHeaderView.$el); + entityHeaderView._$label2 = $.bem.generateElement("config-grid-cells", "entity-header-label", ["row2"]).appendTo(entityHeaderView.$el); + entityHeaderView._$labelFader = $.bem.generateElement("config-grid-cells", "entity-header-label-fader").appendTo(entityHeaderView.$el); + } + if (entityHeaderView.options.config.hasPlannedParameterUpdates()) { + entityHeaderView._$label1.html("<span class=\"config-grid-cells__view-header-label-part_modified\">" + this._generateHeaderLabel1(entityHeaderView) + "</span>"); + entityHeaderView._$label2.html("being modified"); + } else { + entityHeaderView._$label1.html(this._generateHeaderLabel1(entityHeaderView)); + entityHeaderView._$label2.html(this._generateHeaderLabel2(entityHeaderView)); + } + }, + + _generateHeaderLabel1: function(entityHeaderView) {return "";}, + _generateHeaderLabel2: function(entityHeaderView) {return "";}, + + + // ================================================================= + // dynamic derived vis instance data + + __coverTapActionThatUpdatesDynamicDerivedData: function() { + var $cover = $(this); + var visInstanceView = $cover.data("visInstanceView"); + var derivedDataToUpdate = $cover.data("attachedError").options.derivedDataToUpdate; + switch (derivedDataToUpdate) { + case "entity": + visInstanceView.dynamicDerivedConfigDataForEntity.update(); + break; + case "view": + visInstanceView.dynamicDerivedConfigDataForView.update(); + break; + case "base": + visInstanceView.dynamicDerivedVisInstanceDataForBase.update(); + break; + case "overlay": + visInstanceView.dynamicDerivedVisInstanceDataForOverlay.update(); + break; + case "temp": + visInstanceView.dynamicDerivedVisInstanceDataForTemp.update(); + break; + default: + throw _.str.sprintf("__coverTapActionThatUpdatesDynamicDerivedData cannot be called for derivedDataToUpdate = %s", derivedDataToUpdate); + } + }, + + + // ----------------------------------------------------------------- + // dynamic derived vis instance data - base + + _verifyThatViewIsNotEmptyOrUnknown: function(visInstanceView) { + if (!visInstanceView._cachedViewMaster.options.canHaveBase) { + if (visInstanceView._cachedViewMaster.id == "view._unknown") { + throw new RepresentationModule.Error({type: "view_unknown"}); + } + if (visInstanceView._cachedViewMaster.inherit == "view._default") { + throw new RepresentationModule.Error({type: "view_default"}); + } + else throw "Unknown view master without base " + visInstanceView._cachedViewMaster.id ; + } + }, + + + verifyAllDataForVisInstanceBase: function(visInstanceView) {}, + generateDynamicDerivedVisInstanceDataForBase: function(visInstanceView) { + return new RepresentationModule.DynamicDerivedVisInstanceData(); + }, + + + // ----------------------------------------------------------------- + // dynamic derived vis instance data - overlay + + verifyAllDataForVisInstanceOverlay: function(visInstanceView) {}, + generateDynamicDerivedVisInstanceDataForOverlay: function(visInstanceView) { + if (visInstanceView._cachedViewMaster.generateDynamicDerivedVisInstanceDataForOverlay) { + return visInstanceView._cachedViewMaster.generateDynamicDerivedVisInstanceDataForOverlay(visInstanceView); + } else { + return new RepresentationModule.DynamicDerivedVisInstanceData(); + } + }, + + + // ----------------------------------------------------------------- + // dynamic derived vis instance data - temp + + verifyAllDataForVisInstanceTemp: function(visInstanceView) {}, + generateDynamicDerivedVisInstanceDataForTemp: function(visInstanceView) { + return new RepresentationModule.DynamicDerivedVisInstanceData(); + }, + }); + }); +}, Logger);