Changeset 2209

Show
Ignore:
Timestamp:
04/28/07 15:02:56 (2 years ago)
Author:
coderanger
Message:

WikiRenamePlugin:

Changes from a long time ago.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • wikirenameplugin/0.11/setup.py

    r1543 r2209  
    66setup( 
    77    name = 'TracWikiRename', 
    8     version = '1.2', 
     8    version = '2.0', 
    99    packages = ['wikirename'], 
    1010    package_data={ 'wikirename' : [ 'templates/*.cs' ] }, 
     
    2525        'trac.plugins': [ 
    2626            'wikirename.web_ui = wikirename.web_ui', 
     27            'wikirename.ctxtnav = wikirename.ctxtnav [ctxtnav]', 
    2728        ], 
    2829        'console_scripts': [ 
     
    3132    }, 
    3233     
    33     install_requires = [ 'TracWebAdmin', 'TracCtxtnavAdd' ], 
     34    #install_requires = [], 
    3435    # Waiting on the extras support patch for this 
    35     #extras_require = { 
    36     #    'ctxtnav' : [ 'CtxtnavAdd' ], 
    37     #} 
     36    extras_require = { 
     37        'ctxtnav' : [ 'TracCtxtnavAdd' ], 
     38    }, 
    3839) 
  • wikirenameplugin/0.11/wikirename/templates/admin_wikirename.html

    r938 r2209  
    1 <h2>Wiki Rename</h2> 
     1<!DOCTYPE html 
     2    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
     3    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
     4<html xmlns="http://www.w3.org/1999/xhtml" 
     5      xmlns:xi="http://www.w3.org/2001/XInclude" 
     6      xmlns:py="http://genshi.edgewall.org/"> 
     7  <xi:include href="admin.html" /> 
     8  <head> 
     9    <title>Wiki Rename</title> 
     10  </head> 
    211 
    3 <form action="" method="post"> 
    4     <fieldset> 
     12  <body> 
     13    <h2>Wiki Rename</h2> 
     14 
     15    <form class="mod" id="modwikirename" action="" method="post"> 
     16      <fieldset> 
    517        <legend>Rename Page</legend> 
    618        <div class="field"> 
    7             <label>Original name:<br /> 
    8                 <input type="text" name="src_page" value="<?cs var:wikirename.src ?>" /> 
    9             </label> 
     19          <label>Original name:<br /> 
     20            <input type="text" name="src_page" value="${src}" /> 
     21          </label> 
    1022        </div> 
    1123        <div class="field"> 
    12             <label>New name:<br /> 
    13                 <input type="text" name="dest_page" value="<?cs var:wikirename.dest ?>" /> 
    14             </label> 
     24          <label>New name:<br /> 
     25            <input type="text" name="dest_page" value="${dest}" /> 
     26          </label> 
    1527        </div> 
    16     </fieldset> 
    17     <div class="buttons"> 
    18         <input type="hidden" name="redirect" value="<?cs var:wikirename.redir ?>" /> 
     28      </fieldset> 
     29      <div class="buttons"> 
     30        <input type="hidden" name="redirect" value="${redir}" /> 
    1931        <input type="submit" name="submit" value="Apply" /> 
    20     </div> 
    21 </form>  
    22  
     32      </div> 
     33    </form>  
     34  </body> 
     35</html> 
  • wikirenameplugin/0.11/wikirename/web_ui.py

    r1543 r2209  
    11from trac.core import * 
    2 from trac.util import Markup 
    32from trac.perm import IPermissionRequestor 
    43from trac.web.chrome import ITemplateProvider 
    5 from webadmin.web_ui import IAdminPageProvider 
     4from trac.admin.web_ui import IAdminPanelProvider 
     5from genshi.core import Markup 
    66 
    77from wikirename.util import rename_page 
     
    99import urllib 
    1010 
    11 _implements = [IPermissionRequestor, IAdminPageProvider, ITemplateProvider] 
    12  
    13 try: 
    14     from ctxtnavadd.api import ICtxtnavAdder 
    15     _implements.append(ICtxtnavAdder) 
    16 except ImportError: 
    17     pass 
    18  
    1911class WikiRenameModule(Component): 
    2012    """An evil module that adds a rename button to the wiki UI.""" 
    2113  
    22     implements(*_implements
     14    implements(IPermissionRequestor, IAdminPanelProvider, ITemplateProvider
    2315     
    24     # ICtxtnavAdder methods 
    25     def match_ctxtnav_add(self, req): 
    26         perm = req.perm.has_permission('WIKI_RENAME') or req.perm.has_permission('WIKI_ADMIN') 
    27         return req.path_info.startswith('/wiki') and perm 
    28          
    29     def get_ctxtnav_adds(self, req): 
    30         page = req.path_info[6:] or 'WikiStart' 
    31         yield (req.href.admin('general','wikirename')+'?redirect=1&src_page='+page,'Rename page') 
    32  
    3316    # IPermissionRequestor methods 
    3417    def get_permission_actions(self): 
    3518        return ['WIKI_RENAME'] 
    3619 
    37     # IAdminPageProvider methods 
    38     def get_admin_pages(self, req): 
     20    # IAdminPanelProvider methods 
     21    def get_admin_panels(self, req): 
    3922        if req.perm.has_permission('WIKI_RENAME') or req.perm.has_permission('WIKI_ADMIN'): 
    4023            yield ('general', 'General', 'wikirename', 'Wiki Rename') 
    4124             
    42     def process_admin_request(self, req, cat, page, path_info): 
    43         src = req.args.get('src_page','') 
    44         dest = req.args.get('dest_page','') 
    45         redir = req.args.get('redirect','') == '1' 
    46          
    47         # Handle escaped chars (#TH672) 
    48         src = urllib.unquote_plus(src) 
    49         dest = urllib.unquote_plus(dest) 
     25    def render_admin_panel(self, req, cat, page, path_info): 
     26        data = { 
     27            'src': urllib.unquote_plus(req.args.get('src_page','')), 
     28            'dest': urllib.unquote_plus(req.args.get('dest_page','')), 
     29            'redir': req.args.get('redirect','') == '1', 
     30        } 
    5031         
    5132        if 'submit' in req.args.keys(): 
    5233            if not src or not dest: 
    5334                raise TracError, "Please provide both the old and new names" 
    54             rename_page(self.env, src, dest, req.authname, req.remote_addr, debug=self.log.debug) 
    55             if redir
     35            rename_page(self.env, data['src'], data['dest'], req.authname, req.remote_addr, debug=self.log.debug) 
     36            if data['redir']
    5637                req.redirect(req.href.wiki(dest)) 
    5738            # Reset for the next display 
    58             src = '' 
    59             dest = '' 
     39            data['src'] = '' 
     40            data['dest'] = '' 
    6041 
    61         req.hdf['wikirename.src'] = src 
    62         req.hdf['wikirename.dest'] = dest 
    63         req.hdf['wikirename.redir'] = redir 
    64         return 'wikirename_admin.cs', None 
     42        return 'admin_wikirename.html', data 
    6543         
    6644