redray
2013-03-30 0c028fdc8d6cd56e3ed797d31b48d3a24aa2856a
login box: login with own login template
1 files added
2 files modified
202 ■■■■■ changed files
interface/web/index.php 12 ●●●●● patch | view | raw | blame | history
interface/web/themes/default/css/styles.css 23 ●●●●● patch | view | raw | blame | history
interface/web/themes/default/templates/login.tpl.htm 167 ●●●●● patch | view | raw | blame | history
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
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 */ }
interface/web/themes/default/templates/login.tpl.htm
New file
@@ -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>