Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • acides/hiboo
  • frju365/hiboo
  • pascoual/hiboo
  • thedarky/hiboo
  • jeremy/hiboo
  • cyrinux/hiboo
  • a.f/hiboo
  • mickge/hiboo
  • llaq/hiboo
  • vaguelysalaried/hiboo
  • felinn-glotte/hiboo
  • AntoninDelFabbro/hiboo
  • docemmetbrown/hiboo
13 results
Show changes
Commits on Source (19)
...@@ -19,7 +19,8 @@ pre { ...@@ -19,7 +19,8 @@ pre {
.theme-switch { .theme-switch {
display: inline-block; display: inline-block;
height: 24px; height: 24px;
position: relative; position: absolute;
top: 5px;
width: 50px; width: 50px;
} }
...@@ -68,3 +69,9 @@ input:checked + .slider::before { ...@@ -68,3 +69,9 @@ input:checked + .slider::before {
.table-responsive { .table-responsive {
max-height: 70vh; max-height: 70vh;
} }
.action-block {
display: flex;
flex-wrap: wrap;
gap: 4px;
}
// FA // FA
import 'admin-lte/plugins/fontawesome-free/css/fontawesome.css'; import 'admin-lte/plugins/fontawesome-free/css/fontawesome.min.css';
import 'admin-lte/plugins/fontawesome-free/css/regular.css'; import 'admin-lte/plugins/fontawesome-free/css/solid.min.css';
import 'admin-lte/plugins/fontawesome-free/css/solid.css';
// AdminLTE // AdminLTE
import 'admin-lte/build/scss/adminlte.scss'; import 'admin-lte/build/scss/adminlte.scss';
import 'admin-lte/build/js/Layout.js'; import 'admin-lte/build/js/Layout.js';
import 'admin-lte/build/js/ControlSidebar.js';
import 'admin-lte/build/js/PushMenu.js'; import 'admin-lte/build/js/PushMenu.js';
import 'admin-lte/build/js/CardRefresh.js';
...@@ -12,7 +12,7 @@ class LoginForm(flask_wtf.FlaskForm): ...@@ -12,7 +12,7 @@ class LoginForm(flask_wtf.FlaskForm):
class TotpForm(flask_wtf.FlaskForm): class TotpForm(flask_wtf.FlaskForm):
totp = fields.PasswordField(_('Enter the one-time password delivered by your client'), [validators.DataRequired()]) totp = fields.PasswordField(_('Enter the one-time password delivered by your client'), [validators.DataRequired()], render_kw={'autocomplete': 'one-time-code'})
submit = fields.SubmitField(_('Confirm')) submit = fields.SubmitField(_('Confirm'))
......
...@@ -12,10 +12,10 @@ ...@@ -12,10 +12,10 @@
<dt class="col-lg-3">{% trans %}Username{% endtrans %}</dt> <dt class="col-lg-3">{% trans %}Username{% endtrans %}</dt>
<dd class="col-lg-9">{{ profile.username }}</dd> <dd class="col-lg-9">{{ profile.username }}</dd>
{% if profile.user %} {% if profile.user %}
<dt class="col-lg-3">{% trans %}Owner{% endtrans %}</dt> <dt class="col-lg-3">{% trans %}Owner{% endtrans %}</dt>
<dd class="col-lg-9"><a href="{{ url_for("user.details", user_uuid=profile.user_uuid) }}">{{ profile.user.username }}</a></dd> <dd class="col-lg-9"><a href="{{ url_for("user.details", user_uuid=profile.user_uuid) }}">{{ profile.user.username }}</a></dd>
{% endif %} {% endif %}
<dt class="col-lg-3">{% trans %}UUID{% endtrans %}</dt> <dt class="col-lg-3">{% trans %}UUID{% endtrans %}</dt>
<dd class="col-lg-9"><pre>{{ profile.uuid }}</pre></dd> <dd class="col-lg-9"><pre>{{ profile.uuid }}</pre></dd>
...@@ -29,23 +29,6 @@ ...@@ -29,23 +29,6 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-6 col">
<div class="card">
<div class="card-header">
<h4>{% trans %}Actions{% endtrans %}</h4>
</div>
<div class="card-body">
<dl class="row">
{% for action in profile.actions %}
<dt class="col-3"><a href="{{ action.url(profile) }}">{{ action.label | capitalize }}</a></dt>
<dd class="col-9">{{ action.description | capitalize }}</dd>
{% endfor %}
</dl>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col"> <div class="col-md-6 col">
{{ macros.timeline(profile.history, public_only=False) }} {{ macros.timeline(profile.history, public_only=False) }}
</div> </div>
......
...@@ -25,12 +25,6 @@ ...@@ -25,12 +25,6 @@
<li class="nav-item user"> <li class="nav-item user">
<div class="nav-link"><i class="fas fa-user"></i> {{ current_user.username }}</div> <div class="nav-link"><i class="fas fa-user"></i> {{ current_user.username }}</div>
</li> </li>
<li class="nav-item user">
<a href="{{ url_for("account.signout") }}" class="nav-link">
<i class="fas fa-sign-out"></i>
{% trans %}Sign out{% endtrans %}
</a>
</li>
{% else %} {% else %}
<li class="nav-item user"> <li class="nav-item user">
<a href="{{ url_for("account.signin_password") }}" class="nav-link"> <a href="{{ url_for("account.signin_password") }}" class="nav-link">
...@@ -39,14 +33,6 @@ ...@@ -39,14 +33,6 @@
</a> </a>
</li> </li>
{% endif %} {% endif %}
<li class="nav-item">
<div class="theme-switch-wrapper nav-link">
<label class="theme-switch" for="checkbox">
<input type="checkbox" id="checkbox">
<span class="slider round"></span>
</label>
</div>
</li>
</ul> </ul>
</nav> </nav>
...@@ -73,8 +59,11 @@ ...@@ -73,8 +59,11 @@
<small>{% block subtitle %}{{ subtitle }}{% endblock %}</small> <small>{% block subtitle %}{{ subtitle }}{% endblock %}</small>
</h1> </h1>
<div> <div>
<div class="action-block">
{% block actions %} {% block actions %}
{% endblock %} {% endblock %}
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -83,7 +72,7 @@ ...@@ -83,7 +72,7 @@
<div class="container-fluid"> <div class="container-fluid">
{% for category, message in get_flashed_messages(with_categories=True) or [] %} {% for category, message in get_flashed_messages(with_categories=True) or [] %}
<div class="col-md-6 col"> <div class="col-md-6 col">
<div class="alert alert-{{ category or "info" }}">{{ message }}</div> <div class="alert alert-{{ category or "info" }} text-break">{{ message }}</div>
</div> </div>
{% endfor %} {% endfor %}
{% if current_user.time_to_deletion and current_user.time_to_deletion() %} {% if current_user.time_to_deletion and current_user.time_to_deletion() %}
......
<li class="nav-item">
<a class="nav-link">
<i class="nav-icon fas fa-moon"></i>
<p>{% trans %}Dark theme{% endtrans %}</p>
<label class="theme-switch ml-3" for="checkbox">
<input type="checkbox" id="checkbox">
<span class="slider round"></span>
</label>
</a>
</li>
{% if current_user.is_authenticated %} {% if current_user.is_authenticated %}
<li class="nav-header">{% trans %}Account{% endtrans %}</li> <li class="nav-header">{% trans %}Account{% endtrans %}</li>
<li class="nav-item"> <li class="nav-item">
...@@ -25,11 +36,6 @@ ...@@ -25,11 +36,6 @@
<i class="nav-icon fas fa-qrcode"></i> <p>{% trans %}Two-factor authentication{% endtrans %}</p> <i class="nav-icon fas fa-qrcode"></i> <p>{% trans %}Two-factor authentication{% endtrans %}</p>
</a> </a>
</li> </li>
<li class="nav-item">
<a class="nav-link" href="{{ url_for("account.signout") }}">
<i class="nav-icon fas fa-sign-out-alt"></i> <p>{% trans %}Sign out{% endtrans %}</p>
</a>
</li>
{% else %} {% else %}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{{ utils.url_for("account.signup") }}"> <a class="nav-link" href="{{ utils.url_for("account.signup") }}">
...@@ -78,3 +84,12 @@ ...@@ -78,3 +84,12 @@
<i class="nav-icon fas fa-book"></i> <p>{% trans %}Admin guide{% endtrans %}</p> <i class="nav-icon fas fa-book"></i> <p>{% trans %}Admin guide{% endtrans %}</p>
</a> </a>
</li> </li>
{% if current_user.is_authenticated %}
<li class="nav-header"></li>
<li class="nav-item">
<a class="nav-link border" href="{{ url_for("account.signout") }}">
<i class="nav-icon fas fa-power-off"></i> <p>{% trans %}Sign out{% endtrans %}</p>
</a>
</li>
{% endif %}
No preview for this file type
This diff is collapsed.
var path = require("path"); const path = require('path');
var webpack = require("webpack"); const webpack = require('webpack');
var css = require("mini-css-extract-plugin"); const css = require('mini-css-extract-plugin');
const mini = require('css-minimizer-webpack-plugin');
const terse = require('terser-webpack-plugin');
const compress = require('compression-webpack-plugin');
module.exports = { module.exports = {
mode: "production", mode: "production",
entry: { entry: {
app: "./assets/app.js", app: {
vendor: "./assets/vendor.js" import: './assets/app.js',
dependOn: 'vendor',
}, },
output: { vendor: './assets/vendor.js',
path: path.resolve(__dirname, "hiboo/static/"), },
filename: "[name].js", output: {
hashFunction: "xxhash64" path: path.resolve(__dirname, 'hiboo/static/'),
}, filename: '[name].js',
module: { assetModuleFilename: '[name][ext]',
rules: [ },
{ module: {
test: /\.js$/, rules: [
use: ['babel-loader'] {
}, test: /\.js$/,
{ use: ['babel-loader', 'import-glob'],
test: /\.scss$/, },
use: [css.loader, 'css-loader', 'sass-loader'] {
}, test: /\.s?css$/i,
{ use: [css.loader, 'css-loader', 'sass-loader'],
test: /\.less$/, },
use: [css.loader, 'css-loader', 'less-loader'] {
}, test: /\.(json|png|svg|jpg|jpeg|gif)$/i,
{ type: 'asset/resource',
test: /\.css$/, }
use: [css.loader, 'css-loader']
}
]
},
plugins: [
new css({
filename: "[name].css",
chunkFilename: "[id].css"
})
] ]
},
plugins: [
new css({
filename: '[name].css',
chunkFilename: '[id].css'
}),
new compress({
filename: '[path][base].gz',
algorithm: "gzip",
exclude: /\.(png|gif|jpe?g)$/,
threshold: 5120,
minRatio: 0.8,
deleteOriginalAssets: false,
}),
],
optimization: {
minimize: true,
minimizer: [
new terse(),
new mini({
minimizerOptions: {
preset: [
'default', {
discardComments: { removeAll: true },
},
],
},
}),
],
},
} }