summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/projects_dropdown/components
diff options
context:
space:
mode:
authorkushalpandya <kushal@gitlab.com>2017-09-04 21:15:23 +0530
committerkushalpandya <kushal@gitlab.com>2017-09-05 13:11:20 +0530
commit33697aa28fb44657d39ddc1500904c0f00e5af31 (patch)
tree62e8a4c62dd114fa7cbc6a35196f69aaee09181f /app/assets/javascripts/projects_dropdown/components
parentc2c2407e3004acf6ce64ca1142d9378ed505aa7e (diff)
downloadgitlab-ce-33697aa28fb44657d39ddc1500904c0f00e5af31.tar.gz
Projects Dropdown Frequent Projects List Component
Diffstat (limited to 'app/assets/javascripts/projects_dropdown/components')
-rw-r--r--app/assets/javascripts/projects_dropdown/components/projects_list_frequent.vue57
1 files changed, 57 insertions, 0 deletions
diff --git a/app/assets/javascripts/projects_dropdown/components/projects_list_frequent.vue b/app/assets/javascripts/projects_dropdown/components/projects_list_frequent.vue
new file mode 100644
index 00000000000..093554cd0bc
--- /dev/null
+++ b/app/assets/javascripts/projects_dropdown/components/projects_list_frequent.vue
@@ -0,0 +1,57 @@
+<script>
+import { s__ } from '../../locale';
+import projectsListItem from './projects_list_item.vue';
+
+export default {
+ components: {
+ projectsListItem,
+ },
+ props: {
+ projects: {
+ type: Array,
+ required: true,
+ },
+ localStorageFailed: {
+ type: Boolean,
+ required: true,
+ },
+ },
+ computed: {
+ isListEmpty() {
+ return this.projects.length === 0;
+ },
+ listEmptyMessage() {
+ return this.localStorageFailed ?
+ s__('ProjectsDropdown|This feature requires browser localStorage support') :
+ s__('ProjectsDropdown|Projects you visit often will appear here');
+ },
+ },
+};
+</script>
+
+<template>
+ <div
+ class="projects-list-frequent-container"
+ >
+ <ul
+ class="list-unstyled"
+ >
+ <li
+ class="section-empty"
+ v-if="isListEmpty"
+ >
+ {{listEmptyMessage}}
+ </li>
+ <projects-list-item
+ v-else
+ v-for="(project, index) in projects"
+ :key="index"
+ :project-id="project.id"
+ :project-name="project.name"
+ :namespace="project.namespace"
+ :web-url="project.webUrl"
+ :avatar-url="project.avatarUrl"
+ />
+ </ul>
+ </div>
+</template>