mirror of
https://github.com/eduardogsilva/routerfleet.git
synced 2025-08-05 02:34:32 +02:00
add column visibility feature to router list, allowing customization and persistence via cookies.
This commit is contained in:
parent
010f911222
commit
5a7f9f7bf2
3 changed files with 277 additions and 40 deletions
|
@ -13,7 +13,8 @@ from user_manager.models import UserAcl
|
|||
from .forms import RouterForm, RouterGroupForm, SSHKeyForm
|
||||
from .models import Router, RouterGroup, RouterInformation, RouterStatus, SSHKey, BackupSchedule
|
||||
from django.conf import settings
|
||||
|
||||
import json
|
||||
from urllib.parse import unquote
|
||||
|
||||
@login_required
|
||||
def view_router_list(request):
|
||||
|
@ -41,12 +42,25 @@ def view_router_list(request):
|
|||
|
||||
if not filter_group and request.GET.get('filter_group') != 'all':
|
||||
filter_group = RouterGroup.objects.filter(default_group=True).first()
|
||||
# Parse the router_visible_columns cookie
|
||||
visible_columns = []
|
||||
if 'router_visible_columns' in request.COOKIES:
|
||||
try:
|
||||
visible_columns = json.loads(unquote(request.COOKIES['router_visible_columns']))
|
||||
except json.JSONDecodeError:
|
||||
# If the cookie is invalid, use default columns
|
||||
visible_columns = ["name", "type", "status", "backup", "groups"]
|
||||
else:
|
||||
# Default columns if cookie doesn't exist
|
||||
visible_columns = ["name", "type", "status", "backup", "groups"]
|
||||
|
||||
context = {
|
||||
'router_list': router_list,
|
||||
'page_title': 'Router List',
|
||||
'filter_group_list': RouterGroup.objects.all().order_by('name'),
|
||||
'filter_group': filter_group,
|
||||
'last_status_change_timestamp': last_status_change_timestamp,
|
||||
'visible_columns': visible_columns,
|
||||
}
|
||||
return render(request, 'router_manager/router_list.html', context=context)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue