Edgewall Software

Ticket #1269: quickjump+missing.diff

File quickjump+missing.diff, 4.0 KB (added by athomas, 2 years ago)

As above plus add missing class to milestone and reports

  • htdocs/css/search.css

     
    99#results dd { font-size: 80%; margin: 0; padding: 0 } 
    1010#results .author, #results .date, #results .keywords { color: #090 } 
    1111 
     12#quickjump { margin: 2em; font-style: italic } 
     13 
    1214#paging { margin: 0 0 2em; text-align: center } 
  • trac/ticket/report.py

     
    490490        if intertrac: 
    491491            return intertrac 
    492492        report, args, fragment = formatter.split_link(target) 
     493        db = self.env.get_db_cnx() 
     494        cursor = db.cursor() 
     495        cursor.execute('SELECT id FROM report WHERE id=%s', (report,)) 
     496        exists = bool(cursor.fetchone()) 
     497        class_ = 'report' 
     498        if not exists: 
     499            class_ += ' missing' 
     500            label += '?' 
    493501        return html.A(href=formatter.href.report(report) + args, 
    494                       class_='report')[label] 
     502                      class_=class_)[label] 
  • trac/ticket/roadmap.py

     
    518518        yield ('milestone', self._format_link) 
    519519 
    520520    def _format_link(self, formatter, ns, name, label): 
     521        class_ = 'milestone' 
     522        try: 
     523            Milestone(self.env, name) 
     524        except TracError: 
     525            class_ += ' missing' 
     526            label += '?' 
    521527        return html.A(href=formatter.href.milestone(name), 
    522                       class_='milestone')[label] 
     528                      class_=class_)[label] 
  • trac/Search.py

     
    163163        query = req.args.get('q') 
    164164        if query: 
    165165            page = int(req.args.get('page', '1')) 
     166            quickjump = int(req.args.get('quickjump', '0')) 
    166167            redir = self.quickjump(req, query) 
    167             if redir: 
    168                 req.redirect(redir) 
     168            if redir is not None: 
     169                if quickjump: 
     170                    req.redirect(redir.attr['href']) 
     171                else: 
     172                    req.hdf['search.quickjump'] = redir 
    169173            elif query.startswith('!'): 
    170174                query = query[1:] 
    171175            terms = search_terms(query) 
     
    218222            return req.href.browser(kwd) 
    219223        link = wiki_to_link(kwd, self.env, req) 
    220224        if isinstance(link, Element): 
    221             return link.attr['href'] 
     225            return link 
    222226 
    223227    # IWikiSyntaxProvider methods 
    224228     
  • templates/header.cs

     
    4545  <input type="hidden" name="wiki" value="on" /> 
    4646  <input type="hidden" name="changeset" value="on" /> 
    4747  <input type="hidden" name="ticket" value="on" /> 
     48  <input type="hidden" name="quickjump" value="1" /> 
    4849 </div><?cs /if ?> 
    4950</form> 
    5051 
  • templates/search.cs

     
    4646   var:(search.page-1) * search.page_size + len(search.result) ?>  
    4747   of <?cs var:search.n_hits?>)<?cs 
    4848  /if ?></h2> 
     49  <?cs if:search.quickjump ?> 
     50   <div id="quickjump">Quickjump to <?cs var:search.quickjump ?></div> 
     51  <?cs /if ?> 
    4952 <div id="searchable"> 
    5053  <dl id="results"><?cs 
    5154   each item=search.result ?> 
     
    8285 /if ?><?cs 
    8386 
    8487elif:search.q ?> 
    85  <div id="notfound">No matches found.</div><?cs 
     88 <?cs if:search.quickjump ?> 
     89  <div id="quickjump">Quickjump to <?cs var:search.quickjump ?></div> 
     90 <?cs else ?> 
     91  <div id="notfound">No matches found.</div> 
     92 <?cs /if ?><?cs 
    8693/if ?> 
    8794 
    8895<div id="help">