diff options
-rw-r--r-- | Bugzilla/Constants.pm | 5 | ||||
-rw-r--r-- | docs/xml/using.xml | 28 | ||||
-rw-r--r-- | template/en/default/global/header.html.tmpl | 8 | ||||
-rw-r--r-- | template/en/default/list/list.html.tmpl | 3 | ||||
-rw-r--r-- | template/en/default/list/list.ics.tmpl | 8 | ||||
-rw-r--r-- | template/en/default/list/list.rss.tmpl | 95 |
6 files changed, 140 insertions, 7 deletions
diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm index d59ae0f84..45897a332 100644 --- a/Bugzilla/Constants.pm +++ b/Bugzilla/Constants.pm @@ -126,10 +126,11 @@ use constant LOGOUT_KEEP_CURRENT => 2; use constant contenttypes => { - "html" => "text/html" , + "html"=> "text/html" , "rdf" => "application/rdf+xml" , + "rss" => "application/rss+xml" , "xml" => "application/xml" , - "js" => "application/x-javascript" , + "js" => "application/x-javascript" , "csv" => "text/plain" , "png" => "image/png" , "ics" => "text/calendar" , diff --git a/docs/xml/using.xml b/docs/xml/using.xml index 43adc3bfc..de5d9d26d 100644 --- a/docs/xml/using.xml +++ b/docs/xml/using.xml @@ -461,7 +461,22 @@ get the buglist as comma-separated values, for import into e.g. a spreadsheet.</member> - + + <member> + <emphasis>RSS</emphasis> + + get the buglist as a RSS 1.0 feed. It is used by setting up your + buglist query and then copying this links url into your RSS reader. If + you are using firefox, you can also save the buglist as a live + bookmark. If you would like to limit the number of RSS items, add + a limit=n url parameter.</memeber> + + <member> + <emphasis>iCalendar</emphasis> + + Get the buglist as an iCalendar file. Each bug is represented as a + to-do item in the imported calendar.</member> + <member> <emphasis>Change Columns:</emphasis> @@ -494,6 +509,17 @@ </member> </simplelist> </para> + + <para> + If you would like to access the bug list from another program + it is often useful to have the list returned in something other + than HTML. By adding the ctype=type parameter into the bug list URL + you can specify several alternate formats. The supported formats + are: Comma Separated Values (ctype=csv), iCalendar (ctype=ics), + RDF Site Summary (RSS) 1.0 (ctype=rss), ECMAScript, also known + as JavaScript (ctype=js), and finally Resource Description Framework + RDF/XML (ctype=rdf). + </para> </section> <section id="bugreports"> diff --git a/template/en/default/global/header.html.tmpl b/template/en/default/global/header.html.tmpl index 3c7c6f170..90c3659fe 100644 --- a/template/en/default/global/header.html.tmpl +++ b/template/en/default/global/header.html.tmpl @@ -35,6 +35,7 @@ # style: string. CSS style. # style_urls: list. List of URLs to CSS style sheets. # message: string. A message to display to the user. May contain HTML. + # rsslink: rss link url, May contain HTML #%] [% IF message %] @@ -99,6 +100,13 @@ [% END %] [% END %] + [%# this puts the live bookmark up on firefox for the RSS feed %] + [% IF rsslink %] + <link rel="alternate" + type="application/rss+xml" title="RSS 1.0" + href="[% rsslink FILTER html %]" /> + [% END %] + </head> [%# Migration note: contents of the old Param 'bodyhtml' go in the body tag, diff --git a/template/en/default/list/list.html.tmpl b/template/en/default/list/list.html.tmpl index e0a5a2b93..ce42ed03a 100644 --- a/template/en/default/list/list.html.tmpl +++ b/template/en/default/list/list.html.tmpl @@ -48,6 +48,7 @@ [% PROCESS global/header.html.tmpl title = title style = style + rsslink = "buglist.cgi?$urlquerypart&ctype=rss" %] <div align="center"> @@ -150,6 +151,8 @@ <a href="buglist.cgi? [% urlquerypart FILTER html %]&ctype=csv">CSV</a> | <a href="buglist.cgi? + [% urlquerypart FILTER html %]&ctype=rss">RSS</a> | + <a href="buglist.cgi? [% urlquerypart FILTER html %]&ctype=ics">iCalendar</a> | <a href="colchange.cgi? [% urlquerypart FILTER html %]">Change Columns</a> | diff --git a/template/en/default/list/list.ics.tmpl b/template/en/default/list/list.ics.tmpl index 27dc1b401..6246cf755 100644 --- a/template/en/default/list/list.ics.tmpl +++ b/template/en/default/list/list.ics.tmpl @@ -18,7 +18,7 @@ # # Contributor(s): William Jon McCann <mccann@jhu.edu> #%] -[% PROCESS global/variables.none.tmpl %] +[% PROCESS global/variables.none.tmpl %][% USE date %] BEGIN:VCALENDAR CALSCALE:GREGORIAN [%+ PROCESS ics_prodid +%] @@ -32,7 +32,7 @@ BEGIN:VTODO [%+ PROCESS ics_status bug_status = bug.bug_status +%] [%+ PROCESS ics_dtstamp +%] [% IF bug.changeddate %] -[%+ bug.changeddate FILTER ics('LAST-MODIFIED') +%] +[%+ date.format(bug.changedtime,"%Y%m%dT%H%M%SZ") FILTER ics('LAST-MODIFIED') +%] [% END %] [% IF bug.percentage_complete %] [%+ bug.percentage_complete FILTER format('%d') FILTER ics('PERCENT-COMPLETE') +%] @@ -66,11 +66,11 @@ END:VCALENDAR [% END %] [% BLOCK ics_dtstart %] - [% bug.opendate FILTER ics('DTSTART') %] + [% date.format(bug.opentime,"%Y%m%dT%H%M%SZ") FILTER ics('DTSTART') %] [% END %] [% BLOCK ics_dtstamp %] - [% currenttime FILTER ics('DTSTAMP') %] + [% date.format(date.now,"%Y%m%dT%H%M%SZ") FILTER ics('DTSTAMP') %] [% END %] [% BLOCK ics_status %] diff --git a/template/en/default/list/list.rss.tmpl b/template/en/default/list/list.rss.tmpl new file mode 100644 index 000000000..53352f225 --- /dev/null +++ b/template/en/default/list/list.rss.tmpl @@ -0,0 +1,95 @@ +[%# 1.0@bugzilla.org %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Walter Hoehn <wassa@columbia.edu> + # John Belmonte <john@neggie.net> + # Jason Remillard <jremillardshop@letterboxes.org> + # + # This is a template for generating an RSS 1.0 representation of a buglist. + #%] + +[% PROCESS global/variables.none.tmpl %] +[% USE date %] + +[% DEFAULT title = "$terms.Bugzilla $terms.Bugs" %] + +<?xml version="1.0"?> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:sy="http://pur1.org/rss/1.0/modules/syndication/" + xmlns:dc="http://pur1.org/rss/dc/elements/1.1/" + xmlns="http://purl.org/rss/1.0/"> + <channel rdf:about="[% Param('urlbase') %]buglist.cgi? + [%- urlquerypart.replace('ctype=rss[&]?','') FILTER xml %]" > + + <title>[% title FILTER xml %]</title> + <description>[% "$terms.Bugzilla $terms.bug list" FILTER xml %]</description> + + <link>[% Param('urlbase') %]buglist.cgi? + [%- urlquerypart.replace('ctype=rss[&]?','') FILTER xml -%] + </link> + + <sy:updatePeriod>hourly</sy:updatePeriod> + <sy:updateFrequency>2</sy:updateFrequency> + + <items> + <rdf:Seq> + [% FOREACH bug = bugs %] + <rdf:li rdf:resource="[% Param('urlbase') FILTER xml %]show_bug.cgi?id=[% bug.bug_id FILTER xml %]" /> + [% END %] + </rdf:Seq> + </items> + + </channel> + + [% FOREACH bug = bugs %] + <item rdf:about="[% Param('urlbase') FILTER xml %]show_bug.cgi?id=[% bug.bug_id FILTER xml %]"> + <title>[% bug.short_desc FILTER xml %]</title> + <link>[% Param('urlbase') FILTER xml %]show_bug.cgi?id=[% bug.bug_id FILTER xml %]</link> + <dc:creator>[% bug.reporter_realname FILTER xml %]</dc:creator> + <dc:date>[% date.format( format=>"%Y-%m-%dT%H:%MZ",time=>bug.opentime) FILTER xml %]</dc:date> + <description> + [%# Filter out the entire block, so that we don't need to escape the html code out %] + [% FILTER xml %] + <table> + <tr> + <th>Field</th><th>Value</th> + </tr><tr> + <td>[% columns.opendate.title FILTER none %]</td> + <td>[% bug.opendate FILTER none %]</td> + </tr><tr> + <td>[% columns.assigned_to_realname.title FILTER none %]</td> + <td>[% bug.assigned_to_realname FILTER none %]</td> + </tr><tr> + <td>[% columns.priority.title FILTER none %]</td> + <td>[% bug.priority FILTER none %]</td> + </tr><tr> + <td>[% columns.bug_severity.title FILTER none %] </td> + <td>[% bug.bug_severity FILTER none %]</td> + </tr><tr> + <td>[% columns.bug_status.title FILTER none %]</td> + <td>[% bug.bug_status FILTER none %]</td> + </tr><tr> + <td>[% columns.changeddate.title FILTER none %]</td> + <td>[% bug.changeddate FILTER none -%]</td> + </tr> + </table> + [% END %] + </description> + </item> + [% END %] +</rdf:RDF> |