Changeset 1262
- Timestamp:
- 09/10/06 12:15:14 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
discussionplugin/0.10/tracdiscussion/htdocs/css/discussion.css
r1102 r1262 101 101 102 102 /* Message list reply tree */ 103 .message-list div.replies div.body104 {105 margin: 0.2em;106 }107 108 103 .message-list div.replies 109 104 { … … 139 134 { 140 135 float: right; 141 margin: 0em;142 padding : 0em 1em 0em 1em;136 padding: 0.5em; 137 padding-right: 2.5em; 143 138 } 144 139 … … 163 158 .message-list div.id 164 159 { 165 padding: 0.2em 0.0em; 160 padding: 0.5em; 161 padding-right: 2.5em; 166 162 text-align: right; 167 163 } … … 170 166 { 171 167 margin: 0em; 168 margin-right: 2em; 172 169 padding: 0em 1em; 173 170 border: 1px solid #d7d7d7; discussionplugin/0.10/tracdiscussion/templates/message-list.cs
r1102 r1262 26 26 Reply: 27 27 </legend> 28 <form method=" get" action="<?cs var:discussion.href ?>#preview">28 <form method="post" action="<?cs var:discussion.href ?>#preview"> 29 29 <div class="field"> 30 30 <label for="author">Author:</label><br/> … … 47 47 <input type="hidden" name="message" value="<?cs var:args.message ?>"/> 48 48 <?cs /if ?> 49 <input type="hidden" name="redirect" value="1"/> 49 50 <input type="hidden" name="discussion_action" value="post-add"/> 50 51 </form> … … 59 60 Edit: 60 61 </legend> 61 <form method=" get" action="<?cs var:discussion.href ?>#preview">62 <form method="post" action="<?cs var:discussion.href ?>#preview"> 62 63 <?cs if:!args.message ?> 63 64 <div class="field"> … … 78 79 <input type="hidden" name="message" value="<?cs var:args.message ?>"/> 79 80 <?cs /if ?> 81 <input type="hidden" name="redirect" value="1"/> 80 82 <input type="hidden" name="discussion_action" value="post-edit"/> 81 83 </form> … … 224 226 <?cs if:trac.acl.DISCUSSION_MODERATE && discussion.is_moderator ?> 225 227 <div class="buttons"> 226 <form method=" get" action="<?cs var:discussion.href ?>">228 <form method="post" action="<?cs var:discussion.href ?>"> 227 229 <input type="submit" name="deletetopic" value="Delete Topic" onclick="return confirm('Do you realy want to delete this topic?')"/> 228 230 <input type="hidden" name="discussion_action" value="delete"/> 229 231 </form> 230 232 <?cs if:!discussion.no_navigation ?> 231 <form method=" get" action="<?cs var:discussion.href ?>">233 <form method="post" action="<?cs var:discussion.href ?>"> 232 234 <input type="submit" name="movetopic" value="Move Topic"/> 233 235 <input type="hidden" name="discussion_action" value="move"/> discussionplugin/0.10/tracdiscussion/wiki.py
r1252 r1262 3 3 from trac.core import * 4 4 from trac.wiki import IWikiSyntaxProvider, IWikiMacroProvider 5 from trac.web.main import IRequestHandler, IRequestFilter 5 6 from trac.web.chrome import add_stylesheet 6 7 from trac.util import format_datetime 7 8 from trac.util.html import html 8 import time 9 import time, re 9 10 10 11 view_topic_doc = """Displays content of discussion topic. If no argument passed … … 17 18 referencing. 18 19 """ 19 implements(IWikiSyntaxProvider, IWikiMacroProvider )20 implements(IWikiSyntaxProvider, IWikiMacroProvider, IRequestFilter) 20 21 21 # IWikiSyntaxProvider 22 # IWikiSyntaxProvider methods 22 23 def get_link_resolvers(self): 23 24 yield ('forum', self._discussion_link) … … 28 29 return [] 29 30 30 # IWikiMacroProvider 31 # IWikiMacroProvider methods 31 32 def get_macros(self): 32 33 yield 'ViewTopic' … … 55 56 self.log.debug('topic: %s' % (topic,)) 56 57 57 # Ret run macro content58 # Return macro content 58 59 if topic: 59 60 req.hdf['discussion.no_navigation'] = True … … 70 71 raise TracError('Not implemented macro %s' % (name)) 71 72 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 73 119 def _discussion_link(self, formatter, ns, params, label): 74 120 id = params
