20 ~ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
20 ~ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
21 ~ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
21 ~ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
22 ~ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
22 ~ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
23 ~ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
23 ~ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 --%> |
24 --%> |
25 <%@ page contentType="application/rss+xml;charset=UTF-8" trimDirectiveWhitespaces="true" %> |
25 <%@page contentType="application/rss+xml;charset=UTF-8" pageEncoding="UTF-8" %> |
26 <%@page import="de.uapcore.lightpit.Constants" %> |
|
27 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
26 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
28 <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
27 <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
29 <jsp:useBean id="viewmodel" type="de.uapcore.lightpit.viewmodel.IssueFeed" scope="request"/> |
28 <jsp:useBean id="viewmodel" type="de.uapcore.lightpit.viewmodel.IssueFeed" scope="request"/> |
30 <c:set scope="page" var="baseHref" value="${requestScope[Constants.REQ_ATTR_BASE_HREF]}"/> |
29 <channel> |
31 <fmt:setLocale scope="request" value="${pageContext.response.locale}"/> |
30 <title><c:out value="${viewmodel.project.name}"/> | <fmt:message key="feed.issues.title"/></title> |
32 <fmt:setBundle scope="request" basename="localization.strings"/> |
31 <description><fmt:message key="feed.issues.description"/></description> |
33 <?xml version="1.0" encoding="utf-8"?> |
32 <link>${baseHref}projects/${viewmodel.project.node}</link> |
34 <rss version="2.0"> |
33 <language>${pageContext.response.locale.language}</language> |
35 <c:forEach items="${viewmodel.issues}" var="feed"> |
|
36 <c:set var="project" value="${feed.key}"/> |
|
37 <c:set var="issues" value="${feed.value}"/> |
|
38 <channel> |
|
39 <title> |
|
40 <fmt:message key="feed.issues.title"/> - <c:out value="${project.name}"/> |
|
41 </title> |
|
42 <link>${baseHref}projects/${project.node}/</link> |
|
43 <description><fmt:message key="feed.issues.description"/></description> |
|
44 <language>${pageContext.response.locale.language}</language> |
|
45 |
34 |
46 <c:forEach items="${issues}" var="issue"> |
35 <c:forEach items="${viewmodel.issues}" var="issue"> |
47 <item> |
36 <item> |
48 <title><c:if test="${not empty issue.component}"><c:out value="${issue.component.name}"/> - </c:if><c:out value="${issue.subject}"/></title> |
37 <title><c:if test="${not empty issue.component}"><c:out value="${issue.component.name}"/> - </c:if><c:out value="${issue.subject}"/></title> |
49 <description><c:out value="${issue.description}"/></description> |
38 <description><c:out value="${issue.description}"/></description> |
50 <category><fmt:message key="issue.category.${issue.category}"/></category> |
39 <category><fmt:message key="issue.category.${issue.category}"/></category> |
51 <link>${baseHref}projects/${issue.project.node}/issues/-/${empty issue.component ? '-' : issue.component.node}/${issue.id}</link> |
40 <link>${baseHref}projects/${issue.project.node}/issues/-/${empty issue.component ? '-' : issue.component.node}/${issue.id}</link> |
52 <guid isPermaLink="true">${baseHref}projects/${issue.project.node}/issues/-/-/${issue.id}</guid> |
41 <guid isPermaLink="true">${baseHref}projects/${issue.project.node}/issues/-/-/${issue.id}</guid> |
53 <pubDate><fmt:formatDate value="${issue.updated}" pattern="EEE, dd MMM yyyy HH:mm:ss zzz" /></pubDate> |
42 <pubDate><fmt:formatDate value="${issue.updated}" pattern="EEE, dd MMM yyyy HH:mm:ss zzz" /></pubDate> |
54 </item> |
43 </item> |
55 </c:forEach> |
|
56 </channel> |
|
57 </c:forEach> |
44 </c:forEach> |
58 </rss> |
45 </channel> |