| {% extends "base.html" %} |
|
|
| {% block content %} |
| <div class="container mt-4"> |
| <h1 class="mb-4">Facebook Ad Analytics Dashboard</h1> |
| |
| <div class="row mb-4"> |
| <div class="col-md-4"> |
| <div class="card"> |
| <div class="card-header bg-primary text-white"> |
| <h5 class="card-title mb-0">Facebook Ads</h5> |
| </div> |
| <div class="card-body"> |
| <p class="card-text">View and analyze Facebook ads.</p> |
| <a href="#" class="btn btn-primary">View Ads</a> |
| </div> |
| </div> |
| </div> |
| |
| <div class="col-md-4"> |
| <div class="card"> |
| <div class="card-header bg-success text-white"> |
| <h5 class="card-title mb-0">Google Ads</h5> |
| </div> |
| <div class="card-body"> |
| <p class="card-text">Scrape and analyze Google ads.</p> |
| <a href="{{ url_for('google_ads.index') }}" class="btn btn-success">Google Ads</a> |
| </div> |
| </div> |
| </div> |
| |
| <div class="col-md-4"> |
| <div class="card"> |
| <div class="card-header bg-info text-white"> |
| <h5 class="card-title mb-0">Compliance</h5> |
| </div> |
| <div class="card-body"> |
| <p class="card-text">Generate compliance reports.</p> |
| <a href="#" class="btn btn-info">Compliance</a> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| <div class="filters mb-4"> |
| <div class="card"> |
| <div class="card-header"> |
| <h5 class="card-title mb-0">Filter Ads</h5> |
| </div> |
| <div class="card-body"> |
| <div class="row"> |
| <div class="col-md-5"> |
| <input type="text" class="form-control" name="query" placeholder="Search ads..." value="{{ query }}"> |
| </div> |
| <div class="col-md-5"> |
| <select class="form-select" name="sentiment"> |
| <option value="">All Sentiments</option> |
| <option value="Positive" {% if sentiment_filter == "Positive" %}selected{% endif %}>Positive</option> |
| <option value="Negative" {% if sentiment_filter == "Negative" %}selected{% endif %}>Negative</option> |
| </select> |
| </div> |
| <div class="col-md-2"> |
| <button type="button" class="btn btn-primary w-100" onclick="applyFilters()">Apply</button> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| <div class="ads-list"> |
| {% for ad in ads.items %} |
| <div class="card mb-3"> |
| <div class="card-body"> |
| <p class="card-text">{{ ad.content }}</p> |
| <span class="badge {% if ad.sentiment == 'Positive' %}bg-success{% elif ad.sentiment == 'Negative' %}bg-danger{% else %}bg-secondary{% endif %}"> |
| {{ ad.sentiment }} |
| </span> |
| </div> |
| </div> |
| {% endfor %} |
| </div> |
|
|
| <nav aria-label="Page navigation"> |
| <ul class="pagination justify-content-center"> |
| {% for p in range(1, ads.pages + 1) %} |
| <li class="page-item {% if p == ads.page %}active{% endif %}"> |
| <a class="page-link" href="?page={{ p }}&query={{ query }}&sentiment={{ sentiment_filter }}">{{ p }}</a> |
| </li> |
| {% endfor %} |
| </ul> |
| </nav> |
| </div> |
|
|
| <script> |
| function applyFilters() { |
| const query = document.querySelector('input[name="query"]').value; |
| const sentiment = document.querySelector('select[name="sentiment"]').value; |
| window.location.href = `?query=${query}&sentiment=${sentiment}`; |
| } |
| </script> |
| {% endblock %} |