mirror of
				https://github.com/scinote-eln/scinote-web.git
				synced 2025-10-31 16:49:40 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <inline-edit v-if="editable" class="item-name my-auto text-xl font-semibold" :value="name" :characterLimit="255"
 | |
|     :characterMinLimit="0" :allowBlank="false" :smartAnnotation="false"
 | |
|     :preventLeavingUntilFilled="true"
 | |
|     :attributeName="`${i18n.t('repositories.item_card.header_title')}`" :singleLine="true"
 | |
|     @editingEnabled="editingName = true" @editingDisabled="editingName = false" @update="updateName"></inline-edit>
 | |
|   <h4 v-else class="item-name my-auto truncate text-xl" :title="computedName">
 | |
|     {{ computedName }}
 | |
|   </h4>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| import InlineEdit from '../shared/inline_edit.vue';
 | |
| 
 | |
| export default {
 | |
|   name: 'RepositoryItemSidebarTitle',
 | |
|   components: {
 | |
|     'inline-edit': InlineEdit
 | |
|   },
 | |
|   emits: ['update'],
 | |
|   props: {
 | |
|     editable: Boolean,
 | |
|     name: String,
 | |
|     archived: Boolean
 | |
|   },
 | |
|   computed: {
 | |
|     computedName() {
 | |
|       return this.archived ? `(A) ${this.name}` : this.name;
 | |
|     }
 | |
|   },
 | |
|   methods: {
 | |
|     updateName(name) {
 | |
|       this.$emit('update', { repository_row: { name } });
 | |
|     }
 | |
|   }
 | |
| };
 | |
| </script>
 |