Version fix in mysql.sql.
[timetracker.git] / WEB-INF / templates / mobile / user_edit.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 // Prepare an array of rates.
12 // Format: project_rates[0] = Array(100, '25.00'), project_rates[1] = Array(120, '30.00'), etc...
13 // First element = project_id, second element = rate for project. Quotes needed for string representation of rates.
14 project_rates = new Array();
15 var idx = 0;
16 {foreach $rates as $rate}
17 project_rates[idx] = new Array({$rate.id}, '{$rate.rate}');
18 idx++;
19 {/foreach}
20
21 // getRate - returns a rate for the project. If rate was set for user previously we'll get this old rate
22 // if project time entries for user exists. Otherwise return user default rate.
23 function getRate(project_id) {
24   var length = project_rates.length;
25   for(var i = 0; i < length; i++) {
26     if(project_rates[i][0] == project_id) {
27       return project_rates[i][1];
28     }
29   }
30   var default_rate = document.userForm.rate.value;
31   return default_rate;
32 }
33
34 // The setRate function sets / unsets user rate for a project when a corresponding checkbox is ticked.
35 function setRate(element) {
36   var default_rate = document.userForm.rate.value;
37   if (default_rate == '') {
38     // No default rate, nothing to do!
39     return;
40   }
41   // Iterate through elements of the form to find and set the project rate. 
42   for (var i = 0; i < userForm.elements.length; i++) {
43     if ((userForm.elements[i].type == 'text') && (userForm.elements[i].name == ('rate_'+element.value))) {
44       if (element.checked) {
45         userForm.elements[i].value = getRate(element.value);
46       } else {
47         userForm.elements[i].value = '';
48       }
49       break; // Element is found and set, nothing more to do, break out of the loop.
50     }
51   }
52 }
53
54 // handleClientControl - controls visibility of the client dropdown depending on the selected user role,
55 // also hides and unselects projects when "Client" user role is selected.
56 function handleClientControl() {
57   var selectedRoleId = document.getElementById("role").value;
58   var clientControl = document.getElementById("client");
59   var nonClientBlock = document.getElementById("non_client_block");
60   var projectsControl = document.getElementById("projects_control");
61
62   var len = roles.length;
63   for (var i = 0; i < len; i++) {
64     if (selectedRoleId == roles[i][0]) {
65       var isClient = roles[i][1];
66       if (isClient == 1) {
67         clientControl.style.visibility = "visible";
68         nonClientBlock.style.display = "none";
69         projectsControl.style.display = "none";
70
71         // Uncheck all project checkboxes.
72         var checkboxes = document.getElementsByName("projects[]");
73         var j;
74         for (j = 0; j < checkboxes.length; j++) {
75           checkboxes[j].checked = false;
76         }
77       } else {
78         clientControl.value = "";
79         clientControl.style.visibility = "hidden";
80         nonClientBlock.style.display = "";
81         projectsControl.style.display = "";
82       }
83       break;
84     }
85   }
86 }
87 </script>
88
89
90 {$forms.userForm.open}
91 <table cellspacing="4" cellpadding="7" border="0">
92   <table cellspacing="1" cellpadding="2" border="0">
93     <tr>
94       <td align="right">{$i18n.label.person_name} (*):</td>
95       <td>{$forms.userForm.name.control}</td>
96     </tr>
97     <tr>
98       <td align="right">{$i18n.label.login} (*):</td>
99       <td>{$forms.userForm.login.control}</td>
100     </tr>
101 {if !$auth_external}
102     <tr>
103       <td align="right">{$i18n.label.password} (*):</td>
104       <td>{$forms.userForm.pas1.control}</td>
105     </tr>
106     <tr>
107       <td align="right">{$i18n.label.confirm_password} (*):</td>
108       <td>{$forms.userForm.pas2.control}</td>
109     </tr>
110 {/if}
111     <tr>
112       <td align="right" nowrap>{$i18n.label.email}:</td>
113       <td>{$forms.userForm.email.control}</td>
114     </tr>
115 {if $user->id != $user_id}
116     <tr>
117       <td align="right">{$i18n.form.users.role}:</td>
118       <td>{$forms.userForm.role.control} {$forms.userForm.client.control}</td>
119     </tr>
120     <tr>
121       <td align="right">{$i18n.label.status}:</td>
122       <td>{$forms.userForm.status.control}</td>
123     </tr>
124 {/if}
125 <tbody id="non_client_block">
126 {if $show_quota}
127     <tr>
128       <td align="right">{$i18n.label.quota}&nbsp;(%):</td>
129       <td>{$forms.userForm.quota_percent.control}</td>
130     </tr>
131 {/if}
132     <tr>
133       <td align="right">{$i18n.form.users.default_rate}&nbsp;(0{$user->decimal_mark}00):</td>
134       <td>{$forms.userForm.rate.control}</td>
135     </tr>
136 </tbody>
137 {if $show_projects}
138 <tbody id="projects_control">
139     <tr valign="top">
140       <td align="right">{$i18n.label.projects}:</td>
141       <td>{$forms.userForm.projects.control}</td>
142     </tr>
143 </tbody>
144 {/if}
145     <tr>
146       <td colspan="2" align="center">{$i18n.label.required_fields}</td>
147     </tr>
148     <tr>
149       <td colspan="2" align="center" height="50">{$forms.userForm.btn_submit.control} {$forms.userForm.btn_delete.control}</td>
150     </tr>
151   </table>
152 </table>
153 {$forms.userForm.close}