diff options
Diffstat (limited to 'app/assets/javascripts/repo/components/new_dropdown/index.vue')
-rw-r--r-- | app/assets/javascripts/repo/components/new_dropdown/index.vue | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/app/assets/javascripts/repo/components/new_dropdown/index.vue b/app/assets/javascripts/repo/components/new_dropdown/index.vue new file mode 100644 index 00000000000..a5ee4f71281 --- /dev/null +++ b/app/assets/javascripts/repo/components/new_dropdown/index.vue @@ -0,0 +1,84 @@ +<script> + import { mapState } from 'vuex'; + import newModal from './modal.vue'; + import upload from './upload.vue'; + + export default { + components: { + newModal, + upload, + }, + data() { + return { + openModal: false, + modalType: '', + }; + }, + computed: { + ...mapState([ + 'path', + ]), + }, + methods: { + createNewItem(type) { + this.modalType = type; + this.toggleModalOpen(); + }, + toggleModalOpen() { + this.openModal = !this.openModal; + }, + }, + }; +</script> + +<template> + <div> + <ul class="breadcrumb repo-breadcrumb"> + <li class="dropdown"> + <button + type="button" + class="btn btn-default dropdown-toggle add-to-tree" + data-toggle="dropdown" + aria-label="Create new file or directory" + > + <i + class="fa fa-plus" + aria-hidden="true" + > + </i> + </button> + <ul class="dropdown-menu"> + <li> + <a + href="#" + role="button" + @click.prevent="createNewItem('blob')" + > + {{ __('New file') }} + </a> + </li> + <li> + <upload + :path="path" + /> + </li> + <li> + <a + href="#" + role="button" + @click.prevent="createNewItem('tree')" + > + {{ __('New directory') }} + </a> + </li> + </ul> + </li> + </ul> + <new-modal + v-if="openModal" + :type="modalType" + :path="path" + @toggle="toggleModalOpen" + /> + </div> +</template> |