diff options
-rw-r--r-- | gentoobrowse/console/packageimport.xml | 40 | ||||
-rw-r--r-- | gentoobrowse/package.xslt | 17 | ||||
-rw-r--r-- | gentoobrowse/views/package.xml | 13 |
3 files changed, 55 insertions, 15 deletions
diff --git a/gentoobrowse/console/packageimport.xml b/gentoobrowse/console/packageimport.xml index 95743a4..fbfb25b 100644 --- a/gentoobrowse/console/packageimport.xml +++ b/gentoobrowse/console/packageimport.xml @@ -169,5 +169,45 @@ </columns> </project2:sqlmerge> + <project2:sqlmerge name="changelogs" datasource="postgres" targettable="package_changelogs" useview="no"> + <sql> + SELECT packageid, + CAST(r[1] AS DATE) AS DATE, + RANK() OVER(PARTITION BY packageid, CAST(r[1] AS DATE) ORDER BY s.linebegin) AS n, + r[2] AS person, + r[3] AS email, + (SELECT TRIM(SPLIT_PART(STRING_AGG(m.content, ' ' ORDER BY m.line), ':', 2)) + FROM filecache m + WHERE m.fileid=s.fileid + AND m.line >= s.linebegin + AND m.content not like '*%' + AND (m.line < s.lineend OR s.lineend IS NULL)) AS comment + FROM (SELECT f.fileid, + p.packageid, + fc.line AS linebegin, + REGEXP_MATCHES(content, '([0-9]{2} [[:alnum:]]+ [0-9]{2,4}); ?(.+)? <([^ >]+)') AS r, + (SELECT MIN(line) + FROM filecache nl + WHERE nl.fileid = f.fileid + AND nl.content ~ '([0-9]{2} [[:alnum:]]+ [0-9]{2,4}); ?(.+)? <([^ >]+)' + AND nl.line > fc.line) AS lineend + FROM filecache fc, files f, packages p, categories c + WHERE f.fileid=fc.fileid + AND f.filetypeid = 2 + AND c.categoryid = p.categoryid + AND p.name = SPLIT_PART(f.filename, '/', 2) + AND c.name = SPLIT_PART(f.filename, '/', 1)) AS s + WHERE IS_DATE(s.r[1]) + </sql> + <columns> + <column key="true">packageid</column> + <column key="true">date</column> + <column key="true">n</column> + <column>person</column> + <column>email</column> + <column>comment</column> + </columns> + </project2:sqlmerge> + <xi:include href="bugassociate.xml" /> </packageimport> diff --git a/gentoobrowse/package.xslt b/gentoobrowse/package.xslt index 5f0852d..37bf811 100644 --- a/gentoobrowse/package.xslt +++ b/gentoobrowse/package.xslt @@ -121,7 +121,7 @@ <xsl:if test="count(/gentoo/summary/package/maskdetails/mask) > 0"> <h3 class="tabhandle"><a href="javascript:showTab('masks');">Masks</a></h3> </xsl:if> - <xsl:if test="count(/gentoo/summary/package/changelog/line) > 0"> + <xsl:if test="count(/gentoo/summary/package/changelog/entry) > 0"> <h3 class="tabhandle"><a href="javascript:showTab('changelog');">Change log</a></h3> </xsl:if> </div> @@ -173,13 +173,16 @@ <!-- Change log --> <xsl:template match="/gentoo/summary/package/changelog"> - <xsl:if test="count(/gentoo/summary/package/changelog/line) > 0"> - <pre class="tabhidden" id="changelog"> - <xsl:for-each select="line"> - <xsl:value-of select="content" /><xsl:text> -</xsl:text> + <xsl:if test="count(/gentoo/summary/package/changelog/entry) > 0"> + <ul class="tabhidden" id="changelog"> + <xsl:for-each select="entry"> + <li><xsl:value-of select="substring-before(date, ' ')" /></li> + <ul> + <li><xsl:value-of select="person" /> <<xsl:value-of select="email" />></li> + <li><xsl:value-of select="comment" /></li> + </ul> </xsl:for-each> - </pre> + </ul> </xsl:if> </xsl:template> diff --git a/gentoobrowse/views/package.xml b/gentoobrowse/views/package.xml index d526df4..cbf9dfc 100644 --- a/gentoobrowse/views/package.xml +++ b/gentoobrowse/views/package.xml @@ -157,15 +157,12 @@ <param bind="0" value="^packageid" /> </parameters> </project2:sqlview> - <project2:sqlview name="changelog" recordname="line" datasource="postgres-web"> + <project2:sqlview name="changelog" recordname="entry" datasource="postgres-web"> <sql> - SELECT line, content - FROM files f, filecache fc, packages p, categories c - WHERE f.fileid = fc.fileid - AND p.categoryid = c.categoryid - AND f.filename = c.name || '/' || p.name || '/ChangeLog' - AND p.packageid = ? - ORDER BY line + SELECT date, person, email, comment + FROM package_changelogs + WHERE packageid = ? + ORDER BY date DESC, n DESC </sql> <parameters> <param bind="0" value="^packageid" /> |