Fix search bar behaviour (step 5)
This commit is contained in:
		@@ -4,9 +4,14 @@
 | 
				
			|||||||
      <button 
 | 
					      <button 
 | 
				
			||||||
        class="btn btn-outline-secondary list-toggle-btn" 
 | 
					        class="btn btn-outline-secondary list-toggle-btn" 
 | 
				
			||||||
        @click="toggleList"
 | 
					        @click="toggleList"
 | 
				
			||||||
        :class="{ 'active': showList }"
 | 
					        :class="{ 
 | 
				
			||||||
 | 
					          'active': showList, 
 | 
				
			||||||
 | 
					          'filtering': showList && isFilterActive 
 | 
				
			||||||
 | 
					        }"
 | 
				
			||||||
 | 
					        :title="showList ? (isFilterActive ? 'Show all VMs' : 'Filter VMs') : 'List VMs'"
 | 
				
			||||||
      >
 | 
					      >
 | 
				
			||||||
        <i class="fas fa-list"></i> List VMs
 | 
					        <i class="fas" :class="showList && isFilterActive ? 'fa-filter' : 'fa-list'"></i>
 | 
				
			||||||
 | 
					        {{ showList ? (isFilterActive ? 'Filtering' : 'All VMs') : 'List VMs' }}
 | 
				
			||||||
      </button>
 | 
					      </button>
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      <div class="search-box">
 | 
					      <div class="search-box">
 | 
				
			||||||
@@ -255,14 +260,23 @@ const handleSearchClick = () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Toggle the VM list
 | 
					// Toggle the VM list
 | 
				
			||||||
const toggleList = () => {
 | 
					const toggleList = () => {
 | 
				
			||||||
 | 
					  // If the list is already open, toggle filtering instead of closing
 | 
				
			||||||
  if (props.showList) {
 | 
					  if (props.showList) {
 | 
				
			||||||
    // If we're closing the list, save the search text
 | 
					    // Toggle filtering mode
 | 
				
			||||||
    if (props.modelValue) {
 | 
					    isFilterActive.value = !isFilterActive.value;
 | 
				
			||||||
      searchText.value = props.modelValue;
 | 
					    
 | 
				
			||||||
      // Save to localStorage
 | 
					    // If we're turning filtering on, make sure the search text is applied
 | 
				
			||||||
      localStorage.setItem('vmSearchText', props.modelValue);
 | 
					    if (isFilterActive.value && searchText.value) {
 | 
				
			||||||
 | 
					      inputValue.value = searchText.value;
 | 
				
			||||||
 | 
					      emit('update:modelValue', searchText.value);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  } else {
 | 
					    
 | 
				
			||||||
 | 
					    // No need to emit toggle-list since we're not closing the list
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  // If the list is closed, open it without filtering
 | 
				
			||||||
 | 
					  if (!props.showList) {
 | 
				
			||||||
    // If we're opening the list, deactivate filtering
 | 
					    // If we're opening the list, deactivate filtering
 | 
				
			||||||
    isFilterActive.value = false;
 | 
					    isFilterActive.value = false;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
@@ -558,6 +572,12 @@ const scrollToSelectedVM = () => {
 | 
				
			|||||||
  color: white;
 | 
					  color: white;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.list-toggle-btn.filtering {
 | 
				
			||||||
 | 
					  background-color: #0d6efd;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					  border-color: #0d6efd;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.filter-dropdown {
 | 
					.filter-dropdown {
 | 
				
			||||||
  position: relative;
 | 
					  position: relative;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user