Software Freedom Law Center

Changeset 14

Show
Ignore:
Timestamp:
01/20/06 17:46:37 (3 years ago)
Author:
orion
Message:


Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/agree.pl

    r13 r14  
    4545if (($name, $pass) = split(/:/, decode_base64(cookie('__ac')))) { 
    4646     $name =~ s/\"//g; 
    47      $server = Frontier::Client->new(url => 'http://stet_auth:fai1Iegh@gplv3.fsf.org:8800/launch/acl_users/Users/acl_users', 
    48                                     username => "stet_auth", 
    49                                     password =>  "fai1Iegh"); 
     47     $server = Frontier::Client->new(url => 'http://', 
     48                                    username => "", 
     49                                    password =>  ""); 
    5050     
    5151     
  • trunk/email-submit.pl

    r10 r14  
    6464 
    6565#$server = Frontier::Client->new(url => "http://gplv3.fsf.org:8800/launch/acl_users/Users/acl_users", 
    66 #                               username => "stet_auth", 
    67 #                               password =>  "fai1Iegh"); 
     66#                               username => "" 
     67#                               password =>  ""); 
    6868 
    69 #                               url => "https://www.fsf.org:443/acl_users/Users/acl_users", 
    70 #                               username => "gplv3_xmlrpc", 
    71 #                               password => "ooPh2aem"); 
    7269 
    7370#$resp = $server->call('getUsers'); 
  • trunk/email.html

    r13 r14  
    11<html> 
    22<head> 
    3     <title>read GPLv3 comments: </title> 
     3    <title>how to email your comments on the gplv3</title> 
    44    <link rel="stylesheet" type="text/css" href="/comments/stet.css"/> 
    55</head> 
  • trunk/rtNoAuth/changeshown.html

    r12 r14  
    11%# {{{ BEGIN BPS TAGGED BLOCK 
    22%#  
    3 %# COPYRIGHT: 
    4 %# 
    53%# Copyright (C) 2006   Software Freedom Law Center, Inc. 
    64%# Modified-By: Orion Montoya <orion@mdcclv.com> 
     
    2624%# along with this software.  If not, see <http://www.gnu.org/licenses/>. 
    2725%#   
     26%# COPYRIGHT: 
     27%# 
    2828%# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC  
    2929%#                                          <jesse@bestpractical.com> 
     
    4949%#  
    5050%#  
    51 %# CONTRIBUTION SUBMISSION POLICY: 
    52 %#  
    53 %# (The following paragraph is not intended to limit the rights granted 
    54 %# to you to modify and distribute this software under the terms of 
    55 %# the GNU General Public License and is only of importance to you if 
    56 %# you choose to contribute your changes and enhancements to the 
    57 %# community by submitting them to Best Practical Solutions, LLC.) 
    58 %#  
    59 %# By intentionally submitting any modifications, corrections or 
    60 %# derivatives to this work, or any other work intended for use with 
    61 %# Request Tracker, to Best Practical Solutions, LLC, you confirm that 
    62 %# you are the copyright holder for those contributions and you grant 
    63 %# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable, 
    64 %# royalty-free, perpetual, license to use, copy, create derivative 
    65 %# works based on those contributions, and sublicense and distribute 
    66 %# those contributions and any derivatives thereof. 
    67 %#  
    6851%# }}} END BPS TAGGED BLOCK 
    6952% 
     
    7154<head> 
    7255<title>gpl comment system - query builder</title> 
    73 %# <link rel="stylesheet" href="/rt/NoAuth/webrt.css" type="text/css"> 
    7456<script type="text/javascript" src="/comments/stet.js"></script> 
     57<link rel="stylesheet" type="text/css" href="/comments/stet.css"/> 
    7558</head> 
    7659<body> 
    77 <FORM METHOD="GET" ACTION="/rt/NoAuth/changeshown.html" NAME="BuildQuery"> 
    78 <input type=hidden name=SearchId value="<%$SearchId%>"> 
    79 <input type=hidden name=Query value="<%$Query%>"> 
    80 %# <input type=hidden name=Format value="<%$Format%>"> 
     60<div id="topbar" class="topbar"> 
     61<span id="statustext" class="statustext">Select what you want to search for</span> 
     62% my ($CurrentUser, $resp, $name) = getUser("foo"); 
     63% if ($name) { 
     64<span id="login" class="login">you are <% $name %>: <a href="http://gplv3.fsf.org/logout">logout</a></span></div> 
     65% } else { 
     66</span><span id="login" class="login">you could <a href="http://gplv3.fsf.org/login_form?came_from=/comments/rt/changeshown.html">login</a></span></div> 
     67% } 
     68<& header.html &> 
     69<div id="maintext"> 
     70<FORM METHOD="GET" ACTION="/comments/rt/changeshown.html" NAME="BuildQuery"> 
     71<input type=hidden name=SearchId value="new"> 
     72<input type=hidden name=Query value=""> 
    8173% my $qs; 
    82 % if (!$came_from) { 
     74% if (!$ARGS{'came_from'}) { 
    8375% $qs = $ENV{'HTTP_REFERER'}; 
    8476% $qs =~ s/(.*)\?.*/$1/; 
    85 %# print STDERR "s-b-q qs $qs\n"
    86 %# print STDERR "s-b-q H_R ".$ENV{'HTTP_REFERER'}."\n"; 
    87 %# print STDERR "s-b-q Q_S ".$ENV{'QUERY_STRING'}."\n"
     77% $qs =~ s/.*\/(.*)/$1/
     78% } else { 
     79% $qs = $ARGS{'came_from'}
    8880% } 
    89 % else { 
    90 % $qs = $came_from; 
    91 % } 
     81% $qs =~ s/(.html|.xml)$//; 
     82<h3 class="searchheader">Search for comments on <% $qs %></h3> 
    9283<input type=hidden name="came_from" value="<% $qs %>"> 
    93 <% $qs %> 
    9484<table> 
    9585<tr> 
    9686<td valign=top class="boxcontainer"> 
    97 <& Elements/PickCriteria, query => $Query, cfqueues => \%queues &> 
    98 <& /Elements/Submit, Caption => "Do the Search", Label => loc('Search'), Name => 'DoSearch'&> 
    99 <& /Elements/Submit, Caption => loc('Add additional criteria'), Label => loc('Add'), Name => 'AddClause'&> 
    100 <input type=hidden name=" 
    101  
     87<p>Aggregator:<input type=radio NAME="AndOr" CHECKED VALUE="AND">AND</input> 
     88<input type=radio NAME="AndOr" VALUE="OR">OR</input> 
     89</p> 
     90  <tr><td> 
     91<tr><td align=right> 
     92<SELECT NAME="AttachmentField"> 
     93<OPTION VALUE="Content">Comment</OPTION> 
     94<OPTION VALUE="Subject">Subject</OPTION> 
     95</SELECT> 
     96</td><td> 
     97<SELECT NAME ="AttachmentOp"> 
     98<OPTION VALUE="LIKE" SELECTED>contains</OPTION> 
     99<OPTION VALUE="NOT LIKE" >does not contain</OPTION> 
     100</SELECT> 
     101</td><td> 
     102<Input Name="ValueOfAttachment" Size=20> 
     103</td></tr> 
     104 
     105<tr><td align=right> 
     106Type 
     107</td><td> 
     108<SELECT NAME ="QueueOp"> 
     109<OPTION VALUE="=" SELECTED>is</OPTION> 
     110<OPTION VALUE="!=" >isn&#39;t</OPTION> 
     111</SELECT> 
     112</td><td> 
     113<SELECT NAME ="ValueOfQueue"> 
     114<OPTION VALUE="">-</OPTION> 
     115<OPTION VALUE="Inbox" >Inbox 
     116</OPTION> 
     117<OPTION VALUE="Issues" >Issues 
     118</OPTION> 
     119</SELECT> 
     120</td></tr> 
     121 
     122<tr><td class="label" align="right"> 
     123<SELECT NAME="ActorField"> 
     124<OPTION VALUE="Creator">Submitter</OPTION> 
     125</SELECT> 
     126</td><td> 
     127<SELECT NAME ="ActorOp"> 
     128<OPTION VALUE="=" SELECTED>is</OPTION> 
     129<OPTION VALUE="!=" >isn&#39;t</OPTION> 
     130</SELECT> 
     131</td><td> 
     132<Input type="text" NAME="ValueOfActor" size=20> 
     133</td></tr> 
     134 
     135<tr><td align=right> 
     136<SELECT NAME="DateField"> 
     137<OPTION VALUE="Created">Created</OPTION> 
     138<OPTION VALUE="LastUpdated">Last Updated</OPTION> 
     139<OPTION VALUE="Updated">Updated</OPTION> 
     140</SELECT> 
     141</td><td> 
     142<SELECT NAME ="DateOp"> 
     143<OPTION VALUE="&lt;">Before</OPTION> 
     144<OPTION VALUE="=">On</OPTION> 
     145<OPTION VALUE="&gt;">After</OPTION> 
     146</SELECT> 
     147</td><td> 
     148<INPUT NAME="ValueOfDate" VALUE="" size=16>  
     149</td></tr> 
     150 
     151<tr><td align=right> 
     152<SELECT NAME="LinksField"> 
     153<OPTION VALUE="HasMember">Is a parent/Issue of</OPTION> 
     154<OPTION VALUE="MemberOf">Is a child of/belongs to Issue</OPTION> 
     155<OPTION VALUE="RefersTo">Links to external object</OPTION> 
     156</SELECT> 
     157</td><td> 
     158<SELECT NAME ="LinksOp"> 
     159<OPTION VALUE="LIKE" SELECTED>contains</OPTION> 
     160<OPTION VALUE="NOT LIKE" >doesn&#39;t contain</OPTION> 
     161</SELECT> 
     162</td><td> 
     163<INPUT Name="ValueOfLinks" value="" SIZE=5> 
     164</td></tr> 
     165<tr><td align=right> 
     166Id 
     167</td><td> 
     168<SELECT NAME ="idOp"> 
     169<OPTION VALUE="&lt;" 
     170>less than</OPTION> 
     171<OPTION VALUE="=" 
     172>equal to</OPTION> 
     173<OPTION VALUE="&gt;" 
     174>greater than</OPTION> 
     175<OPTION VALUE="!=" 
     176>not equal to</OPTION> 
     177</SELECT> 
     178</td><td> 
     179<INPUT Name="ValueOfid" SIZE=5> 
     180</td></tr> 
     181 
     182 
     183<tr><td class=label align="right"> 
     184Text selected for comment 
    102185</td> 
    103 <td valign=top class="boxcontainer"> 
    104 <& /Elements/TitleBoxStart, title => loc("Query") . ": " .$Description &> 
    105 <& Elements/NewListActions, actions => \@actions &> 
    106 <select size="10" name="clauses" style="width: 100%"> 
    107 <%$optionlist|n%> 
     186<td> 
     187<SELECT NAME ="&#39;CF.NoteSelection&#39;Op"> 
     188<OPTION VALUE="LIKE" 
     189>contains</OPTION> 
     190<OPTION VALUE="NOT LIKE" 
     191>doesn&#39;t contain</OPTION> 
     192<OPTION VALUE="=" 
     193>is</OPTION> 
     194<OPTION VALUE="!=" 
     195>isn&#39;t</OPTION> 
     196</SELECT> 
     197</td> 
     198<td> 
     199<input name="ValueOf&#39;CF.NoteSelection&#39;" size="20"> 
     200</td></tr> 
     201 
     202<tr><td class=label align="right"> 
     203Filename commented on 
     204</td> 
     205<td> 
     206<SELECT disabled NAME ="&#39;CF.NoteUrl&#39;Op"> 
     207<OPTION VALUE="LIKE" 
     208>matches</OPTION> 
     209<OPTION VALUE="NOT LIKE" 
     210>doesn&#39;t contain</OPTION> 
     211<OPTION VALUE="=" 
     212>is</OPTION> 
     213<OPTION VALUE="!=" 
     214>isn&#39;t</OPTION> 
     215<OPTION VALUE="&lt;" 
     216>less than</OPTION> 
     217<OPTION VALUE="&gt;" 
     218>greater than</OPTION> 
     219</SELECT> 
     220</td> 
     221<td> 
     222<input disabled name="ValueOf&#39;CF.NoteUrl&#39;" size="20" value="<% $qs %>"> 
     223</td></tr> 
     224 
     225<input type="hidden" NAME="&#39;CF.NoteUrl&#39;Op" VALUE="LIKE"> 
     226<input type="hidden" name="ValueOf&#39;CF.NoteUrl&#39;" value="<% $qs %>"> 
     227 
     228 
     229 
     230<tr><td class=label align="right"> 
     231Section id 
     232</td> 
     233<td> 
     234<SELECT NAME ="&#39;CF.NoteStartNodeId&#39;Op"> 
     235<OPTION VALUE="LIKE" 
     236>contains</OPTION> 
     237<OPTION VALUE="NOT LIKE" 
     238>doesn&#39;t contain</OPTION> 
     239<OPTION VALUE="=" 
     240>is</OPTION> 
     241<OPTION VALUE="!=" 
     242>isn&#39;t</OPTION> 
     243<OPTION VALUE="&lt;" 
     244>less than</OPTION> 
     245<OPTION VALUE="&gt;" 
     246>greater than</OPTION> 
     247</SELECT> 
     248</td> 
     249<td> 
     250<input name="ValueOf&#39;CF.NoteStartNodeId&#39;" size="20"> 
     251</td></tr> 
     252 
     253<tr><td class=label align="right"> 
     254 
     255Agreeers  
     256</td> 
     257<td> 
     258<SELECT NAME ="&#39;CF.Agreeers&#39;Op"> 
     259<OPTION VALUE="LIKE" 
     260>contains</OPTION> 
     261<OPTION VALUE="NOT LIKE" 
     262>doesn&#39;t contain</OPTION> 
     263<OPTION VALUE="=" 
     264>is</OPTION> 
     265<OPTION VALUE="!=" 
     266>isn&#39;t</OPTION> 
     267<OPTION VALUE="&lt;" 
     268>less than</OPTION> 
     269<OPTION VALUE="&gt;" 
     270>greater than</OPTION> 
     271</SELECT> 
     272</td> 
     273<td> 
     274<input name="ValueOf&#39;CF.Agreeers&#39;" size="20"> 
     275</td></tr> 
     276 
     277<tr><td class=label align="right"> 
     278DiscussionGroup  
     279</td> 
     280<td> 
     281<SELECT NAME ="&#39;CF.DiscussionGroup&#39;Op"> 
     282<OPTION VALUE="LIKE" 
     283>contains</OPTION> 
     284<OPTION VALUE="NOT LIKE" 
     285>doesn&#39;t contain</OPTION> 
     286<OPTION VALUE="=" 
     287>is</OPTION> 
     288<OPTION VALUE="!=" 
     289>isn&#39;t</OPTION> 
     290<OPTION VALUE="&lt;" 
     291>less than</OPTION> 
     292<OPTION VALUE="&gt;" 
     293>greater than</OPTION> 
     294</SELECT> 
     295</td> 
     296<td> 
     297<select name="ValueOf&#39;CF.DiscussionGroup&#39;"> 
     298<option value="" SELECTED>-</option> 
     299<option value="NULL">(no value)</option> 
     300<option value="A">A</option> 
     301<option value="B">B</option> 
     302<option value="C">C</option> 
     303<option value="D">D</option> 
     304<option value="E">E</option> 
     305<option value="F">F</option> 
    108306</select> 
    109 </td></tr><tr><td bgcolor="#dddddd" colspan="2"> 
    110 <center> 
    111 <input type=submit name="Up" value="^"> 
    112 <input type=submit name="Down" value="v"> 
    113 <input type=submit name="Left" value="<"> 
    114 <input type=submit name="Right" value=">"> 
    115 <input type=submit name="DeleteClause" value="Delete"> 
    116 <br /> 
    117 <input type=submit name="Clear" value="Clear"> 
    118 <input type=submit name="Toggle" value="And/Or"> 
    119 %#<input type=submit name="EditQuery" value="Advanced"> 
    120 </center> 
    121 <& /Elements/TitleBoxEnd &> 
    122 <br> 
    123 <& Elements/EditSearches, CurrentSearch => $search_hash, Dirty => $dirty, SearchId => $SearchId &> 
     307</td></tr> 
     308<tr> 
     309<td class=label align="right"> 
     310Rows per page: 
     311</td><td> 
     312<SELECT NAME ="RowsPerPage"> 
     313<OPTION VALUE="0" > 
     314Unlimited 
     315</OPTION> 
     316<OPTION VALUE="10" > 
     31710 
     318</OPTION> 
     319<OPTION VALUE="30" SELECTED> 
     32030 
     321</OPTION> 
     322<OPTION VALUE="50" > 
     32350 
     324</OPTION> 
     325<OPTION VALUE="100" > 
     326100 
     327</OPTION> 
     328</SELECT> 
    124329</td> 
    125330</tr> 
    126 <tr> 
    127 <td colspan=2 class="boxcontainer"> 
    128  
    129 <& Elements/DisplayOptions, %ARGS, Format=> $Format, 
    130 AvailableColumns => $AvailableColumns,  CurrentFormat => $CurrentFormat, RowsPerPage => $RowsPerPage, OrderBy => $OrderBy, Order => $Order &> 
    131 </td> 
    132 </tr> 
     331 
     332 
    133333</table> 
     334 
     335<TABLE WIDTH=100% CELLSPACING=0 BORDER=0 CELLPADDING=0 > 
     336<TR> 
     337<TD> 
     338&nbsp; 
     339</TD> 
     340<TD ALIGN=RIGHT VALIGN=CENTER> 
     341<B>Find comments</b> <INPUT TYPE=SUBMIT 
     342NAME="DoSearch" 
     343 VALUE='Search'> 
     344</TD> 
     345</TR> 
     346</TABLE> 
     347 
     348</div> 
     349 
    134350</FORM> 
    135  
     351</body> 
     352</html> 
    136353<%INIT> 
    137354use Tree::Simple; 
     355 
    138356 
    139357my $search_hash = {}; 
     
    173391$Description ||= $search_hash->{'Description'}; 
    174392$SearchId ||= $search_hash->{'SearchId'} || 'new'; 
    175 $Order ||= $search_hash->{'Order'} || 'ASC'; 
     393$Order ||= $search_hash->{'Order'} || 'DESC'; 
    176394$OrderBy ||= $search_hash->{'OrderBy'} || 'id'; 
    177 $RowsPerPage = ($search_hash->{'RowsPerPage'} || 50) unless defined ($RowsPerPage); 
     395$RowsPerPage = ($search_hash->{'RowsPerPage'} || 30) unless defined ($RowsPerPage); 
    178396$search ||= $search_hash->{'Object'}; 
    179397# }}} 
     
    8021020# {{{ Show the results, if we were asked. 
    8031021if ( $ARGS{"DoSearch"} ) { 
    804 #    $m->comp("stetwrap.html" , Query => $Query, Format => $Format, Order => $Order, OrderBy => $OrderBy, Rows => $RowsPerPage); 
    805 my $redirurl = "$came_from?Query=$Query&Order=$Order&OrderBy=$OrderBy&Rows=$RowsPerPage"; 
     1022my $redirurl = "/comments/$came_from?Query=$Query&Order=$Order&OrderBy=$OrderBy&Rows=$RowsPerPage"; 
    8061023   $m->redirect($redirurl); 
    8071024    $m->abort(); 
     
    8281045 
    8291046<%ARGS> 
    830 $NewQuery => 0 
    8311047$SearchId => undef 
    8321048$Query => undef 
     
    8351051$Order => undef 
    8361052$OrderBy => undef 
    837 $RowsPerPage => undef 
     1053$RowsPerPage => 30 
    8381054$HideResults => 0 
    8391055$came_from => 'http://gplv3.fsf.org/comments/gplv3-draft-1.xml' 
     1056$Delete => 1 
     1057$NewQuery => 1 
    8401058</%ARGS> 
     1059 
     1060 
  • trunk/rtNoAuth/Elements/ShowLink

    r10 r14  
    4444%#  
    4545%# }}} END BPS TAGGED BLOCK 
     46% if (!$StetId) { 
    4647<A href="<% $URI->Resolver->HREF %>"> 
    4748% if ($URI->IsLocal) { 
     
    4950% if (UNIVERSAL::isa($member, "RT::Ticket")) { 
    5051%# <%$member->Id%>: (<%$member->OwnerObj->Name%>) <%$member->Subject%> [<% loc($member->Status) %>] 
    51 <%$member->Id%>: (<%$member->OwnerObj->Name%>) <%$member->Subject%> 
     52<%$member->Id%>: (<%$member->CreatorObj->Name%>) <%$member->Subject%> 
    5253% } elsif ( UNIVERSAL::can($member, 'Name')) { 
    5354<%$URI->Resolver->AsString%>: <%$member->Name%> 
     
    5960% } 
    6061</a> 
     62% } else { 
     63% my $member = $URI->Object; 
     64<a href="/rt/NoAuth/readsay.html?id=<% $member->Id %>"><%$member->Id%>: (<%$member->CreatorObj->Name%>) <%$member->Subject%></a> 
     65% } 
    6166<%ARGS> 
    6267$URI => undef 
     68$StetId => undef 
    6369</%ARGS> 
  • trunk/rtNoAuth/Logout.html

    r10 r14  
    5050</HEAD> 
    5151<BODY> 
    52 <p><&|/l&>You have been logged out of RT.</&> 
    53  
     52<p><&|/l&>You have been logged out of RT.</&></p> 
     53<p>You have not, however, been logged out of the rest of the gplv3 site; you probably should <a href="/logout">logout of GPLv3 site too</a>. 
    5454<br> 
    5555<br> 
     
    6161        tied(%session)->delete; 
    6262} 
    63 $m->abort(); 
     63# $m->abort(); 
    6464</%PERL> 
    6565 
  • trunk/rtNoAuth/readsay.html

    r12 r14  
    2828</head> 
    2929<body> 
    30 <!-- <div id="maintext"> --> 
     30<div id="topbar" class="topbar"> 
     31<span id="statustext" class="statustext"> 
    3132% if ($Tickets) { 
    32 <h3> Showing comments where <% humanQuery($ARGS{'Query'}) |n %> <a class="rsslink" href="<% $rsslink %>">[rss]</a> <a href="/comments/<% $Tickets->First->FirstCustomFieldValue('NoteUrl') %>?Query=<% $ARGS{'Query'} %>">[see on license]</a><h3> 
    33 <h4>Found <% $Tickets->CountAll()%></h4> 
     33Showing comments where <% humanQuery($ARGS{'Query'}) |n %> (Found <% $Tickets->CountAll()%>) <br/> <a class="rsslink" href="<% $rsslink %>">[rss]</a> <a href="/comments/<% stripCrap($Tickets->First->FirstCustomFieldValue('NoteUrl')) %>?Query=<% $ARGS{'Query'} %>">[see on license]</a> <a href="/comments/rt/changeshown.html?came_from=<% stripCrap($Tickets->First->FirstCustomFieldValue('NoteUrl')) %>">change</a> 
    3434% } else { 
    35 <h3> Showing comment <a href="/rt/NoAuth/readsay.html?id=<% $ARGS{'id'} %>"><% $ARGS{'id'} %></a> <a class="rsslink" href="<% $rsslink %>">[rss]</a> <a href="/comments/<% $Ticket->FirstCustomFieldValue('NoteUrl') %>?id=<% $ARGS{'id'} %>#<% $Ticket->FirstCustomFieldValue('NoteStartNodeId') %>">[see on license]</a></h3> 
    36 % } 
     35Showing comment <a href="/comments/rt/readsay.html?id=<% $ARGS{'id'} %>"><% $ARGS{'id'} %></a> <a class="rsslink" href="<% $rsslink %>">[rss]</a> <a href="/comments/<% stripCrap($Ticket->FirstCustomFieldValue('NoteUrl')) %>?id=<% $ARGS{'id'} %>#<% $Ticket->FirstCustomFieldValue('NoteStartNodeId') %>">[see on license]</a> <a href="/comments/rt/changeshown.html?came_from=<% stripCrap($Ticket->FirstCustomFieldValue('NoteUrl')) %>">change</a> 
     36% } 
     37% if ($name) { 
     38</span><span id="login" class="login">you are <% $name %>: <a href="http://gplv3.fsf.org/logout">logout</a></span></div> 
     39% } else { 
     40</span><span id="login" class="login">you could <a href="http://gplv3.fsf.org/login_form?came_from=/comments/rt/readsay.html?<% $Tickets ? 'Query='.$ARGS{'Query'} : 'id='.$ARGS{'id'} %>">login</a></span></div> 
     41% } 
     42<& header.html &> 
     43<div id="readsaymain"> 
     44<span id="listactions"> 
     45<& Elements/ListActions, actions => \@results &> 
     46</span> 
    3747% 
    3848% while (my $item = $Tickets ? $Tickets->Next : $Ticket) { 
    39 <div class="onecomment"> 
    40 <& /Elements/ListActions, actions => \@msgresults &> 
    41 <& /Elements/ListActions, actions => \@linkresults &> 
    42 <h4><% $thing %> <a href="readsay.html?id=<% $item->id %>"><% $item->id %>: <% $item->Subject %></a></h4> 
    43 <span class="tktheader">Regarding the text:</span> <span class="ontextText"><% $scrubber->scrub($item->FirstCustomFieldValue('NoteSelection')) %></span><br/> 
    44 In section: <span class="nodeLink"><% $scrubber->scrub($item->FirstCustomFieldValue('NoteStartNodeId')) %></span><br/> 
    45 Submitted by: <% $item->CreatorObj->Name %><br/> 
    46 % my ($agree,$agr_count) = showAgree(\$item); 
    47 % print STDERR "agree is $agree\n"; 
    48 <% $agree |n %><br/> 
    49 <span class="agreecount"><% $agr_count %> agree</span></span><br/> 
    50 comments: <% getThread(\$item) |n %><br/> 
    51 % if ($resp == 1) { 
    52 <form action="readsay.html" method="POST" name="TicketUpdate" enctype="multipart/form-data"> 
    53 <input type="hidden" name="id" value="<% $item->id %>"> 
    54 % } 
    55 % if (($makeissue) && ($item->Queue != $issuequeue)) { 
    56 <input type="checkbox" value="1" name="MakeIssue"/>Upgrade this to an Issue<br/> 
    57 % } 
    58 <span class="TktLabel">Parents</span> 
    59 % if (!$item->Members->GotoFirstItem) { 
    60 <em>this <% $thing %> does not have any parents </em><br/> 
    61 % } 
    62 % while (my $link = $item->MemberOf->Next) { 
    63         <& Elements/ShowLink, URI => $link->TargetURI &><span class="TktInput"> 
    64 % if ($resp == 1) { 
    65         <span class="TktInput indent">[delete: <INPUT TYPE=CHECKBOX NAME="DeleteLink--<%$link->Type%>-<%$link->Target%>" value="1">]</span> 
    66 % } 
     49 <div class="onecomment"> 
     50 
     51  <h4><% thingType(\$item) %> <a href="readsay.html?id=<% $item->id %>"><% $item->id %>: <% $item->Subject %></a></h4> 
     52  <span class="tktheader">Regarding the text:</span> <span class="ontextText"><% $scrubber->scrub($item->FirstCustomFieldValue('NoteSelection')) %></span><br/> 
     53    In section: <span class="nodeLink"><a href="/comments/rt/readsay.html?Query=%20'CF.NoteStartNodeId'%20LIKE%20'<% $scrubber->scrub($item->FirstCustomFieldValue('NoteStartNodeId')) %>'%20AND%20'CF.NoteUrl'%20LIKE%20'<%stripCrap($item->FirstCustomFieldValue('NoteUrl'))%>'%20"><% $scrubber->scrub($item->FirstCustomFieldValue('NoteStartNodeId')) %></a></span><br/> 
     54%#    In section: <span class="nodeLink"><a href="/comments/<%stripCrap($item->FirstCustomFieldValue('NoteUrl'))%>?Query=%20'CF.NoteStartNodeId'%20LIKE%20'<% $scrubber->scrub($item->FirstCustomFieldValue('NoteStartNodeId')) %>'%20AND%20'CF.NoteUrl'%20LIKE%20'<%stripCrap($item->FirstCustomFieldValue('NoteUrl'))%>'%20"><% $scrubber->scrub($item->FirstCustomFieldValue('NoteStartNodeId')) %></a></span><br/> 
     55  Submitted by: <a href="/comments/<%stripCrap($item->FirstCustomFieldValue('NoteUrl'))%>?Query=%20Requestor.Name%20LIKE%20'<% $item->CreatorObj->Name %>'%20AND%20'CF.NoteUrl'%20LIKE%20'<%stripCrap($item->FirstCustomFieldValue('NoteUrl'))%>'%20"><% $item->CreatorObj->Name %></a><br/> 
     56%# my ($agrees,$agr_count) = showAgree(\$item); 
     57%# print STDERR "agree is $agree\n"; 
     58%#  <% $agree |n %><br/> 
     59%#  <span class="agreecount"><% $agr_count %> agree</span></span><br/> 
     60  comments: <% getThread(\$item) |n %><br/> 
     61% if ($Ticket) { 
     62%  if ($resp == 1) { 
     63    <form action="readsay.html" method="POST" name="TicketUpdate" enctype="multipart/form-data"> 
     64       <input type="hidden" name="id" value="<% $item->id %>"> 
     65%  } 
     66    <span class="TktLabel">Parents:</span> 
     67%   if ($item->MemberOf->GotoFirstItem) { 
     68       <em>this <% thingType(\$item) %> does not have any parents </em><br/> 
     69%   } 
     70<br> 
     71%   while (my $link = $item->MemberOf->Next) { 
     72       <& Elements/ShowLink, URI => $link->TargetURI, StetId => $link->id  &><span class="TktInput"> 
     73%      if ($HasIssueRights == 1) { 
     74           <span class="TktInput">[delete: <INPUT TYPE=CHECKBOX NAME="DeleteLink--<% $link->Type %>-<% $link->Target %>" value="1">]</span> 
     75%      } 
     76       <br/> 
     77%   } 
     78%  if ($HasIssueRights) { 
     79       <span class="TktInput indent">add new: <INPUT NAME="<% $item->id %>-MemberOf"> <span class="inputcaption">[comment id numbers, space separated]</span></span> 
     80%  } 
     81    <br/> 
     82    <span class="TktLabel">Children:</span> 
     83%   if ($item->Members->GotoFirstItem) { 
     84        <em>this <% thingType(\$item) %> does not have any children </em><br/> 
     85%   } 
    6786<br/> 
    68 % } 
    69 % if ($makeissue) { 
    70 <span class="TktInput indent">add new: <INPUT NAME="<% $item->id %>-MemberOf"> <span class="inputcaption">[comment id numbers, space separated]</span></span> 
    71 % } 
     87%   while (my $link = $item->Members->Next) { 
     88        <& Elements/ShowLink, URI => $link->BaseURI, StetId => $link->id &></span> 
     89%      if ($HasIssueRights) { 
     90            <span class="TktInput">[delete: <INPUT TYPE=CHECKBOX NAME="DeleteLink-<% $link->Base %>-<% $link->Type %>" value="1">]</span> 
     91%      } 
     92        <br/> 
     93%   } 
     94%  if ($HasIssueRights) { 
     95        <span class="TktInput indent">add new: <INPUT NAME="MemberOf-<% $item->id %>"> <span class="inputcaption">[comment id numbers, space separated]</span></span> 
     96%  } 
     97    <br/> 
     98    <span class="TktLabel">Links:</span> 
     99%   if ($item->RefersTo->GotoFirstItem) { 
     100        <em>this <% thingType(\$item) %> does not link to any external resources</em> 
     101%   } 
    72102<br/> 
    73 <span class="TicketLabel">Children: 
    74 % if (!$item->Members->GotoFirstItem) { 
    75 <em>this <% $thing %> does not have any children </em><br/> 
    76 % } 
    77 % while (my $link = $item->Members->Next) { 
    78         <& Elements/ShowLink, URI => $link->BaseURI &></span> 
    79 % if ($makeissue) { 
    80  <span class="TktInput indent">[delete: <INPUT TYPE=CHECKBOX NAME="DeleteLink-<%$link->Base%>-<%$link->Type%>-" value="1">]</span> 
    81 % } 
     103%   while (my $link = $item->RefersTo->Next) { 
     104        <A HREF="<% $link->Target %>"><% $link->Target %></A> 
     105%       if ($HasIssueRights) { 
     106            <span class="TktInput">[delete: <INPUT TYPE=CHECKBOX NAME="DeleteLink-<% $link->Base %>-<% $link->Type %>" value="1">]</span> 
     107%           } 
    82108<br/> 
    83 % } 
    84 % if ($makeissue) { 
    85 <span class="TktInput indent">add new: <INPUT NAME="MemberOf-<% $item->id %>"> <span class="inputcaption">[comment id numbers, space separated]</span></span> 
    86 </span><br/> 
    87 <span class="TktInput">link to external item(s): <INPUT NAME="<% $item->id %>-RefersTo"> <span class="inputcaption">[URIs with protocol://, space separated]</span></span> 
    88 % } 
    89 </span><br/> 
    90 % if ($resp == 1) { 
    91 <textarea class="messagebox" COLS=72 ROWS=15 WRAP=HARD NAME="UpdateContent" onfocus="if(this.value=='Enter additional comments here') {this.value='';}" onblur="if(this.value==''){this.value='Enter additional comments here';}"> 
    92 % if($ARGS{'addcomments'}) { 
    93 <% $ARGS{'addcomments'} %> 
    94 % } 
    95 % else { 
    96 Enter additional comments here 
    97 % } 
    98 </textarea><br/> 
    99 % if ($makeissue) { 
    100 <INPUT TYPE=SUBMIT NAME="SubmitTicket" VALUE='Make changes'></form> 
    101 % } else { 
    102 <INPUT TYPE=SUBMIT NAME="SubmitTicket" VALUE='Add comment'></form> 
    103 % } 
    104 <!-- </div> --> 
    105 % } 
    106 % $Ticket = ''; 
    107 % } 
     109%   } 
    108110% 
     111%  if ($HasIssueRights) { 
     112        <span class="TktInput indent">link to external item(s): <INPUT NAME="<% $item->id %>-RefersTo"> <span class="inputcaption">[URIs with protocol://, space separated]</span></span><br/> 
     113%  } 
     114%####  customfield picker doesn't show which groups are related 
     115%  if ($HasIssueRights) { 
     116%  my $groupRows = 7; 
     117%     my $CustomField = RT::CustomField->new($CurrentUser); 
     118%     $CustomField->Load(8); 
     119%     my $Values  = $item->CustomFieldValues($CustomField->id); 
     120<br>&nbsp 
     121    <span class="groupselect"><span class="TktLabel select">Discussion Groups</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
     122%  if (($HasIssueRights) && ($item->Queue != $issuequeue)) { 
     123       <input type="checkbox" value="1" name="MakeIssue"/><span class="TktLabel">Upgrade this to an Issue</span><br/> 
     124%  } 
     125<br> 
     126      <input type="hidden" name="Ticket-<% $item->id %>-CustomField-<%$CustomField->Id%>-Values-Magic" value="1"> 
     127      <span class="TktInput indent"><select name="Ticket-<% $item->id %>-CustomField-<%$CustomField->Id%>-Values" 
     128        size="<%$groupRows%>" 
     129        <%$CustomField->Type eq 'SelectMultiple' && 'MULTIPLE'%>> 
     130%       my $CustomFieldValues = $CustomField->Values(); 
     131%       my $selected; 
     132%       while (my $value = $CustomFieldValues->Next) { 
     133        <option value="<%$value->Name%>" 
     134%       if ($item) { 
     135            <% $Values->HasEntry($value->Name) && ($selected = 1) && 'SELECTED' %> 
     136%       }  
     137            ><% $value->Name%></option> 
     138%           } 
     139        <option value="" <% !$selected && 'SELECTED' %>><&|/l&>(no value)</&></option> 
     140      </select><br/></span> 
     141 
     142%  } 
     143%  if ($resp == 1) { 
     144        <input type=hidden name="UpdateType" value="public"> 
     145        Add comments: <br/> 
     146        <textarea class="messagebox" COLS=72 ROWS=15 WRAP=HARD NAME="UpdateContent" onfocus="if(this.value=='Enter additional comments here') {this.value='';}" onblur="if(this.value==''){this.value='Enter additional comments here';}"></textarea><br/> 
     147%      if ($HasIssueRights) { 
     148             <INPUT TYPE=SUBMIT NAME="SubmitTicket" VALUE="Make changes"></form> 
     149%      } else { 
     150           <INPUT TYPE=SUBMIT NAME="SubmitTicket" VALUE="Add comment"></form> 
     151%      } 
     152%  } # should close "if $resp == 1" after picker 
     153% } 
     154</div> 
     155%   $Ticket = "";  
     156% } 
     157</div> 
    109158</body> 
    110159</html> 
    111 % 
    112 % 
    113 % 
    114 % 
    115160<%INIT> 
    116  
     161###return if $m->cache_self(expire_in => '10 min', [key => 'fookey']); 
    117162use CGI qw/:standard/; 
    118163use HTML::Scrubber; 
    119164my $scrubber = HTML::Scrubber->new( allow => [ qw[ a b i u br ] ] ); 
    120165require "/var/www/stet/stetsubs.pl"; 
    121 my $issuequeue = 5; # I guess Issue will be queue 4... 
    122 sub debug { 
    123     print STDERR @_ . "\n"; 
    124 
     166my $issuequeue = 5;  
    125167 
    126168my ($name, $resp, $pass, $agr_vals, $CurrentUser, $thing); 
    127 ($CurrentUser, $resp) = getUser("foo"); 
    128  
    129 my $rsslink = "/rt/NoAuth/rssresults.rdf?id=".$ARGS{'id'}."&Query=".$ARGS{'Query'}; 
    130  
    131 my ($Tickets, $Ticket, $makeissue, @msgresults, @linkresults); 
     169($CurrentUser, $resp, $name) = getUser("foo"); 
     170$CurrentUser = $session{'CurrentUser'}; 
     171 
     172my $rsslink = "/comments/rt/rssresults.rdf?id=".$ARGS{'id'}."&Query=".$ARGS{'Query'}; 
     173 
     174my ($Tickets, $Ticket, $HasIssueRights, @results, @msgresults, @linkresults, @cfresults); 
    132175 
    133176if ($ARGS{'Query'}) { 
     
    139182    $Ticket = RT::Ticket->new($CurrentUser); 
    140183    $Ticket = LoadTicket($ARGS{'id'}); 
    141     if ($ARGS{'UpdateContent'}) { 
     184    if ($ARGS{'SubmitTicket'}) { 
    142185        ProcessUpdateMessage(TicketObj => $Ticket, ARGSRef=>\%ARGS, Actions=>\@msgresults); 
    143     } 
     186        @linkresults = ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS); 
     187        @cfresults = ProcessTicketCustomFieldUpdates(TicketObj => $Ticket, ARGSRef => \%ARGS); 
     188   
     189   } 
    144190    if ($ARGS{'MakeIssue'}) { 
    145191        $Ticket->SetQueue($issuequeue); 
    146192    } 
    147     @linkresults = ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS); 
     193    foreach my $result (@msgresults,@linkresults,@cfresults) { 
     194        push @results,$result; 
     195    } 
    148196} 
    149197 
     
    160208) 
    161209    { 
    162         $makeissue = 1; 
     210        $HasIssueRights = 1; 
    163211    } 
    164 else {$makeissue = '';} 
    165 if ($Ticket->Queue == 5) { 
    166     $thing = "issue"; 
     212else {$HasIssueRights = '';} 
     213 
     214sub thingType($) { 
     215    my $itemref = shift; 
     216    my $item = $$itemref; 
     217if ($item->Queue == 5) { 
     218    return "issue"; 
    167219} 
    168220else { 
    169     $thing = "comment"; 
     221    return "comment"; 
     222
    170223} 
    171224 
     
    175228    my $Transactions = $item->Transactions; 
    176229    my $allcomments = ''; 
    177     our $scrubber
     230    my $scrubber = HTML::Scrubber->new( allow => [ qw[ a b i u br ] ] )
    178231    while (my $Transaction = $Transactions->Next) { 
    179232        next unless ($Transaction->Type =~ /^(Create|Correspond|Comment$)/); 
     
    189242                             $subj = $scrubber->scrub($message->Subject); 
    190243                         } 
    191                          $cont = sprintf("%s",$message->Content); 
    192 #                      if ($message->Content != '') { 
    193 #                           $cont = $scrubber->scrub($cont); 
    194 #                      } 
     244                         #$cont = sprintf("%s",$message->Content); 
     245               #       if ($message->Content != '') { 
     246                        $cont = $scrubber->scrub($message->Content); 
     247               #       } 
    195248#                        if ($cont = $message->Content) { 
    196249#                            $cont = $scrubber->scrub($cont); 
    197250#                        } 
    198251 
    199                          $allcomments .= "<blockquote><h4>$subj</h4>\n".$message->Content."<br/>\n"; 
    200                          $allcomments .= "<span class=\"posted\">noted by user <span class=\"userlink\">".$message->CreatorObj->Name."</span></span>\n"; 
     252                         $allcomments .= "<blockquote><h4>$subj</h4>\n".$cont."<br/>\n"; 
     253                         $allcomments .= "<span class=\"posted\">noted by <span class=\"userlink\"><a href=\"/comments/".$item->FirstCustomFieldValue('NoteUrl')."?Query=%20Requestor.Name%20LIKE%20'".$message->CreatorObj->Name."'%20AND%20'CF.NoteUrl'%20LIKE%20'".$item->FirstCustomFieldValue('NoteUrl')."'%20\">".$message->CreatorObj->Name."</a></span></span>\n"; 
    201254                     } 
    202255                     $allcomments .= "</blockquote>" x $attachments->Count; 
     
    206259} 
    207260 
    208  
    209261</%INIT> 
     262<%ARGS> 
     263$Rows => 30 
     264$StartAt => 1 
     265$Order => 'DESC' 
     266</%ARGS> 
  • trunk/rtNoAuth/submitcomment.html

    r10 r14  
    3232  <i><% $startid %></i> 
    3333  <e><% $endid %></e> 
    34   <n>Your comment was not saved.  You need to <a href="http://gplv3.fsf.org:8800/launch/login_form?came_from=<% $urlpath %>">login</a> in order to make comments.  The text of your comment was:<br/> <strong>Subject:</strong><% $notesubj %><br/><% $notetext %></n> 
     34  <n>Your comment was not saved.  You need to <a href="http://gplv3.fsf.org/login_form?came_from=<% $urlpath %>">login</a> in order to make comments.  The text of your comment was:<br/> <strong>Subject:</strong><% $notesubj %><br/><% $notetext %></n> 
    3535  <s><% $selectedtext %></s> 
    3636  <id>x</id> 
     
    4242<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    4343<response> 
    44 <cs>Your comment "$notesubj" was submitted.  <a href="changeshown.html">change query</a></cs> 
     44<cs>Your comment <em><% $scrubber->scrub($notesubj) %></em> was submitted.  <a href="/comments/rt/changeshown.html">change query</a></cs> 
    4545<annotation> 
    46 <n><% $notetext %></n> 
    47 <e><% $endid %></e> 
    48 <s><% $selectedtext %></s>  
    49 <i><% $startid %></i> 
     46<n><% $scrubber->scrub($notetext) %></n> 
     47<e><% $scrubber->scrub($endid) %></e> 
     48<s><% $scrubber->scrub($selectedtext) %></s>  
     49<i><% $scrubber->scrub($startid) %></i> 
    5050<id><% $id %></id> 
    51 <u><% $name %></u> 
     51<u><% $scrubber->scrub($name) %></u> 
    5252<ua>unagree</ua> 
    5353<at>1</at> 
     
    6767require "/var/www/stet/stetsubs.pl"; 
    6868 
    69 our $name
    70 my ($CurrentUser, $resp) = getUser(); 
     69use HTML::Scrubber
     70my $scrubber = HTML::Scrubber->new( allow => [ qw[ a b i u br ] ] ); 
    7171 
     72 
     73 
     74my ($CurrentUser, $resp, $name) = getUser("x"); 
     75my ($dompath, $url, $urlpath, $selectedtext, $notesubj, $start, $startid, $end, $endid, $notetext, $queue, $realqueue, $id); 
    7276 
    7377if(%ARGS) { 
    7478 
    75 $url = $ARGS{'NoteUrl'}; 
     79 $url = $ARGS{'NoteUrl'}; 
     80 if ($url =~ m!^http://gplv3.fsf.org/comments/$!) { 
     81     $url = "gplv3-draft-1"; 
     82 } 
    7683 
    77 $urlpath = $url; 
    78 $urlpath =~ s/http:\/\/([^\/]+)(\/.*)\?/$2/; 
     84 $urlpath = $url; 
     85$urlpath =~ s/http:\/\/([^\/]+)(\/.*)\?.*/$2/; 
    7986 
    80 $url =~ s/.*\/([^\/]+)\.(html|xml)/$1/; 
    81  
    82 $dompath = $ARGS{'DomPath'}; 
    83 $selectedtext = URI::Escape::uri_unescape($ARGS{'Selection'}); 
    84 $notesubj = URI::Escape::uri_unescape($ARGS{'NoteSubj'}); 
    85 # $start = $ARGS{'StartNode'}; 
    86 $startid = $ARGS{'StartNodeId'}; 
    87 # $end = $ARGS{'EndNode'}; 
    88 $endid = $ARGS{'EndNodeId'}; 
    89 $notetext = URI::Escape::uri_unescape($ARGS{'NoteText'}); 
     87$url =~ s/.*\/([^\/]+)\.(html|xml).*/$1/; 
     88 print STDERR "url $url\nurlpath $urlpath\n\n"; 
     89 $dompath = $ARGS{'DomPath'}; 
     90 $selectedtext = URI::Escape::uri_unescape($ARGS{'Selection'}); 
     91 $notesubj = URI::Escape::uri_unescape($ARGS{'NoteSubj'}); 
     92# my $start = $ARGS{'StartNode'}; 
     93 $startid = $ARGS{'StartNodeId'}; 
     94# my $end = $ARGS{'EndNode'}; 
     95 $endid = $ARGS{'EndNodeId'}; 
     96 $notetext = URI::Escape::uri_unescape($ARGS{'NoteText'}); 
    9097 
    9198$ARGS{'queue'} ? $queue = $ARGS{'queue'} : $queue = "Inbox"; 
     
    120127                      'CustomField-7' => $name, 
    121128                      ); 
    122   my ($id, $transaction_object, $err) = $ticket->Create(%ticket_vals); 
     129  ($id, my $transaction_object, my $err) = $ticket->Create(%ticket_vals); 
    123130  print STDERR $err . "\n" if $err; 
    124131 
    125132} 
    126  
     133
    127134$r->content_type('text/xml'); 
    128135</%INIT> 
  • trunk/rtNoAuth/xmlresults.html

    r12 r14  
    2626<response> 
    2727% if ($Tickets) { 
    28 <cs>Showing comments where <% humanQuery($ARGS{'Query'}) |n %> <a class="rsslink" href="<% $rsslink %>">[rss]</a> (found <% $Tickets->CountAll()%>)</cs> 
    29 % } else { 
    30 <cs> Showing comment <a href="/rt/NoAuth/readsay.html?id=<% $ARGS{'id'} %>"><% $ARGS{'id'} %></a> <a class="rsslink" href="<% $rsslink %>">[rss]</a> <a href="/rt/NoAuth/changeshown.html">change</a> </cs> 
     28%#    my $tick = $Tickets->Next; 
     29<cs>Showing comments where <% humanQuery($ARGS{'Query'}) |n %> <a class="rsslink" href="<% $rsslink %>">[rss]</a> <a href="<% $listlink %>">[list]</a> ( found <% $Tickets->CountAll()%>, showing <% $StartAt %>-<% (($StartAt + $Rows) > $Tickets->CountAll()) ? $Tickets->CountAll() : ($StartAt + $Rows - 1) %>:  
     30%   if ($Tickets->CountAll() > $Rows) { 
     31%       if ($StartAt > 1 ) { 
     32             <a href="/comments/<% stripCrap($Tickets->First->FirstCustomFieldValue('NoteUrl')) %>?Query=<% $ARGS{'Query'} |n %>&amp;Rows=<%$Rows%>&amp;StartAt=<% (($StartAt - $Rows) < 0) ? 1 : ($StartAt - $Rows) |n%>">prev</a> 
     33%       } 
     34%   if (($Tickets->CountAll() > $Rows) && ($Tickets->CountAll() > $StartAt + $Rows)) { 
     35
    3136% } 
     37%       if ($Tickets->CountAll() > $StartAt + $Rows) { 
     38             <a href="/comments/<% stripCrap($Tickets->First->FirstCustomFieldValue('NoteUrl')) %>?Query=<% $ARGS{'Query'} |n %>&amp;Rows=<%$Rows%>&amp;StartAt=<% $StartAt + $Rows %>">next</a> 
     39%       } 
     40%   } 
     41%# ) <a href="/comments/rt/changeshown.html?came_from=<% stripCrap($Tickets->First->FirstCustomFieldValue('NoteUrl')) %>">change</a>  
     42) <a href="/comments/rt/changeshown.html?came_from=gplv3-draft-1">change</a>  
     43</cs> 
     44%  
     45<%perl>  
     46    $Tickets->GotoFirstItem; 
     47    if ($StartAt > 1) { 
     48        for (my $i = 0; $i < $StartAt; $i++) { 
     49            $Tickets->Next; 
     50        } 
     51    } 
     52</%perl> 
     53% } elsif ($Ticket) { 
     54<cs>Showing comment <a href="/comments/rt/readsay.html?id=<% $ARGS{'id'} %>"><% $ARGS{'id'} %></a> <a href="<% $listlink %>">[see thread]</a> <a href="/comments/rt/changeshown.html?came_from=gplv3-draft-1">change</a> </cs> 
     55% } 
     56% if ($Ticket || $Tickets) { 
     57% my $i = 0; 
    3258% while (my $item = $Tickets ? $Tickets->Next : $Ticket) { 
    3359<annotation> 
     
    3662<s><% cleanNoteSel(\$item) %></s> 
    3763<i><% $item->FirstCustomFieldValue('NoteStartNodeId') %></i> 
    38 <!-- <u><% $item->Requestors->MemberEmailAddressesAsString %></u> --> 
    3964<u><% $item->CreatorObj->Name %></u> 
    4065% my ($agree,$agr_count) = showAgree(\$item); 
     
    4469</annotation> 
    4570% $Ticket = ''; 
     71% $i++; 
     72% if ($i == (($StartAt + $Rows) - 1)) { 
     73%    $Tickets = ''; 
     74% } 
     75% } 
     76% } 
     77% else { 
     78<cs>No comments found. <a href="/comments/rt/changeshown.html?came_from=gplv3-draft-1">change query</a> </cs> 
    4679% } 
    4780</response> 
     
    5588use Frontier::Client; 
    5689use Data::Dumper;