49 lines
No EOL
2.1 KiB
HTML
49 lines
No EOL
2.1 KiB
HTML
{% extends 'base.html' %}
|
|
{% load static pagination_tags %}
|
|
|
|
{% block title %}Trade Offers{% endblock title %}
|
|
|
|
{% block content %}
|
|
<div class="container mx-auto max-w-4xl mt-6" x-data="{ allExpanded: false }">
|
|
<!-- Header-->
|
|
<div class="flex justify-between items-center mb-4">
|
|
<h1 class="text-2xl font-bold">Trade Offers</h1>
|
|
<div>
|
|
<form method="get" class="flex items-center gap-4" x-data>
|
|
<label class="cursor-pointer flex items-center gap-2">
|
|
<span x-text="allExpanded ? 'Collapse All' : 'Expand All'"></span>
|
|
<input type="checkbox" name="all_expanded" value="true" class="toggle toggle-primary" @click="allExpanded = !allExpanded; $dispatch('toggle-all', { expanded: allExpanded })">
|
|
</label>
|
|
<label class="cursor-pointer flex items-center gap-2">
|
|
<span>Only Closed</span>
|
|
<input type="checkbox" name="show_closed" value="true" class="toggle toggle-primary" @change="$el.form.submit()" {% if show_closed %}checked{% endif %}>
|
|
</label>
|
|
<button type="submit" class="btn btn-primary" x-show="false">Apply</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<!-- Trade Offers -->
|
|
<section class="mb-12">
|
|
<div class="flex justify-end mb-4">
|
|
<a href="{% url 'trade_offer_create' %}" class="btn btn-success">Create New Offer</a>
|
|
</div>
|
|
<div id="all-trade-offers"
|
|
x-data="{
|
|
page: {{ page_obj.number|default:1 }},
|
|
loadOffers() {
|
|
let url = new URL('{% url 'trade_offer_list' %}', window.location.origin);
|
|
let params = new URLSearchParams(window.location.search);
|
|
params.set('page', this.page);
|
|
url.search = params.toString();
|
|
fetch(url, { headers: { 'X-Requested-With': 'XMLHttpRequest' }})
|
|
.then(response => response.text())
|
|
.then(html => { this.$el.innerHTML = html; });
|
|
}
|
|
}"
|
|
x-init="loadOffers()"
|
|
x-on:change-page.window="page = $event.detail.page; loadOffers()">
|
|
{% include "trades/_trade_offer_list.html" with offers=offers page_obj=page_obj %}
|
|
</div>
|
|
</section>
|
|
</div>
|
|
{% endblock content %} |