You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
8.2 KiB
195 lines
8.2 KiB
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{% block title %}Plutus{% endblock %}</title>
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css">
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/custom.css') }}">
|
|
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
|
|
{% block head %}{% endblock %}
|
|
</head>
|
|
<body>
|
|
<nav class="navbar is-dark" role="navigation">
|
|
<div class="navbar-brand">
|
|
<a class="navbar-item" href="{{ url_for('main.index') }}">
|
|
<strong>Plutus</strong>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="navbar-menu">
|
|
<div class="navbar-start">
|
|
{% if current_user.is_authenticated %}
|
|
<a class="navbar-item" href="{{ url_for('main.index') }}">
|
|
Dashboard
|
|
</a>
|
|
{% if can_view_data() %}
|
|
<a class="navbar-item" href="{{ url_for('search.search_page') }}">
|
|
<span class="icon">
|
|
<i class="fas fa-search"></i>
|
|
</span>
|
|
<span>Search Payments</span>
|
|
</a>
|
|
{% endif %}
|
|
{% if can_manage_users() %}
|
|
<div class="navbar-item has-dropdown is-hoverable">
|
|
<a class="navbar-link">
|
|
Users
|
|
</a>
|
|
<div class="navbar-dropdown">
|
|
<a class="navbar-item" href="{{ url_for('auth.list_users') }}">
|
|
List Users
|
|
</a>
|
|
<a class="navbar-item" href="{{ url_for('auth.add_user') }}">
|
|
Add User
|
|
</a>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% if can_manage_batch_payments() %}
|
|
<a class="navbar-item" href="{{ url_for('main.batch_list') }}">
|
|
<span class="icon">
|
|
<i class="fas fa-file-invoice-dollar"></i>
|
|
</span>
|
|
<span>Payment Batches</span>
|
|
</a>
|
|
{% endif %}
|
|
{% if can_process_single_payments() %}
|
|
<div class="navbar-item has-dropdown is-hoverable">
|
|
<a class="navbar-link">
|
|
<span class="icon">
|
|
<i class="fas fa-credit-card"></i>
|
|
</span>
|
|
<span>Single Payments</span>
|
|
</a>
|
|
<div class="navbar-dropdown">
|
|
<a class="navbar-item" href="{{ url_for('main.single_payments_list') }}">
|
|
<span class="icon">
|
|
<i class="fas fa-list"></i>
|
|
</span>
|
|
<span>View Payments</span>
|
|
</a>
|
|
<a class="navbar-item" href="{{ url_for('main.single_payment') }}">
|
|
<span class="icon">
|
|
<i class="fas fa-plus"></i>
|
|
</span>
|
|
<span>New Payment</span>
|
|
</a>
|
|
<hr class="navbar-divider">
|
|
<a class="navbar-item" href="{{ url_for('main.add_payment_method') }}">
|
|
<span class="icon">
|
|
<i class="fas fa-credit-card"></i>
|
|
</span>
|
|
<span>Add Payment Method</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% if can_manage_payment_plans() %}
|
|
<div class="navbar-item has-dropdown is-hoverable">
|
|
<a class="navbar-link">
|
|
<span class="icon">
|
|
<i class="fas fa-calendar-alt"></i>
|
|
</span>
|
|
<span>Payment Plans</span>
|
|
</a>
|
|
<div class="navbar-dropdown">
|
|
<a class="navbar-item" href="{{ url_for('main.payment_plans_list') }}">
|
|
<span class="icon">
|
|
<i class="fas fa-list"></i>
|
|
</span>
|
|
<span>View Plans</span>
|
|
</a>
|
|
<a class="navbar-item" href="{{ url_for('main.payment_plans_create') }}">
|
|
<span class="icon">
|
|
<i class="fas fa-plus"></i>
|
|
</span>
|
|
<span>New Plan</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% if can_view_logs() %}
|
|
<a class="navbar-item" href="{{ url_for('main.logs_list') }}">
|
|
<span class="icon">
|
|
<i class="fas fa-file-alt"></i>
|
|
</span>
|
|
<span>System Logs</span>
|
|
</a>
|
|
{% endif %}
|
|
{% if can_view_logs() %}
|
|
<a class="navbar-item" href="{{ url_for('analytics.dashboard') }}">
|
|
<span class="icon">
|
|
<i class="fas fa-chart-line"></i>
|
|
</span>
|
|
<span>Analytics</span>
|
|
</a>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="navbar-end">
|
|
{% if current_user.is_authenticated %}
|
|
<div class="navbar-item has-dropdown is-hoverable">
|
|
<a class="navbar-link">
|
|
{{ current_user.FullName }}
|
|
{% set user_permission = current_user.Permissions or 'None' %}
|
|
<span class="tag is-small is-{{ 'danger' if user_permission == 'Admin' else 'warning' if user_permission == 'Finance' else 'info' if user_permission == 'Helpdesk' else 'light' }}">
|
|
{{ user_permission }}
|
|
</span>
|
|
</a>
|
|
<div class="navbar-dropdown">
|
|
<a class="navbar-item" href="{{ url_for('auth.logout') }}">
|
|
Logout
|
|
</a>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<div class="navbar-item">
|
|
<a class="button is-primary" href="{{ url_for('auth.login') }}">
|
|
Login
|
|
</a>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<main class="section">
|
|
<div class="container">
|
|
{% with messages = get_flashed_messages(with_categories=true) %}
|
|
{% if messages %}
|
|
{% for category, message in messages %}
|
|
<div class="notification is-{{ 'danger' if category == 'error' else 'success' if category == 'success' else 'info' }}">
|
|
<button class="delete"></button>
|
|
{{ message }}
|
|
</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endwith %}
|
|
|
|
{% block content %}{% endblock %}
|
|
</div>
|
|
</main>
|
|
|
|
<footer class="footer">
|
|
<div class="content has-text-centered">
|
|
<p>
|
|
<strong style="color: var(--plutus-gold);">Plutus</strong> - Payment Processing System
|
|
</p>
|
|
</div>
|
|
</footer>
|
|
|
|
<script>
|
|
// Close notifications
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
(document.querySelectorAll('.notification .delete') || []).forEach(($delete) => {
|
|
const $notification = $delete.parentNode;
|
|
$delete.addEventListener('click', () => {
|
|
$notification.parentNode.removeChild($notification);
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|