Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion app/cdash/public/api/v1/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,17 @@
} else {
$base_url = "index.php?project={$projectname_encoded}";
}
$response['menu']['current'] = "$base_url";

// Only show 'current' button if we're not already on the current date
// Check if a date was explicitly provided in the URL
$date_specified = isset($_GET['date']);

if ($date_specified && $response['date'] !== $response['currentdate']) {
$response['menu']['current'] = "$base_url";
} else {
$response['menu']['current'] = false;
}

Comment on lines -212 to +222
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please split these changes into a separate PR.

$controller->determineNextPrevious($response, $base_url);
}
$response['childview'] = $controller->childView ? 1 : 0;
Expand Down
1 change: 0 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
"email": "kitware@kitware.com",
"issues": "https://github.com/Kitware/CDash/issues",
"source": "https://github.com/Kitware/CDash",
"wiki": "http://public.kitware.com/Wiki/CDash"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please submit this as a separate pull request for documentation/release note purposes. Also, trailing commas are prohibited in JSON, which causes composer install to fail.

},
"require": {
"php": "^8.3",
Expand Down
67 changes: 7 additions & 60 deletions resources/css/common.css
Original file line number Diff line number Diff line change
Expand Up @@ -737,6 +737,7 @@ div#headertop {
#headermenu #navigation li a:active,
#headermenu #navigation li a:visited {
color:#666666;
cursor:pointer;
display:block;
font-size:16px;
height:100%;
Expand Down Expand Up @@ -900,61 +901,7 @@ div#main_content {
padding: 1em 2em;
}

#settings {
cursor: pointer;
float: right;
height: 20px;
margin-right:0;
margin-top:20px;
position:relative;
width: 20px;
}

#settings ul{
-webkit-box-shadow: 0px 20px 27px -2px rgba(0,0,0,0.3);
-moz-box-shadow: 0px 20px 27px -2px rgba(0,0,0,0.3);
box-shadow: 0px 20px 27px -2px rgba(0,0,0,0.3);
list-style: none;
margin:0;
padding:0;
position:absolute;
right:27px;
top:0;
width:130px;
z-index:5000;
}

#settings ul li {
background:#e0e0e0;
border-bottom:1px solid #bbbbbb;
display: block;
transition:all .15s ease-in-out;
}

#settings ul li a {
color: #666666;
display: block;
height: 100%;
padding-left: 10px;
position: relative;
text-decoration: none;
transition:all .15s ease-in-out;
width: 100%;
}

#settings ul li:hover {
background:#efefef;
border-left:4px solid #5775b9;
}

#settings ul li:hover a {
color:#000000;
text-decoration: none;
}

#settings ul.visible {
display: block;
}
/* #settings styles removed - now using header navigation menu */

/* Table Styles */

Expand Down Expand Up @@ -990,17 +937,17 @@ div#main_content {
}

.buildgroup > table.tabb {
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px;
-webkit-border-radius: 0 0 8px 8px;
-moz-border-radius: 0 0 8px 8px;
border-radius: 0 0 8px 8px;
-webkit-box-shadow:0px 3px 10px -2px rgba(0,0,0,0.4);
-moz-box-shadow:0px 3px 10px -2px rgba(0,0,0,0.4);
box-shadow:0px 3px 10px -2px rgba(0,0,0,0.4);
overflow:scroll;
overflow:hidden;
}

.buildgroup > table.tabb tbody {
border-bottom:5px solid #555555;
/* Removed dark border for modern card design */
}

.buildgroup table.tabb .table-heading1,
Expand Down
39 changes: 0 additions & 39 deletions resources/js/angular/views/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,45 +8,6 @@
{{::banner}}
</div>

<div id="settings" data-cy="settings-dropdown" ng-click="showsettings = ! showsettings">
<span class="glyphicon glyphicon-filter"
tooltip-popup-delay="1000"
tooltip-append-to-body="true"
tooltip-placement="left"
uib-tooltip="More display options"></span>
<ul ng-show="showsettings">
<li>
<a class="cdash-link" id="label_advancedview" ng-click="toggleAdvancedView()">
<span ng-if="::cdash.advancedview == 0">Advanced View</span>
<span ng-if="::cdash.advancedview != 0">Simple View</span>
</a>
</li>
<li>
<a class="autorefresh cdash-link" ng-click="toggleAutoRefresh()">
<span ng-if="::!autoRefresh">Auto-refresh</span>
<span ng-if="::autoRefresh">Stop auto-refresh</span>
</a>
</li>
<li>
<a class="cdash-link" id="label_colorblind" href="" ng-click="cdash.filterdata.colorblind=!cdash.filterdata.colorblind; colorblind_toggle()">
<span ng-show="cdash.filterdata.colorblind == 0" data-cy="color-mode-colorblind">Colorblind palette</span>
<span ng-show="cdash.filterdata.colorblind != 0" data-cy="color-mode-classic">Classic palette</span>
</a>
</li>
<li>
<a class="cdash-link" id="label_showfilters" ng-click="showfilters_toggle()">
<span ng-show="showfilters == 0">Show Filters</span>
<span ng-show="showfilters != 0">Hide Filters</span>
</a>
</li>
<li>
<a href="http://public.kitware.com/Wiki/CDash:Documentation" class="helptrigger cdash-link" target="_blank">
Help
</a>
</li>
</ul>
</div>

<!-- Filters -->
<ng-include src="'assets/js/angular/views/partials/filterdataTemplate.html?id=' + VERSION"></ng-include>
</div> <!-- End index-top -->
Expand Down
42 changes: 32 additions & 10 deletions resources/js/angular/views/partials/buildgroup.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,30 @@
<h3 class="buildgroupname">
<a href="#" class="grouptrigger cdash-link"
ng-click="jumpToAnchor(buildgroup.linkname)">
{{::buildgroup.name}}
</a>
<span class="buildnums" align="right">{{::buildgroup.numbuildslabel}}</span>
<a class="grouplink cdash-link"
ng-href="viewBuildGroup.php?project={{::cdash.projectname_encoded}}&buildgroup={{::buildgroup.linkname}}&date={{::cdash.date}}&{{::cdash.filterurl}}">[view timeline]</a>
</h3>
<table border="0" cellpadding="4" cellspacing="0" width="100%" class="tabb" id="project_{{::cdash.projectid}}_{{::buildgroup.id}}">
<!-- Build group header with rounded style -->
<div style="background: #5775b9; padding: 12px 20px; border-radius: 8px 8px 0 0; box-shadow: 0 2px 8px rgba(0,0,0,0.1); display: flex; align-items: center; justify-content: space-between; margin-top: 4px;">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please move these extensive inline styles to an external stylesheet.

<div style="display: flex; align-items: center; gap: 15px;">
<h3 style="color: white; margin: 0; font-size: 18px; font-weight: 600;">
<a href="#" class="grouptrigger"
ng-click="jumpToAnchor(buildgroup.linkname)"
style="color: white; text-decoration: none;">
{{::buildgroup.name}}
</a>
</h3>
<span style="color: rgba(255,255,255,0.9); font-size: 13px; font-style: italic;">{{::buildgroup.numbuildslabel}}</span>
</div>

<!-- Action buttons styled consistently and aligned to the right -->
<span style="display: inline-flex; gap: 8px; align-items: center; font-size: 12px;">
<a class="btn btn-xs btn-default"
ng-href="viewBuildGroup.php?project={{::cdash.projectname_encoded}}&buildgroup={{::buildgroup.linkname}}&date={{::cdash.date}}&{{::cdash.filterurl}}"
style="text-decoration: none; font-size: 12px; background: rgba(255,255,255,0.95); border: none;">
<span class="glyphicon glyphicon-stats"></span> View Timeline
</a>
</span>
</div>

<table border="0" cellpadding="4" cellspacing="0" width="100%" class="tabb" id="project_{{::cdash.projectid}}_{{::buildgroup.id}}" style="border-radius: 0 0 8px 8px; margin-top: 0; box-shadow: 0 2px 8px rgba(0,0,0,0.1); overflow: hidden;">
<thead>
<tr class="table-heading1" >
<td ng-if="cdash.user.admin == 1 && buildgroup.selectionMode" class="nob"></td>
<td colspan="2" class="nob"></td>
<td ng-if="::buildgroup.hasupdatedata" colspan="{{::1 + cdash.showtimecolumns}}" class="center-text botl">Update</td>
<td ng-if="::buildgroup.hasconfiguredata" colspan="{{::2 + cdash.showtimecolumns}}" class="center-text botl">Configure</td>
Expand All @@ -20,6 +35,13 @@ <h3 class="buildgroupname">

<tr class="table-heading">

<th ng-if="cdash.user.admin == 1 && buildgroup.selectionMode" rowspan="2" class="column-header" style="width: 30px;">
<input type="checkbox"
ng-model="buildgroup.selectAll"
ng-change="toggleSelectAll(buildgroup)"
title="Select all builds">
</th>

<th ng-if="::cdash.childview == 1"
ng-click="updateOrderByFields(buildgroup, 'label', $event)"
colspan="2" rowspan="2" class="column-header">
Expand Down
48 changes: 27 additions & 21 deletions resources/js/angular/views/partials/filterdataTemplate.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
<div id="div_showfilters" ng-controller="FiltersController">

<div ng-hide="showfilters == 0">
<div class="table-heading0">
<a class="cdash-link"
ng-href="http://public.kitware.com/Wiki/CDash:Documentation#Filters_on_{{cdash.page}}"
target="_blank"
style="float: right;">Help</a>
<h3>Filters</h3>
<div class="filter-header" style="background: #5775b9; padding: 15px 20px; border-radius: 8px 8px 0 0; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
<h3 style="color: white; margin: 0; font-size: 18px; font-weight: 600;">
<span class="glyphicon glyphicon-filter"></span> Filters
</h3>
</div>
<div style="background: white; padding: 20px; border-radius: 0 0 8px 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); margin-bottom: 20px;">
<ul>
<li ng-repeat="filter in filterdata.filters"
ng-init="currentFilter = filter; group = filterdata; availablefilters = filterdata.availablefilters"
Expand Down Expand Up @@ -42,39 +41,46 @@ <h3>Filters</h3>
</li>
</ul>

<div>
<div style="margin-top: 15px;">
<div ng-if="filterdata.showlimit == 0">
<input type="hidden" id="id_limit" name="limit" value="{{filterdata.limit}}">
</input>
</div>
<div ng-if="filterdata.showlimit == 1">
Limit results to
<input type="text" size="3" id="id_limit" name="limit" align="center" value="{{filterdata.limit}}">
</input>
rows (0 for unlimited)
<div ng-if="filterdata.showlimit == 1" style="padding: 12px; background: #f8f9fa; border-radius: 6px; display: inline-block;">
<label style="margin: 0; font-weight: 500; color: #555;">
Limit results to
<input type="text" size="3" id="id_limit" name="limit" align="center" value="{{filterdata.limit}}" style="margin: 0 5px; padding: 4px 8px; border: 1px solid #ddd; border-radius: 4px; text-align: center;">
</input>
rows (0 for unlimited)
</label>
</div>
</div>

<!-- date range selector -->
<div ng-if="filterdata.showdaterange" class="form-group" daterange></div>
<div ng-if="filterdata.showdaterange" class="form-group" daterange style="margin-top: 15px;"></div>

<div>
<div>
<div style="margin-top: 20px; padding-top: 20px; border-top: 2px solid #e0e0e0;">
<div style="display: flex; gap: 10px; align-items: center; flex-wrap: wrap;">
<input type="hidden" name="filtercount" id="id_filtercount" value="{{filterdata.filters.length}}">
</input>
<input type="hidden" name="showfilters" id="id_showfilters" value="1" />
<input type="button" ng-click="applyFilters()" name="apply" value="Apply" />
&nbsp;
<input type="button" ng-click="clearFilters()" name="clear" value="Clear" />
&nbsp;
<input type="button" ng-click="displayHyperlink()" name="create_hyperlink" value="Create Hyperlink"/>
<button class="btn btn-primary" ng-click="applyFilters()" name="apply" style="background: #5775b9; border: none; padding: 8px 20px; font-weight: 500; box-shadow: 0 2px 4px rgba(87, 117, 185, 0.3);">
<span class="glyphicon glyphicon-ok"></span> Apply
</button>
<button class="btn btn-default" ng-click="clearFilters()" name="clear" style="padding: 8px 20px; font-weight: 500; border: 2px solid #ddd; background: white;">
<span class="glyphicon glyphicon-remove"></span> Clear
</button>
<button class="btn btn-info" ng-click="displayHyperlink()" name="create_hyperlink" style="padding: 8px 20px; font-weight: 500; border: none; box-shadow: 0 2px 4px rgba(91, 192, 222, 0.3);">
<span class="glyphicon glyphicon-link"></span> Create Hyperlink
</button>
</div>
</div>

<div>
<div style="margin-top: 15px;">
<div>
<div id="div_filtersAsUrl"/>
</div>
</div>
</div>
</div>
</div>
Loading
Loading