From 6fec62edc67db6644f649bde179ef4b3b427d213 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 24 Jan 2024 08:03:19 -0500 Subject: [PATCH] Experimenting --- netbox/extras/urls.py | 3 ++ netbox/extras/views.py | 7 +++ netbox/project-static/dist/netbox.css | Bin 546441 -> 562677 bytes netbox/project-static/package-lock.json | 30 ++++++++++++ netbox/project-static/package.json | 1 + netbox/project-static/styles/netbox.scss | 3 +- netbox/project-static/yarn.lock | 20 ++++++++ netbox/templates/extras/tom_select.html | 59 +++++++++++++++++++++++ 8 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 netbox/templates/extras/tom_select.html diff --git a/netbox/extras/urls.py b/netbox/extras/urls.py index 0a1786f1f..6a729a082 100644 --- a/netbox/extras/urls.py +++ b/netbox/extras/urls.py @@ -136,4 +136,7 @@ urlpatterns = [ # Markdown path('render/markdown/', views.RenderMarkdownView.as_view(), name="render_markdown"), + + # Testing + path('tom-select/', views.TomSelectView.as_view(), name="tom_select"), ] diff --git a/netbox/extras/views.py b/netbox/extras/views.py index ad00d7412..2ccf6c4d9 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -30,6 +30,13 @@ from .reports import run_report from .scripts import run_script +class TomSelectView(View): + + def get(self, request): + return render(request, 'extras/tom_select.html', { + }) + + # # Custom fields # diff --git a/netbox/project-static/dist/netbox.css b/netbox/project-static/dist/netbox.css index 194e7935183b33cf314c9a1da42ea8ae1b083edf..48a70fd10d1258b7a61784d72115642b026672ef 100644 GIT binary patch delta 10445 zcmbtaYit}>71ny=olR`#Wjk*>W1A#i$2%FXA2G9S)TS+gijqV`w1~Fucz1SplHJ+u z?AUR#xZ8^SDFsBClG`?-Nz^JxMO9mYR3XupR=|&{q)!1M1X|P|K#`hIA*w=wb6-1m zW*-hBD@VI??>+b2^Zd@abN^EVfB(VYy(dB^+D?Q|EIZMDB633dQS?-Qr{a|3siNiB z#e4;w9*B;(_dU9y{ivCCa%lf8ZN2EF=}@(J+(mj=+Q z4~3Sajwjkypw(Ka9m%=&Wz|JY@~EwsN`|cz=JJlI9lEOwUnMu z4XeuJRASOL3UXW?D=o-7<+vJ?mEGh~-HZu7V^PV>j64WG&*=$_w(H}A_7Q*(YUXNwE*a!yYdk7`!YGRWze!1jz(<_+61fxWn%H?x*D ztCx+uX&LU74|^L3LgZsl+MKVX=InCO)=EXwatu3J(Cw^gX{tO9=fi($k_!pTWU{o7 zoYhlDvUYLKN^3(#27i*NVjgG=jZG&e#>bPhMLTWSK%-hN=FPM`l-AQ3W3pZ=L1q*^ z<(TtEMchGECnxkNzC$LH@yJu^c6L@DR!7Mv=HH`ARNqJi_~@hcR?=)LXN;Y5cLIMz zK^)D2aRoU$I*yax_(VUegfR z6MExf+dA}%k0L`I!iH(_&l{q(X?g~% zy^=RF4tIX)=R2{9$C8AOhSfue-Ok(%ZzqzeV-!1#98dV!ZDduIVo6V#&M{4ybgw_3 z7+F+^wBk844ccn32cNH^@4dHdLr;86g@2_5!d}`gmLNKycOP!=K6x(EjxMCyJ7=j) z!MttBY36ieXSI1-`NgVFV9JS?s0 z!l7aav!tqHIy(MBQ-+7atC!U^yNV@ZE%s6PRbkd`s+vJ+3`%seDHL2fr-!By&PrU@A)=n9Ll zQ&YRgrxQtZ@X3hWALE>)jf@Ub_me>P#H4Ghbe(CDL;EMN;H@y_w3_Lg!qVBa8X#9L znU)1d<8jZl@+K<1(zYDEuuh8HJPux&WWkzzXO7g=78pGil5nKK;d)RWME5SX^;Q#r zG&nu--J=(Kt@WdK?vQ)7=$tFmM3R=K3xupwmWx@Sq>pY_ z4emS#FvEsmDvv4X*sE>*UB0L2tv8oVR&iG4Rz`3g5U&K>n4z=8CUOfxvu0muTUWCbI{MWqQ1nll=$CfSE9zQbFM zQ|ip@oZ}R&N<0qdDA_d6#_2;%9uqecrppS+$826L!Kg`eR+ZL;!8*`DLfX8UB{zm> zY1)g^w1?iE32#JO&I6jheWtw=UD_Y&aP6Pa2N_Uo$gq+r+65Nn{oIV!q$4m~ z%ga8#sZ0U!4A1NKFcm=+WB^v`#71c}1)RsFEz%=ULxdC};f5?w1@o92({k8Q>nX&T zLTa&5v`Ja1nS0JayHsiYZ5%RB)#5*Q)!8Cwwt&-6&_6v?O?)(7Fc*e#A|7RqIXXSL z&3*QK3@O=AC;InpD1|N?AxZX3-Ny)yzF;`TGSY9BHdU$Ik~nwcFu}qA1MK`*$^^^$ zB*(|c0LLUTYU9{5ft@r10V-ZLj~g2P8GvQXP3t&0NLVqbe0h)utWeV<7vT)?FEAu1 zf;_p>xc=R3MV0acC{Nwij2)p4uA^D=kbpAy&p1~@-AbAZ(Y|8) zS`z;Q(VED72BT?!3`a%x0^{YCEDNl)Vu+^QtE5B?28;P{fFP;0Fjy7pEXb&$1M^tY zj7^WYpEg?aQKZNH@z1+NsLP3QBs2rAHdnA{MPHL7%kni0fw}a-jOJuGVGgYzUREIq z38tJ$;17>D9$Zi2UE){;+8F%~%>uKmse)+yU}tGAw7gz+&?|aqWt9eQS{eM0XVGR2 zNF7E^9JMwF7ueE_#IK`Jor}dgb|Y0o!iGrC@~o_2gRY?a9+$T7y2{zILP?-^J`){6 z_qvhw?%zJ_>sM)qga#2-a;P%IQSygYLA~T}$}oR#zz^Sn#Y~|mB6K_yb<*GSXhctF zH^D)_P-srMCij5b1=yoMAqhZPjnm7Pn~1c<)BtFANlA+63TptJErqvWUuv~`a1lQY z*E<1Kf-}(G6VGd86u@zF-m1(fg8Q&4qS1B`6$q%t#cy-Mb#(n|;aa%?+F#UsFt406 z;D9A5Q=mx%S)E_Dc_~49(}QQCj@(p+bhxDu@mc!-!FqcH#fR=b*4Dk3bPTTQV2y=k zR0y3a#z~8s4b?&u%&aDBSQ_I<4Z0cp0kq#Vu}J5}SKl-u6?voKD(zmg+Mq$%%yOJ( zQ?x~3WmyH`N4qv)KPxus!C!v`5QEONZ%nUZXdDYbF}5dGL2Wl;{{QD@4fcvqk40mu z)bnYgP9C?3$QUQ$cP=WiZ|r`!ecUaa?3^YP#6^CYvrZWYBOZi62cC>hzB1*c*#`WEX7N@lhaJAY&gS!mt$zYFT4%i z+86FYxAccMui!|lw1A%K3-7qT{?J?kv?dZy;~$|tu?jka+Sj3fj!P@ns&&0M^w>Z& zhQ56<(uL%(v}!Nz2nbMAm2sVc(K>IzCDJ~Ie0>?xmT~X;RWJHlkFI>R& zR>AlxZ}u>7Sg{KSE=G*LK^KmIIozD!)f#S^&;U-<6^8pL_u%*Q=-I>V1Lz;uNU=7j z?EVGytqNSwhyZ@IXO0wBpl5DrlRF8A%#7Wc%l+oP)9-EADDL1Rf$ok-hurIav)A45 z{`2n23mxe8At~zq=Y7e&@xl@GW~bEc$`_VjEAp;*?6B&+86#{Mv#?fVfj&p2h?H}G z_{7&kqv(weX>TJoDm50q*o=j`yRxR-)Xl_<_4^pBo5J+z6y0OJ*9qIpY}=L9L-0h{UG}b zja9D)W9ZsOy$ z)Ed5ev12{Kehtjw)afDj(wX>yTKJL4F-1$<-#7p`+ev_Xr#e3amYRV*qtDc z=5)j^iMWs^BARZ1X6tDzUj^oIWa@tO*pO>~w;O%)Uy;tL{}_#{`xcB`?E;S_|B7B- zlvljYl(HLL+1lPyg=pSfP_5n!XvJ@f7YYK)u7Pf-z;=s;JO`1+8|lmrySvWry$xPP z7#>q564R5r$Kd}dd4xgL7>oc6h{?O;gaBTA4%=csbZ||3_pK_;ia-idU(APy8+3>3 zX^S>QUM8TG3wr6MwhidDGm$lipooCzCh8!cZEf^iUioZ5n6=Kb`|#=g0T1vK71^pM z;%(4+9`lrZR-7hyfZUePx_@}6SE#dSfF-`mb{Q4DF2=PC9T(PsB#kL{Swvn25MUh{ z6UzQzan5!d#Xa|i+p$0`@{e%Hmm151|L zTD+!r(51~#>^$&Eq~ptCFd*;6@ctxwdjT5RLi7-469zQP$_ayvI%X;hx)568w=12s|8MSM+LnF zct#w8a888Im|`~{;x#oJ5iSJ^hBa3aUfytjr*_SHT+7r@**dOLtWh>X^&<{6T_M^$ zdgoh_5qPDc)_wD!ep7qkP)wZQMF@N~=iOSeTTXka9|RV=~iQ|Qz8qFs~G$e=Gyk^CsKj&m4hY7p%| h7+r&o?T`jBdt0A7)gK+*j*jn;2A=!m#^^WJ{1?= 8" } }, + "node_modules/@orchidjs/sifter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@orchidjs/sifter/-/sifter-1.0.3.tgz", + "integrity": "sha512-zCZbwKegHytfsPm8Amcfh7v/4vHqTAaOu6xFswBYcn8nznBOuseu6COB2ON7ez0tFV0mKL0nRNnCiZZA+lU9/g==", + "dependencies": { + "@orchidjs/unicode-variants": "^1.0.4" + } + }, + "node_modules/@orchidjs/unicode-variants": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@orchidjs/unicode-variants/-/unicode-variants-1.0.4.tgz", + "integrity": "sha512-NvVBRnZNE+dugiXERFsET1JlKZfM5lJDEpSMilKW4bToYJ7pxf0Zne78xyXB2ny2c2aHfJ6WLnz1AaTNHAmQeQ==" + }, "node_modules/@pkgr/utils": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", @@ -3888,6 +3902,22 @@ "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=", "license": "MIT" }, + "node_modules/tom-select": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tom-select/-/tom-select-2.3.1.tgz", + "integrity": "sha512-QS4vnOcB6StNGqX4sGboGXL2fkhBF2gIBB+8Hwv30FZXYPn0CyYO8kkdATRvwfCTThxiR4WcXwKJZ3cOmtI9eg==", + "dependencies": { + "@orchidjs/sifter": "^1.0.3", + "@orchidjs/unicode-variants": "^1.0.4" + }, + "engines": { + "node": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tom-select" + } + }, "node_modules/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", diff --git a/netbox/project-static/package.json b/netbox/project-static/package.json index a46612d55..d4a52e82d 100644 --- a/netbox/project-static/package.json +++ b/netbox/project-static/package.json @@ -35,6 +35,7 @@ "query-string": "^7.1.1", "sass": "^1.55.0", "slim-select": "^1.27.1", + "tom-select": "^2.3.1", "typeface-inter": "^3.18.1", "typeface-roboto-mono": "^1.1.13" }, diff --git a/netbox/project-static/styles/netbox.scss b/netbox/project-static/styles/netbox.scss index 17c6d88c9..0fece199b 100644 --- a/netbox/project-static/styles/netbox.scss +++ b/netbox/project-static/styles/netbox.scss @@ -1,7 +1,8 @@ @import 'variables'; -// Tabler +// Tabler & vendors @import '../node_modules/@tabler/core/src/scss/_core.scss'; +@import '../node_modules/@tabler/core/src/scss/vendor/tom-select'; // Overrides of external libraries @import 'overrides/slim-select'; diff --git a/netbox/project-static/yarn.lock b/netbox/project-static/yarn.lock index 14c62ad03..2d71a07e3 100644 --- a/netbox/project-static/yarn.lock +++ b/netbox/project-static/yarn.lock @@ -80,6 +80,18 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@orchidjs/sifter@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@orchidjs/sifter/-/sifter-1.0.3.tgz" + integrity sha512-zCZbwKegHytfsPm8Amcfh7v/4vHqTAaOu6xFswBYcn8nznBOuseu6COB2ON7ez0tFV0mKL0nRNnCiZZA+lU9/g== + dependencies: + "@orchidjs/unicode-variants" "^1.0.4" + +"@orchidjs/unicode-variants@^1.0.4": + version "1.0.4" + resolved "https://registry.npmjs.org/@orchidjs/unicode-variants/-/unicode-variants-1.0.4.tgz" + integrity sha512-NvVBRnZNE+dugiXERFsET1JlKZfM5lJDEpSMilKW4bToYJ7pxf0Zne78xyXB2ny2c2aHfJ6WLnz1AaTNHAmQeQ== + "@pkgr/utils@^2.3.1": version "2.3.1" resolved "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz" @@ -2004,6 +2016,14 @@ toggle-selection@^1.0.6: resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz" integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= +tom-select@^2.2.2, tom-select@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/tom-select/-/tom-select-2.3.1.tgz" + integrity sha512-QS4vnOcB6StNGqX4sGboGXL2fkhBF2gIBB+8Hwv30FZXYPn0CyYO8kkdATRvwfCTThxiR4WcXwKJZ3cOmtI9eg== + dependencies: + "@orchidjs/sifter" "^1.0.3" + "@orchidjs/unicode-variants" "^1.0.4" + tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz" diff --git a/netbox/templates/extras/tom_select.html b/netbox/templates/extras/tom_select.html new file mode 100644 index 000000000..a6d38002a --- /dev/null +++ b/netbox/templates/extras/tom_select.html @@ -0,0 +1,59 @@ +{% extends 'base/layout.html' %} + +{% block content %} +

Tom select

+ + + + + + + +{% endblock content %}