Changeset 30093 for main/trunk/model-sites-dev/respooled/collect/popup-video-respooled/js/game-on.js
- Timestamp:
- 2015-08-04T13:50:35+12:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/model-sites-dev/respooled/collect/popup-video-respooled/js/game-on.js
r29980 r30093 40 40 var docStorage = null; 41 41 42 var site_name = gs.xsltParams.site_name; 43 var collection = gs.cgiParams["c"]; 44 42 45 if (hasLocalStorage) { 43 46 … … 55 58 } 56 59 60 console.log("docStorage = " + docStorage); 61 //console.log("docOID = " + docOID); 62 //console.log("*** docOID in docStorage = " + (docOID in docStorage)); 63 console.log("*** palTracks = " + (JSON.stringify(docStorage.palTracks))); 64 console.log("*** popTracks = " + (JSON.stringify(docStorage.popTracks))); 65 66 //console.log("*** palTracks.length = " + (Object.keys(docStorage.palTracks).length)); 67 68 /* 69 70 //if ((docStorage==null) || !(docOID in docStorage) || (docOID in Storage && !(docStorage[docOID].palTracks.length) )) { 71 if ((docStorage==null) || !(docStorage.palTracks) || (docStorage.palTracks && (Object.keys(docStorage.palTracks).length==0))) { 72 73 74 console.log("**** Need to retrieve Respooled data from DL"); 75 76 if (docStorage==null) { 77 docStorage = {palTracks:{}, popTracks:{}}; 78 } 79 gs.functions.getArchivesMetadata(collection, site_name, docOID, 80 "docStorage", 0, function(metadata) { 81 var metaval_encoded_str = metadata.getValue(); 82 var metaval_str = decodeURIComponent(metaval_encoded_str) 83 console.log("***!!! metadata = '" + metaval_str + "'"); 84 if (metaval_str != "") { 85 var metaval = eval("("+metaval_str+")"); 86 console.log("***!!! metadata JSON = " + JSON.stringify(metaval)); 87 docStorage = metaval; 88 } 89 else { 90 docStorage = {palTracks:{}, popTracks:{}}; 91 } 92 goDocStorage = docStorage; 93 } 94 ); 95 96 } 97 */ 98 99 //console.log("*** returning docStorage.palTracks " + JSON.stringify(docStorage.palTracks)); 100 57 101 return docStorage; 102 } 103 104 105 function saveDocStorage(log_prefix) 106 { 107 var docOID = gs.cgiParams.d; 108 var site_name = gs.xsltParams.site_name; 109 var collection = gs.cgiParams["c"]; 110 111 if (hasLocalStorage) { 112 console.log(log_prefix + ": Saving in Browser localStorage track data for '" + docOID + "'"); 113 localStorage.setItem(docOID,JSON.stringify(goDocStorage)); 114 } 115 116 /* 117 var goDocStorageStrEncoded = encodeURIComponent(JSON.stringify(goDocStorage)); 118 119 console.log(log_prefix+": Away to save metadata to DL: " + goDocStorageStrEncoded); 120 121 gs.functions.setArchivesMetadata(collection, site_name, docOID, 122 "docStorage", null, goDocStorageStrEncoded, null, "override", 123 function(response){ 124 console.log("**** saved Respooled metadata to the DL server") 125 console.log("*** response: " + JSON.stringify(response)); 126 } 127 ); 128 */ 58 129 } 59 130 … … 70 141 } 71 142 143 function getActiveOverlayLayers(opt_field) 144 { 145 var field = opt_field || "name"; 146 147 var popActiveLayers = []; 148 $('#popForm input:checked').each(function() { 149 popActiveLayers.push(this[field]); 150 }); 151 152 return popActiveLayers; 153 } 154 155 156 function getPalTracks(docOID) { 157 158 if (!("palTracks" in goDocStorage)) { 159 goDocStorage = {palTracks:{}, popTracks:{}}; 160 } 161 162 return goDocStorage.palTracks; 163 164 } 165 166 function getPopTracks(docOID) { 167 168 if (!("popTracks" in goDocStorage)) { 169 goDocStorage = {palTracks:{}, popTracks:{}}; 170 } 171 172 return goDocStorage.popTracks; 173 174 } 175 72 176 function populatePalList(docStorage) 73 177 { 74 178 // populate pal List 179 var docOID = gs.cgiParams.d; 180 75 181 if (hasLocalStorage) { 76 182 77 var palTracks = docStorage.palTracks || {};183 var palTracks = getPalTracks(docOID); 78 184 79 185 //console.log("*** palTracks = " + JSON.stringify(palTracks)); … … 103 209 104 210 211 function populatePopList(docStorage) 212 { 213 // populate pop List 214 var docOID = gs.cgiParams.d; 215 var hasPopTracks = false; 216 217 if (hasLocalStorage) { 218 219 var popTracks = getPopTracks(docOID); 220 221 //console.log("*** popTracks = " + JSON.stringify(popTracks)); 222 var popListKeys = Object.keys(popTracks).sort(); 223 224 if (popListKeys.length>0) { 225 hasPopTracks = true; 226 } 227 for (var i=0; i<popListKeys.length; i++) { 228 var key = popListKeys[i]; 229 var track = popTracks[key]; 230 var name = key; 231 var cb_name = name.replace(/[ -]/g,""); 232 var cb_value = name; 233 234 var opt_checked = (i==0) ? ' checked="checked"' : ""; 235 236 $('#popList').append('<div id="pop'+cb_name+'"><input type="checkbox" ' 237 + '" name="'+cb_name+'" value="' + cb_value + '"' 238 + opt_checked + '>' 239 + name + '</div>'); 240 } 241 } 242 243 if (!hasPopTracks) { 244 // Put in some fake data for now 245 console.log("**** adding baseline Popup Trivia item"); 246 247 $('#popList').append('<input type="checkbox" id="popPopupTrivia" name="PopupTrivia" value="Popup Trivia" checked="checked"/>Popup Trivia<br />'); 248 249 if (hasLocalStorage) { 250 var popTracks = getPopTracks(docOID); 251 popTracks["Popup Trivia"] = ""; 252 } 253 254 255 //$('#palList').append('<input type="checkbox" id="palDrumbeatHero" name="DrumbeatHero" value="Drum-beat Hero" />Drum-beat Hero<br />'); 256 } 257 } 258 259 105 260 function computeMidiStats(track) 106 261 { … … 168 323 go_top_level_group = new goPaper.group("gameOnPaper",[]); 169 324 325 var docOID = gs.cgiParams.d; 326 170 327 if (hasLocalStorage) { 171 328 … … 173 330 // palTracks[save_name] = [ { name: "my recording 1", baseCTime: 123.3, events: [ .... ] } ] 174 331 175 var palTracks = docStorage.palTracks || {};332 var palTracks = getPalTracks(docOID); 176 333 177 334 var total_duration = mediaPlayer.duration; … … 233 390 var block_events_len = block_events.length; 234 391 for (var ne=0; ne<block_events_len; ne++) { 235 392 236 393 var note_event = block_events[ne]; 237 394 var midi_pitch = note_event.midiPitch; 238 395 239 396 var startPercTime = (base_ctime + note_event.startCurrentTime)/total_duration; 397 240 398 var rx_org = startPercTime * go_paper_x_dim; 241 var ry_org = go_paper_y_dim - ((note_event.midiPitch - min_midi_pitch) * midi_y_dim_spacing) - midi_y_dim_spacing;399 var ry_org; 242 400 243 var rx_dim = (note_event.duration/1000)/total_duration * go_paper_x_dim;244 var ry_dim = midi_y_dim_spacing;401 var rx_dim; 402 var ry_dim; 245 403 404 if (note_event.type && (note_event.type=="drum")) { 405 ry_org = 0; 406 407 rx_dim = 1; 408 ry_dim = go_paper_y_dim; 409 } 410 else { 411 var midi_pitch = note_event.midiPitch; 412 413 //var startPercTime = (base_ctime + note_event.startCurrentTime)/total_duration; 414 //var rx_org = startPercTime * go_paper_x_dim; 415 ry_org = go_paper_y_dim - ((note_event.midiPitch - min_midi_pitch) * midi_y_dim_spacing) - midi_y_dim_spacing; 416 417 rx_dim = (note_event.duration/1000)/total_duration * go_paper_x_dim; 418 ry_dim = midi_y_dim_spacing; 419 } 420 246 421 var rect = goPaper.rect(rx_org,ry_org,rx_dim,ry_dim-0.2); 247 422 //rect.attr({stroke:"none", strokeWidth:0.2, fill:"#2E52A4"}); … … 251 426 go_top_level_group.push(rect); 252 427 253 if (midi_pitch < block_min_midi_pitch) { 254 block_min_midi_pitch = midi_pitch; 428 if (midi_pitch) { 429 if (midi_pitch < block_min_midi_pitch) { 430 block_min_midi_pitch = midi_pitch; 431 } 432 if (midi_pitch > block_max_midi_pitch) { 433 block_max_midi_pitch = midi_pitch; 434 } 255 435 } 256 if (midi_pitch > block_max_midi_pitch) { 257 block_max_midi_pitch = midi_pitch; 258 } 436 259 437 } 260 438 … … 343 521 goPaper = Raphael("gameOnPaper",go_paper_x_dim,go_paper_y_dim); 344 522 goPaper.canvas.style.backgroundColor = '#FFFFFF'; 523 524 if (gs.xsltParams.interface_name == "dlfm") { 525 526 $("#gameOnPaper>svg").panzoom({ 527 $zoomIn: $(".zoom-in"), 528 $zoomOut: $(".zoom-out"), 529 $zoomRange: $(".zoom-range"), 530 $reset: $(".reset") 531 }); 532 533 $("#gameOnPaper>svg").panzoom("option", "contain", true ); 534 535 } 345 536 346 537 … … 348 539 349 540 populatePalList(goDocStorage); 541 populatePopList(goDocStorage); 542 350 543 displayActiveTrackLayers(goDocStorage); 351 544 } 352 545 546 // pal routines 353 547 354 548 function palDeleteConfirmed() … … 359 553 var palActiveLayersValue = getActiveTrackLayers("value"); 360 554 361 var palTracks = goDocStorage.palTracks || {}; 555 var docOID = gs.cgiParams.d; 556 var palTracks = getPalTracks(docOID); 362 557 363 558 for (var i=0; i<palActiveLayersID.length; i++) { … … 368 563 delete palTracks[value]; 369 564 } 565 566 saveDocStorage("palDeleteConfirmed()"); 370 567 } 371 568 … … 387 584 function palSave() 388 585 { 389 var palTracks = goDocStorage.palTracks || {}; 586 var docOID = gs.cgiParams.d; 587 var palTracks = getPalTracks(docOID); 390 588 391 589 var json_edit_str = trackEditor.getSession().getValue(); 392 console.log("**** json edit str= " + json_edit_str);590 console.log("**** palSave() trackEditor.getSession value = " + json_edit_str); 393 591 394 592 var json_edit = eval("("+json_edit_str+")"); … … 398 596 //console.log("*** key = " + key); 399 597 var val = json_edit[key]; 400 console.log("**** Saving under key[ 598 console.log("**** Saving under key[" + key + "]: " + JSON.stringify(val)); 401 599 palTracks[key] = val; 402 600 } 403 601 } 404 602 405 if (hasLocalStorage) { 406 var docOID = gs.cgiParams.d; 407 console.log("Saving in Browser localStorage track data for '" + docOID + "'"); 408 localStorage.setItem(docOID,JSON.stringify(goDocStorage)); 409 } 603 saveDocStorage("palSave()"); 604 410 605 } 411 606 412 607 function palEdit() 413 608 { 414 var palTracks = goDocStorage.palTracks || {}; 609 var docOID = gs.cgiParams.d; 610 var palTracks = getPalTracks(docOID); 415 611 416 612 var palActiveLayers = getActiveTrackLayers("value"); … … 431 627 } 432 628 629 // 630 // Popup Info Overlay routines 631 // 632 633 634 function popCreate() 635 { 636 $('#create-info-popup').dialog('open'); 637 638 return false; // no need to process the event any further 639 } 640 641 function popDeleteConfirmed() 642 { 643 //var popActiveLayers = $('input[type=checkbox]:checked', '#popForm'); 644 645 var popActiveLayersID = getActiveOverlayLayers("name"); 646 var popActiveLayersValue = getActiveOverlayLayers("value"); 647 648 var docOID = gs.cgiParams.d; 649 var popTracks = getPopTracks(docOID); 650 651 for (var i=0; i<popActiveLayersID.length; i++) { 652 var id = popActiveLayersID[i]; 653 $('#pop'+id).remove(); 654 655 var value = popActiveLayersValue[i]; 656 delete popTracks[value]; 657 } 658 659 //console.log("***### pop mode, skipping saving for now"); 660 saveDocStorage("popDeleteConfirmed()"); 661 662 } 663 664 665 function popDelete() 666 { 667 $('#delete-info-popup').dialog('open'); 668 669 return false; // no need to process the event any further 670 } 671 672 function popSave() 673 { 674 var docOID = gs.cgiParams.d; 675 var popTracks = getPopTracks(docOID); 676 677 var text_edit_str = infoEditor.getSession().getValue(); 678 console.log("**** popSave() infoEditor.getSession value = " + text_edit_str); 679 680 var popActiveLayers = getActiveOverlayLayers(); 681 //var json_edit = eval("("+json_edit_str+")"); 682 683 var key = popActiveLayers[0]; 684 //console.log("**** Saving under key[" + key + "]: " + JSON.stringify(val)); 685 console.log("**** Saving under key[" + key + "]: " + text_edit_str); 686 popTracks[key] = text_edit_str; 687 688 /* 689 for (var key in json_edit){ 690 if (json_edit.hasOwnProperty(key)) { 691 //console.log("*** key = " + key); 692 var val = json_edit[key]; 693 console.log("**** Saving under key[" + key + "]: " + JSON.stringify(val)); 694 popTracks[key] = val; 695 } 696 } 697 */ 698 699 //console.log("***### pop mode, skipping saving for now"); 700 saveDocStorage("popSave()"); 701 702 } 703 704 705 function popEdit() 706 { 707 var docOID = gs.cgiParams.d; 708 var popTracks = getPopTracks(docOID); 709 710 var popActiveLayers = getActiveOverlayLayers("value"); 711 712 //var edit_json = {}; 713 var edit_text = ""; 714 715 for (var i=0; i<popActiveLayers.length; i++) { 716 var track_name = popActiveLayers[i]; 717 //edit_json[track_name] = popTracks[track_name]; 718 edit_text += popTracks[track_name]; 719 } 720 721 //infoEditor.setValue(JSON.stringify(edit_json,null,'\t')); 722 infoEditor.setValue(edit_text); 723 infoEditor.clearSelection(); 724 725 $('#edit-info-popup').dialog('open'); 726 727 return false; // no need to process the event any further 728 } 729 730 731 732
Note:
See TracChangeset
for help on using the changeset viewer.