diff --git a/project/WebDashboard/templates/ProjectGrid.vm b/project/WebDashboard/templates/ProjectGrid.vm index 4bc32b3a0..bcac827c2 100644 --- a/project/WebDashboard/templates/ProjectGrid.vm +++ b/project/WebDashboard/templates/ProjectGrid.vm @@ -1,265 +1,358 @@ -<!-- ProjectGrid.vm: Start --> -<script type="text/javascript"> - $(function(){ - $('#parameterCheck').dialog({ - autoOpen:false, - modal:true, - title:'$translations.Translate("Project Parameters")', - width:400, - height:300, - overlay:{ - opacity:0.5, - background:'black' - } - }); - #if ($wholeFarm) - var sortList = [[0,0],[1,0]]; - #else - var sortList = [[0,0]]; - #end - $('#StatusGrid').initialiseProjectGrid({ - sortList:sortList - }); - }); -</script> -<div id="parameterCheck" style="display:none;"> - <div id="parameterEditor">$translations.Translate("Loading parameters, please wait...")</div> -</div> -<form id="RefreshForm" - method="post"> - <table width="100%"> - <tr> - <td align="left"> - <input type="submit" - align="right" - name="Refresh" - value="$translations.Translate("Refresh status")" /> - </td> - </tr> - </table> -</form> + <!-- ProjectGrid.vm: Start --> + <script type="text/javascript"> + $(function(){ + $('#parameterCheck').dialog({ + autoOpen:false, + modal:true, + title:'$translations.Translate("Project Parameters")', + width:400, + height:300, + overlay:{ + opacity:0.5, + background:'black' + } + }); + #if ($wholeFarm) + var sortList = [[0,0],[1,0]]; + #else + var sortList = [[0,0]]; + #end + $('#StatusGrid').initialiseProjectGrid({ + sortList:sortList + }); + }); + </script> -#if ($forceBuildMessage.Length > 0) -<P> - <span id="StatusLabel"> - <b> - <font color="#4A3C8C">$translations.Translate($forceBuildMessage)</font> - </b> - </span> -</P> -#end + <div id="parameterCheck" style="display:none;"> + <div id="parameterEditor">$translations.Translate("Loading parameters, please wait...")</div> + </div> + <form id="RefreshForm" + method="post"> + <table width="100%"> + <tr> + <td align="right"> + <input type="submit" + align="right" + name="Refresh" + value="$translations.Translate('Refresh status')" + class="refreshStatus"/> + </td> + </tr> + </table> + </form> + <meta charset="UTF-8"> + <button + id="legend" + class="legend"> + $translations.Translate('Legend') + <span id="grow" class="measuringWrapper"> + <b> Build state { </b> + <img class="iconLegend" src="http://contxpm5/ccnet/images/greencircle.png"> : Succes | + <img class="iconLegend" src="http://contxpm5/ccnet/images/redcircle.png"> : Failure | + <img class="iconLegend" src="http://contxpm5/ccnet/images/orangecircle.png"> : Exception | + <img class="iconLegend" src="http://contxpm5/ccnet/images/bluecircle.png"> : Unknown <b>} + / Actions {</b> + <img class="iconLegend" src="http://contxpm5/ccnet/images/playsmall.png"> : Start | + <img class="iconLegend" src="http://contxpm5/ccnet/images/stopsmall.png"> : Stop | + <img class="iconLegend" src="http://contxpm5/ccnet/images/abort.png"> : Abort | + <img class="iconLegend" src="http://contxpm5/ccnet/images/force.png"> : Force run | + <img class="iconLegend" src="http://contxpm5/ccnet/images/out.png"> : Cancel pending <b>}</b> + </span> + </button> + #if ($forceBuildMessage.Length > 0) + <P> + <span id="StatusLabel"> + <b> + <font color="#4A3C8C">$translations.Translate($forceBuildMessage)</font> + </b> + </span> + </P> + #end -#set ($ProjectOKCounter = 0) -#set ($ProjectNOKCounter = 0) -#foreach ($projectGridRow in $projectGrid) - #if ($projectGridRow.BuildStatus == "Success") - #set ($ProjectOKCounter = $ProjectOKCounter + 1) - #else - #set ($ProjectNOKCounter = $ProjectNOKCounter + 1) - #end -#end -#set ($ProjectCounter = $ProjectOKCounter + $ProjectNOKCounter) -#if ($ProjectCounter == 0) - #set ($OKPercent = 50) - #set ($NOKPercent = 0) -#else - #set ($OKPercent = 50 * $ProjectOKCounter / $ProjectCounter) - #set ($NOKPercent = 50 - $OKPercent) -#end -#set ($OKPercentToolTip = $OKPercent * 2) + #set ($ProjectOKCounter = 0) + #set ($ProjectNOKCounter = 0) + #foreach ($projectGridRow in $projectGrid) + #if ($projectGridRow.BuildStatus == "Success") + #set ($ProjectOKCounter = $ProjectOKCounter + 1) + #else + #set ($ProjectNOKCounter = $ProjectNOKCounter + 1) + #end + #end + #set ($ProjectCounter = $ProjectOKCounter + $ProjectNOKCounter) + #if ($ProjectCounter == 0) + #set ($OKPercent = 50) + #set ($NOKPercent = 0) + #else + #set ($OKPercent = 50 * $ProjectOKCounter / $ProjectCounter) + #set ($NOKPercent = 50 - $OKPercent) + #end + #set ($OKPercentToolTip = $OKPercent * 2) -#if ($projectGrid.Length > 0) -<table id="StatusGrid" - class="SortableGrid"> - <thead> - #if ($barAtTop) - <tr> - <td colspan="10"> - <table id="BuildPercentage"> - <tr title="Percentage of successful builds : $OKPercentToolTip%"> - #if ($OKPercent == 50) - <td width="100%" - bgcolor="#33CC00"></td> - #else - <td width="$OKPercent%" - bgcolor="#33CC00"></td> - <td width="$NOKPercent%" - bgcolor="#FF0000"></td> - <td width="$NOKPercent%" - bgcolor="#FF0000"></td> - <td width="$OKPercent%" - bgcolor="#33CC00"></td> - #end - </tr> - </table> - </td> - </tr> - #end - <tr class="ProjectGridHeader"> - #if ($wholeFarm) - <th class="left">$translations.Translate("Server")</th> - #end - <th class="{sorter:false}">$translations.Translate("Admin")</th> - <th class="left">$translations.Translate("Project Name")</th> - <th>$translations.Translate("Last Build Status")</th> - <th>$translations.Translate("Last Build Time")</th> - <th>$translations.Translate("Next Build Time")</th> - <th>$translations.Translate("Last Build Label")</th> - <th>$translations.Translate("CCNet Status")</th> - <th>$translations.Translate("Activity")</th> - <th class="{sorter:false}">$translations.Translate("Messages")</th> - </tr> - </thead> - <tbody> + #if ($projectGrid.Length > 0) + <table id="StatusGrid" + class="SortableGrid"> + <thead> + #if ($barAtTop) + <tr> + <td colspan="10"> + <table id="BuildPercentage"> + <tr title="Percentage of successfull builds : $OKPercentToolTip%"> + #if ($OKPercent == 50) + <td width="100%" + bgcolor="#33CC00"></td> + #else + <td width="$OKPercent%" + bgcolor="#33CC00"></td> + <td width="$NOKPercent%" + bgcolor="#FF0000"></td> + <td width="$NOKPercent%" + bgcolor="#FF0000"></td> + <td width="$OKPercent%" + bgcolor="#33CC00"></td> + #end + </tr> + </table> + </td> + </tr> + #end + + <tr class="ProjectGridHeader"> + <th class="left">$translations.Translate("Project Name")</th> + <th>$translations.Translate("Last 5 Builds")</th> + <th>$translations.Translate("Statistics")</th> + <th class="{sorter:false}">$translations.Translate("Messages")</th> + <th>$translations.Translate("Last Build Time")</th> + <th>$translations.Translate("Running Time")</th> + <th>$translations.Translate("Status")</th> + <th>$translations.Translate("Queue Position(Priority)")</th> + <th>$translations.Translate("Activity")</th> + <th class="{sorter:false}">$translations.Translate("Admin")</th> + </tr> + </thead> + + <tbody> - #set ($RowId = 0) - #foreach ($projectGridRow in $projectGrid) - #set ($RowId = $RowId + 1) + #set ($RowId = 0) + #foreach ($projectGridRow in $projectGrid) + #set ($RowId = $RowId + 1) + #set($cont=0) + + <tr id="projectData$RowId"> + #set($add=$lastsFive.add("red")) + #set($add=$lastsFive.add("blue")) - <tr id="projectData$RowId"> - #if ($wholeFarm) - <td class="Black left">$projectGridRow.ServerName</td> - #end - <td> - <form method="post" - style="margin-bottom:0px;"> - <input type="hidden" - name="projectName" - value="$projectGridRow.Name" /> - <input type="hidden" - name="serverName" - value="$projectGridRow.ServerName" /> - <font color="Black"> - #if ($projectGridRow.allowForceBuild) - #if($projectGridRow.ForceAbortBuildButtonValue == "Force") - <input type="button" - name="$projectGridRow.ForceAbortBuildButtonName" - value="$translations.Translate($projectGridRow.ForceAbortBuildButtonValue)" - onclick="checkForParams(this, '$projectGridRow.ParametersUrl')"/> - #else - <input type="submit" - name="$projectGridRow.ForceAbortBuildButtonName" - value="$translations.Translate($projectGridRow.ForceAbortBuildButtonValue)"/> - #end - #end - #if ($projectGridRow.AllowStartStopBuild) - <input type="submit" - name="$projectGridRow.StartStopButtonName" - value="$translations.Translate($projectGridRow.StartStopButtonValue)"/> - #end - </font> - </form> - </td> - <td class="left"> - <a href="$projectGridRow.Url" title="$projectGridRow.Description">$projectGridRow.Name</a> - </td> - <td class="$projectGridRow.BuildStatusHtmlColor">$translations.Translate($projectGridRow.BuildStatus)</td> - <td><a href="server/$projectGridRow.ServerName/project/$projectGridRow.Name/ViewLatestBuildReport.aspx">$projectGridRow.LastBuildDate</a></td> - <td>$translations.Translate($projectGridRow.NextBuildTime)</td> - <td>$translations.Translate($projectGridRow.LastBuildLabel)</td> - <td class="status$projectGridRow.Status">$translations.Translate($projectGridRow.Status)</td> - <td class="activity$projectGridRow.Activity">$translations.Translate($projectGridRow.Activity.ToString())</td> - <td class="left"> - <ul> - #if ($projectGridRow.Breakers.Length > 0) - <li>$translations.Translate("Breakers : {0}", $projectGridRow.Breakers)</li> - #end - #if ($projectGridRow.Fixer.Length > 0) - <li>$projectGridRow.Fixer</li> - #end - #if ($projectGridRow.FailingTasks.Length > 0) - <li>$translations.Translate("Failing Tasks : {0}", $projectGridRow.FailingTasks)</li> - #end - </ul> - </td> + <td class="$color left project--name"> + <a href="$projectGridRow.Url" title="$projectGridRow.Description">$projectGridRow.Name</a> + </td> + <td class="$color project--name"> + #set($cont = 0) + #foreach($dataGridRow in $projectGridRow.LastFiveData) + #if ($translations.Translate($dataGridRow.BuildStatus) == "Failure" ) + #set($color = "red") + #set($span = "Failure: ") + #elseif ($translations.Translate($dataGridRow.BuildStatus) == "Exception" ) + #set($color = "orange") + #set($span = "Exception: ") + #elseif ($translations.Translate($dataGridRow.BuildStatus) == "Unknown" ) + #set($color = "blue") + #set($span = "Unknown: ") + #elseif ($translations.Translate($dataGridRow.BuildStatus) == "Success" ) + #set($color = "green") + #set($span = "Success: ") + #end + #set($date = $dataGridrow.Date) + #set($link = $dataGridRow.Link) + #set($runningTime = $dataGridRow.RunningTime) + <span id="spStatus" title="$span $date $runningTime"> + <a href="$link"> + <img src="http://contxpm5/ccnet/images/${color}circle.png" class="icon$cont"> + </a> + </span> + #set($cont = $cont + 1) + #end + </td> + + <td class="$color left project--name">$projectGridRow.Statistics</td> + #if ($projectGridRow.Breakers.Length == 0) + <td class="left width--content"> + #else + <td class="left scroll--content"> + #end + <ul> + #if ($projectGridRow.Fixer.Length > 0) + <li class="content--fixer">$projectGridRow.Fixer</li> + #end + #if (($projectGridRow.Breakers.Length > 0) && ($translations.Translate($projectGridRow.BuildStatus) == "Failure")) + <li class="content--breaker"> + $translations.Translate("Breakers :<br>{0}",$projectGridRow.Breakers) + </li> + #end + </ul> + </td> + <td> + <a href="server/$projectGridRow.ServerName/project/$projectGridRow.Name/ViewLatestBuildReport.aspx">$projectGridRow.LastBuildDate</a> + </td> - </tr> - #if ($projectGridRow.BuildStage.Length > 0) - <tr id="link$RowId" class="buildStatus"> - #if ($wholeFarm) - <td colspan="10">$translations.FormatBuildStage($projectGridRow.BuildStage)</td> - #else - <td colspan="9">$translations.FormatBuildStage($projectGridRow.BuildStage)</td> - #end - </tr> - #end - #end - </tbody> - #if ($barAtBottom) - <tfoot> - <tr> - <td colspan="10"> - <table id="BuildPercentage"> - <tr title="Percentage of successful builds : $OKPercentToolTip%"> - #if ($OKPercent == 50) - <td width="100%" - bgcolor="#33CC00"></td> - #else - <td width="$OKPercent%" - bgcolor="#33CC00"></td> - <td width="$NOKPercent%" - bgcolor="#FF0000"></td> - <td width="$NOKPercent%" - bgcolor="#FF0000"></td> - <td width="$OKPercent%" - bgcolor="#33CC00"></td> - #end - </tr> - </table> - </td> - </tr> - </tfoot> - #end -</table> -#end + <td> + <a id= "demo" href="server/$projectGridRow.ServerName/project/$projectGridRow.Name/ViewLatestBuildReport.aspx">$curRunningTime</a> + </td> + + <td class="status$projectGridRow.Status">$translations.Translate($projectGridRow.Status)</td> + <td class="status$projectGridRow.Status">$projectGridRow.QueuePriority</td> + <td class="activity$projectGridRow.Activity"> + $translations.Translate($projectGridRow.Activity.ToString())($projectGridRow.QueuePriority) + #if($translations.Translate($projectGridRow.Activity.ToString()) == "Pending") + ($projectGridRow.QueuePosition) + #end + </td> + <td class="admin--icon"> + <form method="post" + style="margin-bottom:0px;"> + <input type="hidden" + name="projectName" + value="$projectGridRow.Name" /> + <input type="hidden" + name="serverName" + value="$projectGridRow.ServerName" /> + <font color="Black"> + <!-- Action's Icons --> + #if ($projectGridRow.allowForceBuild) + #if($projectGridRow.ForceAbortBuildButtonValue == "Force") + <span title="Force run"> + <input type="image" + name="$projectGridRow.ForceAbortBuildButtonName" + src="http://contxpm5/ccnet/images/force.png" + onclick="checkForParams(this, '$projectGridRow.ParametersUrl')" + class="action--icon"/> + </span> + #else + <span title="Abort"> + <input type="image" + name="$projectGridRow.ForceAbortBuildButtonName" + src="http://contxpm5/ccnet/images/abort.png" + class="action--icon"/> + </span> + #end + #end + #if ($projectGridRow.AllowStartStopBuild) + #if ($translations.Translate($projectGridRow.Status) == "Running") + <span title="Stop"> + <input type="image" + name="$projectGridRow.StartStopButtonName" + src="http://contxpm5/ccnet/images/stopsmall.png" + class="action--iconSmall"/> + </span> + #else + <span title="Launch"> + <input type="image" + name="$projectGridRow.StartStopButtonName" + src="http://contxpm5/ccnet/images/playsmall.png" + class="action--iconSmall"/> + </span> + #end + #if ($translations.Translate($projectGridRow.Activity.ToString()) == "Pending") + <!-- Right now cancel pending acts like stop activity--> + <span title="Cancel pending"> + <input type="image" + name="$projectGridRow.StartStopButtonName" + src="http://contxpm5/ccnet/images/out.png" + class="action--icon"/> + </span> + #end + #end + #if ($translations.Translate($projectGridRow.BuildStatus) != "Success") + <button>Volunteer to fix</button> + #end + </font> + </form> + </td> + </tr> + #if ($projectGridRow.BuildStage.Length > 0) + <tr id="link$RowId" class="buildStatus"> + #if ($wholeFarm) + <td colspan="10">$translations.FormatBuildStage($projectGridRow.BuildStage)</td> + #else + <td colspan="9">$translations.FormatBuildStage($projectGridRow.BuildStage)</td> + #end + </tr> + #end + #end + </tbody> + #if ($barAtBottom) + <tfoot> + <tr> + <td colspan="10"> + <table id="BuildPercentage"> + <tr title="Percentage of successfull builds : $OKPercentToolTip%"> + #if ($OKPercent == 50) + <td width="100%" + bgcolor="#33CC00"></td> + #else + <td width="$OKPercent%" + bgcolor="#33CC00"></td> + <td width="$NOKPercent%" + bgcolor="#FF0000"></td> + <td width="$NOKPercent%" + bgcolor="#FF0000"></td> + <td width="$OKPercent%" + bgcolor="#33CC00"></td> + #end + </tr> + </table> + </td> + </tr> + </tfoot> + #end + </table> + #end -#if ($exceptions.Length > 0) -<P> - <span id="ExceptionTitleLabel"> - $translations.Translate("There were exceptions connecting to the following servers"): - </span> -</P> -<table cellspacing="0" - cellpadding="4" - rules="all" - bordercolor="#CC9966" - border="1" - id="ExceptionGrid" - bgcolor="White" - width="100%"> - <tr bgcolor="#990000"> - <th> - <font color="#FFFFCC"> - <b>$translations.Translate("Server")</b> - </font> - </th> - <th> - <font color="#FFFFCC"> - <b>$translations.Translate("Url")</b> - </font> - </th> - <th> - <font color="#FFFFCC"> - <b>$translations.Translate("Message")</b> - </font> - </th> - </tr> - #foreach ($exception in $exceptions) - <tr bgcolor="White"> - <td> - <font color="#330099">$exception.ServerName</font> - </td> - <td> - <font color="#330099">$exception.Url</font> - </td> - <td> - <font color="#330099">$exception.Message</font> - </td> - </tr> - #end -</table> -#end -<!-- ProjectGrid.vm: End --> + #if ($exceptions.Length > 0) + <P> + <span id="ExceptionTitleLabel"> + $translations.Translate("There were exceptions connecting to the following servers"): + </span> + </P> + <table cellspacing="0" + cellpadding="4" + rules="all" + bordercolor="#CC9966" + border="1" + id="ExceptionGrid" + bgcolor="White" + width="100%"> + <tr bgcolor="#990000"> + <th> + <font color="#FFFFCC"> + <b>$translations.Translate("Server")</b> + </font> + </th> + <th> + <font color="#FFFFCC"> + <b>$translations.Translate("Url")</b> + </font> + </th> + <th> + <font color="#FFFFCC"> + <b>$translations.Translate("Message")</b> + </font> + </th> + </tr> + #foreach ($exception in $exceptions) + <tr bgcolor="White"> + <td> + <font color="#330099">$exception.ServerName</font> + </td> + <td> + <font color="#330099">$exception.Url</font> + </td> + <td> + <font color="#330099">$exception.Message</font> + </td> + </tr> + #end + </table> + #end + <!-- ProjectGrid.vm: End -->