Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue')
-rw-r--r--app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue64
1 files changed, 61 insertions, 3 deletions
diff --git a/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue b/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue
index a812b90e378..1594e125da3 100644
--- a/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue
+++ b/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue
@@ -1,20 +1,23 @@
<script>
-import { GlAlert } from '@gitlab/ui';
+import { GlAlert, GlKeysetPagination } from '@gitlab/ui';
import StorageUsageStatistics from 'ee_else_ce/usage_quotas/storage/components/storage_usage_statistics.vue';
import SearchAndSortBar from '~/usage_quotas/components/search_and_sort_bar/search_and_sort_bar.vue';
import DependencyProxyUsage from './dependency_proxy_usage.vue';
import ContainerRegistryUsage from './container_registry_usage.vue';
+import ProjectList from './project_list.vue';
export default {
name: 'NamespaceStorageApp',
components: {
GlAlert,
+ GlKeysetPagination,
StorageUsageStatistics,
DependencyProxyUsage,
ContainerRegistryUsage,
SearchAndSortBar,
+ ProjectList,
},
- inject: ['userNamespace', 'namespaceId'],
+ inject: ['userNamespace', 'namespaceId', 'helpLinks', 'defaultPerPage'],
props: {
namespaceLoadingError: {
type: Boolean,
@@ -31,11 +34,26 @@ export default {
required: false,
default: false,
},
+ isNamespaceProjectsLoading: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
namespace: {
type: Object,
required: false,
default: () => ({}),
},
+ projects: {
+ type: Object,
+ required: false,
+ default: () => ({}),
+ },
+ initialSortBy: {
+ type: String,
+ required: false,
+ default: 'storage',
+ },
},
computed: {
usedStorage() {
@@ -55,6 +73,27 @@ export default {
containerRegistrySizeIsEstimated() {
return this.namespace.rootStorageStatistics?.containerRegistrySizeIsEstimated ?? false;
},
+ projectList() {
+ return this.projects?.nodes ?? [];
+ },
+ pageInfo() {
+ return this.projects?.pageInfo;
+ },
+ showPagination() {
+ return Boolean(this.pageInfo?.hasPreviousPage || this.pageInfo?.hasNextPage);
+ },
+ },
+ methods: {
+ onPrev(before) {
+ if (this.pageInfo?.hasPreviousPage) {
+ this.$emit('fetch-more-projects', { before, last: this.defaultPerPage, first: undefined });
+ }
+ },
+ onNext(after) {
+ if (this.pageInfo?.hasNextPage) {
+ this.$emit('fetch-more-projects', { after, first: this.defaultPerPage });
+ }
+ },
},
};
</script>
@@ -103,7 +142,26 @@ export default {
"
/>
</div>
- <slot name="ee-storage-app"></slot>
+ <project-list
+ :projects="projectList"
+ :is-loading="isNamespaceProjectsLoading"
+ :help-links="helpLinks"
+ :sort-by="initialSortBy"
+ :sort-desc="true"
+ @sortChanged="
+ ($event) => {
+ $emit('sort-changed', $event);
+ }
+ "
+ />
+ <div class="gl-display-flex gl-justify-content-center gl-mt-5">
+ <gl-keyset-pagination
+ v-if="showPagination"
+ v-bind="pageInfo"
+ @prev="onPrev"
+ @next="onNext"
+ />
+ </div>
</section>
</div>
</template>