Changeset 26751


Ignore:
Timestamp:
2013-01-18T20:25:55+13:00 (9 years ago)
Author:
davidb
Message:

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

File:
1 edited

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);
Note: See TracChangeset for help on using the changeset viewer.