From 8280b66a7cb62e2cf696b7f196a47aff771ee09e Mon Sep 17 00:00:00 2001 From: Nikolay Ogorov Date: Tue, 22 Dec 2020 17:36:12 +0300 Subject: [PATCH] Fixes with new API endpoint Rewrote js to send data to the new endpoint Made preferences API endpoint accept JSON structures --- netbox/dcim/views.py | 20 ++++--------------- netbox/project-static/js/rack_elevations.js | 10 +++++----- netbox/templates/dcim/rack.html | 2 +- .../templates/dcim/rack_elevation_list.html | 2 +- netbox/users/api/views.py | 12 ++++++++++- netbox/utilities/utils.py | 1 + 6 files changed, 23 insertions(+), 24 deletions(-) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index d4a4409d5..e0381e83d 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -6,7 +6,6 @@ from django.core.paginator import EmptyPage, PageNotAnInteger from django.db import transaction from django.db.models import Count, F, Prefetch from django.forms import ModelMultipleChoiceField, MultipleHiddenInput, modelformset_factory -from django.http import HttpResponse from django.shortcuts import get_object_or_404, redirect, render from django.utils.html import escape from django.utils.safestring import mark_safe @@ -330,21 +329,9 @@ class RackElevationListView(generic.ObjectListView): 'reverse': reverse, 'rack_face': rack_face, 'filter_form': forms.RackElevationFilterForm(request.GET), - 'show_images': request.user.config.get('rack_elevation.show_images', False) + 'show_images': request.user.config.get('rack_elevation.show_images', True) }) - def post(self, request): - # Update the user's rack_elevation configuration - if "show_images" in request.POST: - value = False - if request.POST.get("show_images") == 'true' or request.POST.get("show_images") == 'True': - value = True - preference_name = "rack_elevation.show_images" - request.user.config.set(preference_name, value, commit=True) - return HttpResponse("Your preferences have been updated.") - else: - return HttpResponse("No valid parameters was provided") - class RackView(generic.ObjectView): queryset = Rack.objects.prefetch_related('site__region', 'tenant__group', 'group', 'role') @@ -372,6 +359,7 @@ class RackView(generic.ObjectView): device_count = Device.objects.restrict(request.user, 'view').filter(rack=instance).count() + print(request.user.config.get('rack_elevation.show_images')) return { 'device_count': device_count, 'reservations': reservations, @@ -379,8 +367,8 @@ class RackView(generic.ObjectView): 'nonracked_devices': nonracked_devices, 'next_rack': next_rack, 'prev_rack': prev_rack, - 'show_images': request.user.config.get('rack_elevation.show_images', False) - }) + 'show_images': request.user.config.get('rack_elevation.show_images', True) + } class RackEditView(generic.ObjectEditView): diff --git a/netbox/project-static/js/rack_elevations.js b/netbox/project-static/js/rack_elevations.js index 5b5365514..672d5fab6 100644 --- a/netbox/project-static/js/rack_elevations.js +++ b/netbox/project-static/js/rack_elevations.js @@ -20,13 +20,13 @@ function setImages(visible){ $('#toggle_device_images').click(function() { var selected = $(this).attr('selected'); $.ajax({ - url: "/dcim/rack-elevations/", - type: 'POST', + url: "/api/users/config/", + type: 'PATCH', + headers:{"X-CSRFToken": $("#csrfmiddlewaretoken").val()}, data: { - 'show_images': !selected, - 'csrfmiddlewaretoken': $("#csrfmiddlewaretoken").val() + 'rack_elevation': JSON.stringify({'show_images': !selected}) }, - datatype: "json" + datatype: "application/json" }); setImages(!selected); diff --git a/netbox/templates/dcim/rack.html b/netbox/templates/dcim/rack.html index 80e926f0d..a3c0144c2 100644 --- a/netbox/templates/dcim/rack.html +++ b/netbox/templates/dcim/rack.html @@ -56,7 +56,7 @@
{% custom_links object %}
diff --git a/netbox/templates/dcim/rack_elevation_list.html b/netbox/templates/dcim/rack_elevation_list.html index ebf5aba3d..5638f2320 100644 --- a/netbox/templates/dcim/rack_elevation_list.html +++ b/netbox/templates/dcim/rack_elevation_list.html @@ -6,7 +6,7 @@