2022-09-27 07:22:19 +02:00
< template >
2023-02-13 17:59:59 +00:00
< ol class = "diff-detail-box diff-stats gt-m-0" ref = "root" v-if = "fileListIsVisible" >
2022-09-27 07:22:19 +02:00
< li v-for = "file in files" :key="file.NameHash" >
2023-02-13 17:59:59 +00:00
< div class = "gt-bold gt-df gt-ac pull-right" >
< span v-if = "file.IsBin" class="gt-ml-1 gt-mr-3" > {{ binaryFileMessage }} < / span >
2022-09-27 07:22:19 +02:00
{ { file . IsBin ? '' : file . Addition + file . Deletion } }
2023-02-13 17:59:59 +00:00
< span v-if = "!file.IsBin" class="diff-stats-bar tooltip gt-mx-3" :data-content="statisticsMessage.replace('%d', (file.Addition + file.Deletion)).replace('%d', file.Addition).replace('%d', file.Deletion)" >
2022-09-27 07:22:19 +02:00
< div class = "diff-stats-add-bar" : style = "{ 'width': diffStatsWidth(file.Addition, file.Deletion) }" / >
< / span >
< / div >
<!-- todo finish all file status , now modify , add , delete and rename -- >
< span : class = "['status', diffTypeToString(file.Type), 'tooltip']" :data-content = "diffTypeToString(file.Type)" data -position = " right center " > & nbsp ; < / span >
2023-02-13 17:59:59 +00:00
< a class = "file gt-mono" : href = "'#diff-' + file.NameHash" > { { file . Name } } < / a >
2022-09-27 07:22:19 +02:00
< / li >
2023-02-13 17:59:59 +00:00
< li v-if = "isIncomplete" id="diff-too-many-files-stats" class="gt-pt-2" >
< span class = "file gt-df gt-ac gt-sb" > { { tooManyFilesMessage } }
2022-09-27 07:22:19 +02:00
< a : class = "['ui', 'basic', 'tiny', 'button', isLoadingNewData === true ? 'disabled' : '']" id = "diff-show-more-files-stats" @click.stop ="loadMoreData" > { { showMoreMessage } } < / a >
< / span >
< / li >
< / ol >
< / template >
< script >
import { doLoadMoreFiles } from '../features/repo-diff.js' ;
const { pageData } = window . config ;
export default {
data : ( ) => {
return pageData . diffFileInfo ;
} ,
mounted ( ) {
document . getElementById ( 'show-file-list-btn' ) . addEventListener ( 'click' , this . toggleFileList ) ;
} ,
unmounted ( ) {
document . getElementById ( 'show-file-list-btn' ) . removeEventListener ( 'click' , this . toggleFileList ) ;
} ,
methods : {
toggleFileList ( ) {
this . fileListIsVisible = ! this . fileListIsVisible ;
} ,
diffTypeToString ( pType ) {
const diffTypes = {
1 : 'add' ,
2 : 'modify' ,
3 : 'del' ,
4 : 'rename' ,
5 : 'copy' ,
} ;
return diffTypes [ pType ] ;
} ,
diffStatsWidth ( adds , dels ) {
return ` ${ adds / ( adds + dels ) * 100 } % ` ;
} ,
loadMoreData ( ) {
this . isLoadingNewData = true ;
doLoadMoreFiles ( this . link , this . diffEnd , ( ) => {
this . isLoadingNewData = false ;
} ) ;
}
} ,
} ;
< / script >