Changeset 31429

Show
Ignore:
Timestamp:
17.02.2017 21:57:33 (3 years ago)
Author:
litvinovg
Message:

Added base function expandAndExecute for focusSection and focusAnchor

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/default/js/document_scripts.js

    r31416 r31429  
    272272function focusSection(sectionID, level, tocDisabled) 
    273273{ 
     274    expandAndExecute(sectionID, level, tocDisabled, function() 
     275            { 
     276                var topVal = $(document.getElementById("doc" + sectionID)).offset().top - 50; 
     277                $('html, body').stop().animate({scrollTop: topVal}, 1000); 
     278            }); 
     279} 
     280function focusAnchor(sectionID, level, tocDisabled, anchor) 
     281{ 
     282    expandAndExecute(sectionID, level, tocDisabled, function() 
     283        { 
     284            var target = document.getElementById(anchor); 
     285            if (!target){ 
     286                target = document.getElementsByName(anchor)[0]; 
     287            } 
     288            var topVal = $(target).offset().top - 50; 
     289            $('html, body').stop().animate({scrollTop: topVal}, 1000); 
     290            window.location.hash = anchor; 
     291        }); 
     292} 
     293function expandAndExecute(sectionID, level, tocDisabled, executeAfter) 
     294{ 
    274295    if(!level) 
    275296    { 
     
    279300    if(level >= parts.length) 
    280301    { 
    281         var topVal = $(document.getElementById("doc" + sectionID)).offset().top - 50; 
    282         $('html, body').stop().animate({scrollTop: topVal}, 1000); 
     302        executeAfter(); 
    283303        return; 
    284304    } 
     
    301321            if(success) 
    302322            { 
    303                 focusSection(sectionID, level + 1, tocDisabled); 
     323                expandAndExecute(sectionID, level + 1, tocDisabled, executeAfter); 
    304324            } 
    305325        }, tocDisabled); 
     
    307327    else 
    308328    { 
    309         focusSection(sectionID, level + 1, tocDisabled); 
    310     } 
    311 } 
    312 function focusAnchor(sectionID, level, tocDisabled, anchor) 
    313 { 
    314     if(!level) 
    315     { 
    316         level = 0; 
    317     } 
    318     var parts = sectionID.split("."); 
    319     if(level >= parts.length) 
    320     { 
    321         var target = document.getElementById(anchor); 
    322         if (!target){ 
    323             target = document.getElementsByName(anchor)[0]; 
    324         } 
    325         var topVal = $(target).offset().top - 50; 
    326         $('html, body').stop().animate({scrollTop: topVal}, 1000); 
    327         window.location.hash = anchor; 
    328         return; 
    329     } 
    330      
    331     var idToExpand = ""; 
    332     for(var i = 0; i < level + 1; i++) 
    333     { 
    334         if(i > 0) 
    335         { 
    336             idToExpand += "."; 
    337         } 
    338      
    339         idToExpand += parts[i]; 
    340     } 
    341      
    342     if(!isSectionExpanded(idToExpand)) 
    343     { 
    344         toggleSection(idToExpand, function(success) 
    345         { 
    346             if(success) 
    347             { 
    348                 focusAnchor(sectionID, level + 1, tocDisabled, anchor); 
    349             } 
    350         }, tocDisabled); 
    351     } 
    352     else 
    353     { 
    354         focusAnchor(sectionID, level + 1, tocDisabled, anchor); 
     329        expandAndExecute(sectionID, level + 1, tocDisabled, executeAfter); 
    355330    } 
    356331}