Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • exact/Rosetta
1 result
Select Git revision
Show changes
Showing
with 329 additions and 295 deletions
{% if details %}
{% if details %}
<div style="width:400px; float:left; border: #e0e0e0 solid 1px; margin:10px; background:#f8f8f8; margin-bottom:15px">
<table class="dashboard" style="margin:0px; border:0px; width:398px">
......@@ -8,7 +8,7 @@
<tr>
<td colspan=2 align=center style="padding:10px; font-size:1.2em"><a href="/software/?container_uuid={{ container.uuid }}">{{ container.name }} <font style="font-size:0.9em">({{ container.image_tag }})</font></a></td>
</tr>
<tr>
<td colspan="2" style="background:{{ container.color }}; height:15px"></td>
</tr>
......@@ -43,7 +43,7 @@
<tr><td colspan=2><hr style="margin:5px"></td></tr>
</table>
<table class="dashboard" style="margin:0px; border:0px;">
<tr>
<td><b>Interface protocol</b></td>
......@@ -85,33 +85,33 @@
<tr>
<td colspan=2>
<b>Supports custom interface port</b> &nbsp;
<b>Supports custom interface port</b> &nbsp;
{% if container.supports_custom_interface_port %}
<input type="checkbox" name="container_supports_user_auth" checked disabled/>
<input type="checkbox" name="container_supports_user_auth" checked disabled/>
{% else %}
<input type="checkbox" name="container_supports_user_auth" disabled/>
<input type="checkbox" name="container_supports_user_auth" disabled/>
{% endif %}
</td>
</tr>
<tr>
<td colspan=2>
<b>Supports interface auth</b> &nbsp;
<b>Supports interface auth</b> &nbsp;
{% if container.supports_interface_auth %}
<input type="checkbox" name="supports_interface_auth" checked disabled/>
<input type="checkbox" name="supports_interface_auth" checked disabled/>
{% else %}
<input type="checkbox" name="supports_interface_auth" disabled/>
<input type="checkbox" name="supports_interface_auth" disabled/>
{% endif %}
</td>
</tr>
<tr>
<td colspan=2>
<b>Disable HTTP auth embedding</b> &nbsp;
<b>Disable HTTP auth embedding</b> &nbsp;
{% if container.disable_http_basicauth_embedding %}
<input type="checkbox" name="disable_http_basicauth_embedding" checked disabled/>
<input type="checkbox" name="disable_http_basicauth_embedding" checked disabled/>
{% else %}
<input type="checkbox" name="disable_http_basicauth_embedding" disabled/>
<input type="checkbox" name="disable_http_basicauth_embedding" disabled/>
{% endif %}
</td>
</tr>
......@@ -122,7 +122,7 @@
<td><pre>{{container.env_vars}}</pre></td>
</tr>
{% endif %}
{% if container.user %}
<tr>
<td><b>Operations</b></td>
......@@ -131,26 +131,26 @@
{% endif %}
</table>
</div>
{% else %}
<div style="width:300px; float:left; border: #e0e0e0 solid 1px; margin:10px; background:#f8f8f8; margin-bottom:15px">
<div style="padding:10px; margin-top:5px; text-align:center; border-bottom: {{container.color}} solid 10px; ">
<a href="/software/?container_uuid={{ container.uuid }}">{{ container.name }}</a>&nbsp;
<a href="/software/?container_uuid={{ container.uuid }}">{{ container.name }}</a>&nbsp;
</div>
<div style="padding:10px; height: 110px; vertical-align: middle; ">
{% if container.description %}
{% if container.description %}
<div class="description-box" title="{{ container.description }}">
{{ container.description }}
</div>
{% else %}
<br/>
<br/>
{% endif %}
<div class="image-version-box">
<!-- <font style="font-family:monospace; font-size:1.2em"></font> -->
<b>Image:</b> <code>{{ container.image_name }}</code><br/>
......@@ -158,22 +158,22 @@
{% if container.image_arch %}
<font style="font-size:0.9em">({{ container.image_arch }})</font>
{% endif %}
<!-- &nbsp; <b>Arch:</b> {{ container.image_arch }} -->
</div>
</div>
</div>
<div style="margin-bottom:18px; margin-top: 3px; text-align:center">
{% if not disable_play_button %}
<a href="/new_task?task_container_uuid={{ container.uuid }}&step=two" class="btn btn-light" style="border: #c0c0c0 1px solid">&nbsp;<i class="fa fa-play" style="color:green"></i></a>
{% endif %}
</div>
</div>
</div>
{% endif %}
......@@ -181,4 +181,4 @@
\ No newline at end of file
......@@ -3,33 +3,33 @@
{% for container in container_family.members %}
{% include "components/container.html" with container=container details=data.details %}
{% endfor %}
{% else %}
{% else %}
<div style="width:300px; float:left; border: #e0e0e0 solid 1px; margin:10px; background:#f8f8f8; margin-bottom:15px">
<form action="/new_task" method=GET>
<input type="hidden" name="step" value="two">
<div style="padding:10px; margin-top:5px; text-align:center; border-bottom: {{container_family.color}} solid 10px; ">
<a href="/software/?container_family_id={{ container_family_id }}&details=True">{{ container_family.name }}</a>&nbsp;
<a href="/software/?container_family_id={{ container_family_id }}&details=True">{{ container_family.name }}</a>&nbsp;
</div>
<div style="padding:10px; height: 125px; ">
<!-- <div style="position: relative; top: 50%; transform: translateY(-50%);"> -->
{% if container_family.description %}
{% if container_family.description %}
<div class="description-box" title="{{ container_family.description }}">
{{ container_family.description }}
</div>
{% else %}
<br/>
<br/>
{% endif %}
<div class="image-version-box">
<b>Image:</b> <code>{{ container_family.image_name }}</code><br/>
<div style="margin-top:2px">
<!-- <span style="vertical-align:top;"><b>Tag:</b>&nbsp;</span>
<select name="task_container_uuid" style="font-size:0.8em">
{% for container in container_family.members %}
......@@ -79,32 +79,32 @@
</optgroup>
</select>
</div>
</div>
<!-- </div> -->
</div>
<div style="margin-bottom:8px; margin-top: 3px; text-align:center">
{% if not disable_play_button %}
<button type="submit" onclick="myFunction()" class="btn-link btn btn-light" style="border: #c0c0c0 1px solid; padding-left:14px">
<i class="fa fa-play" style="color:green"></i>
</button>
{% endif %}
</form>
</div>
</div>
</div>
{% endif %}
......@@ -112,4 +112,4 @@
\ No newline at end of file
{% if data.task %}
{% if data.task %}
<center>
<div style="width:350px; display:block; border: #e0e0e0 solid 1px; margin:10px; background:#f8f8f8; margin-bottom:20px">
<div style="margin-top:5px; padding:10px; text-align:center; border-bottom: #f8f8f8 solid 1px; ">
<b>{{data.task.name}}</b>
</div>
<hr style="margin:0">
{% else %}
<div style="width:350px; float:left; border: #e0e0e0 solid 1px; margin:10px; background:#f8f8f8; margin-bottom:20px">
<div style="margin-top:5px; padding:10px; text-align:center; border-bottom: #e0e0e0 solid 1px; ">
<a href="?uuid={{ task.uuid }}"><b>{{ task.name }}</b></a>
</div>
{% endif %}
<!-- <div style="background:{{task.color}}; height:24px;"></div> -->
<!-- <div style="background:{{ task.container.color }}; height:14px;"></div> -->
<!-- <div style="margin-bottom:15px; margin-top:0px">
<div style="background:{{task.container.color}}; height:14px; width:149px; float:left"></div>
<div style="background:{{task.computing.color}}; height:14px; width:149px; float:left"></div>
</div> -->
<div style="padding:10px; padding-left:15px; padding-right:15px; text-align:left;">
<!-- <b>Container:</b> {{ task.container.name }} <span style="font-size:14px; background-color:{{task.container.color}}">&nbsp;&nbsp;&nbsp;&nbsp;</span> <br/>
<b>Computing:</b> {{ task.computing.name }} <span style="font-size:14px; background-color:{{task.computing.color}}">&nbsp;&nbsp;&nbsp;&nbsp;</span><br/> -->
......@@ -39,60 +39,68 @@
{% if task.container.type == 'singularity' %}<img src="/static/img/singularity-logo.svg" style="height:18px; width:18px; margin-bottom:4px" />{% endif %}
<br/>
<b>Computing:</b> <a href="/computing/?uuid={{ task.computing.uuid }}">{{ task.computing.name }}</a>
<!-- <a href="/computing/?uuid={{ task.computing.uuid }}" no_style="color:{{task.computing.color}}"><i class="fa fa-external-link" ></i></a><br/> -->
<!-- <a href="/computing/?uuid={{ task.computing.uuid }}" no_style="color:{{task.computing.color}}"><i class="fa fa-external-link" ></i></a><br/> -->
<div style="margin-top:2px">
{% if task.status == "running" %}
<b>Status:</b> <font color="green">running</font>
{% if task.container.interface_protocol == 'http' or task.container.interface_protocol == 'https' %}
{% else %}
@ port {{ task.tcp_tunnel_port }}
{% endif %}
{% else %}
<b>Status:</b> {{ task.status }}
{% endif %}
</div>
</div>
<div style="margin-bottom:10px; text-align:center; padding:5px">
<!-- Stop / Delete / Cancel -->
{% if task.status == "stopped" or task.status == "created" %}
<a href="?uuid={{task.uuid}}&action=delete&fromlist=True" class="btn btn-action">Delete</a>
{% else %}
{% else %}
<a href="?uuid={{task.uuid}}&action=stop&fromlist=True" class="btn btn-action">Stop</a>
{% endif %}
<!-- Connect -->
{% if task.interface_port %}
{% if task.container.interface_protocol == 'http' or task.container.interface_protocol == 'https' %}
{% if task.status == "running" %}
<a href="/task_connect/?uuid={{task.uuid}}" class="btn btn-connect">Connect</a>
{% else %}
<a href="" class="btn btn-disabled">Connect</a>
<a href="" class="btn btn-disabled">Connect</a>
{% endif %}
{% endif %}
{% endif %}
<!-- View log -->
{% if task.status == "running" %}
<a href="/task_log/?uuid={{task.uuid}}&action=viewlog" class="btn btn-action">Logs</a>
<a href="/task_log/?uuid={{task.uuid}}&action=viewlog" class="btn btn-action">Logs</a>
{% else %}
<a href="" class="btn btn-disabled">Logs</a>
<a href="" class="btn btn-disabled">Logs</a>
{% endif %}
</div>
</div>
</div>
{% if data.task %}
{% if data.task %}
<br/>
<a href="javascript:void(0);" id="show_button" onclick="toggle_visibility('details_div')">Details..</a>
<div id="details_div" style="display:none; width:400px;">
<b>Details <font size=-1>| <a href="javascript:void(0);" id="hide_button" onclick="toggle_visibility('details_div')" style="display:none">hide</a></font></b>
<div style="display:block"; max-width:450px">
<table class="dashboard" style="margin:10px">
......@@ -124,7 +132,7 @@
<tr>
<td><b>Status</b></td>
<td>{{ task.status }}</td>
</tr>
</tr>
<tr>
<td><b>Created at</b></td>
......@@ -140,7 +148,7 @@
<td><b>Interface port</b></td>
<td>{{ task.interface_port }}</td>
</tr>
<tr>
<td><b>Tunnel port</b></td>
<td>{{ task.tcp_tunnel_port }}</td>
......@@ -152,17 +160,17 @@
<td>{{ task.auth_token }}</td>
</tr>
{% endif %}
{% if task.computing_options %}
<tr>
<td><b>Computing options</b></td>
<td>{{ task.computing_options }}</td>
</tr>
{% endif %}
{% endif %}
<!-- <tr><td style="padding-right:0"><b>Direct link</b>
<td>{% if task.status == "running" %}<a href="{{ task.sharable_link }}">{{ task.sharable_link }}</a>{% else %}N.A. (task not running) {% endif %}</td>
<td>{% if task.status == "running" %}<a href="{{ task.sharable_link }}">{{ task.sharable_link }}</a>{% else %}N.A. (task not running) {% endif %}</td>
</tr>-->
......@@ -170,7 +178,7 @@
</table>
</div>
<!-- <p style="margin-left:10px; font-size:0.9em; color:#484848">
<i class="fa fa-info-circle" style="color:#337ab7"></i> You can share a direct link with other people, but remember that if you have no authentication in place anyone will be able to access.
</p> -->
......@@ -178,5 +186,5 @@
</center>
{% endif %}
\ No newline at end of file
{% endif %}
<select name="value" >
<option disabled selected style='display:none;'>Time Zone...</option>
<optgroup label="US (Common)">
<optgroup label="US (Common)">
<option value="America/Puerto_Rico">Puerto Rico (Atlantic)</option>
<option value="America/New_York">New York (Eastern)</option>
<option value="America/Chicago">Chicago (Central)</option>
......@@ -232,7 +232,7 @@
<option value="Europe/Zaporozhye">Zaporozhye</option>
<option value="Europe/Zurich">Zurich</option>
</optgroup>
<optgroup label="Asia">
<option value="Asia/Aden">Aden</option>
<option value="Asia/Almaty">Almaty</option>
......@@ -379,7 +379,7 @@
<option value="Africa/Tunis">Tunis</option>
<option value="Africa/Windhoek">Windhoek</option>
</optgroup>
<optgroup label="Australia">
<option value="Australia/ACT">ACT</option>
<option value="Australia/Adelaide">Adelaide</option>
......@@ -419,7 +419,7 @@
<option value="Indian/Mayotte">Mayotte</option>
<option value="Indian/Reunion">Reunion</option>
</optgroup>
<optgroup label="Atlantic">
<option value="Atlantic/Azores">Azores</option>
<option value="Atlantic/Bermuda">Bermuda</option>
......@@ -477,7 +477,7 @@
<option value="Pacific/Wallis">Wallis</option>
<option value="Pacific/Yap">Yap</option>
</optgroup>
<optgroup label="Antarctica">
<option value="Antarctica/Casey">Casey</option>
<option value="Antarctica/Davis">Davis</option>
......@@ -529,5 +529,5 @@
<option value="UTC+13">UTC+13</option>
<option value="UTC+14">UTC+14</option>
</optgroup>
</select>
\ No newline at end of file
</select>
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html" %}
{% include "logo.html" %}
......@@ -6,25 +6,25 @@
<div class="container">
<div class="dashboard">
<div class="span8 offset2">
{% if data.computing %}
<h1><a href="/computing">Computing resources</a> <span style="font-size:18px"> / {{ data.computing.name }}</span></h1>
<h1><a href="/computing">Computing resources</a> <span style="font-size:18px"> / {{ data.computing.name }}</span></h1>
{% else %}
<h1>Computing resources</h1>
{% endif %}
<hr/>
<div class="row" style="padding:5px">
{% if data.computing %}
{% include "components/computing.html" with computing=data.computing details=True %}
{% else %}
{% else %}
{% for computing in data.computings %}
{% include "components/computing.html" with computing=computing %}
{% endfor %}
{% endif %}
</div>
<!-- <div class="row" style="padding:10px; padding-left:15px">
<!-- <div class="row" style="padding:10px; padding-left:15px">
<a href="/add_container">Add new...</a>
</div> -->
......@@ -45,3 +45,4 @@
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html" %}
{% include "logo.html" %}
......@@ -10,8 +10,8 @@
<hr>
<br/>
<br/><br/>
<div class='centerbox-error-outer'>
<span class='centerbox-error-inner'>
<div class='centerbox-error-outer'>
<span class='centerbox-error-inner'>
{{data.error}}
</span>
</div>
......@@ -22,7 +22,7 @@
<br/>
<br/>
<br/>
</div>
</div>
</div>
......@@ -33,3 +33,4 @@
......@@ -42,13 +42,14 @@
colour_rgb = hexToRgb(colour)
return "rgba(" + colour_rgb.r + "," + colour_rgb.g + "," + colour_rgb.b + ",0.3)"
return "rgba(" + colour_rgb.r + "," + colour_rgb.g + "," + colour_rgb.b + ",0.3)"
}
</script>
</body>
</html>
......@@ -12,7 +12,7 @@
{% if refresh %}
<meta http-equiv="refresh" content="{{refresh}}" >
{% endif %}
{% if title %}
<title>Rosetta - {{ title }}</title>
{% else %}
......@@ -49,17 +49,28 @@
<!-- jQuery -->
<script src="/static/js/jquery-1.11.1.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="/static/js/bootstrap-3.3.5.min.js"></script>
<!-- Moment Javascript -->
<script src="/static/js/moment-with-locales-2.22.2.js"></script>
<!-- Date time picker -->
<script src="/static/js/bootstrap-datetimepicker-4.17.47.js"></script>
<!-- Loader -->
<link rel="stylesheet" href="/static/css/loader.css">
<script src="/static/js/loader.js"></script>
</head>
<body {{ body_args }}>
\ No newline at end of file
<div id="navigate-away-loader">
<svg xmlns="http://www.w3.org/2000/svg" width="96" height="96" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" />
<path d="M21 3v5h-5" />
<path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" />
<path d="M8 16H3v5" />
</svg>
</div>
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html" %}
{% include "logo.html" %}
......@@ -6,24 +6,24 @@
<div class="container">
<div class="dashboard">
<div class="span8 offset2">
{% if data.mode == 'new_task' %}
<h1>New Task</h1>
{% if data.mode == 'new_task' %}
<h1>New Task</h1>
{% elif data.mode == 'new_container' %}
<h1>Add software container</h1>
<h1>Add software container</h1>
{% else %}
<h1>Importing repository</h1>
<h1>Importing repository</h1>
{% endif %}
<hr>
<div id="importing">
Importing repository <code>{{ data.repository_url }}</code>...
Importing repository <code>{{ data.repository_url }}</code>...
<br>
<br>
<br>
<br>
<center><img src="/static/img/ajax-loader.gif"></center>
</div>
<div id="import_succeded" style="display:none">
Ok, software container added. Go to <a href="/software">software</a>.
</div>
......@@ -32,7 +32,7 @@
<div id="import_failed" style="display:none">
FAILED: <span id="import_failed_text"></span>
</div>
<script type="text/javascript">
var apiUrl = '/api/v1/import_repository/?repository_url={{data.repository_url}}&repository_tag={{data.repository_tag}}&container_name={{data.container_name}}&container_description={{data.container_description}}';
fetch(apiUrl).then(response => {
......@@ -45,21 +45,21 @@
}).then(data => {
// Work with JSON data here
console.log(data)
if (data.results.import_succeded){
// Terrbile django templating mixed with javascript
{% if data.mode == 'new_task' %}
window.location.replace("/new_task/?step=two&task_container_uuid="+data.results.container_uuid)
{% if data.mode == 'new_task' %}
window.location.replace("/new_task/?step=two&task_container_uuid="+data.results.container_uuid)
{% else %}
$("#importing").hide();
$("#import_succeded").show();
$("#import_succeded").show();
{% endif %}
} else {
throw data.results.error_message
}
......@@ -72,7 +72,7 @@
$("#import_failed_text").html(error);
});
</script>
</div>
</div>
</div>
......@@ -89,3 +89,4 @@
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html"%}
{% include "logo.html" %}
......@@ -17,44 +17,44 @@
<input type="password" class="form-control" placeholder="Password" name='password'>
<br />
<input type='submit' style="width:110px" class="btn btn-lg btn-success btn-block" value='Log in' />
<div style="margin-top:25px; margin-bottom:15px">
{% if OPENID_ENABLED %}<font color="#a9a9a9"> — OR —</font>{% endif %}
</div>
{% if OPENID_ENABLED %}
<a href="{% url 'oidc_authentication_init' %}">Login with OpenID Connect &nbsp;</a>
{% endif %}
<br /><br />
{% if data.error %}
<br/>
<div class='centerbox-error'>
{{ data.error }}
</div>
{% elif data.success %}
<br/>
<div class='centerbox-success'>
{{data.success}}
</div>
{% else %}
<br />
{% endif %}
</p>
</form>
</form>
</div>
{% if not data.success %}
<b>Forgot password?</b><br/> Just leave it empty to get a login link by email!
{% endif %}
<br /><br /><br />
</center>
......@@ -62,3 +62,4 @@
{% include "footer.html" %}
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html"%}
......@@ -12,7 +12,7 @@
<h2 style="margin-top:10px; margin-left:25px; margin-right:25px; font-weight:100; line-height: 30px;"><i>A container-centric Science Platform<br></i></h2>
</div>
</div>
<div class="container">
<div class="dashboard">
<div class="span8 offset2" style="margin: 30px auto; max-width:800px">
......@@ -21,9 +21,9 @@
<br/><br/>
This is an empty installation. To load some demo data, run <code>rosetta/populate</code>.
</div>
</div>
</div>
</div>
</header>
{% endif %}
......@@ -31,3 +31,4 @@
......@@ -4,9 +4,9 @@
<nav id="sidebar-wrapper">
<ul class="sidebar-nav">
<a id="menu-close" href="#" class="btn btn-light btn-lg pull-right toggle"><i class="fa fa-times"></i></a>
<a href="/main" class="btn btn-light btn-lg pull-right toggle"><i class="fa fa-home"></i></a>
<a href="/main" class="btn btn-light btn-lg pull-right toggle"><i class="fa fa-home"></i></a>
<li class="sidebar-brand" style="margin-top:50px">
......@@ -16,13 +16,13 @@
<hr style="margin-top:10px; margin-bottom:20px; margin-left:10px; margin-right:10px">
{% if user.is_authenticated %}
<li>
<a href="/software" onclick = $("#menu-close").click(); >Software</a>
</li>
<li>
<a href="/computing" onclick = $("#menu-close").click(); >Computing</a>
</li>
</li>
<li>
<a href="/storage" onclick = $("#menu-close").click(); >Storage</a>
......@@ -34,30 +34,30 @@
<li>
<a href="/account" onclick = $("#menu-close").click(); >Account</a>
</li>
</li>
{% else %}
{% if LOCAL_AUTH_ENABLED %}
{% if LOCAL_AUTH_ENABLED %}
<li>
<center>
<form class="form-signin" role="form" action='/login/' method='POST'>
{% csrf_token %}
<input type="username" class="form-control" placeholder="Email" name='username' required>
<input type="username" class="form-control" placeholder="Email" name='username' required>
<input type="password" class="form-control" placeholder="Password" name='password'>
<input type='submit' class="btn btn-lg ha-btn-lg" value='Login' />
</form>
</center>
</center>
</li>
{% if OPENID_ENABLED %}
<center><div style="margin-top:15px;margin-bottom:10px"><font color="#a9a9a9"> — OR —</font></div></center>
{% endif %}
{% endif %}
{% endif %}
<center>
{% if OPENID_ENABLED %}
{% if LOCAL_AUTH_ENABLED %}
{% if LOCAL_AUTH_ENABLED %}
<li style="padding-left:0; text-indent: 0"> <a href="{% url 'oidc_authentication_init' %}" style="padding-left:0; text-indent: 0">Login with OpenID Connect</a></li>
{% else %}
<li style="padding-left:0; text-indent: 0"> <a href="{% url 'oidc_authentication_init' %}" style="padding-left:0; text-indent: 0">Login</a></li>
......@@ -65,20 +65,21 @@
{% endif %}
{% if LOCAL_AUTH_ENABLED %}
<div style="padding:10px;">
<font color="gray">Forgot password? Just leave it empty to get a login link by email.
<font color="gray">Forgot password? Just leave it empty to get a login link by email.
Or, <a href="/register" style="color: #c0c0c0" onclick = $("#menu-close").click(); >Register</a>.</font>
</div>
{% endif %}
</center>
{% endif %}
</ul>
</nav>
{% endif %}
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html" %}
{% include "logo.html" %}
......@@ -6,14 +6,14 @@
<div class="container">
<div class="dashboard">
<div class="span8 offset2">
<h1>New Task</h1>
<h1>New Task</h1>
<hr>
<!-- {% if data.step == 'two' %}
<h3>Choose computing resource</h3>
{% elif data.step == 'three' %}
<h3>Task details and confirm</h3>
<!-- {% if data.step == 'two' %}
<h3>Choose computing resource</h3>
{% elif data.step == 'three' %}
<h3>Task details and confirm</h3>
{% endif %}
<br/> -->
......@@ -26,7 +26,7 @@
</div>
</div>
{% endif %}
{% if data.step == 'two' %}
......@@ -49,8 +49,8 @@
{% include "components/computing.html" with computing=data.task_computing %}
</div>
</div>
<!-- <div style="width:300px; float:left; border: #e0e0e0 solid 0px; margin:10px; background:#f8f8f8; margin-bottom:15px">
<table style="width:100%; height:126px; border: #e0e0e0 solid 1px; margin:0">
......@@ -69,12 +69,12 @@
<h4>Details and confirm</h4>
<div style="width:620px; float:left; border: #e0e0e0 solid 0px; margin-top:10px; ; margin-bottom:15px">
<form action="/new_task/" method="POST">
{% csrf_token %}
<input type="hidden" name="task_container_uuid" value="{{data.task_container.uuid}}">
<input type="hidden" name="task_container_arch" value="{{data.task_container_arch}}">
<input type="hidden" name="task_container_arch" value="{{data.task_container_arch}}">
<input type="hidden" name="step" value="{{ data.next_step }}" />
<input type="hidden" name="task_name" value="{{ data.task_name }}" />
<input type="hidden" name="task_container_uuid" value="{{ data.task_container.uuid }}" />
......@@ -87,10 +87,10 @@
<td valign="top"><b>Task name</b></td>
<td><input type="text" name="task_name" value="" placeholder="" size="37" required /></td>
</tr>
<tr>
<td valign="top">
{% if request.user.profile.is_power_user %}
{% if request.user.profile.is_power_user %}
<b>Task&nbsp;password</b></td>
{% else %}
<b>Auth&nbsp;token</b></td>
......@@ -99,11 +99,11 @@
<input type="hidden" name="task_auth_token" value="{{data.task_auth_token}}">
{% if request.user.profile.is_power_user %}
{% if request.user.profile.is_power_user %}
<input type="text" name="task_auth_password" placeholder="{{data.task_auth_token}}" size="37" style="-webkit-text-security: disc;" /><br>
<font size=-1>
A one-time task password. By default set to a randomly generated token, and usually automatically handled by Rosetta. Six chars min.
</font>
</font>
{% else %}
<input type="text" name="task_auth_password_disabled" value="{{data.task_auth_token}}" size="37" readonly/><br>
<font size=-1>A randomly generated token to be used as task password. Usually automatically handled by Rosetta when loggin-in to the task.</font>
......@@ -111,9 +111,9 @@
</td>
</tr>
{% if request.user.profile.is_power_user %}
{% if request.user.profile.is_power_user %}
<tr>
<td><b>Access method</b></td><td>
<select name="access_method" >
......@@ -138,7 +138,7 @@
</td>
</tr>
{% endif %}
{% if data.task_computing.wms == 'slurm' %}
<tr>
<td><b>Computing options</b></td>
......@@ -151,14 +151,14 @@
</td>
</tr>
{% endif %}
<tr><td colspan=2>
</td></tr>
</table>
{% if data.task_computing.default_container_engine == 'singularity' and not data.task_container.supports_custom_interface_port %}
<div> <p style="font-size:15px; max-width:700px; margin-bottom:20px; margin-left:5px">
<i class="fa fa-exclamation-triangle" style="color:orange"></i> This container does not support custom interface ports and the computing resource you selected might use a container engine/runtime which does not support port mapping. In this case, if the container interface port is already allocated, the task will fail to start.
......@@ -176,21 +176,21 @@
<i class="fa fa-exclamation-triangle" style="color:orange"></i> The selected software container does not specify any architecture. This will leave to the container engine/runtime either to auto-select the right image architecture on the registry, or to fallback on emulation if not found. Beware of potential incompatibilities or slowdowns.
</p></div>
{% endif %}
<!-- {% if data.task_container.interface_port and not data.task_container.supports_interface_auth %}
<div> <p style="font-size:15px; max-width:700px; margin-bottom:20px; margin-left:5px">
<i class="fa fa-exclamation-triangle" style="color:orange"></i> This container does not support configuring any authentication. This means that unless it is somehow built-in within the container, anyone will be able to access it.
</p></div>
{% endif %} -->
<table style="max-width:620px;"><tr><td style="border: 1px solid lightgray;" >
I understand that files saved or modified in the task, if not explicitly saved to a persistent storage, will be LOST upon task completition.
</td><td style="border: 1px solid lightgray;" >
<input class="form-check-input" type="checkbox" value="" id="invalidCheck" required>
</td></table>
<div style="width:640px; text-align:center; padding:20px">
<input type="submit" value="Create task">
<input type="submit" value="Create task">
</div>
</form>
</div>
......@@ -199,12 +199,12 @@
{% else %}
Ok, task created. Go to your <a href="/tasks">task list</a>.
{% endif %}
{% endif %}
</div>
</div>
</div>
......@@ -221,3 +221,4 @@
{% load static %}
{% load static %}
{% include "header.html" with title=data.page.title %}
{% include "navigation.html"%}
{% include "logo.html" %}
......@@ -9,7 +9,7 @@
<!-- <h1>Example title</h1>
<hr> -->
{{ data.page.content | safe }}
</div>
</div>
</div>
......@@ -24,3 +24,4 @@
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html" %}
{% include "logo.html" %}
......@@ -6,15 +6,15 @@
<div class="container">
<div class="dashboard">
<div class="span8 offset2">
<h1>Register</h1>
<hr>
{% if data.status == "wrong_invite" %}
{% if data.status == "wrong_invite" %}
<div class='centerbox-error'>
Sorry, this invitation code is not valid.
</div>
{% elif data.status == "already" %}
<div class='centerbox'>
You are already signed in, cannot create a new account.
......@@ -30,7 +30,7 @@
Ok, account created!
</div>
<br />
You signed up with the following email address: <b>{{data.user.email}}</b>. If this is wrong, change it now in your account settings.
<br/>
<br/>
......@@ -38,7 +38,7 @@
{% else %}
<p><b>Welcome!</b></p>
<p>
{% if INVITATION_CODE_ENABLED %}
An invitation code is required to register on the platform. If you have one, then you can sign up right now. Otherwise, please get in touch.
......@@ -46,10 +46,10 @@
Enter your email address and choose a password to register on the platform.
{% endif %}
</p>
<br/>
<br/>
<div class='centerbox'>
<form class="form-signin" role="form" action='/register/' method='POST'>
{% csrf_token %}
......@@ -66,12 +66,12 @@
<center>Please not that we do not verify email addressed and passwords at this stage, so please <u>double check</u> the form above before signing up.</center>
</div> -->
{% endif %}
{% if data.error %}
{% if data.error %}
<div class='centerbox-error'>
{{ data.error }}
</div>
{% endif %}
<br/>
<br/>
......@@ -79,7 +79,7 @@
<br/>
<br/>
<br/>
</div>
</div>
</div>
......@@ -90,3 +90,4 @@
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html" %}
{% include "logo.html" %}
......@@ -6,11 +6,11 @@
<div class="container">
<div class="dashboard">
<div class="span8 offset2">
{% if data.details or data.container %}
{% if data.container_families %}
<h1><a href="/software">Software containers</a> <span style="font-size:18px"> / {{ data.containers.0.name }}</span></h1>
{% else %}
{% else %}
<h1><a href="/software">Software containers</a> <span style="font-size:18px"> / <a href="/software/?container_family_id={{data.container.family_id}}&details=True">{{ data.container.name }}</a> / {{ data.container.image_tag}}</span></h1>
{% endif %}
{% else %}
......@@ -18,62 +18,62 @@
<h1>New Task</h1>
<hr/>
<div style="padding-left:10px; padding-top:1px"><h4>Software container</h4></div>
<br/>
<br/>
{% else %}
<h1>Software containers</h1>
<hr/>
{% endif %}
<div class="form-filter" style="margin-bottom:20px">
<form action="" method="POST">
<input type="hidden" name="mode" value="{{data.mode}}">
<input type="text" class="form-control" id="search_text" name="search_text" placeholder="Search..." style="width:200px; margin:0; display:inline" value="{{data.search_text}}" autofocus>
<!-- onchange="this.form.submit()" -->
<select class="form-control" id="search_owner" name="search_owner" style="width:120px; margin:0; display:inline">
{% if data.search_owner == 'All' %}
<option selected>All</option>
{% else %}
<option>All</option>
<option>All</option>
{% endif %}
{% if data.search_owner == 'Platform' %}
<option selected>Platform</option>
{% else %}
<option>Platform</option>
<option>Platform</option>
{% endif %}
{% if data.search_owner == 'User' %}
<option selected>User</option>
{% else %}
<option>User</option>
<option>User</option>
{% endif %}
</select>
{% csrf_token %}
<button type="submit" class="btn btn-secondary">Go</button>
&nbsp; &nbsp; <font size=4.0em>|</font> &nbsp; <a href="/add_software">Add new...</a>
</form>
</div>
{% endif %}
<div class="row" style="padding:5px">
{% if data.container %}
{% include "components/container.html" with container=data.container details=True %}
{% else %}
{% else %}
{% if data.container_families %}
{% for container_family_id, container_family in data.container_families.items %}
{% include "components/container_family.html" with container_family=container_family container_family_id=container_family_id%}
......@@ -82,10 +82,10 @@
{% for container in data.containers %}
{% include "components/container.html" with container=container %}
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
</div>
<br/>
<br/>
<br/>
......@@ -102,7 +102,7 @@
<script>
$(document).ready(function() {
var search_text_input = $("#search_text");
var len = search_text_input.val().length;
search_text_input[0].focus();
......@@ -113,3 +113,4 @@ $(document).ready(function() {
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html" %}
{% include "logo.html" %}
......@@ -6,7 +6,7 @@
<div class="container" style="height:75%;">
<div class="dashboard" style="height:100%;">
<div class="span8 offset2" style="height:100%;">
<h1>Storage resources</h1>
......@@ -14,8 +14,8 @@
<iframe src="/static/RichFilemanager/index.html" style="overflow:hidden;height:100%;width:100%; border: 1px solid #c0c0c0" height="100%" width="100%"></iframe>
</div>
</div>
</div>
......@@ -23,3 +23,4 @@
{% include "footer.html" %}
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html" %}
{% include "logo.html" %}
......@@ -9,13 +9,13 @@
<h1>Success</h1>
<hr>
<br/>
<div class='centerbox-success-outer'>
<span class='centerbox-success-inner'>
<div class='centerbox-success-outer'>
<span class='centerbox-success-inner'>
{{data.success}}
</span>
</div>
<br/>
<br/>
......@@ -23,7 +23,7 @@
<br/>
<br/>
<br/>
</div>
</div>
</div>
......@@ -34,3 +34,4 @@
{% load static %}
{% load static %}
{% include "header.html" %}
{% include "navigation.html"%}
<!-- with body_args="style='background: #202020'" -->
<center>
<div style="width:370px;">
<form class="form-signin" role="form" action='/direct_connect/{{data.task.uuid}}/' method='POST'>
{% csrf_token %}
......@@ -14,7 +14,7 @@
<h2> Connecting to task <b>{{ data.task.name }}</b></h2>
<p style="font-size: 16px;">
<br />
{% if not data.task.interface_status == 'running' %}
<br/>
<div class="alert alert-warning" role="alert"><i class="fa fa-warning"></i> the task interface is not up, cannot connect.</div>
......@@ -22,20 +22,20 @@
<br/><br/>
<i>Note: if you just launched the task, this alert might be due to the normal task startup time.</i>
{% else %}
{% if not data.task.requires_proxy_auth %}
{% if data.task.container.interface_auth_user %}
User: <input style="margin-bottom:15px;" type="username" class="form-control" value="{{ data.task.container.interface_auth_user }}"name='username' readonly >
User: <input style="margin-bottom:15px;" type="username" class="form-control" value="{{ data.task.container.interface_auth_user }}"name='username' readonly >
{% else %}
{% endif %}
{% else %}
User: <input style="margin-bottom:15px;" type="username" class="form-control" value="{{ request.user.email }}"name='username' readonly >
{% endif %}
{% if data.task.requires_proxy_auth %}
{% if data.task.auth_token %}
Password: <input type="text" size=37 class="form-control" placeholder="" value="{{data.task.auth_token}}" name='password' readonly>
{% if data.task.container.disable_http_basicauth_embedding %}
......@@ -49,11 +49,11 @@
<p style="margin-left:10px; font-size:0.9em; color:#484848">
<i class="fa fa-info-circle" style="color:#337ab7"></i>
This task will require to manually enter the password set up when creating the task
</p>
</p>
{% endif %}
{% else %}
{% if data.task.auth_token %}
Password: <input type="text" class="form-control" placeholder="" value="{{data.task.auth_token}}" name='password' readonly>
<p style="margin-left:10px; margin-top:30px; font-size:0.9em; color:#484848">
......@@ -61,9 +61,9 @@
{% if not data.task.requires_proxy_auth and data.task.container.interface_auth_user %}
This task will require to manually enter the above user and password token
{% else %}
This task will require to manually enter the above password token
This task will require to manually enter the above password token
{% endif %}
</p>
</p>
{% else %}
Password: <input type="password" class="form-control" placeholder="" value="placeholder" name='password' readonly>
<p style="margin-left:10px; margin-top:30px; font-size:0.9em; color:#484848">
......@@ -71,17 +71,17 @@
{% if not data.task.requires_proxy_auth and data.task.container.interface_auth_user %}
This task will require to manually enter the above user and the password set up when creating the task
{% else %}
This task will require to manually enter the password set up when creating the task
This task will require to manually enter the password set up when creating the task
{% endif %}
</p>
</p>
{% endif %}
{% endif %}
<br />
{% if data.task.container.interface_protocol == 'http' or data.task.container.interface_protocol == 'https' %}
{% if data.task.container.interface_protocol == 'http' or data.task.container.interface_protocol == 'https' %}
<input type='submit' style="width:110px" class="btn btn-lg btn-success btn-block" value='Log in' />
{% else %}
To connect, use a program suitable for this task interface protocol ({{data.task.container.interface_protocol}}) with:<br />
......@@ -92,8 +92,8 @@
{% endif %}
{% endif%}
</p>
</form>
</form>
</div>
<br /><br />
{% if data.task.interface_status == 'running' %}
......@@ -101,7 +101,7 @@
<p style="margin-left:10px; font-size:0.9em; color:rgb(200,200,200); max-width:600px">
<i class="fa fa-info-circle"></i>
Some web browsers (i.e. Safari) might require to manually re-enter the above user credentials. You can copy-paste them, or switch
to a web browser which supports embedding user credentials in the connection URL (as Chorme, Edge or Firefox).
to a web browser which supports embedding user credentials in the connection URL (as Chorme, Edge or Firefox).
</p>
{% endif %}
{% endif %}
......@@ -112,3 +112,4 @@
{% include "footer.html" %}
{% load static %}
{% load static %}
{% include "header.html" with refresh=data.refresh %}
{% include "navigation.html" %}
{% include "logo.html" %}
......@@ -6,20 +6,20 @@
<div class="container">
<div class="dashboard">
<div class="span8 offset2">
<h1><a href="/tasks">Tasks</a> <span style="font-size:18px"> / <a href="/tasks/?uuid={{data.task.uuid}}">{{ data.task.name }}</a> / Log</span></h1>
<h1><a href="/tasks">Tasks</a> <span style="font-size:18px"> / <a href="/tasks/?uuid={{data.task.uuid}}">{{ data.task.name }}</a> / Log</span></h1>
<hr>
<b>UUID:</b> {{ data.task.uuid }} &nbsp; &nbsp;
<b>Status:</b> {{ data.task.status }} &nbsp; &nbsp;
<b>UUID:</b> {{ data.task.uuid }} &nbsp; &nbsp;
<b>Status:</b> {{ data.task.status }} &nbsp; &nbsp;
<b>Auto refresh:{{data.refresh}}</b>&nbsp;
{% if not data.refresh %} OFF {% else %} <a href="?uuid={{data.task.uuid}}">OFF</a> {% endif %} |
{% if data.refresh == "3" %} 3s {% else %} <a href="?uuid={{data.task.uuid}}&refresh=3">3s</a> {% endif %} |
{% if data.refresh == "10" %} 10s{% else %} <a href="?uuid={{data.task.uuid}}}&refresh=10">10s</a> {% endif %} |
{% if data.refresh == "60" %} 60s{% else %} <a href="?uuid={{data.task.uuid}}}&refresh=60">60s</a> {% endif %}
{% if not data.refresh %} OFF {% else %} <a href="?uuid={{data.task.uuid}}">OFF</a> {% endif %} |
{% if data.refresh == "3" %} 3s {% else %} <a href="?uuid={{data.task.uuid}}&refresh=3">3s</a> {% endif %} |
{% if data.refresh == "10" %} 10s{% else %} <a href="?uuid={{data.task.uuid}}}&refresh=10">10s</a> {% endif %} |
{% if data.refresh == "60" %} 60s{% else %} <a href="?uuid={{data.task.uuid}}}&refresh=60">60s</a> {% endif %}
<pre id="output" style="border: 1px solid #a0a0a0; width: 100%; height: 500px; background-color:black; color:white; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: white-space: -o-pre-wrap; word-wrap: break-word;">{{ data.log }}</pre>
......@@ -29,7 +29,7 @@
<br/>
<br/>
<br/>
</div>
</div>
</div>
......@@ -47,3 +47,4 @@ jQuery( function(){