Ignore:
Timestamp:
2003-06-24T12:28:40+12:00 (21 years ago)
Author:
sjboddie
Message:

No longer show search page (or search form on "about" page) if a collection
doesn't have at least one searchable index. Note that this change includes
the addition of an is_searchable() function to the protocol.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/recpt/documentaction.cpp

    r4740 r4774  
    246246// set_widthtspace calculates how wide the spaces in the nav bar should
    247247// be and sets the appropriate macro
    248 void documentaction::set_spacemacro (displayclass &disp, FilterResponse_t &response) {
     248void documentaction::set_spacemacro (displayclass &disp, FilterResponse_t &response,
     249                     bool has_search_button) {
    249250
    250251  text_t width;
     
    258259  twidth = width.getint();
    259260     
    260   disp.expandstring ("query", "_searchwidth_", width);
    261   iwidth += width.getint();
    262  
    263  
     261  if (has_search_button) {
     262    disp.expandstring ("query", "_searchwidth_", width);
     263    iwidth += width.getint();
     264  } else {
     265    numc -= 1;
     266  }
    264267 
    265268  while (dochere != docend) {
     
    283286// reponse contains 1 metadata field (Title)
    284287void documentaction::set_navbarmacros (displayclass &disp, FilterResponse_t &response,
    285                        cgiargsclass &args) {
     288                       bool has_search_button, cgiargsclass &args) {
    286289
    287290  text_t topparent;
     
    295298
    296299  navigationbar += "<nobr>\n";
    297   if (args["a"] == "q") {
    298     navigationbar += "_icontabsearchgreen_";
    299   } else {
    300     navigationbar += "_imagesearch_";
    301   }
    302  
    303  
    304   if (numc == 0) navigationbar += "_imagespacer_";
    305    
     300  if (has_search_button) {
     301    if (args["a"] == "q") {
     302      navigationbar += "_icontabsearchgreen_";
     303    } else {
     304      navigationbar += "_imagesearch_";
     305    }
     306  }
     307 
     308  if (has_search_button || numc == 0) navigationbar += "_imagespacer_";
     309 
     310  bool first = true;
    306311  while (dochere != docend) {
     312
     313    if (!first) navigationbar += "_imagespacer_";
     314
    307315    text_t title = (*dochere).metadata["Title"].values[0];
    308316
     
    318326    // if we're inside a document all the classification buttons should be enabled
    319327    if (arg_d.empty() && ((*dochere).OID == topparent)) {
    320       if (unknown) navigationbar += "_imagespacer_&nbsp;" + title + "&nbsp;";
    321       else navigationbar += "_imagespacer__icontab" + title + "green_";
     328      if (unknown) navigationbar += "&nbsp;" + title + "&nbsp;";
     329      else navigationbar += "_icontab" + title + "green_";
    322330    } else {
    323331
    324332      // set the _httpbrowseXXX_ macro for this classification
    325       if (unknown) navigationbar += "_imagespacer_&nbsp;<a href=\"_httpdocument_&cl=" +
     333      if (unknown) navigationbar += "&nbsp;<a href=\"_httpdocument_&cl=" +
    326334             (*dochere).OID + "\">" + title + "</a>&nbsp;";
    327335      else {
    328         navigationbar += "_imagespacer__image" + title + "_";
     336        navigationbar += "_image" + title + "_";
    329337        disp.setmacro ("httpbrowse" + title, "Global", "_httpdocument_&cl=" + (*dochere).OID);
    330338      }
    331339    }
    332340    dochere ++;
     341    first = false;
    333342  }
    334343  navigationbar += "\n</nobr>\n";
     
    431440    get_children ("", collection, metadata, getParents, collectproto, response, logout);
    432441   
     442    bool has_search_button = true;
     443    collectproto->is_searchable(collection, has_search_button, err, logout);
     444    if (err != noError) has_search_button = true;
     445
    433446    // calculate width of spacers and set _widthtspace_ macro
    434     if (args.getintarg("v") == 0) set_spacemacro (disp, response);
     447    if (args.getintarg("v") == 0) set_spacemacro (disp, response, has_search_button);
    435448
    436449    // set _navigationbar_ macro
    437     set_navbarmacros (disp, response, args);
     450    set_navbarmacros (disp, response, has_search_button, args);
    438451   
    439452      }
     
    443456         << get_comerror_string (err);
    444457    }
    445  
    446  
    447458  }
    448459  text_tmap::iterator usability = cinfo.format.find("Usability");
Note: See TracChangeset for help on using the changeset viewer.