<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[156] sites/trunk/trac.wordpress.org: Open source our Trac templates.</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://meta.trac.wordpress.org/changeset/156">156</a></dd>
<dt>Author</dt> <dd>nacin</dd>
<dt>Date</dt> <dd>2013-12-18 03:38:30 +0000 (Wed, 18 Dec 2013)</dd>
</dl>
<h3>Log Message</h3>
<pre>Open source our Trac templates. fixes <a href="http://meta.trac.wordpress.org/ticket/254">#254</a>.</pre>
<h3>Added Paths</h3>
<ul>
<li>sites/trunk/trac.wordpress.org/templates/</li>
<li><a href="#sitestrunktracwordpressorgtemplatesREADME">sites/trunk/trac.wordpress.org/templates/README</a></li>
<li><a href="#sitestrunktracwordpressorgtemplatessitehtml">sites/trunk/trac.wordpress.org/templates/site.html</a></li>
<li><a href="#sitestrunktracwordpressorgtemplatesticket_changediff">sites/trunk/trac.wordpress.org/templates/ticket_change.diff</a></li>
<li><a href="#sitestrunktracwordpressorgtemplatesticket_changehtml">sites/trunk/trac.wordpress.org/templates/ticket_change.html</a></li>
<li><a href="#sitestrunktracwordpressorgtemplateswporgfooterhtml">sites/trunk/trac.wordpress.org/templates/wporg-footer.html</a></li>
<li><a href="#sitestrunktracwordpressorgtemplateswporgheadhtml">sites/trunk/trac.wordpress.org/templates/wporg-head.html</a></li>
<li><a href="#sitestrunktracwordpressorgtemplateswporgheaderhtml">sites/trunk/trac.wordpress.org/templates/wporg-header.html</a></li>
<li><a href="#sitestrunktracwordpressorgtemplateswporgmenuhtml">sites/trunk/trac.wordpress.org/templates/wporg-menu.html</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="sitestrunktracwordpressorgtemplatesREADME"></a>
<div class="addfile"><h4>Added: sites/trunk/trac.wordpress.org/templates/README (0 => 156)</h4>
<pre class="diff"><span>
<span class="info">--- sites/trunk/trac.wordpress.org/templates/README (rev 0)
+++ sites/trunk/trac.wordpress.org/templates/README 2013-12-18 03:38:30 UTC (rev 156)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+WORDPRESS.ORG TRAC TEMPLATES
+============================
+
+These templates are used for rendering Trac on WordPress.org. The templates are written in Genshi, a Python library written specifically for Trac. http://genshi.edgewall.org/. Like PHP, Genshi is fickle, more so because it is XML. It is easy to generate an error. Changes to these files must not be deployed without testing. Setting up a local Trac for testing is not a fun process, but is documented fairly well here: http://trac.edgewall.org/wiki/TracInstall.
+
+These templates wrap the make.wordpress.org header and footer, add gravatars, and make a slew of other adjustments.
+
+ * site.html
+
+ site.html is the main file, loaded in all situations. It is used to parse Trac's core templating output and make our adjustments. This file is shared across all Tracs that use the global header and footer. This file includes other templates, like the header and footer. You can think of this as a cross between functions.php and index.php in a WordPress theme. Kinda.
+
+ * site-specific.html
+
+ site.html is normally used to customize a Trac install. We share a single site.html across multiple Tracs, and overrides would override the entire file (like an index.php file in a WordPress child theme), rather than supplement it (like functions.php in a child theme). Thus, site.html includes a site-specific.html file, for individual Trac installs that may have customizations.
+
+ * ticket_change.html and ticket_change.diff
+
+ Okay, so site.html isn't loaded in *all* situations. Specifically, ticket auto-previews added in Trac 1.0 don't load site.html. ticket_change.html overrides a core Trac template, modifying it for our needs. ticket_change.diff shows these modifications. The original file: http://trac.edgewall.org/browser/tags/trac-1.0.1/trac/ticket/templates/ticket_change.html. See also http://trac.edgewall.org/ticket/11199 and https://core.trac.wordpress.org/ticket/24165#comment:17.
+
+ * wporg-head.html, wporg-header.html and wporg-footer.html
+
+ These files contain manually synced snippets of WP.org's <head>, header and footer. They are included by site.html, which injects them into the page at the right points. The contents of wporg-head.html are merely a few lines injected into Trac's <head>, while wporg-header.html and wporg-footer.html are big chunks of HTML.
+
+ * wporg-menu.html
+
+ wporg-menu.html is a per-Trac file included by site.html if it exists for that Trac. It is designed to specify the name of the Trac (or more accurately, the make.wordpress.org P2's name) and include a right-hand menu shared with the P2. The one included here is for core.trac.wordpress.org. If the file does not exist for a Trac, then fallback HTML is used. This fallback HTML is seen in site.html and simply uses the Trac's project name.
+
</ins></span></pre></div>
<a id="sitestrunktracwordpressorgtemplatessitehtml"></a>
<div class="addfile"><h4>Added: sites/trunk/trac.wordpress.org/templates/site.html (0 => 156)</h4>
<pre class="diff"><span>
<span class="info">--- sites/trunk/trac.wordpress.org/templates/site.html (rev 0)
+++ sites/trunk/trac.wordpress.org/templates/site.html 2013-12-18 03:38:30 UTC (rev 156)
</span><span class="lines">@@ -0,0 +1,188 @@
</span><ins>+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ py:strip="">
+
+<?python
+ scripts_version = 13
+ project_slug = req.environ['HTTP_HOST'].split(':')[0].split('.')[0]
+
+ if project_slug == 'bbpress' :
+ profile_link = 'http://bbpress.org/forums/users/'
+ support_link = 'http://bbpress.org/forums/'
+ elif project_slug == 'buddypress' :
+ profile_link = 'http://buddypress.org/community/members/'
+ support_link = 'http://buddypress.org/support/topics/'
+ else :
+ support_link = 'http://wordpress.org/support/'
+ profile_link = 'http://profiles.wordpress.org/'
+?>
+
+<!--! styles and such -->
+<head py:match="head" py:attrs="select('@*')">
+ ${select('*|comment()|text()')}
+ <!--! WP.org Global Header -->
+ <xi:include href="wporg-head.html" />
+
+ <meta name="viewport" content="width=device-width" />
+ <link rel="stylesheet" type="text/css" href="//wordpress.org/style/trac/wp-trac.css?${scripts_version}" />
+ <script src="//openatd.svn.wordpress.org/atd-jquery/scripts/jquery.atd.textarea.js"></script>
+ <script src="//openatd.svn.wordpress.org/atd-jquery/scripts/csshttprequest.js"></script>
+ <link rel="stylesheet" type="text/css" href="//openatd.svn.wordpress.org/atd-jquery/css/atd.css" media="screen" />
+</head>
+
+<!--! Remove Trac logo and footer -->
+<div py:match="div[@id='header']"></div>
+<div py:match="div[@id='footer']"></div>
+
+<py:match path="div[@id='content' and @class='ticket']/form" py:if="req.environ['PATH_INFO'] == '/newticket'">
+ <div class="wp-notice">
+ <p><strong>ARE YOU IN THE RIGHT PLACE?</strong></p>
+ <p><strong>This is not for support.</strong> Please try the <a class="ext-link" href="${support_link}"><span class="icon"> </span>support forums</a>.</p>
+ <p><strong>Do not report potential security vulnerabilities here.</strong> Read the <a class="ext-link" href="http://codex.wordpress.org/FAQ_Security"><span class="icon"> </span>Security FAQ</a> and email us at <a class="mail-link" href="mailto:security@wordpress.org"><span class="icon"> </span>security@wordpress.org</a>.</p>
+ <py:if test="project_slug == 'core'">
+ <hr />
+ <p><strong>REPORTING BUGS</strong></p>
+ <p><strong>This form is for reporting bugs to WordPress core.</strong> After <a href="/search">searching</a> for existing tickets and referencing the Codex article on <a class="ext-link" href="http://codex.wordpress.org/Reporting_Bugs"><span class="icon"> </span>Reporting Bugs</a>, please review these notes:</p>
+ <ul>
+ <li>Are you using the latest and greatest version of WordPress, or the latest development/trunk version? If neither, please stop here and update first.</li>
+ <li>What steps should be taken to <strong>consistently</strong> reproduce the problem?</li>
+ <li>In case it's relevant to the ticket, what is the expected output? What did you see instead?</li>
+ <li>Does the problem occur even when you deactivate all plugins and use the default theme?</li>
+ <li>Please provide any additional information that you think we'd find useful. (OS and browser for UI defects, server environment for crashes, etc.)</li>
+ <li py:if="not req.session['email']">Please add your email address to <a href="/prefs">Trac preferences</a> so you are sent updates.</li>
+ </ul>
+ </py:if>
+ </div>
+ <form py:attrs="select('@*')">
+ ${select('*')}
+ </form>
+</py:match>
+
+<!--! Reports are collapsed by default but flicker because it waits for DOM ready to collapse them -->
+<div py:match="div[@id='content' and @class='report']/div[@class='reports']//div" py:if="req.environ['PATH_INFO'] == '/report'" py:attrs="select('@*')" class="collapsed">
+ ${select('*|comment()|text()')}
+</div>
+
+<!--! new ticket modifications -->
+<py:if test="req.environ['PATH_INFO'] == '/newticket'">
+
+ <py:if test="'preview' in req.args">
+ <py:match path="form[@id='propertyform']/div[@class='buttons']" once="true">
+
+ <!--! reminder on preview about setting a Trac email -->
+ <py:if test="not req.session['email']">
+ <div class="wp-caution" id="wp-email-pref-notice">
+ <p><strong>Please</strong> add your email address to <a target="_blank" href="/prefs">Trac preferences</a> so you are sent updates.</p>
+ </div>
+ </py:if>
+
+ <!--! security component alert on preview -->
+ <py:if test="'Security' == ticket.component">
+ <div class="wp-notice" id="wp-security-notice">
+ <p><strong>Caution!</strong> This ticket was assigned to the Security component.</p>
+ <p><strong>If this is a potential security vulnerability, DO NOT REPORT IT HERE.</strong></p>
+ <p>Instead, read the <a class="ext-link" href="http://codex.wordpress.org/FAQ_Security"><span class="icon"> </span>Security FAQ</a> and email us at <a class="mail-link" href="mailto:security@wordpress.org"><span class="icon"> </span>security@wordpress.org</a>.</p>
+ </div>
+ </py:if>
+
+ <div py:attrs="select('@*')">
+ ${select('*|comment()|text()')}
+ </div>
+
+ </py:match>
+ </py:if>
+
+ <!--! force non-gardeners to preview before posting -->
+ <py:if test="not ( 'TICKET_ADMIN' in perm(resource) or 'Bug Gardener' in perm(resource) ) and not 'preview' in req.args">
+ <py:match path="form[@id='propertyform']/div[@class='buttons']" once="true">
+ <div py:attrs="select('@*')">
+ <input type="submit" name="preview" value="Continue to Preview" />
+ </div>
+ </py:match>
+ </py:if>
+
+</py:if>
+
+<!--! reporter-feedback notice. deliberately shows for closed tickets other than 'fixed' -->
+<py:match path="div[@id='content' and @class='ticket']//div[@id='ticketchange']" once="true">
+ <div py:attrs="select('@*')">
+ ${select('*|comment()|text()')}
+ </div>
+ <div class="wp-notice" id="wp-reporter-feedback-notice" py:if="ticket.reporter == req.authname and 'reporter-feedback' in ticket.keywords and ticket.resolution != 'fixed'">
+ <p><strong>Howdy!</strong></p><p></p>
+ <p>A developer marked this ticket with the reporter-feedback keyword. <strong>That means we need feedback from you.</strong></p>
+ <p>Please answer their questions and address their concerns, then remove the keyword, below.</p>
+ <p>If this is a support question, you're better off in the <a href="${support_link}" class="ext-link"><span class="icon"> </span>support forums</a>.</p>
+ </div>
+</py:match>
+
+<!--! license notes when uploading patches -->
+<py:match path="form[@id='attachment']/div[@class='buttons']" once="true">
+ <div class="wp-caution" id="wp-contributions-caution">
+ <p>By contributing code to ${project.name}, you grant its use under the GNU General Public License v2 (or later).</p>
+ </div>
+ <div py:attrs="select('@*')">
+ ${select('*|comment()|text()')}
+ </div>
+</py:match>
+
+<py:match path="form[@id='attachment']//input[@type='submit' and @value='Add attachment']" once="true">
+ <input type="submit" value="Agree and Upload" />
+</py:match>
+
+<!--! gravatars for the ticket reporter -->
+<td py:match="td[@headers='h_reporter']" py:attrs="select('@*')">
+ <a href="${profile_link + ticket.reporter}">
+ <img class="avatar" src="//wordpress.org/grav-redirect.php?user=${ticket.reporter}" height="24" width="24" />
+ </a>
+ ${select('*|comment()|text()')}
+</td>
+
+<!--! gravatars for the ticket owner -->
+<td py:match="td[@headers='h_owner']" py:attrs="select('@*')">
+ <a href="${profile_link + ticket.owner}" py:if="ticket.owner">
+ <img class="avatar" src="//wordpress.org/grav-redirect.php?user=${ticket.owner}" height="24" width="24" />
+ </a>
+ ${select('*|comment()|text()')}
+</td>
+
+<body py:match="body" id="wordpress-org" class="${project_slug} no-static" py:attrs="select('@*')">
+ <!--! WP.org Global Header -->
+ <xi:include href="wporg-header.html" />
+
+ <xi:include href="wporg-menu.html">
+ <xi:fallback>
+ <div id="headline" class="no-menu">
+ <div class="wrapper">
+ <h2><a href="/">${project.name}</a></h2>
+ </div>
+ </div>
+ </xi:fallback>
+ </xi:include>
+
+ ${select('*|comment()|text()')}
+
+ <!--! WP.org Global Footer -->
+ <xi:include href="wporg-footer.html" />
+
+ <!--! footer javascript and such -->
+ <script py:if="'TICKET_ADMIN' in perm(resource) or 'Bug Gardener' in perm(resource)">
+ var wpBugGardener = true;
+ </script>
+ <script src="//wordpress.org/style/trac/wp-trac.js?${scripts_version}"></script>
+ <py:if test="project_slug == 'core'">
+ <script type="text/javascript">
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-52447-27");
+ pageTracker._trackPageview();
+ } catch(err) {}</script>
+ </py:if>
+</body>
+
+<xi:include href="site-specific.html"><xi:fallback /></xi:include>
+</html>
</ins><span class="cx">Property changes on: sites/trunk/trac.wordpress.org/templates/site.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="sitestrunktracwordpressorgtemplatesticket_changediff"></a>
<div class="addfile"><h4>Added: sites/trunk/trac.wordpress.org/templates/ticket_change.diff (0 => 156)</h4>
<pre class="diff"><span>
<span class="info">--- sites/trunk/trac.wordpress.org/templates/ticket_change.diff (rev 0)
+++ sites/trunk/trac.wordpress.org/templates/ticket_change.diff 2013-12-18 03:38:30 UTC (rev 156)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+Index: 1.0-stable/trac/ticket/templates/ticket_change.html
+===================================================================
+--- 1.0-stable/trac/ticket/templates/ticket_change.html (revision 11805)
++++ 1.0-stable/trac/ticket/templates/ticket_change.html (working copy)
+@@ -49,6 +49,15 @@
+ </py:if>
+ </span>
+ <py:choose>
++ <py:when test="'author' in change">
++ <span class="avatar" py:if="change">
++ <a href="http://profiles.wordpress.org/${authorinfo(change.author)}">
++ <img src="//wordpress.org/grav-redirect.php?user=${authorinfo(change.author)}" height="24" width="24" /> ${authorinfo(change.author)}</a>
++ <py:if test="'date' in change">
++ — ${dateinfo(change.date)} ago
++ </py:if>
++ </span>
++ </py:when>
+ <py:when test="'date' in change">
+ <i18n:msg params="date, author">Changed ${pretty_dateinfo(change.date)} by ${authorinfo(change.author)}</i18n:msg>
+ </py:when>
</ins></span></pre></div>
<a id="sitestrunktracwordpressorgtemplatesticket_changehtml"></a>
<div class="addfile"><h4>Added: sites/trunk/trac.wordpress.org/templates/ticket_change.html (0 => 156)</h4>
<pre class="diff"><span>
<span class="info">--- sites/trunk/trac.wordpress.org/templates/ticket_change.html (rev 0)
+++ sites/trunk/trac.wordpress.org/templates/ticket_change.html 2013-12-18 03:38:30 UTC (rev 156)
</span><span class="lines">@@ -0,0 +1,167 @@
</span><ins>+<!--!
+Render a ticket comment.
+
+Arguments:
+ - change: the change data
+ - hide_buttons=False: hide all buttons (Edit, Reply)
+ - cnum_edit=None: the comment number being edited
+ - edited_comment: the current value of the comment editor
+ - cnum_hist=None: the comment number for which to show a historical content
+ - can_append=False: True if the user is allowed to append to tickets
+ - has_edit_comment=False: True if the user is allowed to edit all comments
+ - preview=False: True if rendering a change preview
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:i18n="http://genshi.edgewall.org/i18n"
+ py:with="cnum = change.get('cnum'); hide_buttons = value_of('hide_buttons', False);
+ cnum_edit = value_of('cnum_edit'); cnum_hist = value_of('cnum_hist');
+ can_append = value_of('can_append', False); has_edit_comment = value_of('has_edit_comment', False);
+ preview = value_of('preview', False);
+ can_edit_comment = has_edit_comment or (authname and authname != 'anonymous'
+ and authname == change.author);
+ show_editor = can_edit_comment and str(cnum) == cnum_edit;
+ show_history = str(cnum) == cnum_hist;
+ max_version = max(change.comment_history) if change.comment_history else 0;
+ comment_version = int(cversion or 0) if show_history else max_version;
+ show_buttons = not hide_buttons and not show_editor and comment_version == max_version"
+ py:strip="">
+ <py:def function="commentref(prefix, cnum, cls=None)">
+ <a href="#comment:$cnum" class="$cls">$prefix$cnum</a>
+ </py:def>
+ <h3 class="change">
+ <span class="threading"
+ py:with="change_replies = replies.get(str(cnum), []) if 'cnum' in change else []">
+ <span py:if="'cnum' in change" id="comment:$cnum" class="cnum">${commentref('comment:', cnum)}</span>
+ <py:if test="'replyto' in change">
+ in reply to: ${commentref('↑ ', change.replyto)}
+ <py:if test="change_replies">; </py:if>
+ </py:if>
+ <py:if test="change_replies">
+ <i18n:choose numeral="len(change_replies)">
+ <span i18n:singular="">follow-up:</span>
+ <span i18n:plural="">follow-ups:</span>
+ </i18n:choose>
+ <py:for each="reply in change_replies">
+ ${commentref('↓ ', reply, 'follow-up')}
+ </py:for>
+ </py:if>
+ </span>
+ <py:choose>
+ <py:when test="'author' in change">
+ <span class="avatar" py:if="change">
+ <a href="http://profiles.wordpress.org/${authorinfo(change.author)}">
+ <img src="//wordpress.org/grav-redirect.php?user=${authorinfo(change.author)}" height="24" width="24" /> ${authorinfo(change.author)}</a>
+ <py:if test="'date' in change">
+ — ${dateinfo(change.date)} ago
+ </py:if>
+ </span>
+ </py:when>
+ <py:when test="'date' in change">
+ <i18n:msg params="date, author">Changed ${pretty_dateinfo(change.date)} by ${authorinfo(change.author)}</i18n:msg>
+ </py:when>
+ <py:otherwise>
+ <i18n:msg params="author">Changed by ${authorinfo(change.author)}</i18n:msg>
+ </py:otherwise>
+ </py:choose>
+ <span py:if="preview or show_editor" class="trac-loading"/>
+ </h3>
+ <div py:if="show_buttons" class="trac-ticket-buttons">
+ <form py:if="'cnum' in change and can_edit_comment" method="get" action="#comment:${cnum}">
+ <div class="inlinebuttons">
+ <input type="hidden" name="cnum_edit" value="${cnum}"/>
+ <input type="submit" value="${captioned_button('✎', _('Edit'))}" title="${_('Edit comment %(cnum)s', cnum=cnum)}" />
+ </div>
+ </form>
+ <form py:if="'cnum' in change and can_append" id="reply-to-comment-${cnum}"
+ method="get" action="#comment">
+ <div class="inlinebuttons">
+ <input type="hidden" name="replyto" value="${cnum}"/>
+ <input type="submit" value="${captioned_button('↳', _('Reply'))}" title="${_('Reply to comment %(cnum)s', cnum=cnum)}" />
+ </div>
+ </form>
+ </div>
+ <ul py:if="change.fields" class="changes">
+ <li py:for="field_name, field in sorted(change.fields.iteritems(), key=lambda item: item[1].label.lower())"
+ class="trac-field-${field_name}${' trac-conflict' if preview and field_name in conflicts else None}">
+ <strong class="trac-field-${field_name}">${field.label}</strong>
+ <py:choose>
+ <py:when test="field_name == 'attachment'"><i18n:msg params="name">
+ <a href="${href.attachment('ticket', ticket.id, field.new)}"><em>${field.new
+ }</em></a><a href="${href('raw-attachment', 'ticket', ticket.id, field.new)}"
+ title="Download" class="trac-rawlink">​</a>
+ added
+ </i18n:msg></py:when>
+ <py:when test="'rendered' in field">${field.rendered}</py:when>
+ <py:when test="field.old and field.new"><i18n:msg params="old, new">
+ changed from <em>${field.old}</em> to <em>${field.new}</em>
+ </i18n:msg></py:when>
+ <py:when test="not field.old and field.new"><i18n:msg params="value">
+ set to <em>${field.new}</em>
+ </i18n:msg></py:when>
+ <py:otherwise><i18n:msg params="value">
+ <em>${field.old}</em> deleted
+ </i18n:msg></py:otherwise>
+ <py:if test="preview and field.by == 'user'">
+ (<button py:with="old = ticket.get_default(field_name) if field.old is empty else field.old"
+ type="submit" name="revert_$field_name" class="trac-revert"
+ title="Revert this change">revert<div id="revert-$field_name">${
+ '0' if 'cc_update' in field else old}</div></button>)
+ </py:if>
+ </py:choose>
+ </li>
+ </ul>
+ <form py:if="show_editor" id="trac-comment-editor" method="post"
+ action="${href.ticket(ticket.id) + '#comment:%d' % cnum}">
+ <div>
+ <textarea name="edited_comment" class="wikitext trac-resizable" rows="10" cols="78">
+${edited_comment if edited_comment is not None else change.comment}</textarea>
+ <input type="hidden" name="cnum_edit" value="${cnum}"/>
+ </div>
+ <div class="buttons">
+ <input type="submit" name="preview_comment" value="${_('Preview')}"
+ title="${_('Preview changes to comment %(cnum)s', cnum=cnum)}"/>
+ <input type="submit" name="edit_comment" value="${_('Submit changes')}"
+ title="${_('Submit changes to comment %(cnum)s', cnum=cnum)}"/>
+ <input type="submit" name="cancel_comment" value="${_('Cancel')}"
+ title="Cancel comment edit"/>
+ </div>
+ </form>
+ <py:choose>
+ <div py:when="str(cnum) == cnum_edit"
+ py:with="text = edited_comment if edited_comment is not None else change.comment"
+ class="comment searchable ticketdraft" style="${'display: none' if not text else None}" xml:space="preserve">
+ ${wiki_to_html(context, text, escape_newlines=preserve_newlines)}
+ </div>
+ <div py:when="show_history" class="comment searchable" xml:space="preserve">
+ ${wiki_to_html(context, change.comment_history[int(cversion)].comment, escape_newlines=preserve_newlines)}
+ </div>
+ <div py:when="change.comment" class="comment searchable" xml:space="preserve">
+ ${wiki_to_html(context, change.comment, escape_newlines=preserve_newlines)}
+ </div>
+ </py:choose>
+ <div py:if="not show_editor and len(change.comment_history) > 1" py:choose=""
+ class="trac-lastedit ${'trac-shade' if comment_version != max_version else None}">
+ <i18n:msg params="version, date, author" py:when="comment_version != max_version">
+ Version ${comment_version}, edited ${pretty_dateinfo(change.comment_history[comment_version].date)}
+ by ${authorinfo(change.comment_history[comment_version].author)}
+ </i18n:msg>
+ <i18n:msg params="date, author" py:otherwise="">
+ Last edited ${pretty_dateinfo(change.comment_history[comment_version].date)}
+ by ${authorinfo(change.comment_history[comment_version].author)}
+ </i18n:msg>
+ <py:if test="comment_version > 0">
+ (<a href="${href.ticket(ticket.id, cnum_hist=cnum, cversion=comment_version - 1)
+ }#comment:${cnum}">previous</a>)
+ </py:if>
+ <py:if test="comment_version < max_version">
+ (<a href="${href.ticket(ticket.id, cnum_hist=cnum, cversion=comment_version + 1)
+ }#comment:${cnum}">next</a>)
+ </py:if>
+ <py:if test="comment_version > 0">
+ (<a href="${href.ticket(ticket.id, action='comment-diff', cnum=cnum,
+ version=comment_version)}">diff</a>)
+ </py:if>
+ </div>
+</html>
</ins><span class="cx">Property changes on: sites/trunk/trac.wordpress.org/templates/ticket_change.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="sitestrunktracwordpressorgtemplateswporgfooterhtml"></a>
<div class="addfile"><h4>Added: sites/trunk/trac.wordpress.org/templates/wporg-footer.html (0 => 156)</h4>
<pre class="diff"><span>
<span class="info">--- sites/trunk/trac.wordpress.org/templates/wporg-footer.html (rev 0)
+++ sites/trunk/trac.wordpress.org/templates/wporg-footer.html 2013-12-18 03:38:30 UTC (rev 156)
</span><span class="lines">@@ -0,0 +1,51 @@
</span><ins>+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ py:strip="">
+
+<div id="wporg-footer">
+ <div class="wrapper">
+ <ul>
+ <li><a href="http://wordpress.org/about/" title="An introduction to the WordPress project">About</a></li>
+ <li><a href="http://wordpress.org/news/" title="News and Updates">Blog</a></li>
+ <li><a href="http://wordpress.org/hosting/" title="Recommended web hosting providers">Hosting</a></li>
+ <li><a href="http://jobs.wordpress.net/" title="Find or post WordPress jobs">Jobs</a></li>
+ </ul>
+
+ <ul>
+ <li><a href="http://wordpress.org/support/" title="Forums, documentation, and other resources">Support</a></li>
+ <li><a href="http://make.wordpress.org/" title="Give back to WordPress through code, support, translation and more">Get Involved</a></li>
+ <li><a href="http://learn.wordpress.org/" title="Workshops and training materials">Learn</a></li>
+ </ul>
+
+ <ul>
+ <li><a href="http://wordpress.org/showcase/" title="Some of the best WordPress sites on the Web">Showcase</a></li>
+ <li><a href="http://wordpress.org/plugins/" title="Add extra functionality to WordPress">Plugins</a></li>
+ <li><a href="http://wordpress.org/themes/" title="Make your WordPress pretty">Themes</a></li>
+ <li><a href="http://wordpress.org/ideas/" title="Share your ideas for improving WordPress">Ideas</a></li>
+ </ul>
+
+ <ul>
+ <li><a href="http://central.wordcamp.org/" title="Find a WordPress event near you">WordCamp</a></li>
+ <li><a href="http://wordpress.tv/" title="Videos, tutorials, and WordCamp sessions">WordPress.TV</a></li>
+ <li><a href="http://buddypress.org/" title="A set of plugins to transform your WordPress into a social network">BuddyPress</a></li>
+ <li><a href="http://bbpress.org/" title="Fast, slick forums built on WordPress">bbPress</a></li>
+ </ul>
+
+ <ul>
+ <li><a href="http://wordpress.com/?ref=wporg-footer" title="Hassle-free WordPress hosting">WordPress.com</a></li>
+ <li><a href="http://ma.tt/" title="Co-founder of WordPress, an example of what WordPress can do">Matt</a></li>
+ <li><a href="http://wordpress.org/about/privacy/" title="WordPress.org Privacy Policy">Privacy</a></li>
+ <li><a href="http://wordpress.org/about/license/" title="WordPress is open source software">License / GPLv2</a></li>
+ </ul>
+
+ </div>
+
+ <h6 class="aligncenter">Code is Poetry</h6>
+</div>
+
+<script type="text/javascript">_qoptions={qacct:"p-18-mFEk4J448M"};</script>
+<script type="text/javascript" src="//edge.quantserve.com/quant.js"></script>
+<noscript><img src="//pixel.quantserve.com/pixel/p-18-mFEk4J448M.gif" style="display: none;" border="0" height="1" width="1" alt=""/></noscript>
+
+</html>
</ins><span class="cx">Property changes on: sites/trunk/trac.wordpress.org/templates/wporg-footer.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="sitestrunktracwordpressorgtemplateswporgheadhtml"></a>
<div class="addfile"><h4>Added: sites/trunk/trac.wordpress.org/templates/wporg-head.html (0 => 156)</h4>
<pre class="diff"><span>
<span class="info">--- sites/trunk/trac.wordpress.org/templates/wporg-head.html (rev 0)
+++ sites/trunk/trac.wordpress.org/templates/wporg-head.html 2013-12-18 03:38:30 UTC (rev 156)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ py:strip="">
+
+ <!--
+ <meta property="fb:page_id" content="6427302910" />
+ -->
+ <link href='//wordpress.org/wp-includes/css/dashicons.css' rel='stylesheet' type='text/css' />
+ <link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,400,300,600&subset=latin,cyrillic-ext,greek-ext,greek,vietnamese,latin-ext,cyrillic' rel='stylesheet' type='text/css' />
+ <link rel="stylesheet" href="//wordpress.org/style/wp4.css?44" />
+ <!--[if lte IE 8]>
+ <style type="text/css">
+ @import url("//wordpress.org/style/ie.css?2");
+ </style>
+ <![endif]-->
+
+ <script type="text/javascript">
+ var toggleMenu = function() {
+ var m = document.getElementById('wporg-header-menu'),
+ c = m.className;
+ m.className = c.match( ' active' ) ? c.replace( ' active', '' ) : c + ' active';
+ }
+ </script>
+
+
+</html>
</ins><span class="cx">Property changes on: sites/trunk/trac.wordpress.org/templates/wporg-head.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="sitestrunktracwordpressorgtemplateswporgheaderhtml"></a>
<div class="addfile"><h4>Added: sites/trunk/trac.wordpress.org/templates/wporg-header.html (0 => 156)</h4>
<pre class="diff"><span>
<span class="info">--- sites/trunk/trac.wordpress.org/templates/wporg-header.html (rev 0)
+++ sites/trunk/trac.wordpress.org/templates/wporg-header.html 2013-12-18 03:38:30 UTC (rev 156)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ py:strip="">
+
+<div id="wporg-header">
+ <div class="wrapper">
+ <a id="mobile-menu-button" class="" href="#" onclick="toggleMenu();"></a>
+
+ <h1><a href="//wordpress.org">WordPress.org</a></h1>
+
+ <div id="head-search">
+ <form action="http://wordpress.org/search/do-search.php" method="get">
+ <input class="text" name="search" type="text" value="" maxlength="150" placeholder="Search WordPress.org" />
+ <input type="submit" class="button" value="" />
+ </form>
+ </div>
+ <div style="clear:both"></div>
+ <ul id="wporg-header-menu">
+ <li><a href="http://wordpress.org/showcase/" title="See some of the sites built on WordPress.">Showcase</a></li>
+ <li><a href="http://wordpress.org/themes/" title="Find just the right look for your website.">Themes</a></li>
+ <li><a href="http://wordpress.org/plugins/" title="Plugins can extend WordPress to do almost anything you can imagine.">Plugins</a></li>
+ <li><a href="http://wordpress.org/mobile/" title="Take your website on the go!">Mobile</a></li>
+ <li><a href="http://wordpress.org/support/" title="Forums, documentation, help.">Support</a>
+ <ul class="nav-submenu">
+ <li><a href="http://wordpress.org/support/" title="Support and discussion forums.">Forums</a></li>
+ <li><a href="http://codex.wordpress.org/Main_Page" title="Documentation, tutorials, best practices.">Documentation</a></li>
+ </ul>
+ <div class="uparrow"></div>
+ </li>
+ <li><a href="http://make.wordpress.org/" title="Contribute your knowledge.">Get Involved</a>
+ <ul class="nav-submenu">
+ <li><a href="http://make.wordpress.org/core/" title="Write the code.">Core</a></li>
+ <li><a href="http://make.wordpress.org/ui/" title="Improve the interface.">UI</a></li>
+ <li><a href="http://make.wordpress.org/accessibility/" title="Create a better experience.">Accessibility</a></li>
+ <li><a href="http://make.wordpress.org/plugins/" title="Extend the system.">Plugins</a></li>
+ <li><a href="http://make.wordpress.org/themes/" title="Beautify the web.">Themes</a></li>
+ <li><a href="http://make.wordpress.org/support/" title="Help the users.">Support</a></li>
+ <li><a href="http://make.wordpress.org/polyglots/" title="Translate for the world.">Polyglots</a></li>
+ <li><a href="http://make.wordpress.org/mobile/" title="On the go.">Mobile</a></li>
+ </ul>
+ <div class="uparrow"></div>
+ </li>
+ <li><a href="http://wordpress.org/about/" title="About the WordPress Organization, and where we're going.">About</a></li>
+ <li><a href="http://wordpress.org/news/" title="Come here for the latest scoop.">Blog</a></li>
+ <li><a href="http://wordpress.org/hosting/" title="Find a home for your blog.">Hosting</a></li>
+ <li id="download" class="button download-button"><a href="http://wordpress.org/download/" title="Get it. Got it? Good.">Download WordPress</a></li>
+ </ul>
+ <div style="clear:both"></div>
+ </div>
+</div>
+
+<div id="download-mobile">
+ <div class="wrapper">
+ <span class="download-ready">Ready to get started?</span><a class="button download-button" href="http://wordpress.org/download/" title="Get it. Got it? Good.">Download WordPress</a>
+ </div>
+</div>
+
+</html>
</ins><span class="cx">Property changes on: sites/trunk/trac.wordpress.org/templates/wporg-header.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span><a id="sitestrunktracwordpressorgtemplateswporgmenuhtml"></a>
<div class="addfile"><h4>Added: sites/trunk/trac.wordpress.org/templates/wporg-menu.html (0 => 156)</h4>
<pre class="diff"><span>
<span class="info">--- sites/trunk/trac.wordpress.org/templates/wporg-menu.html (rev 0)
+++ sites/trunk/trac.wordpress.org/templates/wporg-menu.html 2013-12-18 03:38:30 UTC (rev 156)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ py:strip="">
+
+ <div id="headline">
+ <div class="wrapper">
+ <h2><a href="http://make.wordpress.org/core/">Make WordPress Core</a></h2>
+ <div class="menu-container"><ul class="menu">
+ <li><a href="http://make.wordpress.org/core/">Blog</a></li>
+ <li><a href="http://make.wordpress.org/core/handbook/">Contributor Handbook</a></li>
+ <li><a href="http://core.trac.wordpress.org/">Trac (Bug Reports)</a></li>
+ </ul></div>
+ </div>
+ </div>
+
+</html>
</ins><span class="cx">Property changes on: sites/trunk/trac.wordpress.org/templates/wporg-menu.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<ins>+native
</ins><span class="cx">\ No newline at end of property
</span></div>
</body>
</html>