Changeset 1077
- Timestamp:
- 08/01/06 19:05:28 (2 years ago)
- Files:
-
- discussionplugin/0.9/tracdiscussion/api.py (modified) (14 diffs)
- discussionplugin/0.9/tracdiscussion/core.py (modified) (1 diff)
- discussionplugin/0.9/tracdiscussion/htdocs/css/discussion.css (modified) (7 diffs)
- discussionplugin/0.9/tracdiscussion/templates/forum-add.cs (modified) (4 diffs)
- discussionplugin/0.9/tracdiscussion/templates/message-list.cs (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
discussionplugin/0.9/tracdiscussion/api.py
r1072 r1077 2 2 from trac.web.chrome import add_stylesheet 3 3 from trac.wiki import wiki_to_html, wiki_to_oneliner 4 from trac.perm import PermissionError 4 5 from trac.util import format_datetime, pretty_timedelta, escape, unescape, \ 5 6 Markup 6 from trac.util import Markup, format_datetime7 7 import time 8 8 … … 127 127 else: 128 128 return ['message-post-add', 'message-list'] 129 elif action == 'edit': 130 return ['message-edit', 'message-list'] 131 elif action == 'post-edit': 132 if preview: 133 return ['message-list'] 134 else: 135 return ['message-post-edit', 'message-list'] 129 136 elif action == 'delete': 130 137 return ['message-delete', 'message-list'] … … 141 148 else: 142 149 return ['message-post-add', 'message-list'] 150 elif action == 'edit': 151 return ['message-edit', 'message-list'] 152 elif action == 'post-edit': 153 if preview: 154 return ['message-list'] 155 else: 156 return ['message-post-edit', 'message-list'] 143 157 elif action == 'delete': 144 158 return ['message-delete', 'message-list'] … … 158 172 else: 159 173 return ['message-post-add', 'message-list'] 174 elif action == 'edit': 175 return ['topic-edit', 'message-list'] 176 elif action == 'post-edit': 177 if preview: 178 return ['message-list'] 179 else: 180 return ['topic-post-edit', 'message-list'] 160 181 elif action == 'delete': 161 182 self.req.hdf['discussion.no_display'] = True … … 173 194 else: 174 195 return ['message-post-add', 'message-list'] 196 elif action == 'edit': 197 return ['topic-edit', 'message-list'] 198 elif action == 'post-edit': 199 if preview: 200 return ['message-list'] 201 else: 202 return ['topic-post-edit', 'message-list'] 175 203 elif action == 'delete': 176 204 return ['topic-delete', 'topic-list'] … … 242 270 for mode in modes: 243 271 self.log.debug('doing %s mode action' % (mode,)) 244 self.log.debug(forum)245 272 if mode == 'group-list': 246 273 self.req.perm.assert_permission('DISCUSSION_VIEW') 274 275 # Display groups. 247 276 self.req.hdf['discussion.groups'] = self.get_groups() 277 248 278 elif mode == 'admin-group-list': 249 279 self.req.perm.assert_permission('DISCUSSION_ADMIN') 280 281 # Display groups. 250 282 if group: 251 283 self.req.hdf['discussion.name'] = group['name'] 252 284 self.req.hdf['discussion.description'] = group['description'] 253 285 self.req.hdf['discussion.groups'] = self.get_groups() 286 254 287 elif mode == 'group-add': 255 288 self.req.perm.assert_permission('DISCUSSION_ADMIN') 289 256 290 elif mode == 'group-post-add': 257 291 self.req.perm.assert_permission('DISCUSSION_ADMIN') 258 name = Markup(self.req.args.get('name')) 259 description = Markup(self.req.args.get('description')) 260 self.add_group(name, description) 292 293 # Get form values. 294 new_name = Markup(self.req.args.get('name')) 295 new_description = Markup(self.req.args.get('description')) 296 297 # Add new group. 298 self.add_group(new_name, new_description) 299 261 300 elif mode == 'group-post-edit': 262 301 self.req.perm.assert_permission('DISCUSSION_ADMIN') 263 group = self.req.args.get('group') 264 name = Markup(self.req.args.get('name')) 265 description = Markup(self.req.args.get('description')) 266 self.edit_group(group, name, description) 302 303 # Get form values. 304 new_group = self.req.args.get('group') 305 new_name = Markup(self.req.args.get('name')) 306 new_description = Markup(self.req.args.get('description')) 307 308 # Edit group. 309 self.edit_group(new_group, new_name, new_description) 310 267 311 elif mode == 'group-delete': 268 312 self.req.perm.assert_permission('DISCUSSION_ADMIN') 313 269 314 elif mode == 'groups-delete': 270 315 self.req.perm.assert_permission('DISCUSSION_ADMIN') 316 317 # Get selected groups. 271 318 selection = self.req.args.get('selection') 272 319 if isinstance(selection, (str, unicode)): 273 320 selection = [selection] 321 322 # Delete selected groups. 274 323 if selection: 275 324 for group in selection: 276 325 self.delete_group(group) 326 277 327 elif mode == 'forum-list': 278 328 self.req.perm.assert_permission('DISCUSSION_VIEW') 329 330 # Display forums. 279 331 self.req.hdf['discussion.groups'] = self.get_groups() 280 332 self.req.hdf['discussion.forums'] = self.get_forums() 333 281 334 elif mode == 'admin-forum-list': 282 335 self.req.perm.assert_permission('DISCUSSION_ADMIN') 336 337 # Display forums. 283 338 if forum: 284 339 self.req.hdf['discussion.name'] = forum['name'] … … 290 345 self.req.hdf['discussion.groups'] = self.get_groups() 291 346 self.req.hdf['discussion.forums'] = self.get_forums() 347 292 348 elif mode == 'forum-add': 293 349 self.req.perm.assert_permission('DISCUSSION_ADMIN') 350 351 # Display Add Forum form. 294 352 self.req.hdf['discussion.users'] = self.get_users() 295 353 self.req.hdf['discussion.groups'] = self.get_groups() 354 296 355 elif mode == 'forum-post-add': 297 356 self.req.perm.assert_permission('DISCUSSION_ADMIN') 357 298 358 # Get form values 299 359 new_name = Markup(self.req.args.get('name')) … … 307 367 if not isinstance(new_moderators, list): 308 368 new_moderators = [new_moderators] 369 309 370 # Perform new forum add. 310 371 self.add_forum(new_name, new_author, new_subject, 311 372 new_description, new_moderators, new_group) 373 312 374 elif mode == 'forum-post-edit': 313 375 self.req.perm.assert_permission('DISCUSSION_ADMIN') 376 314 377 # Get form values. 315 378 new_forum = self.req.args.get('forum') … … 323 386 if not isinstance(new_moderators, list): 324 387 new_moderators = [new_moderators] 388 325 389 # Perform forum edit. 326 390 self.edit_forum(new_forum, new_name, new_subject, 327 391 new_description, new_moderators, new_group) 392 328 393 elif mode == 'forum-delete': 329 394 self.req.perm.assert_permission('DISCUSSION_ADMIN') 395 396 # Delete forum 330 397 self.delete_forum(forum['id']) 398 331 399 elif mode == 'forums-delete': 332 400 self.req.perm.assert_permission('DISCUSSION_ADMIN') 401 402 # Get selected forums. 333 403 selection = self.req.args.get('selection') 334 404 if isinstance(selection, (str, unicode)): 335 405 selection = [selection] 406 407 # Delete selected forums. 336 408 if selection: 337 409 for forum in selection: 338 410 self.delete_forum(forum) 411 339 412 elif mode == 'topic-list': 340 413 self.req.perm.assert_permission('DISCUSSION_VIEW') 414 415 # Display topics. 341 416 self.req.hdf['discussion.topics'] = self.get_topics(forum['id']) 417 342 418 elif mode == 'topic-add': 343 419 self.req.perm.assert_permission('DISCUSSION_APPEND') 344 subject = Markup(self.req.args.get('subject')) 345 author = Markup(self.req.args.get('author')) 346 body = Markup(self.req.args.get('body')) 347 if subject: 420 421 # Get form values. 422 new_subject = Markup(self.req.args.get('subject')) 423 new_author = Markup(self.req.args.get('author')) 424 new_body = Markup(self.req.args.get('body')) 425 426 # Display Add Topic form. 427 if new_subject: 348 428 self.req.hdf['discussion.subject'] = wiki_to_oneliner( 349 subject, self.env)350 if author:351 self.req.hdf['discussion.author'] = wiki_to_oneliner( author,352 self.env)353 if body:354 self.req.hdf['discussion.body'] = wiki_to_html( body,429 new_subject, self.env) 430 if new_author: 431 self.req.hdf['discussion.author'] = wiki_to_oneliner( 432 new_author, self.env) 433 if new_body: 434 self.req.hdf['discussion.body'] = wiki_to_html(new_body, 355 435 self.env, self.req) 436 356 437 elif mode == 'topic-quote': 357 438 self.req.perm.assert_permission('DISCUSSION_APPEND') 439 440 # Prepare old content. 358 441 lines = topic['body'].splitlines() 359 442 for I in xrange(len(lines)): 360 443 lines[I] = '> %s' % (lines[I]) 361 444 self.req.hdf['args.body'] = '\n'.join(lines) 445 362 446 elif mode == 'topic-post-add': 363 447 self.req.perm.assert_permission('DISCUSSION_APPEND') 364 subject = Markup(self.req.args.get('subject')) 365 author = Markup(self.req.args.get('author')) 366 body = Markup(self.req.args.get('body')) 367 self.add_topic(forum['id'], subject, author, body) 448 449 # Get form values. 450 new_subject = Markup(self.req.args.get('subject')) 451 new_author = Markup(self.req.args.get('author')) 452 new_body = Markup(self.req.args.get('body')) 453 454 # Add topic. 455 self.add_topic(forum['id'], new_subject, new_author, new_body) 456 457 elif mode == 'topic-edit': 458 self.req.perm.assert_permission('DISCUSSION_APPEND') 459 if not is_moderator and (topic['author'] != self.req.authname): 460 raise PermissionError('Topic edit') 461 462 # Prepare form values. 463 self.req.hdf['args.body'] = topic['body'] 464 self.req.hdf['args.subject'] = topic['subject'] 465 elif mode == 'topic-post-edit': 466 self.req.perm.assert_permission('DISCUSSION_APPEND') 467 if not is_moderator and (topic['author'] != self.req.authname): 468 raise PermissionError('Topic edit') 469 470 # Get form values. 471 new_subject = Markup(self.req.args.get('subject')) 472 new_body = Markup(self.req.args.get('body')) 473 474 # Edit topic. 475 topic['subject'] = new_subject 476 topic['body'] = new_body 477 self.edit_topic(topic['id'], topic['forum'], new_subject, 478 new_body) 479 368 480 elif mode == 'topic-move': 369 481 self.req.perm.assert_permission('DISCUSSION_MODERATE') 370 482 if not is_moderator: 371 483 raise PermissionError('Forum moderate') 484 485 # Display Move Topic form 372 486 self.req.hdf['discussion.forums'] = self.get_forums() 487 373 488 elif mode == 'topic-post-move': 374 489 self.req.perm.assert_permission('DISCUSSION_MODERATE') 375 490 if not is_moderator: 376 491 raise PermissionError('Forum moderate') 492 493 # Get form values 377 494 new_forum = self.req.args.get('new_forum') 495 496 # Move topic. 378 497 self.set_forum(topic['id'], new_forum) 498 379 499 elif mode == 'topic-delete': 380 500 self.req.perm.assert_permission('DISCUSSION_MODERATE') 381 501 if not is_moderator: 382 502 raise PermissionError('Forum moderate') 503 504 # Delete topic. 383 505 self.delete_topic(topic['id']) 506 384 507 elif mode == 'message-list': 385 508 self.req.perm.assert_permission('DISCUSSION_VIEW') 386 author = Markup(self.req.args.get('author')) 387 body = Markup(self.req.args.get('body')) 388 if author: 389 self.req.hdf['discussion.author'] = wiki_to_oneliner(author, 390 self.env) 391 if body: 392 self.req.hdf['discussion.body'] = wiki_to_html(body, 509 510 # Get form values. 511 new_author = Markup(self.req.args.get('author')) 512 new_subject = Markup(self.req.args.get('subject')) 513 new_body = Markup(self.req.args.get('body')) 514 515 # Display message list. 516 if new_author: 517 self.req.hdf['discussion.author'] = wiki_to_oneliner( 518 new_author, self.env) 519 if new_subject: 520 self.req.hdf['discussion.subject'] = wiki_to_oneliner( 521 new_subject, self.env) 522 if new_body: 523 self.req.hdf['discussion.body'] = wiki_to_html(new_body, 393 524 self.env, self.req) 394 525 self.req.hdf['discussion.messages'] = self.get_messages(topic['id']) 526 395 527 elif mode == 'message-quote': 396 528 self.req.perm.assert_permission('DISCUSSION_APPEND') 529 530 # Prepare old content. 397 531 lines = message['body'].splitlines() 398 532 for I in xrange(len(lines)): 399 533 lines[I] = '> %s' % (lines[I]) 400 534 self.req.hdf['args.body'] = '\n'.join(lines) 535 401 536 elif mode == 'message-post-add': 402 537 self.req.perm.assert_permission('DISCUSSION_APPEND') 403 author = Markup(self.req.args.get('author')) 404 body = Markup(self.req.args.get('body')) 538 539 # Get form values. 540 new_author = Markup(self.req.args.get('author')) 541 new_body = Markup(self.req.args.get('body')) 542 543 # Add message. 405 544 if message: 406 545 self.add_message(forum['id'], topic['id'], message['id'], 407 author, body) 408 else: 409 self.add_message(forum['id'], topic['id'], '-1', author, body) 546 new_author, new_body) 547 else: 548 self.add_message(forum['id'], topic['id'], '-1', new_author, new_body) 549 550 elif mode == 'message-edit': 551 self.req.perm.assert_permission('DISCUSSION_APPEND') 552 if not is_moderator and (message['author'] != self.req.authname): 553 raise PermissionError('Message edit') 554 555 # Prepare form values. 556 self.req.hdf['args.body'] = message['body'] 557 558 elif mode == 'message-post-edit': 559 self.req.perm.assert_permission('DISCUSSION_APPEND') 560 if not is_moderator and (message['author'] != self.req.authname): 561 raise PermissionError('Message edit') 562 563 # Get form values. 564 new_body = Markup(self.req.args.get('body')) 565 566 # Edit message. 567 message['body'] = new_body 568 self.edit_message(message['id'], message['forum'], 569 message['topic'], message['replyto'], new_body) 570 410 571 elif mode == 'message-delete': 411 572 self.req.perm.assert_permission('DISCUSSION_MODERATE') 412 573 if not is_moderator: 413 574 raise PermissionError('Forum moderate') 575 576 # Delete message. 414 577 self.delete_message(message['id']) 415 578 … … 494 657 sql = "UPDATE forum_group SET name = %s, description = %s WHERE id = %s" 495 658 self.log.debug(sql % (name, description, group)) 496 self.cursor.execute(sql, ( name, description, group))659 self.cursor.execute(sql, (escape(name), escape(description), group)) 497 660 498 661 def edit_forum(self, forum, name, subject, description, moderators, group): … … 504 667 self.log.debug(sql % (name, subject, description, moderators, 505 668 group, forum)) 506 self.cursor.execute(sql, (name, subject, description, moderators, 507 group, forum)) 669 self.cursor.execute(sql, (escape(name), escape(subject), 670 escape(description), escape(moderators), group, forum)) 671 672 def edit_topic(self, topic, forum, subject, body): 673 sql = "UPDATE topic SET forum = %s, subject = %s, body = %s WHERE id" \ 674 " = %s" 675 self.log.debug(sql % (forum, subject, body, topic)) 676 self.cursor.execute(sql, (forum, escape(subject), escape(body), 677 topic)) 678 679 def edit_message(self, message, forum, topic, replyto, body): 680 sql = "UPDATE message SET forum = %s, topic = %s, replyto = %s, body" \ 681 " = %s WHERE id = %s" 682 self.log.debug(sql % (forum, topic, replyto, body, message)) 683 self.cursor.execute(sql, (forum, topic, replyto, escape(body), 684 message)) 508 685 509 686 # Get list functions … … 548 725 for row in self.cursor: 549 726 row = dict(zip(columns, row)) 550 #row['name'] = wiki_to_oneliner(row['name'], self.env)551 #row['subject'] = wiki_to_oneliner(row['subject'], self.env)552 727 row['moderators'] = wiki_to_oneliner(row['moderators'], self.env) 553 728 row['description'] = wiki_to_oneliner(row['description'], self.env) … … 630 805 self.cursor.execute(sql, (escape(name), escape(description))) 631 806 632 633 807 def add_forum(self, name, author, subject, description, moderators, group): 634 808 moderators = ' '.join(moderators) … … 656 830 author, body)) 657 831 self.cursor.execute(sql, (forum, topic, replyto, int(time.time()), 658 escape(author), escape( Markup(body))))832 escape(author), escape(body))) 659 833 660 834 # Delete items functions discussionplugin/0.9/tracdiscussion/core.py
r1066 r1077 3 3 from trac.web.chrome import INavigationContributor, ITemplateProvider 4 4 from trac.web.main import IRequestHandler 5 from trac.perm import IPermissionRequestor , PermissionError5 from trac.perm import IPermissionRequestor 6 6 import re 7 7 discussionplugin/0.9/tracdiscussion/htdocs/css/discussion.css
r1071 r1077 51 51 } 52 52 53 54 53 /* Topic list */ 55 54 .topic-list td.id, .topic-list td.author, .topic-list td.lastreply, … … 68 67 { 69 68 margin: 2em; 70 } 71 72 .message-list .topic div.header 73 { 69 margin-bottom: 0em; 74 70 border: 1px solid #d7d7d7; 75 71 } 76 72 77 .message-list .topic div.subject73 .message-list div.topic div.subject 78 74 { 79 75 font-weight: bold; … … 84 80 } 85 81 86 .message-list .header div.body 82 .message-list div.topic > fieldset 83 { 84 margin: 1em; 85 } 86 87 .message-list div.topic div.body 87 88 { 88 89 margin: 1em; … … 90 91 91 92 /* Message list reply tree */ 92 .message-list .replies div.body93 .message-list div.replies div.body 93 94 { 94 95 margin: 0.2em; … … 98 99 { 99 100 display: block; 100 margin: 0px; 101 margin: 2em; 102 margin-top: 0em; 101 103 padding: 0.25em; 102 104 border-right: 1px solid #d7d7d7; … … 148 150 } 149 151 150 .message-list .topic.replies div.body152 .message-list div.replies div.body 151 153 { 152 154 margin: 0em; … … 156 158 } 157 159 158 .message-list .topic .replies.preview div.body160 .message-list div.replies li.preview div.body 159 161 { 160 162 border: 1px dashed #b00; discussionplugin/0.9/tracdiscussion/templates/forum-add.cs
r1066 r1077 9 9 <div class="field"> 10 10 <label for="name">Name:</label><br/> 11 <input type="text" name="name" value=""/><br/>11 <input type="text" id="name" name="name" value=""/><br/> 12 12 </div> 13 13 <div class="field"> 14 14 <label for="subject">Subject:</label><br/> 15 <input type="text" name="subject" value=""/><br/>15 <input type="text" id="subject" name="subject" value=""/><br/> 16 16 </div> 17 17 <div class="field"> 18 18 <label for="description">Description:</label><br/> 19 <input type="text" name="description" value=""/><br/>19 <input type="text" id="description" name="description" value=""/><br/> 20 20 </div> 21 21 <div class="field"> 22 22 <label for="moderators">Moderators:</label><br/> 23 23 <?cs if:discussion.users.0 ?> 24 <select name="moderators" multiple="on">24 <select id="moderators" name="moderators" multiple="on"> 25 25 <?cs each:user = discussion.users ?> 26 26 <option value="<?cs var:user ?>"><?cs var:user ?></option> … … 28 28 </select><br/> 29 29 <?cs else ?> 30 <input type="text" name="moderators" value=""/><br/>30 <input type="text" id="moderators" name="moderators" value=""/><br/> 31 31 <?cs /if ?> 32 32 </div> … … 34 34 <div class="group"> 35 35 <label for="group">Forum Group:</label><br/> 36 <select name="group">36 <select id="group" name="group"> 37 37 <?cs each:group = discussion.groups ?> 38 38 <option value="<?cs var:group.id ?>"><?cs var:group.name ?></option> … … 41 41 </div> 42 42 <?cs else ?> 43 <input type="hidden" name="group" value="0"/>43 <input type="hidden" id="group" name="group" value="0"/> 44 44 <?cs /if ?> 45 45 <div class="buttons"> discussionplugin/0.9/tracdiscussion/templates/message-list.cs
r1073 r1077 2 2 <li class="preview"> 3 3 <a name="preview"></a> 4 <div class="id"> 5 Message #?? 6 </div> 4 7 <div class="body"> 5 8 <?cs var:discussion.body ?> … … 16 19 <?cs /def ?> 17 20 18 <?cs def:display_ form() ?>21 <?cs def:display_reply_form() ?> 19 22 <li class="reply"> 20 23 <fieldset> … … 27 30 <label for="author">Author:</label><br/> 28 31 <?cs if:args.author ?> 29 <input type="text" name="author" value="<?cs var:args.author ?>"/><br/>32 <input type="text" id="author" name="author" value="<?cs var:args.author ?>"/><br/> 30 33 <?cs else ?> 31 <input type="text" name="author" value="<?cs var:discussion.authname ?>"/><br/>34 <input type="text" id="author" name="author" value="<?cs var:discussion.authname ?>"/><br/> 32 35 <?cs /if ?> 33 36 </div> 34 37 <div class="field"> 35 38 <label for="body">Body:</label><br/> 36 <textarea name="body" class="wikitext" rows="10" cols="78"><?cs alt:args.body ?>Enter your message here...<?cs /alt ?></textarea>39 <textarea id="body" name="body" class="wikitext" rows="10" cols="78"><?cs alt:args.body ?>Enter your message here...<?cs /alt ?></textarea> 37 40 </div> 38 41 <div class="buttons"> … … 48 51 </fieldset> 49 52 </li> 53 <?cs /def ?> 54 55 <?cs def:display_edit_form() ?> 56 <fieldset> 57 <a name="reply"></a> 58 <legend> 59 Edit: 60 </legend> 61 <form method="get" action="<?cs var:discussion.href ?>#preview"> 62 <?cs if:!args.message ?> 63 <div class="field"> 64 <label for="subject">Subject:</label><br/> 65 <input type="text" id="subject" name="subject" value="<?cs var:args.subject ?>"/><br/> 66 </div> 67 <?cs /if ?> 68 <div class="field"> 69 <label for="body">Body:</label><br/> 70 <textarea id="body" name="body" class="wikitext" rows="10" cols="78"><?cs var:args.body ?></textarea> 71 </div> 72 <div class="buttons"> 73 <input type="submit" name="preview" value="Preview"/> 74 <input type="submit" name="submit" value="Edit"/> 75 <input type="button" name="cancel" value="Cancel" onclick="location.href = '<?cs var:discussion.href ?>#<?cs var:args.message ?>'"/> 76 </div> 77 <?cs if:args.message ?> 78 <input type="hidden" name="message" value="<?cs var:args.message ?>"/> 79 <?cs /if ?> 80 <input type="hidden" name="discussion_action" value="post-edit"/> 81 </form> 82 </fieldset> 50 83 <?cs /def ?> 51 84 … … 58 91 </div> 59 92 <div class="body"> 60 <?cs var:message.body ?> 93 <?cs if:(args.message == message.id) && args.preview ?> 94 <?cs var:discussion.body ?> 95 <?cs else?> 96 <?cs var:message.body ?> 97 <?cs /if ?> 61 98 </div> 62 99 <div class="controls"> … … 64 101 <a href="<?cs var:discussion.href ?>?discussion_action=add;message=<?cs var:message.id ?>#reply">Reply</a> 65 102 <a href="<?cs var:discussion.href ?>?discussion_action=quote;message=<?cs var:message.id ?>#reply">Quote</a> 103 <?cs if:discussion.is_moderator || (message.author == discussion.authname) ?> 104 <a href="<?cs var:discussion.href ?>?discussion_action=edit;message=<?cs var:message.id ?>#reply">Edit</a> 105 <?cs /if ?> 66 106 <?cs /if ?> 67 107 <?cs if:trac.acl.DISCUSSION_MODERATE && discussion.is_moderator ?> … … 77 117 </div> 78 118 </div> 119 <?cs if:(args.message == message.id) && !args.submit && ((args.discussion_action == 'edit') || (args.discussion_action == 'post-edit')) ?> 120 <?cs call:display_edit_form() ?> 121 <?cs /if ?> 79 122 </li> 80 <?cs if: discussion.messages.0.id || args.discussion_action && !args.submit && (args.discussion_action != "delete") ?>123 <?cs if:message.replies.0.id || args.discussion_action && (args.discussion_action != 'delete') && (args.discussion_action != 'edit') && (args.discussion_action != 'post-edit') ?> 81 124 <ul> 82 <?cs call:display_topic(message.replies) ?> 83 <?cs if:args.discussion_action && args.preview && args.message == message.id ?> 84 <?cs call:display_preview() ?> 85 <?cs /if ?> 86 <?cs if:args.discussion_action && !args.submit && args.message == message.id ?> 87 <?cs call:display_form() ?> 125 <?cs if:message.replies.0.id ?> 126 <?cs call:display_topic(message.replies) ?> 127 <?cs /if ?> 128 <?cs if:(args.message == message.id) && !args.submit && args.discussion_action && (args.discussion_action != "delete") && (args.discussion_action != 'edit') && (args.discussion_action != 'post-edit') ?> 129 <?cs if:args.preview ?> 130 <?cs call:display_preview() ?> 131 <?cs /if ?> 132 <?cs call:display_reply_form() ?> 88 133 <?cs /if ?> 89 134 </ul> … … 110 155 <div class="header"> 111 156 <div class="subject"> 112 <?cs var:discussion.topic.subject ?> 113 </div> 114 <div class="body"> 157 <?cs if:!args.message && args.preview ?> 158 <?cs var:discussion.subject ?> 159 <?cs else?> 160 <?cs var:discussion.topic.subject ?> 161 <?cs /if ?> 162 </div> 163 </div> 164 <div class="body"> 165 <?cs if:!args.message && args.preview ?> 166 <?cs var:discussion.body ?> 167 <?cs else?> 115 168 <?cs var:discussion.topic.body ?> 116 </div> 117 <div class="controls"> 118 <?cs if:trac.acl.DISCUSSION_APPEND ?> 119 <a href="<?cs var:discussion.href ?>?discussion_action=add;#reply">Reply</a> 120 <a href="<?cs var:discussion.href ?>?discussion_action=quote;#reply">Quote</a> 121 <?cs /if ?> 122 </div> 123 <div class="footer"> 124 <div class="author"> 125 <?cs var:discussion.topic.author ?> 126 </div> 127 <div class="time"> 128 <?cs var:discussion.topic.time ?> 129 </div> 130 </div> 131 </div> 132 <?cs if:discussion.messages.0.id || args.discussion_action && !args.submit && (args.discussion_action != "delete") ?> 133 <div class="replies"> 134 <ul> 169 <?cs /if ?> 170 </div> 171 <div class="controls"> 172 <?cs if:trac.acl.DISCUSSION_APPEND ?> 173 <a href="<?cs var:discussion.href ?>?discussion_action=add;#reply">Reply</a> 174 <a href="<?cs var:discussion.href ?>?discussion_action=quote;#reply">Quote</a> 175 <?cs if:discussion.is_moderator || (discussion.topic.author == discussion.authname) ?> 176 <a href="<?cs var:discussion.href ?>?discussion_action=edit;#reply">Edit</a> 177 <?cs /if ?> 178 <?cs /if ?> 179 </div> 180 <div class="footer"> 181 <div class="author"> 182 <?cs var:discussion.topic.author ?> 183 </div> 184 <div class="time"> 185 <?cs var:discussion.topic.time ?> 186 </div> 187 </div> 188 <?cs if:!args.message && !args.submit && ((args.discussion_action == 'edit') || (args.discussion_action == 'post-edit')) ?> 189 <?cs call:display_edit_form() ?> 190 <?cs /if ?> 191 </div> 192 <?cs if:discussion.messages.0.id || args.discussion_action && (args.discussion_action != "delete") && (args.discussion_action != 'edit') && (args.discussion_action != 'post-edit') ?> 193 <div class="replies"> 194 <ul> 195 <?cs if:discussion.messages.0.id ?> 135 196 <?cs call:display_topic(discussion.messages) ?> 136 <?cs if:args.discussion_action && args.preview && !args.message ?> 197 <?cs /if ?> 198 <?cs if:!args.message && !args.submit && args.discussion_action && (args.discussion_action != "delete") && (args.discussion_action != 'edit') && (args.discussion_action != 'post-edit') ?> 199 <?cs if:args.preview ?> 137 200 <?cs call:display_preview() ?> 138 201 <?cs /if ?> 139 <?cs if:args.discussion_action && !args.submit && !args.message ?> 140 <?cs call:display_form() ?> 141 <?cs /if ?> 142 </ul> 143 </div> 144 <?cs /if ?> 145 </div> 146 <?cs else?> 147 <span>No discussion for this page created.</span> 148 <?cs /if ?> 202 <?cs call:display_reply_form() ?> 203 <?cs /if ?> 204 </ul> 205 </div> 206 <?cs /if ?> 207 <?cs else?> 208 <span>No discussion for this page created.</span> 209 <?cs /if ?> 149 210 <?cs else ?> 150 211 <span>You have no rights to see this discussion.</span> … … 158 219 </form> 159 220 <?cs if:!discussion.no_navigation ?> 160 <form method="get" action="<?cs var:discussion.href ?> /<?cs var:discussion.forum.id ?>/<?cs var:discussion.topic.id ?>">221 <form method="get" action="<?cs var:discussion.href ?>"> 161 222 <input type="submit" name="movetopic" value="Move Topic"/> 162 223 <input type="hidden" name="discussion_action" value="move"/>
