Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/26/18 13:38:05 (6 years ago)
Author:
jzenisek
Message:

#2839: improved HiveAdmin interactions:

  • collaps groups with slaves only
  • update scheduleView only if currently visible
  • made schedule scrollable for non-admins
  • changed selection backcolor
  • fixed add/delete project permission bug for non-admins
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectsView.cs

    r15792 r15813  
    4040    private const int greenFlagImageIndex = 0;
    4141    private const int redFlagImageIndex = 1;
    42 
    43     private readonly Color changedColor = Color.FromArgb(255, 87, 191, 193); // #57bfc1
    44     private readonly Color selectedColor = Color.FromArgb(255, 240, 194, 59); // #f0c23b
     42    private const string SELECTED_TAG = ""; // " [selected]";
     43    private const string NOT_STORED_TAG = "**"; // " [not stored]";
     44    private const string CHANGES_NOT_STORED_TAG = "*"; // " [changes not stored]";
     45
     46    private readonly Color selectedBackColor = Color.DodgerBlue;
     47    private readonly Color selectedForeColor = Color.White;
    4548
    4649    private Project selectedProject = null;
     
    222225      }
    223226
    224       if(!IsAdmin()
    225         && HiveAdminClient.Instance.CheckOwnershipOfParentProject(selectedProject,
    226           UserInformation.Instance.User.Id)) {
    227         MessageBox.Show(
    228           "Only subprojects of owned projects can be deleted.",
    229           "HeuristicLab Hive Administrator",
    230           MessageBoxButtons.OK,
    231           MessageBoxIcon.Error);
    232         return;
    233       }
    234 
    235       if (!IsAdmin() && Content.Any(x => x.ParentProjectId == selectedProject.Id)) {
     227      if (Content.Any(x => x.ParentProjectId == selectedProject.Id)) {
    236228        MessageBox.Show(
    237229          "Only empty projects can be deleted.",
     
    387379        }
    388380        if (newProject.Id == selectedProject.Id && !nodeSelected) {
    389           newNode.BackColor = selectedColor;
    390           newNode.Text += " [selected]";
     381          newNode.BackColor = selectedBackColor;
     382          newNode.ForeColor = selectedForeColor;
     383          newNode.Text += SELECTED_TAG;
    391384          nodeSelected = true;
    392385        }
     
    430423
    431424      if (p.Id == Guid.Empty) {
    432         n.Text += " [not stored]";
     425        n.Text += NOT_STORED_TAG;
    433426      } else if (p.Modified) {
    434         n.Text += " [changes not stored]";
     427        n.Text += CHANGES_NOT_STORED_TAG;
    435428      }
    436429    }
     
    450443      projectResourcesView.Content = project;
    451444
    452       bool locked = project == null || (project != null && project.Id == Guid.Empty);
     445      bool projectIsNew = project != null && project.Id == Guid.Empty;
     446      bool locked = project == null || projectIsNew;
     447      bool deleteEnabled = project != null && (
     448        projectIsNew
     449        || HiveAdminClient.Instance.CheckOwnershipOfParentProject(project, UserInformation.Instance.User.Id)
     450        || !HiveAdminClient.Instance.ProjectDescendants[project.Id].Any());
     451
    453452      addButton.Enabled = !locked;
     453      removeButton.Enabled = deleteEnabled;
    454454      projectPermissionsView.Locked = locked;
    455455      projectResourcesView.Locked = locked;
     
    461461      SelectedProject = (Project)projectNode.Tag;
    462462      ResetTreeNodes(projectsTreeView.Nodes);
    463       projectNode.BackColor = selectedColor;
    464       projectNode.Text += " [selected]";
     463      projectNode.BackColor = selectedBackColor;
     464      projectNode.ForeColor = selectedForeColor;
     465      projectNode.Text += SELECTED_TAG;
    465466    }
    466467
Note: See TracChangeset for help on using the changeset viewer.