Changeset 36966


Ignore:
Timestamp:
2022-12-01T00:07:09+13:00 (2 months ago)
Author:
davidb
Message:

Dyanmic document load to upate metadata anv playervisual added

Location:
gs3-installations/mars/trunk/sites/mars/collect/amc-essentia
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • gs3-installations/mars/trunk/sites/mars/collect/amc-essentia/etc/collectionConfig.xml

    r36965 r36966  
    550550              <gsf:script src="{$httpCollection}/js/av_document.js"/>
    551551
    552               <div class="documenttext" style="padding-bottom: 20px; width:100%;">
     552              <div id="metadata-documenttext" class="documenttext" style="padding-bottom: 20px; width:100%;">
    553553                <style>
    554554                  .doc-metadata td { padding: 7px; }
     
    585585
    586586             
    587               <div class="documenttext" style="position: relative;">
     587              <div id="playervisual-documenttext" class="documenttext" style="position: relative;">
     588                <div id="ajax-loaded-assocfilepath" style="display: none;"><gsf:metadata name="assocfilepath" pos="first"/></div>
     589
    588590               
    589591                <div style="position: absolute; right: 24px; top: -18px; z-index: 1000; font-size: 90%; font-style:italic">
     
    676678    <gsf:script>
    677679      //var currentPosIsZero = true;
    678 
    679 
    680680     
    681681      document.addEventListener('DOMContentLoaded', function() {
     
    715715                  </xsl:when>
    716716                  <xsl:otherwise>
    717                 <input name="s1.maxDocs" type="hidden" value="3"/>
     717                <input name="s1.maxDocs" type="hidden" value="5"/>
    718718                  </xsl:otherwise>
    719719                </xsl:choose>
     
    727727                  </xsl:when>
    728728                  <xsl:otherwise>
    729                 <input name="s1.hitsPerPage" type="hidden" value="3"/>
     729                <input name="s1.hitsPerPage" type="hidden" value="5"/>
    730730                  </xsl:otherwise>
    731731                </xsl:choose>
  • gs3-installations/mars/trunk/sites/mars/collect/amc-essentia/js/av_document.js

    r36965 r36966  
    130130    var av_cluster_y_delta = Math.abs(min_valence_val - max_valence_val)/2.0;
    131131
    132     var av_cluster_rad = Math.max(Math.max(av_cluster_x_delta,av_cluster_y_delta),3.0);
    133    
     132    //var av_cluster_rad = Math.max(Math.max(av_cluster_x_delta,av_cluster_y_delta),3.0);
     133
     134    var av_cluster_rad   = Math.max(av_cluster_x_delta,av_cluster_y_delta);
     135    var disp_cluster_coord = av_to_display_coord(av_cluster_rad,av_cluster_rad);
     136    var disp_cluster_rad = disp_cluster_coord.x - av_chart_disp_x_mid; // **** **** ????
     137    var disp_cluster_rad_maxed = Math.max(disp_cluster_rad,3.0);
     138
    134139    var disp_coord = av_to_display_coord(av_cluster_x_org,av_cluster_y_org);
    135140    var disp_x = disp_coord.x;
     
    139144   
    140145    var ctx = av_chart_canvas.getContext("2d");
     146    ctx.clearRect(0, 0, av_chart_canvas.width, av_chart_canvas.height);
    141147    ctx.beginPath();
    142     ctx.arc(disp_x/2, disp_y/2, av_cluster_rad/2, 0, 2*Math.PI, false);
     148    ctx.arc(disp_x/2, disp_y/2, disp_cluster_rad_maxed/2, 0, 2*Math.PI, false);
    143149    ctx.fillStyle = 'rgba(50,50,128,0.5)';
    144150    ctx.fill();
     
    147153    ctx.stroke();
    148154   
     155}
     156
     157function ajaxUpdateDocumentDisplayed()
     158{
     159    var $resultsTable = $('#resultsTable');
     160
     161    var $resultsTable_trs = $resultsTable.find('tr');
     162
     163    if ($resultsTable_trs.length>0) {
     164    var $resultsTable_tr1 = $resultsTable_trs.first();
     165    var div_doc_id = $resultsTable_tr1.attr('id')
     166    var doc_id = div_doc_id.substring(3);
     167   
     168    console.log("first AV recommendation doc id = " + doc_id);
     169
     170    var $av_recommendation = $resultsTable_tr1.find('.AVRecommendation').first();
     171
     172    var new_doc_url = $av_recommendation.attr('href');
     173    var new_doc_url_parts = new_doc_url.split("#");
     174
     175    var new_doc_metadata_url     = new_doc_url_parts[0] + "&excerptid=metadata-documenttext#" + new_doc_url_parts[1];
     176    var new_doc_playervisual_url = new_doc_url_parts[0] + "&excerptid=playervisual-documenttext#" + new_doc_url_parts[1];
     177
     178    console.log("new doc metadata url = " + new_doc_metadata_url);
     179    console.log("new doc playervisual url = " + new_doc_playervisual_url);
     180
     181    $.ajax({
     182        method: "GET",
     183        url: new_doc_metadata_url,
     184    })
     185        .fail(function(jqXHR,textStatus) {
     186        console.error( "metadata-documenttext ajax request failed: " + textStatus);
     187        })
     188        .done(function(html_result) {
     189        $('#metadata-documenttext').replaceWith(html_result);
     190        });
     191
     192   
     193    $.ajax({
     194        method: "GET",
     195        url: new_doc_playervisual_url,
     196    })
     197        .fail(function(jqXHR,textStatus) {
     198        console.error( "playervisual-documenttext equest failed: " + textStatus);
     199        })
     200        .done(function(html_result) {
     201        // current URL ends with  collect/amc-essentia/document/ds_51017_15513?p.frameOffset=...
     202        // Need to remove old '/document/ds_...' and replace with new doc
     203       
     204        const current_doc_url_str = window.location.href;
     205
     206        console.log(current_doc_url_str);
     207        var new_doc_url_str = current_doc_url_str.replace(/document\/\w+\?/,"document/"+doc_id+"?");
     208        console.log("new doc url str = " + new_doc_url_str);
     209        const new_doc_url = new URL(new_doc_url_str);
     210       
     211        var frameOffset = $av_recommendation.data("frameoffset");       
     212        new_doc_url.searchParams.set('p.frameOffset', frameOffset);
     213        new_doc_url.searchParams.set('d', doc_id);     
     214        window.history.pushState({}, '', new_doc_url);
     215        //window.history.replaceState({}, '', new_doc_url);
     216       
     217        $('#playervisual-documenttext').replaceWith(html_result);
     218
     219        gs.cgiParams['p_frameOffset'] = frameOffset;
     220        gs.documentMetadata["assocfilepath"] = $('#ajax-loaded-assocfilepath').text();
     221       
     222        initPlayerVisual();
     223        initWavesurferPlayer();
     224
     225        postInitWavesurfer(wavesurfer);
     226
     227       
     228        });
     229
     230   
     231   
     232   
     233    //var arousal_val = $av_recommendation.data("arousalval");
     234    //var valence_val = $av_recommendation.data("valenceval");
     235
     236   
     237    }
     238
    149239}
    150240
     
    203293        window.history.replaceState({}, '', updated_url);
    204294        }
     295        else {
     296        // The result of a click on the AV-chart
     297        ajaxUpdateDocumentDisplayed();
     298        }
    205299    });
    206300   
     
    382476}
    383477
    384 $(document).ready(function() {
     478function initPlayerVisual() {
    385479
    386480    const doc_url = new URL(window.location);
     
    406500    $('#av-timelinebar-help').show();   
    407501    }
    408 
     502}
     503
     504$(document).ready(function() {
     505
     506    initPlayerVisual();
     507   
    409508    $('#av-chart-img').on("click",function(e) { av_chart_click(this,e) } );
    410509});
Note: See TracChangeset for help on using the changeset viewer.