Ignore:
Timestamp:
2023-01-29T17:24:20+13:00 (15 months ago)
Author:
davidb
Message:

Support added in for optional cgi param 'dv' specifying the file-level document-version history (_fldv_history) folder to use

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/perllib/cgiactions/metadataaction.pm

    r33311 r37207  
    2929
    3030use cgiactions::baseaction;
     31use cgiactions::metadataactioncommon;
    3132
    3233use dbutil;
     
    3435
    3536use JSON;
     37
     38# convenient to have shorter version around
     39my $FLDV_HISTORY_DIR = $metadataactioncommon::FLDV_HISTORY_DIR;
    3640
    3741# This class is conditionally expanded with set-metadata, remove-metadata and insert-metadata subroutines
     
    6973    # unused and untested
    7074    # when DocEdit=1, need to retrieve a doc's full text (or doc section's full text) from archives
    71     "get-archives-text" => {
    72     'compulsory-args' => [ "d" ] },
    73     #'compulsory-args' => [ "d" ],
    74     #'optional-args' => [ "section" ] },
     75        "get-archives-text" => {
     76            'compulsory-args' => [ "d" ],
     77            'optional-args'   => [ "dv" ] },
     78            #'compulsory-args' => [ "d" ],
     79            #'optional-args' => [ "section" ] },
    7580   
    7681    #GET METHODS
     
    8186    "get-archives-metadata" => {
    8287        'compulsory-args' => [ "d", "metaname" ],
    83         'optional-args'   => [ "metapos" ] },
     88        'optional-args'   => [ "dv", "metapos" ] },
    8489   
    8590    "get-index-metadata" => {
     
    152157    my $collect   = $self->{'collect'};
    153158    my $gsdl_cgi  = $self->{'gsdl_cgi'};
    154     my $gsdlhome  = $self->{'gsdlhome'};
     159    #my $gsdlhome  = $self->{'gsdlhome'};
    155160    my $infodbtype = $self->{'infodbtype'};
    156161   
    157162    # live metadata gets/saves value scoped (prefixed) by the current usename
    158163    # so (for now) let's not bother to enforce authentication
    159 
     164   
    160165    # Obtain the collect dir
    161     my $site = $self->{'site'};
    162     my $collect_dir = $gsdl_cgi->get_collection_dir($site);
     166    my $site = $self->{'site'};
     167    my $collect_dir = $gsdl_cgi->get_collection_dir($site);
    163168    ## my $collect_dir = &util::filename_cat($gsdlhome, "collect");
    164169
     
    398403        my $doc_rec = &dbutil::read_infodb_entry($infodbtype, $arcinfo_doc_filename, $docid);
    399404        # This now stores the full pathname
    400         my $doc_filename = $doc_rec->{'doc-file'}->[0];
    401         $doc_filename = &util::filename_cat($archive_dir, $doc_filename);
     405        my $doc_file = $doc_rec->{'doc-file'}->[0];
     406
     407        # check if request if for file-level doc-version history 'nminus-<n>' version
     408        my $dv = $self->{'dv'};
     409        if (defined $dv && ($dv ne "")) {
     410        # Need to insert '_fldv_history/nminus-<n>' into doc_filename
     411       
     412        my ($doc_tailname, $doc_dirname) = File::Basename::fileparse($doc_file);
     413        $doc_file = &util::filename_cat($doc_dirname,$FLDV_HISTORY_DIR,$dv,$doc_tailname);
     414        }
     415       
     416        my $doc_filename = &util::filename_cat($archive_dir, $doc_file);
    402417
    403418        if($first_rec) {
     
    688703    my $collect   = $self->{'collect'};
    689704    my $gsdl_cgi  = $self->{'gsdl_cgi'};
    690     my $gsdlhome  = $self->{'gsdlhome'};
     705    #my $gsdlhome  = $self->{'gsdlhome'};
    691706
    692707    # Obtain the collect dir
     
    736751    my $collect   = $self->{'collect'};
    737752    my $gsdl_cgi  = $self->{'gsdl_cgi'};
    738     my $gsdlhome  = $self->{'gsdlhome'};
     753    #my $gsdlhome  = $self->{'gsdlhome'};
    739754
    740755    # Obtain the collect dir
     
    873888    my $collect   = $self->{'collect'};
    874889    my $gsdl_cgi  = $self->{'gsdl_cgi'};
    875 #   my $gsdlhome  = $self->{'gsdlhome'};
    876890    my $infodbtype = $self->{'infodbtype'};
    877891
     
    894908
    895909    # This now stores the full pathname
    896     my $doc_filename = $doc_rec->{'doc-file'}->[0];
    897 
    898     $gsdl_cgi->generate_ok_message($self->get_metadata_from_archive_xml($gsdl_cgi, &util::filename_cat($archive_dir, $doc_filename), $metaname, $metapos, $docid_secnum));
     910    my $doc_file = $doc_rec->{'doc-file'}->[0];
     911
     912    # check if request if for file-level doc-version history 'nminus-<n>' version
     913    my $dv = $self->{'dv'};
     914    if (defined $dv && ($dv ne "")) {
     915        # Need to insert '_fldv_history/nminus-<n>' into doc_filename
     916       
     917        my ($doc_tailname, $doc_dirname) = File::Basename::fileparse($doc_file);
     918        $doc_file = &util::filename_cat($doc_dirname,$FLDV_HISTORY_DIR,$dv,$doc_tailname);
     919    }
     920
     921    my $doc_filename = &util::filename_cat($archive_dir, $doc_file);
     922       
     923    $gsdl_cgi->generate_ok_message($self->get_metadata_from_archive_xml($gsdl_cgi, $doc_filename, $metaname, $metapos, $docid_secnum));
    899924
    900925}
     
    908933    my $collect   = $self->{'collect'};
    909934    my $gsdl_cgi  = $self->{'gsdl_cgi'};
    910 #   my $gsdlhome  = $self->{'gsdlhome'};
    911935    my $infodbtype = $self->{'infodbtype'};
    912936
     
    925949
    926950    # This now stores the full pathname
    927     my $doc_filename = $doc_rec->{'doc-file'}->[0];
    928    
     951    my $doc_file = $doc_rec->{'doc-file'}->[0];
     952
     953    # check if request if for file-level doc-version history 'nminus-<n>' version
     954    my $dv = $self->{'dv'};
     955    if (defined $dv && ($dv ne "")) {
     956        # Need to insert '_fldv_history/nminus-<n>' into doc_filename
     957       
     958        my ($doc_tailname, $doc_dirname) = File::Basename::fileparse($doc_file);
     959        $doc_file = &util::filename_cat($doc_dirname,$FLDV_HISTORY_DIR,$dv,$doc_tailname);
     960    }
     961   
     962    my $doc_filename = &util::filename_cat($archive_dir, $doc_file);
     963       
    929964    my $metaname = undef;
    930965    my $metapos = -1;
    931966   
    932     $gsdl_cgi->generate_ok_message($self->get_metadata_from_archive_xml($gsdl_cgi, &util::filename_cat($archive_dir, $doc_filename), $metaname, $metapos, $docid_secnum));
     967    $gsdl_cgi->generate_ok_message($self->get_metadata_from_archive_xml($gsdl_cgi, $doc_filename, $metaname, $metapos, $docid_secnum));
    933968
    934969}
Note: See TracChangeset for help on using the changeset viewer.