Skip to content
Snippets Groups Projects

CE Improve import status table UI

Closed Luke Bennett requested to merge import-go-to-project-cta into master
9 unresolved threads
Compare and Show latest version
9 files
+ 405
84
Compare changes
  • Side-by-side
  • Inline
Files
9
<script>
import { mapActions, mapState, mapGetters } from 'vuex';
import ImportedProjectTableRow from './imported_project_table_row.vue';
import ProviderRepoTableRow from './provider_repo_table_row.vue';
import LoadingButton from '../../vue_shared/components/loading_button.vue';
import eventHub from '../event_hub';
import { mapActions, mapState, mapGetters } from 'vuex';
import ImportedProjectTableRow from './imported_project_table_row.vue';
import ProviderRepoTableRow from './provider_repo_table_row.vue';
import LoadingButton from '../../vue_shared/components/loading_button.vue';
import eventHub from '../event_hub';
export default {
name: 'ImportProjectsTable',
export default {
name: 'ImportProjectsTable',
components: {
ImportedProjectTableRow,
ProviderRepoTableRow,
LoadingButton,
},
components: {
ImportedProjectTableRow,
ProviderRepoTableRow,
LoadingButton,
},
props: {
providerTitle: {
type: String,
required: true,
},
props: {
providerTitle: {
type: String,
required: true,
},
},
computed: {
...mapState(['importedProjects', 'providerRepos', 'isLoadingRepos']),
...mapGetters(['isImportingAnyRepo', 'hasProviderRepos', 'hasImportedProjects']),
emptyStateText() {
const emptyStateText = this.__('No %{providerTitle} repositories available to import');
computed: {
...mapState(['importedProjects', 'providerRepos', 'isLoadingRepos']),
...mapGetters(['isImportingAnyRepo', 'hasProviderRepos', 'hasImportedProjects']),
return this.sprintf(emptyStateText, { providerTitle: this.providerTitle });
},
emptyStateText() {
const emptyStateText = this.__('No %{providerTitle} repositories available to import');
fromHeaderText() {
return this.sprintf(this.__('From %{providerTitle}'), { providerTitle: this.providerTitle });
},
return this.sprintf(emptyStateText, { providerTitle: this.providerTitle });
},
mounted() {
return this.fetchRepos().then(this.pollJobs);
fromHeaderText() {
return this.sprintf(this.__('From %{providerTitle}'), { providerTitle: this.providerTitle });
},
},
mounted() {
return this.fetchRepos().then(this.pollJobs);
},
methods: {
...mapActions(['fetchRepos', 'fetchJobs', 'pollJobs']),
methods: {
...mapActions(['fetchRepos', 'fetchJobs', 'pollJobs']),
importAll() {
eventHub.$emit('importAll');
},
importAll() {
eventHub.$emit('importAll');
},
}
},
};
</script>
<template>
Loading