comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:493bcb69166c
1 "use strict";
2
3 App.module("RepresentationModule", function(RepresentationModule, App, Backbone, Marionette, $, _, Logger) {
4
5 RepresentationModule.addInitializer(function(options){
6
7 RepresentationModule.registerMaster({
8 id: "entity._",
9 inherit: "_",
10
11
12 // =================================================================
13 // config grid header
14
15 _generateCollectionConfigTitle: function(config) {
16 var rawConfigParameters = config.attributes.parameters.attributes;
17 var labelParts = [];
18 if (rawConfigParameters.library) {
19 if (rawConfigParameters.genre) {
20 labelParts.push(rawConfigParameters.genre);
21 }
22 if (rawConfigParameters.collection) {
23 if (!rawConfigParameters.place) {
24 labelParts.push("recordings");
25 }
26 labelParts.push(" in ‘", rawConfigParameters.collection, "’ collection");
27 }
28 if (rawConfigParameters.genre && (rawConfigParameters.title || rawConfigParameters.composer)) {
29 labelParts.push(" / ");
30 }
31 if (rawConfigParameters.composer) {
32 labelParts.push(rawConfigParameters.composer);
33 }
34 if (rawConfigParameters.title && rawConfigParameters.composer) {
35 labelParts.push(" – ");
36 }
37 if (rawConfigParameters.title) {
38 labelParts.push(rawConfigParameters.title);
39 }
40 if (rawConfigParameters.year) {
41 labelParts.push(" (", rawConfigParameters.year, ")");
42 }
43 if (rawConfigParameters.place) {
44 labelParts.push(" from ", rawConfigParameters.place);
45 }
46
47 if (labelParts.length) {
48 labelParts.unshift(": ");
49 }
50 if (!RepresentationModule.getMasterById("entity._")._cachedLibraryLabelsByLibraryId) {
51 var cachedLibraryLabelsByLibraryId = {};
52 var $panelContents = $(Marionette.TemplateCache.get("#cgpma_collection_entity_default")());
53 var $tickboxes = $panelContents.find(".cgpma__tickbox");
54 $tickboxes.each(function() {
55 var $tickbox = $(this);
56 var id = $tickbox.getMod("cgpma_", "id");
57 cachedLibraryLabelsByLibraryId[id] = $tickbox.text();
58 });
59 RepresentationModule.getMasterById("entity._")._cachedLibraryLabelsByLibraryId = cachedLibraryLabelsByLibraryId;
60 }
61 var libraries = rawConfigParameters.library.toLowerCase().split(";");
62 var libraryLabels = [];
63 for (var i = 0; i < libraries.length; i++) {
64 libraryLabels.push(RepresentationModule.getMasterById("entity._")._cachedLibraryLabelsByLibraryId[_.str.trim(libraries[i])]);
65 }
66 labelParts.unshift(libraryLabels.join(", "));
67
68 } else {
69 labelParts.push("an empty collection");
70 }
71 return labelParts.join("");
72 },
73
74
75 _doRenderHeaderContentRelatedToOwnData: function(entityHeaderView, instant) {
76 if (!entityHeaderView._$label1) {
77 entityHeaderView._$label1 = $.bem.generateElement("config-grid-cells", "entity-header-label").appendTo(entityHeaderView.$el);
78 entityHeaderView._$label2 = $.bem.generateElement("config-grid-cells", "entity-header-label", ["row2"]).appendTo(entityHeaderView.$el);
79 entityHeaderView._$labelFader = $.bem.generateElement("config-grid-cells", "entity-header-label-fader").appendTo(entityHeaderView.$el);
80 }
81 if (entityHeaderView.options.config.hasPlannedParameterUpdates()) {
82 entityHeaderView._$label1.html("<span class=\"config-grid-cells__view-header-label-part_modified\">" + this._generateHeaderLabel1(entityHeaderView) + "</span>");
83 entityHeaderView._$label2.html("being modified");
84 } else {
85 entityHeaderView._$label1.html(this._generateHeaderLabel1(entityHeaderView));
86 entityHeaderView._$label2.html(this._generateHeaderLabel2(entityHeaderView));
87 }
88 },
89
90 _generateHeaderLabel1: function(entityHeaderView) {return "";},
91 _generateHeaderLabel2: function(entityHeaderView) {return "";},
92
93
94 // =================================================================
95 // dynamic derived vis instance data
96
97 __coverTapActionThatUpdatesDynamicDerivedData: function() {
98 var $cover = $(this);
99 var visInstanceView = $cover.data("visInstanceView");
100 var derivedDataToUpdate = $cover.data("attachedError").options.derivedDataToUpdate;
101 switch (derivedDataToUpdate) {
102 case "entity":
103 visInstanceView.dynamicDerivedConfigDataForEntity.update();
104 break;
105 case "view":
106 visInstanceView.dynamicDerivedConfigDataForView.update();
107 break;
108 case "base":
109 visInstanceView.dynamicDerivedVisInstanceDataForBase.update();
110 break;
111 case "overlay":
112 visInstanceView.dynamicDerivedVisInstanceDataForOverlay.update();
113 break;
114 case "temp":
115 visInstanceView.dynamicDerivedVisInstanceDataForTemp.update();
116 break;
117 default:
118 throw _.str.sprintf("__coverTapActionThatUpdatesDynamicDerivedData cannot be called for derivedDataToUpdate = %s", derivedDataToUpdate);
119 }
120 },
121
122
123 // -----------------------------------------------------------------
124 // dynamic derived vis instance data - base
125
126 _verifyThatViewIsNotEmptyOrUnknown: function(visInstanceView) {
127 if (!visInstanceView._cachedViewMaster.options.canHaveBase) {
128 if (visInstanceView._cachedViewMaster.id == "view._unknown") {
129 throw new RepresentationModule.Error({type: "view_unknown"});
130 }
131 if (visInstanceView._cachedViewMaster.inherit == "view._default") {
132 throw new RepresentationModule.Error({type: "view_default"});
133 }
134 else throw "Unknown view master without base " + visInstanceView._cachedViewMaster.id ;
135 }
136 },
137
138
139 verifyAllDataForVisInstanceBase: function(visInstanceView) {},
140 generateDynamicDerivedVisInstanceDataForBase: function(visInstanceView) {
141 return new RepresentationModule.DynamicDerivedVisInstanceData();
142 },
143
144
145 // -----------------------------------------------------------------
146 // dynamic derived vis instance data - overlay
147
148 verifyAllDataForVisInstanceOverlay: function(visInstanceView) {},
149 generateDynamicDerivedVisInstanceDataForOverlay: function(visInstanceView) {
150 if (visInstanceView._cachedViewMaster.generateDynamicDerivedVisInstanceDataForOverlay) {
151 return visInstanceView._cachedViewMaster.generateDynamicDerivedVisInstanceDataForOverlay(visInstanceView);
152 } else {
153 return new RepresentationModule.DynamicDerivedVisInstanceData();
154 }
155 },
156
157
158 // -----------------------------------------------------------------
159 // dynamic derived vis instance data - temp
160
161 verifyAllDataForVisInstanceTemp: function(visInstanceView) {},
162 generateDynamicDerivedVisInstanceDataForTemp: function(visInstanceView) {
163 return new RepresentationModule.DynamicDerivedVisInstanceData();
164 },
165 });
166 });
167 }, Logger);