Added favicon to default theme, get_customer_by_ref() helper and a couple of cleanups.
[fa-stable.git] / access / login.php
index efdd276dad79b6ac6e4620b5294f0b0b30adcbe7..00b74403bfdf3813d29b6cbcb58480a35832d4bf 100644 (file)
        if (!isset($path_to_root) || isset($_GET['path_to_root']) || isset($_POST['path_to_root']))
                die(_("Restricted access"));
        include_once($path_to_root . "/includes/ui.inc");
-       
+       include_once($path_to_root . "/includes/page/header.inc");
+
        $js = "<script language='JavaScript' type='text/javascript'>
 function defaultCompany()
 {
        document.forms[0].company_login_name.options[".$_SESSION["wa_current_user"]->company."].selected = true;
 }
-".get_js_png_fix()."</script>";
-       $js2 = "<script language='JavaScript' type='text/javascript'>
-function set_fullmode() {
-       document.getElementById('ui_mode').value = 1;
-       document.loginform.submit();
-       return true;
-}
 </script>";
-
+       add_js_file('login.js');
        // Display demo user name and password within login form if "$allow_demo_mode" is true
        if ($allow_demo_mode == true)
        {
@@ -36,6 +30,16 @@ function set_fullmode() {
        {
                $demo_text = _("Please login here");
        }
+
+       if (check_faillog())
+       {
+               $blocked_msg = '<span class=redfg>'._('Too many failed login attempts.<br>Please wait a while or try later.').'</span>';
+
+           $js .= "<script>setTimeout(function() {
+               document.getElementsByName('SubmitUser')[0].disabled=0;
+               document.getElementById('log_msg').innerHTML='$demo_text'}, 1000*$login_delay);</script>";
+           $demo_text = $blocked_msg;
+       }
        if (!isset($def_coy))
                $def_coy = 0;
        $def_theme = "default";
@@ -51,21 +55,23 @@ function set_fullmode() {
        echo "<html dir='$rtl' >\n";
        echo "<head><title>$title</title>\n";
        echo "<meta http-equiv='Content-type' content='text/html; charset=$encoding' />\n";
-       echo "<link href='$path_to_root/themes/$def_theme/login.css' rel='stylesheet' type='text/css'> \n";
-       echo $js2;
+       echo "<link href='$path_to_root/themes/$def_theme/default.css' rel='stylesheet' type='text/css'> \n";
+       echo "<link href='$path_to_root/themes/default/images/favicon.png' rel='icon' type='image/png'> \n";
+       send_scripts();
        if (!$login_timeout)
        {
                echo $js;
-       }       
+       }
        echo "</head>\n";
 
-       echo "<body $onload>\n";
+       echo "<body id='loginscreen' $onload>\n";
 
        echo "<table class='titletext'><tr><td>$title</td></tr></table>\n";
        
+       div_start('_page_body');
        br();br();
        start_form(false, false, $_SESSION['timeout']['uri'], "loginform");
-       start_table($table_style2);
+       start_table(false, "class='login'");
        start_row();
        echo "<td align='center' colspan=2>";
        if (!$login_timeout) { // FA logo
@@ -85,7 +91,7 @@ function set_fullmode() {
 
        $password = $allow_demo_mode ? "password":"";
 
-       echo "<tr><td>"._("Password")."</td><td><input type='password' name='password'  value='$password' /></td></tr>\n";
+       password_row(_("Password:"), 'password', $password);
 
        if ($login_timeout) {
                hidden('company_login_name', $_SESSION["wa_current_user"]->company);
@@ -94,17 +100,23 @@ function set_fullmode() {
                        $coy =  $_SESSION['wa_current_user']->company;
                else
                        $coy = $def_coy;
-               echo "<tr><td>"._("Company")."</td><td><select name='company_login_name'>\n";
-               for ($i = 0; $i < count($db_connections); $i++)
-                       echo "<option value=$i ".($i==$coy ? 'selected':'') .">" . $db_connections[$i]["name"] . "</option>";
-               echo "</select>\n";
+               if (!@$text_company_selection) {
+                       echo "<tr><td>"._("Company")."</td><td><select name='company_login_name'>\n";
+                       for ($i = 0; $i < count($db_connections); $i++)
+                               echo "<option value=$i ".($i==$coy ? 'selected':'') .">" . $db_connections[$i]["name"] . "</option>";
+                       echo "</select>\n";
+                       echo "</td></tr>";
+               } else {
+//                     $coy = $def_coy;
+                       text_row(_("Company"), "company_login_nickname", "", 20, 50);
+               }
                start_row();
-               label_cell($demo_text, "colspan=2 align='center'");
+               label_cell($demo_text, "colspan=2 align='center' id='log_msg'");
                end_row();
        }; 
        end_table(1);
-       echo "<center><input type='submit' value='&nbsp;&nbsp;"._("Login -->")."&nbsp;&nbsp;' name='SubmitUser' onclick='set_fullmode();' /></center>\n";
-       end_form(1);
+       echo "<center><input type='submit' value='&nbsp;&nbsp;"._("Login -->")."&nbsp;&nbsp;' name='SubmitUser'"
+               .($login_timeout ? '':" onclick='set_fullmode();'").(isset($blocked_msg) ? " disabled" : '')." /></center>\n";
 
        foreach($_SESSION['timeout']['post'] as $p => $val) {
                // add all request variables to be resend together with login data
@@ -112,6 +124,9 @@ function set_fullmode() {
                        'password', 'SubmitUser', 'company_login_name'))) 
                        echo "<input type='hidden' name='$p' value='$val'>";
        }
+       end_form(1);
+       $Ajax->addScript(true, "document.forms[0].password.focus();");
+
     echo "<script language='JavaScript' type='text/javascript'>
     //<![CDATA[
             <!--
@@ -120,6 +135,7 @@ function set_fullmode() {
             //-->
     //]]>
     </script>";
+    div_end();
        echo "<table class='bottomBar'>\n";
        echo "<tr>";
        if (isset($_SESSION['wa_current_user']))