Option to ignore old CDRs, RT#81480
[freeside.git] / httemplate / elements / random_pass.html
1 <INPUT TYPE="button" VALUE="<% emt($label) %>" onclick="<% $id %>randomPass()">
2 <SCRIPT TYPE="text/javascript">
3 function <% $id %>randomPass() {
4   var pw_set = <% $pw_set |js_string %>;
5   var lower = <% $lower |js_string %>;
6   var upper = <% $upper |js_string %>;
7   var digit = <% $digit |js_string %>;
8   var punct = <% $punct |js_string %>;
9   var pass=[];
10   pass.push(lower.charAt(Math.floor(Math.random() * lower.length)));
11   pass.push(upper.charAt(Math.floor(Math.random() * upper.length)));
12   pass.push(digit.charAt(Math.floor(Math.random() * digit.length)));
13   pass.push(punct.charAt(Math.floor(Math.random() * punct.length)));
14   var i=0;
15   while(i < 4) {
16     i++;
17     pass.push(pw_set.charAt(Math.floor(Math.random() * pw_set.length)));
18   }
19   for(var j, x, i = pass.length; i; j = Math.floor(Math.random() * i), x = pass[--i], pass[i] = pass[j], pass[j] = x);
20   pass = pass.join('');
21   document.getElementById('<% $id %>').value = pass;
22   document.getElementById('<% $id %>_result').innerHTML = '<IMG SRC="<% $p %>images/tick.png" style="width: 1em; display: inline-block; padding-right: .5em"> <SPAN STYLE="color: green;">Password valid!</SPAN>';
23 % if ($submitid) {
24     document.getElementById('<% $submitid %>').disabled = false;
25 % }
26 }
27 </SCRIPT>
28 <%init>
29 my $id = shift;
30 my $label = shift || 'Generate';
31 my $submitid = shift;
32 my $pw_set = join('', FS::Password_Mixin->pw_set);
33 my $lower = join('', $pw_set =~ /[[:lower:]]/g);
34 my $upper = join('', $pw_set =~ /[[:upper:]]/g);
35 my $digit = join('', $pw_set =~ /[[:digit:]]/g);
36 my $punct = join('', $pw_set =~ /[[:punct:]]/g);
37
38 </%init>