diff --git a/ogcp/forms/action_forms.py b/ogcp/forms/action_forms.py
index 0a9bd32..c15d254 100644
--- a/ogcp/forms/action_forms.py
+++ b/ogcp/forms/action_forms.py
@@ -100,9 +100,10 @@ class ImageRestoreForm(FlaskForm):
class RepoForm(FlaskForm):
server = HiddenField()
+ repo_id = HiddenField()
name = StringField(label=_l('Name'))
ip = StringField(label=_l('IP'))
- create = SubmitField(label=_l('Create'))
+ submit = SubmitField(label=_l('Submit'))
class ClientDetailsForm(FlaskForm):
server = HiddenField()
diff --git a/ogcp/static/js/ogcp.js b/ogcp/static/js/ogcp.js
index 5028993..0ac67fe 100644
--- a/ogcp/static/js/ogcp.js
+++ b/ogcp/static/js/ogcp.js
@@ -329,6 +329,23 @@ function checkImageServer() {
});
}
+function checkRepoServer() {
+ const repos = $('input:checkbox[form|="reposForm"][name!="repos-server"]')
+ repos.on('change', function() {
+ const selectedServer = $('#' + $.escapeSelector(this.dataset.server));
+ const serversSelector = 'input:checkbox[name|="repos-server"]';
+ const nonSelectedServers = $(serversSelector).not(selectedServer);
+
+ selectedServer.prop('checked', true);
+
+ nonSelectedServers.each(function() {
+ $(this).prop('checked', false);
+ const checkboxes = $('input:checkbox[data-server|="' + this.id + '"]');
+ checkboxes.prop('checked', false);
+ });
+ });
+}
+
function limitCheckboxes() {
const checkboxes = $('input:checkbox[form|="scopesForm"]');
diff --git a/ogcp/templates/actions/repos_details.html b/ogcp/templates/actions/repos_details.html
index 32b96bf..2768492 100644
--- a/ogcp/templates/actions/repos_details.html
+++ b/ogcp/templates/actions/repos_details.html
@@ -10,7 +10,8 @@
{{_('Repo details')}}
{{ wtf.quick_form(form,
+ action=url_for('repo_add_post'),
method='post',
- button_map={'create': 'primary'},
+ button_map={'submit': 'primary'},
extra_classes="mx-5") }}
{% endblock %}
diff --git a/ogcp/templates/repos.html b/ogcp/templates/repos.html
index 881057b..8477d29 100644
--- a/ogcp/templates/repos.html
+++ b/ogcp/templates/repos.html
@@ -17,8 +17,8 @@
{% set server_ip_port = repos["server"].ip ~ ":" ~ repos["server"].port %}
{% set repos_list = repos["json"]["repositories"] %}
-
+
{{ server_name }}
@@ -27,8 +27,9 @@
{% for r in repos_list %}
+ name="{{ r["name"]~_~r["id"] }}" />
{{ r["name"] }}
{% endfor %}
@@ -42,6 +43,7 @@
document.addEventListener('readystatechange', () => {
if (document.readyState === 'complete') {
keepReposTreeState()
+ checkRepoServer()
}
});
@@ -50,6 +52,8 @@
{% block commands %}
+
{% if btn_back %}