Changeset 2014
- Timestamp:
- 02/20/07 14:50:29 (2 years ago)
- Files:
-
- discussionplugin/0.10/tracdiscussion/api.py (modified) (10 diffs)
- discussionplugin/0.10/tracdiscussion/templates/admin-forum-list.cs (modified) (2 diffs)
- discussionplugin/0.10/tracdiscussion/templates/admin-group-list.cs (modified) (2 diffs)
- discussionplugin/0.10/tracdiscussion/templates/discussion-macros.cs (moved) (moved from discussionplugin/0.10/tracdiscussion/templates/my_macros.cs) (2 diffs)
- discussionplugin/0.10/tracdiscussion/templates/forum-list.cs (modified) (2 diffs)
- discussionplugin/0.10/tracdiscussion/templates/message-list.cs (modified) (1 diff)
- discussionplugin/0.10/tracdiscussion/templates/topic-add.cs (modified) (1 diff)
- discussionplugin/0.10/tracdiscussion/templates/topic-list.cs (modified) (2 diffs)
- discussionplugin/0.10/tracdiscussion/templates/wiki-discussion-denied.cs (added)
- discussionplugin/0.10/tracdiscussion/templates/wiki-discussion-footer.cs (added)
- discussionplugin/0.10/tracdiscussion/templates/wiki-discussion-header.cs (added)
- discussionplugin/0.10/tracdiscussion/templates/wiki-discussion-missing.cs (added)
- discussionplugin/0.10/tracdiscussion/templates/wiki-message-list.cs (added)
- discussionplugin/0.10/tracdiscussion/wiki.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
discussionplugin/0.10/tracdiscussion/api.py
r2009 r2014 120 120 elif component == 'wiki': 121 121 if action == 'add': 122 return [' message-list']122 return ['wiki-message-list'] 123 123 elif action == 'quote': 124 return ['message-quote', ' message-list']124 return ['message-quote', 'wiki-message-list'] 125 125 elif action == 'post-add': 126 126 if preview: 127 return [' message-list']127 return ['wiki-message-list'] 128 128 else: 129 return ['message-post-add', ' message-list']129 return ['message-post-add', 'wiki-message-list'] 130 130 elif action == 'edit': 131 return ['message-edit', ' message-list']131 return ['message-edit', 'wiki-message-list'] 132 132 elif action == 'post-edit': 133 133 if preview: 134 return [' message-list']134 return ['wiki-message-list'] 135 135 else: 136 return ['message-post-edit', ' message-list']136 return ['message-post-edit', 'wiki-message-list'] 137 137 elif action == 'delete': 138 return ['message-delete', ' message-list']138 return ['message-delete', 'wiki-message-list'] 139 139 elif action == 'set-display': 140 return ['message-set-display', ' message-list']141 else: 142 return [' message-list']140 return ['message-set-display', 'wiki-message-list'] 141 else: 142 return ['wiki-message-list'] 143 143 else: 144 144 if action == 'add': … … 169 169 elif component == 'wiki': 170 170 if action == 'add': 171 return [' message-list']171 return ['wiki-message-list'] 172 172 elif action == 'quote': 173 return ['topic-quote', 'message-list']173 return ['topic-quote','wiki-message-list'] 174 174 elif action == 'post-add': 175 175 if preview: 176 return [' message-list']176 return ['wiki-message-list'] 177 177 else: 178 return ['message-post-add', ' message-list']178 return ['message-post-add', 'wiki-message-list'] 179 179 elif action == 'edit': 180 return ['topic-edit', ' message-list']180 return ['topic-edit', 'wiki-message-list'] 181 181 elif action == 'post-edit': 182 182 if preview: 183 return [' message-list']183 return ['wiki-message-list'] 184 184 else: 185 return ['topic-post-edit', 'message-list'] 186 elif action == 'delete': 187 req.hdf['discussion.no_display'] = True 188 return ['topic-delete', 'message-list'] 185 return ['topic-post-edit', 'wiki-message-list'] 189 186 elif action == 'set-display': 190 return ['message-set-display', ' message-list']191 else: 192 return [' message-list']187 return ['message-set-display', 'wiki-message-list'] 188 else: 189 return ['wiki-message-list'] 193 190 else: 194 191 if action == 'add': … … 225 222 return ['admin-forum-list'] 226 223 elif component == 'wiki': 227 pass224 return ['wiki-message-list'] 228 225 else: 229 226 if action == 'add': … … 252 249 return ['admin-forum-list'] 253 250 elif component == 'wiki': 254 pass251 return ['wiki-message-list'] 255 252 else: 256 253 if action == 'post-add': … … 267 264 return ['admin-group-list'] 268 265 elif component == 'wiki': 269 pass266 return ['wiki-message-list'] 270 267 else: 271 268 if action == 'add': … … 500 497 # Get new popic and notify about creation. 501 498 new_topic = self.get_topic_by_time(cursor, new_time) 502 to = self.get_topic_to_recipients(cursor, topic['id'])503 cc = self.get_topic_cc_recipients(cursor, topic['id'])499 to = self.get_topic_to_recipients(cursor, new_topic['id']) 500 cc = self.get_topic_cc_recipients(cursor, new_topic['id']) 504 501 notifier = DiscussionNotifyEmail(self.env) 505 502 notifier.notify(req, cursor, mode, forum, new_topic, None, to, … … 512 509 513 510 # Prepare form values. 511 req.args['subject'] = topic['subject'] 512 req.args['body'] = topic['body'] 513 req.hdf['args.subject'] = topic['subject'] 514 514 req.hdf['args.body'] = topic['body'] 515 req.hdf['args.subject'] = topic['subject']516 515 517 516 elif mode == 'topic-post-edit': … … 559 558 elif mode == 'message-list': 560 559 req.perm.assert_permission('DISCUSSION_VIEW') 561 562 # Get form values. 563 new_author = req.args.get('author') 564 new_subject = req.args.get('subject') 565 new_body = req.args.get('body') 566 567 # Get time when topic was visited from session. 568 visited = eval(req.session.get('visited-topics') or '{}') 569 if visited.has_key(topic['id']): 570 visit_time = int(visited[topic['id']]) 571 else: 572 visit_time = 0 573 574 # Update this topic visit time and save to session. 575 visited[topic['id']] = int(time.time()) 576 req.session['visited-topics'] = unicode(visited) 577 578 # Mark new topic. 579 if int(topic['time']) > visit_time: 580 topic['new'] = True 581 582 # Prepare display of topic 583 if new_author: 584 req.hdf['discussion.author'] = wiki_to_oneliner( 585 new_author, self.env) 586 if new_subject: 587 req.hdf['discussion.subject'] = wiki_to_oneliner( 588 new_subject, self.env) 589 if new_body: 590 req.hdf['discussion.body'] = wiki_to_html(new_body, 591 self.env, req) 592 593 # Prepare display of messages 594 display = req.session.get('message-list-display') 595 req.hdf['discussion.display'] = display 596 if display == 'flat-asc': 597 req.hdf['discussion.messages'] = self.get_flat_messages( 598 req, cursor, topic['id'], visit_time) 599 elif display == 'flat-desc': 600 req.hdf['discussion.messages'] = self.get_flat_messages( 601 req, cursor, topic['id'], visit_time, 'ORDER BY time DESC') 602 else: 603 req.hdf['discussion.messages'] = self.get_messages(req, 604 cursor, topic['id'], visit_time) 560 self._prepare_message_list(req, cursor, topic) 561 562 elif mode == 'wiki-message-list': 563 if topic: 564 self._prepare_message_list(req, cursor, topic) 605 565 606 566 elif mode == 'message-quote': … … 643 603 644 604 # Prepare form values. 605 req.args['body'] = message['body'] 645 606 req.hdf['args.body'] = message['body'] 646 607 … … 674 635 # Set message list display mode to session 675 636 req.session['message-list-display'] = display 637 638 def _prepare_message_list(self, req, cursor, topic): 639 # Get form values. 640 new_author = req.args.get('author') 641 new_subject = req.args.get('subject') 642 new_body = req.args.get('body') 643 644 # Get time when topic was visited from session. 645 visited = eval(req.session.get('visited-topics') or '{}') 646 if visited.has_key(topic['id']): 647 visit_time = int(visited[topic['id']]) 648 else: 649 visit_time = 0 650 651 # Update this topic visit time and save to session. 652 visited[topic['id']] = int(time.time()) 653 req.session['visited-topics'] = unicode(visited) 654 655 # Mark new topic. 656 if int(topic['time']) > visit_time: 657 topic['new'] = True 658 659 # Prepare display of topic 660 if new_author: 661 req.hdf['discussion.author'] = wiki_to_oneliner(new_author, 662 self.env) 663 if new_subject: 664 req.hdf['discussion.subject'] = wiki_to_oneliner(new_subject, 665 self.env) 666 if new_body: 667 req.hdf['discussion.body'] = wiki_to_html(new_body, self.env, req) 668 669 # Prepare display of messages 670 display = req.session.get('message-list-display') 671 req.hdf['discussion.display'] = display 672 if display == 'flat-asc': 673 req.hdf['discussion.messages'] = self.get_flat_messages(req, cursor, 674 topic['id'], visit_time) 675 elif display == 'flat-desc': 676 req.hdf['discussion.messages'] = self.get_flat_messages(req, cursor, 677 topic['id'], visit_time, 'ORDER BY time DESC') 678 else: 679 req.hdf['discussion.messages'] = self.get_messages(req, cursor, 680 topic['id'], visit_time) 676 681 677 682 # Get one item functions discussionplugin/0.10/tracdiscussion/templates/admin-forum-list.cs
r1131 r2014 1 <?cs include " my_macros.cs" ?>1 <?cs include "discussion-macros.cs" ?> 2 2 3 3 <h2>Forums</h2> … … 123 123 <tr> 124 124 <th class="sel"> </th> 125 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'id', 'ID', discussion.href + '/forum' + '?') ?>126 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'name', 'Name', discussion.href + '/forum' + '?') ?>127 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'subject', 'Subject', discussion.href + '/forum' + '?') ?>128 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'description', 'Description', discussion.href + '/forum' + '?') ?>129 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'moderators', 'Moderators', discussion.href + '/forum' + '?') ?>125 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'id', 'ID', discussion.href + '/forum' + '?') ?> 126 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'name', 'Name', discussion.href + '/forum' + '?') ?> 127 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'subject', 'Subject', discussion.href + '/forum' + '?') ?> 128 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'description', 'Description', discussion.href + '/forum' + '?') ?> 129 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'moderators', 'Moderators', discussion.href + '/forum' + '?') ?> 130 130 <?cs if:discussion.groups.1.id ?> 131 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'forum_group', 'Group', discussion.href + '/forum' + '?') ?>131 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'forum_group', 'Group', discussion.href + '/forum' + '?') ?> 132 132 <?cs /if ?> 133 133 </tr> discussionplugin/0.10/tracdiscussion/templates/admin-group-list.cs
r1538 r2014 1 <?cs include " my_macros.cs" ?>1 <?cs include "discussion-macros.cs" ?> 2 2 3 3 <h2>Forum Groups</h2> … … 53 53 <tr> 54 54 <th class="sel"> </th> 55 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'id', 'ID', discussion.href + '/group' + '?') ?>56 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'name', 'Name', discussion.href + '/group' + '?') ?>57 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'description', 'Description', discussion.href + '/group' + '?') ?>55 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'id', 'ID', discussion.href + '/group' + '?') ?> 56 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'name', 'Name', discussion.href + '/group' + '?') ?> 57 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'description', 'Description', discussion.href + '/group' + '?') ?> 58 58 </tr> 59 59 </thead> discussionplugin/0.10/tracdiscussion/templates/discussion-macros.cs
r1131 r2014 1 <?cs def: my_sortable_th(order, desc, class, title, href) ?>1 <?cs def:discussion_sortable_th(order, desc, class, title, href) ?> 2 2 <th class="<?cs var:class ?><?cs if:order == class ?> <?cs if:desc ?>desc<?cs else ?>asc<?cs /if ?><?cs /if ?>"> 3 3 <a title="Sort by <?cs var:class ?><?cs if:order == class && !desc ?> (descending)<?cs /if ?>" href="<?cs var:href ?>&order=<?cs var:class ?><?cs if:order == class && !desc ?>&desc=1<?cs /if ?>"> … … 6 6 </th> 7 7 <?cs /def ?> 8 9 <?cs def:display_preview() ?> 10 <li class="preview"> 11 <a name="preview"></a> 12 <div class="id"> 13 Message #?? 14 </div> 15 <div class="body"> 16 <?cs var:discussion.body ?> 17 </div> 18 <div class="footer"> 19 <div class="author"> 20 <?cs var:discussion.author ?> 21 </div> 22 <div class="time"> 23 <?cs var:discussion.time ?> 24 </div> 25 </div> 26 </li> 27 <?cs /def ?> 28 29 <?cs def:display_reply_form() ?> 30 <li class="reply"> 31 <fieldset> 32 <a name="reply"></a> 33 <legend> 34 Reply: 35 </legend> 36 <form method="post" action="<?cs var:discussion.href ?>#preview"> 37 <div class="field"> 38 <label for="author">Author:</label><br/> 39 <?cs if:discussion.authname == 'anonymous' ?> 40 <input type="text" id="author" name="author" value="<?cs alt:args.author ?>anonymous<?cs /alt ?>"/><br/> 41 <?cs else ?> 42 <input type="text" id="author" name="author" value="<?cs var:discussion.authname ?>" readonly="true"/><br/> 43 <?cs /if ?> 44 </div> 45 <div class="field"> 46 <label for="body">Body:</label><br/> 47 <textarea id="body" name="body" class="wikitext" rows="10" cols="78"><?cs alt:args.body ?>Enter your message here...<?cs /alt ?></textarea> 48 </div> 49 <div class="buttons"> 50 <input type="submit" name="preview" value="Preview"/> 51 <input type="submit" name="submit" value="Reply"/> 52 <input type="button" name="cancel" value="Cancel" onclick="location.replace('<?cs var:discussion.href ?>')"/> 53 </div> 54 <?cs if:args.message ?> 55 <input type="hidden" name="message" value="<?cs var:args.message ?>"/> 56 <?cs /if ?> 57 <input type="hidden" name="discussion_action" value="post-add"/> 58 </form> 59 </fieldset> 60 </li> 61 <?cs /def ?> 62 63 <?cs def:display_edit_form() ?> 64 <fieldset> 65 <a name="reply"></a> 66 <legend> 67 Edit: 68 </legend> 69 <form method="post" action="<?cs var:discussion.href ?>#preview"> 70 <?cs if:!args.message ?> 71 <div class="field"> 72 <label for="subject">Subject:</label><br/> 73 <input type="text" id="subject" name="subject" value="<?cs var:args.subject ?>"/><br/> 74 </div> 75 <?cs /if ?> 76 <div class="field"> 77 <label for="body">Body:</label><br/> 78 <textarea id="body" name="body" class="wikitext" rows="10" cols="78"><?cs var:args.body ?></textarea> 79 </div> 80 <div class="buttons"> 81 <input type="submit" name="preview" value="Preview"/> 82 <input type="submit" name="submit" value="Submit changes"/> 83 <input type="button" name="cancel" value="Cancel" onclick="location.replace('<?cs var:discussion.href ?>')"/> 84 </div> 85 <?cs if:args.message ?> 86 <input type="hidden" name="message" value="<?cs var:args.message ?>"/> 87 <?cs /if ?> 88 <input type="hidden" name="discussion_action" value="post-edit"/> 89 </form> 90 </fieldset> 91 <?cs /def ?> 92 93 <?cs def:display_set_display() ?> 94 <div class="set-display"> 95 <a href="<?cs var:discussion.href ?>?discussion_action=set-display;display=tree">Tree View</a> 96 <a href="<?cs var:discussion.href ?>?discussion_action=set-display;display=flat-desc">Flat View (newer first)</a> 97 <a href="<?cs var:discussion.href ?>?discussion_action=set-display;display=flat-asc">Flat View (older first)</a> 98 </div> 99 <?cs /def ?> 100 101 <?cs def:display_replies(messages) ?> 102 <?cs each:message = messages ?> 103 <li <?cs if:message.new ?>class="new"<?cs /if ?>> 104 <a name="<?cs var:message.id ?>"></a> 105 <div class="id"> 106 Message #<?cs var:message.id ?> 107 </div> 108 <div class="body"> 109 <?cs if:(args.message == message.id) && args.preview ?> 110 <?cs var:discussion.body ?> 111 <?cs else?> 112 <?cs var:message.body ?> 113 <?cs /if ?> 114 </div> 115 <div class="controls"> 116 <?cs if:trac.acl.DISCUSSION_APPEND ?> 117 <a href="<?cs var:discussion.href ?>?discussion_action=add;message=<?cs var:message.id ?>#reply">Reply</a> 118 <a href="<?cs var:discussion.href ?>?discussion_action=quote;message=<?cs var:message.id ?>#reply">Quote</a> 119 <?cs if:discussion.is_moderator || ((message.author == discussion.authname) && (discussion.authname != 'anonymous')) ?> 120 <a href="<?cs var:discussion.href ?>?discussion_action=edit;message=<?cs var:message.id ?>#reply">Edit</a> 121 <?cs /if ?> 122 <?cs /if ?> 123 <?cs if:trac.acl.DISCUSSION_MODERATE && discussion.is_moderator ?> 124 <a href="<?cs var:discussion.href ?>?discussion_action=delete;message=<?cs var:message.id ?>" onclick="return confirm('Do you realy want to delete this reply and all its descendants?')">Delete</a> 125 <?cs /if ?> 126 </div> 127 <div class="footer"> 128 <div class="author"> 129 <?cs var:message.author ?> 130 </div> 131 <div class="time"> 132 <?cs var:message.time ?> 133 </div> 134 </div> 135 <?cs if:(args.message == message.id) && !args.submit && ((args.discussion_action == 'edit') || (args.discussion_action == 'post-edit')) ?> 136 <?cs call:display_edit_form() ?> 137 <?cs /if ?> 138 </li> 139 <?cs if:message.replies.0.id || args.discussion_action && ((args.discussion_action == 'add') || (args.discussion_action == 'quote') || (args.discussion_action == 'post-add')) ?> 140 <ul class="reply"> 141 <?cs if:message.replies.0.id ?> 142 <?cs call:display_replies(message.replies) ?> 143 <?cs /if ?> 144 <?cs if:(args.message == message.id) && !args.submit && (args.discussion_action && (args.discussion_action == 'add') || (args.discussion_action == 'quote') || (args.discussion_action == 'post-add')) ?> 145 <?cs if:args.preview ?> 146 <?cs call:display_preview() ?> 147 <?cs /if ?> 148 <?cs call:display_reply_form() ?> 149 <?cs /if ?> 150 </ul> 151 <?cs /if ?> 152 <?cs /each ?> 153 <?cs /def ?> 154 155 <?cs def:display_discussion(discussion) ?> 156 <a name="-1"></a> 157 <div class="topic <?cs if:discussion.topic.new ?>new<?cs /if ?>"> 158 <div class="header"> 159 <?cs if:!discussion.message.id && (args.discussion_action == 'edit' || args.discussion_action == 'post-edit') ?> 160 <div class="subject"> 161 <?cs var:discussion.subject ?> 162 </div> 163 <div class="body"> 164 <?cs var:discussion.body ?> 165 </div> 166 <?cs else ?> 167 <div class="subject"> 168 <?cs var:discussion.topic.subject ?> 169 </div> 170 <div class="body"> 171 <?cs var:discussion.topic.body ?> 172 </div> 173 <?cs /if ?> 174 </div> 175 <div class="controls"> 176 <?cs if:trac.acl.DISCUSSION_APPEND ?> 177 <a href="<?cs var:discussion.href ?>?discussion_action=add;#reply">Reply</a> 178 <a href="<?cs var:discussion.href ?>?discussion_action=quote;#reply">Quote</a> 179 <?cs if:discussion.is_moderator || ((discussion.topic.author == discussion.authname) && (discussion.authname != 'anonymous'))?> 180 <a href="<?cs var:discussion.href ?>?discussion_action=edit;#reply">Edit</a> 181 <?cs /if ?> 182 <?cs /if ?> 183 </div> 184 <div class="footer"> 185 <div class="author"> 186 <?cs var:discussion.topic.author ?> 187 </div> 188 <div class="time"> 189 <?cs var:discussion.topic.time ?> 190 </div> 191 </div> 192 <?cs if:!args.message && !args.submit && ((args.discussion_action == 'edit') || (args.discussion_action == 'post-edit')) ?> 193 <?cs call:display_edit_form() ?> 194 <?cs /if ?> 195 </div> 196 <?cs if:discussion.messages.0.id || args.discussion_action && ((args.discussion_action == 'add') || (args.discussion_action == 'quote') || (args.discussion_action == 'post-add')) ?> 197 <div class="replies <?cs if:discussion.topic.new ?>new<?cs /if ?>"> 198 <?cs call:display_set_display() ?> 199 <ul class="reply"> 200 <?cs if:discussion.messages.0.id ?> 201 <?cs call:display_replies(discussion.messages) ?> 202 <?cs /if ?> 203 <?cs if:!args.message && !args.submit && args.discussion_action && ((args.discussion_action == 'add') || (args.discussion_action == 'quote') || (args.discussion_action == 'post-add')) ?> 204 <?cs if:args.preview ?> 205 <?cs call:display_preview() ?> 206 <?cs /if ?> 207 <?cs call:display_reply_form() ?> 208 <?cs /if ?> 209 </ul> 210 <?cs call:display_set_display() ?> 211 </div> 212 <?cs /if ?> 213 <?cs /def ?> discussionplugin/0.10/tracdiscussion/templates/forum-list.cs
r1131 r2014 1 1 <?cs include "macros.cs" ?> 2 <?cs include " my_macros.cs" ?>2 <?cs include "discussion-macros.cs" ?> 3 3 4 4 <?cs def:display_group(group, forums) ?> … … 14 14 <?cs /if ?> 15 15 <tr> 16 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'id', 'ID', discussion.href + '?') ?>17 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'subject', 'Forum', discussion.href + '?') ?>18 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'moderators', 'Moderators', discussion.href + '?') ?>19 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'lasttopic', 'Last Topic', discussion.href + '?') ?>20 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'lastreply', 'Last Reply', discussion.href + '?') ?>21 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'time', 'Founded', discussion.href + '?') ?>22 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'topics', 'Topics', discussion.href + '?') ?>23 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'replies', 'Replies', discussion.href + '?') ?>16 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'id', 'ID', discussion.href + '?') ?> 17 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'subject', 'Forum', discussion.href + '?') ?> 18 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'moderators', 'Moderators', discussion.href + '?') ?> 19 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'lasttopic', 'Last Topic', discussion.href + '?') ?> 20 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'lastreply', 'Last Reply', discussion.href + '?') ?> 21 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'time', 'Founded', discussion.href + '?') ?> 22 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'topics', 'Topics', discussion.href + '?') ?> 23 <?cs call:discussion_sortable_th(discussion.order, discussion.desc, 'replies', 'Replies', discussion.href + '?') ?> 24 24 </tr> 25 25 </thead> discussionplugin/0.10/tracdiscussion/templates/message-list.cs
r1537 r2014 1 <?cs def:display_preview() ?> 2 <li class="preview"> 3 <a name="preview"></a> 4 <div class="id"> 5 Message #?? 6 </div> 7 <div class="body"> 8 <?cs var:discussion.body ?> 9 </div> 10 <div class="footer"> 11 <div class="author"> 12 <?cs var:discussion.author ?> 13 </div> 14 <div class="time"> 15 <?cs var:discussion.time ?> 16 </div> 17 </div> 18 </li> 19 <?cs /def ?> 1 <?cs include:"discussion-macros.cs"?> 20 2 21 <?cs def:display_reply_form() ?> 22 <li class="reply"> 23 <fieldset> 24 <a name="reply"></a> 25 <legend> 26 Reply: 27 </legend> 28 <form method="post" action="<?cs var:discussion.href ?>#preview"> 29 <div class="field"> 30 <label for="author">Author:</label><br/> 31 <?cs if:args.author ?> 32 <input type="text" id="author" name="author" value="<?cs var:args.author ?>"/><br/> 33 <?cs else ?> 34 <input type="text" id="author" name="author" value="<?cs var:discussion.authname ?>"/><br/> 35 <?cs /if ?> 36 </div> 37 <div class="field"> 38 <label for="body">Body:</label><br/> 39 <textarea id="body" name="body" class="wikitext" rows="10" cols="78"><?cs alt:args.body ?>Enter your message here...<?cs /alt ?></textarea> 40 </div> 41 <div class="buttons"> 42 <input type="submit" name="preview" value="Preview"/> 43 <input type="submit" name="submit" value="Reply"/> 44 <input type="button" name="cancel" value="Cancel" onclick="location.href = '<?cs var:discussion.href ?>#<?cs var:args.message ?>'"/> 45 </div> 46 <?cs if:args.message ?> 47 <input type="hidden" name="message" value="<?cs var:args.message ?>"/> 48 <?cs /if ?> 49 <input type="hidden" name="redirect" value="1"/> 50 <input type="hidden" name="discussion_action" value="post-add"/> 51 </form> 52 </fieldset> 53 </li> 54 <?cs /def ?> 3 <?cs linclude "discussion-header.cs" ?> 55 4 56 <?cs def:display_edit_form() ?> 57 <fieldset> 58 <a name="reply"></a> 59 <legend> 60 Edit: 61 </legend> 62 <form method="post" action="<?cs var:discussion.href ?>#preview"> 63 <?cs if:!args.message ?> 64 <div class="field"> 65 <label for="subject">Subject:</label><br/> 66 <input type="text" id="subject" name="subject" value="<?cs var:args.subject ?>"/><br/> 67 </div> 68 <?cs /if ?> 69 <div class="field"> 70 <label for="body">Body:</label><br/> 71 <textarea id="body" name="body" class="wikitext" rows="10" cols="78"><?cs var:args.body ?></textarea> 72 </div> 73 <div class="buttons"> 74 <input type="submit" name="preview" value="Preview"/> 75 <input type="submit" name="submit" value="Submit changes"/> 76 <input type="button" name="cancel" value="Cancel" onclick="location.href = '<?cs var:discussion.href ?>#<?cs var:args.message ?>'"/> 77 </div> 78 <?cs if:args.message ?> 79 <input type="hidden" name="message" value="<?cs var:args.message ?>"/> 80 <?cs /if ?> 81 <input type="hidden" name="redirect" value="1"/> 82 <input type="hidden" name="discussion_action" value="post-edit"/> 83 </form> 84 </fieldset> 85 <?cs /def ?> 86 87 <?cs def:display_set_display() ?> 88 <div class="set-display"> 89 <a href="<?cs var:discussion.href ?>?discussion_action=set-display;display=tree">Tree View</a> 90 <a href="<?cs var:discussion.href ?>?discussion_action=set-display;display=flat-desc">Flat View (newer first)</a> 91 <a href="<?cs var:discussion.href ?>?discussion_action=set-display;display=flat-asc">Flat View (older first)</a> 92 </div> 93 <?cs /def ?> 94 95 <?cs def:display_topic(messages) ?> 96 <?cs each:message = messages ?> 97 <li <?cs if:message.new ?>class="new"<?cs /if ?>> 98 <a name="<?cs var:message.id ?>"></a> 99 <div class="id"> 100 Message #<?cs var:message.id ?> 101 </div> 102 <div class="body"> 103 <?cs if:(args.message == message.id) && args.preview ?> 104 <?cs var:discussion.body ?> 105 <?cs else?> 106 <?cs var:message.body ?> 107 <?cs /if ?> 108 </div> 109 <div class="controls"> 110 <?cs if:trac.acl.DISCUSSION_APPEND ?> 111 <a href="<?cs var:discussion.href ?>?discussion_action=add;message=<?cs var:message.id ?>#reply">Reply</a> 112 <a href="<?cs var:discussion.href ?>?discussion_action=quote;message=<?cs var:message.id ?>#reply">Quote</a> 113 <?cs if:discussion.is_moderator || ((message.author == discussion.authname) && (discussion.authname != 'anonymous')) ?> 114 <a href="<?cs var:discussion.href ?>?discussion_action=edit;message=<?cs var:message.id ?>#reply">Edit</a> 115 <?cs /if ?> 116 <?cs /if ?> 117 <?cs if:trac.acl.DISCUSSION_MODERATE && discussion.is_moderator ?> 118 <a href="<?cs var:discussion.href ?>?discussion_action=delete;message=<?cs var:message.id ?>" onclick="return confirm('Do you realy want to delete this reply and all its descendants?')"/>Delete</a> 119 <?cs /if ?> 120 </div> 121 <div class="footer"> 122 <div class="author"> 123 <?cs var:message.author ?> 124 </div> 125 <div class="time"> 126 <?cs var:message.time ?> 127 </div> 128 </div> 129 <?cs if:(args.message == message.id) && !args.submit && ((args.discussion_action == 'edit') || (args.discussion_action == 'post-edit')) ?> 130 <?cs call:display_edit_form() ?> 131 <?cs /if ?> 132 </li> 133 <?cs if:message.replies.0.id || args.discussion_action && ((args.discussion_action == 'add') || (args.discussion_action == 'quote') || (args.discussion_action == 'post-add')) ?> 134 <ul class="reply"> 135 <?cs if:message.replies.0.id ?> 136 <?cs call:display_topic(message.replies) ?> 137 <?cs /if ?> 138 <?cs if:(args.message == message.id) && !args.submit && (args.discussion_action && (args.discussion_action == 'add') || (args.discussion_action == 'quote') || (args.discussion_action == 'post-add')) ?> 139 <?cs if:args.preview ?> 140 <?cs call:display_preview() ?> 141 <?cs /if ?> 142 <?cs call:display_reply_form() ?> 143 <?cs /if ?> 144 </ul> 145 <?cs /if ?> 146 <?cs /each ?> 147 <?cs /def ?> 148 149 <?cs if:discussion.no_navigation ?> 150 <div id="message-list" class="message-list"> 151 <h2>Discussion</h2> 152 <?cs else ?> 153 <?cs linclude "discussion-header.cs" ?> 154 <h1>Forum #<?cs var:discussion.forum.id ?> - Topic #<?cs var:discussion.topic.id ?> - Message List</h1> 155 <?cs /if?> 156 157 <?cs if:discussion.component != 'wiki' ?> 158 <?cs set:discussion.href = discussion.href + '/' + discussion.forum.id + '/' + discussion.topic.id ?> 159 <?cs /if ?> 160 161 <?cs if:trac.acl.DISCUSSION_VIEW ?> 162 <?cs if:!discussion.no_display && discussion.topic.id ?> 163 <a name="-1"></a> 164 <div class="topic <?cs if:discussion.topic.new ?>new<?cs /if ?>"> 165 <div class="header"> 166 <div class="subject"> 167 <?cs if:!args.message && args.preview ?> 168 <?cs var:discussion.subject ?> 169 <?cs else?> 170 <?cs var:discussion.topic.subject ?> 171 <?cs /if ?> 172 </div> 173 </div> 174 <div class="body"> 175 <?cs if:!args.message && args.preview ?> 176 <?cs var:discussion.body ?> 177 <?cs else?> 178 <?cs var:discussion.topic.body ?> 179 <?cs /if ?> 180 </div> 181 <div class="controls"> 182 <?cs if:trac.acl.DISCUSSION_APPEND ?> 183 <a href="<?cs var:discussion.href ?>?discussion_action=add;#reply">Reply</a> 184 <a href="<?cs var:discussion.href ?>?discussion_action=quote;#reply">Quote</a> 185 <?cs if:discussion.is_moderator || ((discussion.topic.author == discussion.authname) && (discussion.authname != 'anonymous'))?> 186 <a href="<?cs var:discussion.href ?>?discussion_action=edit;#reply">Edit</a> 187 <?cs /if ?> 188 <?cs /if ?> 189 </div> 190 <div class="footer"> 191 <div class="author"> 192 <?cs var:discussion.topic.author ?> 193 </div> 194 <div class="time"> 195 <?cs var:discussion.topic.time ?> 196 </div> 197 </div> 198 <?cs if:!args.message && !args.submit && ((args.discussion_action == 'edit') || (args.discussion_action == 'post-edit')) ?> 199 <?cs call:display_edit_form() ?> 200 <?cs /if ?> 201 </div> 202 <?cs if:discussion.messages.0.id || args.discussion_action && ((args.discussion_action == 'add') || (args.discussion_action == 'quote') || (args.discussion_action == 'post-add')) ?> 203 <div class="replies <?cs if:discussion.topic.new ?>new<?cs /if ?>"> 204 <?cs call:display_set_display() ?> 205 <ul class="reply"> 206 <?cs if:discussion.messages.0.id ?> 207 <?cs call:display_topic(discussion.messages) ?> 208 <?cs /if ?> 209 <?cs if:!args.message && !args.submit && args.discussion_action && ((args.discussion_action == 'add') || (args.discussion_action == 'quote') || (args.discussion_action == 'post-add')) ?> 210 <?cs if:args.preview ?> 211 <?cs call:display_preview() ?> 212 <?cs /if ?> 213 <?cs call:display_reply_form() ?> 214 <?cs /if ?> 215 </ul> 216 <?cs call:display_set_display() ?> 217 </div> 218 <?cs /if ?> 219 <?cs else?> 220 <span>No discussion for this page created.</span> 221 <?cs /if ?> 222 <?cs else ?> 223 <span>You have no rights to see this discussion.</span> 224 <?cs /if ?> 225 5 <h1>Forum #<?cs var:discussion.forum.id ?> - Topic #<?cs var:discussion.topic.id ?> - Message List</h1> 6 <?cs set:discussion.href = discussion.href + '/' + discussion.forum.id + '/' + discussion.topic.id ?> 7 <?cs call:display_discussion(discussion) ?> 226 8 <?cs if:trac.acl.DISCUSSION_MODERATE && discussion.is_moderator ?> 227 9 <div class="buttons"> 228 10 <form method="post" action="<?cs var:discussion.href ?>"> 229 <input type="submit" name="deletetopic" value="Delete Topic" onclick="return confirm('Do you realy want to delete this topic?')"/> 230 <input type="hidden" name="discussion_action" value="delete"/> 11 <div> 12 <input type="submit" name="deletetopic" value="Delete Topic" onclick="return confirm('Do you realy want to delete this topic?')"/> 13 <input type="hidden" name="discussion_action" value="delete"/> 14 </div> 231 15 </form> 232 < ?cs if:!discussion.no_navigation ?>233 < form method="post" action="<?cs var:discussion.href ?>">16 <form method="post" action="<?cs var:discussion.href ?>"> 17 <div > 234 18 <input type="submit" name="movetopic" value="Move Topic"/> 235 19 <input type="hidden" name="discussion_action" value="move"/> 236 </ form>237 < ?cs /if ?>20 </div> 21 </form> 238 22 </div> 239 23 <?cs /if ?> 240 24 241 <?cs if:discussion.no_navigation ?> 242 </div> 243 <?cs else ?> 244 <?cs linclude "discussion-footer.cs" ?> 245 <?cs /if?> 246 247 25 <?cs linclude "discussion-footer.cs" ?> discussionplugin/0.10/tracdiscussion/templates/topic-add.cs
r1072 r2014 33 33 <div class="field"> 34 34 <label for="author">Author:</label><br/> 35 <?cs if: args.author?>36 <input type="text" name="author" value="<?cs var:args.author?>"/><br/>35 <?cs if:discussion.authname == 'anonymous' ?> 36 <input type="text" name="author" value="<?cs alt:args.author ?>anonymous<?cs /alt ?>"/><br/> 37 37 <?cs else ?> 38 <input type="text" name="author" value="<?cs var:discussion.authname ?>" /><br/>38 <input type="text" name="author" value="<?cs var:discussion.authname ?>" readonly="true"/><br/> 39 39 <?cs /if ?> 40 40 </div> discussionplugin/0.10/tracdiscussion/templates/topic-list.cs
r1131 r2014 1 1 <?cs include "macros.cs" ?> 2 <?cs include " my_macros.cs" ?>2 <?cs include "discussion-macros.cs" ?> 3 3 4 4 <?cs include "discussion-header.cs" ?> … … 15 15 <thead> 16 16 <tr> 17 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'id', 'ID', discussion.href + '/' + discussion.forum.id + '?') ?>18 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'subject', 'Subject', discussion.href + '/' + discussion.forum.id + '?') ?>19 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'author', 'Author', discussion.href + '/' + discussion.forum.id + '?') ?>20 <?cs call: my_sortable_th(discussion.order, discussion.desc, 'lastreply', 'Last Repl
