From d2dd5e78b436f31b2ae7a0ae5f56b5d31606ee25 Mon Sep 17 00:00:00 2001
From: Bo-Chun Louis Chen <louistw@uab.edu>
Date: Wed, 22 Nov 2023 15:08:10 -0600
Subject: [PATCH] Add form.js
---
form.js | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
create mode 100644 form.js
diff --git a/form.js b/form.js
new file mode 100644
index 0000000..ed93a43
--- /dev/null
+++ b/form.js
@@ -0,0 +1,68 @@
+const table = {
+ "interactive": { "max_cpu": 48, "max_hour": 2, "max_gpu": -1 },
+ "express": { "max_cpu": 48, "max_hour": 2, "max_gpu": -1 },
+ "short": { "max_cpu": 48, "max_hour": 12, "max_gpu": -1 },
+ "pascalnodes": { "max_cpu": 28, "max_hour": 12, "max_gpu": 4 },
+ "pascalnodes-medium": { "max_cpu": 28, "max_hour": 48, "max_gpu": 4 },
+ "medium": { "max_cpu": 48, "max_hour": 50, "max_gpu": -1 },
+ "long": { "max_cpu": 48, "max_hour": 150, "max_gpu": -1 },
+ "intel-dcb": { "max_cpu": 24, "max_hour": 150, "max_gpu": -1 },
+ "amd-hdr100": { "max_cpu": 128, "max_hour": 150, "max_gpu": -1 },
+ "largemem": { "max_cpu": 24, "max_hour": 50, "max_gpu": -1 },
+ "largemem-long": { "max_cpu": 24, "max_hour": 150, "max_gpu": -1 },
+ "amperenodes": { "max_cpu": 128, "max_hour": 12, "max_gpu": 2 },
+ "amperenodes-medium": { "max_cpu": 128, "max_hour": 48, "max_gpu": 2 },
+}
+
+function set_max_value(form_id, value) {
+ const form_element = $(form_id);
+ form_element.attr({'max': value});
+}
+
+function set_partition_change_handler() {
+ let partition_select = $("#batch_connect_session_context_bc_partition");
+ partition_select.change( function(e) {
+ toggle_gpu_visibility(e);
+ });
+}
+
+function toggle_gpu_visibility(event) {
+ const partition = event.target.value;
+ const cpu_selector = '#batch_connect_session_context_bc_num_slots';
+ const gpu_selector = '#batch_connect_session_context_bc_num_gpus';
+ const hour_selector = '#batch_connect_session_context_bc_num_hours';
+
+ toggle_visibilty_of_form_group(gpu_selector, table[partition]["max_gpu"] != -1);
+ set_max_value(cpu_selector, table[partition]["max_cpu"]);
+ set_max_value(gpu_selector, table[partition]["max_gpu"]);
+ set_max_value(hour_selector, table[partition]["max_hour"]);
+}
+
+function toggle_visibilty_of_form_group(form_id, show) {
+ let form_element = $(form_id);
+ let parent = form_element;
+
+ while (
+ (! parent[0].classList.contains('form-group')) &&
+ (! parent.is('html')) // ensure that we don't loop infinitely
+ ) {
+ parent = parent.parent();
+ }
+
+ // If parent is HTML then something has gone wrong and visibility should not be changed
+ if ( parent.is('html') ) {
+ return;
+ }
+
+ if(show) {
+ parent.show();
+ } else {
+ parent.hide();
+ }
+}
+
+toggle_gpu_visibility(
+ // Fake the event
+ { target: document.querySelector('#batch_connect_session_context_bc_partition') }
+);
+set_partition_change_handler();
--
GitLab