diff --git a/projecthandler/template/project/osm/osm_project_left_sidebar.html b/projecthandler/template/project/osm/osm_project_left_sidebar.html
index 7067ca7..7259834 100644
--- a/projecthandler/template/project/osm/osm_project_left_sidebar.html
+++ b/projecthandler/template/project/osm/osm_project_left_sidebar.html
@@ -107,18 +107,27 @@
             </li>
             {% if user.is_admin %}
                 <li class="header">ADMIN</li>
-                {% url "users:list"   as  user_list_url %}
-                <li {% if request.get_full_path == user_list_url %} class="active" {% endif %}>
-                <a href='{% url "users:list"   %}'>
-                    <i class="fas fa-users"></i> <span>Users</span>
-                </a>
-                </li>
                 {% url "projects:projects_list"   as  proj_list_url %}
                 <li {% if request.get_full_path == proj_list_url %} class="active" {% endif %}>
                 <a href='{% url "projects:projects_list"   %}'>
                     <i class="fas fa-folder"></i> <span>Projects</span>
                 </a>
                 </li>
+                {% url "users:list"   as  user_list_url %}
+                <li {% if request.get_full_path == user_list_url %} class="active" {% endif %}>
+                <a href='{% url "users:list"   %}'>
+                    <i class="fas fa-users"></i> <span>Users</span>
+                </a>
+                </li>
+                {%comment%}
+                {% url "roles:list"   as  role_list_url %}
+                <li {% if request.get_full_path == role_list_url %} class="active" {% endif %}>
+                <a href='{% url "roles:list"   %}'>
+                    <i class="fas fa-user-tag"></i> <span>Roles</span>
+                </a>
+                </li>
+                {%endcomment%}
+                
             {% endif %}
         </ul>
     </section>
diff --git a/projecthandler/template/project/projectlist.html b/projecthandler/template/project/projectlist.html
index 28888fc..62282ad 100644
--- a/projecthandler/template/project/projectlist.html
+++ b/projecthandler/template/project/projectlist.html
@@ -67,8 +67,9 @@
     <script src="/static/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
 
     <script>
-   $(document).ready( function () {
-        var table = $('#projects_table').DataTable({
+        var table;
+    $(document).ready( function () {
+        table = $('#projects_table').DataTable({
             responsive: true,
             "ajax": {
                 "url": "/projects/list",
@@ -163,7 +164,7 @@
                         title: "Result",
                         message: "Project deleted.",
                         callback: function () {
-                            location.reload();
+                            table.ajax.reload();
                         }
                     });
                 }).fail(function(result){
@@ -200,7 +201,43 @@
                         title: "Result",
                         message: "Project created.",
                     callback: function () {
-                        location.reload();
+                        table.ajax.reload();
+                        $('#modal_new_project').modal('hide');
+                    }
+                    });
+            }).fail(function(result){
+                var data  = result.responseJSON;
+                var title = "Error " + (data.code ? data.code: 'unknown');
+                    var message = data.detail ? data.detail: 'No detail available.';
+                    bootbox.alert({
+                        title: title,
+                        message: message
+                    });
+            });
+        });
+    
+        $("#formEditProject").submit(function(event){
+            event.preventDefault(); //prevent default action
+            var post_url = $(this).attr("action"); //get form action url
+            var request_method = $(this).attr("method"); //get form GET/POST method
+            var form_data = new FormData(this); //Encode form elements for submission
+            console.log(post_url);
+            $.ajax({
+                url: post_url,
+                type: request_method,
+                data: form_data,
+                headers: {
+                    "Accept": 'application/json'
+                },
+                contentType: false,
+                processData: false
+            }).done(function (response,textStatus, jqXHR) {
+                bootbox.alert({
+                        title: "Result",
+                        message: "Project updated.",
+                    callback: function () {
+                        table.ajax.reload();
+                        $('#modal_edit_project').modal('hide');
                     }
                     });
             }).fail(function(result){
