Merge branch '8784-dir-listings'
[arvados.git] / apps / workbench / app / assets / javascripts / add_group.js
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 $(document).on('shown.bs.modal', '#add-group-modal', function(event) {
6     // Disable the submit button on modal loading
7     $submit = $('#add-group-submit');
8     $submit.prop('disabled', true);
9
10     $('input[type=text]', event.target).val('');
11     $('#add-group-error', event.target).hide();
12 }).on('input propertychange', '#group_name_input', function(event) {
13     group_name = $(event.target).val();
14     $submit = $('#add-group-submit');
15     $submit.prop('disabled', (group_name === null || group_name === ""));
16 }).on('submit', '#add-group-form', function(event) {
17     var $form = $(event.target),
18     $submit = $(':submit', $form),
19     $error = $('#add-group-error', $form),
20     group_name = $('input[name="group_name_input"]', $form).val();
21
22     $submit.prop('disabled', true);
23
24     $error.hide();
25     $.ajax('/groups',
26            {method: 'POST',
27             dataType: 'json',
28             data: {group: {name: group_name, group_class: 'role'}},
29             context: $form}).
30         done(function(data, status, jqxhr) {
31             location.reload();
32         }).
33         fail(function(jqxhr, status, error) {
34             var errlist = jqxhr.responseJSON.errors;
35             var errmsg;
36             if (Array.isArray(errlist)) {
37                 errmsg = errlist.join();
38             } else {
39                 errmsg = ("The server returned an error when creating " +
40                           "this group (status " + jqxhr.status +
41                           ": " + errlist + ").");
42             }
43             $error.text(errmsg);
44             $error.show();
45             $submit.prop('disabled', false);
46         });
47     return false;
48 });