Show
Ignore:
Timestamp:
17.01.2013 20:28:10 (7 years ago)
Author:
davidb
Message:

Added in more code to the go button function.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • gs3-extensions/html-to-expeditee/trunk/src/src/cgi-bin/generate-collection-space.pl.in

    r26744 r26747  
    6060     
    6161    <script type="text/javascript"> 
     62        var clLinks = []; 
     63        var numClLinks; 
     64     
    6265        \$(function(){ 
    6366            \$('#progress').progressbar(); 
     
    8184                } 
    8285                 
    83                 var gs2 = $isGSDL2; 
    84                  
    85                 var url; 
    86                  
    87                 if(gs2){ 
    88                     url = "library.cgi"; 
    89                     url += "?c=" + collect + "&a=d&cl=" + cl; 
    90                 }else{ 
    91                     url = "library"; 
    92                     url += "?c=" + collect + "&a=b&rt=s&s=ClassifierBrowse&cl=" + cl; 
    93                     url += "&excerptid=gs_content"; 
    94                 } 
    95                  
    96                 docOIDs = []; 
    97                 var outstandingURLs = []; 
    98                 var visitedURLs = {}; 
    99                  
    100                 outstandingURLs.push(url); 
    101                 visitedURLs[url] = 1; 
    102                                  
    103                 while(outstandingURLs.length>0){ 
    104                     var clHtml = urlGetSync(url); 
    105                  
    106                     var aElems; 
    107                     var workingTrav = document.getElementById("workingTraverse"); 
    108                     workingTrav.innerHTML = clHtml; 
    109                     aElems = workingTrav.getElementsByTagName("a"); 
    110                  
    111                     //console.log(aElems.length); 
    112                  
    113                     var actionRE = new RegExp("(\\\\/)(?:document|browse)(\\\\/)"); 
    114                     var clRE = new RegExp("(\\\\/)browse\\\\/" + cl + "(\\\\/\\\\d+)+(\$)"); 
    115                     var docRE = new RegExp("(?:\\\\/)document\\\\/(.*?)(?:\$)"); 
    116                  
    117                     for(var i = 0; i < aElems.length; i++){ 
    118                         var aElem = aElems[i]; 
    119                          
    120                         var href = aElem.href; 
    121                          
    122                         if(href && href.match(actionRE)){ 
    123                             if(href.match(clRE)){ 
    124                                 if(!visitedURLs[href]){ 
    125                                     outstandingURLs.push(href); 
    126                                     visitedURLs[href] = 1; 
    127                                      
    128                                 } 
    129                             }else if(href.match(docRE)){ 
    130                                 if(!visitedURLs[href]){ 
    131                                     var docMatch = docRE.exec(href); 
    132                                     var docOID = docMatch[1]; 
    133                                      
    134                                     console.log("found a new doc line: " + docOID); 
    135                                     visitedURLs[href] = 1; 
    136                                     docOIDs.push(docOID); 
    137                                 } 
    138                             } 
    139                         } 
    140                     } 
    141                 } 
    142                  
    143                 numDocOIDs = docOIDs.length; 
    144             }); 
    145              
     86                 
     87                 
     88                 
    14689            return false; 
    14790        }); 
    14891         
    14992        function pageLoaded(){ 
    150              
    151             \$(function(){ 
    152                 \$('#progressbar').progressbar({ value: 0 }); 
    153             }); 
     93         
     94            var iframe = document.getElementById("iframe"); 
     95             
     96            if(iframe.src){ 
     97                if(iframe.style.display != "block"){ 
     98                    iframe.height = "90%"; 
     99                    iframe.style.display = "block"; 
     100                } 
     101                 
     102                var iframeDoc; 
     103                 
     104                if(iframe.contentDocument){ 
     105                    /* FF */ 
     106                    iframeDoc = iframe.contentDocument; 
     107                }else if(iframe.contentWindow){ 
     108                    /* IE */ 
     109                    iframeDoc = iframe.contentWindow.document; 
     110                } 
     111                 
     112                var frameNum = (numClPages - clPages.length); 
     113                var progressPercent = frameNum/numClPages * 100; 
     114                 
     115                \$(function(){ 
     116                    \$('#progressbar').progressbar({ value: 0 }); 
     117                }); 
     118                 
     119                var gsContent = iframeDoc.getElementById("gs_content"); 
     120                 
     121                //Need to change htmlToExpeditee code to account for links 
     122                var expFrameTre = htmlToExpeditee(gsContent); 
     123                 
     124                var collect = document.getElementById("collect").value; 
     125                var site = document.getElementById("site").value; 
     126                 
     127                var url = "cgi-bin/generate-collection-space.pl"; 
     128                var params = "c=" + collect; 
     129                 
     130                if(site.match(/\\w/)){ 
     131                    params += "&site=" + site; 
     132                } 
     133                 
     134                params += "&a=generate-frame&fn=" + frameNum; 
     135                params += "&json=" + escape(expFrame); 
     136                 
     137                var clHtml = urlPostSync(url,params); 
     138                 
     139                if(!clHtml.match(/html-to-expeditee saved frame/)){ 
     140                    alert("Error processing url: " + url);s 
     141                } 
     142                 
     143                if(clPages.length > 0){ 
     144                    var clPage = clPages.shift(); 
     145                     
     146                    var cl = document.getElementById("cl").value; 
     147                     
     148                    var gs2 = $isGSDL2; 
     149                     
     150                    var url; 
     151                     
     152                    var url; 
     153                     
     154                    if(gs2){ 
     155                        url = "library.cgi"; 
     156                        url += "?c=" + collect + "&a=d&d=" + docOID; 
     157                    }else{ 
     158                        url = "library"; 
     159                        url += "?c=" + collect + "&a=d&d=" + docOID; 
     160                    } 
     161                     
     162                    iframe.src = url; 
     163                }else{ 
     164                 
     165                    var progressbar = document.getElementById("progressbar"); 
     166                    progressbar.style.display = "none"; 
     167                     
     168                    iframe.style.display = "none"; 
     169                    delete iframe.src; 
     170                } 
     171                 
     172                 
     173            } 
     174             
     175             
    154176        } 
    155177    </script> 
     
    157179    <div id="progressbar" width="100%" style="display: none; margin: 10px; height: 10px;"></div> 
    158180     
    159     <!-- set display to "none" for this div--> 
    160181    <div id="workingTraverse" style="display: none"></div> 
    161182     
     
    181202    $gsdl_cgi->checked_chdir($gsdlhome); 
    182203 
    183     require cgiactions::HtmlToExpediteeAction; 
     204    require cgiactions::CollectionSpaceAction; 
    184205     
    185206    $gsdl_cgi->parse_cgi_args(); 
     
    188209    $gsdl_cgi->{'xml'} = 0; 
    189210     
    190      
    191     #my $action = new HtmlToExpediteeAction($gsdl_cgi,$iis6_mode); 
    192  
    193     #$action->do_action(); 
    194      
    195     my $collect = $gsdl_cgi->clean_param("collect"); 
    196     my $cl = $gsdl_cgi->clean_param("cl"); 
    197      
    198     #Establish collect_dir using defining 'site' along the way if GS3 
    199     my $site = undef; 
    200     my $isGSDL2 = undef; 
    201      
    202     if($gsdl_cgi->greenstone_version() == 2){ 
    203         $isGSDL2 = 1; 
     211    my $fn = $gsdl_cgi->clean_param("fn"); 
     212     
     213    if(defined $fn){ 
     214        #Generate a frame. 
     215        my $action = new CollectionSpaceAction($gsdl_cgi,$iis6_mode); 
     216        $action->do_action(); 
    204217    }else{ 
    205         $isGSDL2 = 0; 
    206          
    207         #GS3 makes use of 'site' 
    208         $site = $gsdl_cgi->clean_param("site"); 
    209          
    210         if(!defined $site){ 
    211             $gsdl_cgi->generate_error("No site specified."); 
     218        my $collect = $gsdl_cgi->clean_param("collect"); 
     219        my $cl = $gsdl_cgi->clean_param("cl"); 
     220     
     221        #Establish collect_dir using defining 'site' along the way if GS3 
     222        my $site = undef; 
     223        my $isGSDL2 = undef; 
     224     
     225        if($gsdl_cgi->greenstone_version() == 2){ 
     226            $isGSDL2 = 1; 
     227        }else{ 
     228            $isGSDL2 = 0; 
     229         
     230            #GS3 makes use of 'site' 
     231            $site = $gsdl_cgi->clean_param("site"); 
     232         
     233            if(!defined $site){ 
     234                $gsdl_cgi->generate_error("No site specified."); 
     235            } 
    212236        } 
     237     
     238        generate_html_form($isGSDL2,$site,$collect,$cl); 
    213239    } 
    214      
    215     generate_html_form($isGSDL2,$site,$collect,$cl); 
    216240} 
    217241