From 829d55d7490ad1554f44f00a5b75272b26d002b2 Mon Sep 17 00:00:00 2001 From: Viktor Vorobev <vorobev@in.tum.de> Date: Fri, 7 Jul 2023 19:57:29 +0000 Subject: [PATCH] Merged in hide-scan-storage (pull request #55) [NRRPLT-0000] Hide Scan Storage * [NRRPLT-0000] Hide Scan Storage Approved-by: Ugo Albanese --- public/hbp.png | Bin 0 -> 1641 bytes public/hbp75.png | Bin 0 -> 9020 bytes public/index.html | 2 +- public/manifest.json | 11 ++- .../import-experiment-buttons.js | 85 ++++++++++-------- .../nrp-core-dashboard/nrp-core-dashboard.js | 19 ++-- src/config.json.sample.docker | 3 +- src/config.json.sample.local | 3 +- src/config.json.sample.oidc | 3 +- 9 files changed, 76 insertions(+), 50 deletions(-) create mode 100644 public/hbp.png create mode 100644 public/hbp75.png diff --git a/public/hbp.png b/public/hbp.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c728ac784e552cd87262aac310d5dcf6c359f0 GIT binary patch literal 1641 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 literal 0 HcmV?d00001 diff --git a/public/hbp75.png b/public/hbp75.png new file mode 100644 index 0000000000000000000000000000000000000000..4dfc63a64049f08f887815e30e64cb0edb2c8adc GIT binary patch literal 9020 zcmV-CBg5Q@P)<h;3K|Lk000e1NJLTq002t>002t}1^@s6I8J)%001KcNkl<Zc-rl} zd6aEeb>91%Ypva#rrO*0(p9f3dUZ&CwqpkaBSv7F3@1*E6B0LxdCz#*f$;KT(>d6V zu^q=Yv6B!d8L@FfaA-0N8FqvW2m(SNA&@}L)otrG)tqiOt9yT}bFZZ50Fn`YIAPzh zN7b#`r)t-C=A7%B-#6EWZynz{zIA--_|wND4}W;qH{*TDH^WVYN8b5rk@_&&{{Ye) z`mf>pI9f+4ZT>`*`d}&QuD^Qd(m(v)4y^F`ckK(}Un!Zn2I?OaX*1#sWCk)q`j_#Z z+0C4=6^-|lT2pCFp){GOa|Zd1;5qhJFT3=&{+9#G-Tiwn6q7wC8u?53`nyC02vdkN zh!c<*!VF{zd5QG*@hj^$ad7bvA31ZHfypSfrl$>sC`zTNL{ln_L_(>|zn^vXvs$V5 z-gd>I2miu>)x7Jq*T?C}Kak;Yw`dR2g6@DRqCH|P<RF<q4k}lW3G9A3V(;fS>mOjD zT;bvAg!{HOh(L@Ge8AZN9&`{)6mk^V{A1e%TI)ab?_Tv?-}4s&toqkqbA6nyeUiy> zqCJBckK_@Gh~xq3l}M$LszRy~sY)nIWaT-qatmS~;e+nQc-6y&zz0vAU~D^T@2Oiy z-CDXXFl{W}2BM2Z8woBl)ESi+4lE9j|L$M=?)^{q-=?0<A2$2t*IXaY9{VK05!(r} zd;mm%m_BAbq`w=fc0j%e`4VJHNVy-DZUL2n-y{%O?>ZLpg74U|i@wQN$TAl4jD;d+ zTUoGLmSj5Jegp=2#<pI`sOzxK?fag0zW>-aEm-wCe&l-p$i1JG{vy$PVmkv-$l^XQ zB~mOR<qFc<1=ThvRv=r3VilHegwTQ8f*1%fGPaf&BSVvM`EY^NyksHESS?Cc%936E ziiJF<ml+oFjMb`SW*q{!5a?xk-?zQvJ;%Q3z?%NzkKJJJ{rD%<jsxI2BnAi$yhHLn zYTFf1Ekl1NR4Y(!NBRe#+z!PKkPM;+w+;kCgo(4*5O6WDyVt{ru)FH9tEyNo3bt1z z!z^QGzsLT?0l8L8ItzgHkzQsfGrjNDU;IzUzG=XkyzTGZ;O_d!C)BP3h{=h~ln6-C zPpMZ7pj<>P9YluvQW_2qfvzBWq&k#<B|>`=qQ%dn>ugiwV}uyl+v^h}EawFW2LpCi z6}tv~_6~aVjiHxkC=rZSL?YA9v3*d{SikSqw?93AeO+LU-~3}Yx=-K!30dBTR6}C$ zpbe7uptppW0x5<_-iLApwf80{x22^mdZd3affPMN3-&BTPaxuB<V@S*BlsBER^${~ z6NzXM_74U;d;1Fg%+Sv>N~KsVa~ATP(r7y8DKo<*+ZI?G&Gy~$*8h0y|2MG4Kl9@^ zx=-G5rxYb>+a4%-U|Xc@r?XmwqMy#?OOWMDLFHhIv;=1hQ0^qE90=exfCO5I39K#K z5(yX)lqe1j`uGr0N-#=TElVz0Tx3_jN2V2vWx+z3(aSQ*Tw{HpFq*4(FLP{tvhUV6 z{l}w!?qE$`|Km5hkKcZ$0D9kHB+C&|h{;m=m3^dIKyAAeS-lKQ4x$n$F@otK!-Mmc z(t|3YI}b5HbodZ)F|gTLLWEo?VuZ?M?C$j_lqSSTriIoyR;!ZBRu<XOFB#?;gWS;1 zb9@MtnWk4{9Nw|O(R1SixBlbbKl<ke*7&DidsBDkNA4te)c#8n>&}YA*s38EJ!H58 zb;<R}a3^#Vur1_+w8kp~)%H}g+$`OK?m_ctO2z011bmG67})GO1cfKkc+ak?B2$v0 zOB5ndI|~9=t}b!)jui$)0xUP0LTd`6**2)yu~_lY+0lVp{_l4m{f2`z`pMVc)cwgv zK8|<Dj@?Lq0m%y}suU&t1=N8fs2!I;3`Ez0t-;NZ-f99$7hrnCZUa;SqEmYMX#xwM z(lA8qywEEVj0i$xy=~c6RcI7SgykZqwvNsP8t3U3hG*<v<<RnwDl<ePRi-I2&Hj}k z3sug8Yg-4N|Away*pmip>&O4Eo9##L_&ClYi_55OJCUM*q9iJV+II!!@N*E8r%19b zxR&T`BAdEERECHm&dwmB5)YFc!VHQ%^T_f<z{QY2QbMK_MyZPtcCM}|jYf-Nxhk1D zPv<?I4|FcjI?s-U9ycD`$?Bk@N;HBh(_FHBfqs$k;Hk|6H~-Y{9evut+WOI-xY^!* z$H!u4kzOCQdoPmZU~=MQgj(4Fwk2+^fp<jLf$P90-b1;BsEjyUBQ_g|Qh-i%OeqK! z^4*D;&U>&BBg>}1hCrqi3Q!^_5n_y-n$>i{vsk3s6d(cS9Gwr;o#o7=CQ}MQ2q9AB zntqwFcX>ds$oSI9%>y^R?stzqZD5Ul_;t_k{`iiM#il{Z5_QR?sO43pD2dGs87!g( zi^O_NIC~8L&|QSJFB9ucP#F><YH=T7?XxK@MG{D&QVNOzH%T?DI()HRjS((eSU`)S z@g60D1{8wKKYwUz#LRk@%K|m;a!*fczIbMndrqx$W;_ETSMOP7W7gtBWU<OQxMRqU zr5;75dEofwfg4}@AD$Fo`m09NtN-5fyZ?U2N7d>w=DMpfS6_kJwgRC`e|R?|f9@?H zfjHX&97Id(M#Q!IiR)hiKLO>^B2W~FGKeumtr49ex`6H!WCJ8$0e6DWaT8;&I6PRO z4IUpOmC?j`#Kj09LMDm_&Tp|*cig+S!2{>EXl>HKa;3<Xrpz>hECb-&R*eW$nc?8- zklo9D`bEakwbA0?n_u;}PJjA6zx-zcYx>*2b3-_N=HuDTH=y?KK{5prQfj#dx*EOz zAhNgwu7!32(Lr=bv|z`8h58Kf+`XVZ7=x63$oq&giNFdFW(lZrFLaM^pWMJ8@3Wj2 z_!zMvu#jbh7}JUxVWYJ?vN`6{XU=l>>GL=rD3qeohC!B*i6+yELTR)JtNoIDkFTSm zkp4xSi|k(R@w~%3*|XALyy-<h_%}cCU;oXoekDxISNcXgbN-d)ip%h8XP~KxU5Av4 z=-X6}#G?;g4qZ+34QK;V&C^Uk>3Ll$kfq&;LrvF+euQ*O#Nj?9+mTktd=<<B=spat z$4nH@SX`m@4i^Iv=$VYE^_;0|PEBeitz~K*3t5J(N;(@Zu8<dQLFNUpbsiKv_t19k ze)t>`K(ryoNZWa)(bCHe+ZL)z|7<l&slOYYLk4|f(-6Ck=o~Z+)HBQ_mlNxn*fxnC zbn|+Iq<7!sP%a<~dy)QjBp-sQAnT<%<!k896G!)@&s7F$0M%9OD03F_jDD6Oz<Ss6 z=ybxCZE-PDXho?Fl~ybiIeUkFmW!NTZqOnSlPnZtq_LjbdTQ&~KI{==O#km35ooQ) zI?u|mWMkCuuik&p|M}D-t8Ery+oG42VCPQ!(FdWiMB5^TLG9R+2&Zp}p+S6`qDx4i znF1*_YGDz2J?Qn3;VRN!owq_gB&&$+3CJp93=qahzKebRW$F-^T1%!Bd#fImHk3-! zl%8qdvN>xxH)|Lf%T#w1q8Zl~6)yz0!bhk(M^KTd6j4W>d+84T<i3-LiJ%R^1ui+b zO4E9#jpf|9{chk_o-|mq-};@G`G+1Mj;F+454Exk#pU?>?k2h^*)wk@&ZgiS@GZnS zU|E@Xlra>#hZ<H;^%7WvW#|o|H-KsY<pPiat57UMHblxrFntbI+t>`ArJiTz93yA3 z!PC=*acc>UqIHp~vvfMpDMddsI2VaNk{FpVX)OjJsz_9t7@%KdEcObf(+(YlTdvwe z-8iPTrL%#ybI*E8krhs#xgxf0s#UWZjKb{Oi_!u2<@=Dbgm#v|3N10zNNk8YLa!h< zC4c?b|Cmobx{iooGDFp?Kol+tb!)LM@SDH*Q@r3ip9QK!vXa-o{%w5p&d(9W;9}CX zLX24Fn9gQsK(wYD3|QX1hy6#c<H!qMj4yJ6?-=BfuJdF@p(2dij!J2QXrh9kBhd$r z>|f#bdyez68xAvT9M%OkCoR@`X06-zlr;G9n}6Y+aQe)VIG!MjL)5MvsMSSebpg(t zB-UdHO{z7af!IK-A=jv#yMcxf8mJ0Xug7~o{V3o6rr!hLwin#Qd;Zm138q5LsTQU} zbjE{^ZtySu^?UgFUwFq8?&rDBe?Gtd{{KQ5B9o@&(c>rhlRx?+{@pMAQ?|~X<9Xlv zQeN<rZ)7^_a5hjXMfC9S+0ooaQxuX`#!_oaZCLFW<XSVDbe!L+IeL181lYFN<GELC z`^&F>(RKgrNfr1wnjE2RQ&FGHAOxbb#ElJNNIWMtHL+`nZ9{D9bWS#qyabb@iwcuh z=yHh8tH-Sy8kP6ZSueFbF(%$7noBRchPVIx+qmnqcR%rdNQ#3f&7i6{aOfZ}`RhNx z?|kZRuDbpPKJ~u$@~ba@Aytu)8%3ry)_Yp#Xsn~|98KqGI#1nsv=Szb!}@>?fu?gf zA82i$X)O<(8vorVwHi*|^&g%cx3-9F2W<y!3vC0fh3S;o)QDDK46&I#23FS)r<=qO z5uJf4An!xo1D!uEmgkML%D`@>R8~16B_aj_Jo_2X<nO=swNLCMY=;e=OeeBgXiY}o z^}mt4*2($vy!)qroT|tvjOOgLp>b&?ys#oR&e1P3T9?|QlzM?#=V?>DqOqQ}_32el z3as$Jm%lwW4K(w}@}4-IgVHpKIy5zs6-ZG+Gb45lv^Cg{I68}%0<seF9xAJz2o?e= zBQ|G}TB?f#k{Ql5FGYxfm%Q|)kG(>Yrggq;>Aa`VihNE$ckI~Cp{uU};Gs`{f=r;u z6i3&`)Ln|I+9nWI2Nj)5v|-kHoDbAC6?g0Aptc_C!jUJ(v$n>!#<nB2ZHg-Eh;@@v zv8f+Rxwb}nLu4>afVDN)hIsxM(d0<pL-LB4RVm6Yq*M$rI|;s<M_8WpEHMd4QAA+d z>gwa*6*8sKN|;*5`KF~XhFmE!ggu8Yxp?i#d+x^j$l9d7$gdjf*}pQt`Z*xo1;CQf zXnmlwfzEoG&ap9R<@S3{?fRNvMccicrX^g6tgZu-!E^?7L#%6PQfkJwK^C_o!zE}F zU~%I#QdE#tNLD2sUO#Tp4P8pb=;uUq9#zP^+N-qek48_3ETe=>6fQ=(5I8lRqC_Y& z&F0xN7q4Ad7$$lV;zgjY+O>=ik=BOCqODD5*LgySI2UNUxslsAKKzLXfA*__6^|WX z@TX3vbZc8;XOS!eB4IotHZ?TOJi?k(r@9)w`x0b%C-{!IwT7rXrQwBil<fbLh9))8 zqEm|_bGc^Ts)`67{?LaW<2RD@tV}74DD+$me0Vfwb3Ea`PyLV7=xWW88*XB4QX_N8 z=D7#Ar;!3XPsi3$w~kqBnYE6sS<6ztm;;-@ZLH^W51u>nRe9F*xBl&`n9hhkq~hMR zsO_sMqCyKMB$^OX<0YiEKWL9W{0xE##B=u(Hcz4UTt3&{HF4{43W&@jC|?58PsRl@ z?;}$hKKkgRy!p*<egeN)%?peVj5<pfJW(mCs^U#Q_9GXsd-WUsAEaye(%DU-zzeV1 z4_;_Gi**reJ<bJ!kBA4aA_S-mEDs8fj#`Ye_)OC;&9lF1WZ8S~yE=9@^@44K+P<0! zeA7T(&l_r&3VPSg6;TVpBi^Hr+=|+FHQ~%dkmb-$319rf)H_~ycd{IYePlR57PdpN zJvr05;`s5Cy!EYb;o!l8Pq@j<7`B^?#o+>ri;L(Ox$BOP@KfLWV*bYm-Uq;oUiSuG z_Je;LqZCIs$Gr5&B@Bw3NThR-#yMK+>71wS(rP$uY@!pbXXkRCSv#j0tz&)ER9}^p zZoKl<=lsKuuEwr|5Xf)7J~hj>16L#3C8;GBq!gr7sD6$N2dITU4Ew0XWy1M~P%Ep1 zQ=dU?+s7Z=bB<TN>Gz-3xr4#tB6|;C#x>ve?OglPS8;A;S)bNCZ|8PKbz<(Lx??=+ z7|$$|nZ<S<+j)WuC@)wSD3zwrib5MUHftU@zCms@nNi$!%i*7W>)*NcXa48yj)+52 z&4|v?zW)yso*JZx$U=tnGsJi>7SWE-Gsr@L8kERFk2vVT$_nA^cwV%h*d)C2d%u%+ z|NgH)u?<)PDj+Z#jrizCKgK)W@ymSp!ykUaYhL_U{t6#>-}{&Wr=6wl9HXY?>}1Nx zjV(@X&4@86p~prOPH)Ya%`D^EGM#qJ8b>{|M3*Ev6+k?U#x1^!L>CAyqJywBD3G~& zVvO#-a)Gz@T~d~CVHBuWfzhBfD3yx6O41pkA<L1nM9LnNJtQk3FA$xfwjDwpx;`=V z#}BtT2U81^2AUDrE$}T1!#*#1;rH;N4}FODzW2R<>NVrw8Pzk~bVfa$QqN{|Z97*@ zBMU{&tp|3|&kUtD6q%tinqHpK%MDeYghoBr@kOA>3|a|#Zip-n3d-D2=9*zI<7a>9 z=C^%Cu*|csyI-;lDT}1H_xq32R1;vtNE8qy$p*_SFnKaC<|YQ-Cn-ngsJ+hwQ$Fq; ziAmRrbHg>X^ZwG$8=Jswx825D-tv~m*hY-F7}LA0(rOsyqN$I8J;OeiuP#yB<nSng zTuJf`GfkllrP1>drHIUL<HE=ikgm%#RiUYJ!|Je_e$@g${6|0iyE5n}RiP*#&yapE zeKXG=XEexsreO|JUL*@lXK6UZwP2ehH+u`cl_$14V!%#`-DUzxNZ`#I!5AYy{3DO8 zasiT5V>@gJ6k6kBAV%0X95Bo?YU^mdr*(lyB-4p%<XTZ=ip(Ss)LcSU3NoD{Oeq-l za*8}%Qx*oT`OH@ZOGIk5XO~ZYV2%_8((fagP5_#DbZLW>735`dq)kTD2C^andBI$@ zP15Uq_qf3F(40$BG=3go^OG=-t|v113(;jmVCEc~ZA-2c+pCfoq4l25CyrD*hxL&n zGZdM|sCmR>hSJQxCdtj#N>Sy8VU?3-io$5hBBRJO&$?{q=e~BkqxHL`EKud#jmdLl zc^NS#>FP!!d7i#kR*9X@fs!mIhCuX=*v^QyCfXLfd*ZK*A%PnGe4-|#${Q0{VGfu! zkF7r;1YDd8djkC|DGWYFTIZ=<pmvFP*48CpjH1Yr5LjlZ7L~a{X@yeBQX5nmy)vW7 z3}vAy^E4ZA+bvi9qpt~;T3P)BMUkSa$RRh#@*+}IscvZlMVbSRBA^vy1uC1f^=6tP z$=1ZKPL7Y#PvE4OURo)Goezt62;pKX3eZ@KckW`H^OB-VD<RXG+Brf5BZ5{!=RLD| zDmKoeh~(Ok>l95PMv8eVR++|Vh0(&c#p+_c$}>Y%7?uWkc+Qo}>t9nTHCG@0a9CR- z#)xzsIENYzAk@Thixe4@1rn3aoq)=TS%Jz+!rFPH)F~CChv4U+T*$+az|<9lS(@pJ z9`FeM;{53c-v9n5)T|KF%tHh^A85QsBDmmby(dI)F*U``2ez7yg*?L<g)^ycO|7Fa znvh4Lw`5w=FLG26BtV%d%3PCW`kp7HI#hq{mG{Zg;(U&wKzhA7mFOYEArvJtH}51* zX&NuAgb1;o5WFLL2i=U=%`TLo$5e;VLhR;F&>U0(F(#l+oH)TNzVG`UC;p}8nK-xT zeFA7~EnNt>knH-_B|*={!1-B2ZVY**Q*;?cVHBP7sWxSX<v~fAYZm6kJ<k%w*t6XK z;*-|kW!S$f&SuY%u7fN?i~=o4wn!YEBWgkACFFT>nzI6Ba$-G3qDQ>tOQ##A8xD0o z^5C(}i$8mFYs6<hb1zO696o%2<y8ZIhM0nne*8}U?Z5wh-uceoexmTVHR7|Mxr^vL zI}RQq6a}64j9QDNDN1VpnDXg-V9Q#n%;2oYWeV3BTn^59W;4g2G*nrVd5kekVoPBZ zWntLAXYkLSJXlKouH^Z1$g@Nt?A+$+CPV@%uM$uuMU><Tu(*Dd7(7{Yyz9<m+`AEw ztUzZuFZn-?AOb-QZ}_?2#s&D9*Z&=Ex#<~6s);op{J;lUJAIm$+;&@9{pKS_)_H#Q zXWxW(j@P{LjqJYiYHIJ9T8l=QSxYa==-iaf2W*JUW*voAv_@lf#AP1u6xJAA7HPY{ zYG0$HP-umUC0bxmW&EudUiZ-_4VK!u<BM@JC6*=9??a=A<D|b!QO-HmoL*!_BBez| z+*pGU=sL?kdEtJtOP_)CD(DZP&`Dw*u0U@Y%0<vUqOU>cL_6iJZ+RV<Wg<g1y=UfK z0>xR{;E^b7&T2O6mfCs7U9!4bpEy@P&siJSI3GY@ZBnz8=QtDa#^6k($^v!cD00QD zaV%FkWuDQ`p=&)=o*jKkR#@*ff8%}QH@zJZL5wDh9kFSUUP-j`np31`BAZ8;HpJ06 zq;J4me1A8gYtbss6^I%c_#{W`0x(D+L_bEb5K5xoMDi)e-44cHGj>UiX}m|1MvWTh z>E=bfc8=(w^O4Sb%1o0fg(aXxII%fl$DZvt6L2QtjHgpVri4<b8HjOXSss*BMl<$M z7V2|P*^!o_T$i$3iJK#E7V;uB)Vcuc!CE9+NML0-aW<Me(h6DJmQt&o5u`<E!JP-c z2<;iD`%n%NvsW#YD@boY=oRoY9-XYSd$0=|1M6+e(dmSNF>JOSqt-HNTBfaI(sno- z$)n(Gq;sCV3w<7JM<9yLrlZU>&IPOq_{?yknWp|v8*Jw(GR=6_v9fJQs3O}Ist-K% zS%(nbiPA*p66Y!lL`mXUMMaoRQk#<%#4IO{*OUC5SE$wfh-;zQg4qUf>lifa$?kV! zu#<TszK9I32D6yRm775GCC+vo6KAQtBU6gqRgc|OkDf6QBehFT&D1(hj3<mb%U0Vl z>(bQVmD?9VB9q3_&l7nqjK=xo4wadnw?OIZ7XVvbsQ955A9?3f21~6h{hoi|%SmbI zRf(XALW(j0XENewJr(+*BCMYVrO^AYP2B22qwG7V*9r9&QY;~hm%+AYA-%l`uwcP% zq!Fc9!}Kn!_k4b9i>Y-?oTUk#Hh2ccuzxV%>g6SN5Bd~Jb9!3SIEN3ZCk!z%$TIdX z4)8IuF>5dCQ>V6OsrSnbN(n`l7<<3W7|kpv&rR<6Y8u*COvBy}|IlYgKl-}sns@)_ zdt_;dx$+=t+hQ7V%!}04Y;M3MhmpJ_oIQcQ>?)X#VM~~AN$IVi7O#Z<0Qw71R7h|T zRQmOz=OX}9q@98v;bP$Ebj(tgG4qaGG;Xdu_!v;Y_Ohf{QS7ODG_B+K){I$W$y8D# z4y+8>oU}Z$G2+P1RgO<47h9mpXu8%T!2KsSx&M)M_OA}^yYtt+{~3SgG0BDB_@#S` z7r)@TIIFRr_!RcekKrGE1Vm7IBCX-%qr`fGTH1kH*bX5ed5LU4jJo{WQG1?+Y`+q< zdIhwbk87GA$L@8NT<PYaxx*ujY{$rUbUsiSGoN6-F#kZZuR`Fv4(_F&XWY1VJJ;{o z#_nMctppze&)L77wXGVXgyS0%$~=vEPa4bT9y!N<`|L69e()@Z_blCa=dXSLwO>n} zHDBw3g<tu(d#A5^{dM&p|It0Mo)J!-KukdG+J^Ld#OW4ceGPr(^N>Lg>0N@TK&;PQ zOv5-mi`sJpG{o6aBwK|TkT`F3bOm7(>Ib1%BF2CqJTw`zqpZl4(6~qxA;dInTYJlm zyLQkxj|*vTKGT}Livt$(4BI8!OCmgce#BxgC%VYytmDBGn`};7TI)G-X!X92{QN7g zeKJz^lbTlU|I$CXxBRZ}JR)UDtY?I^)5Lm~c7P3+Ab>3IK&|dgyh~?^dnuh#(awmj zLCR%ha3D3;slucPlMK4GxzU<LJ|(cxb>v#%=F`YArq}owxO#bo7$WO!lPC@(vCkyc zbD_%FzcgT_R}ezPC`IQ2r#GjJ8_Tq@Tzg>k^G_D2r!)sY_{Fz>zWk2AbgdK#Fn{vV zWWY8xxQ6iMyYUZyE~y7uku3ZRPP8tFlhedtlc`!PrFJof`PT~Q&Lq$z1-lk?al?}f zsbLN=QYgc6k>i5L6FD=j69bntFQ2P4@4h~3`Pjp!Ik7pN`+<(ly5-DP&7|qLa_`C) zZvVMg9QlUru;{=2=kF`N?K`d|&tW_woIREFs;-$&-<-!k@>#<AvBbGdk-*7Hs5euT z1xK_~BwvQ$(%!^4-@l_$!PiRAl1_yX2)GDZDU?!JA1^8lGw0~fr;$seX}#y()9ZZs z+$Ph`p+u<X^9_%j9WiMwm+xBs!X0mY#WmmXy*vH4{nPu(=iPD@CL^9bMI4Wkk2qHx z=w`&t)A)x!MVy?2Vwgbl?OZ;d12%mGvO!8aKi^@20Wm1#qU$^`Cdu}5;7-q`xR`2G z?HoOmQJSQeJ+v|6^K0vj8q2hEk0}(^^T_!z<HmA$=i(Rdc=J;S>d(9@toQbRc7Oi7 zTdqPI!ifjdoYq{Yip><-DKulk+Wo}yUq-x5Lg9R)rPwjFThMJJO+Q*N%k$eYC{bu7 zEMz$%lD4KOI5C@IL!fpZk<=3wTC>r#eDUliXQvI5&N1z58j)0r+Ih}R8qSPrF5R*4 zg**Q7E3W=?-*4D|^RL~X-*C%SAcT_-rBuucVmnQeay?2`S2HHAKM0eP#CDVhcIT2_ zoIEtA5t3YKr9qkb#wNvLo}&<4jBIt5O`EK*2zVbjSJynWHR9xCM(aK6b<4Q5%;qx- znO4ji%a_h<a>=&g7jA#!%dg?<IKHl(ti3n>`u+K{Z@n@$HF0At4Y7Hj<m6_H*o=wo zgxF1q({se*AA@#%J_I6(jMgU}b9~HpK+nBB*p`<l0gdqRWIWg31s?-PClfw<Zk<VI znRS-dd(O>jCS6DCQqNag#~0T&IJh$W!tHPP`ha>`_DEO%@Si`BU-$eg!^Rr1oh8E+ zAvTjF2)7fcH;J1M6YDkN^fYnwFt|Da)SQ}6*$5Q7Qq2;D7R9!*K#MSPc1|dSjjrYB zc*3dajE%PC_+-MwrqpvG;zC43=x2sw>l1b?^zOU;r@rs&2I^_seP8{9-+Umy=H@HH znWJ+%jQNf)O>D=6a}PkX3DdJMI|J=`;`C8y&ZKMWWApK&RJW8s-<Y&x0^wvm!v@ds z*^JY5%|_dCdNyO+S<cQH9@!dWL!>l1@hvTknhtH`3;+EmUUn@{)A6)D*P;B$cYetn zdgc{ze11MtnnUo!trMy6w<BV^MVy|1Isrzv0qr?xj;2*nFDB}MuwXKjz*<`~wwCp- zV{ALlw+-uU!|7R_lm_dVS;v`aO=Xgc6A>Ec@4NlAFS~}P@pxLF7*f6NUw%msw_kz8 zv=?#x(Z_~$VgxrMPS=R_S?D&?X*Y>(1f$Q)H*qe22uoQ(<30C}wivmNQD+%h%Vyhg zwr<#JJ6w3oI;)-I)MQ34Gh|AA;ln@rl52UIk8j9>d+LAvV^^|y^xw#iy*Em)Lc%nO zeA0q;h-$#NMAoYws#=7y53ApaNX-Z9>sjrsa`*aqj@2{9wqtD5MuXrYSxgV@xo~DE z3ejxMT7PPD_O3tpn=g9JH{$R5hCdR@{=rWiV*BMUm*Mg?(Ebh4l0iFvB-9k7O`4g} zQ1p@h)%?-)5WRenyEoS_?w1Zk3Q3QHs+5KZD#|$(`4{81JNoKpT=iQ#!F2lz2-ct4 z7xW9L{KfD5+mh+aMC=bC?RMzE7$_EyaxZtgt2x#R6X%#%d$IM=$X!JFPi<%Kea$sj z|Cc}Sd;cbRjNPw(FN9}GCNCjhzW#3Y-F$IeQ+xlOOw^r~F@N}q1BX7xw~qhGc9^?w iGT%bsTgU%C$NvjeB6ET%#wkDm0000<MNUMnLSTZt#KL<3 literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html index dd17215..141a45a 100644 --- a/public/index.html +++ b/public/index.html @@ -2,7 +2,7 @@ <html lang="en"> <head> <meta charset="utf-8" /> - <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> + <link rel="icon" href="%PUBLIC_URL%/hbp.png" /> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="theme-color" content="#000000" /> diff --git a/public/manifest.json b/public/manifest.json index 6aade06..35ac71b 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -3,9 +3,14 @@ "name": "Neurorobotics Platform", "icons": [ { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" + "src": "hbp.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "hbp75.png", + "sizes": "75x75", + "type": "image/png" }, { "src": "logo192.png", diff --git a/src/components/experiment-list/import-experiment-buttons.js b/src/components/experiment-list/import-experiment-buttons.js index 4c28631..bdb5d10 100644 --- a/src/components/experiment-list/import-experiment-buttons.js +++ b/src/components/experiment-list/import-experiment-buttons.js @@ -7,12 +7,18 @@ import ExperimentStorageService from '../../services/experiments/files/experimen import './experiment-list-element.css'; import './import-experiment-buttons.css'; + +import frontendConfig from '../../config.json'; + import OverlayTrigger from 'react-bootstrap/OverlayTrigger'; import Tooltip from 'react-bootstrap/Tooltip'; export default class ImportExperimentButtons extends React.Component { constructor(props) { super(props); this.state = {}; + // By default, we enable the scan storage button, even if it's not in the config. + // For the online version, we explicitly disable it. + this.scanStorage = frontendConfig.scanStorage !== undefined ? frontendConfig.scanStorage : true; } importFolderPopupClick() { @@ -152,47 +158,50 @@ export default class ImportExperimentButtons extends React.Component { {/* Import buttons */} {/* TODO: [NRRPLT-8721] restore experiment import funtionality */} <div className='list-entry-buttons flex-container center'> - <input disabled={true} id='folder' type='file' style={{display:'none'}} + <input disabled={true} id='folder' type='file' style={{ display: 'none' }} multiple directory='' webkitdirectory='' - onChange={(event) => this.importExperimentFolderChange(event)}/> - <input disabled={true} id='zip' type='file' style={{display:'none'}} + onChange={(event) => this.importExperimentFolderChange(event)} /> + <input disabled={true} id='zip' type='file' style={{ display: 'none' }} multiple accept='.zip' - onChange={(event) => this.importZippedExperimentChange(event)}/> - {!this.state.isImporting - ? <div className='btn-group' role='group'> - <OverlayTrigger placement='bottom' - key='folder-tooltip' - overlay={ - <Tooltip id='tooltip-folder'> - The import of the experiments is comming soon! - </Tooltip> - } - > - <button type='button' className='btn btn-outline-dark'> - <label htmlFor='folder' className='import-button'> - <FaFolder/> Import folder - </label> - </button> - </OverlayTrigger> - <OverlayTrigger placement='bottom' - key='zip-tooltip' - overlay={ - <Tooltip id='tooltip-zip'> - The import of the zipped experiments is comming soon! - </Tooltip> - } - > - <button type='button' className='btn btn-outline-dark' - data-toggle='tooltip' data-placement='bottom' title='Tooltip on bottom' - > - <label htmlFor='zip' className='import-button'><FaFileArchive /> Import zip</label> - </button > - </OverlayTrigger> - <button type='button' className='btn btn-outline-dark' onClick={() => this.scanStorageClick()}> - <FaAudible/> Scan Storage + onChange={(event) => this.importZippedExperimentChange(event)} /> + <div className='btn-group' role='group'> + <OverlayTrigger placement='bottom' + key='folder-tooltip' + overlay={ + <Tooltip id='tooltip-folder'> + The import of the experiments is coming soon! + </Tooltip> + } + > + <button type='button' className='btn btn-outline-dark'> + <label htmlFor='folder' className='import-button'> + <FaFolder /> Import folder + </label> </button> - </div> - : null} + </OverlayTrigger> + <OverlayTrigger placement='bottom' + key='zip-tooltip' + overlay={ + <Tooltip id='tooltip-zip'> + The import of the zipped experiments is coming soon! + </Tooltip> + } + > + <button type='button' className='btn btn-outline-dark' + data-toggle='tooltip' data-placement='bottom' title='Tooltip on bottom' + > + <label htmlFor='zip' className='import-button'><FaFileArchive /> Import zip</label> + </button > + </OverlayTrigger> + + { + this.scanStorage ? + <button type='button' className='btn btn-outline-dark' onClick={() => this.scanStorageClick()}> + <FaAudible /> Scan Storage + </button> : + null + } + </div> </div> </div> ); diff --git a/src/components/nrp-core-dashboard/nrp-core-dashboard.js b/src/components/nrp-core-dashboard/nrp-core-dashboard.js index a82678a..3dae07f 100644 --- a/src/components/nrp-core-dashboard/nrp-core-dashboard.js +++ b/src/components/nrp-core-dashboard/nrp-core-dashboard.js @@ -5,6 +5,8 @@ import NrpUserService from '../../services/proxy/nrp-user-service.js'; import EventProxyService from '../../services/proxy/event-proxy-service'; import ExperimentStorageService from '../../services/experiments/files/experiment-storage-service'; +import frontendConfig from '../../config.json'; + import Grid from '@material-ui/core/Grid'; import { Alert, AlertTitle } from '@material-ui/lab'; import Button from '@material-ui/core/Button'; @@ -29,6 +31,9 @@ export default class NrpCoreDashboard extends React.Component { proxyConnected: EventProxyService.instance.isConnected(), reconnectDisabled: EventProxyService.instance.isConnected() }; + // By default, we enable the scan storage button, even if it's not in the config. + // For the online version, we explicitly disable it. + this.scanStorage = frontendConfig.scanStorage !== undefined ? frontendConfig.scanStorage : true; this.mqttBrokerUrl = MqttClientService.instance.getBrokerURL(); } @@ -130,11 +135,15 @@ export default class NrpCoreDashboard extends React.Component { {this.state.proxyConnected ? 'Connected' : 'Could not get response from the Proxy'} </Alert> </Grid> - <Grid item xs={12}> - <Button onClick={this.triggerProxyScanStorage} disabled={!this.state.proxyConnected}> - Proxy Scan Storage - </Button> - </Grid> + { + this.scanStorage ? + <Grid item xs={12}> + <Button onClick={this.triggerProxyScanStorage} disabled={!this.state.proxyConnected}> + Proxy Scan Storage + </Button> + </Grid> : + null + } {/*<Grid item xs={12}> <button onClick={NrpUserService.instance.getCurrentUser()}>Try to login</button> </Grid> */} diff --git a/src/config.json.sample.docker b/src/config.json.sample.docker index 1cb3c67..53c9b43 100644 --- a/src/config.json.sample.docker +++ b/src/config.json.sample.docker @@ -17,5 +17,6 @@ "errors": "runtime_error", "status": "status" } - } + }, + "scanStorage": true } diff --git a/src/config.json.sample.local b/src/config.json.sample.local index 1cb3c67..53c9b43 100644 --- a/src/config.json.sample.local +++ b/src/config.json.sample.local @@ -17,5 +17,6 @@ "errors": "runtime_error", "status": "status" } - } + }, + "scanStorage": true } diff --git a/src/config.json.sample.oidc b/src/config.json.sample.oidc index 358b94a..561a210 100644 --- a/src/config.json.sample.oidc +++ b/src/config.json.sample.oidc @@ -18,5 +18,6 @@ "errors": "runtime_error", "status": "status" } - } + }, + "scanStorage": false } -- GitLab