Browse Source

Merge pull request #278 from ControlPanel-gg/product_linking

automatically select first options if there is only 1
AVMG 3 years ago
parent
commit
b7a1bf93bc
1 changed files with 51 additions and 24 deletions
  1. 51 24
      resources/views/servers/create.blade.php

+ 51 - 24
resources/views/servers/create.blade.php

@@ -101,7 +101,7 @@
                                                 name="nest"
                                                 id="nest"
                                                 x-model="selectedNest"
-                                                @change="setNests();">
+                                                @change="setEggs();">
                                             <option selected disabled hidden
                                                     value="null">{{count($nests) > 0 ? __('Please select software..') : __('---')}}</option>
                                             @foreach ($nests as $nest)
@@ -230,28 +230,33 @@
                                                class="text-muted"></small>
                                     </div>
                                     <template x-if="selectedProductObject?.name">
-                                       <ul class="pl-0">
-                                           <li class="d-flex justify-content-between">
-                                               <small class="text-muted d-inline-block">{{__('Cpu')}}</small>
-                                               <small class="text-muted d-inline-block" x-text="selectedProductObject.cpu + ' %'"></small>
-                                           </li>
-                                           <div class="d-flex justify-content-between">
-                                               <small class="text-muted d-inline-block">{{__('Memory')}}</small>
-                                               <small class="text-muted d-inline-block" x-text="selectedProductObject.memory + ' {{__('MB')}}'"></small>
-                                           </div>
-                                           <div class="d-flex justify-content-between">
-                                               <small class="text-muted d-inline-block">{{__('Storage')}}</small>
-                                               <small class="text-muted d-inline-block" x-text="selectedProductObject.disk + ' {{__('MB')}}'"></small>
-                                           </div>
-                                           <div class="d-flex justify-content-between">
-                                               <small class="text-muted d-inline-block">{{__('Databases')}}</small>
-                                               <small class="text-muted d-inline-block" x-text="selectedProductObject.databases + ' {{__('Mysql')}}'"></small>
-                                           </div>
-                                           <div class="d-flex justify-content-between">
-                                               <small class="text-muted d-inline-block">{{__('Backups')}}</small>
-                                               <small class="text-muted d-inline-block" x-text="selectedProductObject.backups"></small>
-                                           </div>
-                                       </ul>
+                                        <ul class="pl-0">
+                                            <li class="d-flex justify-content-between">
+                                                <small class="text-muted d-inline-block">{{__('Cpu')}}</small>
+                                                <small class="text-muted d-inline-block"
+                                                       x-text="selectedProductObject.cpu + ' %'"></small>
+                                            </li>
+                                            <div class="d-flex justify-content-between">
+                                                <small class="text-muted d-inline-block">{{__('Memory')}}</small>
+                                                <small class="text-muted d-inline-block"
+                                                       x-text="selectedProductObject.memory + ' {{__('MB')}}'"></small>
+                                            </div>
+                                            <div class="d-flex justify-content-between">
+                                                <small class="text-muted d-inline-block">{{__('Storage')}}</small>
+                                                <small class="text-muted d-inline-block"
+                                                       x-text="selectedProductObject.disk + ' {{__('MB')}}'"></small>
+                                            </div>
+                                            <div class="d-flex justify-content-between">
+                                                <small class="text-muted d-inline-block">{{__('Databases')}}</small>
+                                                <small class="text-muted d-inline-block"
+                                                       x-text="selectedProductObject.databases + ' {{__('Mysql')}}'"></small>
+                                            </div>
+                                            <div class="d-flex justify-content-between">
+                                                <small class="text-muted d-inline-block">{{__('Backups')}}</small>
+                                                <small class="text-muted d-inline-block"
+                                                       x-text="selectedProductObject.backups"></small>
+                                            </div>
+                                        </ul>
                                     </template>
 
                                 </li>
@@ -315,7 +320,7 @@
                  * @note called whenever a nest is selected
                  * @see selectedNest
                  */
-                setNests() {
+                async setEggs() {
                     this.fetchedLocations = false;
                     this.fetchedProducts = false;
                     this.locations = [];
@@ -325,6 +330,14 @@
                     this.selectedProduct = 'null';
 
                     this.eggs = this.eggsSave.filter(egg => egg.nest_id == this.selectedNest)
+
+                    //automatically select the first entry if there is only 1
+                    if (this.eggs.length === 1) {
+                        this.selectedEgg = this.eggs[0].id;
+                        await this.fetchLocations();
+                        return;
+                    }
+
                     this.updateSelectedObjects()
                 },
 
@@ -347,6 +360,14 @@
 
                     this.fetchedLocations = true;
                     this.locations = response.data
+
+                    //automatically select the first entry if there is only 1
+                    if (this.locations.length === 1 && this.locations[0]?.nodes?.length === 1) {
+                        this.selectedNode = this.locations[0].id;
+                        await this.fetchProducts();
+                        return;
+                    }
+
                     this.loading = false;
                     this.updateSelectedObjects()
                 },
@@ -367,6 +388,12 @@
 
                     this.fetchedProducts = true;
                     this.products = response.data
+
+                    //automatically select the first entry if there is only 1
+                    if (this.products.length === 1) {
+                        this.selectedProduct = this.products[0].id;
+                    }
+
                     this.loading = false;
                     this.updateSelectedObjects()
                 },