Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/JobController.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/JobController.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/JobController.cs	(revision 13847)
@@ -30,5 +30,7 @@
         private Guid userId;
 
+
         private JobViewModel vm;
+        private UploadedJobViewModel upper;
         private IHostingEnvironment _environment;
 
@@ -38,5 +40,5 @@
         {
             weblog = WebLoginService.Instance;
-            vm = new JobViewModel();
+            
             _environment = env;
         }
@@ -48,4 +50,5 @@
         {
             var u = HttpContext.Session.GetString("UserId");
+            
             if (u == null || u == "" || Guid.Parse(u) == Guid.Empty)
             {
@@ -55,7 +58,11 @@
             {
                 userId = Guid.Parse(u);
+                vm = new JobViewModel(weblog.getCurrentUser(userId));
+                upper = new UploadedJobViewModel(weblog.getCurrentUser(userId));
+
                 serviceLocator = weblog.getServiceLocator(userId);
                 serviceClient = serviceLocator.getHiveServiceClient();
                 clientWeb = weblog.getClientWeb(userId);
+                
                 return serviceLocator.CheckLogin();
             }
@@ -149,5 +156,4 @@
             if (init())
             {
-                UploadedJobViewModel upper = new UploadedJobViewModel();
                 fillUploadsPaths(upper, -1);
                 ViewBag.Name = serviceClient.ClientCredentials.UserName.UserName;
@@ -172,5 +178,4 @@
             if (init())
             {
-                UploadedJobViewModel upper = new UploadedJobViewModel();
                 fillUploadsPaths(upper, index);
                 if (index != -1)
@@ -188,4 +193,51 @@
             }
         }
+        [HttpPost]
+        public IActionResult changeDirName(string olddir, string dirname)
+        {
+            if (init())
+            {
+                fillUploadsPaths(upper, -1);
+                var ind = upper.DisplayDatePaths.IndexOf(olddir);
+                try { 
+                
+                
+                var start = Path.Combine(_environment.WebRootPath, "uploads", serviceClient.ClientCredentials.UserName.UserName, dirname);
+                    if (Directory.Exists(start))
+                    {
+                        var files = Directory.GetFiles(upper.FullDatePaths[ind]);
+                        foreach(var f in files) {
+                            var target = start + "\\" + f.Split('\\').Last();
+                            if (System.IO.File.Exists(target))
+                                System.IO.File.Delete(target);
+                            System.IO.File.Move(f, target);
+                                }
+                    }
+                    else
+                    {
+                        Directory.Move(upper.FullDatePaths[ind], start);
+                    }
+                
+                upper.clear();
+                fillUploadsPaths(upper, -1);
+                ind = upper.DisplayDatePaths.IndexOf(dirname);
+                upper.clear();
+                return RedirectToAction("UploadDir",new { index=ind});
+                }catch(IOException e)
+                {
+                    upper.clear();
+                    fillUploadsPaths(upper, ind);
+                    upper.message = "Error in new directory name. Try again and don't use any special signs";
+                    ViewBag.Title = "Error renaming - "+ upper.DisplayDatePaths[ind] + " - Uploads";
+                    if (weblog.getFileOpener(userId).Job != null)
+                        ViewBag.active = true;
+                    return View("Uploads", upper);
+                }
+            }
+            else
+            {
+                return RedirectToAction("Index", "Home");
+            }
+        }
         /// <summary>
         /// Loads all the paths from the selected uploads folder
@@ -195,6 +247,15 @@
         private void fillUploadsPaths(UploadedJobViewModel vm, int index)
         {
+            
             var tempdex = index; //Fix when maps gets deleted
             var start = Path.Combine(_environment.WebRootPath, "uploads", serviceClient.ClientCredentials.UserName.UserName);
+            try
+            {
+                Directory.GetDirectories(start);
+            }
+            catch(DirectoryNotFoundException e)
+            {
+                Directory.CreateDirectory(start);
+            }
             var dirs = Directory.GetDirectories(start);
             foreach (string dir in dirs)
@@ -234,10 +295,9 @@
             if (init())
             {
-                UploadedJobViewModel upper = new UploadedJobViewModel();
                 fillUploadsPaths(upper, index);
                 System.IO.File.Delete(upper.FullFilesPaths[filedex]);
                 var message = upper.DisplayFilesPaths[filedex] + " has been deleted";
 
-                upper = new UploadedJobViewModel();
+                upper = new UploadedJobViewModel(weblog.getCurrentUser(userId));
                 fillUploadsPaths(upper, index);
                 upper.message = message;
@@ -264,5 +324,4 @@
             if (init())
             {
-                UploadedJobViewModel upper = new UploadedJobViewModel();
                 fillUploadsPaths(upper, index);
 
@@ -270,5 +329,5 @@
                 serve.NewModel();
                 serve.env = _environment;
-
+                serve.vm.directories = upper.DisplayDatePaths;
                 var ioptimizer = ContentManager.Load(upper.FullFilesPaths[filedex]);
 
@@ -306,4 +365,6 @@
             {
                 var serve = weblog.getFileOpener(userId);
+                fillUploadsPaths(upper, -1);
+                serve.vm.directories = upper.DisplayDatePaths;
                 ViewBag.JobsCount = serve.Job.Job.JobCount;
                 ViewBag.Title = serve.vm.SelectedTask.ItemTask.Name + " - Uploads";
@@ -339,10 +400,12 @@
         }
         [HttpPost]
-        public IActionResult saveToFile(string fname)
-        {
-            if (init())
-            {
-                weblog.getFileOpener(userId).SaveToFile(fname);
-                return RedirectToAction("Uploads", "Job");
+        public IActionResult saveToFile(string fname, string dname)
+        {
+            if (init())
+            {
+                weblog.getFileOpener(userId).SaveToFile(fname, dname);
+                fillUploadsPaths(upper, -1);
+                var ind = upper.DisplayDatePaths.IndexOf(dname);
+                return RedirectToAction("UploadDir", new { index = ind});
             }
             else
@@ -356,5 +419,4 @@
             if (init())
             {
-                UploadedJobViewModel upper = new UploadedJobViewModel();
                 fillUploadsPaths(upper, index);
 
@@ -385,5 +447,4 @@
             if (init())
             {
-                UploadedJobViewModel upper = new UploadedJobViewModel();
                 var uploads = Path.Combine(_environment.WebRootPath, "uploads", serviceClient.ClientCredentials.UserName.UserName,
                     directory);
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/ResourceController.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/ResourceController.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/ResourceController.cs	(revision 13847)
@@ -1,4 +1,5 @@
 ﻿using HeuristicLab.Clients.Access;
 using HeuristicLab.Clients.Access.Administration;
+using HeuristicLab.Clients.Hive.WebJobManager.Models;
 using HeuristicLab.Clients.Hive.WebJobManager.Services;
 using Microsoft.AspNet.Hosting;
@@ -24,4 +25,5 @@
         private HiveAdminClientWeb adminClient;
         private Guid userId;
+        private HiveWebUser currentUser;
 
         private IHostingEnvironment _environment;
@@ -49,6 +51,9 @@
                 adminClient = weblog.getAdminClient(userId);
                 accessClient = weblog.getAccessAdminClient(userId);
-                return serviceLocator.CheckLogin();
-
+                currentUser = weblog.getCurrentUser(userId);
+                if (currentUser.hasResourceAdminAccess())
+                    return serviceLocator.CheckLogin();
+                else
+                    return false;
             }
         }
@@ -64,9 +69,9 @@
                 ViewBag.SessionId = HttpContext.Session.GetString("UserId");
                 ViewBag.Title = "Resources";
-                return View("Index");
-            }
-            else
-            {
-                return RedirectToAction("Index", "Home");
+                return View("Index", currentUser);
+            }
+            else
+            {
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -116,5 +121,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -164,5 +169,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -195,5 +200,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -237,5 +242,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs	(revision 13847)
@@ -24,4 +24,5 @@
         private Guid userId;
 
+        private UserViewModel vm;
         private IHostingEnvironment _environment;
 
@@ -47,5 +48,9 @@
                 serviceLocator = weblog.getServiceLocator(userId);
                 accessClient = weblog.getAccessAdminClient(userId);
-                return serviceLocator.CheckLogin();
+                vm = new UserViewModel(accessClient, weblog.getCurrentUser(userId));
+                if (weblog.getCurrentUser(userId).HasUserAdminAccess())
+                    return serviceLocator.CheckLogin();
+                else
+                    return false;
                  
             }
@@ -61,5 +66,5 @@
             {
                 ViewBag.Title = "Users";
-                UserViewModel vm = new UserViewModel(accessClient).refreshAll() ;
+                vm.refreshAll() ;
                 //Refreshall for users, groups and roles 
                 ViewBag.SessionId = HttpContext.Session.GetString("UserId");
@@ -68,5 +73,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -78,5 +83,5 @@
                 Guid curr = Guid.Parse(id);
 
-                UserViewModel vm = new UserViewModel(accessClient).refreshAll();
+                vm.refreshAll();
                 if (curr == Guid.Empty)
                 {//new user
@@ -97,5 +102,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -162,5 +167,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
 
@@ -199,5 +204,5 @@
                 Guid curr = Guid.Parse(id);
 
-                UserViewModel vm = new UserViewModel(accessClient).refreshAll();
+                vm.refreshAll();
                 
                     var us = vm.getUserById(curr);
@@ -209,5 +214,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -222,5 +227,5 @@
             {
                 var uid = Guid.Parse(id);
-                UserViewModel vm = new UserViewModel(accessClient).refreshUsers();
+                vm.refreshUsers();
 
                 if (uid == Guid.Empty)
@@ -241,5 +246,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
 
@@ -256,5 +261,5 @@
             {
                 var uid = Guid.Parse(id);
-                UserViewModel vm = new UserViewModel(accessClient).refreshAll();
+                vm.refreshAll();
 
                 var user = vm.getUserById(uid);
@@ -266,5 +271,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -281,5 +286,5 @@
                 var gid = Guid.Parse(group);
                 var mid = Guid.Parse(id);
-                UserViewModel vm = new UserViewModel(accessClient).refreshGroups().refreshUsers();
+                vm.refreshGroups().refreshUsers();
 
                 var user = vm.getUserById(mid);
@@ -291,5 +296,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
 
@@ -308,10 +313,10 @@
 
                 ViewBag.Title = "Groups";
-                UserViewModel vm = new UserViewModel(accessClient).refreshGroups().refreshUsers();
+                vm.refreshGroups().refreshUsers();
                 return View("Groups", vm);
             }
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -327,5 +332,5 @@
                 Guid curr = Guid.Parse(id);
 
-                UserViewModel vm = new UserViewModel(accessClient)
+                vm
                     .refreshGroups()
                     .refreshUsers();
@@ -345,5 +350,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -362,5 +367,5 @@
             {
                 var uid = Guid.Parse(u);
-                var vm = new UserViewModel(accessClient).refreshGroups().refreshUsers();
+                vm.refreshGroups().refreshUsers();
 
                 Access.UserGroup group;
@@ -403,5 +408,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -416,5 +421,5 @@
             {
                 var uid = Guid.Parse(id);
-                UserViewModel vm = new UserViewModel(accessClient).refreshGroups();
+                vm.refreshGroups();
 
                 if (uid == Guid.Empty)
@@ -434,5 +439,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
 
@@ -450,5 +455,5 @@
                 var gid = Guid.Parse(g);
                 var mid = Guid.Parse(m);
-                UserViewModel vm = new UserViewModel(accessClient).refreshGroups().refreshUsers();
+                vm.refreshGroups().refreshUsers();
 
                 if (gid == Guid.Empty || mid == Guid.Empty)
@@ -473,5 +478,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
 
@@ -490,5 +495,5 @@
 
                 ViewBag.Title = "Roles";
-                UserViewModel vm = new UserViewModel(accessClient).refreshRoles();
+                vm.refreshRoles();
 
                 return View("Roles", vm);
@@ -496,5 +501,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -509,5 +514,5 @@
             {
 
-                UserViewModel vm = new UserViewModel(accessClient).refreshRoles();
+                vm.refreshRoles();
                 if (name == "" || name == null)
                 {//Add role
@@ -526,5 +531,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -552,5 +557,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -569,5 +574,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
@@ -583,5 +588,5 @@
             {
                 var uid = Guid.Parse(id);
-                UserViewModel vm = new UserViewModel(accessClient).refreshAll();
+                vm.refreshAll();
 
                 var user = vm.getUserById(uid);
@@ -593,5 +598,5 @@
             else
             {
-                return RedirectToAction("Index", "Home");
+                return RedirectToAction("Index", "Job");
             }
         }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/CalendarHub.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/CalendarHub.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/CalendarHub.cs	(revision 13847)
@@ -48,5 +48,5 @@
             loader();
             adminClient.Refresh();
-            UserViewModel vm = new UserViewModel(accessClient).refreshAll();
+            UserViewModel vm = new UserViewModel(accessClient, weblog.getCurrentUser(userId)).refreshAll();
 
             var users = JsonConvert.SerializeObject(vm.users);
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/UserInfoHub.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/UserInfoHub.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/UserInfoHub.cs	(revision 13847)
@@ -44,5 +44,5 @@
             loader();
             Guid userid = Guid.Parse(user);
-            Access.User u = new UserViewModel(aac).refreshUsers().getUserById(userid);
+            Access.User u = new UserViewModel(aac, weblog.getCurrentUser(userId)).refreshUsers().getUserById(userid);
             var pass = aac.resetPassword(userid);
             UserController.sendPassmail(u, pass);//Send mail + show pass            
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Models/HiveWebUser.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Models/HiveWebUser.cs	(revision 13847)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Models/HiveWebUser.cs	(revision 13847)
@@ -0,0 +1,69 @@
+﻿using HeuristicLab.Clients.Access;
+using HeuristicLab.Clients.Hive.WebJobManager.Services;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.ServiceModel.Security;
+using System.Threading.Tasks;
+
+namespace HeuristicLab.Clients.Hive.WebJobManager.Models
+{
+    public class HiveWebUser
+    {
+        private WebLoginService weblog;
+        private string username;
+        public Guid webIdToken { get; set; }
+        public User currentUser { get; set; }
+        public List<UserGroup> subscribedGroups { get; set; }
+        public List<Role> accessRoles { get; set; }
+
+        public HiveWebUser(Guid token, string username)
+        {
+            webIdToken = token;
+            this.username = username;
+            this.weblog = WebLoginService.Instance;
+            updateUserInfo();
+        }
+        public HiveWebUser updateUserInfo()
+        {
+            var access = weblog.getAccessAdminClient(webIdToken);
+            try
+            {
+                access.RefreshUsers();
+            access.RefreshUserGroups();
+            access.RefreshRoles();
+            
+                currentUser = access.Users.Find(x => x.UserName == username);
+                subscribedGroups = access.CallAccessService(x => x.GetUserGroupsOfUser(currentUser.Id));
+                accessRoles = access.CallAccessService(x => x.GetRolesOfCurrentUser());
+            }
+            catch(SecurityAccessDeniedException e)
+            {
+                currentUser = new User();
+                currentUser.FullName = username;
+                subscribedGroups = new List<UserGroup>();
+                accessRoles = new List<Role>();
+            }
+            
+            return this;
+
+        }
+        public bool HasUserAdminAccess()
+        {
+            if(accessRoles.Find(x => x.Name == "AccessService Administrator") != null)
+            {
+                return true;
+            }
+            return false;
+        }
+        public bool hasResourceAdminAccess()
+        {
+            if(accessRoles.Find(x =>x.Name == "Hive Administrator" ) != null
+                && accessRoles.Find(x => x.Name == "AccessService Administrator") != null)
+            {
+                return true;
+            }
+            return false;
+        }
+    }
+}
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Scripts/Hubs/ProgressHubber.js
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Scripts/Hubs/ProgressHubber.js	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Scripts/Hubs/ProgressHubber.js	(revision 13847)
@@ -6,4 +6,5 @@
 
     var v = document.getElementById("userId").innerHTML;
+    var busy = false;
     console.log(v);
     $.connection.hub.qs = { 'userid': v };
@@ -31,8 +32,12 @@
     
     hubber.client.saveComplete = function (text) {
-        $("#succText").html(text);
+        if(busy)
+            window.setTimeout(1500);
+        busy = true;
+        $("#succText").html(text); 
         $("#success-alert").alert();
         $("#success-alert").fadeTo(2000, 500).slideUp(500, function () {
             $("#success-alert").hide();
+            busy = false;
         });
     }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Scripts/Styling/StyleSheet.css
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Scripts/Styling/StyleSheet.css	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Scripts/Styling/StyleSheet.css	(revision 13847)
@@ -4,5 +4,5 @@
     background-color: #fff;
     -webkit-font-smoothing: antialiased;
-    font: normal 14px Roboto,arial,sans-serif;
+    font: normal 14px Roboto,arial,sans-serif !important;
 }
 
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Services/Jobs/FileOpeningService.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Services/Jobs/FileOpeningService.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Services/Jobs/FileOpeningService.cs	(revision 13847)
@@ -43,5 +43,5 @@
         public void NewModel()
         {
-            vm = new FileOpeningViewModel();
+            vm = new FileOpeningViewModel(weblog.getCurrentUser(UserId));
             Job = new RefreshableJob();
 
@@ -80,10 +80,10 @@
             return null;
         }
-        public void SaveToFile(string file)
+        public void SaveToFile(string file, string dname)
         {
             if(vm != null)
             {
                 var uploads = Path.Combine(env.WebRootPath, "uploads", weblog.getServiceLocator(UserId).getHiveServiceClient().ClientCredentials.UserName.UserName,
-                    "HiveChanged");
+                    dname);
                 Directory.CreateDirectory(uploads);
                 var cont = Job.HiveTasks.First().ItemTask.Item;
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Services/WebLoginService.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Services/WebLoginService.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Services/WebLoginService.cs	(revision 13847)
@@ -1,3 +1,4 @@
 ﻿using HeuristicLab.Clients.Access.Administration;
+using HeuristicLab.Clients.Hive.WebJobManager.Models;
 using HeuristicLab.Clients.Hive.WebJobManager.ViewModels;
 using System;
@@ -23,4 +24,5 @@
         private List<AccessAdministrationClient> accessclients;
         private List<HiveAdminClientWeb> adminclients;
+        private List<HiveWebUser> loggedinUsers;
         /// <summary>
         /// Service instance that keeps all the information per user seperated. Data is in  different lists so 
@@ -51,4 +53,5 @@
             accessclients = new List<AccessAdministrationClient>();
             adminclients = new List<HiveAdminClientWeb>();
+            loggedinUsers = new List<HiveWebUser>();
         }
         /// <summary>
@@ -67,14 +70,10 @@
             loggedIn.Add(log);
             locators.Add(loc);
-            var temp = new HiveClientWeb(loc, log.userId);
-            webclients.Add(temp);
-            var temp2 = new FileOpeningService(log.userId);
-            fileopeners.Add(temp2);
-            temp2 = new FileOpeningService(log.userId);
-            jobopeners.Add(temp2);
-            var temp3 = new AccessAdministrationClient(log.userId);
-            accessclients.Add(temp3);
-            var temp4 = new HiveAdminClientWeb(log.userId);
-            adminclients.Add(temp4);
+            webclients.Add(new HiveClientWeb(loc, log.userId));
+            fileopeners.Add(new FileOpeningService(log.userId));
+            jobopeners.Add(new FileOpeningService(log.userId));
+            accessclients.Add(new AccessAdministrationClient(log.userId));
+            adminclients.Add(new HiveAdminClientWeb(log.userId));
+            loggedinUsers.Add(new HiveWebUser(log.userId, log.loginName).updateUserInfo());
         }
         /// <summary>
@@ -150,4 +149,8 @@
             return adminclients.Find(x => x.userId == id);
         }
+        public HiveWebUser getCurrentUser(Guid id)
+        {
+            return loggedinUsers.Find(x => x.webIdToken == id);
+        }
         /// <summary>
         /// Removes all traces from the logged in user.
@@ -164,5 +167,5 @@
             adminclients.RemoveAll(x => x.userId == id);
             loggedIn.RemoveAll(x => x.userId == id);
-
+            loggedinUsers.RemoveAll(x => x.webIdToken == id);
         }
     }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/DataPackageVM.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/DataPackageVM.cs	(revision 13847)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/DataPackageVM.cs	(revision 13847)
@@ -0,0 +1,35 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Data;
+using HeuristicLab.Core;
+using System.Threading.Tasks;
+
+namespace HeuristicLab.Clients.Hive.WebJobManager.ViewModels.Jobs
+{
+    /// <summary>
+    /// A viewmodel for containing a parameter and the information of the task
+    /// </summary>
+    public class DataPackageVM
+    {
+
+        public IParameter Data { get; set; }
+        public string Position { get; set; }
+        public int Randy { get; set; }
+        public bool Problem { get; set; }
+        /// <summary>
+        /// Init
+        /// </summary>
+        /// <param name="d">Parameter</param>
+        /// <param name="p">Position string (builded for javascript)</param>
+        /// <param name="r">Random integer</param>
+        /// <param name="p">Problem parameter or not</param>
+        public DataPackageVM(IParameter d, string po, int r, bool pr)
+        {
+            Data = d;
+            Position = po;
+            Randy = r;
+            Problem = pr;
+        }
+    }
+}
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/FileOpeningViewModel.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/FileOpeningViewModel.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/FileOpeningViewModel.cs	(revision 13847)
@@ -1,4 +1,5 @@
-﻿using HeuristicLab.Optimization;
-
+﻿using HeuristicLab.Clients.Hive.WebJobManager.Models;
+using HeuristicLab.Optimization;
+using System.Collections.Generic;
 
 namespace HeuristicLab.Clients.Hive.WebJobManager.ViewModels
@@ -10,8 +11,15 @@
     {
         public OptimizerHiveTask SelectedTask { get; set; }
+        public List<string> directories { get; set; }
         public IAlgorithm SelectedAlgorithm { get; set; }
         public Experiment SelectedExperiment { get; set; }
         public BatchRun SelectedBatchRun { get; set; }
         public string message { get; set; }
+        public HiveWebUser currentUser { get; set; }
+
+        public FileOpeningViewModel(HiveWebUser hwu)
+        {
+            currentUser = hwu;
+        }
     }
 }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/JobViewModel.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/JobViewModel.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/JobViewModel.cs	(revision 13847)
@@ -1,3 +1,4 @@
-﻿using System;
+﻿using HeuristicLab.Clients.Hive.WebJobManager.Models;
+using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -11,4 +12,5 @@
     public class JobViewModel
     {
+        public HiveWebUser currentUser { get; set; }
         public List<RefreshableJob> userJobs { get; set; }
 
@@ -17,5 +19,5 @@
         public List<HiveTask> selectedHiveTasks { get; set; }
         public string message { get; set; }
-        public JobViewModel()
+        public JobViewModel(HiveWebUser hwu)
         {
             userJobs = null;
@@ -23,4 +25,5 @@
             selectedHiveTasks = new List<HiveTask>();
             message = "";
+            currentUser = hwu;
         }
     }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/UploadedJobViewModel.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/UploadedJobViewModel.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/Jobs/UploadedJobViewModel.cs	(revision 13847)
@@ -1,3 +1,4 @@
-﻿using HeuristicLab.Optimization;
+﻿using HeuristicLab.Clients.Hive.WebJobManager.Models;
+using HeuristicLab.Optimization;
 using System;
 using System.Collections.Generic;
@@ -12,5 +13,14 @@
     public class UploadedJobViewModel
     {
-        public UploadedJobViewModel()
+        public UploadedJobViewModel(HiveWebUser hwu)
+        {
+            FullDatePaths = new List<string>();
+            DisplayDatePaths = new List<string>();
+            FullFilesPaths = new List<string>();
+            DisplayFilesPaths = new List<string>();
+            SelectedIndex = -1;
+            currentUser = hwu;
+        }
+        public void clear()
         {
             FullDatePaths = new List<string>();
@@ -20,5 +30,4 @@
             SelectedIndex = -1;
         }
-
         public List<string> FullDatePaths { get; set; }
         public List<string> DisplayDatePaths { get; set; }
@@ -27,5 +36,5 @@
         public int SelectedIndex { get; set; }
         public string message { get; set; }
-
+        public HiveWebUser currentUser { get; set; }
         
     }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/NavbarViewModel.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/NavbarViewModel.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/NavbarViewModel.cs	(revision 13847)
@@ -1,3 +1,4 @@
-﻿using System;
+﻿using HeuristicLab.Clients.Hive.WebJobManager.Models;
+using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -10,8 +11,10 @@
 
         public string Active { get; set; }
+        public HiveWebUser User { get; set; }
 
-        public NavbarViewModel(string ac)
+        public NavbarViewModel(string ac, HiveWebUser hwu )
         {
             Active = ac;
+            User = hwu;
         }
     }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/User/UserViewModel.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/User/UserViewModel.cs	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/User/UserViewModel.cs	(revision 13847)
@@ -1,3 +1,4 @@
 ﻿using HeuristicLab.Clients.Access.Administration;
+using HeuristicLab.Clients.Hive.WebJobManager.Models;
 using System;
 using System.Collections.Generic;
@@ -12,5 +13,5 @@
     public class UserViewModel
     {
-
+        public HiveWebUser currentUser { get; set; }
         public string message { get; set; }
         public AccessAdministrationClient accessClient { get; set; }
@@ -31,6 +32,7 @@
         /// </summary>
         /// <param name="ac">AccessAdminClient for connection</param>
-        public UserViewModel(AccessAdministrationClient ac)
+        public UserViewModel(AccessAdministrationClient ac, HiveWebUser hwu)
         {
+            currentUser = hwu;
             users = new List<Access.User>();
             accessClient = ac;
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Index.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Index.cshtml	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Index.cshtml	(revision 13847)
@@ -7,5 +7,5 @@
 <div>
     <!-- Main nav menu-->
-    @Html.Partial("Navbar", new NavbarViewModel("Job"))
+    @Html.Partial("Navbar", new NavbarViewModel("Job", Model.currentUser))
 
     <!-- Job menu-->
@@ -27,8 +27,5 @@
     </ul>
 
-    <div class="row"
-         style="text-align:center">
-        @Model.message
-    </div>
+    @Html.Partial("_ErrorMessage", Model.message)
 
     <div class="row"
@@ -52,5 +49,5 @@
                         <i class="fa fa-cog"></i> Hive jobs
                     </a>
-                    @foreach (var job in Model.userJobs)
+                    @foreach (var job in Model.userJobs.OrderBy(x => x.Job.DateCreated))
                 {
                         <a class="btn btn-default
@@ -64,5 +61,6 @@
                            onclick="showLoader()">
                             @job.Job.Name - @job.Job.DateCreated
-                            <span class="label
+                            <span style="text-shadow:2px 2px black; font-size:13px"
+                                  class="label
                                    @(job.Job.FinishedCount == @job.Job.JobCount ? "label-success" : "label-default")
                                    label-as-badge pull-right">
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFile.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFile.cshtml	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFile.cshtml	(revision 13847)
@@ -14,5 +14,5 @@
     <div id="userId" style="display:none">@ViewBag.SessionId</div>
     <!-- Main nav menu -->
-    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("Job"))
+    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("Job", Model.currentUser))
 
     <!-- Job menu-->
@@ -42,7 +42,7 @@
         </a>
     </div>
-    @Html.Partial("OpenFilePartials/_Help", Model);
+    @Html.Partial("OpenFilePartials/_Help", Model)
     <!-- Check model to select right partial, partial handles all subloading -->
-    <div class="col-md-9">
+    <div class="col-sm-9">
         @if (Model.SelectedAlgorithm != null)
         {
@@ -170,24 +170,52 @@
                       asp-action="saveToFile"
                       method="post">
-                    <div class="col-sm-6"
-                         style="text-align:right">
-                        <h5>File name</h5>
-                    </div>
-                    <div class="col-sm-6"
-                         style="text-align:left">
-                        <div class="form-group">
-                            <div class="input-group">
-                                <input type="text"
-                                       class="form-control"
-                                       name="fname"
-                                       id="fname"
-                                       required
-                                       placeholder="File name">
+                    <div class="row">
+                        <div class="col-sm-3"
+                             style="text-align:right">
+                            <h5>File name</h5>
+                        </div>
+                        <div class="col-sm-9"
+                             style="text-align:left">
+                            <div class="form-group">
+                                <div class="input-group">
+                                    <input type="text"
+                                           class="form-control"
+                                           name="fname"
+                                           id="fname"
+                                           required
+                                           placeholder="File name">
+                                </div>
                             </div>
                         </div>
                     </div>
-                    <div class="row"
-                         style="text-align:center">
-                        <h5>Directory: /HiveChanged</h5>
+                    <div class="row">
+                        <div class="col-sm-3"
+                             style="text-align:right">
+                            <h5>Directory name</h5>
+                        </div>
+                        <div class="col-sm-9"
+                             style="text-align:left">
+                            <div class="form-group">
+                                <div class="input-group">
+                                    <input type="text"
+                                           class="form-control"
+                                           name="dname"
+                                           id="dname"
+                                           required
+                                           placeholder="Directory name"
+                                           list="dirnames">
+                                </div>
+                                <datalist id="dirnames">
+                                    @if (!Model.directories.Contains(DateTime.Now.ToString("yyyy.MM.dd")))
+                                    {
+                                        <option value="@(DateTime.Now.ToString("yyyy.MM.dd"))">Creates new directory for today</option>
+                                    }
+                                    @foreach (var d in Model.directories)
+                                    {
+                                        <option value="@d"></option>
+                                    }
+                                </datalist>
+                            </div>
+                        </div>
                     </div>
                     <button class="btn btn-success btn-block" type="submit"
@@ -203,6 +231,7 @@
     </div>
     <!-- Side scrolling menu-->
-    <nav class="col-md-2" id="scrolly">
+    <nav class="col-sm-2" id="scrolly">
         <ul class="nav nav-pills nav-stacked"
+            style="position:fixed"
             data-spy="affix"
             data-offset-top="0">
@@ -222,5 +251,5 @@
             }
             <li><a href="#finish"><i class="fa fa-flag-checkered"></i> Add to Hive or save to file</a></li>
-            <li>
+            <li style="position:fixed">
                 <div class="alert alert-success" id="success-alert">
                     <span id="succText"></span>
@@ -262,9 +291,10 @@
         });
         collapser = function () {
-            $('.collapse').collapse('hide');
+            $('.collapse').not('#helperCol').collapse('hide');
             //closes every collapse
         }
         shower = function () {
-            $('.collapse').collapse('show');
+            $('.collapse').not('#helperCol').collapse('show');
+            
             //opens every collapse
         }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFilePartials/_Help.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFilePartials/_Help.cshtml	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFilePartials/_Help.cshtml	(revision 13847)
@@ -17,5 +17,5 @@
     <div class="collapse row" 
          id="helperCol"
-         style="background-color:#5bc0de;color:black; font-size:larger; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+         style="background-color:#5bc0de;color:black; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
                             ">
         <h3>Types</h3>
@@ -23,7 +23,5 @@
         <span class="label label-primary">Algorithm</span>. Clicking the buttons will expand them and show more information.</p> 
         <h3>Parameters</h3>
-        <p>All parameter changes happen in real time as soon as you change them. Pop ups will appear if your attention is needed for a specific part.</p>
-        <p style="font-style:italic; font-weight:bold">When you change a parameter from a task that falls under any repitition, the changes are pushed to all the other tasks too.
-        The interface only shows the change for one task.</p>
+        <p>All parameter changes happen in real time as soon as you change them. A log on the right menu will keep you updated.</p>
         <h3>Hive</h3>
         <p>This screen acts as a staging area. When you have changed all the data to your wishes you can go to the bottom of the screen to
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/UploaderPartial/_UploaderPartial.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/UploaderPartial/_UploaderPartial.cshtml	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/UploaderPartial/_UploaderPartial.cshtml	(revision 13847)
@@ -1,3 +1,5 @@
-﻿
+﻿@model HeuristicLab.Clients.Hive.WebJobManager.ViewModels.UploadedJobViewModel
+
+
 <div class="panel panel-default"
      style="border-width:2px!important;padding:17px;
@@ -5,68 +7,76 @@
 
 
-        <form method="post"
-               asp-action="Uploader"
-               asp-controller="Job" enctype="multipart/form-data">
-             <input onchange="printFiles()"
-                    type="file"
-                    id="files"
-                    name="files"
-                    multiple accept=".hl"
-                    style="display:none" />
+    <form method="post"
+          asp-action="Uploader"
+          asp-controller="Job" enctype="multipart/form-data">
+        <input onchange="printFiles()"
+               type="file"
+               id="files"
+               name="files"
+               multiple accept=".hl"
+               style="display:none" />
 
-             <div onclick="firefilebutton()"
-                  class="btn btn-info btn-lg btn-block"
-                  style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+        <div onclick="firefilebutton()"
+             class="btn btn-info btn-lg btn-block"
+             style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
                                  text-shadow:1px 1px black;">
-                 <i class="fa fa-folder-open-o"></i> Choose file(s) to upload to the server
-             </div>
+            <i class="fa fa-folder-open-o"></i> Choose file(s) to upload to the server
+        </div>
 
-             <div class="row" style="margin:10px">
+        <div class="row" style="margin:10px">
 
-                 <div id="selectedfiles">
-                 <h3>Files</h3>
-                 <p>No files selected: press the above button to choose files</p>
-                 </div>
+            <div id="selectedfiles">
+                <h3>Files</h3>
+                <p>No files selected: press the above button to choose files</p>
+            </div>
 
-                 <button style="margin-bottom:10px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+            <button style="margin-bottom:10px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
                                  text-shadow:2px 2px black;"
-                      type="button"
-                         disabled
-                      id="del"
-                      class='btn btn-danger'
-                      onclick='deletefiles()'>
-                     <span class='glyphicon glyphicon-trash' aria-hidden='true'></span>
-                     Remove files
-                 </button>
+                    type="button"
+                    disabled
+                    id="del"
+                    class='btn btn-danger'
+                    onclick='deletefiles()'>
+                <span class='glyphicon glyphicon-trash' aria-hidden='true'></span>
+                Remove files
+            </button>
 
-                 <div
-                      style="margin-top:20px;margin-bottom:20px">
+            <div style="margin-top:20px;margin-bottom:20px">
 
-                     <label for="basic-url">Directory name</label>
-                     <div class="input-group">
-                         <span class="input-group-addon"
-                               id="basic-addon3">
-                             .../uploads/@ViewBag.Name
-                         </span>
-                         <input
-                                type="text"
-                                disabled
-                                class="form-control"
-                                id="directory"
-                                name="directory"
-                                aria-describedby="basic-addon3"
-                                value="@(DateTime.Now.ToString("yyyy.MM.dd"))" />
-                     </div>
-                 </div>
-                 <button style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+                <label for="basic-url">Directory name</label>
+                <div class="input-group">
+                    <span class="input-group-addon"
+                          id="basic-addon3">
+                        .../uploads/@(Model.currentUser.currentUser.UserName != null ?  Model.currentUser.currentUser.UserName : Model.currentUser.currentUser.FullName)/
+                    </span>
+                    <input type="text"
+                           disabled
+                           class="form-control"
+                           id="directory"
+                           name="directory"
+                           aria-describedby="basic-addon3"
+                           
+                           list="dirnames"/>
+                    <datalist id="dirnames">
+                        @if (!Model.DisplayDatePaths.Contains(DateTime.Now.ToString("yyyy.MM.dd")))
+                        {
+                            <option value="@(DateTime.Now.ToString("yyyy.MM.dd"))">Creates new map for today</option>
+                        }    
+                        @foreach(var d in Model.DisplayDatePaths)
+                        {
+                            <option value="@d"></option>
+                        }
+                    </datalist>
+                </div>
+            </div>
+            <button style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
                                  text-shadow:2px 2px black;"
-                        disabled
-                         id="upl"
-                        class="btn btn-lg btn-block btn-success"
-                        type="submit"
-                         >
-                     <i class="fa fa-plus-square"></i> Add to uploads
-                     </button>
-             </div>
+                    disabled
+                    id="upl"
+                    class="btn btn-lg btn-block btn-success"
+                    type="submit">
+                <i class="fa fa-plus-square"></i> Add to uploads
+            </button>
+        </div>
 
     </form>
@@ -83,5 +93,5 @@
             document.getElementById("directory").disabled = false;
 
-            
+
             for (var i = 0; i < files.length; i++) {
                 div.innerHTML += "<p>File " + (i + 1) + ":" + files[i].name +
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Uploads.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Uploads.cshtml	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Uploads.cshtml	(revision 13847)
@@ -5,5 +5,5 @@
 <div>
 
-    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("Job"))
+    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("Job", Model.currentUser))
 
     <ul class="nav nav-pills nav-justified">
@@ -23,154 +23,162 @@
         </li>
     </ul>
-    <div class="row" style="margin:10px">
-        <div style="text-align:center">@Model.message</div>
-
-    </div>
+    
+    @Html.Partial("_ErrorMessage", Model.message)
+
     <div class="row" style="padding:10px">
-        @if (Model.DisplayDatePaths.Count == 0)
-        {
-            <div>
-                <p style="text-align:center">
-                    No files uploaded
-                </p>
-                <a class="btn btn-success btn-lg btn-block"
+        <div class="col-sm-4">
+            <div class="btn-group btn-group-justified btn-block"
+                 role="group" style="margin-bottom:-4px">
+
+                <a class="btn btn-info btn-lg btn-block disabled"
+                   style="width:6%; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+                            text-shadow:2px 2px black;">
+                    <i class="fa fa-cloud"></i> Uploads
+                </a>
+                <a class="btn btn-success btn-block
+                       @(Model.SelectedIndex == -1 ? "active" : "")
+                       "
                    asp-controller="Job"
-                   asp-action="Uploader"
-                   style="margin:10px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+                   asp-action="UploadDir"
+                   asp-route-index="-1"
+                   onclick="showUploader()"
+                   style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
                             text-shadow:2px 2px black;">
-                    <i class="fa fa-cloud-upload"></i> Upload new file(s)
+                    <i class="fa fa-cloud-upload"></i>
                 </a>
             </div>
-
-        }
-        else {
-            <div class="col-sm-4">
-                <div class="btn-group btn-group-justified btn-block"
-                     role="group" style="margin-bottom:-4px">
-
-                    <a class="btn btn-info btn-lg btn-block disabled"
-                       style="width:6%; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
-                            text-shadow:2px 2px black;">
-                        <i class="fa fa-cloud"></i> Uploads
-                    </a>
-                    <a class="btn btn-success btn-block
-                       @(Model.SelectedIndex == -1 ? "active" : "")
-                       "
+            <div class="btn-group-vertical btn-block">
+
+                @for (int i = 0; i < Model.DisplayDatePaths.Count; i++)
+                {
+                    <a class="btn  btn-default @(i == Model.SelectedIndex ? "active" : "" )"
+                       style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);"
                        asp-controller="Job"
                        asp-action="UploadDir"
-                       asp-route-index="-1"
-                       onclick="showUploader()"
+                       asp-route-index="@(i)"
+                       onclick="showDownloader()">
+                        @Model.DisplayDatePaths[i]
+                    </a>
+                }
+            </div>
+            @if (ViewBag.active != null && ViewBag.active == true)
+            {
+                <div>
+                    <a class="btn btn-warning btn-block"
+                       asp-controller="Job"
+                       asp-action="OpenRecent"
                        style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
-                            text-shadow:2px 2px black;">
-                        <i class="fa fa-cloud-upload"></i> 
+                            text-shadow:2px 2px black;margin-top:10px">
+                        <i class="fa fa-undo"></i> Reopen last file
                     </a>
                 </div>
-                <div class="btn-group-vertical btn-block">
-                    
-                    @for (int i = 0; i < Model.DisplayDatePaths.Count; i++)
+
+            }
+
+        </div>
+        <p style="display:none"
+           id="downloader"
+           class="text-center">
+            <br /><br /><br /><br /><br /><br /><br />
+            <i class="fa fa-cloud-download fa-spin fa-5x" id="spinner">
+            </i>
+        </p>
+        <p style="display:none"
+           id="uploader"
+           class="text-center">
+            <br /><br /><br /><br /><br /><br /><br />
+            <i class="fa fa-cloud-upload fa-spin fa-5x" id="spinner">
+            </i>
+        </p>
+        <p style="display:none"
+           id="deleter"
+           class="text-center">
+            <br /><br /><br /><br /><br /><br /><br />
+            <i class="fa fa-trash-o fa-spin fa-5x" id="spinner">
+            </i>
+        </p>
+        <div id="content">
+            @if (Model.SelectedIndex != -1)
+            {
+                <div class="col-sm-8">
+                    <h3>@Model.DisplayDatePaths[Model.SelectedIndex]</h3>
+                    <h4 style="text-align:left">Click on a file to prepare it for upload to Hive</h4>
+                    @for (int i = 0; i < Model.DisplayFilesPaths.Count; i++)
                     {
-                        <a class="btn  btn-default @(i == Model.SelectedIndex ? "active" : "" )"
-                           style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);"
-                           asp-controller="Job"
-                           asp-action="UploadDir"
-                           asp-route-index="@(i)"
-                           onclick="showDownloader()">
-                            @Model.DisplayDatePaths[i]
-                        </a>
+
+                        <div class="btn-group-justified btn-block">
+
+                            <a class="btn btn-default @(Model.DisplayFilesPaths[i].EndsWith(".hl") ? "" : "disabled" )"
+                               asp-controller="Job"
+                               asp-action="OpenFile"
+                               asp-route-index="@(Model.SelectedIndex)"
+                               asp-route-filedex="@i"
+                               style="width:6%;box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);">
+                                <i class="fa fa-list-alt"></i>  @Model.DisplayFilesPaths[i]
+                            </a>
+                            <a id="down"
+                               style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+                            text-shadow:2px 2px black;"
+                               class='btn btn-group btn-success'
+                               asp-controller="Job"
+                               asp-action="DownloadFile"
+                               asp-route-index="@(Model.SelectedIndex)"
+                               asp-route-filedex="@i">
+                                <span class='glyphicon glyphicon-download-alt' aria-hidden='true'></span>
+                            </a>
+                            <a id="del"
+                               style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+                            text-shadow:2px 2px black;"
+                               class='btn btn-group btn-danger'
+                               asp-controller="Job"
+                               asp-action="DeleteFile"
+                               asp-route-index="@(Model.SelectedIndex)"
+                               asp-route-filedex="@i"
+                               onclick="showDeleter()">
+                                <span class='glyphicon glyphicon-trash' aria-hidden='true'></span>
+                            </a>
+
+                        </div>
                     }
+                    <hr style="border-color:gray;margin-top:50px" />
+                    <form asp-controller="Job"
+                          asp-action="changeDirName" 
+                          method="post"
+                          class="col-sm-6">
+                        <h5>Change directory name</h5>
+                        <div class="input-group"
+                             style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);">
+                            <input type="text"
+                                   value="@Model.DisplayDatePaths[Model.SelectedIndex]"
+                                   style="display:none" 
+                                   name="olddir"/>
+                            <input 
+                                   name="dirname"
+                                   type="text" 
+                                   class="form-control" 
+                                   value="@Model.DisplayDatePaths[Model.SelectedIndex]" />
+                            <span class="input-group-btn">
+                                <button style="text-shadow:2px 2px black"
+                                       type="submit"
+                                       class="btn btn-success pull-right"
+                                       ><i class="fa fa-save"></i> Save</button>
+                            </span>
+                        </div>
+                    </form>
+
+
                 </div>
-                @if (ViewBag.active != null && ViewBag.active == true)
-                {
-                    <div>
-                        <a class="btn btn-warning btn-block"
-                           asp-controller="Job"
-                           asp-action="OpenRecent"
-                           style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
-                            text-shadow:2px 2px black;margin-top:10px">
-                            <i class="fa fa-undo"></i> Reopen last file
-                        </a>
-                    </div>
-
-                }
-               
-            </div>
-            <p style="display:none"
-               id="downloader"
-               class="text-center">
-                <br /><br /><br /><br /><br /><br /><br />
-                <i class="fa fa-cloud-download fa-spin fa-5x" id="spinner">
-                </i>
-            </p>
-            <p style="display:none"
-               id="uploader"
-               class="text-center">
-                <br /><br /><br /><br /><br /><br /><br />
-                <i class="fa fa-cloud-upload fa-spin fa-5x" id="spinner">
-                </i>
-            </p>
-            <p style="display:none"
-               id="deleter"
-               class="text-center">
-                <br /><br /><br /><br /><br /><br /><br />
-                <i class="fa fa-trash-o fa-spin fa-5x" id="spinner">
-                </i>
-            </p>
-            <div id="content">
-                @if (Model.SelectedIndex != -1)
-                {
-                    <div class="col-sm-8">
-                        <h4>Click on a file to prepare it for upload to Hive</h4>
-                        @for (int i = 0; i < Model.DisplayFilesPaths.Count; i++)
-                    {
-                            
-                            <div class="btn-group-justified btn-block">
-                                
-                                <a class="btn btn-default @(Model.DisplayFilesPaths[i].EndsWith(".hl") ? "" : "disabled" )"
-                                   asp-controller="Job"
-                                   asp-action="OpenFile"
-                                   asp-route-index="@(Model.SelectedIndex)"
-                                   asp-route-filedex="@i"
-                                   style="width:6%;box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);">
-                                   <i class="fa fa-list-alt"></i>  @Model.DisplayFilesPaths[i]
-                                </a>
-                                <a id="down"
-                                   style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
-                            text-shadow:2px 2px black;"
-                                   class='btn btn-group btn-success'
-                                   asp-controller="Job"
-                                   asp-action="DownloadFile"
-                                   asp-route-index="@(Model.SelectedIndex)"
-                                   asp-route-filedex="@i">
-                                    <span class='glyphicon glyphicon-download-alt' aria-hidden='true'></span>
-                                </a>
-                                <a id="del"
-                                   style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
-                            text-shadow:2px 2px black;"
-                                   class='btn btn-group btn-danger'
-                                   asp-controller="Job"
-                                   asp-action="DeleteFile"
-                                   asp-route-index="@(Model.SelectedIndex)"
-                                   asp-route-filedex="@i"
-                                   onclick="showDeleter()">
-                                    <span class='glyphicon glyphicon-trash' aria-hidden='true'></span>
-                                </a>
-                               
-                            </div>
-                        }
-
-
-                    </div>
-
-                }
-                else
-                {
-                    <div class="col-sm-8">
-
-                        @Html.Partial("UploaderPartial/_UploaderPartial")
-                    </div>
-                }
-            </div>
-
-        }
+
+            }
+            else
+            {
+                <div class="col-sm-8">
+
+                    @Html.Partial("UploaderPartial/_UploaderPartial", Model)
+                </div>
+            }
+        </div>
+
+
     </div>
     <script type="text/javascript">
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Resource/Index.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Resource/Index.cshtml	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Resource/Index.cshtml	(revision 13847)
@@ -1,7 +1,7 @@
-﻿
+﻿@model HeuristicLab.Clients.Hive.WebJobManager.Models.HiveWebUser
 <div ng-app="wjm" ng-controller="resourceCtrl" data-ng-init="init()">
     <div id="userId" style="display:none">@ViewBag.SessionId</div>
 
-    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("Resource"))
+    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("Resource", Model))
 
 
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Shared/Navbar.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Shared/Navbar.cshtml	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Shared/Navbar.cshtml	(revision 13847)
@@ -2,34 +2,64 @@
 @model HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel
 
-    <ul class="nav nav-tabs">
+<ul class="nav nav-tabs">
+    <li role="presentation"
+        class="@(Model.Active == "Job" ? "active" : "")">
+        <a asp-controller="Job"
+           asp-action="Index">
+            Job management
+        </a>
+    </li>
         <li role="presentation"
-            class="@(Model.Active == "Job" ? "active" : "")">
-            <a asp-controller="Job"
-               asp-action="Index">
-                Job management
-            </a>
+            class="@(Model.Active == "User" ? "active" : "")
+            @(Model.User.HasUserAdminAccess() == false ? "disabled" : "")
+            ">
+            @if (Model.User.HasUserAdminAccess())
+            {
+                <a asp-controller="User"
+                   asp-action="Index">
+                    User management
+                </a>
+            }
+            else
+            {
+                <a> User management</a>    
+            }
+
         </li>
-        <li role="presentation"
-            class="@(Model.Active == "User" ? "active" : "")">
-            <a asp-controller="User"
-               asp-action="Index">
-                User management
-            </a>
-        </li>
-        <li role="presentation"
-            class="@(Model.Active == "Resource" ? "active" : "")">
+    <li role="presentation"
+        class="@(Model.Active == "Resource" ? "active" : "") 
+        @(Model.User.hasResourceAdminAccess() == false ? "disabled" : "")
+        ">
+        @if (Model.User.hasResourceAdminAccess())
+            {
             <a asp-controller="Resource"
                asp-action="Index">
                 Resources
             </a>
-        </li>
-        <li role="presentation" 
-            class="pull-right ">
-            <a asp-controller="Home"
-               asp-action="Logout" 
-               class="text-danger">
-                Logout 
-                <i class="fa fa-sign-out "></i>
-            </a>
-        </li>
-    </ul>
+        }
+        else
+        {
+            <a> Resources</a>
+        }
+        
+    </li>
+    
+    <li role="presentation"
+        class="pull-right ">
+        
+        <a asp-controller="Home"
+           asp-action="Logout"
+           class="text-danger">
+            Logout
+            <i class="fa fa-sign-out "></i>
+        </a>
+    </li>
+    <li class="pull-right">
+        <h4 style="margin-bottom:0;">
+            <span class="label label-success " 
+                  style="text-shadow:2px 2px black;">
+            @Model.User.currentUser.FullName
+            </span>
+        </h4>
+    </li>
+</ul>
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Shared/_ErrorMessage.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Shared/_ErrorMessage.cshtml	(revision 13847)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Shared/_ErrorMessage.cshtml	(revision 13847)
@@ -0,0 +1,7 @@
+﻿@model String
+@if (Model != null && Model != "")
+{
+    <div class="row" style="text-align:center">
+        <h4 style="padding-bottom:0;margin-bottom:0"><span style="" class="label label-danger">@Model</span></h4>
+
+    </div>}
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Groups.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Groups.cshtml	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Groups.cshtml	(revision 13847)
@@ -5,5 +5,5 @@
 <div>
 
-    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("User"))
+    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("User", Model.currentUser))
 
     <ul class="nav nav-pills nav-justified">
@@ -30,8 +30,6 @@
         </li>
     </ul>
-    <div class="row"
-         style="text-align:center">
-        @Model.message
-    </div>
+    @Html.Partial("_ErrorMessage", Model.message)
+
     <div class="row"
          style="padding:10px; margin-right:0px!important">
@@ -59,5 +57,5 @@
             <div class="btn-group-vertical btn-block">
                 
-                @foreach (var group in Model.ugroups)
+                @foreach (var group in Model.ugroups.OrderBy(x => x.Name))
                 {
                     <a class="btn  btn-default @( group.Id == Model.SelectedGroup.Id ? "active" : "" )"
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml	(revision 13847)
@@ -4,5 +4,5 @@
 <div>
 
-    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("User"))
+    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("User", Model.currentUser))
 
     <ul class="nav nav-pills nav-justified">
@@ -29,8 +29,6 @@
         </li>
     </ul>
-    <div class="row"
-         style="text-align:center">
-        @Model.message
-    </div>
+    @Html.Partial("_ErrorMessage", Model.message)
+
     <div class="row"
          style="padding:10px; margin-right:0px!important">
@@ -70,5 +68,5 @@
 
 
-                    @foreach (var user in Model.users)
+                    @foreach (var user in Model.users.OrderBy(x => x.UserName))
                     {
                         <a class="btn  btn-default @( user.Id == Model.SelectedUser.Id ? "active" : "" )"
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Roles.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Roles.cshtml	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Roles.cshtml	(revision 13847)
@@ -5,5 +5,5 @@
 <div>
 
-    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("User"))
+    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("User", Model.currentUser))
 
     <ul class="nav nav-pills nav-justified">
@@ -30,8 +30,5 @@
         </li>
     </ul>
-    <div class="row"
-         style="text-align:center">
-        @Model.message
-    </div>
+    @Html.Partial("_ErrorMessage", Model.message)
     <div class="row"
          style="padding:10px; margin-right:0px!important">
@@ -60,5 +57,5 @@
             <div class="btn-group-vertical btn-block">
                 
-                @foreach (var role in Model.roles)
+                @foreach (var role in Model.roles.OrderBy(x => x.Name))
                 {
                     <a class="btn  btn-default @( role.Name == Model.SelectedRole.Name ? "active" : "" )"
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/wwwroot/css/site.min.css
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/wwwroot/css/site.min.css	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/wwwroot/css/site.min.css	(revision 13847)
@@ -1,3 +1,3 @@
-@import url(http://fonts.googleapis.com/css?family=Roboto:400);.wrapper,h4{text-align:center}.label,sub,sup{vertical-align:baseline}[role=button],div[data-tree-model] li,div[data-tree-model] li i{cursor:pointer}.fc table,table{border-spacing:0}body,figure{margin:0}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.fa,.glyphicon{-moz-osx-font-smoothing:grayscale}body{-webkit-font-smoothing:antialiased;font:400 14px Roboto,arial,sans-serif}.container{padding:25px;position:fixed}.form-login{background-color:#EDEDED;border-radius:15px;border-color:#d2d2d2;border-width:5px;box-shadow:0 1px 0 #cfcfcf;padding:10px 20px 20px;padding:10px 20px 20px}h4{border:0 solid #fff;border-bottom-width:1px;padding-bottom:10px}.panel-warning>.panel-heading{background-image:linear-gradient(to bottom,#eb9114 0,#f1b25b 100%)!important;color:#fff!important}.panel-danger>.panel-heading{background-image:linear-gradient(to bottom,#c12e2a 0,#d9534f 100%)!important;color:#fff!important}.label-as-badge{border-radius:1em}.bar-off{fill:#c2c2d6}.bar-off:hover{fill:#e0e0eb}.bar-wait{fill:#f0a742}.bar-wait:hover{fill:#f4bd71}.bar-trans{fill:#80d4ff}.bar-trans:hover{fill:#9df}.bar-calc{fill:#2f6fa6}.bar-calc:hover{fill:#3884c7}.bar-paus{fill:#47476b}.bar-paus:hover{fill:#5c5c8a}.bar-fin{fill:#5cb85c}.bar-fin:hover{fill:#71c171}.bar-abo{fill:#c2302c}.bar-abo:hover{fill:#d54944}.bar-fail{fill:#c2302c}.bar-fail:hover{fill:#d54944}rect.selection{stroke:gray;stroke-dasharray:4px;stroke-opacity:.5;fill:transparent}svg ::selection{background:0 0}svg ::-moz-selection{background:0 0}svg ::-webkit-selection{background:0 0}.btn-danger:focus,.btn-danger:hover,.btn-default:focus,.btn-default:hover,.btn-info:focus,.btn-info:hover,.btn-primary:focus,.btn-primary:hover,.btn-success:focus,.btn-success:hover,.btn-warning:focus,.btn-warning:hover{background-position:0 -15px}[animate-on-change]{transition:all 1s;-webkit-transition:all 1s}[animate-on-change].changed{background-color:#add8e6;transition:none;-webkit-transition:none}[animate-on-change].changedshut{background-color:#ffa07a;transition:none;-webkit-transition:none}.panel-heading .nav-justified.nav-pills li.active>a{background-color:#74a9d8!important}rect{-webkit-box-shadow:10px 10px 5px 0 rgba(0,0,0,.75);-moz-box-shadow:10px 10px 5px 0 rgba(0,0,0,.75);box-shadow:10px 10px 5px 0 rgba(0,0,0,.75)}div[data-angular-treeview]{-moz-user-select:-moz-none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:600;color:#fff;text-decoration:none;text-shadow:1px 1px #000}div[data-tree-model] ul{padding:5px;list-style:none;border:#778899;overflow:hidden}div[data-tree-model] li{position:relative;padding:0 0 0 20px;line-height:20px;margin-top:3px;border:#add8e6;border-radius:10px;box-shadow:2px 3px 5px rgba(0,0,0,.6),inset 1px 10px 300px 51px rgba(33,151,184,1)}div[data-tree-model] li .expanded{padding:1px 10px;background-image:url(../img/folder.png);background-repeat:no-repeat}div[data-tree-model] li .collapsed{padding:1px 10px;background-image:url(../img/folder-closed.png);background-repeat:no-repeat}div[data-tree-model] li .normal{padding:1px 10px;color:#000;background-image:url(../img/file.png);background-repeat:no-repeat}div[data-tree-model] li.selected{box-shadow:2px 3px 5px rgba(0,0,0,.6),inset 1px 10px 300px 51px #5cb85c!important}div[data-tree-model] span.selected{color:#fff!important;text-shadow:1px 1px #000!important;font-weight:700;padding:1px 5px}div[data-tree-model] li.changed{box-shadow:2px 3px 5px rgba(0,0,0,.6),inset 1px 10px 300px 51px rgba(250,250,210,1)}div[data-tree-model] span.changed{color:#000;text-shadow:1px 1px #fff;font-weight:700;padding:1px 5px}div[data-tree-model] span.loaded{text-decoration:underline;font-style:oblique}/*!
+@import url(http://fonts.googleapis.com/css?family=Roboto:400);.wrapper,h4{text-align:center}.label,sub,sup{vertical-align:baseline}[role=button],div[data-tree-model] li,div[data-tree-model] li i{cursor:pointer}.fc table,table{border-spacing:0}body,figure{margin:0}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.fa,.glyphicon{-moz-osx-font-smoothing:grayscale}body{-webkit-font-smoothing:antialiased;font:400 14px Roboto,arial,sans-serif!important}.container{padding:25px;position:fixed}.form-login{background-color:#EDEDED;border-radius:15px;border-color:#d2d2d2;border-width:5px;box-shadow:0 1px 0 #cfcfcf;padding:10px 20px 20px;padding:10px 20px 20px}h4{border:0 solid #fff;border-bottom-width:1px;padding-bottom:10px}.panel-warning>.panel-heading{background-image:linear-gradient(to bottom,#eb9114 0,#f1b25b 100%)!important;color:#fff!important}.panel-danger>.panel-heading{background-image:linear-gradient(to bottom,#c12e2a 0,#d9534f 100%)!important;color:#fff!important}.label-as-badge{border-radius:1em}.bar-off{fill:#c2c2d6}.bar-off:hover{fill:#e0e0eb}.bar-wait{fill:#f0a742}.bar-wait:hover{fill:#f4bd71}.bar-trans{fill:#80d4ff}.bar-trans:hover{fill:#9df}.bar-calc{fill:#2f6fa6}.bar-calc:hover{fill:#3884c7}.bar-paus{fill:#47476b}.bar-paus:hover{fill:#5c5c8a}.bar-fin{fill:#5cb85c}.bar-fin:hover{fill:#71c171}.bar-abo{fill:#c2302c}.bar-abo:hover{fill:#d54944}.bar-fail{fill:#c2302c}.bar-fail:hover{fill:#d54944}rect.selection{stroke:gray;stroke-dasharray:4px;stroke-opacity:.5;fill:transparent}svg ::selection{background:0 0}svg ::-moz-selection{background:0 0}svg ::-webkit-selection{background:0 0}.btn-danger:focus,.btn-danger:hover,.btn-default:focus,.btn-default:hover,.btn-info:focus,.btn-info:hover,.btn-primary:focus,.btn-primary:hover,.btn-success:focus,.btn-success:hover,.btn-warning:focus,.btn-warning:hover{background-position:0 -15px}[animate-on-change]{transition:all 1s;-webkit-transition:all 1s}[animate-on-change].changed{background-color:#add8e6;transition:none;-webkit-transition:none}[animate-on-change].changedshut{background-color:#ffa07a;transition:none;-webkit-transition:none}.panel-heading .nav-justified.nav-pills li.active>a{background-color:#74a9d8!important}rect{-webkit-box-shadow:10px 10px 5px 0 rgba(0,0,0,.75);-moz-box-shadow:10px 10px 5px 0 rgba(0,0,0,.75);box-shadow:10px 10px 5px 0 rgba(0,0,0,.75)}div[data-angular-treeview]{-moz-user-select:-moz-none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:600;color:#fff;text-decoration:none;text-shadow:1px 1px #000}div[data-tree-model] ul{padding:5px;list-style:none;border:#778899;overflow:hidden}div[data-tree-model] li{position:relative;padding:0 0 0 20px;line-height:20px;margin-top:3px;border:#add8e6;border-radius:10px;box-shadow:2px 3px 5px rgba(0,0,0,.6),inset 1px 10px 300px 51px rgba(33,151,184,1)}div[data-tree-model] li .expanded{padding:1px 10px;background-image:url(../img/folder.png);background-repeat:no-repeat}div[data-tree-model] li .collapsed{padding:1px 10px;background-image:url(../img/folder-closed.png);background-repeat:no-repeat}div[data-tree-model] li .normal{padding:1px 10px;color:#000;background-image:url(../img/file.png);background-repeat:no-repeat}div[data-tree-model] li.selected{box-shadow:2px 3px 5px rgba(0,0,0,.6),inset 1px 10px 300px 51px #5cb85c!important}div[data-tree-model] span.selected{color:#fff!important;text-shadow:1px 1px #000!important;font-weight:700;padding:1px 5px}div[data-tree-model] li.changed{box-shadow:2px 3px 5px rgba(0,0,0,.6),inset 1px 10px 300px 51px rgba(250,250,210,1)}div[data-tree-model] span.changed{color:#000;text-shadow:1px 1px #fff;font-weight:700;padding:1px 5px}div[data-tree-model] span.loaded{text-decoration:underline;font-style:oblique}/*!
  * Bootstrap v3.3.6 (http://getbootstrap.com)
  * Copyright 2011-2015 Twitter, Inc.
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/wwwroot/js/hubs/progresshubber.js
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/wwwroot/js/hubs/progresshubber.js	(revision 13844)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/wwwroot/js/hubs/progresshubber.js	(revision 13847)
@@ -1,1 +1,1 @@
-function addtoHive(){var a=document.getElementById("jname").value,b=document.getElementById("jresource").value;a&&""!=a&&null!=a?(hubber.server.changeNameResource(a,b),document.getElementById("fakehiveadd").style.display="none",document.getElementById("progdiv").style.display="",document.getElementById("result").style.display="",document.getElementById("realhiveadd").click()):alert("Job name not set!")}function toggleChild(a,b){console.log(a+" toggled"),hubber.server.toggleChild(a),"none"==$("#childs"+b).css("display")?$("#childs"+b).css("display",""):$("#childs"+b).css("display","none"),$("body").click()}function changePriority(a,b,c){switch(hubber.server.changePriority(a,b),resetPrior(c),b){case 0:document.getElementById("prior"+c).className+="btn-default",document.getElementById("prior"+c).innerHTML="Low";break;case 1:document.getElementById("prior"+c).className+="btn-info",document.getElementById("prior"+c).innerHTML="Normal";break;case 2:document.getElementById("prior"+c).className+="btn-warning",document.getElementById("prior"+c).innerHTML="Urgent";break;case 3:document.getElementById("prior"+c).className+="btn-danger",document.getElementById("prior"+c).innerHTML="Critical"}document.getElementById("prior"+c).innerHTML+="<span class='caret'></span>"}function resetPrior(a){document.getElementById("prior"+a).className="btn dropdown-toggle "}function changeName(a,b,c){hubber.server.changeName(a,b,c)}function changeRepit(a,b){hubber.server.changeRepit(a,b)}function paraEdit(a,b,c,d,e){hubber.server.paraEdit(a,b,c,d,e)}var hubber=$.connection.progressHub;$(function(){$("#success-alert").hide();var a=document.getElementById("userId").innerHTML;console.log(a),$.connection.hub.qs={userid:a},$.connection.hub.start().done(function(){$("#progress").css("width","0%"),$("#progress").attr("aria-valuenow",0),hubber.server.handleMessage("Looking for connection...")}),hubber.client.processMessage=function(a,b){b>$("#progress").attr("aria-valuenow")&&($("#progress").css("width",b+"%"),$("#progress").attr("aria-valuenow",b),$("#progress").html(b+"%"),$("#result").html(a))},hubber.client.processName=function(a,b){$("#nameCarrier"+b).html(a)},hubber.client.saveComplete=function(a){$("#succText").html(a),$("#success-alert").alert(),$("#success-alert").fadeTo(2e3,500).slideUp(500,function(){$("#success-alert").hide()})},hubber.client.createAlert=function(a,b){$("#logs").html("<div class='alert alert-"+b+" alert-dismissible fade in' role='alert'> <button type='button' class='close' data-dismiss='alert' aria-label='Close'> <span aria-hidden='true'>&times;</span> </button> "+a+"</div>"+$("#logs").html())},hubber.client.formatWrong=function(a,b){addAlert("Format wrong for "+a+" of type "+b+". Make sure you follow the right format pattern.","warning")}});
+function addtoHive(){var a=document.getElementById("jname").value,b=document.getElementById("jresource").value;a&&""!=a&&null!=a?(hubber.server.changeNameResource(a,b),document.getElementById("fakehiveadd").style.display="none",document.getElementById("progdiv").style.display="",document.getElementById("result").style.display="",document.getElementById("realhiveadd").click()):alert("Job name not set!")}function toggleChild(a,b){console.log(a+" toggled"),hubber.server.toggleChild(a),"none"==$("#childs"+b).css("display")?$("#childs"+b).css("display",""):$("#childs"+b).css("display","none"),$("body").click()}function changePriority(a,b,c){switch(hubber.server.changePriority(a,b),resetPrior(c),b){case 0:document.getElementById("prior"+c).className+="btn-default",document.getElementById("prior"+c).innerHTML="Low";break;case 1:document.getElementById("prior"+c).className+="btn-info",document.getElementById("prior"+c).innerHTML="Normal";break;case 2:document.getElementById("prior"+c).className+="btn-warning",document.getElementById("prior"+c).innerHTML="Urgent";break;case 3:document.getElementById("prior"+c).className+="btn-danger",document.getElementById("prior"+c).innerHTML="Critical"}document.getElementById("prior"+c).innerHTML+="<span class='caret'></span>"}function resetPrior(a){document.getElementById("prior"+a).className="btn dropdown-toggle "}function changeName(a,b,c){hubber.server.changeName(a,b,c)}function changeRepit(a,b){hubber.server.changeRepit(a,b)}function paraEdit(a,b,c,d,e){hubber.server.paraEdit(a,b,c,d,e)}var hubber=$.connection.progressHub;$(function(){$("#success-alert").hide();var a=document.getElementById("userId").innerHTML,b=!1;console.log(a),$.connection.hub.qs={userid:a},$.connection.hub.start().done(function(){$("#progress").css("width","0%"),$("#progress").attr("aria-valuenow",0),hubber.server.handleMessage("Looking for connection...")}),hubber.client.processMessage=function(a,b){b>$("#progress").attr("aria-valuenow")&&($("#progress").css("width",b+"%"),$("#progress").attr("aria-valuenow",b),$("#progress").html(b+"%"),$("#result").html(a))},hubber.client.processName=function(a,b){$("#nameCarrier"+b).html(a)},hubber.client.saveComplete=function(a){b&&window.setTimeout(1500),b=!0,$("#succText").html(a),$("#success-alert").alert(),$("#success-alert").fadeTo(2e3,500).slideUp(500,function(){$("#success-alert").hide(),b=!1})},hubber.client.createAlert=function(a,b){$("#logs").html("<div class='alert alert-"+b+" alert-dismissible fade in' role='alert'> <button type='button' class='close' data-dismiss='alert' aria-label='Close'> <span aria-hidden='true'>&times;</span> </button> "+a+"</div>"+$("#logs").html())},hubber.client.formatWrong=function(a,b){addAlert("Format wrong for "+a+" of type "+b+". Make sure you follow the right format pattern.","warning")}});
