From 725c0b56c76a12d458bcba04724b2e80c98b6038 Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Fri, 12 May 2023 13:13:58 -0400 Subject: [PATCH] Various CSS and layout tweaks --- netbox/extras/constants.py | 16 ++++++------ netbox/extras/dashboard/widgets.py | 2 +- netbox/project-static/dist/netbox-dark.css | Bin 375390 -> 375811 bytes netbox/project-static/dist/netbox-light.css | Bin 232699 -> 233018 bytes netbox/project-static/dist/netbox-print.css | Bin 727424 -> 728391 bytes netbox/project-static/dist/netbox.js | Bin 438912 -> 438911 bytes netbox/project-static/dist/netbox.js.map | Bin 402467 -> 402467 bytes netbox/project-static/src/dashboard.ts | 2 +- netbox/project-static/styles/netbox.scss | 24 +++++++++++++++++- netbox/templates/extras/dashboard/widget.html | 6 ++--- .../dashboard/widgets/objectcounts.html | 4 +-- .../extras/dashboard/widgets/objectlist.html | 6 ++--- netbox/templates/home.html | 6 +++-- 13 files changed, 45 insertions(+), 21 deletions(-) diff --git a/netbox/extras/constants.py b/netbox/extras/constants.py index 6d9f78001..49e29cbba 100644 --- a/netbox/extras/constants.py +++ b/netbox/extras/constants.py @@ -22,7 +22,7 @@ DEFAULT_DASHBOARD = [ { 'widget': 'extras.ObjectCountsWidget', 'width': 4, - 'height': 2, + 'height': 5, 'title': 'Organization', 'config': { 'models': [ @@ -35,7 +35,7 @@ DEFAULT_DASHBOARD = [ { 'widget': 'extras.ObjectCountsWidget', 'width': 4, - 'height': 3, + 'height': 8, 'title': 'IPAM', 'config': { 'models': [ @@ -51,7 +51,7 @@ DEFAULT_DASHBOARD = [ { 'widget': 'extras.NoteWidget', 'width': 4, - 'height': 2, + 'height': 4, 'title': 'Welcome!', 'color': 'green', 'config': { @@ -65,7 +65,7 @@ DEFAULT_DASHBOARD = [ { 'widget': 'extras.ObjectCountsWidget', 'width': 4, - 'height': 2, + 'height': 4, 'title': 'Circuits', 'config': { 'models': [ @@ -78,7 +78,7 @@ DEFAULT_DASHBOARD = [ { 'widget': 'extras.RSSFeedWidget', 'width': 4, - 'height': 4, + 'height': 8, 'title': 'NetBox News', 'config': { 'feed_url': 'http://netbox.dev/rss/', @@ -89,7 +89,7 @@ DEFAULT_DASHBOARD = [ { 'widget': 'extras.ObjectCountsWidget', 'width': 4, - 'height': 3, + 'height': 6, 'title': 'DCIM', 'config': { 'models': [ @@ -104,7 +104,7 @@ DEFAULT_DASHBOARD = [ { 'widget': 'extras.ObjectCountsWidget', 'width': 4, - 'height': 2, + 'height': 4, 'title': 'Virtualization', 'config': { 'models': [ @@ -116,7 +116,7 @@ DEFAULT_DASHBOARD = [ { 'widget': 'extras.ObjectListWidget', 'width': 12, - 'height': 5, + 'height': 10, 'title': 'Change Log', 'color': 'blue', 'config': { diff --git a/netbox/extras/dashboard/widgets.py b/netbox/extras/dashboard/widgets.py index dc68e1388..5c5d2fe31 100644 --- a/netbox/extras/dashboard/widgets.py +++ b/netbox/extras/dashboard/widgets.py @@ -133,7 +133,7 @@ class NoteWidget(DashboardWidget): ) def render(self, request): - return render_markdown(self.config.get('content')) + return render_markdown(self.config.get('content'), "mt-3") @register_widget diff --git a/netbox/project-static/dist/netbox-dark.css b/netbox/project-static/dist/netbox-dark.css index 11110069e11515e95b985a5bb8cf2eb818eb395d..c42b520e8abdd8879844018c38326391f8fbd5e5 100644 GIT binary patch delta 354 zcmccjMXdRUSVIeA3sVbo3(FSPkeJl;qRbTC;*!MVY~9R~)Lh-<{JfIXyb?RTF%M^oNfaji&#OWfj|=9m5)7 z>ROtqTa;RyS(TWSld4;sTAh?%Qj(u*WuTauTaaH=l9*RwU6h%gQGz0p1oV1(QGRJ& zif(3ZVtVRy#uv=SlOJ5+-F{&r>k&>l?Uc+ia1iLB7@v`tmy(mJIla-0MR@WBe&y|_ JX0uL_0{|Zeg}(p* delta 60 zcmV-C0K@--_!i#u7J!5SgaU*Egaot&R9u%JJ^}=n4PONlw|ZR#ST&R2)D5>+lLf>H Smw`3}6O+&nBe!pz1(Y7CQx)z2 diff --git a/netbox/project-static/dist/netbox-light.css b/netbox/project-static/dist/netbox-light.css index 8a3c83af9b64aa1f2bd4a5ffab0b40139bf9dc80..873d6937003a069dfa0acfb340785d17038799f8 100644 GIT binary patch delta 362 zcma)&y-EW?6ooMZmT9z56hUmV$X&GEfQ5E~V&MzS>|A#*nV&dwlT8ewMcyF@K1N`{ z-uLhUd;=TT6_kL5?cv<>oqIl>x-ZY&$NAd4vlQ2!N$Zg0FeJ$gYy>~XaASPcq)ZJqZioGt2XBm$0V>j5w&H#I2kZR* zuq=ZL)qog&(r23D(8#Zf4i~#uV!IZX;`HEpL=Z62om2)P;!JsFZ?mI)vO^zOI_?K5 yN?uV^GeQyk$Y~%ei|f@w&cusA=3zlCD5X>9oOQalF;psCOpfZSxb^v4(vB delta 43 zcmdlrhwt}HzJ?aY7N#xCZ+xc<2QZ6oKj+8nq`WLZbDn#+!g!)UYfHxn&ism+FH95yh%g~8E$oP zbP&aYAHc3|4i-#5f#@f&cB_L98Gnz*d++yno%?M6Dcj)^pW-1N<`Ev{(_H4tgZgz` zs!(hIm%(xsV1{f^CJsXm+sl<9HGocxR>2`GT`-}W&Y8?U9Wx+y5Y33;qqG@J;qFq> zP>>9nHn3el8i<})q&fPeWuZ}G2Nm5iC6=W_3YyqprWk%oE4zWL#Db>m1eeHr^Uq2t zK<}BKAd7+?g%cwG8j?i>sqvly)ps;o$ABUipF!P1Kpgst_6vgN(bWC~%SCOSFh=Y` zK8fubp$s~#NO8qv6No+UO82I@`e8?E>i A+W-In delta 119 zcmV--0Eqv`x-5XREP#XogaU*Egam{Iga(8Mgb0KQv@7B=^#OePlFy_T|>@d5z7bPA&Y delta 31 ncmezWM5^JbR6`463sVbo3rh>@7B=^#%!URA+dY@EnehSu$eaqu diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map index 0201e7bf85d9b6fba1d1c66fbdf7087f428c36e4..18d935cea14bb9c35a133fedf487b935752e4158 100644 GIT binary patch delta 29 kcmZ2{LSpd=iG~)&7N!>F7M2#)Eo>~(jPBc6rP<^-0i6*DPXGV_ delta 29 kcmZ2{LSpd=iG~)&7N!>F7M2#)Eo>~(jGo(BrP<^-0i7QRQ2+n{ diff --git a/netbox/project-static/src/dashboard.ts b/netbox/project-static/src/dashboard.ts index df200fffd..7389ff35d 100644 --- a/netbox/project-static/src/dashboard.ts +++ b/netbox/project-static/src/dashboard.ts @@ -35,7 +35,7 @@ export function initDashboard(): void { // Initialize the grid let grid = GridStack.init({ - cellHeight: 100, + cellHeight: 48, disableDrag: true, disableResize: true, draggable: { diff --git a/netbox/project-static/styles/netbox.scss b/netbox/project-static/styles/netbox.scss index b294d67bd..3b2b2ac31 100644 --- a/netbox/project-static/styles/netbox.scss +++ b/netbox/project-static/styles/netbox.scss @@ -109,6 +109,20 @@ table td > .progress { } } +// Remove scrollbars from grid stack cards on Explorer and Firefox +.grid-stack-item-content > .card-body:not(:has(.htmx-container)) { + /* Internet Explorer 10+ */ + -ms-overflow-style: none; + /* Firefox */ + scrollbar-width: none; +} + +// Remove scrollbars from grid stack cards on Safari and Chrome +.grid-stack-item-content > .card-body:not(:has(.htmx-container))::-webkit-scrollbar { + display: none; +} + +// Cards .card > .table.table-flush { margin-bottom: 0; overflow: hidden; @@ -662,6 +676,14 @@ span.color-label { } } +// Override the default GridStack style for the resize handle. +.ui-resizable-se { + bottom: 0 !important; + right: 0 !important; + background-image: none !important; +} + +// Floating forms .form-floating { position: relative; @@ -744,7 +766,7 @@ textarea.form-control[name='csv'] { font-family: $font-family-monospace; } -.card:not(:only-of-type) { +.card:not(:only-of-type) + div:not(.ui-resizable-handle) { margin-bottom: $spacer; } diff --git a/netbox/templates/extras/dashboard/widget.html b/netbox/templates/extras/dashboard/widget.html index 1559363d3..d0026ac57 100644 --- a/netbox/templates/extras/dashboard/widget.html +++ b/netbox/templates/extras/dashboard/widget.html @@ -9,7 +9,7 @@ gs-id="{{ widget.id }}" >
-
+
{% if widget.title %} - {{ widget.title }} +
{{ widget.title }}
{% endif %}
-
+
{% render_widget widget %}
diff --git a/netbox/templates/extras/dashboard/widgets/objectcounts.html b/netbox/templates/extras/dashboard/widgets/objectcounts.html index d0e604c9a..e090817b3 100644 --- a/netbox/templates/extras/dashboard/widgets/objectcounts.html +++ b/netbox/templates/extras/dashboard/widgets/objectcounts.html @@ -7,13 +7,13 @@
{{ model|meta:"verbose_name_plural"|bettertitle }} -
{{ count }}
+
{{ count }}
{% else %}
{{ model|meta:"verbose_name_plural"|bettertitle }} -
+
{% endif %} {% endfor %} diff --git a/netbox/templates/extras/dashboard/widgets/objectlist.html b/netbox/templates/extras/dashboard/widgets/objectlist.html index 54f8094b3..851811345 100644 --- a/netbox/templates/extras/dashboard/widgets/objectlist.html +++ b/netbox/templates/extras/dashboard/widgets/objectlist.html @@ -1,11 +1,11 @@ {% if htmx_url and has_permission %} -
+
{% elif htmx_url %} -
+
No permission to view this content.
{% else %} -
+
Unable to load content. Invalid view name: {{ viewname }}
{% endif %} diff --git a/netbox/templates/home.html b/netbox/templates/home.html index 414ac3488..31c0f1798 100644 --- a/netbox/templates/home.html +++ b/netbox/templates/home.html @@ -23,8 +23,9 @@ {% block title %}Home{% endblock %} {% block content-wrapper %} +
{# Render the user's customized dashboard #} -
+
{% for widget in dashboard %} {% include 'extras/dashboard/widget.html' %} {% endfor %} @@ -59,11 +60,12 @@ Save Layout - Reset Dashboard + Reset Dashboard
+
{% endblock content-wrapper %} {% block modals %}