<script>
+// Prepare an array of available roles. We need it for "is_client" property.
+// It is used to selectively display client selector for client roles.
+roles = new Array();
+var idx = 0;
+{foreach $active_roles as $active_role}
+roles[idx] = new Array({$active_role.id}, '{$active_role.is_client}');
+idx++;
+{/foreach}
+
// Prepare an array of rates.
// Format: project_rates[0] = Array(100, '25.00'), project_rates[1] = Array(120, '30.00'), etc...
// First element = project_id, second element = rate for project. Quotes needed for string representation of rates.
}
}
-// handleClientControl - controls visibility of the client dropdown depending on the selected user role.
-// We need to show it only when the "Client" user role is selected.
+// handleClientControl - controls visibility of the client dropdown depending on the selected user role,
+// also hides and unselects projects when "Client" user role is selected.
function handleClientControl() {
+ var selectedRoleId = document.getElementById("role").value;
var clientControl = document.getElementById("client");
- if ("16" == document.getElementById("role").value)
- clientControl.style.visibility = "visible";
- else
- clientControl.style.visibility = "hidden";
+ var nonClientBlock = document.getElementById("non_client_block");
+ var projectsControl = document.getElementById("projects_control");
+
+ var len = roles.length;
+ for (var i = 0; i < len; i++) {
+ if (selectedRoleId == roles[i][0]) {
+ var isClient = roles[i][1];
+ if (isClient == 1) {
+ clientControl.style.visibility = "visible";
+ nonClientBlock.style.display = "none";
+ projectsControl.style.display = "none";
+
+ // Uncheck all project checkboxes.
+ var checkboxes = document.getElementsByName("projects[]");
+ var j;
+ for (j = 0; j < checkboxes.length; j++) {
+ checkboxes[j].checked = false;
+ }
+ } else {
+ clientControl.value = "";
+ clientControl.style.visibility = "hidden";
+ nonClientBlock.style.display = "";
+ projectsControl.style.display = "";
+ }
+ break;
+ }
+ }
}
</script>
+
{$forms.userForm.open}
<table cellspacing="4" cellpadding="7" border="0">
<table cellspacing="1" cellpadding="2" border="0">
<td align="right" nowrap>{$i18n.label.email}:</td>
<td>{$forms.userForm.email.control}</td>
</tr>
-{if $user->isManager() && ($user->id != $user_id)}
+{if $user->id != $user_id}
<tr>
<td align="right">{$i18n.form.users.role}:</td>
<td>{$forms.userForm.role.control} {$forms.userForm.client.control}</td>
</tr>
-{/if}
-{* Prohibit deactivating team manager. Deactivating others is ok. *}
-{if $user->canManageTeam() && !($user->isManager() && $user->id == $user_id)}
<tr>
<td align="right">{$i18n.label.status}:</td>
<td>{$forms.userForm.status.control}</td>
</tr>
+{/if}
+<tbody id="non_client_block">
+{if $show_quota}
+ <tr>
+ <td align="right">{$i18n.label.quota} (%):</td>
+ <td>{$forms.userForm.quota_percent.control}</td>
+ </tr>
{/if}
<tr>
<td align="right">{$i18n.form.users.default_rate} (0{$user->decimal_mark}00):</td>
<td>{$forms.userForm.rate.control}</td>
</tr>
-{if ($smarty.const.MODE_PROJECTS == $user->tracking_mode || $smarty.const.MODE_PROJECTS_AND_TASKS == $user->tracking_mode)}
+</tbody>
+{if $show_projects}
+<tbody id="projects_control">
<tr valign="top">
<td align="right">{$i18n.label.projects}:</td>
<td>{$forms.userForm.projects.control}</td>
</tr>
+</tbody>
{/if}
<tr>
<td colspan="2" align="center">{$i18n.label.required_fields}</td>