From 0c028fdc8d6cd56e3ed797d31b48d3a24aa2856a Mon Sep 17 00:00:00 2001
From: redray <redray@ispconfig3>
Date: Sat, 30 Mar 2013 11:20:39 -0400
Subject: [PATCH] login box: login with own login template

---
 interface/web/index.php                              |   12 ++-
 interface/web/themes/default/templates/login.tpl.htm |  167 +++++++++++++++++++++++++++++++++++++++++
 interface/web/themes/default/css/styles.css          |   23 +++++
 3 files changed, 196 insertions(+), 6 deletions(-)

diff --git a/interface/web/index.php b/interface/web/index.php
index a7d2965..7e06711 100644
--- a/interface/web/index.php
+++ b/interface/web/index.php
@@ -31,10 +31,14 @@
 require_once('../lib/config.inc.php');
 require_once('../lib/app.inc.php');
 
-if(!isset($_SESSION['s']['module']['name'])) $_SESSION['s']['module']['name'] = 'login';
-
-$app->uses('tpl');
-$app->tpl->newTemplate('main.tpl.htm');
+if(!isset($_SESSION['s']['module']['name']) or $_SESSION['s']['module']['name']=='login') {
+  $_SESSION['s']['module']['name'] = 'login';
+  $app->uses('tpl');
+  $app->tpl->newTemplate('login.tpl.htm');
+} else {
+  $app->uses('tpl');
+  $app->tpl->newTemplate('main.tpl.htm');
+}
 
 // tab change warning?
 // read misc config
diff --git a/interface/web/themes/default/css/styles.css b/interface/web/themes/default/css/styles.css
index 68f1cc9..14fc257 100644
--- a/interface/web/themes/default/css/styles.css
+++ b/interface/web/themes/default/css/styles.css
@@ -96,6 +96,17 @@
     border-radius: 8px;
     box-shadow: 0 0px 0px 0px rgba(0, 0, 0, 0.05) inset, 0 0 18px rgba(0, 0, 0, 0.5);
 }
+#page.loginpage {
+    width: 400px !important;
+    min-width: 400px !important;
+    min-height: 300px !important;
+    background-color: #ffffff;
+    text-align:left;
+    margin: 0 auto;
+    padding: 10px;
+    border-radius: 8px;
+    box-shadow: 0 0px 0px 0px rgba(0, 0, 0, 0.05) inset, 0 0 18px rgba(0, 0, 0, 0.5);
+}
 .skip, .hideme, .print {
     height: 1px;
     left: -1000em;
@@ -314,7 +325,12 @@
     margin-right: 0;
     padding: 0px 10px 10px 20px;
 }
-
+.loginpage #content { 
+    margin-left: 0px; 
+    margin-right: 0;
+    padding: 0px;
+}
+ 
 /* footer
 -------------------------------------------------------------- */
 
@@ -1164,7 +1180,7 @@
 
 .panel_login {
     max-width: 80%;
-    min-width: 680px;
+    min-width: 400px;
 }
 div.subsectiontoggle {
     border:1px solid #ccc;
@@ -1786,6 +1802,9 @@
 .uniForm .inlineLabels label,
 .uniForm .inlineLabels .label{ width: 20%; /* <- Required property */ margin: .3em 2% 0 0; /* <- Required property */ }
 
+.loginpage .uniForm .inlineLabels label,
+.loginpage .uniForm .inlineLabels .label{ width: 40%; /* <- Required property */ margin: .3em 2% 0 0; /* <- Required property */ }
+
 .uniForm .inlineLabels .textInput,
 .uniForm .inlineLabels .fileUpload{ width: 35%; /* <- Required property */ }
 
diff --git a/interface/web/themes/default/templates/login.tpl.htm b/interface/web/themes/default/templates/login.tpl.htm
new file mode 100644
index 0000000..67d5130
--- /dev/null
+++ b/interface/web/themes/default/templates/login.tpl.htm
@@ -0,0 +1,167 @@
+<!DOCTYPE html>
+<html dir="ltr" lang="en-US">      
+    <head>
+        <!--Possible? Vars in lang= ?-->
+        <meta charset="<tmpl_var name="html_content_encoding">" />
+        <title><tmpl_var name="app_title"> <tmpl_var name="app_version"></title>
+        <meta http-equiv="X-UA-Compatible" content="IE=9"/>
+        <link href="themes/default/css/styles.css" rel="stylesheet" media="screen" type="text/css" />
+        <link href="themes/default/css/print.css" rel="stylesheet" media="print" type="text/css" />
+        <!--[if IE 9]><link href="themes/default/css/iehacks.css" rel="stylesheet" type="text/css" /><![endif]-->
+        <!--[if lte IE 8]><script type="text/javascript" src="themes/default/js/html5shiv.js"></script><![endif]-->
+        <!--[if lte IE 7]><link href="themes/default/css/iehacks.css" rel="stylesheet" type="text/css" /><![endif]-->
+        <link href="themes/default/css/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css" />
+        <link rel="shortcut icon" href="/themes/default/images/favicon.ico" />
+        <script type="text/javascript" src="js/jquery-1.6.3.min.js"></script>
+        <script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>
+        <script type="text/javascript" src="js/scrigo.js.php"></script>
+        <script type="text/javascript" src="js/uni-form/uni-form.jquery.js"></script>
+        <script type="text/javascript" src="js/jquery.ispconfigsearch.js"></script>
+        <script type="text/javascript" src="js/jquery.tipsy.js"></script>
+        <script language="JavaScript" type="text/javascript">
+            jQuery(document).ready(function() {
+                loadInitContent();
+                
+                $("#pageForm").submit(function(e){
+                    //Prevent form submit: e.preventDefault() in lists
+                    if ($(".panel #Filter").length > 0) {
+                        e.preventDefault();
+                    }
+                });
+                
+                jQuery('.subsectiontoggle').live("click", function(){
+                    jQuery(this).children().toggleClass('showing').end().next().slideToggle();
+                });
+                
+                jQuery('#globalsearch').ispconfigSearch({
+                    dataSrc: '/dashboard/ajax_get_json.php?type=globalsearch',
+                    resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
+                    noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
+                    noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
+                    searchFieldWatermark: '<tmpl_var name="globalsearch_searchfield_watermark_txt">'
+                });
+                
+                jQuery('.ttip').tipsy({live: true, gravity: 'ne', html: true});
+                
+                tabChangeDiscard = '<tmpl_var name="tabchange_discard_enabled>';
+                tabChangeWarning = '<tmpl_var name="tabchange_warning_enabled>';
+                tabChangeWarningTxt = '<tmpl_var name="global_tabchange_warning_txt">';
+                tabChangeDiscardTxt = '<tmpl_var name="global_tabchange_discard_txt">';
+				
+				// Store password in browser; works in Firefox, but not Chrome
+				$('#username').live("blur", function(){
+					if($('#dummy_username').val() == '' || $('#dummy_username').val() != $(this).val()){
+						$('#dummy_login').show();
+						$('#dummy_username').attr('value', $(this).val()).trigger('focus').trigger('blur');
+						$('#dummy_login').hide();
+					}
+					if($('#dummy_username').val() == $(this).val() && $(this).val() != ''){
+						$('#passwort').val($('#dummy_passwort').val());
+					} else {
+						$('#passwort').val('');
+					}
+					$('#passwort').focus();
+				});
+				
+				$('#username').live("keyup", function(){
+					$('#dummy_username').val('');
+					$('#dummy_passwort').val('');
+					$('#passwort').val('');
+				});
+				
+            });
+            
+            
+            jQuery(document).bind("change", function(event) {
+                var elName = event.target.localName;
+                if (jQuery(".panel #Filter").length > 0 && elName == 'select') {
+                    event.preventDefault();
+                    jQuery(".panel #Filter").trigger('click');
+                }
+                if(elName == 'select' || elName == 'input' || elName == 'textarea') {
+                    if(jQuery(event.target).hasClass('no-page-form-change') == false) {
+                        // set marker that something was changed
+                        pageFormChanged = true;
+                    }
+                }
+            });
+            
+            jQuery(document).bind("keypress", function(event) {
+                //Use jQuery submit with keypress Enter in panel filterbar
+                if (event.which == '13' && jQuery(".panel #Filter").length > 0 && jQuery(event.target).hasClass('ui-autocomplete-input') == false ) {
+                    event.preventDefault();
+                    jQuery(".panel #Filter").trigger('click');
+                }
+                //Use jQuery submit with keypress Enter in forms
+                if (event.which == '13' && jQuery(".pnl_formsarea button.positive").length > 0 && event.target.localName != 'textarea' && jQuery(event.target).is(':input')) {
+                    event.preventDefault();
+                    jQuery(".pnl_formsarea button.positive:first").not("[disabled='disabled']").trigger('click');
+                }
+            });
+            
+            jQuery(document).delegate('.pnl_listarea th', 'click', function(event) {
+                if(jQuery(this).attr('class').length > 0 && jQuery(".panel #Filter").length > 0 && jQuery(this).hasClass('tbl_col_buttons') == false && jQuery(this).hasClass('tbl_col_limit') == false && jQuery(this).hasClass('tbl_col_nosort') == false) {
+                  event.preventDefault();
+                  var clickevent = jQuery('#Filter').attr('onclick');
+                  var element = jQuery(this).attr('class');
+                  if(typeof clickevent == 'string') {
+                      jQuery('#Filter').attr('onclick', clickevent.replace(".php')", ".php?orderby=" + element + "')"));
+                  }
+                  jQuery(".panel #Filter").trigger('click');
+                  
+                  jQuery("#pageForm").ajaxComplete(function() {
+                      if(jQuery("th."+element).css("background-position") == '0px -15px') {
+                        if(jQuery("th."+element).css("text-align") == "right") {
+                          jQuery("th."+element).css("text-align","left");
+                        } else {
+                          jQuery("th."+element).css("text-align","right");
+                        }
+                      } else {
+                        jQuery(".pnl_listarea th").css("text-align","");
+                      }
+                      jQuery(".pnl_listarea th").css("background-position","0 0");
+                      jQuery("th."+element).css("background-position","0 -15px");
+                  });
+                }
+            });
+            
+        </script>
+    </head>
+    <body>
+        <div id="page" class="loginpage">
+            <!-- begin: header -->
+            <header>
+                <h1 id="ir-HeaderLogo" class="swap" style="background-image:url('{tmpl_var name='app_logo'}');"><span>ISPConfig 3</span></h1>
+            </header>
+            <!-- end: header -->
+
+            <!-- begin: main content area #main -->
+            <section id="main" name="content">
+                <!-- begin: #content -->
+                <section id="content">
+                    <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm">
+                        <div id="pageContent"><!-- AJAX CONTENT --></div>
+                    </form>
+                    <div id="ie_clearing">&nbsp;</div>
+                    <!-- End: IE Column Clearing -->
+                </section>
+                <!-- end: #content -->
+            </section>
+            <!-- end: #main -->
+        </div>
+        <!-- begin: footer -->
+        <footer>
+            Powered by <a href="<tmpl_var name="app_link">" target="_blank"><tmpl_var name="app_title"></a>
+        </footer>
+        <!-- end: footer -->
+
+        <div id="dummy_login" style="display:none;position:absolute;top:-1000px;left:-1000px;">
+            <form action="" method="post" target="dummy_login" id="dummy_login_form">
+                <input name="username" id="dummy_username" type="text" autocomplete="on" value="" />
+                <input name="passwort" id="dummy_passwort" type="password" autocomplete="on" value="" />
+                <input type="submit" value="Login" id="dummy_submit"/>
+            </form>
+            <iframe id="dummy_iframe" src="dummy_login.html" name="dummy_login" style="display:none;"></iframe>
+        </div>
+    </body>
+</html>

--
Gitblit v1.9.1