Changeset 26751

Show
Ignore:
Timestamp:
18.01.2013 20:25:55 (6 years ago)
Author:
davidb
Message:

Fixed bug with first CL page not being written out to a frame.

Files:
1 modified

Legend:

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

    r26750 r26751  
    161161                                        if(href.match(clRE)){ 
    162162                                            if(!visitedURLs[href]){ 
    163                                                 console.log("found a new CL line: " + href); 
     163                                                //console.log("found a new CL line: " + href); 
    164164                                                outstandingURLs.push(href); 
    165165                                                visitedURLs[href] = 1; 
     
    171171                                                var docOID = docMatch[1]; 
    172172                                                 
    173                                                 console.log("found a new doc line: " + docOID); 
     173                                                //console.log("found a new doc line: " + docOID); 
    174174                                                visitedURLs[href] = 1; 
    175175                                                docOIDs.push(docOID); 
     
    201201                    } 
    202202                     
     203                     
     204                     
    203205                                         
    204206                    function pageLoaded(){ 
     
    212214                            } 
    213215                             
    214                             var iframeDoc; 
     216                            var iframeDoc = getIframeDoc(iframe); 
     217                                                 
     218                         
     219                            /*Check url - if it's a doc Url, call "writeDocument", otherwise call "writeClPage"*/ 
     220                            var clRE = new RegExp("(\\\\/)browse\\\\/" + cl + "(\\\\/\\\\d+)+(\$)"); 
     221                             
     222                             
     223                            if(iframe.src.match(clRE)){ 
     224                                writeClPage(iframe,iframeDoc); 
     225                            }else{ 
     226                                writeDocument(iframe,iframeDoc); 
     227                            } 
     228                        } 
     229                    } 
     230                     
     231                    function writeDocument(iframe){ 
     232                         
     233                        console.log("now processing document: " + iframe.src + " ***"); 
     234                        var xmlUrl = iframe.src + "&o=xml"; 
     235                         
     236                        var iter = (numDocOIDs - docOIDs.length); 
     237                        var progressPercent = iter/numDocOIDs * 100; 
     238                         
     239                        var frameNum = getMetadata(xmlUrl,'frameID'); 
     240                         
     241                        if(frameNum == null){ 
     242                            frameNum = iter; 
     243                        } 
     244                         
     245                        var iframeDoc = getIframeDoc(iframe); 
     246                         
     247                         
     248                        \$(function(){ 
     249                            \$('#progressbar').progressbar({ value: progressPercent }); 
     250                        }); 
     251                         
     252                        var gsContent = iframeDoc.getElementById("gs_content"); 
     253                         
     254                        var assocElem = iframeDoc.getElementById("assocfilepath"); 
     255                         
     256                        var assocElem = iframeDoc.getElementById('assocfilepath'); 
     257                        var assoc = null; 
     258                         
     259                        if(assocElem === undefined || assocElem === null){ 
     260                            assoc = getMetadata(xmlUrl,'assocfilepath'); 
     261                        } 
     262                         
     263                        var expFrameTree = htmlToExpeditee(gsContent,compute_font,compute_width); 
     264                         
     265                        var expFrame = JSON.stringify(expFrameTree); 
     266                        //console.log(expFrame); 
     267                         
     268                        var url = "cgi-bin/html-to-expeditee.pl"; 
     269                        var params = "c=" + collect; 
     270                         
     271                        if(site.match(/\\w/)){ 
     272                            params += "&site=" + site; 
     273                        } 
     274                         
     275                        params += "&a=generate-frame&fn=" + frameNum; 
     276                        params += "&json=" + escape(expFrame); 
     277                         
     278                        //Add an assocfilepath but only if it is defined 
     279                        if(assoc !== null){ 
     280                            params += "&assoc=" + assoc; 
     281                        } 
     282                         
     283                        params += "&compute-font=" + compute_font; 
     284                                                 
     285                        params += "&page-type=" + "document"; 
     286                                             
     287                         
     288                        var clHtml = urlPostSync(url,params); 
     289                         
     290                        if(!clHtml.match(/html-to-expeditee saved frame/)){ 
     291                            alert("ERROR PROCESSING URL: " + url); 
     292                        } 
     293                         
     294                        if(docOIDs.length > 0){ 
     295                            var docOID = docOIDs.shift(); 
     296                             
     297                            //Add docOID and matching frame number to an associative array for later use. 
     298                            hashMapDocFrames[docOID] = frameNum; 
     299                             
     300                             
     301                            iframe.src = getDocumentUrl(docOID); 
     302                             
     303                        }else{ 
     304                             
     305                            //start writing CL pages. 
     306                            if(generate_browsing){ 
     307                                iframe.src = clPages.shift(); 
     308                            }else{ 
     309                                //We are finished 
     310                                finish(iframe); 
     311                            } 
     312                        }    
     313                    } 
     314                     
     315                    function getIframeDoc(){ 
     316                         
     317                        var iframeDoc = null; 
    215318                             
    216319                            if(iframe.contentDocument){ /* FF and Chrome */ 
     
    220323                            } 
    221324                         
    222                             /*Check url - if it's a doc Url, call "writeDocument", otherwise call "writeClPage"*/ 
    223                             var clRE = new RegExp("(\\\\/)browse\\\\/" + cl + "(\\\\/\\\\d+)+(\$)"); 
    224                              
    225                              
    226                             if(iframe.src.match(clRE)){ 
    227                                 writeClPage(iframe,iframeDoc); 
    228                             }else{ 
    229                                 writeDocument(iframe,iframeDoc); 
    230                             } 
    231                         } 
    232                     } 
    233                      
    234                     function writeDocument(iframe,iframeDoc){ 
    235                          
    236                         var xmlUrl = iframe.src + "&o=xml"; 
    237                          
    238                         var iter = (numDocOIDs - docOIDs.length); 
    239                         var progressPercent = iter/numDocOIDs * 100; 
    240                          
    241                         var frameNum = getMetadata(xmlUrl,'frameID'); 
    242                          
    243                         if(frameNum == null){ 
    244                             frameNum = iter; 
    245                         } 
    246                          
    247                         //Add docOID and matching frame number to an associative array for later use. 
    248                         hashMapDocFrames[docOID] = frameNum; 
    249                          
    250                         \$(function(){ 
    251                             \$('#progressbar').progressbar({ value: progressPercent }); 
    252                         }); 
    253                          
    254                         var gsContent = iframeDoc.getElementById("gs_content"); 
    255                          
    256                         var assocElem = iframeDoc.getElementById("assocfilepath"); 
    257                          
    258                         var assocElem = iframeDoc.getElementById('assocfilepath'); 
    259                         var assoc = null; 
    260                          
    261                         if(assocElem === undefined || assocElem === null){ 
    262                             assoc = getMetadata(xmlUrl,'assocfilepath'); 
    263                         } 
    264                          
    265                         var expFrameTree = htmlToExpeditee(gsContent,compute_font,compute_width); 
    266                          
    267                         var expFrame = JSON.stringify(expFrameTree); 
    268                         //console.log(expFrame); 
    269                          
    270                         var url = "cgi-bin/html-to-expeditee.pl"; 
    271                         var params = "c=" + collect; 
    272                          
    273                         if(site.match(/\\w/)){ 
    274                             params += "&site=" + site; 
    275                         } 
    276                          
    277                         params += "&a=generate-frame&fn=" + frameNum; 
    278                         params += "&json=" + escape(expFrame); 
    279                          
    280                         //Add an assocfilepath but only if it is defined 
    281                         if(assoc !== null){ 
    282                             params += "&assoc=" + assoc; 
    283                         } 
    284                          
    285                         params += "&compute-font=" + compute_font; 
    286                                                  
    287                         params += "&page-type=" + "document"; 
    288                                              
    289                          
    290                         var clHtml = urlPostSync(url,params); 
    291                          
    292                         if(!clHtml.match(/html-to-expeditee saved frame/)){ 
    293                             alert("ERROR PROCESSING URL: " + url); 
    294                         } 
    295                          
    296                         if(docOIDs.length > 0){ 
    297                             var docOID = docOIDs.shift(); 
    298                             iframe.src = getDocumentUrl(docOID); 
    299                              
    300                         }else{ 
    301                             //start writing CL pages. 
    302                             if(generate_browsing){ 
    303                                 numClPages = clPages.length; 
    304                              
    305                                 var url = clPages.shift(); 
    306                                 iframe.src = url; 
    307                                 writeClPage(iframe,iframeDoc); 
    308                             }else{ 
    309                                 //We are finished 
    310                                 finish(iframe); 
    311                             } 
    312                         }    
     325                         
     326                        return iframeDoc; 
    313327                    } 
    314328                     
     
    329343                    } 
    330344                     
    331                     function writeClPage(iframe,iframeDoc){ 
     345                    function writeClPage(iframe){ 
    332346                         
    333347                        var frameNum = numClPages - clPages.length; 
    334348                        var progressPercent = frameNum / numClPages * 100; 
     349                        var iframeDoc = getIframeDoc(iframe); 
     350                        console.log("Processing cl page: " + iframe.src + " ****"); 
    335351                         
    336352                        \$(function(){ 
     
    343359                        var docRE    = new RegExp("(?:\\\\/)document\\\\/(.*?)(?:\$)"); 
    344360                         
    345                         //get rid of rectangles around nodes. 
     361                         
    346362                        for(var i = 0; i < gsContentChildren.length; i++){ 
    347363                            var child = gsContentChildren[i]; 
    348364                             
     365                            //get rid of rectangles around nodes. 
    349366                            if(child.tagName !== "IMG"){ 
    350367                                child.setAttribute('rect','norect'); 
     
    367384                                        var frameName = collect + fn; 
    368385                                         
    369                                         //aElemChild.setAttribute("link",frameName); 
     386                                        aElemChild.setAttribute("link",frameName); 
    370387                                    } 
    371388                                     
     
    376393                            } 
    377394                        } 
    378                          
    379                         //add link attribute to children nodes of <a> elements. 
    380                          
     395     
    381396                         
    382397                        //TODO: Need to change htmlToExpeditee code to account for links 
     
    406421                         
    407422                        if(clPages.length > 0){ 
    408                             var clPage = clPages.shift(); 
    409                             iframe.src = clPage; 
     423                            iframe.src = clPages.shift(); 
    410424                        }else{ 
    411425                            finish(iframe);