adds per page
This commit is contained in:
2
admin.py
2
admin.py
@@ -25,7 +25,7 @@ def register_admin_routes(app):
|
||||
def admin_users(page=1):
|
||||
"""Admin page to manage all users"""
|
||||
# Pagination settings
|
||||
per_page = 25
|
||||
per_page = int(request.args.get('per_page', 25))
|
||||
offset = (page - 1) * per_page
|
||||
|
||||
# Get all users from Firestore
|
||||
|
||||
2
app.py
2
app.py
@@ -136,7 +136,7 @@ def dashboard(page=1):
|
||||
return abort(400, "Invalid email format")
|
||||
|
||||
# Pagination settings
|
||||
per_page = 25
|
||||
per_page = int(request.args.get('per_page', 25))
|
||||
offset = (page - 1) * per_page
|
||||
query = None
|
||||
|
||||
|
||||
2
sync.py
2
sync.py
@@ -40,7 +40,7 @@ def convert_to_pacific_time(date_str):
|
||||
pacific_time = utc_time.astimezone(pytz.timezone('America/Los_Angeles'))
|
||||
|
||||
# Format as YYYY-MM-DD
|
||||
return pacific_time.strftime('%d/%m/%Y')
|
||||
return pacific_time.strftime('%m/%d/%Y')
|
||||
except (ValueError, AttributeError) as e:
|
||||
print(f"[WARN] Date conversion failed for '{date_str}': {e}")
|
||||
return ''
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% if total_pages > 1 %}
|
||||
<div class="flex justify-center items-center mt-6 space-x-2">
|
||||
{% if current_page > 1 %}
|
||||
<a href="{{ url_for(request.endpoint, page=current_page - 1) }}" class="px-3 py-2 text-sm text-slate-600 bg-white border border-slate-300 rounded-md hover:bg-slate-50">
|
||||
<a href="{{ url_for(request.endpoint, page=current_page - 1, per_page=per_page) }}" class="px-3 py-2 text-sm text-slate-600 bg-white border border-slate-300 rounded-md hover:bg-slate-50">
|
||||
Previous
|
||||
</a>
|
||||
{% else %}
|
||||
@@ -12,7 +12,7 @@
|
||||
{% if page == current_page %}
|
||||
<span class="px-3 py-2 text-sm font-medium text-white bg-blue-600 border border-blue-600 rounded-md">{{ page }}</span>
|
||||
{% elif page == 1 or page == total_pages or (page >= current_page - 2 and page <= current_page + 2) %}
|
||||
<a href="{{ url_for(request.endpoint, page=page) }}" class="px-3 py-2 text-sm text-slate-600 bg-white border border-slate-300 rounded-md hover:bg-slate-50">
|
||||
<a href="{{ url_for(request.endpoint, page=page, per_page=per_page) }}" class="px-3 py-2 text-sm text-slate-600 bg-white border border-slate-300 rounded-md hover:bg-slate-50">
|
||||
{{ page }}
|
||||
</a>
|
||||
{% elif page == current_page - 3 or page == current_page + 3 %}
|
||||
@@ -21,7 +21,7 @@
|
||||
{% endfor %}
|
||||
|
||||
{% if current_page < total_pages %}
|
||||
<a href="{{ url_for(request.endpoint, page=current_page + 1) }}" class="px-3 py-2 text-sm text-slate-600 bg-white border border-slate-300 rounded-md hover:bg-slate-50">
|
||||
<a href="{{ url_for(request.endpoint, page=current_page + 1, per_page=per_page) }}" class="px-3 py-2 text-sm text-slate-600 bg-white border border-slate-300 rounded-md hover:bg-slate-50">
|
||||
Next
|
||||
</a>
|
||||
{% else %}
|
||||
|
||||
@@ -19,6 +19,17 @@
|
||||
{% set _ = session.pop('reset_user_email', None) %}
|
||||
{% endif %}
|
||||
<h1 class="text-xl font-semibold mb-4">Admin: User Management</h1>
|
||||
<div class="mb-4 flex items-center">
|
||||
<label for="perPage" class="mr-2 text-sm font-medium text-slate-700">Items per page:</label>
|
||||
<select id="perPage" x-data="{ perPage: {{ per_page }} }" x-model="perPage" @change="window.location.href = `/admin/users/1?per_page=${$data.perPage}`"
|
||||
class="px-3 py-2 border border-slate-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
|
||||
<option value="10">10</option>
|
||||
<option value="25">25</option>
|
||||
<option value="50">50</option>
|
||||
<option value="100">100</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-6">
|
||||
<a href="/admin/users/new" class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
|
||||
Create New User
|
||||
|
||||
@@ -14,6 +14,18 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Per Page Dropdown -->
|
||||
<div class="mb-4 flex items-center">
|
||||
<label for="perPage" class="mr-2 text-sm font-medium text-slate-700">Items per page:</label>
|
||||
<select id="perPage" x-model="perPage" @change="window.location.href = `/dashboard/1?per_page=${$data.perPage}${$data.case_email_sim ? '&case_email=' + encodeURIComponent($data.case_email_sim) : ''}`"
|
||||
class="px-3 py-2 border border-slate-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
|
||||
<option value="10">10</option>
|
||||
<option value="25">25</option>
|
||||
<option value="50">50</option>
|
||||
<option value="100">100</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Configure Visible Columns Link -->
|
||||
<div class="mb-4">
|
||||
<button @click="showColumnModal = true" class="text-blue-600 hover:text-blue-800 text-sm font-medium underline">
|
||||
@@ -516,6 +528,7 @@
|
||||
return {
|
||||
showColumnModal: false,
|
||||
case_email_sim: '',
|
||||
perPage: 25,
|
||||
columns: [
|
||||
'Matter Num',
|
||||
'Matter Description',
|
||||
@@ -573,12 +586,16 @@
|
||||
init() {
|
||||
this.loadColumnSettings();
|
||||
|
||||
// Extract case_email from URL query parameter
|
||||
// Extract case_email and per_page from URL query parameter
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const caseEmail = urlParams.get('case_email');
|
||||
const perPage = urlParams.get('per_page');
|
||||
if (caseEmail) {
|
||||
this.case_email_sim = caseEmail;
|
||||
}
|
||||
if (perPage) {
|
||||
this.perPage = parseInt(perPage);
|
||||
}
|
||||
},
|
||||
|
||||
isColumnVisible(columnName) {
|
||||
|
||||
Reference in New Issue
Block a user