提交 dddcc763 编写于 作者: K Kohsuke Kawaguchi

went through all <A>s and converted them to model links where applicable

上级 b6448290
...@@ -35,7 +35,7 @@ THE SOFTWARE. ...@@ -35,7 +35,7 @@ THE SOFTWARE.
<img src="${imagesURL}/24x24/grey.png" tooltip="${%Not run}" alt="${%Not run}" height="24" width="24"/> <img src="${imagesURL}/24x24/grey.png" tooltip="${%Not run}" alt="${%Not run}" height="24" width="24"/>
</j:when> </j:when>
<j:otherwise> <j:otherwise>
<a href="${p.shortUrl}/"> <a href="${p.shortUrl}/" class="model-link">
<img src="${imagesURL}/24x24/${b.buildStatusUrl}" tooltip="${p.tooltip} ${it.number!=b.number?(it.isBuilding()?'- pending' : '- skipped'):''}" alt="${p.tooltip}" style="${it.number!=b.number?'opacity:0.5':''}" height="24" width="24"/> <img src="${imagesURL}/24x24/${b.buildStatusUrl}" tooltip="${p.tooltip} ${it.number!=b.number?(it.isBuilding()?'- pending' : '- skipped'):''}" alt="${p.tooltip}" style="${it.number!=b.number?'opacity:0.5':''}" height="24" width="24"/>
<j:if test="${empty(o.x) and empty(o.y)}"> <j:if test="${empty(o.x) and empty(o.y)}">
${p.combination.toString(o.z)} ${p.combination.toString(o.z)}
......
...@@ -34,7 +34,7 @@ THE SOFTWARE. ...@@ -34,7 +34,7 @@ THE SOFTWARE.
<img src="${imagesURL}/24x24/grey.png" tooltip="${%Not configured}" alt="${%Not configured}" height="24" width="24"/> <img src="${imagesURL}/24x24/grey.png" tooltip="${%Not configured}" alt="${%Not configured}" height="24" width="24"/>
</j:when> </j:when>
<j:otherwise> <j:otherwise>
<a href="${p.shortUrl}"> <a href="${p.shortUrl}" class="model-link">
<img src="${imagesURL}/24x24/${p.buildStatusUrl}" tooltip="${p.iconColor.description}" alt="${p.iconColor.description}" height="24" width="24"/> <img src="${imagesURL}/24x24/${p.buildStatusUrl}" tooltip="${p.iconColor.description}" alt="${p.iconColor.description}" height="24" width="24"/>
<j:if test="${empty(o.x) and empty(o.y)}"> <j:if test="${empty(o.x) and empty(o.y)}">
${p.combination.toString(o.z)} ${p.combination.toString(o.z)}
......
...@@ -63,7 +63,7 @@ THE SOFTWARE. ...@@ -63,7 +63,7 @@ THE SOFTWARE.
<j:set var="atr" value="${it.lastCompletedBuild.aggregatedTestResultAction}"/> <j:set var="atr" value="${it.lastCompletedBuild.aggregatedTestResultAction}"/>
<j:if test="${atr!=null}"> <j:if test="${atr!=null}">
<t:summary icon="clipboard.png"> <t:summary icon="clipboard.png">
<a href="lastCompletedBuild/testReport/">${%Latest Test Result}</a> <a href="lastCompletedBuild/testReport/" class="model-link">${%Latest Test Result}</a>
<st:nbsp/> <st:nbsp/>
<t:test-result it="${atr}" /> <t:test-result it="${atr}" />
</t:summary> </t:summary>
......
...@@ -76,11 +76,11 @@ THE SOFTWARE. ...@@ -76,11 +76,11 @@ THE SOFTWARE.
<ol> <ol>
<j:forEach var="dep" items="${depChanges.values()}"> <j:forEach var="dep" items="${depChanges.values()}">
<li> <li>
<a href="${rootURL}/${dep.project.url}">${dep.project.displayName}</a> <a href="${rootURL}/${dep.project.url}" class="model-link">${dep.project.displayName}</a>
<st:nbsp/> <st:nbsp/>
<j:choose> <j:choose>
<j:when test="${dep.from!=null}"> <j:when test="${dep.from!=null}">
<a href="${rootURL}/${dep.from.url}"> <a href="${rootURL}/${dep.from.url}" class="model-link">
<img src="${imagesURL}/16x16/${dep.from.buildStatusUrl}" <img src="${imagesURL}/16x16/${dep.from.buildStatusUrl}"
alt="${dep.from.iconColor.description}" height="16" width="16" />${dep.from.displayName}</a> alt="${dep.from.iconColor.description}" height="16" width="16" />${dep.from.displayName}</a>
</j:when> </j:when>
...@@ -91,7 +91,7 @@ THE SOFTWARE. ...@@ -91,7 +91,7 @@ THE SOFTWARE.
&#x2192; <!-- right arrow --> &#x2192; <!-- right arrow -->
<a href="${rootURL}/${dep.to.url}"> <a href="${rootURL}/${dep.to.url}" class="model-link">
<img src="${imagesURL}/16x16/${dep.to.buildStatusUrl}" <img src="${imagesURL}/16x16/${dep.to.buildStatusUrl}"
alt="${dep.to.iconColor.description}" height="16" width="16" />${dep.to.displayName}</a> alt="${dep.to.iconColor.description}" height="16" width="16" />${dep.to.displayName}</a>
...@@ -125,7 +125,7 @@ THE SOFTWARE. ...@@ -125,7 +125,7 @@ THE SOFTWARE.
<ul style="list-style-type: none;"> <ul style="list-style-type: none;">
<j:forEach var="item" items="${upstream}"> <j:forEach var="item" items="${upstream}">
<li> <li>
<a href="${rootURL}/${item.key.url}">${item.key.displayName}</a> <a href="${rootURL}/${item.key.url}" class="model-link">${item.key.displayName}</a>
<t:buildLink job="${item.key}" number="${item.value}" /> <t:buildLink job="${item.key}" number="${item.value}" />
</li> </li>
</j:forEach> </j:forEach>
...@@ -137,7 +137,7 @@ THE SOFTWARE. ...@@ -137,7 +137,7 @@ THE SOFTWARE.
<ul style="list-style-type: none;"> <ul style="list-style-type: none;">
<j:forEach var="item" items="${downstream}"> <j:forEach var="item" items="${downstream}">
<li> <li>
<a href="${rootURL}/${item.key.url}">${item.key.displayName}</a> <a href="${rootURL}/${item.key.url}" class="model-link">${item.key.displayName}</a>
<j:choose> <j:choose>
<j:when test="${item.value.isEmpty()}"> <j:when test="${item.value.isEmpty()}">
(${%none}) (${%none})
......
...@@ -50,7 +50,7 @@ THE SOFTWARE. ...@@ -50,7 +50,7 @@ THE SOFTWARE.
<j:if test="${tr!=null}"> <j:if test="${tr!=null}">
<j:if test="${tr.class.name != 'hudson.tasks.test.AggregatedTestResultAction'}"> <j:if test="${tr.class.name != 'hudson.tasks.test.AggregatedTestResultAction'}">
<t:summary icon="clipboard.png"> <t:summary icon="clipboard.png">
<a href="lastCompletedBuild/testReport/">${%Latest Test Result}</a> <a href="lastCompletedBuild/testReport/" class="model-link">${%Latest Test Result}</a>
<st:nbsp/> <st:nbsp/>
<t:test-result it="${tr}" /> <t:test-result it="${tr}" />
</t:summary> </t:summary>
...@@ -60,7 +60,7 @@ THE SOFTWARE. ...@@ -60,7 +60,7 @@ THE SOFTWARE.
<j:set var="atr" value="${it.lastCompletedBuild.aggregatedTestResultAction}"/> <j:set var="atr" value="${it.lastCompletedBuild.aggregatedTestResultAction}"/>
<j:if test="${atr!=null}"> <j:if test="${atr!=null}">
<t:summary icon="clipboard.png"> <t:summary icon="clipboard.png">
<a href="lastCompletedBuild/aggregatedTestReport/">${%Latest Aggregated Test Result}</a> <a href="lastCompletedBuild/aggregatedTestReport/" class="model-link">${%Latest Aggregated Test Result}</a>
<st:nbsp/> <st:nbsp/>
<t:test-result it="${atr}" /> <t:test-result it="${atr}" />
</t:summary> </t:summary>
......
...@@ -75,7 +75,7 @@ THE SOFTWARE. ...@@ -75,7 +75,7 @@ THE SOFTWARE.
<j:forEach var="entry" items="${it.node.labelCloud}"> <j:forEach var="entry" items="${it.node.labelCloud}">
<!-- Skip the label for this node --> <!-- Skip the label for this node -->
<j:if test="${entry.item!=it.node.selfLabel}"> <j:if test="${entry.item!=it.node.selfLabel}">
<a class="${entry.className}" href="${rootURL}/label/${entry.item.name}">${entry.item.name}</a> <a class="${entry.className} model-link" href="${rootURL}/label/${entry.item.name}">${entry.item.name}</a>
<st:nbsp/> <st:nbsp/>
</j:if> </j:if>
</j:forEach> </j:forEach>
......
...@@ -56,7 +56,7 @@ THE SOFTWARE. ...@@ -56,7 +56,7 @@ THE SOFTWARE.
<td width="32" data="${c.icon}"> <td width="32" data="${c.icon}">
<img src="${imagesURL}/32x32/${c.icon}" width="32" height="32" alt="${c.iconAltText}"/> <img src="${imagesURL}/32x32/${c.icon}" width="32" height="32" alt="${c.iconAltText}"/>
</td> </td>
<td><a href="${rootURL}/${c.url}">${c.displayName}</a></td> <td><a href="${rootURL}/${c.url}" class="model-link">${c.displayName}</a></td>
<j:forEach var="m" items="${monitors}"> <j:forEach var="m" items="${monitors}">
<j:if test="${m.columnCaption!=null}"> <j:if test="${m.columnCaption!=null}">
<j:set var="data" value="${m.data(c)}"/> <j:set var="data" value="${m.data(c)}"/>
......
...@@ -73,7 +73,7 @@ THE SOFTWARE. ...@@ -73,7 +73,7 @@ THE SOFTWARE.
<td class="fingerprint-summary-header"> <td class="fingerprint-summary-header">
<j:choose> <j:choose>
<j:when test="${job!=null}"> <j:when test="${job!=null}">
<a href="${rootURL}/${job.url}">${j}</a> <a href="${rootURL}/${job.url}" class="model-link">${j}</a>
</j:when> </j:when>
<j:otherwise> <j:otherwise>
${j} ${j}
......
...@@ -57,7 +57,7 @@ THE SOFTWARE. ...@@ -57,7 +57,7 @@ THE SOFTWARE.
<img width="16" height="16" src="${imagesURL}/16x16/${r.buildStatusUrl}" alt="${r.iconColor.description}" /> <img width="16" height="16" src="${imagesURL}/16x16/${r.buildStatusUrl}" alt="${r.iconColor.description}" />
</td> </td>
<td data="${r.number}"> <td data="${r.number}">
<a href="${r.number}"> <a href="${r.number}/" class="model-link">
${r.displayName} ${r.displayName}
</a> </a>
</td> </td>
......
...@@ -36,7 +36,7 @@ THE SOFTWARE. ...@@ -36,7 +36,7 @@ THE SOFTWARE.
${%Nodes:} ${%Nodes:}
<j:forEach var="n" items="${it.nodes}"> <j:forEach var="n" items="${it.nodes}">
<j:set var="c" value="${app.getComputer(n.nodeName)}"/> <j:set var="c" value="${app.getComputer(n.nodeName)}"/>
<a href="${rootURL}/computer/${n.nodeName}"> <a href="${rootURL}/computer/${n.nodeName}" class="model-link">
<img src="${imagesURL}/16x16/${c.icon}" width="16" height="16" alt=""/> <img src="${imagesURL}/16x16/${c.icon}" width="16" height="16" alt=""/>
${c.displayName} ${c.displayName}
</a> </a>
......
...@@ -27,6 +27,6 @@ THE SOFTWARE. ...@@ -27,6 +27,6 @@ THE SOFTWARE.
xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"
xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project"> xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project">
<f:entry title="${it.name}" description="${it.description}"> <f:entry title="${it.name}" description="${it.description}">
<a href="${rootURL}/${it.run.url}">${it.run}</a> <a href="${rootURL}/${it.run.url}" class="model-link">${it.run}</a>
</f:entry> </f:entry>
</j:jelly> </j:jelly>
...@@ -45,12 +45,12 @@ THE SOFTWARE. ...@@ -45,12 +45,12 @@ THE SOFTWARE.
</tr> </tr>
<j:forEach var="p" items="${it.users}"> <j:forEach var="p" items="${it.users}">
<tr> <tr>
<td><a href="${rootURL}/${p.user.url}/"><img src="${h.getUserAvatar(p.user,iconSize)}" <td><a href="${rootURL}/${p.user.url}/" class="model-link"><img src="${h.getUserAvatar(p.user,iconSize)}"
alt="" class="icon${iconSize}"/></a></td> alt="" class="icon${iconSize}"/></a></td>
<td><a href="${rootURL}/${p.user.url}/">${p.user.id}</a></td> <td><a href="${rootURL}/${p.user.url}/">${p.user.id}</a></td>
<td><a href="${rootURL}/${p.user.url}/">${p.user}</a></td> <td><a href="${rootURL}/${p.user.url}/">${p.user}</a></td>
<td data="${p.timeSortKey}">${p.lastChangeTimeString}</td> <td data="${p.timeSortKey}">${p.lastChangeTimeString}</td>
<td><a href="${rootURL}/${p.project.url}">${p.project.fullDisplayName}</a></td> <td><a href="${rootURL}/${p.project.url}" class="model-link">${p.project.fullDisplayName}</a></td>
</tr> </tr>
</j:forEach> </j:forEach>
</table> </table>
......
...@@ -26,7 +26,7 @@ THE SOFTWARE. ...@@ -26,7 +26,7 @@ THE SOFTWARE.
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:i="jelly:fmt"> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:i="jelly:fmt">
<st:structuredMessageFormat key="description"> <st:structuredMessageFormat key="description">
<st:structuredMessageArgument> <st:structuredMessageArgument>
<a href="${rootURL}/label/${it.label.name}">${it.label.name}</a> <a href="${rootURL}/label/${it.label.name}" class="model-link">${it.label.name}</a>
</st:structuredMessageArgument> </st:structuredMessageArgument>
</st:structuredMessageFormat> </st:structuredMessageFormat>
</j:jelly> </j:jelly>
\ No newline at end of file
...@@ -53,7 +53,7 @@ THE SOFTWARE. ...@@ -53,7 +53,7 @@ THE SOFTWARE.
&#8212; &#8212;
<a href="${rootURL}/${c.author.url}/">${c.author}</a> / <a href="${rootURL}/${c.author.url}/" class="model-link">${c.author}</a> /
<j:set var="cslink" value="${browser.getChangeSetLink(c)}"/> <j:set var="cslink" value="${browser.getChangeSetLink(c)}"/>
<j:choose> <j:choose>
......
...@@ -39,7 +39,7 @@ THE SOFTWARE. ...@@ -39,7 +39,7 @@ THE SOFTWARE.
</tr> </tr>
<j:forEach var="user" items="${it.allUsers}"> <j:forEach var="user" items="${it.allUsers}">
<tr> <tr>
<td><a href="${user.url}/"><img src="${h.getUserAvatar(user,'32x32')}" alt="" height="32" width="32"/></a></td> <td><a href="${user.url}/" class="model-link"><img src="${h.getUserAvatar(user,'32x32')}" alt="" height="32" width="32"/></a></td>
<td><a href="${user.url}/">${user.id}</a></td> <td><a href="${user.url}/">${user.id}</a></td>
<td><a href="${user.url}/">${user}</a></td> <td><a href="${user.url}/">${user}</a></td>
<td> <td>
......
...@@ -41,7 +41,7 @@ THE SOFTWARE. ...@@ -41,7 +41,7 @@ THE SOFTWARE.
<j:if test="${test != null}"> <j:if test="${test != null}">
<tr> <tr>
<td class="pane"> <td class="pane">
<a href="${app.rootUrl}${b.url}testReport${p.url}">${b.fullDisplayName}</a> <a href="${app.rootUrl}${b.url}testReport${p.url}" class="model-link">${b.fullDisplayName}</a>
<st:nbsp/> <st:nbsp/>
<j:forEach var="badge" items="${test.testActions}"> <j:forEach var="badge" items="${test.testActions}">
<st:include it="${badge}" page="badge.jelly" optional="true"/> <st:include it="${badge}" page="badge.jelly" optional="true"/>
......
...@@ -36,7 +36,7 @@ THE SOFTWARE. ...@@ -36,7 +36,7 @@ THE SOFTWARE.
<j:forEach var="p" items="${it.children}" varStatus="status"> <j:forEach var="p" items="${it.children}" varStatus="status">
<tr> <tr>
<td class="pane"> <td class="pane">
<a href="${p.safeName}"><span style="${p.previousResult==null?'font-weight:bold':''}"><st:out value="${p.name}" /></span></a> <a href="${p.safeName}" class="model-link"><span style="${p.previousResult==null?'font-weight:bold':''}"><st:out value="${p.name}" /></span></a>
<st:nbsp/> <st:nbsp/>
<j:forEach var="badge" items="${p.testActions}"> <j:forEach var="badge" items="${p.testActions}">
<st:include it="${badge}" page="badge.jelly" optional="true"/> <st:include it="${badge}" page="badge.jelly" optional="true"/>
......
...@@ -40,7 +40,7 @@ THE SOFTWARE. ...@@ -40,7 +40,7 @@ THE SOFTWARE.
<j:if test="${p != null}"> <j:if test="${p != null}">
<tr> <tr>
<td class="pane"> <td class="pane">
<a href="${app.rootUrl}${b.url}testReport${p.url}">${b.fullDisplayName}</a> <a href="${app.rootUrl}${b.url}testReport${p.url}" class="model-link">${b.fullDisplayName}</a>
<st:nbsp/> <st:nbsp/>
<j:forEach var="badge" items="${p.testActions}"> <j:forEach var="badge" items="${p.testActions}">
<st:include it="${badge}" page="badge.jelly" optional="true"/> <st:include it="${badge}" page="badge.jelly" optional="true"/>
......
...@@ -61,7 +61,7 @@ THE SOFTWARE. ...@@ -61,7 +61,7 @@ THE SOFTWARE.
<j:forEach var="i" items="${it.didntRun}"> <j:forEach var="i" items="${it.didntRun}">
<tr> <tr>
<td class="pane"> <td class="pane">
<a href="${rootURL}/${i.url}">${i.fullDisplayName}</a> <a href="${rootURL}/${i.url}" class="model-link">${i.fullDisplayName}</a>
(${%test result not available}) (${%test result not available})
</td> </td>
<td class="pane"> <td class="pane">
...@@ -75,7 +75,7 @@ THE SOFTWARE. ...@@ -75,7 +75,7 @@ THE SOFTWARE.
<j:forEach var="i" items="${it.noFingerprints}"> <j:forEach var="i" items="${it.noFingerprints}">
<tr> <tr>
<td class="pane"> <td class="pane">
<a href="${rootURL}/${i.url}">${i.fullDisplayName}</a> <a href="${rootURL}/${i.url}" class="model-link">${i.fullDisplayName}</a>
(${%last successful job is not fingerprinted}) (${%last successful job is not fingerprinted})
</td> </td>
<td class="pane"> <td class="pane">
......
...@@ -42,7 +42,7 @@ THE SOFTWARE. ...@@ -42,7 +42,7 @@ THE SOFTWARE.
<j:forEach var="report" items="${it.childReports}"> <j:forEach var="report" items="${it.childReports}">
<tr> <tr>
<td class="pane"> <td class="pane">
<a href="../${report.child.project.shortUrl}testReport">${report.child.project.name}</a> <a href="../${report.child.project.shortUrl}testReport" class="model-link">${report.child.project.name}</a>
</td> </td>
<td data="${report.result.duration}" class="pane" style="text-align:right"> <td data="${report.result.duration}" class="pane" style="text-align:right">
${report.result.durationString} ${report.result.durationString}
...@@ -74,7 +74,7 @@ THE SOFTWARE. ...@@ -74,7 +74,7 @@ THE SOFTWARE.
<h3> <h3>
<a name="${report.child.project.name}"/> <a name="${report.child.project.name}"/>
<a href="../${report.child.project.shortUrl}testReport">${report.child.project.name}</a> <a href="../${report.child.project.shortUrl}testReport" class="model-link">${report.child.project.name}</a>
</h3> </h3>
<table class="pane sortable"> <table class="pane sortable">
...@@ -86,7 +86,7 @@ THE SOFTWARE. ...@@ -86,7 +86,7 @@ THE SOFTWARE.
<j:forEach var="f" items="${report.result.failedTests}" varStatus="i"> <j:forEach var="f" items="${report.result.failedTests}" varStatus="i">
<tr> <tr>
<td class="pane"> <td class="pane">
<a href="../${report.child.project.shortUrl}testReport/${f.getRelativePathFrom(report.result)}"> <a href="../${report.child.project.shortUrl}testReport/${f.getRelativePathFrom(report.result)}" class="model-link">
<st:out value="${f.fullName}"/> <st:out value="${f.fullName}"/>
<st:nbsp/> <st:nbsp/>
<j:forEach var="badge" items="${f.testActions}"> <j:forEach var="badge" items="${f.testActions}">
......
...@@ -63,7 +63,7 @@ THE SOFTWARE. ...@@ -63,7 +63,7 @@ THE SOFTWARE.
<a id="test-${f.fullName}-hidelink" style="display:none" <a id="test-${f.fullName}-hidelink" style="display:none"
href="javascript:hideStackTrace('test-${h.jsStringEscape(f.fullName)}')">&lt;&lt;&lt;</a> href="javascript:hideStackTrace('test-${h.jsStringEscape(f.fullName)}')">&lt;&lt;&lt;</a>
<st:nbsp/> <st:nbsp/>
<a href="${f.getRelativePathFrom(it)}"><st:out value="${f.fullName}"/></a> <a href="${f.getRelativePathFrom(it)}" class="model-link"><st:out value="${f.fullName}"/></a>
<st:nbsp/> <st:nbsp/>
<j:forEach var="badge" items="${f.testActions}"> <j:forEach var="badge" items="${f.testActions}">
<st:include it="${badge}" page="badge.jelly" optional="true"/> <st:include it="${badge}" page="badge.jelly" optional="true"/>
...@@ -77,7 +77,7 @@ THE SOFTWARE. ...@@ -77,7 +77,7 @@ THE SOFTWARE.
${f.durationString} ${f.durationString}
</td> </td>
<td class="pane" style="text-align:right;"> <td class="pane" style="text-align:right;">
<a href="${rootURL}/${f.failedSinceRun.url}">${f.age}</a> <a href="${rootURL}/${f.failedSinceRun.url}" class="model-link">${f.age}</a>
</td> </td>
</tr> </tr>
</j:forEach> </j:forEach>
...@@ -102,7 +102,7 @@ THE SOFTWARE. ...@@ -102,7 +102,7 @@ THE SOFTWARE.
<j:set var="prev" value="${p.previousResult}" /> <j:set var="prev" value="${p.previousResult}" />
<tr> <tr>
<td class="pane"> <td class="pane">
<a href="${p.safeName}/"><span style="${prev==null?'font-weight:bold':''}"><st:out value="${p.name}" /></span></a> <a href="${p.safeName}/" class="model-link"><span style="${prev==null?'font-weight:bold':''}"><st:out value="${p.name}" /></span></a>
<st:nbsp/> <st:nbsp/>
<j:forEach var="badge" items="${p.testActions}"> <j:forEach var="badge" items="${p.testActions}">
<st:include it="${badge}" page="badge.jelly" optional="true"/> <st:include it="${badge}" page="badge.jelly" optional="true"/>
......
...@@ -40,7 +40,7 @@ THE SOFTWARE. ...@@ -40,7 +40,7 @@ THE SOFTWARE.
<j:if test="${p != null}"> <j:if test="${p != null}">
<tr> <tr>
<td class="pane"> <td class="pane">
<a href="${app.rootUrl}${b.url}testReport${p.url}">${b.fullDisplayName}</a> <a href="${app.rootUrl}${b.url}testReport${p.url}" class="model-link">${b.fullDisplayName}</a>
<st:nbsp/> <st:nbsp/>
<j:forEach var="badge" items="${p.testActions}"> <j:forEach var="badge" items="${p.testActions}">
<st:include it="${badge}" page="badge.jelly" optional="true"/> <st:include it="${badge}" page="badge.jelly" optional="true"/>
......
...@@ -29,5 +29,5 @@ THE SOFTWARE. ...@@ -29,5 +29,5 @@ THE SOFTWARE.
Displays a link when given an AbstractItem. It is assumed that that Abstract Displays a link when given an AbstractItem. It is assumed that that Abstract
Item is passed in ${it} Item is passed in ${it}
</st:documentation> </st:documentation>
<a href="${it.absoluteUrl}" tooltip="${it.name}">${it.displayName}</a> <a href="${it.absoluteUrl}" class="model-link">${it.displayName}</a>
</j:jelly> </j:jelly>
\ No newline at end of file
...@@ -42,11 +42,11 @@ THE SOFTWARE. ...@@ -42,11 +42,11 @@ THE SOFTWARE.
<j:set var="r" value="${job.getBuildByNumber(number)}" /> <j:set var="r" value="${job.getBuildByNumber(number)}" />
<j:choose> <j:choose>
<j:when test="${r==null}"> <j:when test="${r==null}">
<a href="${rootURL}/${job.url}">${jobName}</a> <a href="${rootURL}/${job.url}" class="model-link">${jobName}</a>
#<!-- -->${number} #<!-- -->${number}
</j:when> </j:when>
<j:otherwise> <j:otherwise>
<a href="${attrs.href ?: rootURL+'/'+r.url}"> <a href="${attrs.href ?: rootURL+'/'+r.url}" class="model-link">
<img src="${imagesURL}/16x16/${r.buildStatusUrl}" <img src="${imagesURL}/16x16/${r.buildStatusUrl}"
alt="${r.iconColor.description}" height="16" width="16"/>${jobName_}#<!-- -->${number}</a> alt="${r.iconColor.description}" height="16" width="16"/>${jobName_}#<!-- -->${number}</a>
</j:otherwise> </j:otherwise>
......
...@@ -47,15 +47,15 @@ THE SOFTWARE. ...@@ -47,15 +47,15 @@ THE SOFTWARE.
<j:forEach var="b" items="${h.subList(attrs.builds,50)}"> <j:forEach var="b" items="${h.subList(attrs.builds,50)}">
<tr> <tr>
<td data="${b.iconColor.ordinal()}"> <td data="${b.iconColor.ordinal()}">
<a href="${jobBaseUrl}${b.url}"> <a href="${jobBaseUrl}${b.url}" class="model-link">
<img src="${imagesURL}/${iconSize}/${b.buildStatusUrl}" <img src="${imagesURL}/${iconSize}/${b.buildStatusUrl}"
alt="${b.iconColor.description}" class="icon${iconSize}"/> alt="${b.iconColor.description}" class="icon${iconSize}"/>
</a> </a>
</td> </td>
<td> <td>
<a href="${jobBaseUrl}${b.parent.url}">${b.parent.fullDisplayName}</a> <a href="${jobBaseUrl}${b.parent.url}" class="model-link">${b.parent.fullDisplayName}</a>
<st:nbsp/> <st:nbsp/>
<a href="${jobBaseUrl}${b.url}">${b.displayName}</a> <a href="${jobBaseUrl}${b.url}" class="model-link">${b.displayName}</a>
</td> </td>
<td data="${b.timestampString2}" tooltip="${%Click to center timeline on event}" onclick="javascript:tl.getBand(0).scrollToCenter(Timeline.DateTime.parseGregorianDateTime('${b.timestampString2}'))"> <td data="${b.timestampString2}" tooltip="${%Click to center timeline on event}" onclick="javascript:tl.getBand(0).scrollToCenter(Timeline.DateTime.parseGregorianDateTime('${b.timestampString2}'))">
${b.timestampString} ${b.timestampString}
......
...@@ -33,7 +33,7 @@ THE SOFTWARE. ...@@ -33,7 +33,7 @@ THE SOFTWARE.
</st:documentation> </st:documentation>
<d:taglib uri="local"> <d:taglib uri="local">
<d:tag name="computerCaption"> <d:tag name="computerCaption">
<a href="${rootURL}/${c.url}">${title}</a> <a href="${rootURL}/${c.url}" class="model-link">${title}</a>
<j:if test="${c.offline}"> <st:nbsp/> (${%offline})</j:if> <j:if test="${c.offline}"> <st:nbsp/> (${%offline})</j:if>
<j:if test="${!c.acceptingTasks}"> <st:nbsp/> (${%suspended})</j:if> <j:if test="${!c.acceptingTasks}"> <st:nbsp/> (${%suspended})</j:if>
</d:tag> </d:tag>
...@@ -57,7 +57,7 @@ THE SOFTWARE. ...@@ -57,7 +57,7 @@ THE SOFTWARE.
<td class="pane"> <td class="pane">
<j:choose> <j:choose>
<j:when test="${c.offline}"> <j:when test="${c.offline}">
<a href="${rootURL}/${c.url}">${%Offline}</a> <a href="${rootURL}/${c.url}" class="model-link">${%Offline}</a>
</j:when> </j:when>
<j:otherwise> <j:otherwise>
${%Idle} ${%Idle}
...@@ -79,7 +79,7 @@ THE SOFTWARE. ...@@ -79,7 +79,7 @@ THE SOFTWARE.
</j:invokeStatic> </j:invokeStatic>
<j:choose> <j:choose>
<j:when test="${h.hasPermission(exeparent,exeparent.READ)}"> <j:when test="${h.hasPermission(exeparent,exeparent.READ)}">
<a href="${rootURL}/${exeparent.url}">${exeparent.fullDisplayName}</a>&#160;<a href="${rootURL}/${exe.url}">#${exe.number}</a> <a href="${rootURL}/${exeparent.url}" class="model-link">${exeparent.fullDisplayName}</a>&#160;<a href="${rootURL}/${exe.url}" class="model-link">#${exe.number}</a>
<t:buildProgressBar build="${exe}" executor="${executor}"/> <t:buildProgressBar build="${exe}" executor="${executor}"/>
</j:when> </j:when>
<j:otherwise> <j:otherwise>
......
...@@ -32,5 +32,5 @@ THE SOFTWARE. ...@@ -32,5 +32,5 @@ THE SOFTWARE.
</st:documentation> </st:documentation>
<img src="${imagesURL}/16x16/${job.buildStatusUrl}" alt="${job.iconColor.description}" height="16" width="16"/> <img src="${imagesURL}/16x16/${job.buildStatusUrl}" alt="${job.iconColor.description}" height="16" width="16"/>
<a href="${h.getRelativeLinkTo(job)}" tooltip="${job.name}">${job.displayName}</a> <a href="${h.getRelativeLinkTo(job)}" class="model-link">${job.displayName}</a>
</j:jelly> </j:jelly>
...@@ -30,7 +30,7 @@ THE SOFTWARE. ...@@ -30,7 +30,7 @@ THE SOFTWARE.
</st:documentation> </st:documentation>
<j:choose> <j:choose>
<j:when test="${value!=null and value!=app}"> <j:when test="${value!=null and value!=app}">
<a href="${rootURL}/computer/${value.nodeName}">${value.nodeName}</a> <a href="${rootURL}/computer/${value.nodeName}" class="model-link">${value.nodeName}</a>
</j:when> </j:when>
<j:otherwise> <j:otherwise>
${%master} ${%master}
......
...@@ -36,7 +36,7 @@ THE SOFTWARE. ...@@ -36,7 +36,7 @@ THE SOFTWARE.
<j:set var="b" value="${it[property]}"/> <j:set var="b" value="${it[property]}"/>
<j:if test="${b!=null}"> <j:if test="${b!=null}">
<li> <li>
<a href="${property}/">${%format(title,b.number,b.timestampString)}</a> <a href="${property}/" class="model-link">${%format(title,b.number,b.timestampString)}</a>
</li> </li>
</j:if> </j:if>
</j:jelly> </j:jelly>
\ No newline at end of file
...@@ -48,7 +48,7 @@ THE SOFTWARE. ...@@ -48,7 +48,7 @@ THE SOFTWARE.
</div> </div>
</td> </td>
<td colspan="5" style="${indenter.getCss(job)}"> <td colspan="5" style="${indenter.getCss(job)}">
<a href="${rootURL}/${v.url}"> <a href="${rootURL}/${v.url}" class="model-link">
${v.viewName} ${v.viewName}
</a> </a>
</td> </td>
......
...@@ -62,7 +62,7 @@ THE SOFTWARE. ...@@ -62,7 +62,7 @@ THE SOFTWARE.
<j:set var="stuck" value="${item.isStuck()}"/> <j:set var="stuck" value="${item.isStuck()}"/>
<j:choose> <j:choose>
<j:when test="${h.hasPermission(item.task,item.task.READ)}"> <j:when test="${h.hasPermission(item.task,item.task.READ)}">
<a href="${rootURL}/${item.task.url}"> <a href="${rootURL}/${item.task.url}" class="model-link">
${item.task.fullDisplayName} ${item.task.fullDisplayName}
</a> </a>
<j:if test="${stuck}"> <j:if test="${stuck}">
......
...@@ -182,7 +182,7 @@ THE SOFTWARE. ...@@ -182,7 +182,7 @@ THE SOFTWARE.
<j:choose> <j:choose>
<j:when test="${!h.isAnonymous()}"> <j:when test="${!h.isAnonymous()}">
<span style="white-space:nowrap"> <span style="white-space:nowrap">
<a href="${rootURL}/user/${app.authentication.name}"><b>${app.authentication.name}</b></a> <a href="${rootURL}/user/${app.authentication.name}" class="model-link"><b>${app.authentication.name}</b></a>
<j:if test="${app.securityRealm.canLogOut()}"> <j:if test="${app.securityRealm.canLogOut()}">
| |
<a href="${rootURL}/logout"><b>${%logout}</b></a> <a href="${rootURL}/logout"><b>${%logout}</b></a>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册