+<?php startup_gettext(); ?>
<html>
<head>
<title>Tiny Tiny RSS : Login</title>
- <link rel="stylesheet" type="text/css" href="lib/dijit/themes/claro/claro.css"/>
- <link rel="stylesheet" type="text/css" href="tt-rss.css">
+ <?php echo stylesheet_tag("lib/dijit/themes/claro/claro.css") ?>
+ <?php echo stylesheet_tag("css/default.css") ?>
<link rel="shortcut icon" type="image/png" href="images/favicon.png">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <script type="text/javascript" src="lib/dojo/dojo.js" djConfig="parseOnLoad: true"></script>
- <script type="text/javascript" src="lib/prototype.js"></script>
- <script type="text/javascript" src="lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"></script>
- <script type="text/javascript" src="js/functions.js"></script>
- <script type="text/javascript" charset="utf-8" src="errors.php?mode=js"></script>
-</head>
+ <?php
+ foreach (array("lib/prototype.js",
+ "lib/dojo/dojo.js",
+ "lib/dojo/tt-rss-layer.js",
+ "js/functions.js",
+ "errors.php?mode=js") as $jsfile) {
+
+ echo javascript_tag($jsfile);
+
+ } ?>
+
+ <script type="text/javascript">
+ require({cache:{}});
+ Event.observe(window, 'load', function() {
+ init();
+ });
+ </script>
+ <style type="text/css">
+ body.ttrss_login {
+ padding : 2em;
+ font-size : 14px;
+ }
-<body id="ttrssLogin" class="claro">
+ fieldset {
+ margin-left : auto;
+ margin-right : auto;
+ display : block;
+ width : 400px;
+ border-width : 0px;
+ }
-<script type="text/javascript">
-function init() {
+ label {
+ width : 120px;
+ margin-right : 20px;
+ display : inline-block;
+ text-align : right;
+ color : gray;
+ }
+
+ div.header {
+ border: 0px solid #0088cc;
+ border-bottom-width: 1px;
+ margin-bottom : 1em;
+ padding-bottom : 5px;
+ }
- dojo.require("dijit.Dialog");
+ div.footer {
+ margin-top : 1em;
+ padding-top : 5px;
+ border: 0px solid #0088cc;
+ border-top-width: 1px;
+ text-align : center;
+ color : gray;
+ font-size : 12px;
+ }
+
+ a.forgotpass {
+ text-align : right;
+ font-size : 11px;
+ display : inline-block;
+ }
+
+ a {
+ color: #0088cc;
+ text-decoration: none;
+ }
+
+ a:hover,
+ a:focus {
+ color: #005580;
+ text-decoration: underline;
+ }
- var test = setCookie("ttrss_test", "TEST");
+ div.footer a {
+ color : gray;
+ }
- if (getCookie("ttrss_test") != "TEST") {
- return fatalError(2);
+ div.footer a:hover {
+ color : #0088cc;
}
- var limit_set = getCookie("ttrss_bwlimit");
+ div.row {
+ padding : 0px 0px 5px 0px;
+ }
- if (limit_set == "true") {
- document.forms["loginForm"].bw_limit.checked = true;
+ div.row-error {
+ color : red;
+ text-align : center;
+ padding : 0px 0px 5px 0px;
}
- document.forms["loginForm"].login.focus();
+ </style>
+</head>
+
+<body class="claro ttrss_main ttrss_login">
+
+<script type="text/javascript">
+function init() {
+
+ require(['dojo/parser','dijit/form/Button','dijit/form/CheckBox','dijit/form/Form',
+ 'dijit/form/Select','dijit/form/TextBox','dijit/form/ValidationTextBox'],function(parser){
+ parser.parse();
+ //show tooltip node only after this widget is instaniated.
+ dojo.query('div[dojoType="dijit.Tooltip"]').style({
+ display:''
+ });
+ fetchProfiles();
+ dijit.byId("bw_limit").attr("checked", getCookie("ttrss_bwlimit") == 'true');
+ document.forms.loginForm.login.focus();
+ });
- fetchProfiles();
}
function fetchProfiles() {
try {
- var query = "?op=getProfiles&login=" + param_escape(document.forms["loginForm"].login.value);
+ var query = "op=getProfiles&login=" + param_escape(document.forms["loginForm"].login.value);
if (query) {
new Ajax.Request("public.php", {
onComplete: function(transport) {
if (transport.responseText.match("select")) {
$('profile_box').innerHTML = transport.responseText;
+ //dojo.parser.parse('profile_box');
}
} });
}
}
-function languageChange(elem) {
- try {
- document.forms['loginForm']['click'].disabled = true;
-
- var lang = elem[elem.selectedIndex].value;
- setCookie("ttrss_lang", lang, <?php print SESSION_COOKIE_LIFETIME ?>);
- window.location.reload();
- } catch (e) {
- exception_error("languageChange", e);
- }
-}
-
function gotoRegForm() {
window.location.href = "register.php";
return false;
exception_error("bwLimitChange", e);
}
}
+</script>
-function validateLoginForm(f) {
- try {
+<?php $return = urlencode($_SERVER["REQUEST_URI"]) ?>
- if (f.login.value.length == 0) {
- new Effect.Highlight(f.login);
- return false;
- }
+<form action="public.php?return=<?php echo $return ?>"
+ dojoType="dijit.form.Form" method="POST" id="loginForm" name="loginForm">
- if (f.password.value.length == 0) {
- new Effect.Highlight(f.password);
- return false;
- }
+<input dojoType="dijit.form.TextBox" style="display : none" name="op" value="login">
- document.forms['loginForm']['click'].disabled = true;
+<div class='header'>
+ <img src="images/logo_wide.png">
+</div>
- return true;
- } catch (e) {
- exception_error("validateLoginForm", e);
- return true;
- }
-}
-</script>
+<div class='form'>
-<script type="text/javascript">
- Event.observe(window, 'load', function() {
- init();
- });
-</script>
+ <fieldset>
+ <?php if ($_SESSION["login_error_msg"]) { ?>
+ <div class="row-error">
+ <?php echo $_SESSION["login_error_msg"] ?>
+ </div>
+ <?php $_SESSION["login_error_msg"] = ""; ?>
+ <?php } ?>
+ <div class="row">
+ <label><?php echo __("Login:") ?></label>
+ <input name="login" class="input input-text" type="text"
+ onchange="fetchProfiles()" onfocus="fetchProfiles()" onblur="fetchProfiles()"
+ style="width : 220px"
+ required="1"
+ value="<?php echo $_SESSION["fake_login"] ?>" />
+ </div>
+
+
+ <div class="row">
+ <label><?php echo __("Password:") ?></label>
+ <input type="password" name="password" required="1"
+ style="width : 220px" class="input input-text"
+ value="<?php echo $_SESSION["fake_password"] ?>"/>
+ <label></label>
+ <?php if (strpos(PLUGINS, "auth_internal") !== FALSE) { ?>
+ <a class='forgotpass' href="public.php?op=forgotpass"><?php echo __("I forgot my password") ?></a>
+ <?php } ?>
+ </div>
-<?php $return = urlencode($_SERVER["REQUEST_URI"]) ?>
-<form action="public.php?return=<?php echo $return ?>"
- method="POST" id="loginForm" name="loginForm" onsubmit="return validateLoginForm(this)">
-
-<input type="hidden" name="op" value="login">
-
-<table class="loginForm2">
-<tr>
- <td class="loginTop" valign="bottom" align="left">
- <img src="images/logo_wide.png">
- </td>
-</tr><tr>
- <td align="center" valign="middle" class="loginMiddle" height="100%">
- <?php if ($_SESSION['login_error_msg']) { ?>
- <div class="loginError"><?php echo $_SESSION['login_error_msg'] ?></div>
- <?php $_SESSION['login_error_msg'] = ""; ?>
+ <div class="row">
+ <label><?php echo __("Profile:") ?></label>
+
+ <span id='profile_box'><select disabled='disabled' dojoType='dijit.form.Select'
+ style='width : 220px; margin : 0px'>
+ <option><?php echo __("Default profile") ?></option></select></span>
+
+ </div>
+
+ <div class="row">
+ <label> </label>
+ <input dojoType="dijit.form.CheckBox" name="bw_limit" id="bw_limit" type="checkbox"
+ onchange="bwLimitChange(this)">
+ <label id="bw_limit_label" style='display : inline' for="bw_limit"><?php echo __("Use less traffic") ?></label>
+ </div>
+
+ <div dojoType="dijit.Tooltip" connectId="bw_limit_label" position="below" style="display:none">
+<?php echo __("Does not display images in articles, reduces automatic refreshes."); ?>
+ </div>
+
+ <?php if (SESSION_COOKIE_LIFETIME > 0) { ?>
+
+ <div class="row">
+ <label> </label>
+ <input dojoType="dijit.form.CheckBox" name="remember_me" id="remember_me" type="checkbox">
+ <label style='display : inline' for="remember_me"><?php echo __("Remember me") ?></label>
+ </div>
+
<?php } ?>
- <table>
- <tr><td align="right"><?php echo __("Login:") ?></td>
- <td align="right"><input name="login"
- onchange="fetchProfiles()" onfocus="fetchProfiles()" onblur="fetchProfiles()"
- value="<?php echo $_SESSION["fake_login"] ?>"></td></tr>
- <tr><td align="right"><?php echo __("Password:") ?></td>
- <td align="right"><input type="password" name="password"
- value="<?php echo $_SESSION["fake_password"] ?>"></td></tr>
- <tr><td align="right"><?php echo __("Language:") ?></td>
- <td align="right">
- <?php
- print_select_hash("language", $_COOKIE["ttrss_lang"], get_translations(),
- "style='width : 100%' onchange='languageChange(this)'");
-
- ?>
- </td></tr>
-
- <tr><td align="right"><?php echo __("Profile:") ?></td>
- <td align="right" id="profile_box">
- <select style='width : 100%' disabled='disabled'>
- <option><?php echo __("Default profile") ?></option></select>
- </td></tr>
-
- <tr><td colspan="2" align="right" class="innerLoginCell">
-
- <button type="submit" name='click'><?php echo __('Log in') ?></button>
+
+ <div class="row" style='text-align : right'>
+ <button dojoType="dijit.form.Button" type="submit"><?php echo __('Log in') ?></button>
<?php if (defined('ENABLE_REGISTRATION') && ENABLE_REGISTRATION) { ?>
- <button onclick="return gotoRegForm()">
+ <button onclick="return gotoRegForm()" dojoType="dijit.form.Button">
<?php echo __("Create new account") ?></button>
<?php } ?>
+ </div>
- </td></tr>
+ </fieldset>
- <tr><td colspan="2" align="right" class="innerLoginCell">
- <div class="small">
- <input name="bw_limit" id="bw_limit" type="checkbox"
- onchange="bwLimitChange(this)">
- <label for="bw_limit">
- <?php echo __("Use less traffic") ?></label></div>
+</div>
- </td></tr>
-
-
- </table>
- </td>
-</tr><tr>
- <td align="center" class="loginBottom">
+<div class='footer'>
<a href="http://tt-rss.org/">Tiny Tiny RSS</a>
- <?php if (!defined('HIDE_VERSION')) { ?>
- v<?php echo VERSION ?>
- <?php } ?>
© 2005–<?php echo date('Y') ?> <a href="http://fakecake.org/">Andrew Dolgov</a>
- </td>
-</tr>
-
-</table>
+</div>
</form>