From 5fdf2d341663e0752c42baa96b169c377c46b00c Mon Sep 17 00:00:00 2001 From: checktheroads Date: Fri, 19 Mar 2021 09:25:27 -0700 Subject: [PATCH] replace rack elevation logic --- netbox/project-static/dist/netbox.js | Bin 433769 -> 436461 bytes netbox/project-static/dist/netbox.js.map | Bin 1243113 -> 1247446 bytes netbox/project-static/js/rack_elevations.js | 13 ------ netbox/project-static/src/buttons.ts | 42 ++++++++++++++++++++ netbox/project-static/src/netbox.ts | 2 + netbox/project-static/src/util.ts | 16 ++++---- netbox/templates/dcim/rack.html | 36 +++++------------ netbox/templates/generic/object.html | 10 ++--- 8 files changed, 68 insertions(+), 51 deletions(-) delete mode 100644 netbox/project-static/js/rack_elevations.js create mode 100644 netbox/project-static/src/buttons.ts diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index 4c691de2a3ab23296b7c1ec17cf5da4aea1d38d3..6d76b8547271580e4e0ed45ceaf5954bbb848d89 100644 GIT binary patch delta 3014 zcmb7GZEPGz8P?u;HfaMz2&bWL6P>r_G8>QAJ}Y)&pC_rCq{L~QxaWj|FUMtXZ|-jG zz1{16T;e##fd~}>wTQ&&VA58t($Yi_)Iib`sFWZir2aw?5<>8&@C#I-fZzuR3GwcS zeLj*F@#p4dc4pq^eV+GycK`Ht&!2DieDR!cE_N<{uImPRYF5zsw(p@WJeEff^2aWq zPs4(`EMAU#MCD(&fwuA|mr&!F$Z?xP%S*{EVB zFL_w!*Pcebaro1^{WN+%_NW{j@ox%lAu7>`LrTP;s$KS~%yb=oX9dapuXAYohLUAt zMh$*D7VkdJWMa{wv^BxfR)4?jX004G;3uuqA>vUtt*H)643Fz2+>7-IPcfKTb}O>H zWGW^*?b6|qbirooLPMnwXsUbf4>3_Da)Of1Vv z(J~>c=(g0(=r-75dWJzM#U<(}b=B}#J7{V++GaD?v(3cn>0wd|W2A=1o6+K~aBH-_ zb9{C0SjYM(tOrn2qX60+qNbv$u2#V#GGJ%eUyJak#>UsehDXL=O9}hgmUL5hDmXPJ zr=^fNpsv3ko`htrk2yTTcb`DX`$q`GOpTG@;a24Y`qji9mzk>R=5g7!yqY{%mWkAt z%IifbN3te6mB_I2fzvfS_<5Y29GFuF&I}EV<@#j|Tjafc{J;u&QpodfuAsz6@>pI9 z!Qy=DCo5=EOqg%IdkM|Pgrj`x%jgnJfAlgsE5LO06?9UVTh$f>{1GW30#xgXc*h8#ls2ZCz4BSWd z$x*pA8evfYEi;|8%_8^MneMK%J4G&FmadwDK-^JMxdMIQpeS}|sR_x{cYH?N>~Hl3l5E2s3LTOm*IU02blaE6;#Q9^j4^^L1&-|xE)XoWfc zv+Jn7IiqR|2MktM{oJXZ_N$HYH=jd~@EJAR0EBHyR1(4ynZ;)7t7 zlNV6ZAC|?R$5mqZCjD8#;3qGN5BU!LF#qM3#rt^oO+aAse=Q?futRIMLuRK`-lb6pF3!77&xHlSD4GIJ!k&8;1AYf`&|+ci;jY=$9h za2pq_nz=-W%`i^7P1n{T0>hHS45qoPD9L``1VD7>nC-chMH$);8eGv$li3H4O&_M) zC-j77sE$LWf}SYo10{VGoU~_RP~Vf7tyrfLQvurT0kalS?~z~=GE{63A`jt1CDtdW zM#))J?MTjN%z)RAM;y4+xA0!DaD%Rzxkjz9s1(gI!RXxmmKMCBsHhMKdvdyc+6g$4Jfc|za6E3X{E^Ox)#w6z>>-EG(Or@xy>TL6 zC{Zt}@sbkIc35}Z02;q##ZgnL=*1#4B|uk7CfDy#i$%QlbhVFb(34R6wYFV4K_9Ps zu690GgXd5xzUFsH-js+W$qi;W?Eh5xpk8DhDi=xp9x8vh$n|DKU6I!BqHd8?NtqPZ zsl2$Ra+MbUx5`yeIS{$}fg(3QSmnjNiybN#BB*6rxC?59mLrub$z)}n&^D`Db!f3w zmDlN1@O8?yg)IEHko8U>>mMp4=-6)KM#Bu?aP^H?H~;B-T^qLQYxZgR{mih{j%>GX zeoef!LC|>py!e$(q3wXvfVJH@FK&kK%fK0b@o0R<3#VfD2@XGd9_54*|Lu9SyY>DB z@s9#b0;4O2Mpq1tuIL-x$sWIDt2AqXi|FnwQ*EvCxN4I{Qs4#`Pb7#MJn1myTzbvL z>ioTLi4WfoU$NBj-N|eHlZ&Dth7*of#J7Ype|tszx=?5x{I-Y%m_Bn!oPgo`m&Ey4 z9rJfS*EKj;m(%`Ngb$|%ranun>Dt6>^ud{~!PjZv#}zu8t>w}ce)>i6OAoBFF)sP9 LkJjH`6g}ZTaP;`< delta 1485 zcmZWpU2NM_6qeK63$)b+0%<60ZEBTrtzNviRi~)#mAbX8WURm0n4pbP$8i$3juZK( zvBA+aAOQEHPrSK16JjuEA@l|+;1!Wmdv2fuc+@MFcK@0usYar8|6&Rsc zwn01nZv{r_uiK!XH8p<$e`DdnMZhM%xdLZfHSAy$TeyT>tP2&#TByt^R#YL{q?rRk5{bcdwp9s6-smM1mk@OD01xMN^x1h!m4EmZr>BS&Qi!1|bBw zq$JKMhRg7tw8iUPmgcyY8Lbb;u^ViN_p-{OkJlYE24yMc*K2Ef_SL&sJ>c2J7&|dy zimKwM1tbZKxQ6^%oxIf3`*dkA(!*ME$UkaMH+7p0_0)R9T2zYDdsCpJQNmIemU^%h z_g+eYU-}xw&NRwfCATcl$TjdDH%fPx0pBQ80&FzueR&Nug}Ai0d>tf1+zkD98GOsq z%PZhxj-^ejV454E#wsXtL*D&Wa4@tuBvj@Z*&(6Ih$x1!z*0u6>KinQ)1-`aLH1qF zl`NF5`O$_(NqWx)IdJndG0&_Yne_>s zWq}b&h{c*$142g!N|1zTY2|keMb(ZQ1{%O;*}`hzCKG6Izd(b5K%#D{hMU!F#8)aj z!{PZhc0zh!3kU}in6FlO0rPqGn4n`@AWH9TfP=>-{DtadBE__LW<`4cigay7&NWp> zFPYI(v}F@~CfRk;86U$Ywom#A=M2v8Zgytm<1`tnWC@@BheDn(6T9s4N4^3n&Za+q4&S2vN$`sI?lSy?V-@K;C~&#p z3d;poSdLv`(-HsE&XP%m8K^tS8tMtf!V5T0@2p)e}0m27lz{=-cb?5|{UWT8D^Z>B9}!$3p8SoCy^Xz4Jl%=+UAe`+tzXJ40f) mOtNyOuPhpxnRg0urn58nGm@k{nMuh>`e+kg@Tyy|%>56;nd*oD diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map index 116f576c2a2f545ef33f7273676ba1993ab6836f..ebf1bd9926f11daee609d83f0aa107bde5396fa2 100644 GIT binary patch delta 3278 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 Show Images`; + + for (const elevation of getElements('.rack_elevation')) { + const images = elevation.contentDocument?.querySelectorAll('image.device-image') ?? []; + for (const image of images) { + if (!image.classList.contains('hidden')) { + image && image.classList.add('hidden'); + } + } + } + target.setAttribute('selected', ''); + } else { + target.innerHTML = ` Hide Images`; + + for (const elevation of getElements('.rack_elevation')) { + const images = elevation.contentDocument?.querySelectorAll('image.device-image') ?? []; + for (const image of images) { + image && image.classList.remove('hidden'); + } + } + + target.setAttribute('selected', 'selected'); + } + } + button.addEventListener('click', handleClick); + } +} diff --git a/netbox/project-static/src/netbox.ts b/netbox/project-static/src/netbox.ts index 7c5eca403..383cef002 100644 --- a/netbox/project-static/src/netbox.ts +++ b/netbox/project-static/src/netbox.ts @@ -4,6 +4,7 @@ import { initApiSelect, initStaticSelect, initColorSelect } from './select'; import { initDateSelector } from './dateSelector'; import { initMessageToasts } from './toast'; import { initSpeedSelector, initForms } from './forms'; +import { initRackElevation } from './buttons'; import { initSearchBar } from './search'; import { getElements } from './util'; @@ -16,6 +17,7 @@ const INITIALIZERS = [ initDateSelector, initSpeedSelector, initColorSelect, + initRackElevation, ] as (() => void)[]; /** diff --git a/netbox/project-static/src/util.ts b/netbox/project-static/src/util.ts index 89013bf70..0194b1039 100644 --- a/netbox/project-static/src/util.ts +++ b/netbox/project-static/src/util.ts @@ -49,18 +49,20 @@ export async function getApiData( } export function getElements( - key: K, + ...key: K[] ): Generator; export function getElements( - key: K, + ...key: K[] ): Generator; -export function getElements(key: string): Generator; +export function getElements(...key: string[]): Generator; export function* getElements( - key: string | keyof HTMLElementTagNameMap | keyof SVGElementTagNameMap, + ...key: (string | keyof HTMLElementTagNameMap | keyof SVGElementTagNameMap)[] ) { - for (const element of document.querySelectorAll(key)) { - if (element !== null) { - yield element; + for (const query of key) { + for (const element of document.querySelectorAll(query)) { + if (element !== null) { + yield element; + } } } } diff --git a/netbox/templates/dcim/rack.html b/netbox/templates/dcim/rack.html index f0081cce1..3ff088b1c 100644 --- a/netbox/templates/dcim/rack.html +++ b/netbox/templates/dcim/rack.html @@ -18,29 +18,17 @@ {% endblock %} -{% block buttons %} - - Previous Rack - - - Next Rack - - {% if perms.dcim.add_rack %} - {% clone_button object %} - {% endif %} - {% if perms.dcim.change_rack %} - {% edit_button object %} - {% endif %} - {% if perms.dcim.delete_rack %} - {% delete_button object %} - {% endif %} -{% endblock %} - -{% block tab_buttons %} - - {{ block.super }} + + Previous Rack + + + Next Rack + {% endblock %} {% block content %} @@ -389,7 +377,3 @@ {% endblock %} - -{% block javascript %} - -{% endblock %} diff --git a/netbox/templates/generic/object.html b/netbox/templates/generic/object.html index 2736c207c..495316fd9 100644 --- a/netbox/templates/generic/object.html +++ b/netbox/templates/generic/object.html @@ -63,10 +63,10 @@ {% endblock %} -{% block content %}{% endblock %} +{% block content %}{% block tab_buttons %}{% endblock %}{% endblock %} {% block components %}{% endblock %} -{% block header %} +{% comment %} {% block header %}
- {% comment %}
+
{% plugin_buttons object %} {% block buttons %} {% if request.user|can_add:object %} @@ -104,7 +104,7 @@ {% endblock %}

{% block title %}{{ object }}{% endblock %}

- {% endcomment %} + {% include 'inc/created_updated.html' %}
{% block tab_buttons %} @@ -112,4 +112,4 @@ {% endblock %}
-{% endblock %} +{% endblock %} {% endcomment %}