Changeset 1262

Show
Ignore:
Timestamp:
09/10/06 12:15:14 (2 years ago)
Author:
Blackhex
Message:

DiscussionPlugin:

  • Some changes in CSS.
  • Partial bug #704 fix.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • discussionplugin/0.10/tracdiscussion/htdocs/css/discussion.css

    r1102 r1262  
    101101 
    102102/* Message list reply tree */ 
    103 .message-list div.replies div.body 
    104 { 
    105   margin: 0.2em; 
    106 } 
    107  
    108103.message-list div.replies 
    109104{ 
     
    139134{ 
    140135  float: right; 
    141   margin: 0em; 
    142   padding: 0em 1em 0em 1em; 
     136  padding: 0.5em; 
     137  padding-right: 2.5em; 
    143138} 
    144139 
     
    163158.message-list div.id 
    164159{ 
    165   padding: 0.2em 0.0em; 
     160  padding: 0.5em; 
     161  padding-right: 2.5em; 
    166162  text-align: right; 
    167163} 
     
    170166{ 
    171167  margin: 0em; 
     168  margin-right: 2em; 
    172169  padding: 0em 1em; 
    173170  border: 1px solid #d7d7d7; 
  • discussionplugin/0.10/tracdiscussion/templates/message-list.cs

    r1102 r1262  
    2626         Reply: 
    2727      </legend> 
    28       <form method="get" action="<?cs var:discussion.href ?>#preview"> 
     28      <form method="post" action="<?cs var:discussion.href ?>#preview"> 
    2929        <div class="field"> 
    3030          <label for="author">Author:</label><br/> 
     
    4747          <input type="hidden" name="message" value="<?cs var:args.message ?>"/> 
    4848        <?cs /if ?> 
     49        <input type="hidden" name="redirect" value="1"/> 
    4950        <input type="hidden" name="discussion_action" value="post-add"/> 
    5051      </form> 
     
    5960      Edit: 
    6061    </legend> 
    61     <form method="get" action="<?cs var:discussion.href ?>#preview"> 
     62    <form method="post" action="<?cs var:discussion.href ?>#preview"> 
    6263      <?cs if:!args.message ?> 
    6364        <div class="field"> 
     
    7879        <input type="hidden" name="message" value="<?cs var:args.message ?>"/> 
    7980      <?cs /if ?> 
     81      <input type="hidden" name="redirect" value="1"/> 
    8082      <input type="hidden" name="discussion_action" value="post-edit"/> 
    8183    </form> 
     
    224226<?cs if:trac.acl.DISCUSSION_MODERATE && discussion.is_moderator ?> 
    225227  <div class="buttons"> 
    226     <form method="get" action="<?cs var:discussion.href ?>"> 
     228    <form method="post" action="<?cs var:discussion.href ?>"> 
    227229      <input type="submit" name="deletetopic" value="Delete Topic" onclick="return confirm('Do you realy want to delete this topic?')"/> 
    228230      <input type="hidden" name="discussion_action" value="delete"/> 
    229231    </form> 
    230232    <?cs if:!discussion.no_navigation ?> 
    231       <form method="get" action="<?cs var:discussion.href ?>"> 
     233      <form method="post" action="<?cs var:discussion.href ?>"> 
    232234        <input type="submit" name="movetopic" value="Move Topic"/> 
    233235        <input type="hidden" name="discussion_action" value="move"/> 
  • discussionplugin/0.10/tracdiscussion/wiki.py

    r1252 r1262  
    33from trac.core import * 
    44from trac.wiki import IWikiSyntaxProvider, IWikiMacroProvider 
     5from trac.web.main import IRequestHandler, IRequestFilter 
    56from trac.web.chrome import add_stylesheet 
    67from trac.util import format_datetime 
    78from trac.util.html import html 
    8 import time 
     9import time, re 
    910 
    1011view_topic_doc = """Displays content of discussion topic. If no argument passed 
     
    1718        referencing. 
    1819    """ 
    19     implements(IWikiSyntaxProvider, IWikiMacroProvider
     20    implements(IWikiSyntaxProvider, IWikiMacroProvider, IRequestFilter
    2021 
    21     # IWikiSyntaxProvider 
     22    # IWikiSyntaxProvider methods 
    2223    def get_link_resolvers(self): 
    2324        yield ('forum', self._discussion_link) 
     
    2829        return [] 
    2930 
    30     # IWikiMacroProvider 
     31    # IWikiMacroProvider methods 
    3132    def get_macros(self): 
    3233        yield 'ViewTopic' 
     
    5556            self.log.debug('topic: %s' % (topic,)) 
    5657 
    57             # Retrun macro content 
     58            # Return macro content 
    5859            if topic: 
    5960                req.hdf['discussion.no_navigation'] = True 
     
    7071            raise TracError('Not implemented macro %s' % (name)) 
    7172 
    72     # Core code 
     73    # IRequestFilter methods 
     74    def pre_process_request(self, req, handler): 
     75        match = re.match(r'^/wiki(?:/(.*))?', req.path_info) 
     76        action = req.args.get('discussion_action') 
     77        redirect = req.args.get('redirect', '0') 
     78        if match and action in ('post-add', 'post-edit', 'delete') \ 
     79          and redirect == '1': 
     80            return self 
     81        else: 
     82            return handler 
     83 
     84    def post_process_request(self, req, template, content_type): 
     85        return (template, content_type) 
     86 
     87    # IRequestHandler methods 
     88    def match_request(self, req): 
     89        match = re.match(r'^/wiki(?:/(.*))?', req.path_info) 
     90        return match 
     91 
     92    def process_request(self, req): 
     93        # Determine topic subject 
     94        subject = req.path_info[6:] or 'WikiStart' 
     95 
     96        # Get database access 
     97        db = self.env.get_db_cnx() 
     98        cursor = db.cursor() 
     99 
     100        # Get topic by subject 
     101        api = DiscussionApi(self, req) 
     102        topic = api.get_topic_by_subject(cursor, subject) 
     103        self.log.debug('topic: %s' % (topic,)) 
     104 
     105        # Return macro content 
     106        if topic: 
     107            req.hdf['discussion.no_navigation'] = True 
     108            req.args['component'] = 'wiki' 
     109            req.args['forum'] = str(topic['forum']) 
     110            req.args['topic'] = str(topic['id']) 
     111            template, type = api.render_discussion(req, cursor) 
     112            db.commit() 
     113 
     114        # Redirect to wiki page 
     115        req.args['redirect'] = '0' 
     116        req.redirect(req.href.wiki(**dict(req.args.items()))) 
     117 
     118    # Core code methods 
    73119    def _discussion_link(self, formatter, ns, params, label): 
    74120        id = params