CINXE.COM
Login :: Backpack Admin Panel
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="robots" content="noindex, nofollow"> <meta name="csrf-token" content="tqkMDMFbVnynuankguDLZnrI0tpXmCvwEdYTDUOf"/> <title>Login :: Backpack Admin Panel</title> <script>document.documentElement.setAttribute("data-bs-theme", localStorage.colorMode ?? 'light');</script> <link href="/storage/basset/unpkg.com/@tabler/core@1.0.0-beta19/dist/css/tabler.min.css?187e21de716e" rel="stylesheet" type="text/css" /> <link href="/storage/basset/vendor/backpack/theme-tabler/resources/assets/css/style.css?187e21de716e" rel="stylesheet" type="text/css" /> <link href="/storage/basset/unpkg.com/animate.css@4.1.1/animate.compat.css?187e21de716e" rel="stylesheet" type="text/css" /> <link href="/storage/basset/unpkg.com/noty@3.2.0-beta-deprecated/lib/noty.css?187e21de716e" rel="stylesheet" type="text/css" /> <link href="/storage/basset/cdnjs.cloudflare.com/ajax/libs/line-awesome/1.3.0/line-awesome/css/line-awesome.min.css?187e21de716e" rel="stylesheet" type="text/css" /> <link href="/storage/basset/vendor/backpack/crud/src/resources/assets/css/common.css?187e21de716e" rel="stylesheet" type="text/css" /> <link href="/storage/basset/vendor/backpack/theme-tabler/resources/assets/css/color-adjustments.css?187e21de716e" rel="stylesheet" type="text/css" /> <link href="/storage/basset/vendor/backpack/theme-tabler/resources/assets/css/colors.css?187e21de716e" rel="stylesheet" type="text/css" /> <style> footer { width: 100%; position: fixed; bottom: 0; background-color: transparent !important; border: none !important; } .switch-mode { position: absolute; top: 0; right: 0; z-index: 999; } </style> </head> <body class=" "> <script> class ColorMode { constructor(states, defaultColorMode) { this.value = null; this.valueSystem = null; this.listeners = []; this.states = states; this.set(window.localStorage.getItem('colorMode') ?? defaultColorMode); // listen for color scheme changes const query = window.matchMedia('(prefers-color-scheme: dark)'); query.addEventListener('change', e => this.onColorSchemeChange(e)); this.onColorSchemeChange(query); } set(theme = 'system', fromSystemChange = false) { // clear previous theme attributes window.localStorage.removeItem('colorMode'); document.documentElement.removeAttribute('data-theme'); document.documentElement.removeAttribute('data-bs-theme'); document.body.className = document.body.className.replace(/theme-\w+/, '').trim(); // store changes if not from color scheme changes if(!fromSystemChange) { this.value = theme; if(theme !== 'system') { window.localStorage.setItem('colorMode', theme); document.documentElement.dataset.theme = theme; } } if(theme === 'system') theme = this.valueSystem; document.documentElement.dataset.bsTheme = theme; document.body.classList.add(`theme-${theme}`); this.listeners.forEach(listener => listener && listener(this.result)); } get() { return this.value; } get result() { return this.value === 'system' ? this.valueSystem : this.value; } onColorSchemeChange(query) { this.valueSystem = query.matches ? 'dark' : 'light'; if(this.value === 'system') this.set(this.valueSystem, true); } switch() { let current = this.states.indexOf(this.value); let next = current + 1 >= this.states.length ? 0 : current + 1; this.set(this.states[next]); } onChange(callback) { return this.listeners.push(callback); } offChange(reference) { this.listeners[reference - 1] = null; } } window.colorMode = new ColorMode( // color modes list ["system","light","dark"], // default color mode "system" ); </script> <div class="switch-mode p-3"> <button onclick="colorMode.switch()" class="btn-link text-secondary border-none decoration-none shadow-none nav-link d-none show-theme-system" data-bs-toggle="tooltip" data-bs-placement="bottom" aria-label="Using system color mode" data-bs-original-title="Using system color mode"> <i class="la la-desktop fs-2 m-0"></i> </button> <button onclick="colorMode.switch()" class="btn-link text-secondary border-none decoration-none shadow-none nav-link d-none show-theme-light" data-bs-toggle="tooltip" data-bs-placement="bottom" aria-label="Using light color mode" data-bs-original-title="Using light color mode"> <i class="la la-sun fs-2 m-0"></i> </button> <button onclick="colorMode.switch()" class="btn-link text-secondary border-none decoration-none shadow-none nav-link d-none show-theme-dark" data-bs-toggle="tooltip" data-bs-placement="bottom" aria-label="Using dark color mode" data-bs-original-title="Using dark color mode"> <i class="la la-moon fs-2 m-0"></i> </button> </div> <div class="page page-center"> <div class="container container-tight py-4"> <div class="text-center mb-4 display-6 auth-logo-container"> <img src="/assets/img/backpack_logo.svg" class="project-logo" style="width: 142px; height: auto;" alt="Backpack for Laravel"> </div> <div class="card card-md"> <div class="card-body pt-0"> <h2 class="h2 text-center my-4">Login</h2> <form method="POST" action="https://demo.backpackforlaravel.com/admin/login" autocomplete="off" novalidate="" data-pan="login-form"> <input type="hidden" name="_token" value="tqkMDMFbVnynuankguDLZnrI0tpXmCvwEdYTDUOf" autocomplete="off"> <div class="mb-3"> <label class="form-label" for="email">Email</label> <input autofocus tabindex="1" type="email" name="email" value="admin@example.com" id="email" class="form-control "> </div> <div class="mb-2"> <label class="form-label" for="password"> Password </label> <input tabindex="2" type="password" name="password" id="password" class="form-control " value="admin"> </div> <div class="d-flex justify-content-between align-items-center mb-2"> <label class="form-check mb-0"> <input name="remember" tabindex="3" type="checkbox" class="form-check-input"> <span class="form-check-label">Remember me</span> </label> <div class="form-label-description"> <a tabindex="4" href="https://demo.backpackforlaravel.com/admin/password/reset">Forgot Your Password?</a> </div> </div> <div class="form-footer"> <button tabindex="5" type="submit" class="btn btn-primary w-100">Login</button> </div> </form> </div> </div> </div> </div> <footer class="d-print-none footer app-footer sticky-footer bg-transparent p-3 border-top-0"> <div class="container-xl"> <div class=" row text-center align-items-center flex-row-reverse"> <div class="col-lg-auto ms-lg-auto"> <ul class="list-inline list-inline-dots mb-0"> <li class="list-inline-item"> Powered by <a href="https://backpackforlaravel.com?ref=panel_footer_link" rel="noopener" target="_blank">Backpack for Laravel</a>. </li> </ul> </div> <div class="col-12 col-lg-auto mt-3 mt-lg-0"> <ul class="list-inline list-inline-dots mb-0"> <li class="list-inline-item"> Handcrafted by <a href="http://tabacitu.ro" rel="noopener" target="_blank">Cristian Tabacitu</a>. </li> </ul> </div> </div> </div> </footer> <script src="/storage/basset/unpkg.com/jquery@3.6.1/dist/jquery.min.js?187e21de716e" ></script> <script src="/storage/basset/unpkg.com/@popperjs/core@2.11.6/dist/umd/popper.min.js?187e21de716e" ></script> <script src="/storage/basset/unpkg.com/noty@3.2.0-beta-deprecated/lib/noty.min.js?187e21de716e" ></script> <script src="/storage/basset/unpkg.com/sweetalert@2.1.2/dist/sweetalert.min.js?187e21de716e" ></script> <script type="text/javascript"> // This is intentionaly run after dom loads so this way we can avoid showing duplicate alerts // when the user is beeing redirected by persistent table, that happens before this event triggers. document.onreadystatechange = function () { if (document.readyState == "interactive") { Noty.overrideDefaults({ layout: 'topRight', theme: 'backstrap', timeout: 2500, closeWith: ['click', 'button'], }); // get alerts from the alert bag var $alerts_from_php = JSON.parse('[]'); // get the alerts from the localstorage var $alerts_from_localstorage = JSON.parse(localStorage.getItem('backpack_alerts')) ? JSON.parse(localStorage.getItem('backpack_alerts')) : {}; // merge both php alerts and localstorage alerts Object.entries($alerts_from_php).forEach(function(type) { if(typeof $alerts_from_localstorage[type[0]] !== 'undefined') { type[1].map(function(msg) { $alerts_from_localstorage[type[0]].push(msg); }); } else { $alerts_from_localstorage[type[0]] = type[1]; } }); for (var type in $alerts_from_localstorage) { let messages = new Set($alerts_from_localstorage[type]); messages.forEach(function(text) { let alert = {}; alert['type'] = type; alert['text'] = text; new Noty(alert).show() }); } // in the end, remove backpack alerts from localStorage localStorage.removeItem('backpack_alerts'); } } </script> <script src="/storage/basset/vendor/backpack/theme-tabler/resources/assets/js/tabler.js?187e21de716e" ></script> <script src="/storage/basset/unpkg.com/@tabler/core@1.0.0-beta19/dist/js/tabler.min.js?187e21de716e" ></script> <script src="/storage/basset/vendor/backpack/crud/src/resources/assets/js/common.js?187e21de716e" ></script> <script> (function(){"use strict";window.__pan=window.__pan||{csrfToken:"tqkMDMFbVnynuankguDLZnrI0tpXmCvwEdYTDUOf",routePrefix:"pan",observer:null,clickListener:null,mouseoverListener:null,inertiaStartListener:null},window.__pan.observer&&(window.__pan.observer.disconnect(),window.__pan.observer=null),window.__pan.clickListener&&(document.removeEventListener("click",window.__pan.clickListener),window.__pan.clickListener=null),window.__pan.mouseoverListener&&(document.removeEventListener("mouseover",window.__pan.mouseoverListener),window.__pan.mouseoverListener=null),window.__pan.inertiaStartListener&&(document.removeEventListener("inertia:start",window.__pan.inertiaStartListener),window.__pan.inertiaStartListener=null),function(){const p=e=>{const n=new MutationObserver(e);n.observe(document.body,{childList:!0,subtree:!0,attributes:!0}),window.__pan.observer=n};let i=[],a=null,r=[],s=[],u=[];const c=()=>{if(i.length===0)return;const e=i.slice();i=[],navigator.sendBeacon(`/${window.__pan.routePrefix}/events`,new Blob([JSON.stringify({events:e,_token:window.__pan.csrfToken})],{type:"application/json"}))},l=function(){a&&clearTimeout(a),a=setTimeout(c,1e3)},d=function(e,n){const w=e.target.closest("[data-pan]");if(w===null)return;const o=w.getAttribute("data-pan");if(o!==null){if(n==="hover"){if(s.includes(o))return;s.push(o)}if(n==="click"){if(u.includes(o))return;u.push(o)}i.push({type:n,name:o}),l()}},_=function(){document.querySelectorAll("[data-pan]").forEach(n=>{if(n.checkVisibility!==void 0&&!n.checkVisibility())return;const t=n.getAttribute("data-pan");t!==null&&(r.includes(t)||(r.push(t),i.push({type:"impression",name:t})))}),l()};p(function(){r.forEach(e=>{document.querySelector(`[data-pan='${e}']`)===null&&(r=r.filter(t=>t!==e),s=s.filter(t=>t!==e),u=u.filter(t=>t!==e))}),_()}),window.__pan.clickListener=e=>d(e,"click"),document.addEventListener("click",window.__pan.clickListener),window.__pan.mouseoverListener=e=>d(e,"hover"),document.addEventListener("mouseover",window.__pan.mouseoverListener),window.__pan.inertiaStartListener=e=>{r=[],s=[],u=[],_()},document.addEventListener("inertia:start",window.__pan.inertiaStartListener),window.__pan.beforeUnloadListener=function(e){i.length!==0&&c()},window.addEventListener("beforeunload",window.__pan.beforeUnloadListener)}()})(); </script> </body> </html>