User add and edit now assign role ids to users.
[timetracker.git] / WEB-INF / templates / user_add.tpl
1 <script>
2 // Prepare an array of available roles. We need it for "is_client" property.
3 // It is used to selectively display client selector for client roles.
4 roles = new Array();
5 var idx = 0;
6 {foreach $active_roles as $active_role}
7 roles[idx] = new Array({$active_role.id}, '{$active_role.is_client}');
8 idx++;
9 {/foreach}
10
11 // The setDefaultRate function sets / unsets default rate for a project
12 // when a corresponding checkbox is ticked.
13 function setDefaultRate(element) {
14   var default_rate = document.userForm.rate.value;
15   if (default_rate == '') {
16     // No default rate, nothing to do!
17     return;
18   }
19   // Iterate through elements of the form to find and set the project rate. 
20   for (var i = 0; i < userForm.elements.length; i++) {
21     if ((userForm.elements[i].type == 'text') && (userForm.elements[i].name == ('rate_'+element.value))) {
22       if (element.checked) {
23         userForm.elements[i].value = default_rate;
24       } else {
25         userForm.elements[i].value = '';
26       }
27       break; // Element is found and set, nothing more to do, break out of the loop.
28     }
29   }
30 }
31
32 // handleClientControl - controls visibility of the client dropdown depending on the selected user role.
33 // We need to show it only when the "Client" user role is selected.
34 function handleClientControl() {
35   var selectedRoleId = document.getElementById("role").value;
36   var clientControl = document.getElementById("client");
37   var len = roles.length;
38   for (var i = 0; i < len; i++) {
39     if (selectedRoleId == roles[i][0]) {
40       var isClient = roles[i][1];
41       if (isClient == 1)
42         clientControl.style.visibility = "visible";
43       else
44         clientControl.style.visibility = "hidden";
45       break;
46     }
47   }
48 }
49 </script>
50
51 {$forms.userForm.open}
52 <table cellspacing="4" cellpadding="7" border="0">
53   <table cellspacing="1" cellpadding="2" border="0">
54     <tr>
55       <td align="right">{$i18n.label.person_name} (*):</td>
56       <td>{$forms.userForm.name.control}</td>
57     </tr>
58     <tr>
59       <td align="right">{$i18n.label.login} (*):</td>
60       <td>{$forms.userForm.login.control}</td>
61     </tr>
62 {if !$auth_external}
63     <tr>
64       <td align="right">{$i18n.label.password} (*):</td>
65       <td>{$forms.userForm.pas1.control}</td>
66     </tr>
67     <tr>
68       <td align="right">{$i18n.label.confirm_password} (*):</td>
69       <td>{$forms.userForm.pas2.control}</td>
70     </tr>
71 {/if}
72     <tr>
73       <td align="right" nowrap>{$i18n.label.email}:</td>
74       <td>{$forms.userForm.email.control}</td>
75     </tr>
76 {if $user->isManager()}
77     <tr>
78       <td align="right">{$i18n.form.users.role}:</td>
79       <td>{$forms.userForm.role.control} {$forms.userForm.client.control}</td>
80     </tr>
81 {/if}
82     <tr>
83       <td align="right">{$i18n.form.users.default_rate}&nbsp;(0{$user->decimal_mark}00):</td>
84       <td>{$forms.userForm.rate.control}</td>
85     </tr>
86 {if ($smarty.const.MODE_PROJECTS == $user->tracking_mode || $smarty.const.MODE_PROJECTS_AND_TASKS == $user->tracking_mode)}
87     <tr valign="top">
88       <td align="right">{$i18n.label.projects}:</td>
89       <td>{$forms.userForm.projects.control}</td>
90     </tr>
91     <tr>
92       <td colspan="2" align="center">{$i18n.label.required_fields}</td>
93     </tr>
94 {/if}
95     <tr>
96       <td colspan="2" align="center" height="50">{$forms.userForm.btn_submit.control}</td>
97     </tr>
98   </table>
99 </table>
100 {$forms.userForm.close}