Changeset 2653

Show
Ignore:
Timestamp:
09/23/07 03:45:21 (1 year ago)
Author:
Blackhex
Message:
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • guestbookplugin/0.10/guestbook/core.py

    r1651 r2653  
    1 from __future__ import generators 
     1# -*- coding: utf8 -*- 
    22 
    3 # General includes 
    43import time 
    54 
    6 # Track includes 
    75from trac.core import * 
    86from trac.db import * 
     7from trac.wiki import wiki_to_html, wiki_to_oneliner 
     8from trac.web.chrome import add_stylesheet, add_script 
     9from trac.util import Markup, format_datetime 
     10 
    911from trac.web import IRequestHandler 
    10 from trac.wiki import wiki_to_html, wiki_to_oneliner 
    11 from trac.env import IEnvironmentSetupParticipant 
    12 from trac.web.chrome import INavigationContributor, ITemplateProvider, \ 
    13   add_stylesheet 
    1412from trac.perm import IPermissionRequestor 
    15 from trac.util import Markup, format_datetime 
     13from trac.web.chrome import INavigationContributor, ITemplateProvider 
     14 
     15# Determine SpamFilterPlugin presence. 
     16try: 
     17    from tracspamfilter.api import FilterSystem 
     18    has_spam_filter = True 
     19except: 
     20    has_spam_filter = False 
    1621 
    1722""" 
     
    95100            if req.args['action'] == 'newentry': 
    96101                req.perm.assert_permission('GUESTBOOK_APPEND') 
    97                 self._append_message(cursor, req.args['author'], 
    98                   req.args['title'], req.args['text']) 
     102 
     103                # get form values 
     104                author = req.args['author'] 
     105                title = req.args['title'] 
     106                text = req.args['text'] 
     107 
     108                # check for spam 
     109                self.log.debug('has_spam_filter: %s' % (has_spam_filter,)) 
     110                if has_spam_filter: 
     111                    FilterSystem(self.env).test(req, author, [(None, title), 
     112                      (None, text)]) 
     113 
     114                self._append_message(cursor, author, title, text) 
     115 
    99116            # process delete request 
    100117            if req.args['action'] == 'delete': 
     
    103120 
    104121        # adding stylesheets 
    105         add_stylesheet(req, 'common/css/default.css') 
    106122        add_stylesheet(req, 'common/css/wiki.css') 
    107123        add_stylesheet(req, 'guestbook/css/guestbook.css') 
     124 
     125        # adding scripts 
     126        add_script(req, 'common/js/trac.js') 
     127        add_script(req, 'common/js/wikitoolbar.js') 
    108128 
    109129        # passing variables to template 
  • guestbookplugin/0.10/guestbook/htdocs/css/guestbook.css

    r431 r2653  
     1/* Message list styles. */ 
    12div.guestbook 
    23{ 
     
    56} 
    67 
    7 .guestbook table.message 
     8div.guestbook div.message 
    89{ 
     10  width: 60%; 
    911  margin: auto; 
    1012  margin-top: 1em; 
    11   border: solid 1px #aaa; 
     13  border: 1px solid #d7d7d7; 
     14
     15 
     16div.guestbook div.message div.title 
     17
     18  font-weight: bold; 
     19  margin: 0em; 
     20  padding: 0.25em 1em 0.25em 1em; 
     21  background-color: #f7f7f7; 
     22  border-bottom: 1px solid #d7d7d7; 
     23
     24 
     25div.guestbook div.controls 
     26
     27  float: right; 
     28  padding: 0.5em; 
     29  padding-right: 2.5em; 
     30
     31 
     32div.guestbook div.controls a 
     33
     34  margin: 0.3em; 
     35
     36 
     37div.guestbook div.footer 
     38
     39  font-weight: bold; 
     40  margin: 0em; 
     41  padding: 0.5em; 
     42
     43 
     44div.guestbook div.author, div.guestbook div.time 
     45
     46  display: inline; 
     47  padding: 0em 0.5em; 
     48
     49 
     50 
     51/* Add message form styles. */ 
     52div.guestbook div.message div.body 
     53
     54  margin: 1em; 
     55
     56 
     57div.guestbook form 
     58
     59  margin: 2em; 
     60  margin-left: auto; 
     61  margin-right: auto; 
    1262  width: 60%; 
    1363} 
    1464 
    15 .guestbook tr 
     65div.guestbook form 
    1666{ 
    17   border-collapse: collapse
     67  overflow: auto
    1868} 
    19  
    20 .guestbook th 
    21 { 
    22   padding: 0.2em 0.5em 0.2em 0.5em; 
    23   font-weight: bold; 
    24 } 
    25  
    26 .guestbook td 
    27 { 
    28   padding: 0.2em 0.5em 0.2em 0.5em; 
    29 } 
    30  
    31 .guestbook .header 
    32 { 
    33   background-color: #ddd; 
    34 } 
    35  
    36 .guestbook .row 
    37 { 
    38  
    39 } 
    40  
    41 .guestbook .left 
    42 { 
    43   text-align: left; 
    44 } 
    45  
    46 .guestbook .right 
    47 { 
    48   text-align: right; 
    49 } 
    50  
    51 .guestbook .textfield 
    52 { 
    53   width: 60%; 
    54 } 
  • guestbookplugin/0.10/guestbook/init.py

    r1651 r2653  
     1# -*- coding: utf8 -*- 
     2 
    13from trac.core import * 
    24from trac.db import * 
     5 
    36from trac.env import IEnvironmentSetupParticipant 
    47 
  • guestbookplugin/0.10/guestbook/templates/guestbook.cs

    r432 r2653  
    22<?cs include "macros.cs" ?> 
    33 
    4 <div class="guestbook"> 
     4<div id="ctxtnav" class="nav"> 
     5</div> 
     6 
     7<div id="content" class="guestbook"> 
    58  <h1> 
    69    <?cs var:guestbook.title ?> 
    710  </h1> 
    811  <?cs each:message = guestbook.messages ?> 
    9     <table class="message"> 
    10       <tr class="header"> 
    11         <th class="left"> 
     12    <div class="message"> 
     13      <div class="header"> 
     14        <div class="title"> 
     15          <?cs var:message.title ?> 
     16        </div> 
     17        <div class="body"> 
     18          <?cs var:message.body ?> 
     19        </div> 
     20      </div> 
     21      <div class="controls"> 
     22        <?cs if:trac.acl.GUESTBOOK_DELETE ?> 
     23          <a href="<?cs var:trac.href.guestbook ?>?action=delete;id=<?cs var:message.id ?>">Delete</a> 
     24        <?cs /if ?> 
     25      </div> 
     26      <div class="footer"> 
     27        <div class="author"> 
    1228          <?cs var:message.author ?> 
    13         </th
    14         <th class="right"> 
     29        </div
     30        <div class="time"> 
    1531          <?cs var:message.time ?> 
    16         </th> 
    17       </tr> 
    18       <tr class="header"> 
    19         <?cs if:trac.acl.GUESTBOOK_DELETE ?> 
    20           <th class="left"> 
    21             <?cs var:message.title?> 
    22           </th> 
    23           <th class="right"> 
    24             <a href="<?cs var:trac.href.guestbook ?>?action=delete;id=<?cs var:message.id ?>"> 
    25               Delete 
    26             </a> 
    27           </th> 
    28         <?cs else ?> 
    29           <th class="left" colspan="2"> 
    30             <?cs var:message.title?> 
    31           </th> 
    32         <?cs /if ?> 
    33       </tr> 
    34       <tr class="row"> 
    35         <td class="left" colspan="2"> 
    36           <?cs var:message.body ?> 
    37         </td> 
    38       </tr> 
    39     </table> 
     32        </div> 
     33      </div> 
     34    </div> 
    4035  <?cs /each ?> 
    4136 
     
    4439      <fieldset> 
    4540        <legend> 
    46           Add entry:<br
     41          Add entry:<br/
    4742        </legend> 
    4843        <div class="field"> 
    49           <label> 
    50             Name:<br> 
    51             <input type="text" name="author" value=""/> 
    52           </label> 
     44          <label for="author">Author:</label><br/> 
     45          <input type="text" id="author" name="author" value=""/> 
    5346        </div> 
    5447        <div class="field"> 
    55           <label> 
    56             Title:<br> 
    57             <input class="textfield" type="text" name="title" value=""/> 
    58           </label> 
     48          <label for="title">Title:</label><br/> 
     49          <input type="text" id="title" name="title" value=""/> 
    5950        </div> 
    6051        <div class="field"> 
    61           <label> 
    62             Text:<br> 
    63             <textarea class="textfield" name="text" rows="20"> 
     52          <label for="text">Text:</label><br/> 
     53          <textarea class="wikitext" id="text" name="text" rows="10" cols="78"> 
    6454Enter your message here... 
    65             </textarea> 
    66           </label> 
     55          </textarea> 
    6756        </div> 
    6857        <input type="hidden" name="action" value="newentry"/>