This is an automated email from the ASF dual-hosted git repository.

yasithdev pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airavata-portals.git


The following commit(s) were added to refs/heads/main by this push:
     new 4e3745df1 fix(admin): confine editor action bars, fix list field 
editors, drop no-op stats tab (#233)
4e3745df1 is described below

commit 4e3745df17e87094d8f10e5d2fb176d88a15b587
Author: Yasith Jayawardana <[email protected]>
AuthorDate: Mon Jun 15 11:22:59 2026 -0400

    fix(admin): confine editor action bars, fix list field editors, drop no-op 
stats tab (#233)
    
    - Bottom action bars (Save/Delete/Cancel/Add) in the application, 
compute-preference,
      group-compute-preference, and extended-user-profile editors used
      'fixed inset-x-0 bottom-0', spanning the full viewport and overlapping 
the w-64
      sidebar. Confine them to the content area ('left-64 right-0') and 
right-align the
      buttons (justify-end).
    - The application input/output field editors (and the 
compute-resource-reservation and
      storage-preference list editors) rendered empty: the parents bound the 
VModelMixin
      child editors with the Vue 2 ':value'/'@input' pair, so 'modelValue' was 
undefined and
      the working copy never initialized (throwing on data.name/data.key). 
Switch the list
      bindings to ':model-value'/'@update:model-value'.
    - Remove the lone no-op 'Statistics' tab on the Experiment Statistics page; 
show the tab
      bar only once experiment-detail tabs are open.
---
 .../admin/group_resource_preferences/ComputePreference.vue        | 2 +-
 .../group_resource_preferences/ComputeResourceReservationList.vue | 4 ++--
 .../group_resource_preferences/GroupComputeResourcePreference.vue | 2 +-
 .../src/components/applications/ApplicationEditorContainer.vue    | 2 +-
 .../src/components/applications/ApplicationInterfaceEditor.vue    | 8 ++++----
 .../src/components/gatewayprofile/StoragePreferenceList.vue       | 4 ++--
 .../src/components/statistics/ExperimentStatisticsContainer.vue   | 5 +++--
 .../src/components/users/ExtendedUserProfileContainer.vue         | 4 ++--
 8 files changed, 16 insertions(+), 15 deletions(-)

diff --git 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/ComputePreference.vue
 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/ComputePreference.vue
index b4ff34554..d75e495d1 100644
--- 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/ComputePreference.vue
+++ 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/ComputePreference.vue
@@ -186,7 +186,7 @@
         </CardContent>
       </Card>
       <div
-        class="bg-background fixed inset-x-0 bottom-0 flex gap-2 border-t p-4 
shadow-md"
+        class="bg-background fixed bottom-0 left-64 right-0 flex justify-end 
gap-2 border-t p-4 shadow-md"
       >
         <Button
           variant="default"
diff --git 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/ComputeResourceReservationList.vue
 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/ComputeResourceReservationList.vue
index f6bb476e9..1a56e7025 100644
--- 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/ComputeResourceReservationList.vue
+++ 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/ComputeResourceReservationList.vue
@@ -112,8 +112,8 @@
                 <Card>
                   <CardContent>
                     <compute-resource-reservation-editor
-                      :value="item"
-                      @input="updatedReservation"
+                      :model-value="item"
+                      @update:model-value="updatedReservation"
                       :queues="queues"
                       @valid="removeInvalidReservation(item.key)"
                       @invalid="recordInvalidReservation(item.key)"
diff --git 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/GroupComputeResourcePreference.vue
 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/GroupComputeResourcePreference.vue
index b2b1e0cae..a53d200fa 100644
--- 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/GroupComputeResourcePreference.vue
+++ 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/admin/group_resource_preferences/GroupComputeResourcePreference.vue
@@ -148,7 +148,7 @@
         </template>
       </list-layout>
       <div
-        class="bg-background fixed inset-x-0 bottom-0 flex gap-2 border-t p-4 
shadow-md"
+        class="bg-background fixed bottom-0 left-64 right-0 flex justify-end 
gap-2 border-t p-4 shadow-md"
       >
         <Button
           variant="default"
diff --git 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/applications/ApplicationEditorContainer.vue
 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/applications/ApplicationEditorContainer.vue
index 8a16cb8c4..f1c150131 100644
--- 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/applications/ApplicationEditorContainer.vue
+++ 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/applications/ApplicationEditorContainer.vue
@@ -80,7 +80,7 @@
       />
     </div>
     <div
-      class="bg-background fixed inset-x-0 bottom-0 flex gap-2 border-t p-4 
shadow-md"
+      class="bg-background fixed bottom-0 left-64 right-0 flex justify-end 
gap-2 border-t p-4 shadow-md"
     >
       <Button
         variant="default"
diff --git 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/applications/ApplicationInterfaceEditor.vue
 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/applications/ApplicationInterfaceEditor.vue
index 405f08da2..61e8ae419 100644
--- 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/applications/ApplicationInterfaceEditor.vue
+++ 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/applications/ApplicationInterfaceEditor.vue
@@ -103,10 +103,10 @@
       >
         <template #item="{ element: input }">
           <application-input-field-editor
-            :value="input"
+            :model-value="input"
             :focus="input.key === focusApplicationInputKey"
             :collapse="collapseApplicationInputs"
-            @input="updatedInput"
+            @update:model-value="updatedInput"
             @delete="deleteInput(input)"
             :readonly="readonly"
           />
@@ -126,10 +126,10 @@
       <h2 class="mb-4 text-lg font-semibold">Output Fields</h2>
       <application-output-field-editor
         v-for="output in data.application_outputs"
-        :value="output"
+        :model-value="output"
         :key="output.key"
         :focus="output.key === focusApplicationOutputKey"
-        @input="updatedOutput"
+        @update:model-value="updatedOutput"
         @delete="deleteOutput(output)"
         :readonly="readonly"
       />
diff --git 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/gatewayprofile/StoragePreferenceList.vue
 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/gatewayprofile/StoragePreferenceList.vue
index ef3f5998d..90ace7e90 100644
--- 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/gatewayprofile/StoragePreferenceList.vue
+++ 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/gatewayprofile/StoragePreferenceList.vue
@@ -105,8 +105,8 @@
                 <Card>
                   <CardContent>
                     <storage-preference-editor
-                      :value="item"
-                      @input="updatedStoragePreference"
+                      :model-value="item"
+                      @update:model-value="updatedStoragePreference"
                       :default-credential-store-token="
                         defaultCredentialStoreToken
                       "
diff --git 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/statistics/ExperimentStatisticsContainer.vue
 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/statistics/ExperimentStatisticsContainer.vue
index c5751ce33..75bf4b91c 100644
--- 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/statistics/ExperimentStatisticsContainer.vue
+++ 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/statistics/ExperimentStatisticsContainer.vue
@@ -4,8 +4,9 @@
     subtitle="Gateway experiment activity over time."
   >
     <Tabs v-model="activeTab" ref="tabs" class="space-y-4">
-      <TabsList>
-        <TabsTrigger value="statistics">Statistics</TabsTrigger>
+      <!-- Only show the tab bar once experiment-detail tabs are open; the lone
+           "Statistics" pill was a no-op (the statistics view is the default). 
-->
+      <TabsList v-if="experimentDetailTabs.length > 0">
         <TabsTrigger
           v-for="experimentTab in experimentDetailTabs"
           :key="experimentTab.experiment.experiment_id"
diff --git 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/users/ExtendedUserProfileContainer.vue
 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/users/ExtendedUserProfileContainer.vue
index 7a4d2e1fa..d4e645389 100644
--- 
a/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/users/ExtendedUserProfileContainer.vue
+++ 
b/airavata-django-portal/django_airavata/apps/admin/static/django_airavata_admin/src/components/users/ExtendedUserProfileContainer.vue
@@ -21,8 +21,8 @@
       </transition-group>
       <div ref="bottom" />
     </div>
-    <div class="bg-background fixed inset-x-0 bottom-0 border-t p-4 shadow-md">
-      <div class="flex">
+    <div class="bg-background fixed bottom-0 left-64 right-0 border-t p-4 
shadow-md">
+      <div class="flex justify-end gap-2">
         <DropdownMenu>
           <DropdownMenuTrigger as-child>
             <Button variant="outline" :disabled="!isGatewayAdmin"

Reply via email to