0.11 dev (#1010)
* update layout and bootstrap package * update templates Co-authored-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
8348
templates/Froxlor/assets/js/main.js
Normal file
8348
templates/Froxlor/assets/js/main.js
Normal file
File diff suppressed because it is too large
Load Diff
5
templates/Froxlor/assets/js/main.js.LICENSE.txt
Normal file
5
templates/Froxlor/assets/js/main.js.LICENSE.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
/*!
|
||||
* Bootstrap v5.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
*/
|
||||
@@ -1,77 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="noindex, nofollow, noarchive"/>
|
||||
<meta
|
||||
name="GOOGLEBOT" content="nosnippet"/>
|
||||
<html lang="en" {% if darkmode is defined %}class="{{ darkmode }}"{% endif %}>
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="noindex, nofollow, noarchive"/>
|
||||
<meta name="googlebot" content="nosnippet"/>
|
||||
|
||||
<!-- Bootstrap CSS -->
|
||||
<link
|
||||
rel="stylesheet" href="{{ basehref|default("") }}vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
|
||||
<!-- CSS -->
|
||||
<link href="{{ basehref|default("") }}templates/Froxlor/assets/css/main.css" rel="stylesheet">
|
||||
{{ theme_css|raw }}
|
||||
{% block custom_css %}{% endblock %}
|
||||
|
||||
<!-- FontAwesome CSS -->
|
||||
<link
|
||||
rel="stylesheet" href="{{ basehref|default("") }}vendor/components/font-awesome/css/all.min.css">
|
||||
<!-- Scripts -->
|
||||
<script src="{{ basehref|default("") }}templates/Froxlor/assets/js/main.js"></script>
|
||||
{{ theme_js|raw }}
|
||||
{% block custom_js %}{% endblock %}
|
||||
<title>Froxlor
|
||||
{% if page_title %}
|
||||
|
|
||||
{{ page_title }}
|
||||
{% endif %}
|
||||
</title>
|
||||
</head>
|
||||
<body {% if body_class is defined %}class="{{ body_class }}"{% endif %}>
|
||||
<div class="container-fluid">
|
||||
{% block navigation %}{% endblock %}
|
||||
|
||||
<!-- our css -->
|
||||
<link href="{{ basehref|default("") }}templates/Froxlor/assets/css/main.css" rel="stylesheet">
|
||||
{{ theme_css|raw }}
|
||||
{% block custom_css %}{% endblock %}
|
||||
{{ global_errors|raw }}
|
||||
|
||||
<!-- Bootstrap and necessary plugins -->
|
||||
<script src="{{ basehref|default("") }}vendor/components/jquery/jquery.min.js"></script>
|
||||
<script src="{{ basehref|default("") }}vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
{{ theme_js|raw }}
|
||||
{% block custom_js %}{% endblock %}
|
||||
<title>Froxlor
|
||||
{% if page_title %}
|
||||
|
|
||||
{{ page_title }}
|
||||
{% endif %}
|
||||
</title>
|
||||
</head>
|
||||
{% block body %}{% endblock %}
|
||||
|
||||
|
||||
<body>
|
||||
<div class="container-fluid"> {% block navigation %}{% endblock %}
|
||||
|
||||
{{ global_errors|raw }}
|
||||
|
||||
{% block body %}{% endblock %}
|
||||
|
||||
<footer class="pt-5 pb-5 text-center">
|
||||
<span><img src="{{ basehref|default("") }}templates/Froxlor/assets/img/logo_grey.png" alt="Froxlor"/>
|
||||
{% if install_mode is not defined %}
|
||||
{% if (get_setting('admin.show_version_login') ==
|
||||
'1' and module == 'Login') or (module != 'Login'
|
||||
and get_setting('admin.show_version_footer') == '1') %}{% endif %}
|
||||
<footer class="py-5 text-center">
|
||||
<span>
|
||||
<img src="{{ basehref|default("") }}templates/Froxlor/assets/img/logo_grey.png" alt="Froxlor"/>
|
||||
{% if install_mode is not defined %}
|
||||
{% if (get_setting('admin.show_version_login') == '1'
|
||||
and module == 'Login') or (module != 'Login'
|
||||
and get_setting('admin.show_version_footer') == '1') %}
|
||||
{{ call_static('\\Froxlor\\Froxlor', 'getFullVersion') }}
|
||||
{% endif %}
|
||||
© 2009-{{ "now"|date("Y") }}
|
||||
by
|
||||
<a href="http://www.froxlor.org/" rel="external">the Froxlor Team</a><br/>
|
||||
{% if install_mode is not defined %}
|
||||
{% if (get_setting('panel.imprint_url') != '') %}
|
||||
<a href="{{ get_setting('panel.imprint_url') }}" target="_blank" class="footer-link">{{ lng('imprint') }}</a>
|
||||
{% endif %}
|
||||
{% if (get_setting('panel.terms_url') != '') %}
|
||||
<a href="{{ get_setting('panel.terms_url') }}" target="_blank" class="footer-link">{{ lng('terms') }}</a>
|
||||
{% endif %}
|
||||
{% if (get_setting('panel.privacy_url') != '') %}
|
||||
<a href="{{ get_setting('panel.privacy_url') }}" target="_blank" class="footer-link">{{ lng('privacy') }}</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
© 2009-{{ "now"|date("Y") }} by <a href="https://www.froxlor.org/" rel="external">the Froxlor Team</a>
|
||||
{% if install_mode is not defined %}
|
||||
{% if (get_setting('panel.imprint_url') != '') %}
|
||||
<a href="{{ get_setting('panel.imprint_url') }}" target="_blank" class="footer-link">{{ lng('imprint') }}</a>
|
||||
{% endif %}
|
||||
{% if (get_setting('panel.terms_url') != '') %}
|
||||
<a href="{{ get_setting('panel.terms_url') }}" target="_blank" class="footer-link">{{ lng('terms') }}</a>
|
||||
{% endif %}
|
||||
{% if (get_setting('panel.privacy_url') != '') %}
|
||||
<a href="{{ get_setting('panel.privacy_url') }}" target="_blank" class="footer-link">{{ lng('privacy') }}</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</span>
|
||||
|
||||
{% if lng('translator') %}
|
||||
<span class="mt-3">
|
||||
{{ lng('panel.translator') }}: {{ lng('translator') }}
|
||||
</span>
|
||||
{% if lng('translator') %}
|
||||
<br/>
|
||||
<span>{{ lng('panel.translator') }}:
|
||||
{{ lng('translator') }}
|
||||
{% endif %}
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
{% endif %}
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -82,7 +82,8 @@
|
||||
<input type="hidden" name="check" value="1"/>
|
||||
<input type="hidden" name="language" value="{{ pagecontent.form.activelang }}"/>
|
||||
<input type="hidden" name="installstep" value="1"/>
|
||||
<button class="btn btn-lg btn-success" type="submit" name="submitbutton">{{ lng('click_here_to_continue') }}
|
||||
»</button>
|
||||
<button class="btn btn-lg btn-success" type="submit" name="submitbutton">
|
||||
{{ lng('click_here_to_continue') }} »
|
||||
</button>
|
||||
</aside>
|
||||
</form>
|
||||
|
||||
@@ -1,53 +1,61 @@
|
||||
{% extends "Froxlor/base.html.twig" %}
|
||||
|
||||
{% set body_class = "min-vh-100 d-flex align-items-center" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container p-3 bg-light border border-top-0">
|
||||
<img src="{{ basehref|default('') }}templates/Froxlor/assets/img/logo.png" alt="Froxlor Server Management Panel"/>
|
||||
<section class="mt-4">
|
||||
<h3 class="text-center mb-3">{{ pagetitle }}</h3>
|
||||
{% if pagecontent.checks is defined or pagecontent.installprocess is defined %}
|
||||
<table class="table table-borderless table-sm">
|
||||
{% if pagecontent.checks is defined %}
|
||||
{% set checks = pagecontent.checks %}
|
||||
{% else %}
|
||||
{% set checks = pagecontent.installprocess %}
|
||||
{% endif %}
|
||||
{% for check in checks %}
|
||||
<tr class="{% if check.result == 1 %}table-danger{% elseif check.result == 2 %}table-warning{% endif %}">
|
||||
<td class="w-75" scope="row">{{ check.title }}</td>
|
||||
<td class="col-auto text-end{% if check.result == 0 %} text-success{% endif %}">
|
||||
<span class="d-none d-md-inline">{{ check.result_txt }}</span>
|
||||
{% if check.result == 0 %} ✓{% elseif check.result == 2 %}<span class="d-md-none"> ???</span>{% elseif check.result == 1 %}<span class="d-md-none"> !!!</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if check.result_desc is not empty %}
|
||||
<tr>
|
||||
<td colspan="2" class="text-end">
|
||||
<small>{{ check.result_desc|raw }}</span>
|
||||
<div class="container max-w-lg flex align-content-center mt-5">
|
||||
<img src="{{ basehref|default('') }}templates/Froxlor/assets/img/logo.png" class="filter-me" alt="Froxlor Server Management Panel"/>
|
||||
|
||||
<section class="card shadow mt-5">
|
||||
<div class="card-body">
|
||||
<h3 class="card-title mb-3">{{ pagetitle }}</h3>
|
||||
{% if pagecontent.checks is defined or pagecontent.installprocess is defined %}
|
||||
<table class="table table-borderless table-sm">
|
||||
{% if pagecontent.checks is defined %}
|
||||
{% set checks = pagecontent.checks %}
|
||||
{% else %}
|
||||
{% set checks = pagecontent.installprocess %}
|
||||
{% endif %}
|
||||
|
||||
{% for check in checks %}
|
||||
<tr class="{% if check.result == 1 %}table-danger{% elseif check.result == 2 %}table-warning{% endif %}">
|
||||
<td class="w-75" scope="row">{{ check.title }}</td>
|
||||
<td class="col-auto text-end{% if check.result == 0 %} text-success{% endif %}">
|
||||
<span class="d-none d-md-inline">{{ check.result_txt }}</span>
|
||||
{% if check.result == 0 %} <i class="fa fa-check-circle" {% elseif check.result == 2 %}<span class="d-md-none"> ???</span>{% elseif check.result == 1 %}<span class="d-md-none"> !!!</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
</small>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% elseif pagecontent.form is defined %}
|
||||
{% include "Froxlor/install/form.html.twig" %}
|
||||
{% else %}
|
||||
<div class="alert alert-warning" role="alert">
|
||||
{{ pagecontent }}
|
||||
{% if check.result_desc is not empty %}
|
||||
<tr>
|
||||
<td colspan="2" class="text-end">
|
||||
<span>{{ check.result_desc|raw }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% elseif pagecontent.form is defined %}
|
||||
{% include "Froxlor/install/form.html.twig" %}
|
||||
{% else %}
|
||||
<div class="alert alert-warning" role="alert">
|
||||
{{ pagecontent }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if pagenavigation is not empty %}
|
||||
<div class="row pt-md-3">
|
||||
<div class="col-12 col-md-8 d-flex align-items-center">
|
||||
<h4 class="p-0 m-0 text-{% if pagenavigation.bad %}danger{% else %}success{% endif %}">{{ pagenavigation.message }}</h4>
|
||||
</div>
|
||||
<div class="col-12 col-md-4 text-end mt-4 mt-md-0">
|
||||
<a class="btn btn-lg btn-block btn-{% if pagenavigation.bad %}warning{% else %}success{% endif %}" href="{{ pagenavigation.link}}">
|
||||
{{ pagenavigation.linktext }} »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if pagenavigation is not empty %}
|
||||
<div class="row pt-md-3">
|
||||
<div class="col-12 col-md-8 d-flex align-items-center">
|
||||
<h4 class="p-0 m-0 text-{% if pagenavigation.bad %}danger{% else %}success{% endif %}">{{ pagenavigation.message }}</h4>
|
||||
</div>
|
||||
<div class="col-12 col-md-4 text-end mt-4 mt-md-0">
|
||||
<a class="btn btn-lg btn-block btn-{% if pagenavigation.bad %}warning{% else %}success{% endif %}" href="{{ pagenavigation.link}}">{{ pagenavigation.linktext }}
|
||||
»</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}</section></div>{% endblock %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,47 +1,60 @@
|
||||
{% extends "Froxlor/base.html.twig" %}
|
||||
|
||||
{% set body_class = "min-vh-100 d-flex align-items-center" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container p-3 bg-light border border-top-0">
|
||||
<img src="{{ basehref|default('') }}templates/Froxlor/assets/img/logo.png" alt="Froxlor Server Management Panel"/>
|
||||
<section class="mt-4">
|
||||
<h3 class="text-center mb-3">{{ pagetitle }}</h3>
|
||||
{% if upd_in_progress %}
|
||||
<div class="alert alert-warning" role="alert">
|
||||
{{ lng('update.updateinprogress_onlyadmincanlogin')|raw }}
|
||||
</div>
|
||||
{% elseif successmsg is not empty %}
|
||||
<div class="alert alert-success" role="alert">
|
||||
<h4 class="alert-heading">{{ lng('success.success') }}</h4>
|
||||
<p>{{ successmsg|raw }}</p>
|
||||
</div>
|
||||
{% elseif message is not empty %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<h4 class="alert-heading">{{ lng('error.error') }}</h4>
|
||||
<p>{{ message|raw }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
<form action="index.php" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<div class="row mb-3">
|
||||
<label for="loginname" class="col-sm-4 col-form-label">{{ lng('login.username') }}</label>
|
||||
<div class="col-sm-8">
|
||||
<input class="form-control" type="text" name="loginname" id="loginname" value="" required/>
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<form class="col-4 d-flex flex-column" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<img class="align-self-center mb-5" src="{{ basehref }}templates/Froxlor/assets/img/logo.png" alt="Froxlor Server Management Panel"/>
|
||||
|
||||
<div class="card shadow">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ pagetitle }}</h5>
|
||||
<p>Please log in to access your Account.</p>
|
||||
|
||||
{% if upd_in_progress %}
|
||||
<div class="alert alert-warning" role="alert">
|
||||
{{ lng('update.updateinprogress_onlyadmincanlogin')|raw }}
|
||||
</div>
|
||||
{% elseif successmsg is not empty %}
|
||||
<div class="alert alert-success" role="alert">
|
||||
<h4 class="alert-heading">{{ lng('success.success') }}</h4>
|
||||
<p>{{ successmsg|raw }}</p>
|
||||
</div>
|
||||
{% elseif message is not empty %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<h4 class="alert-heading">{{ lng('error.error') }}</h4>
|
||||
<p>{{ message|raw }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="loginname" class="col-form-label">{{ lng('login.username') }}</label>
|
||||
<input class="form-control" type="text" name="loginname" id="loginname" value="" required/>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="password" class="col-form-label">{{ lng('login.password') }}</label>
|
||||
<input class="form-control" type="password" name="password" id="password" value="" required/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="language" class="col-form-label">{{ lng('login.language') }}</label>
|
||||
<select class="form-control" name="language" id="language" required>
|
||||
<option value="de">Deutsch</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body d-grid gap-2">
|
||||
<input type="hidden" name="script" value="{{ lastscript }}" />
|
||||
<input type="hidden" name="qrystr" value="{{ lastqrystr }}" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<button class="btn btn-primary rounded-top-0" type="submit" name="dologin">{{ lng('login.login') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="password" class="col-sm-4 col-form-label">{{ lng('login.password') }}</label>
|
||||
<div class="col-sm-8">
|
||||
<input class="form-control" type="password" name="password" id="password" value="" required/>
|
||||
</div>
|
||||
</div>
|
||||
<strong>language stuff noch</strong>
|
||||
<aside class="text-end">
|
||||
<input type="hidden" name="script" value="{{ lastscript }}" />
|
||||
<input type="hidden" name="qrystr" value="{{ lastqrystr }}" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<button class="btn btn-sm btn-primary" type="submit" name="dologin">{{ lng('login.login') }}</button>
|
||||
</aside>
|
||||
</form>
|
||||
<strong>passwort vergessen stuff noch</strong>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{% extends "Froxlor/base.html.twig" %}
|
||||
|
||||
{% set body_class = "min-vh-100 d-flex align-items-center" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="alert alert-{{ type }} fade show" role="alert">
|
||||
<h4 class="alert-heading">
|
||||
|
||||
@@ -1,17 +1,24 @@
|
||||
{% extends "Froxlor/base.html.twig" %}
|
||||
|
||||
{% set body_class = "min-vh-100 d-flex align-items-center" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container my-auto">
|
||||
<div class="alert alert-primary fade show" role="alert">
|
||||
<h4 class="alert-heading">
|
||||
Welcome to froxlor
|
||||
</h4>
|
||||
<p>It seems that Froxlor has not been installed yet.</p>
|
||||
<p>Click on the link below to start the installation.</p>
|
||||
<hr>
|
||||
<p class="mt-1 text-center">
|
||||
<a href="./install/install.php" class="btn btn-primary" title="Click to start the install process">Start install</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container max-w-lg flex align-content-center mt-5">
|
||||
<img src="templates/Sparkle/assets/img/logo.png" alt="Froxlor Server Management Panel" />
|
||||
|
||||
<div class="row gx-0 rounded shadow bg-primary text-white mt-5">
|
||||
<div class="col p-5 rounded-start">
|
||||
<h2 class="card-title">Welcome to Froxlor</h2>
|
||||
<p class="lead mt-5">It seems that Froxlor has not been installed yet.</p>
|
||||
<p class="lead">Click on the button below to start the installation.</p>
|
||||
</div>
|
||||
|
||||
<div class="col text-white position-relative">
|
||||
<img class="h-75 position-absolute bottom-0 end-0 rounded-corner-tl-bl" src="{{ basehref }}templates/Froxlor/assets/img/preview.png">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-5 text-end">
|
||||
<a class="btn btn-lg btn-primary" href="./install/install.php" title="Click to start the install process">Start install</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{% extends "Froxlor/base.html.twig" %}
|
||||
|
||||
{% set body_class = "min-vh-100 d-flex align-items-center" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container my-auto">
|
||||
<div class="alert alert-warning fade show" role="alert">
|
||||
@@ -8,9 +10,7 @@
|
||||
</h4>
|
||||
<p>The configuration file <b>lib/userdata.inc.php</b> cannot be read from the webserver.</p>
|
||||
<p>This mostly happens due to wrong ownership.<br />Try the following command to correct the ownership:</p>
|
||||
<p class="mb-0">
|
||||
<pre>chown -R {{ user }}:{{ group }} {{ installdir }}</pre>
|
||||
</p>
|
||||
<hr>
|
||||
<p class="mt-1 text-center">
|
||||
<a href="./install/install.php" class="btn btn-primary" title="Click to start the install process">Start install</a>
|
||||
|
||||
@@ -1,49 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="noindex, nofollow, noarchive" />
|
||||
<meta name="GOOGLEBOT" content="nosnippet" />
|
||||
<meta name="googlebot" content="nosnippet" />
|
||||
|
||||
<!-- Bootstrap CSS (external) -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||
<!-- CSS -->
|
||||
<link href="{{ basehref }}templates/Froxlor/assets/css/main.css" rel="stylesheet">
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="{{ basehref }}templates/Froxlor/assets/js/main.js"></script>
|
||||
|
||||
<title>Froxlor - Error</title>
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
<body class="min-vh-100 d-flex align-items-center">
|
||||
<div class="container-fluid">
|
||||
<div class="container my-auto">
|
||||
<div class="alert alert-danger fade show" role="alert">
|
||||
<h4 class="alert-heading">
|
||||
Whoops!
|
||||
</h4>
|
||||
<p>It seems you are using an older version of PHP</p>
|
||||
<p>Froxlor requires at least PHP version <FROXLOR_PHPMIN><br />The installed version is:
|
||||
<CURRENT_VERSION>
|
||||
</p>
|
||||
<hr>
|
||||
<p class="mt-1 text-center">
|
||||
<a href="index.php" class="btn btn-primary" title="Click to refresh">Refresh</a>
|
||||
</p>
|
||||
<div class="container max-w-lg">
|
||||
<div class="card bg-danger text-white">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">
|
||||
Whoops!
|
||||
</h4>
|
||||
<p>It seems you are using an older version of PHP</p>
|
||||
<p>Froxlor requires at least PHP version {{ froxlor_min_version }}</p>
|
||||
<p>The installed version is: {{ current_version }}</p>
|
||||
</div>
|
||||
<div class="card-footer text-end">
|
||||
<a href="" class="btn btn-primary" title="Click to refresh">Refresh</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="pt-5 pb-5 text-center">
|
||||
<span><img src="templates/Froxlor/assets/img/logo_grey.png" alt="Froxlor" />
|
||||
© 2009-<CURRENT_YEAR> by <a href="http://www.froxlor.org/" rel="external">the Froxlor
|
||||
Team</a><br />
|
||||
<footer class="pý-5 text-center">
|
||||
<span>
|
||||
<img src="{{ basehref }}templates/Froxlor/assets/img/logo_grey.png" alt="Froxlor" />
|
||||
© 2009-{{ current_year }} by <a href="https://www.froxlor.org/" rel="external">the Froxlor Team</a>
|
||||
</span>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js"
|
||||
integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF"
|
||||
crossorigin="anonymous"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -1,50 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="noindex, nofollow, noarchive" />
|
||||
<meta name="GOOGLEBOT" content="nosnippet" />
|
||||
<meta name="googlebot" content="nosnippet" />
|
||||
|
||||
<!-- Bootstrap CSS (external) -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||
<!-- CSS -->
|
||||
<link href="{{ basehref }}templates/Froxlor/assets/css/main.css" rel="stylesheet">
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="{{ basehref }}templates/Froxlor/assets/js/main.js"></script>
|
||||
|
||||
<title>Froxlor - Error</title>
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
<body class="min-vh-100 d-flex align-items-center">
|
||||
<div class="container-fluid">
|
||||
<div class="container my-auto">
|
||||
<div class="alert alert-danger fade show" role="alert">
|
||||
<h4 class="alert-heading">
|
||||
Whoops!
|
||||
</h4>
|
||||
<p>It seems you are missing some required files.</p>
|
||||
<p>Froxlor uses composer for its external requirements. Try the following command to install them:</p>
|
||||
<p class="mb-0">
|
||||
cd <FROXLOR_INSTALL_DIR> && composer install --no-dev</pre>
|
||||
</p>
|
||||
<hr>
|
||||
<p class="mt-1 text-center">
|
||||
<a href="index.php" class="btn btn-primary" title="Click to refresh">Refresh</a>
|
||||
</p>
|
||||
<div class="container max-w-lg">
|
||||
<div class="card bg-danger text-white">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">
|
||||
Whoops!
|
||||
</h4>
|
||||
<p>It seems you are missing some required files.</p>
|
||||
<p>Froxlor uses composer for its external requirements. Try the following command to install them:</p>
|
||||
<pre>cd {{ froxlor_install_dir }} && composer install --no-dev</pre>
|
||||
</div>
|
||||
<div class="card-footer text-end">
|
||||
<a href="" class="btn btn-primary" title="Click to refresh">Refresh</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="pt-5 pb-5 text-center">
|
||||
<span><img src="templates/Froxlor/assets/img/logo_grey.png" alt="Froxlor" />
|
||||
© 2009-<CURRENT_YEAR> by <a href="http://www.froxlor.org/" rel="external">the Froxlor
|
||||
Team</a><br />
|
||||
<footer class="py-5 text-center">
|
||||
<span>
|
||||
<img src="{{ basehref }}templates/Froxlor/assets/img/logo_grey.png" alt="Froxlor" />
|
||||
© 2009-{{ current_year }} by <a href="https://www.froxlor.org/" rel="external">the Froxlor Team</a>
|
||||
</span>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js"
|
||||
integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF"
|
||||
crossorigin="anonymous"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
1
templates/Froxlor/src/main.js
Normal file
1
templates/Froxlor/src/main.js
Normal file
@@ -0,0 +1 @@
|
||||
import 'bootstrap';
|
||||
9
templates/Froxlor/src/scss/_variables.scss
Normal file
9
templates/Froxlor/src/scss/_variables.scss
Normal file
@@ -0,0 +1,9 @@
|
||||
// Colors
|
||||
$primary: #2a2a2a;
|
||||
|
||||
// Body
|
||||
$body-bg: #f8f8f8;
|
||||
$body-color: $primary;
|
||||
|
||||
// Borders
|
||||
$border-radius: 0.5rem;
|
||||
72
templates/Froxlor/src/scss/main.scss
Normal file
72
templates/Froxlor/src/scss/main.scss
Normal file
@@ -0,0 +1,72 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@import "variables";
|
||||
@import "~bootstrap/scss/bootstrap";
|
||||
@import "~@fortawesome/fontawesome-free/css/all";
|
||||
|
||||
.max-w-lg {
|
||||
max-width: 992px !important;
|
||||
}
|
||||
|
||||
.card {
|
||||
border: none;
|
||||
@apply shadow;
|
||||
|
||||
.card-body {
|
||||
padding: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.rounded-corner-tl-bl {
|
||||
border-radius: $border-radius 0 $border-radius 0;
|
||||
}
|
||||
|
||||
footer {
|
||||
color: #888;
|
||||
font-size: 0.75rem !important;
|
||||
}
|
||||
|
||||
footer a,
|
||||
footer a:active,
|
||||
footer a:visited {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.dark {
|
||||
/* redefine theme colors for dark theme */
|
||||
$primary: #3a3a3a;
|
||||
$secondary: #111111;
|
||||
$success: #3a3a3a;
|
||||
$dark: #000;
|
||||
|
||||
$card-bg: #3a3a3a;
|
||||
|
||||
$theme-colors: (
|
||||
"primary": $primary,
|
||||
"secondary": $secondary,
|
||||
"success": $success,
|
||||
"danger": $danger,
|
||||
"info": $indigo,
|
||||
"dark": $dark,
|
||||
"light": $light,
|
||||
);
|
||||
|
||||
/* redefine theme color variables */
|
||||
@each $color, $value in $theme-colors {
|
||||
--#{$variable-prefix}#{$color}: #{$value};
|
||||
}
|
||||
|
||||
/* redefine theme color rgb vars (used for bg- colors) */
|
||||
$theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value");
|
||||
@each $color, $value in $theme-colors-rgb {
|
||||
--#{$variable-prefix}#{$color}-rgb: #{$value};
|
||||
}
|
||||
|
||||
$body-color: #999;
|
||||
$body-bg: #222;
|
||||
|
||||
--#{$variable-prefix}body-color: #{$body-color};
|
||||
--#{$variable-prefix}body-bg: #{$body-bg};
|
||||
|
||||
@import "bootstrap";
|
||||
}
|
||||
Reference in New Issue
Block a user