about summary refs log tree commit diff
path: root/wqflask/wqflask/templates/admin
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask/wqflask/templates/admin')
-rw-r--r--wqflask/wqflask/templates/admin/change_resource_owner.html116
-rw-r--r--wqflask/wqflask/templates/admin/create_group.html89
-rw-r--r--wqflask/wqflask/templates/admin/group_manager.html121
-rw-r--r--wqflask/wqflask/templates/admin/ind_user_manager.html2
-rw-r--r--wqflask/wqflask/templates/admin/manage_resource.html108
-rw-r--r--wqflask/wqflask/templates/admin/manage_user.html79
-rw-r--r--wqflask/wqflask/templates/admin/search_for_groups.html134
-rw-r--r--wqflask/wqflask/templates/admin/set_group_privileges.html102
-rw-r--r--wqflask/wqflask/templates/admin/view_group.html247
9 files changed, 947 insertions, 51 deletions
diff --git a/wqflask/wqflask/templates/admin/change_resource_owner.html b/wqflask/wqflask/templates/admin/change_resource_owner.html
new file mode 100644
index 00000000..ae9409b0
--- /dev/null
+++ b/wqflask/wqflask/templates/admin/change_resource_owner.html
@@ -0,0 +1,116 @@
+{% extends "base.html" %}
+{% block title %}Resource Manager{% endblock %}
+{% block css %}
+    <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
+    <link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
+{% endblock %}
+{% block content %}
+<!-- Start of body -->
+    <div class="container">
+        <div class="page-header">
+            <h1>Search for user to assign ownership to:</h1>
+        </div>
+        <form id="change_owner_form" action="/resources/change_owner" method="POST">
+            <input type="hidden" name="resource_id" value="{{ resource_id }}">
+            <div style="min-width: 600px; max-width: 800px;">
+                <fieldset>
+                    <div class="form-horizontal" style="width: 900px;">
+                        <div style="margin-bottom: 30px;">
+                            <h2>Search for user by either name or e-mail:</h2>
+                        </div>
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label for="user_name" class="col-xs-3" style="float: left; font-size: 18px;">User's Name:</label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                <input name="user_name" type="text" value="">
+                            </div>
+                        </div>
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label for="user_email" class="col-xs-3" style="float: left; font-size: 18px;">User's E-mail:</label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                <input name="user_email" type="text" value="">
+                            </div>
+                        </div>
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label class="col-xs-3" style="float: left; font-size: 18px;"></label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                <button type="button" id="find_users" class="btn btn-primary">Search</button>
+                                <button style="margin-left: 20px; display: none;" type="submit" id="submit_new_owner" class="btn btn-success">Assign Ownership to Selected User</button>
+                            </div>
+                        </div>
+                    </div>
+                </fieldset>
+                <hr>
+                <div id="user_results">
+                </div>
+            </div>
+        </form>
+    </div>
+
+<!-- End of body -->
+
+{% endblock %}
+
+{% block js %}
+    <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
+
+    <script language="javascript">
+        $('#find_users').click(function() {
+            $.ajax({
+                method: "POST",
+                url: "/search_for_users",
+                data: {
+                    user_name: $('input[name=user_name]').val(),
+                    user_email: $('input[name=user_email]').val()
+                },
+                success: populate_users
+            });
+        })
+
+        populate_users = function(json_user_list){
+            var user_list = JSON.parse(json_user_list)
+
+            var the_html = ""
+            if (user_list.length > 0){
+                the_html += "<table id='users_table' style='padding-top: 10px; width: 100%;' class='table-hover table-striped cell-border'>";
+                the_html += "<thead><tr><th></th><th>Index</th><th>Name</th><th>E-mail Address</th><th>Organization</th></tr></thead>";
+                the_html += "<tbody>";
+                for (_i = 0, _len = user_list.length; _i < _len; _i++) {
+                    this_user = user_list[_i]
+                    the_html += "<tr>";
+                    the_html += "<td align='center' class='select_user'><input type='radio' name='new_owner' value='" + this_user.user_id + "'></td>";
+                    the_html += "<td>" + (_i + 1).toString() + "</td>"
+                    if ("full_name" in this_user) {
+                        the_html += "<td>" + this_user.full_name + "</td>";
+                    } else {
+                        the_html += "<td>N/A</td>"
+                    }
+                    if ("email_address" in this_user) {
+                        the_html += "<td>" + this_user.email_address + "</td>";
+                    } else {
+                        the_html += "<td>N/A</td>"
+                    }
+                    if ("organization" in this_user) {
+                        the_html += "<td>" + this_user.organization + "</td>";
+                    } else {
+                        the_html += "<td>N/A</td>"
+                    }
+                    the_html += "</tr>"
+                }
+                the_html += "</tbody>";
+                the_html += "</table>";
+            } else {
+                the_html = "<span>No users were found matching the entered criteria.</span>"
+            }
+
+            $('#user_results').html(the_html)
+            if (user_list.length > 0){
+                $('#users_table').dataTable({
+                    'order': [[1, "asc" ]],
+                    'sDom': 'tr'
+                });
+                $('input[name=select_user]:eq(0)').prop("checked", true)
+                $('#submit_new_owner').css("display", "inline-block")
+            }
+        }
+    </script>
+{% endblock %}
diff --git a/wqflask/wqflask/templates/admin/create_group.html b/wqflask/wqflask/templates/admin/create_group.html
new file mode 100644
index 00000000..21ef5653
--- /dev/null
+++ b/wqflask/wqflask/templates/admin/create_group.html
@@ -0,0 +1,89 @@
+{% extends "base.html" %}
+{% block title %}Group Manager{% endblock %}
+{% block content %}
+<!-- Start of body -->
+    <div class="container">
+        <div class="page-header">
+            <h1>Create Group</h1>
+        </div>
+        <form action="/groups/create" method="POST">
+            <input type="hidden" name="admin_emails_to_add" value="">
+            <input type="hidden" name="member_emails_to_add" value="">
+            <fieldset>
+                <div class="form-horizontal" style="width: 900px; margin-bottom: 50px;">
+                    <div class="form-group" style="padding-left: 20px;">
+                        <label for="group_name" class="col-xs-3" style="float: left; font-size: 18px;">Group Name:</label>
+                        <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                            <div class="col-xs-12">
+                                <input name="group_name" type="text" style="width:100%;"></input>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="form-group" style="padding-left: 20px;">
+                        <label for="user_email" class="col-xs-3" style="float: left; font-size: 18px;">Add User Email:</label>
+                        <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                            <div class="col-xs-12">
+                                <input name="user_email" type="text" style="width:100%;"></input>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="form-group" style="padding-left: 20px;">
+                        <label class="col-xs-3"></label>
+                        <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                            <div class="col-xs-6">
+                                <button type="button" id="add_to_admins" class="btn btn-default">Add to Admins</button>
+                            </div>
+                            <div class="col-xs-6">
+                                <button type="button" id="add_to_members" class="btn btn-default">Add to Members</button>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="form-group" style="padding-left: 20px;">
+                        <label class="col-xs-3" style="font-size: 18px;">Members to be added:</label>
+                        <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                            <div class="col-xs-6">
+                                <textarea rows="8" cols="60" readonly placeholder="No users added" style="overflow-y: scroll; resize: none; width: 200px;" class="added_admins"></textarea>
+                            </div>
+                            <div class="col-xs-6">
+                                <textarea rows="8" cols="60" readonly placeholder="No users added" style="overflow-y: scroll; resize: none; width: 200px;" class="added_members"></textarea>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="form-group" style="padding-left: 20px;">
+                        <label class="col-xs-3"></label>
+                        <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                            <div class="col-xs-6">
+                                <button type="button" id="clear_admins" class="btn btn-default">Clear</button>
+                            </div>
+                            <div class="col-xs-6">
+                                <button type="button" id="clear_members" class="btn btn-default">Clear</button>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="form-group" style="padding-left: 20px;">
+                        <label for="create_group" class="col-xs-3" style="float: left; font-size: 18px;"></label>
+                        <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                            <div class="col-xs-6">
+                                <button type="submit" id="create_group" class="btn btn-primary">Create Group</button>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </fieldset>
+        </form>
+    </div>
+
+
+
+<!-- End of body -->
+
+{% endblock %}
+
+{% block js %}
+     <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.js') }}"></script>
+    <script language="javascript" type="text/javascript" src="/static/new/javascript/group_manager.js"></script>
+    <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='js_alt/underscore.min.js') }}"></script>
+
+    <script type="text/javascript" charset="utf-8">
+    </script>
+{% endblock %}
diff --git a/wqflask/wqflask/templates/admin/group_manager.html b/wqflask/wqflask/templates/admin/group_manager.html
index ac5c1350..c0b99e75 100644
--- a/wqflask/wqflask/templates/admin/group_manager.html
+++ b/wqflask/wqflask/templates/admin/group_manager.html
@@ -1,18 +1,36 @@
 {% extends "base.html" %}
 {% block title %}Group Manager{% endblock %}
+{% block css %}
+    <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
+     <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTablesExtensions/buttonStyles/css/buttons.dataTables.min.css') }}" />
+    <link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
+{% endblock %}
 {% block content %}
 <!-- Start of body -->
-     {{ header("List of groups", "" )}}
-
     <div class="container">
         <div class="page-header">
             <h1>Manage Groups</h1>
+            {% if admin_groups|length != 0 or member_groups|length != 0 %}
+            <div style="display: inline;">
+                <button type="button" id="create_group" class="btn btn-primary" data-url="/groups/create">Create Group</button>
+                <button type="button" id="remove_groups" class="btn btn-primary" data-url="/groups/remove">Remove Selected Groups</button>
+            </div>
+            {% endif %}
         </div>
-        <form action="/manage/groups" method="POST">
-            <div class="container" style="margin-bottom: 30px;">
-                <div><h3>Admin Groups</h3></div>
+        <form id="groups_form" action="/groups/manage" method="POST">
+            <input type="hidden" name="selected_group_ids" value="">
+            <div style="min-width: 800px; max-width: 1000px;">
+                {% if admin_groups|length == 0 and member_groups|length == 0 %}
+                <h4>You currently aren't a member or admin of any groups.</h4>
+                <br>
+                <button type="button" id="create_group" class="btn btn-primary" data-url="/groups/create">Create a new group</button>
+                {% else %}
+                <div style="margin-top: 20px;"><h2>Admin Groups</h2></div>
                 <hr>
-                <table id="admin_groups" class="table table-hover">
+                {% if admin_groups|length == 0 %}
+                <h4>You currently aren't the administrator of any groups.</h4>
+                {% else %}
+                <table id="admin_groups" class="table-hover table-striped cell-border" style="float: left;">
                     <thead>
                         <tr>
                             <th></th>
@@ -21,27 +39,33 @@
                             <th># Members</th>
                             <th>Created</th>
                             <th>Last Changed</th>
+                            <th>Group ID</th>
                         </tr>
                     </thead>
                     <tbody>
                         {% for group in admin_groups %}
                         <tr>
-                            <td><input type="checkbox" name="read" value="{{ group.id }}"></td>
-                            <td>{{ loop.index }}</td>
-                            <td>{{ group.name }}</td>
-                            <td>{{ group.admins|length + group.users|length }}</td>
+                            <td><input type="checkbox" name="group_id" value="{{ group.id }}"></td>
+                            <td align="right">{{ loop.index }}</td>
+                            <td><a href="/groups/view?id={{ group.id }}">{{ group.name }}</a></td>
+                            <td align="right">{{ group.admins|length + group.members|length }}</td>
                             <td>{{ group.created_timestamp }}</td>
                             <td>{{ group.changed_timestamp }}</td>
+                            <td>{{ group.id }}</td>
                         </tr>
                         {% endfor %}
                     </tbody>
                 </table>
+                {% endif %}
             </div>
             <hr>
-            <div class="container">
-                <div><h3>User Groups</h3></div>
+            <div style="min-width: 800px; max-width: 1000px;">
+                <div><h2>User Groups</h2></div>
                 <hr>
-                <table id="user_groups" class="table table-hover">
+                {% if member_groups|length == 0 %}
+                <h4>You currently aren't a member of any groups.</h4>
+                {% else %}
+                <table id="member_groups" class="table-hover table-striped cell-border" style="float: left;">
                     <thead>
                         <tr>
                             <th></th>
@@ -53,66 +77,63 @@
                         </tr>
                     </thead>
                     <tbody>
-                        {% for group in user_groups %}
+                        {% for group in member_groups %}
                         <tr>
                             <td><input type="checkbox" name="read" value="{{ group.id }}"></td>
                             <td>{{ loop.index }}</td>
                             <td>{{ group.name }}</td>
-                            <td>{{ group.admins|length + group.users|length }}</td>
+                            <td>{{ group.admins|length + group.members|length }}</td>
                             <td>{{ group.created_timestamp }}</td>
                             <td>{{ group.changed_timestamp }}</td>
                         </tr>
                         {% endfor %}
                     </tbody>
                 </table>
+                {% endif %}
+                {% endif %}
             </div>
         </form>
     </div>
 
-
-
 <!-- End of body -->
 
 {% endblock %}
 
 {% block js %}
-    <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
     <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
 
-    <script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
-
     <script type="text/javascript" charset="utf-8">
         $(document).ready( function () {
-            $('#admin_groups, #user_groups').dataTable( {
-                "drawCallback": function( settings ) {
-                     $('#admin_groups tr').click(function(event) {
-                         if (event.target.type !== 'checkbox') {
-                             $(':checkbox', this).trigger('click');
-                         }
-                     });
-                },
-                "columns": [
-                    { "type": "natural" },
-                    { "type": "natural" },
-                    { "type": "natural" },
-                    { "type": "natural" },
-                    { "type": "natural" },
-                    { "type": "natural" }
-                ],
-                "columnDefs": [ {
-                    "targets": 0,
-                    "orderable": false
-                } ],
-                "order": [[1, "asc" ]],
-                "sDom": "Ztr",
-                "iDisplayLength": -1,
-                "autoWidth": true,
-                "bDeferRender": true,
-                "bSortClasses": false,
-                "paging": false,
-                "orderClasses": true
-            } );
+            {% if admin_groups|length != 0 %}
+            $('#admin_groups').dataTable({
+                'sDom': 'tr'
+            });
+            {% endif %}
+            {% if member_groups|length != 0 %}
+            $('#member_groups').dataTable({
+                'sDom': 'tr'
+            });
+            {% endif %}
+            submit_special = function(url) {
+                $("#groups_form").attr("action", url);
+                return $("#groups_form").submit();
+            };
+
+            $("#create_group").on("click", function() {
+                url = $(this).data("url")
+                return submit_special(url)
+            });
+
+            $("#remove_groups").on("click", function() {
+                url = $(this).data("url")
+                groups = []
+                $("input[name=group_id]:checked").each(function() {
+                    groups.push($(this).val());
+                });
+                groups_string = groups.join(":")
+                $("input[name=selected_group_ids]").val(groups_string)
+                return submit_special(url)
+            });
         });
     </script>
 {% endblock %}
diff --git a/wqflask/wqflask/templates/admin/ind_user_manager.html b/wqflask/wqflask/templates/admin/ind_user_manager.html
index e859b442..b821e5d5 100644
--- a/wqflask/wqflask/templates/admin/ind_user_manager.html
+++ b/wqflask/wqflask/templates/admin/ind_user_manager.html
@@ -103,7 +103,7 @@
 
 {% block js %}
 
-    <script type="text/javascript" src="/static/packages/smart-time-ago/lib/timeago.js"></script>
+    <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='js_alt/timeago.min.js') }}"></script>
     <script>
         $('body').timeago();
     </script>
diff --git a/wqflask/wqflask/templates/admin/manage_resource.html b/wqflask/wqflask/templates/admin/manage_resource.html
new file mode 100644
index 00000000..33a37594
--- /dev/null
+++ b/wqflask/wqflask/templates/admin/manage_resource.html
@@ -0,0 +1,108 @@
+{% extends "base.html" %}
+{% block title %}Resource Manager{% endblock %}
+{% block css %}
+    <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
+    <link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
+{% endblock %}
+{% block content %}
+<!-- Start of body -->
+    <div class="container">
+        {{ flash_me() }}
+        <div class="page-header" style="display: inline-block;">
+            <h1>Resource Manager</h1>
+            <h3>{% if owner_name is not none %}Current Owner: {{ owner_name }}{% endif %} {% if admin_status == "owner" %}<button id="change_owner" class="btn btn-danger" data-url="/resources/change_owner" style="margin-left: 20px;">Change Owner</button>{% endif %}</h3>
+        </div>
+        <form id="manage_resource" action="/resources/manage" method="POST">
+            <input type="hidden" name="resource_id" value="{{ resource_id }}">
+            <div style="min-width: 600px; max-width: 800px;">
+                <fieldset>
+                    <div class="form-horizontal" style="width: 900px; margin-bottom: 50px;">
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label for="group_name" class="col-xs-3" style="float: left; font-size: 18px;">Resource Name:</label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                {{ resource_info.name }}
+                            </div>
+                        </div>
+                        {% if admin_status == "owner" %}
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label for="user_email" class="col-xs-3" style="float: left; font-size: 18px;">Open to Public:</label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                <label class="radio-inline">
+                                    <input type="radio" name="open_to_public" value="True" {% if default_mask != 'no-access' %}checked{% endif %}>
+                                    Yes
+                                </label>
+                                <label class="radio-inline">
+                                    <input type="radio" name="open_to_public" value="False" {% if default_mask == 'no-access' %}checked{% endif %}>
+                                    No
+                            </label>
+                            </div>
+                        </div>
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label class="col-xs-3" style="float: left; font-size: 18px;"></label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                <button id="save_changes" class="btn btn-primary" data-url="/resources/change_default_privileges">Save Changes</button>
+                            </div>
+                        </div>
+                        {% endif %}
+                    </div>
+                </fieldset>
+            </div>
+            {% if admin_status == "owner" or admin_status == "edit-admins" or admin_status == "edit-access" %}
+            <div style="min-width: 600px; max-width: 800px;">
+                <hr>
+                <button id="add_group_to_resource" class="btn btn-primary" style="margin-bottom: 30px;" data-url="/resources/add_group">Add Group</button>
+                <br>
+                {% if group_masks|length > 0 %}
+                <h2>Current Group Permissions</h2>
+                <hr>
+                <table id="groups_table" class="table-hover table-striped cell-border">
+                    <thead>
+                        <tr>
+                            <th>Name</th>
+                            <th>Data</th>
+                            <th>Metadata</th>
+                            <th>Admin</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        {% for key, value in group_masks.items() %}
+                        <tr>
+                            <td>{{ value.name }}</td>
+                            <td>{{ value.data }}</td>
+                            <td>{{ value.metadata }}</td>
+                            <td>{{ value.admin }}</td>
+                        </tr>
+                        {% endfor %}
+                    </tbody>
+                </table>
+                {% else %}
+                <h3>No groups are currently added to this resource.</h3>
+                {% endif %}
+            </div>
+            {% endif %}
+        </form>
+    </div>
+
+
+
+<!-- End of body -->
+
+{% endblock %}
+
+{% block js %}
+    <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
+
+    <script type="text/javascript" charset="utf-8">
+        $('#add_group_to_resource, #save_changes, #change_owner').click(function(){
+            url = $(this).data("url");
+            $('#manage_resource').attr("action", url)
+            $('#manage_resource').submit()
+        })
+
+        {% if group_masks|length > 0 %}
+        $('#groups_table').dataTable({
+            'sDom': 'tr',
+        });
+        {% endif %}
+    </script>
+{% endblock %}
diff --git a/wqflask/wqflask/templates/admin/manage_user.html b/wqflask/wqflask/templates/admin/manage_user.html
new file mode 100644
index 00000000..3ef90b90
--- /dev/null
+++ b/wqflask/wqflask/templates/admin/manage_user.html
@@ -0,0 +1,79 @@
+{% extends "base.html" %}

+{% block title %}View and Edit Group{% endblock %}

+{% block css %}

+    <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />

+     <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTablesExtensions/buttonStyles/css/buttons.dataTables.min.css') }}" />

+    <link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />

+{% endblock %}

+{% block content %}

+<!-- Start of body -->

+    <div class="container">

+        {% if 'full_name' in user_details %}

+        <div class="page-header">

+            <h1>User details for: {{ user_details.full_name }}</h1>

+        </div>

+        {% endif %}

+        <form id="user_form" action="/user/manage" method="POST">

+            <div class="row">

+                <div id="user_info_div" class="col-xs-8" style="margin-right: 30px; min-width: 800px; max-width: 1000px;">

+                    <div class="form-horizontal">

+                        <div class="form-group">

+                            <label for="email_address" style="text-align: left;" class="col-xs-2">Email Address:</label>

+                            <div style="margin-left: 20px; text-align: left;" class="col-xs-2 controls">

+                                <span id="email_address">{% if 'email_address' in user_details %}{{ user_details.email_address }}{% else %}N/A{% endif %}</span>

+                            </div>

+                        </div>

+                        <div class="form-group">

+                            <label for="full_name" style="text-align: left;" class="col-xs-2">User Name:</label>

+                            <div style="margin-left: 20px; text-align: left;" class="col-xs-2 controls">

+                                <span id="full_name" class="old_user_attribute">{% if 'full_name' in user_details %}{{ user_details.full_name }}{% else %}N/A{% endif %}</span>

+                                <input type="text" name="new_full_name" style="display: none; width: 500px;" class="form-control new_user_attribute" placeholder="{% if 'full_name' in user_details %}{{ user_details.full_name }}{% else %}N/A{% endif %}"> 

+                            </div>

+                        </div>

+                        <div class="form-group">

+                            <label for="organization" style="text-align: left;" class="col-xs-2">Organization:</label>

+                            <div style="margin-left: 20px; text-align: left;" class="col-xs-2 controls">

+                                <span id="organization" class="old_user_attribute">{% if 'organization' in user_details %}{{ user_details.organization }}{% else %}N/A{% endif %}</span>

+                                <input type="text" name="new_organization" style="display: none; width: 500px;" class="form-control new_user_attribute" placeholder="{% if 'organization' in user_details %}{{ user_details.organization }}{% else %}N/A{% endif %}"> 

+                            </div>

+                        </div>

+                        <div class="form-group">

+                            <label for="change_user_details" style="text-align: left;" class="col-xs-2"></label>

+                            <div style="margin-left: 20px; text-align: left;" class="col-xs-2 controls">

+                                <input type="button" id="change_user_details" value="Change Details">

+                                <input type="button" id="save_changes" value="Save Changes" style="display: none;">

+                            </div>

+                        </div>

+                    </div>

+                </div>

+            </div>

+        </form>

+    </div>

+

+<!-- End of body -->

+

+{% endblock %}

+

+{% block js %}

+    <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>

+

+    <script type="text/javascript" charset="utf-8">

+        $(document).ready( function () {

+            $('#change_user_details').click(function(){

+                $('.new_user_attribute').css("display", "inline-block");

+                $('.old_user_attribute').css("display", "none");

+                $('#change_user_details').css("display", "none");

+                $('#save_changes').css("display", "inline-block");

+            });

+

+            $('#save_changes').click(function(){

+                $('.new_user_attribute').each(function(){

+                    if ($(this).val() == ""){

+                        $(this).val($(this).attr("placeholder"))

+                    }

+                });

+                $('#user_form').submit();

+            });

+        });

+    </script>

+{% endblock %}

diff --git a/wqflask/wqflask/templates/admin/search_for_groups.html b/wqflask/wqflask/templates/admin/search_for_groups.html
new file mode 100644
index 00000000..0e1ec720
--- /dev/null
+++ b/wqflask/wqflask/templates/admin/search_for_groups.html
@@ -0,0 +1,134 @@
+{% extends "base.html" %}
+{% block title %}Resource Manager{% endblock %}
+{% block css %}
+    <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
+    <link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
+{% endblock %}
+{% block content %}
+<!-- Start of body -->
+    <div class="container">
+        <div class="page-header">
+            <h1>Find Groups</h1>
+        </div>
+        <form id="add_group" action="/resources/add_group" method="POST">
+            <input type="hidden" name="resource_id" value="{{ resource_id }}">
+            <div style="min-width: 600px; max-width: 800px;">
+                <fieldset>
+                    <div class="form-horizontal" style="width: 900px;">
+                        <div style="margin-bottom: 30px;">
+                            <h2>Search by:</h2>
+                        </div>
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label for="group_name" class="col-xs-3" style="float: left; font-size: 18px;">Group ID:</label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                <input name="group_id" type="text" value="">
+                            </div>
+                        </div>
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label for="group_name" class="col-xs-3" style="float: left; font-size: 18px;">Group Name:</label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                <input name="group_name" type="text" value="">
+                            </div>
+                        </div>
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label for="user_name" class="col-xs-3" style="float: left; font-size: 18px;">User Name:</label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                <input name="user_name" type="text" value="">
+                            </div>
+                        </div>
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label for="user_email" class="col-xs-3" style="float: left; font-size: 18px;">User E-mail:</label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                <input name="user_email" type="text" value="">
+                            </div>
+                        </div>
+                        <div class="form-group" style="padding-left: 20px;">
+                            <label class="col-xs-3" style="float: left; font-size: 18px;"></label>
+                            <div class="controls input-append col-xs-9" style="display: flex; padding-left: 20px; float: left;">
+                                <button type="button" id="find_groups" class="btn btn-primary">Search</button>
+                                <button style="margin-left: 20px; display: none;" type="submit" id="submit_group" class="btn btn-success">Add Privileges for Selected Group</button>
+                            </div>
+                        </div>
+                    </div>
+                </fieldset>
+                <hr>
+                <div id="group_results">
+                </div>
+            </div>
+        </form>
+    </div>
+
+<!-- End of body -->
+
+{% endblock %}
+
+{% block js %}
+     <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.js') }}"></script>
+    <script language="javascript" type="text/javascript" src="/static/new/javascript/group_manager.js"></script>
+    <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
+
+    <script type="text/javascript" charset="utf-8">
+
+        $('#find_groups').click(function() {
+            $.ajax({
+                method: "POST",
+                url: "/search_for_groups",
+                data: {
+                    group_id: $('input[name=group_id]').val(),
+                    group_name: $('input[name=group_name]').val(),
+                    user_name: $('input[name=user_name]').val(),
+                    user_email: $('input[name=user_email]').val()
+                },
+                success: populate_groups
+            });
+        })
+
+        populate_groups = function(json_group_list){
+            console.log(json_group_list)
+            var group_list = JSON.parse(json_group_list)
+
+            var the_html = ""
+            if (group_list.length > 0){
+                the_html += "<table id='groups_table' style='padding-top: 10px; width: 100%;' class='table-hover table-striped cell-border'>";
+                the_html += "<thead><tr><th></th><th>Index</th><th>Name</th><th># Admins</th><th># Members</th></tr></thead>";
+                the_html += "<tbody>";
+                for (_i = 0, _len = group_list.length; _i < _len; _i++) {
+                    this_group = group_list[_i]
+                    the_html += "<tr>";
+                    the_html += "<td align='center' class='select_group'><input type='radio' name='selected_group' value='" + this_group.id + "'></td>";
+                    the_html += "<td>" + (_i + 1).toString() + "</td>"
+                    if ("name" in this_group) {
+                        the_html += "<td>" + this_group.name + "</td>";
+                    } else {
+                        the_html += "<td>N/A</td>"
+                    }
+                    if ("admins" in this_group) {
+                        the_html += "<td>" + this_group.admins.length + "</td>";
+                    } else {
+                        the_html += "<td>0</td>"
+                    }
+                    if ("members" in this_group) {
+                        the_html += "<td>" + this_group.members.length + "</td>";
+                    } else {
+                        the_html += "<td>0</td>"
+                    }
+                    the_html += "</tr>"
+                }
+                the_html += "</tbody>";
+                the_html += "</table>";
+            } else {
+                the_html = "<span>No groups were found matching the entered criteria.</span>"
+            }
+
+            $('#group_results').html(the_html)
+            if (group_list.length > 0){
+                $('#groups_table').dataTable({
+                    'order': [[1, "asc" ]],
+                    'sDom': 'tr'
+                });
+                $('input[name=selected_group]:eq(0)').prop("checked", true)
+                $('#submit_group').css("display", "inline-block")
+            }
+        }
+    </script>
+{% endblock %}
diff --git a/wqflask/wqflask/templates/admin/set_group_privileges.html b/wqflask/wqflask/templates/admin/set_group_privileges.html
new file mode 100644
index 00000000..04842453
--- /dev/null
+++ b/wqflask/wqflask/templates/admin/set_group_privileges.html
@@ -0,0 +1,102 @@
+{% extends "base.html" %}
+{% block title %}Set Group Privileges{% endblock %}
+{% block css %}
+    <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
+     <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTablesExtensions/buttonStyles/css/buttons.dataTables.min.css') }}" />
+    <link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
+{% endblock %}
+{% block content %}
+<!-- Start of body -->
+    <div class="container">
+        <h1>Group Privileges</h1>
+        <br>
+        <form id="set_group_privileges" action="/resources/add_group" method="POST">
+            <input type="hidden" name="resource_id" value="{{ resource_id }}">
+            <input type="hidden" name="group_id" value="{{ group_id }}">
+            <div style="min-width: 600px; max-width: 800px;">
+                <button type="submit" class="btn btn-primary" style="margin-bottom: 10px;">Add Group</button>
+                <hr>
+                <h2>Data and Metadata Privileges</h2>
+                <table id="data_privileges_table" class="table-hover table-striped cell-border" style="float: left;">
+                    <thead>
+                        <tr>
+                            <th></th>
+                            <th>No-Access</th>
+                            <th>View</th>
+                            <th>Edit</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        <tr>
+                            <td>Data:</td>
+                            {% if 'data' in default_privileges %}
+                            <td align="center" style="padding: 0px;"><input type="radio" name="data_privilege" VALUE="no-access" {% if default_privileges.data == "no-access" %}checked{% endif %}></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="data_privilege" VALUE="view" {% if default_privileges.data == "view" %}checked{% endif %}></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="data_privilege" VALUE="edit" {% if default_privileges.data == "edit" %}checked{% endif %}></td>
+                            {% else %}
+                            <td align="center" style="padding: 0px;"><input type="radio" name="data_privilege" VALUE="no-access" checked></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="data_privilege" VALUE="view"></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="data_privilege" VALUE="edit"></td>
+                            {% endif %}
+                        </tr>
+                        <tr>
+                            <td>Metadata:</td>
+                            {% if 'metadata' in default_privileges %}
+                            <td align="center" style="padding: 0px;"><input type="radio" name="metadata_privilege" VALUE="no-access" {% if default_privileges.metadata == "no-access" %}checked{% endif %}></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="metadata_privilege" VALUE="view" {% if default_privileges.metadata == "view" %}checked{% endif %}></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="metadata_privilege" VALUE="edit" {% if default_privileges.metadata[-1] == "edit" %}checked{% endif %}></td>
+                            {% else %}
+                            <td align="center" style="padding: 0px;"><input type="radio" name="metadata_privilege" VALUE="no-access" checked></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="metadata_privilege" VALUE="view"></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="metadata_privilege" VALUE="edit"></td>
+                            {% endif %}
+                        </tr>
+                    </tbody>
+                </table>
+                <hr>
+                <h2>Admin Privileges</h2>
+                <table id="admin_privileges_table" class="table-hover table-striped cell-border" style="float: left;">
+                    <thead>
+                        <tr>
+                            <th></th>
+                            <th>Not Admin</th>
+                            <th>Edit Access</th>
+                            <th>Edit Admins</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        <tr>
+                            <td>Admin:</td>
+                            {% if 'admin' in default_privileges %}
+                            <td align="center" style="padding: 0px;"><input type="radio" name="admin_privilege" VALUE="not-admin" {% if default_privileges.admin == "not-admin" %}checked{% endif %}></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="admin_privilege" VALUE="edit-access" {% if default_privileges.admin == "edit-access" %}checked{% endif %}></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="admin_privilege" VALUE="edit-admins" {% if default_privileges.admin == "edit-admins" %}checked{% endif %}></td>
+                            {% else %}
+                            <td align="center" style="padding: 0px;"><input type="radio" name="admin_privilege" VALUE="not-admin" checked></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="admin_privilege" VALUE="edit-access"></td>
+                            <td align="center" style="padding: 0px;"><input type="radio" name="admin_privilege" VALUE="edit-admins"></td>
+                            {% endif %}
+                        </tr>
+                    </tbody>
+                </table>
+            </div>
+        </form>
+    </div>
+
+<!-- End of body -->
+
+{% endblock %}
+
+{% block js %}
+    <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
+    <script>
+        $('#data_privileges_table').dataTable({
+            'sDom': 'tr',
+            'bSort': false
+        });
+        $('#admin_privileges_table').dataTable({
+            'sDom': 'tr',
+            'bSort': false
+        });
+    </script>
+{% endblock %}
diff --git a/wqflask/wqflask/templates/admin/view_group.html b/wqflask/wqflask/templates/admin/view_group.html
new file mode 100644
index 00000000..26692fe8
--- /dev/null
+++ b/wqflask/wqflask/templates/admin/view_group.html
@@ -0,0 +1,247 @@
+{% extends "base.html" %}
+{% block title %}View and Edit Group{% endblock %}
+{% block css %}
+    <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
+     <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTablesExtensions/buttonStyles/css/buttons.dataTables.min.css') }}" />
+    <link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
+{% endblock %}
+{% block content %}
+<!-- Start of body -->
+    <div class="container">
+        <div class="page-header">
+            <h1>
+                <span id="group_name">{{ group_info.name }}</span>
+                <input type="text" name="new_group_name" style="font-size: 20px; display: none; width: 500px;" class="form-control" placeholder="{{ group_info.name }}"> 
+                <button class="btn btn-default" style="display: inline;" id="change_group_name">Change Group Name</button>
+            </h1>
+            {% if user_is_admin == true %}
+            <div style="display: inline;">
+                <button type="button" id="remove_users" class="btn btn-danger" data-url="/groups/remove_users">Remove Selected Users from Group</button>
+            </div>
+            {% endif %}
+        </div>
+        <form id="group_form" action="/groups/view" method="POST">
+            <input type="hidden" name="group_id" value="{{ group_info.id }}">
+            <input type="hidden" name="selected_admin_ids" value="">
+            <input type="hidden" name="selected_member_ids" value="">
+            <div class="row">
+            <div id="groups_div" class="col-xs-6" style="margin-right: 30px; min-width: 600px; max-width: 800px;">
+                <div>
+                    <div style="margin-top: 20px;"><h2>Admins</h2></div>
+                    <hr>
+                    <table id="group_admins" class="table-hover table-striped cell-border" style="float: left;">
+                        <thead>
+                            <tr>
+                                <th></th>
+                                <th>Index</th>
+                                <th>Name</th>
+                                <th>Email Address</th>
+                                <th>Organization</th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            {% for admin in admins %}
+                            <tr>
+                                <td style="text-align: center; padding: 0px 10px 2px 10px;"><input type="checkbox" name="admin_id" value="{{ admin.user_id }}"></td>
+                                <td align="right">{{ loop.index }}</td>
+                                <td>{% if 'full_name' in admin %}{{ admin.full_name }}{% elif 'name' in admin %}{{ admin.name }}{% else %}N/A{% endif %}</td>
+                                <td>{% if 'email_address' in admin %}{{ admin.email_address }}{% else %}N/A{% endif %}</td>
+                                <td>{% if 'organization' in admin %}{{ admin.organization }}{% else %}N/A{% endif %}</td>
+                            </tr>
+                            {% endfor %}
+                        </tbody>
+                    </table>
+                    {% if user_is_admin == true %}
+                    <div style="margin-top: 20px;">
+                            <span>E-mail of user to add to admins (multiple e-mails can be added separated by commas):</span>
+                            <input type="text" size="60" name="admin_emails_to_add" placeholder="Enter E-mail(s)" value="">
+                    </div>
+                    <div style="margin-bottom: 30px; margin-top: 20px;">
+                        <button type="button" id="add_admins" class="btn btn-primary" data-usertype="admin" data-url="/groups/add_admins">Add Admin(s)</button>
+                    </div>
+                    {% endif %}
+                </div>
+                <hr>
+                <div>
+                    {% if members|length > 0 %}
+                    <div><h2>Members</h2></div>
+                    <hr>
+                    <table id="group_members" class="table-hover table-striped cell-border" style="float: left;">
+                        <thead>
+                            <tr>
+                                <th></th>
+                                <th>Index</th>
+                                <th>Name</th>
+                                <th>Email Address</th>
+                                <th>Organization</th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            {% for member in members %}
+                            <tr>
+                                <td style="text-align: center; padding: 0px 10px 2px 10px;"><input type="checkbox" name="member_id" value="{{ member.user_id }}"></td>
+                                <td align="right">{{ loop.index }}</td>
+                                <td>{% if 'full_name' in member %}{{ member.full_name }}{% elif 'name' in admin %}{{ admin.name }}{% else %}N/A{% endif %}</td>
+                                <td>{% if 'email_address' in member %}{{ member.email_address }}{% else %}N/A{% endif %}</td>
+                                <td>{% if 'organization' in member %}{{ member.organization }}{% else %}N/A{% endif %}</td>
+                            </tr>
+                            {% endfor %}
+                        </tbody>
+                    </table>
+                    {% if user_is_admin == true %}
+                    <div style="margin-top: 20px;">
+                            <span>E-mail of user to add to members (multiple e-mails can be added separated by commas):</span>
+                            <input type="text" size="60" name="member_emails_to_add" placeholder="Enter E-mail(s)" value="">
+                    </div>
+                    <div style="margin-bottom: 30px; margin-top: 20px;">
+                        <button type="button" id="add_members" class="btn btn-primary" data-usertype="member" data-url="/groups/add_members">Add Member(s)</button>
+                    </div>
+                    {% endif %}
+                    {% else %}
+                    There are currently no members in this group.
+                    {% if user_is_admin == true %}
+                    <div style="margin-top: 20px;">
+                            <span>E-mail of user to add to members (multiple e-mails can be added separated by commas):</span>
+                            <input type="text" size="60" name="member_emails_to_add" placeholder="Enter E-mail(s)" value="">
+                    </div>
+                    <div style="margin-bottom: 30px; margin-top: 20px;">
+                        <button type="button" id="add_members" class="btn btn-primary" data-usertype="member" data-url="/groups/add_members">Add Member(s)</button>
+                    </div>
+                    {% endif %}
+                    {% endif %}
+                </div>
+            </div>
+            <div id="resources_div" class="col-xs-6" style="border-left: 1px solid #eee; margin-right: 30px; min-width: 600px; max-width: 800px;">
+                <div style="margin-top: 20px;"><h2>Resources</h2></div>
+                <hr>
+                {% if resources|length > 0 %}
+                <table id="resources" class="table-hover table-striped cell-border" style="float: left;">
+                    <thead>
+                        <tr>
+                            <th>Index</th>
+                            <th>Name</th>
+                            <th>Data</th>
+                            <th>Metadata</th>
+                            <th>Admin</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        {% for resource in resources %}
+                        <tr>
+                            <td align="right">{{ loop.index }}</td>
+                            <td>{% if 'name' in resource %}<a href="/resources/manage?resource_id={{ resource.id }}">{{ resource.name }}</a>{% else %}N/A{% endif %}</td>
+                            <td>{% if 'data' in resource %}{{ resource.data }}{% else %}N/A{% endif %}</td>
+                            <td>{% if 'metadata' in resource %}{{ resource.metadata }}{% else %}N/A{% endif %}</td>
+                            <td>{% if 'admin' in resource %}{{ resource.admin }}{% else %}N/A{% endif %}</td>
+                        </tr>
+                        {% endfor %}
+                    </tbody>
+                </table>
+                {% else %}
+                There are currently no resources associated with this group.
+                {% endif %}
+            </div>
+            </div>
+        </form>
+    </div>
+
+<!-- End of body -->
+
+{% endblock %}
+
+{% block js %}
+    <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
+
+    <script type="text/javascript" charset="utf-8">
+        $(document).ready( function () {
+            $('#group_admins').dataTable({
+                'order': [[1, "asc" ]],
+                'columns': [
+                    { "type": "natural", "width": "25px"},
+                    { "type": "natural", "width": "30px" },
+                    { "type": "natural", "width": "150px" },
+                    { "type": "natural" },
+                    { "type": "natural" }
+                ],
+                'sDom': 'tr'
+            });
+            {% if members|length > 0 %}
+            $('#group_members').dataTable({
+                'order': [[1, "asc" ]],
+                'columns': [
+                    { "type": "natural", "width": "25px"},
+                    { "type": "natural", "width": "30px" },
+                    { "type": "natural", "width": "150px" },
+                    { "type": "natural" },
+                    { "type": "natural" }
+                ],
+                'sDom': 'tr'
+            });
+            {% endif %}
+            {% if resources|length > 0 %}
+            $('#resources').dataTable({
+                'order': [[0, "asc" ]],
+                'columns': [
+                    { "type": "natural", "width": "30px" },
+                    { "type": "natural", "width": "150px" },
+                    { "type": "natural" },
+                    { "type": "natural" },
+                    { "type": "natural" }
+                ],
+                'sDom': 'tr'
+            });
+            {% endif %}
+
+            $('#resources_div').css('height', $('#groups_div').css('height'))
+
+            submit_special = function(url) {
+                $("#group_form").attr("action", url);
+                return $("#group_form").submit();
+            };
+
+            $("#remove_users").on("click", function() {
+                url = $(this).data("url");
+                admins = [];
+                $("input[name=admin_id]:checked").each(function() {
+                    admins.push($(this).val());
+                });
+                admins_string = admins.join(":")
+                $("input[name=selected_admin_ids]").val(admins_string)
+
+                members = [];
+                $("input[name=member_id]:checked").each(function() {
+                    members.push($(this).val());
+                });
+                members_string = members.join(":")
+                $("input[name=selected_member_ids]").val(members_string)
+                return submit_special(url)
+            });
+
+            $("#add_admins, #add_members").on("click", function() {
+                url = $(this).data("url");
+                return submit_special(url)
+            });
+
+            $("#change_group_name").on("click", function() {
+                if ($('input[name=new_group_name]').css('display') == 'none') {
+                    $('input[name=new_group_name]').css('display', 'inline');
+                    $('#group_name').css('display', 'none');
+                } else {
+                    new_name = $('input[name=new_group_name]').val()
+                    $.ajax({
+                        type: "POST",
+                        url: "/groups/change_name",
+                        data: {
+                            group_id: $('input[name=group_id]').val(),
+                            new_name: new_name
+                        }
+                    });
+                    $('input[name=new_group_name]').css('display', 'none');
+                    $('input[name=group_name]').val(new_name);
+                    $('#group_name').text(new_name)
+                    $('#group_name').css('display', 'inline');
+                }
+            });
+        });
+    </script>
+{% endblock %}