@@ -3,7 +3,7 @@ var Changes = (function(window){
33// Localize globals
44var TIMELINE_URL = window . TIMELINE_URL , getLoadText = window . getLoadText ;
55
6- var currentproject , changethres , trendthres , projectmatrix , revisionboxes = { } ;
6+ var currentproject , changethres , trendthres , projectmatrix , revisionboxes = { } , revisiondata = { } , envhasresults = { } ;
77
88function getConfiguration ( revision ) {
99 return {
@@ -82,6 +82,19 @@ function updateTable() {
8282 } ) ;
8383}
8484
85+ function updateRevisionMarkers ( env_id ) {
86+ var has = { } ;
87+ $ . each ( envhasresults [ env_id ] || [ ] , function ( _ , commitid ) { has [ commitid ] = true ; } ) ;
88+ var current = $ ( "#revision" ) . val ( ) ;
89+ var options = "" ;
90+ $ . each ( revisiondata [ currentproject ] || [ ] , function ( _ , r ) {
91+ var marker = has [ r [ 1 ] ] ? '● ' : '○ ' ;
92+ options += "<option value='" + r [ 1 ] + "'>" + marker + r [ 0 ] + "</option>" ;
93+ } ) ;
94+ $ ( "#revision" ) . html ( options ) ;
95+ $ ( "#revision" ) . val ( current ) ;
96+ }
97+
8598function refreshContent ( ) {
8699 refreshContentTable ( $ ( "#revision option:selected" ) . val ( ) ) ;
87100}
@@ -110,8 +123,8 @@ function changeRevisions() {
110123 selected_project = projectmatrix [ executable ] ;
111124
112125 if ( selected_project !== currentproject ) {
113- $ ( "#revision" ) . html ( revisionboxes [ selected_project ] ) ;
114126 currentproject = selected_project ;
127+ updateRevisionMarkers ( $ ( "input[name='environment']:checked" ) . val ( ) ) ;
115128
116129 //Give visual cue that the select box has changed
117130 var bgc = $ ( "#revision" ) . parent ( ) . parent ( ) . css ( "backgroundColor" ) ;
@@ -132,8 +145,10 @@ function config(c) {
132145function init ( defaults ) {
133146 currentproject = defaults . project ;
134147 projectmatrix = defaults . projectmatrix ;
148+ envhasresults = defaults . envhasresults || { } ;
135149
136150 $ . each ( defaults . revisionlists , function ( project , revs ) {
151+ revisiondata [ project ] = revs ;
137152 var options = "" ;
138153 $ . each ( revs , function ( index , r ) {
139154 options += "<option value='" + r [ 1 ] + "'>" + r [ 0 ] + "</option>" ;
@@ -148,10 +163,14 @@ function init(defaults) {
148163 $ ( "input[name='executable']" ) . change ( changeRevisions ) ;
149164
150165 $ ( "#env" + defaults . environment ) . prop ( 'checked' , true ) ;
151- $ ( "input[name='environment']" ) . change ( refreshContent ) ;
166+ $ ( "input[name='environment']" ) . change ( function ( ) {
167+ updateRevisionMarkers ( $ ( "input[name='environment']:checked" ) . val ( ) ) ;
168+ refreshContent ( ) ;
169+ } ) ;
152170
153171 $ ( "#revision" ) . html ( revisionboxes [ defaults . project ] ) ;
154172 $ ( "#revision" ) . val ( defaults . revision ) ;
173+ updateRevisionMarkers ( defaults . environment ) ;
155174 $ ( "#revision" ) . change ( refreshContent ) ;
156175
157176 $ ( "#permalink" ) . click ( function ( ) {
0 commit comments