Software Freedom Law Center

Changeset 61

Show
Ignore:
Timestamp:
03/20/08 14:16:38 (8 months ago)
Author:
bkuhn
Message:

r66@hughes: bkuhn | 2008-03-20 14:15:58 -0400

  • Merged with trac upstream r6731 via:

svk smerge /loblaw/local/branches/trac.upstream-r6731 .

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/trac/trac/admin/console.py

    r57 r61  
    11741174                source = os.path.normpath(root) 
    11751175                print '   ', source 
    1176                 dest = os.path.join(target, key) 
    1177                 copytree(source, dest
    1178          
     1176                if os.path.exists(source): 
     1177                    dest = os.path.join(target, key
     1178                    copytree(source, dest) 
    11791179 
    11801180 
  • trunk/trac/trac/htdocs/js/keyboard_nav.js

    r57 r61  
    11(function($){ 
    22  var SELECTED_FILE_ELEM = null; 
     3  var ENABLE_KEY_NAV = true; 
    34 
    45  $(document).keydown(function(event) { 
     6    if (!ENABLE_KEY_NAV) 
     7      return true; 
    58    var selection = SELECTED_FILE_ELEM; 
    69    switch (event.keyCode) { 
     
    4649    return false; 
    4750  }); 
     51 
     52  $(function() { 
     53    $('a,input,select,textarea,button') 
     54      .focus(function(event) { 
     55        ENABLE_KEY_NAV = false; 
     56      }) 
     57      .blur(function(event) { 
     58        ENABLE_KEY_NAV = true; 
     59      }); 
     60  }); 
    4861})(jQuery); 
  • trunk/trac/trac/templates/layout.html

    r57 r61  
    2929  </head></py:match> 
    3030 
    31   <div py:def="navigation(category)" id="${category}" class="nav"> 
    32     <ul py:if="chrome.nav[category]"> 
    33       <li py:for="idx, item in  enumerate(chrome.nav[category])" 
    34           class="${classes(first_last(idx, chrome.nav[category]), active=item.active)}">${item.label}</li> 
    35     </ul> 
    36   </div> 
    37    
    3831  <py:match path="body" once="true"><body> 
    3932    ${select('*|text()')} 
    40      
    41       <script type="text/javascript" py:if="chrome.late_links"> 
    42         <py:for each="link in chrome.late_links.get('stylesheet')"> 
    43           jQuery.loadStyleSheet("${link.href}", "${link.title}"); 
    44         </py:for> 
    45       </script> 
    46       <script py:for="script in chrome.late_scripts" 
    47               type="${script.type}" src="${script.href}"></script> 
    4833 
    49       <div id="altlinks" py:if="'alternate' in chrome.links"> 
    50         <h3>Download in other formats:</h3> 
    51         <ul> 
    52           <li py:for="idx, link in enumerate(chrome.links.alternate)" 
    53               class="${first_last(idx, chrome.links.alternate)}"> 
    54             <a rel="nofollow" href="${link.href}" class="${link['class']}" 
    55                py:content="link.title" /> 
    56           </li> 
    57         </ul> 
    58       </div> 
    59     </body></py:match> 
    60      
     34    <script type="text/javascript" py:if="chrome.late_links"> 
     35      <py:for each="link in chrome.late_links.get('stylesheet')"> 
     36        jQuery.loadStyleSheet("${link.href}", "${link.title}"); 
     37      </py:for> 
     38    </script> 
     39    <script py:for="script in chrome.late_scripts" 
     40            type="${script.type}" src="${script.href}"></script> 
     41 
     42    <div id="altlinks" py:if="'alternate' in chrome.links"> 
     43      <h3>Download in other formats:</h3> 
     44      <ul> 
     45        <li py:for="idx, link in enumerate(chrome.links.alternate)" 
     46            class="${first_last(idx, chrome.links.alternate)}"> 
     47          <a rel="nofollow" href="${link.href}" class="${link['class']}" 
     48             py:content="link.title" /> 
     49        </li> 
     50      </ul> 
     51    </div> 
     52  </body></py:match> 
     53 
    6154  <xi:include href="$chrome.theme"><xi:fallback /></xi:include> 
    6255  <xi:include href="site.html"><xi:fallback /></xi:include> 
    63  
    6456</html> 
  • trunk/trac/trac/templates/theme.html

    r57 r61  
    66      xmlns:py="http://genshi.edgewall.org/" 
    77      py:strip=""> 
    8   <py:match path="body" once="true"><body> 
     8 
     9  <div py:def="navigation(category)" id="${category}" class="nav"> 
     10    <ul py:if="chrome.nav[category]"> 
     11      <li py:for="idx, item in  enumerate(chrome.nav[category])" 
     12          class="${classes(first_last(idx, chrome.nav[category]), active=item.active)}">${item.label}</li> 
     13    </ul> 
     14  </div> 
     15 
     16  <py:match path="body" once="true" buffer="false"><body> 
    917    <div id="banner"> 
    1018      <div id="header" py:choose=""> 
  • trunk/trac/trac/ticket/admin.py

    r57 r61  
    2424 
    2525 
    26 class TicketAdminPage(Component): 
     26class TicketAdminPanel(Component): 
    2727 
    2828    implements(IAdminPanelProvider) 
     
    4545 
    4646 
    47 class ComponentAdminPage(TicketAdminPage): 
     47class ComponentAdminPanel(TicketAdminPanel): 
    4848 
    4949    _type = 'components' 
    5050    _label = ('Component', 'Components') 
    5151 
    52     # TicketAdminPage methods 
     52    # TicketAdminPanel methods 
    5353 
    5454    def _render_admin_panel(self, req, cat, page, component): 
     
    122122 
    123123 
    124 class MilestoneAdminPage(TicketAdminPage): 
     124class MilestoneAdminPanel(TicketAdminPanel): 
    125125 
    126126    _type = 'milestones' 
    127127    _label = ('Milestone', 'Milestones') 
    128128 
    129     # TicketAdminPage methods 
     129    # TicketAdminPanel methods 
    130130 
    131131    def _render_admin_panel(self, req, cat, page, milestone): 
     
    204204 
    205205 
    206 class VersionAdminPage(TicketAdminPage): 
     206class VersionAdminPanel(TicketAdminPanel): 
    207207 
    208208    _type = 'versions' 
    209209    _label = ('Version', 'Versions') 
    210210 
    211     # TicketAdminPage methods 
     211    # TicketAdminPanel methods 
    212212 
    213213    def _render_admin_panel(self, req, cat, page, version): 
     
    276276 
    277277 
    278 class AbstractEnumAdminPage(TicketAdminPage): 
     278class AbstractEnumAdminPanel(TicketAdminPanel): 
    279279    implements(IAdminPanelProvider) 
    280280    abstract = True 
     
    284284    _label = ('(Undefined)', '(Undefined)') 
    285285 
    286     # TicketAdminPage methods 
     286    # TicketAdminPanel methods 
    287287 
    288288    def _render_admin_panel(self, req, cat, page, path_info): 
     
    362362 
    363363 
    364 class PriorityAdminPage(AbstractEnumAdminPage): 
     364class PriorityAdminPanel(AbstractEnumAdminPanel): 
    365365    _type = 'priority' 
    366366    _enum_cls = model.Priority 
     
    368368 
    369369 
    370 class ResolutionAdminPage(AbstractEnumAdminPage): 
     370class ResolutionAdminPanel(AbstractEnumAdminPanel): 
    371371    _type = 'resolution' 
    372372    _enum_cls = model.Resolution 
     
    374374 
    375375 
    376 class SeverityAdminPage(AbstractEnumAdminPage): 
     376class SeverityAdminPanel(AbstractEnumAdminPanel): 
    377377    _type = 'severity' 
    378378    _enum_cls = model.Severity 
     
    380380 
    381381 
    382 class TicketTypeAdminPage(AbstractEnumAdminPage): 
     382class TicketTypeAdminPanel(AbstractEnumAdminPanel): 
    383383    _type = 'type' 
    384384    _enum_cls = model.Type 
  • trunk/trac/trac/ticket/templates/milestone_view.html

    r46 r61  
    5555          <table summary="Shows the milestone completion status grouped by ${grouped_by}"> 
    5656            <tr py:for="group in groups"> 
    57               <th scope="row"><a href="${group.stats_href}">${group.name}</a></th> 
     57              <th scope="row" py:choose=""> 
     58                <i py:when="not group.name"><a href="${group.stats_href}">(none)</a></i> 
     59                <a py:otherwise="" href="${group.stats_href}">${group.name}</a> 
     60              </th> 
    5861              <td> 
    5962                ${progress_bar(group.stats, group.interval_hrefs, 
  • trunk/trac/trac/versioncontrol/web_ui/browser.py

    r57 r61  
    386386                            href=req.href.browser(node.created_path,  
    387387                                                  rev=node.rev, 
    388                                                   annotate=1)) 
     388                                                  annotate='blame')) 
    389389        add_ctxtnav(req, _('Revision Log'),  
    390390                    href=req.href.log(path, rev=rev)) 
     
    528528            if 'annotate' in req.args: 
    529529                force_source = True 
    530                 annotations.insert(0, 'blame'
     530                annotations.insert(0, req.args['annotate']
    531531            preview_data = mimeview.preview_data(context, node.get_content(), 
    532532                                                 node.get_content_length(), 
  • trunk/trac/trac/web/chrome.py

    r57 r61  
    334334                fileobj.write("""<html xmlns="http://www.w3.org/1999/xhtml" 
    335335      xmlns:py="http://genshi.edgewall.org/" py:strip=""> 
    336   <!-- Custom match templates go here --> 
     336  <!--! Custom match templates go here --> 
    337337</html>""") 
    338338            finally: 
  • trunk/trac/trac/web/main.py

    r57 r61  
    533533            req.display(template) 
    534534 
    535         markuptemplate = TemplateLoader(loadpaths).load(template) 
    536         stream = markuptemplate.generate(**data) 
     535        loader = TemplateLoader(loadpaths, variable_lookup='lenient') 
     536        tmpl = loader.load(template) 
     537        stream = tmpl.generate(**data) 
    537538        output = stream.render('xhtml', doctype=DocType.XHTML_STRICT) 
    538539        req.send(output, 'text/html') 
  • trunk/trac/trac/web/standalone.py

    r57 r61  
    153153    parser.add_option('--base-path', action='store', type='string', # XXX call this url_base_path? 
    154154                      dest='base_path', 
    155                       help='base path') 
     155                      help='the initial portion of the request URL\'s "path"') 
    156156 
    157157    parser.add_option('-r', '--auto-reload', action='store_true', 

SFLC Main Page

[frdm] Support SFLC