Split jinja template in views

This commit is contained in:
Benoît Seignovert 2024-02-14 18:45:57 +01:00
parent b0f8e336bc
commit b26425d4cf
Signed by: Benoît Seignovert
GPG key ID: F5D8895227D18A0B
9 changed files with 163 additions and 61 deletions

View file

@ -0,0 +1,10 @@
<div class="form-group">
<label for="python-env" class="col-sm-3 control-label">Python environment:</label>
<div class="col-sm-9">
<select class="form-control" name="python-env">
{%- for pyenv in envs -%}
<option value="{{ pyenv.path }}">{{ pyenv.name }} ({{ pyenv.scope | upper }})</option>
{% endfor -%}
</select>
</div>
</div>

View file

@ -0,0 +1,67 @@
<div class="resources">
<div class="form-group">
<label for="cpu" class="col-sm-3 control-label">CPU:</label>
<div class="col-sm-9">
{%- for cpu in cpus -%}
<div class="col-sm-2">
<input type="radio" name="cpu" id="cpu_{{loop.index0}}" value="{{loop.index0}}"
data-max-duration="{{cpu.max_duration}}"{% if loop.first %} checked{% endif %}>
<label for="cpu_{{loop.index0}}" class="btn btn-default btn-block">
{{ cpu.description }}
</label>
</div>
{% endfor -%}
</div>
</div>
<div class="form-group">
<label for="ram" class="col-sm-3 control-label">Memory:</label>
<div class="col-sm-9">
{%- for ram in rams -%}
<div class="col-sm-2">
<input type="radio" name="ram" id="ram_{{loop.index0}}" value="{{loop.index0}}"
data-max-duration="{{ram.max_duration}}"{% if loop.first %} checked{% endif %}>
<label for="ram_{{loop.index0}}" class="btn btn-default btn-block">
{{ ram.description }}
</label>
</div>
{% endfor -%}
</div>
</div>
<div class="form-group">
<label for="gpu" class="col-sm-3 control-label">GPU:</label>
<div class="col-sm-9">
{%- for gpu in gpus -%}
<div class="col-sm-2">
<input type="radio" name="gpu" id="gpu_{{loop.index0}}" value="{{loop.index0}}"
data-max-duration="{{gpu.max_duration}}"{% if loop.first %} checked{% endif %}>
<label for="gpu_{{loop.index0}}" class="btn btn-default btn-block">
{{ gpu.description }}
</label>
</div>
{% endfor -%}
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">Session duration:</label>
<div class="col-sm-9">
<div class="form-control-static"><span id="time-max-duration">24</span> h</div>
</div>
</div>
<script>
// Adjust time duration
var $reservations_dropdown = $("#time-max-duration");
$('.resources input[type=radio]').change(function () {
var cpu = $('input[name=cpu]:checked').data('max-duration');
var ram = $('input[name=ram]:checked').data('max-duration');
var gpu = $('input[name=gpu]:checked').data('max-duration');
$reservations_dropdown.text(Math.min(cpu, ram, gpu));
})
</script>

View file

@ -0,0 +1,70 @@
<div class="panel-group" id="advanced-config" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading">
<h4 class="panel-title">
<a class="panel-title-toggle collapsed" role="button" data-toggle="collapse"
data-parent="#advanced-config" href="#advanced-config-collapse" aria-expanded="true" aria-controls="advanced-config-collapse">
Advanced configuration
</a>
</h4>
</div>
<div id="advanced-config-collapse" class="panel-collapse {# collapse #}" role="tabpanel" aria-labelledby="heading">
<div class="panel-body">
<p>You can specify on which cluster/partion/node you want to start your Jupyter server:</p>
{# {% if slurm is not 'None' %} #}
<div class="form-group">
<label for="cluster" class="col-sm-3 control-label">Clusters:</label>
<div class="col-sm-9">
{%- for cluster in slurm -%}
<div class="col-sm-6">
<input type="radio" name="cluster" id="cluster_{{cluster}}" class="slurm_cluster"
value="{{cluster}}">
<label for="cluster_{{cluster}}" class="btn btn-default btn-block">
{{ cluster | capitalize }}
</label>
</div>
{% endfor -%}
</div>
</div>
{# {% endif %} #}
<div class="form-group">
<label for="partition" class="col-sm-3 control-label">Partitions:</label>
<div class="col-sm-9" id="partitions-list"></div>
</div>
<div class="form-group">
<label for="node" class="col-sm-3 control-label">Nodes:</label>
<div class="col-sm-9">
<div class="col-sm-3">
<input type="radio" name="node" id="node_0" value="0" checked>
<label for="node_0" class="btn btn-default btn-block">
cribbar033
</label>
</div>
<div class="col-sm-3">
<input type="radio" name="node" id="node_1" value="1">
<label for="node_1" class="btn btn-default btn-block">
cribbar034
</label>
</div>
<div class="col-sm-3">
<input type="radio" name="node" id="node_2" value="2">
<label for="node_2" class="btn btn-default btn-block">
cribbar035
</label>
</div>
<div class="col-sm-3">
<input type="radio" name="node" id="node_3" value="3">
<label for="node_3" class="btn btn-default btn-block">
cribbar036
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,6 @@
<div class="form-group">
<label class="col-sm-3 control-label">Username:</label>
<div class="col-sm-9">
<div class="form-control-static">{{ username }}</div>
</div>
</div>