Ignore:
Timestamp:
2013-01-08T14:13:09+13:00 (11 years ago)
Author:
davidb
Message:

The html to expeditee feature will now obtain a matching assocfilepath for each frame and write this value out to the frame as a piece of text.

Location:
gs3-extensions/html-to-expeditee/trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • gs3-extensions/html-to-expeditee/trunk/src/perllib/ExpediteeFrameIO.pm

    r26511 r26596  
    217217{
    218218    my $self = shift @_;
    219     my ($x, $y, $text, $w, $attr) = @_;
    220 
    221     my %attr_copy = %$attr; # make a private copy of 'attr'
    222 
    223     $self->setTextDefaultAttributes(\%attr_copy);
    224     my $items = $self->{'items'};
    225 
    226     $attr_copy{'P'} = "$x $y";
    227     $attr_copy{'T'} = $text;
    228     $attr_copy{'w'} = "-$w" if (defined $w);
    229 
    230     return $self->_addItem("T",\%attr_copy);
     219    my ($x,$y,$text,$w,$attr) = @_;
     220   
     221    my %attr_copy = %$attr; #make a private copy of 'attr'
     222   
     223    $self->setTextDefaultAttributes(\%attr_copy);
     224    my $items = $self->{'items'};
     225   
     226    $attr_copy{'P'} = "$x $y";
     227    $attr_copy{'T'} = $text;
     228    $attr_copy{'w'} = "-$w" if (defined $w);
     229   
     230    return $self->_addItem("T",\%attr_copy);
    231231}
    232232
     
    422422}
    423423
    424 sub saveFrame
    425 {
    426     my $self = shift @_;
    427     my ($file) = @_;
     424sub saveZeroFrame
     425{
     426    my $self = shift @_;
     427    my $file = "0.exp";
    428428
    429429    my $filename = &util::filename_cat($self->{'output_dir'},$file);
    430430
    431431    my $status = undef;
     432
     433    my $username = $self->{'username'};
     434    my $fdate = getFormattedDate();
    432435
    433436    if (open(FOUT,">$filename")) {
    434437    binmode(FOUT,":utf8");
     438   
     439    print FOUT <<EOT;
     440   
     441V 1
     442p 4
     443U $username
     444D $fdate
     445M $username
     446d $fdate
     447Z
     448
     449Z
     450
     451Z
     452
     453Z
     454   
     455EOT
     456
     457    close(FOUT);
     458    $status = 1;
     459    }
     460    else {
     461    print STDERR "ExpediteeFrameIO::saveZeroFrame() Failed to open $filename for output\n";
     462    $status = 0;
     463    }
     464
     465    return $status;
     466}
     467
     468sub writeAssocFilePath
     469{
     470    my $self = shift @_;
     471    my ($assoc) = @_;
     472   
     473    my $x = 318;
     474    my $y = 123;
     475    my $text = "\@assocfilepath: $assoc";
     476   
     477    my $attr = {};
     478   
     479    #add data: gsdl.Metadata: assocfilepath to this piece of text.
     480    $attr->{'D'} = "gsdl.Metadata: assocfilepath";
     481   
     482    $self->addText($x,$y,$text,undef,$attr);
     483}
     484
     485sub saveFrame
     486{
     487    my $self = shift @_;
     488    my ($file,$assoc) = @_;
     489
     490    if ($file eq "1.exp") {
     491        $self->saveZeroFrame();
     492    }
     493
     494    my $filename = &util::filename_cat($self->{'output_dir'},$file);
     495
     496    my $status = undef;
     497
     498    if (open(FOUT,">$filename")) {
     499    binmode(FOUT,":utf8");
     500   
     501
     502    $self->writeAssocFilePath($assoc);                      #write assocfilepath out to frame.
     503   
    435504    $self->writeHeaderSection();
    436505    $self->writeItemsSection();
     
    438507    $self->writeConstraintsSection();
    439508    $self->writeStatisticsSection();
    440 
     509   
     510   
     511   
    441512    close(FOUT);
    442513    $status = 1;
     
    486557        $img_url =~ s/^http:\/\/(.*?)\/greenstone3(.*?)\///;
    487558        if ($img_url =~ m/^interfaces\//) {
    488         $img_url = "images/$img_url";
     559        $img_url = "greenstone3-svn/web/$img_url";
    489560        }
    490561        elsif ($img_url =~ m/^sites\//) {
    491         $img_url =~ s/^sites\/(.*?)\//images\//;
     562#       if ($img_url =~ m/^sites\//) {
     563#       $img_url =~ s/^sites\/(.*?)\//images\//;
     564            $img_url = "greenstone3-svn/web/$img_url";
    492565        }
    493566
     
    546619    #writes frameset name concatenated with last frame number in the set to the frame.inf file.
    547620        my $getFramesetName = $self->{'output_dir'};
    548     print FNOUT "$getFramesetName$last_frame_number\n";
    549 
     621       
    550622   
    551623    close(FNOUT);
  • gs3-extensions/html-to-expeditee/trunk/src/perllib/cgiactions/HtmlToExpediteeAction.pm

    r24938 r26596  
    5050{
    5151    "generate-frame"     => { 'compulsory-args' => [ "fn", "json" ],
    52                   'optional-args'   => [] },
     52                  'optional-args'   => ["assoc"] },
    5353};
    5454
     
    7878
    7979    my $fn = $self->{'fn'};
     80   
     81    my $assoc = $self->{'assoc'};
    8082
    8183    # no need to lock collection (??), the operation is read only
     
    9597    $expeditee_frame_io->buildFrame($exp_frame_tree);
    9698
    97     if ($expeditee_frame_io->saveFrame("$fn.exp")) {
     99    if ($expeditee_frame_io->saveFrame("$fn.exp",$assoc)) {
    98100   
    99101    # write out next free frame num
  • gs3-extensions/html-to-expeditee/trunk/src/src/cgi-bin/html-to-expeditee.pl.in

    r26593 r26596  
    1  #!@FULL_PERL_EXE@ -w
     1 #!/cygdrive/c/strawberry/perl/bin/perl -w
    22
    33# Need to specify the full path of Perl above, e.g. for Windows something like
     
    181181          }
    182182         
    183           url += "&p.showExpediteeAttributes=1";
    184 
     183          //url += "&p.showExpediteeAttributes=1";
     184
     185         
    185186          /* load iframe with document drawn from Greenstone collection */
    186187          iframe.src = url;
     
    228229          */
    229230
     231          //get assocfilepath from xml
     232          var xmlUrl = iframe.src + "&o=xml";
     233         
     234          var assoc = getAssocFilePath(xmlUrl);
     235
    230236          var expFrameTree = htmlToExpeditee(gsContent);
    231237
     
    239245          var params = "c=" + collect;
    240246          if (site.match(/\\w/)) {
    241         params += "&site=" + site;
     247            params += "&site=" + site;
    242248          }
     249         
    243250          params += "&a=generate-frame&fn=" + frameID;
    244251          params += "&json=" + escape(expFrame);
     252         
     253          //add an assocfilepath parameter
     254         
     255          if(assoc !== null && assoc !== undefined){
     256            params += "&assoc=" + assoc;
     257          }
    245258
    246259          var clHtml = urlPostSync(url,params);
    247260
    248261          if (!clHtml.match(/html-to-expeditee saved frame/)) {
    249           alert("Error processing url: " + url);
     262            alert("Error processing url: " + url);
    250263          }
    251264
     
    274287              }
    275288
    276           url += "&p.showExpediteeAttributes=1";
     289          //url += "&p.showExpediteeAttributes=1";
    277290
    278291          iframe.src = url;
     
    288301     
    289302      }
     303     
     304      function getAssocFilePath(xmlUrl){
     305      var assoc = "";
     306     
     307      \$.ajax({
     308            type: "GET",
     309            async: false,
     310            url: xmlUrl,
     311            dataType: "xml",
     312            success: function(xml){
     313               
     314                               
     315                \$(xml).find('metadata').each(function(){
     316                   
     317                    var name = \$(this).attr('name');
     318                   
     319                    if(name === 'assocfilepath'){
     320                        if(assoc === ""){
     321                            assoc = \$(this).text();
     322                            //console.log(assoc);
     323                        }
     324                       
     325                    }   
     326                });
     327               
     328            }
     329           
     330          });
     331         
     332          return assoc;
     333      }
    290334
    291335    </script>
Note: See TracChangeset for help on using the changeset viewer.