gitlab-org--gitlab-foss/app/assets/javascripts/repo/components/repo_tab.vue

46 lines
877 B
Vue
Raw Normal View History

<script>
import Store from '../stores/repo_store';
2017-06-30 17:44:48 -04:00
2017-07-14 21:54:51 -04:00
const RepoTab = {
2017-06-30 17:44:48 -04:00
props: {
2017-07-20 11:37:52 -04:00
tab: {
type: Object,
required: true,
},
2017-06-30 17:44:48 -04:00
},
computed: {
changedClass() {
const tabChangedObj = {
'fa-times': !this.tab.changed,
'fa-circle': this.tab.changed,
};
return tabChangedObj;
},
},
2017-06-30 17:44:48 -04:00
methods: {
tabClicked: Store.setActiveFiles,
2017-06-30 17:44:48 -04:00
xClicked(file) {
if (file.changed) return;
this.$emit('xclicked', file);
2017-07-14 21:54:51 -04:00
},
},
2017-06-30 17:44:48 -04:00
};
2017-07-14 21:54:51 -04:00
export default RepoTab;
</script>
<template>
<li>
2017-07-21 14:40:42 -04:00
<a href="#" class="close" @click.prevent="xClicked(tab)" v-if="!tab.loading">
<i class="fa" :class="changedClass"></i>
</a>
<a href="#" class="repo-tab" v-if="!tab.loading" :title="tab.url" @click.prevent="tabClicked(tab)">{{tab.name}}</a>
<i v-if="tab.loading" class="fa fa-spinner fa-spin"></i>
</li>
</template>