@@ -183,7 +183,7 @@ <h2 x-text="t('services')"></h2>
183183 :class ="{ deployed: deployed(service), involved: planOf(service), idle: chosen.length && !planOf(service) } "
184184 @toggle ="openCount = document.querySelectorAll('details.service[open]').length ">
185185 < summary >
186- < span class ="name " x-text ="service.project "> </ span >
186+ < span class ="name " :title =" service.project " x-text ="shortName( service.project) "> </ span >
187187 < span x-show ="service.error " class ="bad " x-text ="t('failedToCollect') "> </ span >
188188 < span x-show ="!service.error ">
189189 < span class ="muted prod " x-text ="productionRef(service) + ' →' "> </ span >
@@ -322,7 +322,7 @@ <h2 x-text="t('services')"></h2>
322322 </ template >
323323 < template x-for ="entry in unlisted " :key ="entry.project ">
324324 < div class ="service unlisted ">
325- < b x-text ="entry.project "> </ b >
325+ < b :title =" entry.project " x-text ="shortName( entry.project) "> </ b >
326326 < span class ="cell cell-outside " x-text ="t('notInReport') "> </ span >
327327 < span class ="muted " x-text ="t('linkedTo') "> </ span >
328328 < template x-for ="key in entry.keys " :key ="key "> < span class ="key " x-text ="key "> </ span > </ template >
@@ -852,6 +852,18 @@ <h2 x-text="t('release')"></h2>
852852 get listed ( ) {
853853 return this . report . services . filter ( ( service ) => service . error || this . production ( service ) || service . rows . length ) ;
854854 } ,
855+ get sharedPrefix ( ) {
856+ const paths = this . listed . map ( ( service ) => service . project . split ( "/" ) ) ;
857+ if ( paths . length < 2 ) return "" ;
858+ const shared = paths . reduce ( ( prefix , parts ) => {
859+ const end = prefix . findIndex ( ( part , index ) => part !== parts [ index ] || index >= parts . length - 1 ) ;
860+ return end === - 1 ? prefix : prefix . slice ( 0 , end ) ;
861+ } ) ;
862+ return shared . length ? shared . join ( "/" ) + "/" : "" ;
863+ } ,
864+ shortName ( project ) {
865+ return this . sharedPrefix && project . startsWith ( this . sharedPrefix ) ? project . slice ( this . sharedPrefix . length ) : project ;
866+ } ,
855867 get pickable ( ) {
856868 return this . listed . filter ( ( service ) => service . candidates . length ) ;
857869 } ,
0 commit comments