From cf21b4ee56209f696d12d6f49357d6661f3cd6e0 Mon Sep 17 00:00:00 2001 From: Eragon Date: Sat, 9 Mar 2024 00:54:53 +0100 Subject: [PATCH] feat: Add CalcDB to the tools see #143 --- app/routes/tools.py | 4 + app/static/css/calcdb.css | 17 + app/static/icons/calc/cg10.png | Bin 0 -> 397 bytes app/static/icons/calc/cg20.png | Bin 0 -> 397 bytes app/static/icons/calc/cp300.png | Bin 0 -> 300 bytes app/static/icons/calc/cp330+.png | Bin 0 -> 300 bytes app/static/icons/calc/cp330.png | Bin 0 -> 300 bytes app/static/icons/calc/cp400+e.png | Bin 0 -> 335 bytes app/static/icons/calc/cp400.png | Bin 0 -> 335 bytes app/static/icons/calc/fx92+sc.png | Bin 0 -> 704 bytes app/static/icons/calc/g100+.png | Bin 0 -> 322 bytes app/static/icons/calc/g100.png | Bin 0 -> 322 bytes app/static/icons/calc/g25+.png | Bin 0 -> 369 bytes app/static/icons/calc/g25+e.png | Bin 0 -> 363 bytes app/static/icons/calc/g25+e2.png | Bin 0 -> 1393 bytes app/static/icons/calc/g25+pro.png | Bin 0 -> 363 bytes app/static/icons/calc/g25.png | Bin 0 -> 334 bytes app/static/icons/calc/g35+.png | Bin 0 -> 401 bytes app/static/icons/calc/g35+e.png | Bin 0 -> 342 bytes app/static/icons/calc/g35+e2.png | Bin 0 -> 1400 bytes app/static/icons/calc/g35+usb3.png | Bin 0 -> 342 bytes app/static/icons/calc/g35+usb4.png | Bin 0 -> 342 bytes app/static/icons/calc/g35.png | Bin 0 -> 341 bytes app/static/icons/calc/g65.png | Bin 0 -> 421 bytes app/static/icons/calc/g75+.png | Bin 0 -> 391 bytes app/static/icons/calc/g75+e.png | Bin 0 -> 391 bytes app/static/icons/calc/g75.png | Bin 0 -> 391 bytes app/static/icons/calc/g85.png | Bin 0 -> 1629 bytes app/static/icons/calc/g85sd.png | Bin 0 -> 411 bytes app/static/icons/calc/g90+e.png | Bin 0 -> 1526 bytes app/static/icons/calc/g95.png | Bin 0 -> 408 bytes app/static/scripts/calcdb_info.js | 709 +++++++++++++++++++++++++++ app/templates/base/navbar/tools.html | 5 + app/templates/calcdb-fr.html | 1 + app/templates/calcdb.html | 143 ++++++ app/templates/tools.html | 1 + 36 files changed, 880 insertions(+) create mode 100644 app/static/css/calcdb.css create mode 100644 app/static/icons/calc/cg10.png create mode 100644 app/static/icons/calc/cg20.png create mode 100644 app/static/icons/calc/cp300.png create mode 100644 app/static/icons/calc/cp330+.png create mode 100644 app/static/icons/calc/cp330.png create mode 100644 app/static/icons/calc/cp400+e.png create mode 100644 app/static/icons/calc/cp400.png create mode 100644 app/static/icons/calc/fx92+sc.png create mode 100644 app/static/icons/calc/g100+.png create mode 100644 app/static/icons/calc/g100.png create mode 100644 app/static/icons/calc/g25+.png create mode 100644 app/static/icons/calc/g25+e.png create mode 100644 app/static/icons/calc/g25+e2.png create mode 100644 app/static/icons/calc/g25+pro.png create mode 100644 app/static/icons/calc/g25.png create mode 100644 app/static/icons/calc/g35+.png create mode 100644 app/static/icons/calc/g35+e.png create mode 100644 app/static/icons/calc/g35+e2.png create mode 100644 app/static/icons/calc/g35+usb3.png create mode 100644 app/static/icons/calc/g35+usb4.png create mode 100644 app/static/icons/calc/g35.png create mode 100644 app/static/icons/calc/g65.png create mode 100644 app/static/icons/calc/g75+.png create mode 100644 app/static/icons/calc/g75+e.png create mode 100644 app/static/icons/calc/g75.png create mode 100644 app/static/icons/calc/g85.png create mode 100644 app/static/icons/calc/g85sd.png create mode 100644 app/static/icons/calc/g90+e.png create mode 100644 app/static/icons/calc/g95.png create mode 100644 app/static/scripts/calcdb_info.js create mode 120000 app/templates/calcdb-fr.html create mode 100644 app/templates/calcdb.html diff --git a/app/routes/tools.py b/app/routes/tools.py index a0fe9c9..2b12b17 100644 --- a/app/routes/tools.py +++ b/app/routes/tools.py @@ -6,3 +6,7 @@ from app.utils.render import render @app.route('/outils') def tools(): return render('tools.html') + +@app.route('/outils/comparateur') +def calc_comparator(): + return render('calcdb.html', scripts=['+scripts/calcdb_info.js'], styles=['+css/calcdb.css']) diff --git a/app/static/css/calcdb.css b/app/static/css/calcdb.css new file mode 100644 index 0000000..d318764 --- /dev/null +++ b/app/static/css/calcdb.css @@ -0,0 +1,17 @@ +/* Controlling checkboxes */ + +#calcdb-checkboxes { + display: grid; + grid: repeat(5,auto) / repeat(5, 1fr); + grid-auto-flow: column; +} +#calcdb-checkboxes div { + display: block; +} +#calcdb-checkboxes div > input { + margin: 0 0 4px 0; + vertical-align: top; +} +#calcdb-checkboxes div > span { + vertical-align: middle; +} diff --git a/app/static/icons/calc/cg10.png b/app/static/icons/calc/cg10.png new file mode 100644 index 0000000000000000000000000000000000000000..94c0b8342737742e2653511c48fb3d1263ced486 GIT binary patch literal 397 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3NmoxsCCsDL^6F%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6^dDE`sY#WBRe<-X+(eiY9ykX}9n7LsI-OPWRn(DyE5?Qa9BlU(dJF_symk_Psc@D7sK2eHrDRQ)xXz5u+uREmF6`Ny z?%zD)R8jZCpP$nUYF=KlZ1bLe&d>k|o;*!8GBGtZe8kIq&0VCWv8hSv@V99G4O(FV z0ZW{9Y$^)oJI3A>S^a3Xx&P$%P4@MdI{Mvm%nS|Y9Lr)*E-Fh)NJv<*diCMiOA`Y* aPM>3tyXPIuWz(tx3KdURKbLh*2~7ZlNt5pY literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/cg20.png b/app/static/icons/calc/cg20.png new file mode 100644 index 0000000000000000000000000000000000000000..94c0b8342737742e2653511c48fb3d1263ced486 GIT binary patch literal 397 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3NmoxsCCsDL^6F%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6^dDE`sY#WBRe<-X+(eiY9ykX}9n7LsI-OPWRn(DyE5?Qa9BlU(dJF_symk_Psc@D7sK2eHrDRQ)xXz5u+uREmF6`Ny z?%zD)R8jZCpP$nUYF=KlZ1bLe&d>k|o;*!8GBGtZe8kIq&0VCWv8hSv@V99G4O(FV z0ZW{9Y$^)oJI3A>S^a3Xx&P$%P4@MdI{Mvm%nS|Y9Lr)*E-Fh)NJv<*diCMiOA`Y* aPM>3tyXPIuWz(tx3KdURKbLh*2~7ZlNt5pY literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/cp300.png b/app/static/icons/calc/cp300.png new file mode 100644 index 0000000000000000000000000000000000000000..122e2a9621b34cbc38812b2c1d085bf38203eeb1 GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3Nmw$*XG9mp~!e%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6^dC_cf{#WBRg-#MNe2X6Pv8y<<+pcyh@+F^m}4_^esoM%dCuqzopr09l)9!2kdN literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/cp330+.png b/app/static/icons/calc/cp330+.png new file mode 100644 index 0000000000000000000000000000000000000000..29768e0eb2402ce5c8e908dc8dde71c871865eec GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3Nmw<&;yNAwVJ7%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6^dC_cf{#WBRg-#MNe2X6Pv8y<<+pcyh@+F^m}4_^esoM%dCuqzopr0PWgoJ^%m! literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/cp330.png b/app/static/icons/calc/cp330.png new file mode 100644 index 0000000000000000000000000000000000000000..7d99b2421b1c406964fc544050cc4da61d4568de GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3Nmwd2vxnFi=P~GbEzKIX^cyHLnE7WngeFN=+eg$&0r>mdKI;Vst0G&u^-2eap literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/cp400+e.png b/app/static/icons/calc/cp400+e.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1bd5dfc4dcb444e37d204d3f95b87443bd330f GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3Nmgc(S2*1W-seGbEzKIX^cyHLnE7WngeFN=+;99PpabK5^ni!E@=3 z(`hR1*ZG9!)n-v`=azP$Wf!f*b);|ZxtPXjUc^ULSC4Gan& zxqM>&2(+K)`T6;99PpabK5^ni!E@=3 z(`hR1*ZG9!)n-v`=azP$Wf!f*b);|ZxtPXjUc^ULSC4Gan& zxqM>&2(+K)`T6EX>4Tx04R}tkv&MmKpe$iTcuJe9V{Z^kfAzR5EbdDRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRjWHa-`QDULg#c~(3vY`@B6UP))qkMnP zWrgz=XSG^q?R)YUh6~!tGS_L2AcaLNL4*JqbyQG=g*dGmDJC+spY-q#JARQ|GPx>X zjjYy%h99ZlW?E_Z;TCtWfmM+(sN7mL9A8GTb87`O#OYi@7teVjf3S?Vf%0~{Oz zVeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{005XtL_t(I%VT6f17RCy{Aa)cR{3WzqKh#Ss~MLeEa(cN zR6TKOUUqvsh8PnAg@9rMScq{ZNiNvDc@Lb1VPtWF2Kf5AU?|?ac@KlHuM2Tr`0(Nm zgRQ9o12%C12^Bg7;^ET|FciIt6J}swU|>joPi8cVEqco!w&*RL(gCi}CMq4^iferG m7}=9EB?M=V{61$5hI#;}A~n~WM>JRf0000Wj#duHU-+7KMAp+WaGau{yVLLN>^Q27%8_cUteu(>| zdbs;~zeL=gx+4qL96es}{9vku+KbkF_5Fr_{v6oKX{^)AV z+*`ee(vubl@Gvt+aIgxUWK&t%V!WsF?>tAB5CQGInUD4Uu$`H`dD13>4dzuRKg4}f zJ=}f0Um|W#-H`=rjvg;~elXQS?L}+8`hLSde-7|Gm$$8G-C}T~XNe?R#g3ny<_zK+ zwp~w50D>LWZ-pz_4(w4<)N-$LN_tkR@`klUI^bX|k08UT|5mv|&oa-0yyEHV=d#Wz Gp$PzE({sxJ literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/g25+.png b/app/static/icons/calc/g25+.png new file mode 100644 index 0000000000000000000000000000000000000000..ddba244f347de40b9bf1d57a9a0765f85c90bab1 GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3NlVYv<(fK%kIpW=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<1J6u;`};uvCaIyuFG>Hq)#=?}bk|GrO1J=4G|V^KEk;q5n9 zdw`(8&@F{^j;5l8sj~E^+H+Dn?8Hh~_Z({C;hba>VX9y8kJY)Sv(d@m1KS3H*WrtJ zZy3F{X!f6_dU#so@xUVwlP0n7R80HXaqzX9SaaiI#TcJAx5e6ucbiBq5iyaR_is** zJ&)hCJqHV(Y3s>9V%}(&$`{s})Fs0M#4U#(-1rx@hK*&$Y+-rs8wc7Zt1F(2oz(xQ zMB%u&^9|N{2m2~|DozzVkXXf`yzNcTdC?a)B^f3^vKKj-`&bX;b5B=4mvv4FO#t^_ Bhs6K@ literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/g25+e.png b/app/static/icons/calc/g25+e.png new file mode 100644 index 0000000000000000000000000000000000000000..0684f36d23739879e5b18cf6cbb1086122e562fa GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3Nm=c$Jo#Bv42;GbEzKIX^cyHLnE7WngeFN=+M# zpK321YG?$4KxMhs`Cr>ym?iq&yFQ%uQp+jk@M4!Gj2R5?c)eAvmN0kto^z3In8cT` iQ)oWel^_>JSTQh2SlWe2`Tjl&^0TL_pUXO@geCxYJ9pv$ literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/g25+e2.png b/app/static/icons/calc/g25+e2.png new file mode 100644 index 0000000000000000000000000000000000000000..c46b1d3ee5089a988775d68ee45d745c2318e7d7 GIT binary patch literal 1393 zcmV-%1&;cOP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+SONElIti8{nsjH2}nW+mcz4Zc5s(J!Z=Ra-ASCT z`MFTBY*|PL9f1k-KmQK+#~L~E;6-CdAvkM3`9#@nqPw@g%cVo-x9hFpent541({@% zyp-zqx4i3b_TiA`=!X|5rvZF~p~t|QcfHN+3!)I6y2lppzcE@Iqp#UzA1n=FO=^XJ zn;SDMmL=YX1?y@*antqe$$E6zRrId8>WcM>2?^N^^wP5 z&z0dKnmpi4BhRau86h}!-egPgtse~@h-G6?wlqhZV0LA>D1!Ie;;jJK?8M}%FVr?! zqpeE3#TEmDY!tYFEEv!!ks^AgXar?LPVA`|11LhxK$2$;#!a+3ve-68akC|%rMIPG z{0IkD<0f%7vb-0oANA2{C<}`hksvBjl4J-Re2@@=hPmdlvU(K_sv0$EjvRfI7^21) zQ_P7H+me(NlBSqa%GqLO4_UH}&SsHwp~A%%DWPbIC6!#Qe5$WfL)98A{+5Ri~rP z1NM{s-m=I-hv^fweYw!n!fGR^iO4V_SXpzQ;^4Te4~0xKVDpyNX)g?j6^- zUJh^0+3o5F31`I`*K|1>>_@IPk9>|1kJ}}|ofKx1OZWzjw-BX~Wul%(ObKVjPjX0I zern@h?&|aa6rK!yi)v_DkCuo0G)LcZR&n`j)jkmnB z1MpD*C*pewJMzLq?DM2M^5{n`e%8^KeB|T>z1TM}#Cc;!SS)SRsmC6$mt~>tN30K#W$>N!Aoy3#)c_?PcT z-w$B-P;d>)9n-TT*O&8=ofZ@P2Q`iI2Q*fa>Hq)$24YJ`L;(K){{a7>y{D4^000Sa zNLh0L01FcU01FcV0GgZ_00007bV*G`2jv725DOZW$TeyJ000?uMObu0Z*6U5Zgc=c za%Ew3Wn>_CX>@2HM@dakSAh-}0002gNklAisE zB9gv@wJ-}2DIZ}qxDZDnaTMa#nwY@H1pfOTbavOrd2u>^?!nmU(#R66_Gbcd6z1ak zIeKkk8E#GsAm7zb_n=WSbE!b`Rn3bXP}%qnq_j2;HcVyP00000NkvXXu0mjfM1y^= literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/g25+pro.png b/app/static/icons/calc/g25+pro.png new file mode 100644 index 0000000000000000000000000000000000000000..87af47b6ac3734a9b1051c07e91c654f0e10c64f GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3Nm=6wBwEsyxq+15vqrZ3`AC zxB&qh2#C#KF`OkSAtBMU{$E1G=?(AfnVFfDyBG~NC>~*3&&ZhFx8TD}2@MwJd`$ iPNDf=SAtv^Va328VQCj8<@@_A$j_dxelF{r5}E)&mw2B5 literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/g25.png b/app/static/icons/calc/g25.png new file mode 100644 index 0000000000000000000000000000000000000000..0da311196016eebd1509bfd5ec3a36ed0302efc0 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3Nmg=ArX6IG!6T zdJA3Z@#W<p9{t7(7Ol&bv(++1Hc=Shz z4G7wP$Jb93@7*X|Es>=DEnphol~Of9zUF09Y;4@_9DLt&iy`05X`MqjGsDje+txV@ RW+5PNdAjHq)##s)x8arXU>^9}4d-fI$45`Z8j z1xzJ4O;cGSIa^9hqFLMY%l_u6hRo|XC^$E%@Q0n{o>!mv znAz?zh{e>Y-egE~l>~~hwdro|dwexPehp*zX$Ef32&)gX?tiS`c|(tFy|k>xtRwq! z6D`VPr#1qCRxeA|Q!pP9{}3wt(Ng`5ri z)2OkyN-kf*rpj4CEbMGlduVdQPRoZS3M-a1Tz&bcY#bVwz3FW0X ZB^j(wd+htkb5|M^GM=t}F6*2UngBzQjr;%r literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/g35+e.png b/app/static/icons/calc/g35+e.png new file mode 100644 index 0000000000000000000000000000000000000000..61e1ce96c1bbfa337dae84a7d00286a7ad0337a8 GIT binary patch literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3Nk?&wjp2BcPCMW=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<1J6yN3P;uvCaIyt4G>Hq)##s)wj@!b4>`T^#1err-w5`Z8j z#bxS`|Nrfq1LH2&J29+cTi4He%wb#QFMG&Y{M!ysT@OUJR~<9w6l*m%6l zjbxUo2;}D84g3)nwv7h_=0-40Y?X-qP}%&VS*NK Sy=k!@$a|iyelF{r5}E)ZGk5#| literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/g35+e2.png b/app/static/icons/calc/g35+e2.png new file mode 100644 index 0000000000000000000000000000000000000000..60d03f184a01d1e6856cb4f03b28b1a15a6dc2a1 GIT binary patch literal 1400 zcmV-;1&8{HP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1YwlIti8{bv=k1SBCI%fURVW(Rlqb1-(2PTL*3 z=R(CIJj6jq5}5Yq-){avVH?>v4bdm>Es9GnaYiHBXK9<9ePrGG-3x7BGKT{UDUdQd zgWE=B>)+@5hlHYo0n)bx^4Nx7Hx7C0XUks@WwOD(miYYjUSscVo-R8NGx&L^xrN!) zVB!KR$-2y=2K*H5u-1ecZMKD+t+v<&wNN4^v7H=MLzy}?s*r^WFgk7=Aejrx+7~5o z;v!Z^+^Ez!NRld1SPC~0aYp!oh1Px3x?iD)ohxA~6O<8_{8-JW30G?G#ll8JI6ZB) z0xssk0}V6E_+lCep}z5^tAY3WDCUJ&0fV}lIpToXE>p##^zzObE5`VGR-w@zJ(TBYPrMLx^&mI`yP7ispki48>`>y4c2I5jaR0|yzpQRy&()m zs|p%J_ieGS2;*l(R}nVKGiW={p7gjg6CdJ0_M#iKO_OXZ(g(2dGdcAz4weSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{006{EL_t(I z%VT7Kg8%>jGjw%L`M>z`O$K}*R#%;&tSpC-k&%&sfq{X61tzg>-8zQFmv1uc?XAUY zfOBy(gUY&fa6St*MaSR%z^d6&m;*zMiGe~e@CINFgPWT-VGo0ZFx&?EWnmzelf#fei2(~1tU}@MeIUfZ zz`($;xWR=u12B@W!aF*r147Y=(|}lAbq43+W`fxn82|t`elSuNq|TWD0000O+r|R|b0e50wn{{QsBC^wa^R?_{~mEZ`FoxvPDx8lteF{pbu{wr S-n7^cO+r|R|b0e50wn{{QsBC^wa^R?_{~mEZ`FoxvPDx8lteF{pbu{wr S-n7^cHq)#=`UjUez0ej3y_gIf8xXmj_1aT z-a?mpe0jOeT%))mS|!)n{%BS_cEmwZqJlZ1Xwl`Jvtn1m#9cBNpt-1Q=%!7am z7FVBZ_8kw8_Wu^(o5d)RSdf2+pC?*AKgNBJ_$0Y`2UmUge(tkCTO)TJ^Oe#s8>Jpd z&OHDEA3hy6KD4ocHz$5qLn9CzJaN1CPf0=8qP_x&1-BcNju$Z1d+G4?rmH;RDluh< WGBH|Hyp(Si$akKuelF{r5}E)UpL;g| literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/g65.png b/app/static/icons/calc/g65.png new file mode 100644 index 0000000000000000000000000000000000000000..c16d85a766c0f517492f1f7d2fe0acb6173d9ea0 GIT binary patch literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3NmY;;)OU?m!{g%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6_|fq{|J)5S5w;&gIKL(~8N|BVfRpyKTNALkp`bG+9iq$B`A zN(z`taGIvFL~^#2m_)O->6iV@Qw^EdZ%{b=^Y1Yp5ZM0qvf{ekr;i^10)cf>2S5CL zTg|ra%7yBxZi2e5ESdj_wtGOCf(m=FlRSkVcWLX!EL#nqCF9p8JU@x51*W5F0pOjqfd%@ zJooNb9k?*Vh<&w_WOC_>S&M%#2fBT=xo1%ErOiQS&8)3_tB)}h7aw}*5a7$W{H(O! typ$USpH$kUCJ9Zt=q}A;=;pQAn88Tjd#VWggEUZRdAjhw7-Dhy=%kHZha5y)&+F73;<~MJYv%h6Ctk&~yji1^ z`H3@%B`9<8+TN*iJs0{qYmR42cpU(iS~= z7Nv8UZ|8aK{dctJ$|CC@j0^6*dtkxGaQS7+;01-t^^kHi;(A`E?hw~)m0L64Z#eNPp5@IN zrOZ#9Q7l23i`Vu}o$I;K*CD6eEi6^ms!bkWW@1Q`2$8nv z$+IY(%X~Y}Ywy3KMOPMC|6p8j_uT^vK8DLLTONNrQ1?Il$%0GG_y4V2asBnwn>tEO zsirEPLL1k(Jw5r~<;gzw-FLUGcwEu;{(Hyco7vf4{>Htmvt*yQ-7tRfwO?)AP5#D> eI;ZDxU6OoxDCm-z(T-eDczC+{xvX1-%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6^dDE`{h#WBR<^wCKhyAC;sxSrRkJH&Nc<<`vi8&156XL++m zDf1I&6iZO%;+hYE|fSKj!qx7YrM`aS)CYLmy8nHUl!LZmHv z@+?Z{GT+Yg+WYTl(UnEkKNuI>efPkEkKyvmmd76t)cp^Cvfxtl{eLT0Tz@_FrjAlm zs;P>n(8e`xPfz}Ld9sgv_uXwP9#^!z|K9QVW_I?Mzi}_?EZOI6H;i9=?N=LjlfQAJ d&gpqvmn2^v3c6%wv?CW39-gj#F6*2UngHgko3;P| literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/g85.png b/app/static/icons/calc/g85.png new file mode 100644 index 0000000000000000000000000000000000000000..7aaf42ea98bbd5c0b999746fd94e56269f861755 GIT binary patch literal 1629 zcmV-j2BP_iP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvvLh)B{O1&X1SGMDHqv5<`*7HDH!LYh7^LuiV#_@QLs&+wEzG$L z1{N$O$FzVF@$-=5Q4)&UY%4k2Y_$cYQX(d?gB&$OnFe)gs4G?I=(ux4&0JZIHkHVU zt5_j%v(VruNt&pzRPG|;jPOMlI`&P+ew7qEH^NXREJm2}V=?ard{V}!7Cs_^^|XBj zy_hEsG~FokAHx6$jg6Z>9DJ6`V{U*IAm|S_D-6uGtR;%4E4SnzfMA?Qz4%43P1N{c ziNoF=%8&p88%R6_vXMCwIbj7r8Je>=EhY(_zF_)u67kvydMvW0j>=hZuk*K96Hj-7t}VY59JHgXrsmlQgd9qpoZ2M=R(I4 zG|w47F#}@k2#Cjt00_+!GppnrPvjQy;& zquqZ}&U}dOTjflB>bmchGtXW3y>jNc>%Ldcyv6lH<;+`LKU2<`H9mpIvZ(7@#l7hW z4EsfGmVjJYR#4egQjh+4L1L}fkbP;_5vJxoPQTY>)#kq8U2xv{sgJQ<%<(39<5;V< zH7F_dA0a}ff9;RQ@(-tSLeNeb*}qr61H`r;)5VkQr6o^7&Pc&OGq&!a~23Y`_O%NrxPic~fXE>EqfeJ4fb4FrRky z4l>&;?+EJLN&}HMic`W7#J7|tEV%p+Alpxqgj@%$V3}B#= zhn0b!M-t9oz3C)z27LSaj)7l5km2L2=O~I?T#OkQ7#J8%UwX#y?dvEx7#rvLx{8(#^%_BUOD$z-d!p%D-m0KtX> zEU&d*|J%J|m%$S8Esw6+6g!!oQF0SumH+~-)ys|7+%l40&&c`kDbGE=RRwm!%&iFz zcpW&K|6TKGYxz*LN9tF!vE;Wm_nPlA%wP&)P%g4E*w*uBe?pio^Y!g1ANA9atpDknZKlzEQ}t2oy%1u6{1-oD!M zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvvLh)B{O1&N1SA219PxOL)eGfTbPR) z2o`ur*0O-2_<6K-m4p&)ww0W1w%USHDG`&{L5`ZCOoKW#)Rii1blh1{Ggp>17DYL6 z6)Ple78-Dr;Jf8d_;uP)A1GT zVxBnAbfe5S!~h75gPUItzLe`@?tm2_=$D%#4w!A(DvGCDY{?1$ft*LZdokN^T3NIV6y%B)0AI0B#y%UK*3AVA)8gOTh+0)q#+YJG zoCGQ9Q%IU(N-1aTnVrc#V|9i^&V`E5#a3r$;W zspU=`p=7%2zK5h)DEh@ln+p&gBmZSrkq|;!>H<1v{caK z89y-tV(bWr>qGzn%@Z>l$vK|LP0Va!WQAuK=_fXgY&H}Cq3gtc&=tEIa&O~i;Okeo z@jJ+w3Ef{nj!liLFhTW}E8t8V3+3&S^HgTz?Yr0okUAVLJ zW`p_Z+%JridOds{rm&Q=Wp_X+i);_~CbdHYIZu9MN?i~!=pYJdAY^Aeq61b-os;S1 z^lL~t4XJx&FLPlBk*&#OwOCqh`?xlD16tJIX&E54-F4I}!BWg>r4hI7Buz{wm%%QFx9p@!?8wW^QB8Ox9d0nhXSHAKxGGH z#_^5o;W#IgR4?t)jSckpW_~`cj=<5VF!TwBG@3M<|Gwxopi+S$8 z&x|wo?mN+pum*U7`{f38`o*Lz`~|gfqT_u!e8Jf-=1O!EK=YHupBQL9xVj!2$j`pmUWUH02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{006>CL_t(I%VT6f0;^W7`akd7M+ST#$%vmJEG&!>#%Dp6 zoOkXc!+q-~DBHyZJ4{-056c4P;`V5DdHl zEZ77u+Pg6@+<>q(8SXQ@*JNO@*L=^wz@S2$0V*mglzD;iDQZ-%T)C2A<;s=B8}NFG zJ7r-YQl5aq4-XF~&44?1?x67NW`1R0U|?Wa)~!#R0qCG9otw_-fRt!tLC>n_xeZ%( c-hspi0R3SxA=~Pv`~Uy|07*qoM6N<$g64n6Q~&?~ literal 0 HcmV?d00001 diff --git a/app/static/icons/calc/g95.png b/app/static/icons/calc/g95.png new file mode 100644 index 0000000000000000000000000000000000000000..eed4fd3fdcd96cd7d38329b298f67dc57f895814 GIT binary patch literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdo3Nl7LrY)yY@m>AW=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<1J6#wJt;uvCaIyt4G>Hq)##&2%bf3jy5JaG2noQXit2m-8X zH>`7i{`aiq?znhgTe~DWM4fI@7J} literal 0 HcmV?d00001 diff --git a/app/static/scripts/calcdb_info.js b/app/static/scripts/calcdb_info.js new file mode 100644 index 0000000..ab466b4 --- /dev/null +++ b/app/static/scripts/calcdb_info.js @@ -0,0 +1,709 @@ +/* Currently-active calculators */ +const default_set = [ "g25+e2", "g35+e2", "g90+e", "cp400+e" ]; + +/* Hide or show a calculator, by controlling checkbox */ +function toggle_calc(checkbox) { + const selector = "#calcdb .calc-" + checkbox.dataset.calc; + document.querySelectorAll(selector).forEach(td => { + if(checkbox.checked) + td.style.display = "table-cell"; + else + td.style.display = "none"; + }); + update_permalink(); +} + +/* Select a fixed set set */ +function select_set(set) { + document.querySelectorAll("#calcdb-checkboxes input").forEach(box => { + box.checked = set.includes(box.dataset.name) || set.includes(box.dataset.calc); + box.dispatchEvent(new Event("change")); + }); + update_permalink(); +} +/* Select all calculators */ +function select_all() { + document.querySelectorAll("#calcdb-checkboxes input").forEach(box => { + box.checked = true; + box.dispatchEvent(new Event("change")); + }); + update_permalink(); +} + +/* Udpate permalink and page URL*/ +function update_permalink() { + var search = []; + document.querySelectorAll("#calcdb-checkboxes input").forEach(box => { + if(box.checked) search.push(box.dataset.name); + }); + + var loc = window.location.href.split("?")[0] + "?" + search.join(","); + history.pushState({}, "Comparateur Planète Casio", loc); + document.getElementById("calcdb-permalink").href = loc; +} + +/* The browser might load the page with some boxes pre-checked because of + forms being cached, so upate to make sure the display is consistent */ +document.addEventListener('DOMContentLoaded', function() { + const query = window.location.search; + document.querySelectorAll("#calcdb-checkboxes input").forEach(toggle_calc); + + /* Also read the query string for a potential fixed set */ + if(!query) return; + var set = []; + query.substr(1).split(",").forEach(name => { + if(name == "current") set = set.concat(default_set); + else set.push(name); + }); + select_set(set); +}, false); + +var x = 0; +var y = 0; + +selectbl = new Array; +selectbl[0] = "sel"; +selectbl[1] = "sel1"; +selectbl[2] = "sel2"; +selectbl[3] = "sel3"; +selectbl[4] = "sel4"; +selectbl[5] = "sel5"; +selectbl[6] = "sel6"; +selectbl[7] = "selform1"; +selectbl[8] = "selform2"; +selectbl[9] = "selform3"; + +document.onmousemove = position; + +function hideselects(){ + for(i=0;i'; + document.getElementById('infobulle').innerHTML = txt; + + info.top = (y+10)+"px"; + info.left = (x+10)+"px"; + if(screen.availWidth <= 1024 && x > 850) + info.left = x-80; + + info.visibility = 'visible'; +} + + +function hideinfos() +{ + document.getElementById('infobulle').style.visibility = 'hidden'; + showselects(); +} + +function openimg(name,url) +{ + linkimg = window.open(url,name,'resizable=yes,toolbar=no,scrollbar=no,width=50,height=50,top=0,left=0'); +} + +function toggleSpoiler(spoiler, action) { + var elements = spoiler.getElementsByTagName('div'); + + switch(action) { + case 'open': + elements[0].className = 'title off'; + elements[1].className = 'title on'; + elements[2].className = 'on'; + break; + + case 'close': + elements[0].className = 'title on'; + elements[1].className = 'title off'; + elements[2].className = 'off'; + break; + } +} + +$(function() { + + + //Ajout d'un lien sur les images qui sont reduites par min-width + var virtualImg = new Image(); + $(".news img, .topic img").one('load', function() + { + virtualImg.src = $(this).attr('src') + + + + if($(this).attr('resized')!="true" && $(this).parent().get(0).tagName !="A" && virtualImg.width > $(this).css('max-width').slice(0,-2)) + $(this).wrap(''); + }).each(function() { + if(this.complete) $(this).load(); + }); + + //formulaire de notation des programmes + //vars + var noteSelectionnee = -1 + var LiensNote = $('.PrgmNote').find('div.boutonsNote').children('a') + + //events + LiensNote.click(function() { + noteSelectionneUpdate($(this).parent().parent(), $(this).attr('note'), true) + return false; + }) + LiensNote.mouseover(function() { + noteSelectionneUpdate($(this).parent().parent(), $(this).attr('note')) + }) + LiensNote.mouseout(function() { + noteSelectionneUpdate($(this).parent().parent()) + }) + $('.PrgmNote').children("a.retourNote").click(function() { + + + + if($('.PrgmNote').children("div").css('display') == 'block') + $('.PrgmNote').children("div").css('display','none'); + else + $('.PrgmNote').children("div").css('display','block'); + + return false; + }) + //fonctions + noteSelectionneUpdate = function(PrgmNoteDiv, note, clique) + { + if(note >= 0) + { + PrgmNoteDiv.find(".note").html(note + '/10') + if(clique){ + PrgmNoteDiv.find(".note").css('font-weight','bold') + PrgmNoteDiv.find(".note").css('font-style','normal') + noteSelectionnee = note + PrgmNoteDiv.find("select").children('option[selected=selected]').removeAttr('selected') + PrgmNoteDiv.find("select").children('option[value=' + note + ']').attr('selected','selected') + } + else + { + PrgmNoteDiv.find(".note").css('font-style','italic') + PrgmNoteDiv.find(".note").css('font-weight','normal') + } + } + else + { + if(noteSelectionnee < 0) + { + PrgmNoteDiv.find(".note").html('') + } + else + { + PrgmNoteDiv.find(".note").css('font-weight','bold') + PrgmNoteDiv.find(".note").css('font-style','normal') + PrgmNoteDiv.find(".note").html(noteSelectionnee + '/10') + } + } + } + //init + $('.PrgmNote').find("select").css('display','none') + $('.PrgmNote').find(".boutonsNote").css('display','block') + $('.PrgmNote').children("div").css('display','none') + noteSelectionneUpdate($('.PrgmNote'), $('.PrgmNote').find("option[selected]").attr('value'), true) + + //addthis retardateur + var isTimeFinish = false + var isOut = true; + function timeFinish(that) + { + isTimeFinish = true + that.mouseover() + } + + $('.addthis_button').children('img').mouseenter(function() { + if(isTimeFinish) + { + clearTimeout(timeoutID); + return true; + } + else + { + timeoutID = setTimeout(function(that){timeFinish(that);}, 200, $(this)); + return false; + } + }) + $('.addthis_button').children('img').mouseleave(function() { + isTimeFinish = false; + clearTimeout(timeoutID); + return true; + }) + //antibot JS pour invité + $(document).ready(function(){ + $('.messageForm').css('display','block'); + $('.messageForm').children('form').append(''); + }) + //Editeur - namespace:ed + //vars + var ed_boutons = $('.editeur').find('.boutons').find('img,td,span'); + var ed_textarea = $('.editeur').find('textarea'); + var ed_pins = $('.editeur').find('.pinhidden,.pinshow'); + var ed_cross = $('.editeur').find('.cross'); + var ed_inputs = $('.editeur').find('.AskBoxInputText'); + var ed_smileys = $('.editeur').find('.ABsmiley').find('td'); + //speciale IE + $(".editeur").data('isfocused',false); + $(".editeur").data('selecStart',0); + $(".editeur").data('selecEnd',0); + $(".editeur").data('isPinned',false); + $(".editeur").data('tag',''); + //events + $('.editeur').find('.AskBoxBottom').children('img').click(function(){ + ed_addtag($(this).closest(".editeur")); + }); + $('.editeur').find('.ABprofil').click(function(){ + var formname = $(this).closest('.editeur').data('formname'); + fenetre=window.open('/Fr/compte/liste_des_membres.php?id=ed_'+formname+'_lienMembre','fenetre','resizable=yes,toolbar=no,scrollbars=yes,width=280,height=450,top=0,left=0') + }); + + ed_cross.click(function()//fermeture de toutes les askbox si on clique ailleur + { + close_AskBox($(this).closest(".editeur"),false); + }); + + $('.editeur').find('.edSelect').change(function(){ + + var tag = $(this).children('option:checked').val(); + if(tag.length > 0) + add_text($(this).closest('.editeur').find('textarea'),'['+tag+']', '[/'+tag+']', '') + $(this).children('option').removeAttr('selected'); + $(this).children('option[value=]').attr('selected','selected'); + }); + + ed_pins.click(function(){ + var editeur = $(this).closest(".editeur"); + if(editeur.data('isPinned')==false) + { + editeur.data('isPinned',true); + $(this).css('display','none'); + $(this).parent().children('.pinshow').css('display','block'); + } + else + { + editeur.data('isPinned',false); + $(this).css('display','none'); + $(this).parent().children('.pinhidden').css('display','block'); + } + }); + + + ed_boutons.click(function(){ + if($(this).data('type')=='text') + { + add_text($(this).closest(".editeur").find('textarea'), $(this).data('avant'),$(this).data('apres'),$(this).data('valeur')); + } + else if($(this).data('type')=='askbox') + { + show_AskBox($(this).closest(".editeur"), $(this).data('name')) + } + }); + + ed_smileys.click(function(){ + if($(this).data('type')=='text') + { + add_text($(this).closest(".editeur").find('textarea'), $(this).data('avant'),$(this).data('apres'),$(this).data('valeur')); + } + else if($(this).data('type')=='askbox') + { + show_AskBox($(this).closest(".editeur"), $(this).data('name')) + } + close_AskBox($(this).closest(".editeur")); + }); + + ed_inputs.keypress(function(e) { + if(e.which == 13) { + ed_addtag($(this).closest(".editeur")); + return false; + } + }); + + ed_textarea.focus(function(){ + $(this).closest(".editeur").data('isfocused',true); + }); + ed_textarea.blur(function(){ + $(this).closest(".editeur").data('isfocused',false); + }); + //Askbox fonctions + //affiche une askbox + function show_AskBox(editeur, AskBoxName) + { + close_AskBox(editeur, false,false); + var AskBox = editeur.children('.AskBox'); + var actualAskBox = AskBox.children('.AskBoxText.AB'+AskBoxName); + var textarea = editeur.find('textarea')[0]; + var title = ""; + editeur.data('tag',AskBoxName); + //Get selected text + var selectedText = ''; + if(typeof document.selection != 'undefined')//IE support + { + var range = document.selection.createRange(); + selectedText=range.text; + } + else if(typeof textarea.selectionStart != 'undefined')//Firefox, GC support + { + selectedText=textarea.value.substring(textarea.selectionStart, textarea.selectionEnd); + } + //Open the askbox + switch(AskBoxName) + { + case 'url' : + var title = "Ajouter un lien"; + var focusOn = null; + if(selectedText.substring(0,7)=="http://" || selectedText.substring(0,8)=="https://" || selectedText.substring(0,6)=="ftp://") + { + actualAskBox.find('.AskBoxInputText[name=ed-urlLien]').val(selectedText); + focusOn = actualAskBox.find('.AskBoxInputText[name=ed-urlNom]'); + } + else + { + actualAskBox.find('.AskBoxInputText[name=ed-urlNom]').val(selectedText); + focusOn = actualAskBox.find('.AskBoxInputText[name=ed-urlLien]').val("http://"); + } + break; + case 'img' : + title = "Ajouter une image"; + actualAskBox.find('.AskBoxInputRadio[name=ed-imgType][value=img]').prop('checked', true); + actualAskBox.find('.AskBoxInputRadio[name=ed-imgAlign][value=center]').prop('checked', true); + if(selectedText.substring(0,7)=="http://" || selectedText.substring(0,8)=="https://" || selectedText.substring(0,6)=="ftp://") + { + focusOn = actualAskBox.find('.AskBoxInputText[name=ed-imgAdresse]').val(selectedText); + } + else + { + focusOn = actualAskBox.find('.AskBoxInputText[name=ed-imgAdresse]').val("http://"); + } + break; + case 'video' : + title = "Ajouter une vidéo"; + actualAskBox.find('.AskBoxInputRadio[name=ed-videoType][value=video]').prop('checked', true); + if(selectedText.substring(0,7)=="http://" || selectedText.substring(0,8)=="https://") + focusOn = actualAskBox.find('.AskBoxInputText[name=ed-videoAdresse]').val(selectedText); + else + focusOn = actualAskBox.find('.AskBoxInputText[name=ed-videoAdresse]').val("http://"); + break; + case 'profil' : + title = "Ajouter un lien vers un profil"; + focusOn = actualAskBox.find('.AskBoxInputText[name=ed-profilPseudo]').val(selectedText); + break; + case 'quote' : + title = "Citer"; + focusOn = actualAskBox.find('.AskBoxInputText[name=ed-quoteAuteur]'); + break; + case 'spoiler' : + title = "Ajouter un spoiler"; + focusOn = actualAskBox.find('.AskBoxInputText[name=ed-spoilerOpen]'); + break; + case 'progress' : + title = "Ajouter une barre de progression"; + focusOn = actualAskBox.find('.AskBoxInputText[name=ed-progressTitle]').val(selectedText); + break; + case 'smiley' : + title = "Plus de smileys !"; + AskBox.children('.AskBoxBottom').css('display','none'); + break; + } + AskBox.children('.AskBoxTop').children('span').html(title); + // AskBox.css('display','block'); + editeur.children('.AskBox').show('fast'); + actualAskBox.css('display','block'); + if(focusOn!=null)focusOn.focus(); + } + // masque tous les askbox(en verifiant s'ils sont pinned si verif=true) + function close_AskBox(editeur, verif, anim) + { if(anim != false)anim = true; + if(editeur.data('isPinned')==false || verif==false) + { + editeur.children('.AskBox').children('.AskBoxBottom').css('display','block'); + if(anim) + editeur.children('.AskBox').hide('fast'); + else + editeur.children('.AskBox').css('display','non'); + + editeur.children('.AskBox').children('.AskBoxText').css('display','none'); + editeur.data('tag',''); + editeur.data('isPinned',false); + editeur.find('.pinshow').css('display','none'); + editeur.find('.pinhidden').css('display','block'); + } + } + //Validation des askbox + function ed_addtag(editeur) + { + var tag = editeur.data('tag'); + var valeur=''; + var valeurSup=''; + // var selectionVide=true; + var cursorAtEnd=false; + + switch(tag) + { + case 'url': + valeur=editeur.find('.AskBoxInputText[name=ed-urlNom]').val(); + valeurSup=editeur.find('.AskBoxInputText[name=ed-urlLien]').val(); + if(valeur==""){valeur=valeurSup;cursorAtEnd=false;}else cursorAtEnd=true; + valeurSup="="+valeurSup; + break; + case 'img' : + //adimg + if(editeur.find('.AskBoxInputRadio[name=ed-imgType]:checked').val() == "adimg") + tag = "adimg"; + //get value + valeur=editeur.find('.AskBoxInputText[name=ed-imgAdresse]').val(); + //prepare valeurSup + valeurSup = "="; + var premierArg= true; + var largeur = parseInt(editeur.find('.AskBoxInputText[name=ed-imgWidth]').val()); + if(largeur > 0)//if int + { + valeurSup += largeur; + premierArg = false; + } + var hauteur = parseInt(editeur.find('.AskBoxInputText[name=ed-imgHeight]').val()); + if(hauteur > 0)//if int + { + valeurSup += "x" + hauteur; + premierArg = false; + } + var align = editeur.find('.AskBoxInputRadio[name=ed-imgAlign]:checked').val() + if(align.length >0) + { + if(premierArg==false){valeurSup += "|"} + valeurSup += align; + premierArg = false; + } + if(premierArg){valeurSup = ""} + cursorAtEnd=true; + break; + case 'video' : + valeur=editeur.find('.AskBoxInputText[name=ed-videoAdresse]').val(); + if(editeur.find('.AskBoxInputRadio[name=ed-videoType]:checked').val() == "video tiny") + tag = "video mini"; + cursorAtEnd=true; + break; + case 'profil' : + valeur = editeur.find('.AskBoxInputText[name=ed-profilPseudo]').val(); + if(valeur.length > 0) cursorAtEnd=true; + break; + case 'quote' : + valeurSup = editeur.find('.AskBoxInputText[name=ed-quoteAuteur]').val(); + if(valeurSup!="")valeurSup="="+valeurSup; + break; + case 'spoiler': + valeurSup = "=" + editeur.find('.AskBoxInputText[name=ed-spoilerOpen]').val() + "|" + editeur.find('.AskBoxInputText[name=ed-spoilerClose]').val(); + if(valeurSup == '=Cliquer pour dérouler|Cliquer pour enrouler') + valeurSup = ""; + break; + case 'progress': + valeur= editeur.find('.AskBoxInputText[name=ed-progressTitle]').val(); + if(valeur.length <=0) + { + alert('Le titre de la barre de progression est obligatoire.'); + editeur.find('.AskBoxInputText[name=ed-progressTitle]').focus(); + return; + } + valeurSup= parseInt(editeur.find('.AskBoxInputText[name=ed-progressPourcent]').val()); + if(!valeurSup>=1 && !valeurSup<=100) + { + alert('Le pourcentage de la barre de progression est obligatoire et doit être compris entre 1 et 100'); + editeur.find('.AskBoxInputText[name=ed-progressPourcent]').focus(); + return; + } + valeurSup="="+valeurSup; + cursorAtEnd=true; + break; + } + //fermeture des askbox + close_AskBox(editeur); + //Envoi sur le textarea + if(cursorAtEnd){add_text(editeur.find('textarea'), '[' + tag + valeurSup + ']'+ valeur +'[/' + tag + ']')} + else{add_text(editeur.find('textarea'), '[' + tag + valeurSup + ']','[/' + tag + ']',valeur)} + } + //IE compatibility + document.onmouseup = updateIECursorPosition; + document.onkeydown = updateIECursorPosition; + function updateIECursorPosition()//IE - detection de la position du curseur pour IE qu'il l'oublie quand on clique autrepart que sur le textarea.. + { + $('.editeur').each(function(){ + var thisTxtarea = $(this).find('textarea'); + if($(this).data('isfocused') && typeof(thisTxtarea[0].createTextRange) == 'function') + { + var range = thisTxtarea[0].createTextRange(); + range.moveToBookmark(document.selection.createRange().getBookmark()); + range.moveEnd('character', thisTxtarea[0].value.length); + $(".editeur").data('selecStart',(thisTxtarea[0].value.length - range.text.length)) + + var range = thisTxtarea[0].createTextRange(); + range.moveToBookmark(document.selection.createRange().getBookmark()); + range.moveStart('character', - thisTxtarea[0].value.length); + $(".editeur").data('selecEnd',range.text.length); + } + }); + } + + //general textarea functions + function add_text(textarea, before, after, valeur) + { + selecStart = textarea.data('selecStart'); + selecEnd = textarea.data('selecEnd'); + if(before==null){before='';} + if(after==null){after='';} + if(valeur==null){valeur='';} + if(typeof document.selection != 'undefined')//IE support + { + var insText; + textarea.focus(); + if(selecStart!=null && selecEnd!=null) + { var range = document.selection.createRange(); + if (textarea[0].setSelectionRange) + textarea[0].setSelectionRange(selecStart, selecEnd); + else if (document.selection) { + var range = textarea[0].createTextRange(); + range.moveStart('character', selecStart); + range.moveEnd('character', - textarea[0].value.length + selecEnd); + range.select(); + } + } + + textarea.focus(); + range = document.selection.createRange(); + if(valeur!=''){insText=valeur;}else{insText = range.text;} + if(after=='' && valeur=='') + { + range.text = before; + range.select(); + } + else + { + range.text = before + insText + after ; + range.moveStart('character', -after.length -insText.length); + range.moveEnd('character', -after.length); + range.select(); + } + + } + else if(typeof textarea[0].selectionStart != 'undefined')//Firefox, GC support + { + var start = textarea[0].selectionStart; + var end = textarea[0].selectionEnd; + var insText; + if(valeur!='') + insText=valeur; + else + insText = textarea.val().substring(start, end); + + if(after=='' && valeur=='') + { + textarea.val(textarea.val().substr(0, start) + before + textarea.val().substr(end)); + textarea[0].selectionStart = start + before.length; + textarea[0].selectionEnd = start + before.length; + } + else + { + textarea.val(textarea.val().substr(0, start) + before + insText + after + textarea.val().substr(end)); + textarea[0].selectionStart = start + before.length; + textarea[0].selectionEnd = start + before.length + insText.length; + } + + textarea.focus(); + } + else + { + textarea.val(before + valeur + after); + textarea.focus(); + } + } + + // Preview button on textarea + $('.pctextarea_preview').on('shown.bs.modal', function () { + const message = $(this).parent().find('.editeurTextareaDiv > textarea').val(); + const body = $(this).find('.modal-body'); + $.post('/Fr/forums/preview.php', {message}, function(data, status) { + body.html(data.preview); + }) + .fail(function() { + body.html('

Erreur pendant la récupération de la prévisualisation.

'); + }); + }) + + //fonction citer dans le forum + $('.lien_citation').click(function(){ + var auteur = $(this).data('membre'); + var id_message = $(this).data('id'); + var textarea = $('textarea[name=message]'); + $.ajax({type: "POST", + url: '/Fr/forums/quote.php', + data: {id : id_message} + }).done(function( msg ) + { + add_text(textarea,'[quote=' + auteur + ']' + msg + '[/quote]','',''); + }); + }); + + //bouton d'affichage des stats + $('#stats').click(function(){ + window.open($(this).attr('href'),'connectes','resizable=yes,toolbar=no,scrollbars=yes,width=550,height=300,top=0,left=0') + return false; + }); + //Lien de control de la fenetre principale depuis un popoup + $('.popuplink').click(function(){ + window.opener.location.href=$(this).data('link');return false; + return false; + }); + + + /** + * Confirmation modal + * + * Add the 'need-confirm' class to a link to show a prompt asking for confirmation. + * 'data-confirm-text' attribute can be used to customize the confirm message + */ + $('a.need-confirm').click(function(){ + const modal = $('#confirm-modal'); + + // Get text from 'data-confirm-text' arg + let text = 'Êtes-vous sûr de vouloir continuer ?'; + console.log($(this).data()) + if ($(this).data('confirm-text')) { + text = $(this).data('confirm-text'); + } + modal.find('.confirm-modal-text').first().html(text) + + // Set "Yes" link to original href of $(this) + modal.find('.confirm-modal-yes').first().attr('href', $(this).attr('href')) + + // Configure and open modal + $('#confirm-modal').modal('show'); + + return false; + }); +}); + + diff --git a/app/templates/base/navbar/tools.html b/app/templates/base/navbar/tools.html index a55c012..636da9d 100644 --- a/app/templates/base/navbar/tools.html +++ b/app/templates/base/navbar/tools.html @@ -20,4 +20,9 @@ SH4 Compatibility Tool + + + + Comparateur de calculatrices + diff --git a/app/templates/calcdb-fr.html b/app/templates/calcdb-fr.html new file mode 120000 index 0000000..3fb7a8e --- /dev/null +++ b/app/templates/calcdb-fr.html @@ -0,0 +1 @@ +../../extra/calcdb/calcdb-fr.html \ No newline at end of file diff --git a/app/templates/calcdb.html b/app/templates/calcdb.html new file mode 100644 index 0000000..b78c82f --- /dev/null +++ b/app/templates/calcdb.html @@ -0,0 +1,143 @@ +{% extends "base/base.html" %} + +{% set tabtitle = "Outils" %} + +{% block title %} +

Outils

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

Comparateur de calculatrices CASIO

+
+

+ Cette page recense la majorité des calculatrices CASIO distribuées en + France depuis 2005. Le tableau comparatif contient tous les détails + logiciels et matériels des modèles, ainsi que de nombreux liens vers + les ressources associées. +

+ +

Sélection des modèles

+

+ + +

+ + + +
+
+ + + Graph 25+ Pro +
+
+ + + Graph 25+E +
+
+ + + Graph 25+E II +
+
+ + + Graph 35+ +
+
+ + + Graph 35+ USB (SH3) +
+
+ + + Graph 35+ USB (SH4) +
+
+ + + Graph 35+E +
+
+ + + Graph 35+E II +
+
+ + + Graph 75 +
+
+ + + Graph 75+ +
+
+ + + Graph 75+E +
+
+ + + Graph 85 +
+
+ + + Graph 85 SD +
+
+ + + Graph 95 (SD) +
+
+ + + Prizm +
+
+ + + Graph 90+E +
+
+ + + Classpad 300 +
+
+ + + Classpad 330 +
+
+ + + Classpad 330+ +
+
+ + + Classpad 400 +
+
+ + + Classpad 400+E +
+
+ +

Tableau comparatif

+
+ {% include "calcdb-fr.html" %} +
+
+{% endblock %} diff --git a/app/templates/tools.html b/app/templates/tools.html index e815541..45dc5f2 100644 --- a/app/templates/tools.html +++ b/app/templates/tools.html @@ -14,6 +14,7 @@
  • Gitea (forge Git)
  • Wiki (wiki répétoriant tout un tas de trucs)
  • Bible (la bible du programmeur Casio bas niveau)
  • +
  • Comparateur de calculatrices (Un comparateur des calculatrices CASIO)