182 lines
11 KiB
XML

<odoo>
<template id="custom_login_layout" inherit_id="web.login_layout" name="Custom Dine360 Login Layout" priority="99">
<xpath expr="t" position="replace">
<t t-call="web.frontend_layout">
<t t-set="html_data" t-value="{'style': 'height: 100%;'}"/>
<t t-set="body_classname" t-value="'o_custom_login_body'"/>
<t t-set="no_header" t-value="True"/>
<t t-set="no_footer" t-value="True"/>
<t t-set="title">Dine360 - Smart Restaurant Management</t>
<t t-set="head">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" type="text/css" href="/dine360_dashboard/static/src/css/login_style.css?v=3.5"/>
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&amp;display=swap" rel="stylesheet"/>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
var btn = document.getElementById('togglePasswordBtn');
var pwd = document.getElementById('password');
var icon = document.getElementById('togglePasswordIcon');
if (btn &amp;&amp; pwd &amp;&amp; icon) {
btn.addEventListener('click', function(e) {
e.preventDefault();
if (pwd.type === 'password') {
pwd.type = 'text';
icon.classList.remove('fa-eye-slash');
icon.classList.add('fa-eye');
} else {
pwd.type = 'password';
icon.classList.remove('fa-eye');
icon.classList.add('fa-eye-slash');
}
});
}
});
</script>
</t>
<!-- Top Navbar Header (Div container to prevent header resets) -->
<div class="o_login_top_header">
<div class="o_top_header_left">
<div class="o_top_brand">
<div class="o_top_brand_icon">
<i class="fa fa-cutlery"/>
</div>
<span class="o_top_brand_name">Dine<span class="o_top_brand_accent">360</span></span>
</div>
<div class="o_top_header_divider"/>
<span class="o_top_header_subtitle">Smart Restaurant Management</span>
</div>
<div class="o_top_header_right">
<div class="o_lang_dropdown">
<button class="o_lang_btn" type="button">
<i class="fa fa-globe"/>
<span>English</span>
<i class="fa fa-angle-down"/>
</button>
</div>
<a href="mailto:support@dine360.com" class="o_help_pill_btn">
<i class="fa fa-headphones"/>
<span>Need Help?</span>
</a>
</div>
</div>
<div class="o_login_main_wrapper">
<!-- Subtle background decorative curved swoosh SVG -->
<div class="o_curved_red_accent">
<svg viewBox="0 0 600 600" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M600 50C450 120 320 280 400 480C440 580 520 620 600 650" stroke="#dc2626" stroke-width="1.2" stroke-opacity="0.3" fill="none"/>
<path d="M600 120C480 180 370 320 440 500C475 585 540 620 600 640" stroke="#fca5a5" stroke-width="0.8" stroke-opacity="0.25" fill="none"/>
</svg>
</div>
<!-- Left Side: Culinary Branding Hero Showcase -->
<div class="o_login_left_side">
<div class="o_login_hero_content">
<div class="o_hero_badge">
<span class="o_hero_badge_dot"/>
<span>NEXT-GEN RESTAURANT SUITE</span>
</div>
<h1 class="o_hero_title">
Elevate Your Dining<br/>
<span class="o_title_accent">Experience</span>
</h1>
<p class="o_hero_subtitle">Unified Kitchen Display System (KDS), Interactive Tables, Reservations, and Online Orders — all in one modern platform.</p>
<div class="o_hero_features">
<div class="o_hero_feature_item">
<div class="o_feature_icon"><i class="fa fa-cutlery"/></div>
<div class="o_feature_text">
<h6>Interactive Floor Plans</h6>
<p>Real-time visual table booking &amp; occupancy tracking.</p>
</div>
</div>
<div class="o_hero_feature_item">
<div class="o_feature_icon">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 2C9.5 2 7.4 3.7 6.8 6c-.4-.1-.8-.1-1.2-.1C3 5.9 1 7.9 1 10.5 1 12.8 2.6 14.8 4.8 15.1L5 20h14l.2-4.9c2.2-.3 3.8-2.3 3.8-4.6 0-2.6-2-4.6-4.6-4.6-.4 0-.8 0-1.2.1C16.6 3.7 14.5 2 12 2zm-5 17h10v1H7v-1z"/>
</svg>
</div>
<div class="o_feature_text">
<h6>Real-Time Kitchen Display</h6>
<p>Automated order routing, prep times, and status syncing.</p>
</div>
</div>
<div class="o_hero_feature_item">
<div class="o_feature_icon"><i class="fa fa-mobile"/></div>
<div class="o_feature_text">
<h6>Seamless QR &amp; Online Orders</h6>
<p>Zero-friction customer self-ordering and delivery dispatch.</p>
</div>
</div>
</div>
</div>
</div>
<!-- Right Side: Clean White Floating Login Card -->
<div class="o_login_right_side">
<div class="o_login_card">
<div class="o_login_card_logo">
<div class="o_brand_icon">
<i class="fa fa-cutlery"/>
</div>
<span class="o_brand_name">Dine<span class="o_brand_accent">360</span></span>
</div>
<div class="o_login_header_text text-center">
<h3>Welcome Back</h3>
<p>Sign in to access your restaurant operations dashboard</p>
</div>
<div class="o_login_form_container">
<t t-out="0"/>
</div>
<div class="o_login_footer text-center mt-3">
<a href="/web/database/selector" t-if="not disable_database_manager" class="o_login_link small text-decoration-none">
<i class="fa fa-database me-1"/>Switch Database
</a>
</div>
<div class="o_login_brand_footer text-center mt-3">
<p>Powered by <span class="o_powered_brand">Dine360</span> Cloud ERP</p>
</div>
</div>
</div>
</div>
</t>
</xpath>
</template>
<!-- Custom Login Form Fields Inheritance (Icons + Eye Toggle + Arrow Button) -->
<template id="custom_login_form_fields" inherit_id="web.login" name="Custom Dine360 Login Fields" priority="99">
<xpath expr="//div[hasclass('field-login')]" position="replace">
<div class="mb-3 field-login">
<label for="login" class="form-label">Email</label>
<div class="o_input_icon_wrap">
<i class="fa fa-envelope-o o_input_icon"/>
<input type="text" placeholder="Email" name="login" t-att-value="login" id="login" class="form-control" required="required" autocomplete="username" autofocus="autofocus" autocapitalize="off"/>
</div>
</div>
</xpath>
<xpath expr="//div[hasclass('mb-3')][label[@for='password']]" position="replace">
<div class="mb-3 field-password">
<label for="password" class="form-label">Password</label>
<div class="o_input_icon_wrap">
<i class="fa fa-lock o_input_icon"/>
<input type="password" placeholder="Password" name="password" id="password" class="form-control" required="required" autocomplete="current-password" t-att-autofocus="'autofocus' if login else None" maxlength="4096"/>
<button type="button" class="btn o_toggle_password_btn" id="togglePasswordBtn" tabindex="-1">
<i class="fa fa-eye-slash" id="togglePasswordIcon"/>
</button>
</div>
</div>
</xpath>
<xpath expr="//button[@type='submit']" position="replace">
<button type="submit" class="btn btn-primary o_login_submit_btn">
<span>Log In</span>
<i class="fa fa-arrow-right ms-2"/>
</button>
</xpath>
</template>
</odoo>