Mercurial > hg > dml-open-vis
comparison src/DML/MainVisBundle/Resources/assets/marionette/App.99-screenshot.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 /* global Backbone */ | |
2 'use strict'; | |
3 | |
4 App.addInitializer(function(options){ | |
5 // http://stackoverflow.com/questions/19491336/get-url-parameter-jquery | |
6 function getUrlParameter(sParam) | |
7 { | |
8 var sPageURL = window.location.search.substring(1); | |
9 var sURLVariables = sPageURL.split('&'); | |
10 for (var i = 0; i < sURLVariables.length; i++) | |
11 { | |
12 var sParameterName = sURLVariables[i].split('='); | |
13 if (sParameterName[0] == sParam) | |
14 { | |
15 return sParameterName.length == 2 ? sParameterName[1] : ""; | |
16 } | |
17 } | |
18 }; | |
19 | |
20 var screenshotParameterValue = getUrlParameter("screenshot"); | |
21 if (screenshotParameterValue === undefined) { | |
22 return; | |
23 } | |
24 | |
25 console.log("Running in screenshot mode: " + screenshotParameterValue); | |
26 App.options.vegaRenderer = "canvas"; | |
27 window.devicePixelRatio = 2; | |
28 | |
29 | |
30 // | |
31 var $html = $("html"); | |
32 $html.addClass("screenshot"); | |
33 var screenshotTypes = _.invert(screenshotParameterValue.replace(/%7C/g, "|").split("|")); | |
34 _.each(_.keys(screenshotTypes), function(screenshotType) { | |
35 $html.addClass("screenshot_" + screenshotType); | |
36 var wh = screenshotType.split("x"); | |
37 if (wh.length == 2) { | |
38 var w = parseInt(wh[0]); | |
39 var h = parseInt(wh[1]); | |
40 if (w && h) { | |
41 $("body").css({ | |
42 "width": w, | |
43 "height": h, | |
44 }); | |
45 } | |
46 } | |
47 }); | |
48 | |
49 var intervalId = setInterval(function() { | |
50 var ready = true; | |
51 // | |
52 // var $vegas = $(".vega"); | |
53 // if (!$vegas.length) { | |
54 // return; | |
55 // } | |
56 // $vegas.each(function() { | |
57 // var $this = $(this); | |
58 // var tagName = $this.children().eq(0).prop("tagName").toLowerCase(); | |
59 // if (tagName !== "svg" && tagName !== "canvas") { | |
60 // ready = false; | |
61 // return false; | |
62 // } | |
63 // }); | |
64 | |
65 if (screenshotTypes["state_interface"]) { | |
66 | |
67 } | |
68 | |
69 if (ready) { | |
70 if (screenshotTypes["state_interface"]) { | |
71 //App.PlayerModule.$jPlayer.jPlayer("play", 42); | |
72 //$(".player__slider-head_type_time").show(); | |
73 $(".player__slider-head_type_time") | |
74 .show() | |
75 .css("width", "100%"); | |
76 $(".player__time_type_before") | |
77 .text("00:42"); | |
78 $(".player__time_type_after") | |
79 .text("−01:59"); | |
80 | |
81 //$(".player__slider-head_type_time").show(); | |
82 } | |
83 | |
84 if (screenshotTypes["state_flip"]) { | |
85 var frame = 1; | |
86 for (var i = 2; i < 7; i++) { | |
87 if (screenshotTypes["frame_" + i]) { | |
88 frame = i; | |
89 } | |
90 } | |
91 if (frame >= 2 && frame <= 5) { | |
92 App.context.get("state").set("musicRecordingsGridIsShown", true); | |
93 setTimeout(function() { | |
94 allDone(); | |
95 }, frame * 50); | |
96 } | |
97 return; | |
98 } | |
99 | |
100 allDone(); | |
101 } | |
102 }, 5000); | |
103 | |
104 var allDone = function() { | |
105 window.status = "screenshot_ready"; | |
106 console.log("screenshot is ready"); | |
107 clearInterval(intervalId); | |
108 } | |
109 | |
110 // | |
111 if (screenshotTypes["state_interface"]) { | |
112 App.context.get("state").unserialize(JSON.parse('{"musicCollectionGrid":{"entityConfigs":[{"clientId":"cf1647","parameters":{"library":"bl","composer":"Mozart","year":"","performer":"","title":"Symphony; 41","collection":"","place":""},"plannedParameterUpdates":{}},{"clientId":"cf544","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf562","parameters":{"library":"bl","title":"Symphony; 40","year":"","composer":"Mozart","performer":"","place":"","collection":""},"plannedParameterUpdates":{"year":"1970-1979","title":"Sonata"}},{"clientId":"cf170","parameters":{"library":"charm","title":"","year":"","composer":"Mozart","performer":"","recordingURI":"http://dml.org/charm/2378"},"plannedParameterUpdates":{}},{"clientId":"cf224","parameters":{},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"custom17","parameters":{"kind":"list","limit":"10","offset":"6","sortBy":"label"},"plannedParameterUpdates":{}},{"clientId":"cf1783","parameters":{"kind":"tonic-histogram","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf780","parameters":{"kind":"key-relative-chord-seq","sequenceCount":"50","sequenceRepresentation":"parallel-coordinates","chordGrouppingIsByType":"1","guidesAreVisible":"1","recordingsInMajorModeAreIncluded":"1","recordingsInMinorModeAreIncluded":"1","chordTypesArePopularOnly":"","chordSequencesWithCyclesAreIncluded":"1","nIsIncluded":"","sequenceStepCount":"5"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf562","selectedViewConfigClientId":"cf780","entityWidth":260},"musicRecordingGrid":{"entityConfigs":[{"clientId":"cf204","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1LP0181227XX-0200V0"},"plannedParameterUpdates":{}},{"clientId":"cf209","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1LP0163217XX-0100V0"},"plannedParameterUpdates":{}},{"clientId":"cf214","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1CL0046563XX-0100V0"},"plannedParameterUpdates":{}},{"clientId":"cf219","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1LP0163226XX-0100V0"},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"def4","parameters":{"kind":"properties"},"plannedParameterUpdates":{}},{"clientId":"def5","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}}]}}')) | |
113 App.play("http://dml.org/charm/2378"); | |
114 var $fakeMouse = $.bem.generateElement("screenshot", "fake-cursor"); | |
115 $fakeMouse.css({ | |
116 "left": 335, | |
117 "top": 430, | |
118 }); | |
119 $("body").append($fakeMouse); | |
120 | |
121 $fakeMouse.on("mouseover", function(event){ | |
122 console.log("here", arguments, $fakeMouse); | |
123 event.pageX = 335; | |
124 event.pageY = 430; | |
125 App.TooltipModule.update(event, "C# → 15", $fakeMouse); | |
126 | |
127 }); | |
128 $fakeMouse.trigger("mouseover"); | |
129 | |
130 } | |
131 var teaserEntityWidth = 200; | |
132 if (screenshotTypes["state_teaser"]) { | |
133 //App.context.get("state").unserialize(JSON.parse('{"musicCollectionGrid":{"entityConfigs":[{"clientId":"cf1647","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"","collection":"uganda","place":""},"plannedParameterUpdates":{}},{"clientId":"cf544","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf1681","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"","collection":"dinka","place":""},"plannedParameterUpdates":{}},{"clientId":"cf660","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf602","parameters":{"kind":"pair","comparisonMode":"direct"},"plannedParameterUpdates":{}},{"clientId":"cf718","parameters":{"library":"bl","composer":"schoenberg","year":"","performer":"","title":"","place":"","collection":""},"plannedParameterUpdates":{}},{"clientId":"cf480","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"symphony","place":"","collection":""},"plannedParameterUpdates":{}},{"clientId":"cf418","parameters":{"library":"bl","title":"piano","year":"","composer":"","performer":"","place":"","collection":""},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"custom16","parameters":{"kind":"list"},"plannedParameterUpdates":{}},{"clientId":"custom17","parameters":{"kind":"pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"custom18","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"cf1783","parameters":{"kind":"tuning-stats","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf1872","parameters":{"kind":"mean-tempo-curve","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf780","parameters":{"kind":"pitch-class-histogram","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf481","parameters":{"kind":"tempo-histogram","tempoMin":"30","tempoMax":"300","tempoNumBins":"50","tempoPeriod":"1","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf1961","parameters":{"kind":"tonic-histogram","widthToHeightRatio":"2"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf1647","selectedViewConfigClientId":"","entityWidth":' + teaserEntityWidth + '},"musicRecordingGrid":{"entityConfigs":[],"viewConfigs":[{"clientId":"def4","parameters":{"kind":"properties"},"plannedParameterUpdates":{}},{"clientId":"def5","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}}]}}')) | |
134 App.context.get("state").unserialize(JSON.parse('{"musicCollectionGrid":{"entityConfigs":[{"clientId":"cf1647","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"","collection":"uganda","place":""},"plannedParameterUpdates":{}},{"clientId":"cf544","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf1681","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"","collection":"dinka","place":""},"plannedParameterUpdates":{}},{"clientId":"cf660","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf602","parameters":{"kind":"pair","comparisonMode":"direct"},"plannedParameterUpdates":{}},{"clientId":"cf718","parameters":{"library":"bl","composer":"schoenberg","year":"","performer":"","title":"","place":"","collection":""},"plannedParameterUpdates":{}},{"clientId":"cf480","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"symphony","place":"","collection":""},"plannedParameterUpdates":{}},{"clientId":"cf418","parameters":{"library":"bl","title":"piano","year":"","composer":"","performer":"","place":"","collection":""},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"custom17","parameters":{"kind":"pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"custom18","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"cf1783","parameters":{"kind":"tuning-stats","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf780","parameters":{"kind":"pitch-class-histogram","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf481","parameters":{"kind":"tempo-histogram","tempoMin":"30","tempoMax":"300","tempoNumBins":"50","tempoPeriod":"1","widthToHeightRatio":"2"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf1647","entityWidth":200},"musicRecordingGrid":{"entityConfigs":[],"viewConfigs":[{"clientId":"def4","parameters":{"kind":"properties"},"plannedParameterUpdates":{}},{"clientId":"def5","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}}]}}')) | |
135 } | |
136 if (screenshotTypes["state_teaser-wo-piano"]) { | |
137 App.context.get("state").unserialize(JSON.parse('{"musicCollectionGrid":{"entityConfigs":[{"clientId":"cf1647","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"","collection":"uganda","place":""},"plannedParameterUpdates":{}},{"clientId":"cf544","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf1681","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"","collection":"dinka","place":""},"plannedParameterUpdates":{}},{"clientId":"cf660","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf602","parameters":{"kind":"pair","comparisonMode":"direct"},"plannedParameterUpdates":{}},{"clientId":"cf718","parameters":{"library":"bl","composer":"schoenberg","year":"","performer":"","title":"","place":"","collection":""},"plannedParameterUpdates":{}},{"clientId":"cf480","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"symphony","place":"","collection":""},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"custom16","parameters":{"kind":"list"},"plannedParameterUpdates":{}},{"clientId":"custom17","parameters":{"kind":"pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"custom18","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"cf1783","parameters":{"kind":"tuning-stats","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf1872","parameters":{"kind":"mean-tempo-curve","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf780","parameters":{"kind":"pitch-class-histogram","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf481","parameters":{"kind":"tempo-histogram","tempoMin":"30","tempoMax":"300","tempoNumBins":"50","tempoPeriod":"1","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf1961","parameters":{"kind":"tonic-histogram","widthToHeightRatio":"2"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf1647","selectedViewConfigClientId":"","entityWidth":' + teaserEntityWidth + '},"musicRecordingGrid":{"entityConfigs":[],"viewConfigs":[{"clientId":"def4","parameters":{"kind":"properties"},"plannedParameterUpdates":{}},{"clientId":"def5","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}}]}}')); | |
138 } | |
139 | |
140 if (screenshotTypes["state_flip"]) { | |
141 var musicRecordingsGridIsShown = screenshotTypes["frame_6"] ? true : false; | |
142 App.context.get("state").unserialize(JSON.parse('{"musicRecordingsGridIsShown":' + musicRecordingsGridIsShown + ',"musicCollectionGrid":{"entityConfigs":[{"clientId":"cf1647","parameters":{"library":"charm","composer":"Mozart","year":"","performer":"","title":""},"plannedParameterUpdates":{}},{"clientId":"cf562","parameters":{"library":"charm","title":"","year":"","composer":"Haydn","performer":""},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"custom17","parameters":{"kind":"list","limit":"10","offset":"6","sortBy":"label"},"plannedParameterUpdates":{}},{"clientId":"cf1783","parameters":{"kind":"tempo-histogram","widthToHeightRatio":"2","tempoMin":"30","tempoMax":"300","tempoNumBins":"50","tempoPeriod":"1"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf1647","selectedViewConfigClientId":"cf1783","entityWidth":260},"musicRecordingGrid":{"entityConfigs":[{"clientId":"cf209","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1LP0163217XX-0100V0"},"plannedParameterUpdates":{}},{"clientId":"cf471","parameters":{"kind":"pair","comparisonMode":"direct"},"plannedParameterUpdates":{}},{"clientId":"cf219","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1LP0163226XX-0100V0"},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"def5","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"cf397","parameters":{"kind":"tempo-nonuniform","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf494","parameters":{"kind":"tempo-normalised","widthToHeightRatio":"2"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf471","selectedViewConfigClientId":"cf494","entityWidth":220}}')); | |
143 } | |
144 | |
145 | |
146 | |
147 var resizeIfNeededAfterADelay = function() { | |
148 setInterval(function() { | |
149 if (screenshotTypes["autosize_grid"] || screenshotTypes["autosize"]) { | |
150 var $configGrid = $(".config-grid:visible"); | |
151 var $cellsSpace = $configGrid.find(".config-grid-cells__space"); | |
152 var maxX = 0; | |
153 var maxY = 0; | |
154 var $visInstances = $cellsSpace.find(".config-grid-cells__vis-instance"); | |
155 if (!$visInstances.length) { | |
156 resizeIfNeededAfterADelay(); | |
157 return; | |
158 } | |
159 $visInstances.each(function() { | |
160 var $visInstance = $(this); | |
161 var position = $visInstance.position(); | |
162 var currentMaxX = position.left + $visInstance.width(); | |
163 var currentMaxY = position.top + $visInstance.height(); | |
164 if (currentMaxX > maxX) { | |
165 maxX = currentMaxX; | |
166 } | |
167 if (currentMaxY > maxY) { | |
168 maxY = currentMaxY; | |
169 } | |
170 }); | |
171 $cellsSpace.css({ | |
172 "padding-right": 0, | |
173 "padding-bottom": 0, | |
174 "width": maxX, | |
175 "height": maxY, | |
176 "overflow": "visible" | |
177 }); | |
178 | |
179 | |
180 | |
181 if (screenshotTypes["autosize"]) { | |
182 var $body = $("body"); | |
183 $body.width ($cellsSpace.offset().left + $cellsSpace.outerWidth()); | |
184 $body.height($cellsSpace.offset().top + $cellsSpace.outerHeight()); | |
185 // var $html = $("html"); | |
186 // $html.width ($cellsSpace.offset().left + $cellsSpace.outerWidth()); | |
187 // $html.height($cellsSpace.offset().top + $cellsSpace.outerHeight()); | |
188 } | |
189 | |
190 // console.log("VIEWPORT" + document.documentElement.clientWidth + " / " + document.documentElement.clientWidth); | |
191 // console.log("BODY" + $body.width() + " / " + $body.height() ); | |
192 }; | |
193 }, 100); | |
194 }; | |
195 resizeIfNeededAfterADelay(); | |
196 $(window).resize(resizeIfNeededAfterADelay); | |
197 }); |