From 1d49fd18712f10eed34836c6b3b385401e5355de Mon Sep 17 00:00:00 2001 From: "Christian P. MOMON" Date: Thu, 17 Sep 2020 02:03:56 +0200 Subject: [PATCH] Step in htmlize dev. Refactored CrawlCache. --- log4j.properties | 2 +- resources/statoolinfos-logo-name.jpg | Bin 0 -> 11557 bytes resources/statoolinfos-logo-sans.jpg | Bin 0 -> 15498 bytes resources/statoolinfos-logo.ico | Bin 0 -> 35678 bytes resources/statoolinfos-logo.jpg | Bin 11557 -> 15617 bytes .../statoolinfos/cli/StatoolInfosCLI.java | 3 +- .../devinsy/statoolinfos/core/CrawlCache.java | 130 ++++++++++-- src/fr/devinsy/statoolinfos/core/Factory.java | 12 +- .../devinsy/statoolinfos/core/Federation.java | 32 ++- .../statoolinfos/core/Organization.java | 32 ++- src/fr/devinsy/statoolinfos/core/Service.java | 21 +- .../statoolinfos/core/StatoolInfos.java | 106 ++-------- .../statoolinfos/core/StatoolInfosUtils.java | 50 +++++ .../statoolinfos/htmlize/FederationPage.java | 90 +++++++++ .../statoolinfos/htmlize/Htmlizer.java | 188 ++++++++++++++++++ .../htmlize/OrganizationPage.java | 7 +- .../statoolinfos/htmlize/ServicePage.java | 95 +++++++++ .../statoolinfos/htmlize/federation.xhtml | 38 ++++ .../statoolinfos/htmlize/organization.xhtml | 12 +- .../statoolinfos/htmlize/service.xhtml | 37 ++++ .../statoolinfos/htmlize/stuff/about.xhtml | 29 +++ .../htmlize/stuff/statoolinfos-logo-name.jpg | Bin 0 -> 11557 bytes .../htmlize/stuff/statoolinfos-logo.ico | Bin 0 -> 35678 bytes .../htmlize/stuff/statoolinfos-logo.jpg | Bin 0 -> 15617 bytes .../properties/PathProperties.java | 12 ++ .../statoolinfos/properties/PathProperty.java | 2 +- .../properties/PathPropertyList.java | 29 +++ 27 files changed, 796 insertions(+), 131 deletions(-) create mode 100644 resources/statoolinfos-logo-name.jpg create mode 100644 resources/statoolinfos-logo-sans.jpg create mode 100644 resources/statoolinfos-logo.ico create mode 100644 src/fr/devinsy/statoolinfos/htmlize/FederationPage.java create mode 100644 src/fr/devinsy/statoolinfos/htmlize/Htmlizer.java create mode 100644 src/fr/devinsy/statoolinfos/htmlize/ServicePage.java create mode 100644 src/fr/devinsy/statoolinfos/htmlize/federation.xhtml create mode 100644 src/fr/devinsy/statoolinfos/htmlize/service.xhtml create mode 100644 src/fr/devinsy/statoolinfos/htmlize/stuff/about.xhtml create mode 100644 src/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo-name.jpg create mode 100644 src/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo.ico create mode 100644 src/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo.jpg diff --git a/log4j.properties b/log4j.properties index 56336f4..8a18d37 100644 --- a/log4j.properties +++ b/log4j.properties @@ -3,7 +3,7 @@ # priority setting: DEBUG < INFO < WARN < ERROR log4j.rootLogger = DEBUG, console -log4j.logger.fr.devinsy.tatoolinfos = INFO +log4j.logger.fr.devinsy.statoolinfos = INFO log4j.logger.fr.devinsy.xidyn = WARN #-- diff --git a/resources/statoolinfos-logo-name.jpg b/resources/statoolinfos-logo-name.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed3ead03df0aea62cffeed077599ffc0574c44f7 GIT binary patch literal 11557 zcmb7~Wmp_bx3+s=a2sHd;O_1a+#P}hf_rce!GpUE9^74mOK^905-dQ_5FmI6hwS~H z_d9>T>Yi$;?yl-jk`64 zoPvt_(>fppz{A1)U7r*9c||}*KmdagP?3-jkpNrb*3Ox!*M`|2aHQ{ zx%n-BlNr@mAWrjxvGGrD{u2vY?esFhBxQe&%CqeCVJ`2%ZBaBQULq5o-hAPuH~$-3 zY+9SoupDtPuFXzfb>+B_KT4(5Hx8g;DVscVwtZY3P;__X9sz)T5pvX)aOQLXG2G|c z=)-68u^s?<-1jHQtvI30?W&NJpa|2Y@1P%Hs_1yiPWRF=TUd$d$ zfc|FiQP+YVAFUVEIX@a&6$Hu^eH(uyZqnK575w~4IY8BMLWc)2?YNg&ic{Q})m<(2 zzU9|NsJ?^FRSv?iet)|Q&rvS@aRxIL=uOA$8_2&^PItXLwtqVUojsTrdvg~qvLRZ1 z@wshx^*>bt*x6(;J-k2E^lBq#Qr)VjXUqSTUW!O%hi-<;>`x8?kZkgpo_|^g@NTFX z8*g3h4t;i7{C(|*&MoC44#>KDa|8e8=yp7!n8oo@Ilp&-e=D!~)ta31Lv?-lUN_YZ z%i>7e`)=uvXaZo<*_~?6dR?P7ix|9lC-N=us(}Jt^6Yowx))jhA}#OyXJgJfSN|l8 z4rgO#EV1V9*`1~fcdhj?=*EWrhEax5jb(W5#y(m0`{IFvZtj~D(XMyKEr}bVA=j64 z4{gNc{B6d?uHCt7-e`AU`&Y6Lw{R;@@YbiMj3S(}ZheHX;E!!Rin|EH?!rqG&tGV| z|C$zZ;O*!N0G;S5ZZzmN4z1GnGS0S^SpU;E(Q%5tu1wEAcWovJ00M*Hz=;3t{P535 z2#5d#8;64T*#hyYs3|$Pk$9eaI`XptfDqtT_q3h+f{jIr)r7qI-@pFg-6_)=*|| zaH5fXLZ15iI41DGl~Cs3`3Bs@TI3G8Q&SV7ky4G-q4i0bIo_V{#Q& zL4J?e~CoM%6YeC?iOG2P2P=tDcY5Y zPqH&wR$6U*<#r%_j{Dxv^@ck64yrcNLa<_3{kO)I%~vfSZ}ESU4xVdTP&WGF0Sy4>ynrwJGx+@Z*gJ z3l~f96p6;ZsFux$RKBUbyj6)(aNLU;x@fRb>f@LXxCyuE9pNXevx+`Vidu2esXO%v#^yJPPjS}C1?a@@3SVSo51vSg^$BWSP6gT0?m+L0&YUrUB30#uWInud= z5N2-7n3+n!g$fwGdcQWRoS$h>`PSEK(JebF@(eyBUP2a1U*RGVU@8lk&Gc~`xD3$J zxV$jH?j+U6yT8ExMc5agHw<-0caf8ogXE0t;EsVl5-phF3zT$X6J==a9J zTsgZLg`~GKp3OxN8+ax^7zKog0EYj^l%5X(Fg5}OB_{+2mx@c`m8r{5M5sm}td5#H zzxSMjhqqqRb@m_Yc{VXI&(q+vZtnZQvk@G zmA|(L+dwvevBMZ83t8057X}I?iIOtP45xUyH8pTYx9Ge*nN3SQ zLps^7>+<$UsII3Cn+W9##5)IGe${Kj)fGPmFB1p6W`Yq*hcGbb%1hozC~MOTQiQ<0QZM2iT}%B<3vFG@6nrU1LH? zS8iVW6aM|#>KU@plnY2N6tZ?Tf_IheiEhnJmiy7ixk_iH;% zHfpZaqy7%2M=ayV(;fVvwI=NX<4f4C^cvn7rq-pHr=p|@>K>|a=)hK@VK{9`uL@8Pqx-V4JZ2d-g|{MKBT7%j)Gy{HPQL6F zH0!BjG`pNF-vrsYt|xwE=jUf)Dw6V_1w7oUZSN1vHciVT$-R)m+0tS7EE$%&*VUwZ zab9kb$>Wqwf@hX$9^=bXq~c91CYPnqAb%UMT*KTXH{08`9Z{nY`7uEUT1`zh2J--H zi%Frm+>~@}58nsrn8MUKZCi zuN3XZx$zm8wI*{eBIU~-BI@n;b*zPwjQa$9;{`06){`*H7ZcW;0hz3C^&UYdS7qfq zWwo_hVQ89{m=6zws7N3^nVkNKrUn=9M=a|`2e~3+CqwcOH{qSdCK`I$Xq7XDy}&6t z%PhzKRptoLP3Dv)UcGuCYHvYq!7#U@>#?>}t z(_Q@+wlHDcN32VHmAu9DwLN;wibQY1ddp>@wvU5!k*;~3SMv4Mh*d+2jDqb&Ibkf) z<#*xV7Z~u;YKwfB5=%%*b+5HBf>VUQt!mqT+7lX#{iEnK`UIHc^WVMbrhkl)S8g#^ z7GdXYM=9f^QpvYvdk61A6}-Geo>gBm7IMUkFTDIK-pV5~&277eyt|e|T!2veGvkH> zK-MowBqbT4Ldi;rx1d6ak>3T9S5j$KkQA?CP5tsso&&QMT_8l*c1Pke2BFLZou^+J zl_wz=E@2*ngJDk67gb7`r>9T>g}UCbFxXi(1&O23H*aS1b8%fc!Ym_WH``2*u#0|9xj&z1WLv6 z48Fkpx}V%U8nE73JZc(o*Ykg<2ltnHPk=QsJ$_J1NJ`0_<`SQBsqOH!ol0&M;a6?d zHf(L{1QujJrb3;K5**hB(9N$cKD@}SiOV4%0wdzvfEdQsR|IVBK z9RFeLh$D_(HL7yI%}3HMkhiaW>vc0GuGT2ePXnA>$IT!gNdxHG=LGsO`VW5&aouS7 z&V>#9aD%*P=)lY6IVn2U$3CM+*|`H$%doyyR6`h}?I=y5^tz(bJ6=7y?A7~$FUJib zQTvevbdlQ^t*xf26Wkj5+Ff%qo%qNp#qAe{##!#+izvZbC%Op_vLAN+3ewXW2>kJ+ zX$tyNeJelr-dmoc%qkU@u>HnK^xZE}l8{Gvp%531`5mqocb$y4NOY-p(XpwNiq=&= zBW=IN{@8#o>$Ao#!<+^yig+@m__s0Fxf4aSI9mBntJ94Xu4fj}2o}}s+Pk>7C) zURd&y?09Sadm>sM)|{CtGszomBV>xdbSu-;g)Me%f9E6p1gtjfo#LwC<;^=bWSmDP z@7GJQDb49RM6SA%IqHPZFR_M_=FNM5>|-ji0UyWFBByvEPu!$_QhnjXf(<)kHOb;u z#OY}@ZEuXKLYqQ7l-bkeSDC!1A`aWXdyUcW=35EgPNaZYB&fciLcv#nvmmaN*VfRh zLMvHwSA^*ukJlQPvOgQH%(Hv{JmN+~MngdUzy1o&v%7*zK_&4DflI^GCBJSKN-b&T z>J|vA@BN9#&7+w}!y#oJlvJ>-Rrs$Jg8)P^xKY!5ZHHIAoJL$z%mRO|JG5i)IRnBS zUk{?=<*5gY3yj|(*TW?8vog~i4T;gBioN-VPlSm%Im9@h07zV?(|PbW8cW38#!~s~ zHBwl=%m&0?zXvBV7iX!nVzqs=^dTN0*RsUw_lvgV{WNP<)LPyJYUN_d0yunIEW8iY zNj%Z<$u;r;$x)yb)s7uK8@LL+Ng$dFh0FB`xX4k9(a8%ASL~cI;47h9jIJSe%ysNt zBmg%GA5UnjmK#b6*c>L&S(bcULT<6vRj9iN`~E%0Vfjmvtzk!>A`2hW`yIPQqIiLv zB)evIMI$oD@@N6}#LBox#ZZZuxif)cgM7k8*(=iTOu4?ZR9gspawhOLArsTHjP`4` zdhM}p*+<`38@$@9Te`{xP#+m=1dj0;^@^ubcC$U@ly-@H-XBCGmpB#CXS-irx2y+$) zR`)pczs(KtBOG-s^WYWDP{q3JN{b@9Os(Ts?eDUCU;KW$pb{4C@Sti3Mlr_)Tk4UJ z((X3n@zu>%#4VB^hLXlci_ZVzVZ(dXicE9NvQw3mQ|t$$Ji`7N6A)}^jv%u$7CJ_R z@{$DKui(!kCcgV-ChK@<9@VB@7^`ctc3uk~hV<`0ZS_;$Dc92BWpaI7&HMdjwQ0tV z0mhUPhL3tA4EuM>?I~~fFtB(m>D~FeCht5Yq_Ekxp8#AEvVqHw`9Z#e5pYS#_@%rsA))?1DGCG{^PTxnMU$t z&725=k*N7o9$|=HCLQ!+x>mN47J^^9iF%>tnvWC!I39sT;%P$pmd^k~<4 z6xB^Pu=JzeRcIrqKLKmFc9uQWuWSP(rn|`HJDK-Gw7XZnbSlEbqdGL?c%JjB%;>2v zqkv=A7Q^){5|8Bz1_d7qxyC`GYdD2w=hM3HLWot1n}TvO=17yJ8r?&+o6yQJ$ELK4 z^DVYXDDETVeW5fYPT`hsndWBNV-3t4Jxj(&cx1fI%+~sB^A*$6ksVhX`DUaC3+&g3 zKBGG)5bEg+lF%M9??kqFRWyeZes@wD!utKE`B!CRvA=DnXH05oMrA1LV@k5~pDY)xgPb zjp#D$o+oz=o}<{$kb1XEmmsA=*?xg5Pg#=i)eEJF(b@)CuTEWMAKJ(h!m3+FcL{ZA ztn%uslMaBj%ADrQ6IPX6&O+gWX)&?iyl$_5aaR`M=AS}PG_vh^SHpl-8SYni0t>KUOHJi|T$J_3( z&HJp(X7D$m{qM=lZiqMPP1@m!{&zn^H%KGEP>x4t)MRu5x&uWQxy zPgs{t+$#GmZnK{Y(3kLbV$Pw`_2sAGF(ytv;tz7us%CK?LQ~!(R|iZg;;IHZhXf{D z+Ox-V$F_gDzk9bA1pfl|e)mj#A)I6J@pV8mDtsdH)Th~a@?W99&vXJD2xEql-5oSo zLZl0UE&VmKI*FERq}7eWz=97$9pQ~xJdgXPl}TU1yJ=5I&&A0eO=}`C`|huIgWGPL zE^5NUh8<#C{lmJrg`j_kg)%=3l{$(<|K2@n`GI9rO7#gm6sg`i{e$&LkZnSzE_(8_ z!1L=Uq_Qz?4zEr9QMsdSd;(PEjEQqT)eMu@aD~Cy3hiL-eI8n)5}IKTTMUNB8Haqc zQpF-ioIw$p2@c44S>(Ui+`IDxl(=VpB24L|B|S-l1nKh4NwbPe*H1|=oAxwi_eBQG z)mZzz3~JuGaW(X^QQ)tC0`S`C7ago!R`#y+4KP)Id6AdWte}DTa#FVtp7PTwXxxSo!@A5o*ZfCBPIk8MAWmQ}by7L=1z z$pS@K%85U7pfMuyYxNCWgrNO~;Phy&AkdtEzLCCrmN!$Ua847*-s};(UYvdCxyY(f z{*Bzb^`2OA2%qmGfme1J(@PxLBbq9N;er(LTh&(41A*wfYQsP5BcEQ2#R$pWdu95( zH|}qA8gqz6mQRW1j^mz-;<$`nl>p-lzQ6vF8*a0nsJ{$1Nc>_#;j|Kmh(S73@QsU% zEl(MoA|VE`dV4@hUcLHjS>I1;iH*&Jba?}~tjnclFajtRD$4 zX{GA)Bse>jQ=yf8n@toi^3qtmjZ&>GExX{!-wCk5;NXidrkO%1IeOxYK@~3W7k=6k z;FgK|OL5yQ@!z>x%Yk(Ig?IbiK8la03@DN4k|x3bM52oFnlu)mP zrT3}WFYIkfn!pWJa(h}oDY?Gj3Yyp2Mph6sG<6%nc4*!-3{p+Qsg@*z$GU3{O#^XPcEa2}j z0g~{MCQ*TgPJST~Mv^F>FAZ+$$?|*pzS8|2?g3SDQe0Q5+=j`wVyl$aeU@UGf z-83cvgxblMuMVLd@Z;orkb&hxhsh&P4hQnpVq|p#Z1A|%tv@4<#{8&~Z{JXep_Kqk zLHyl2vC?C2$gNN|aO20i5Bbu6{aTgW9tvfeLwg%~Nqmkz7{t56agUch$5Hh{VRK1h{S#YDpe!HfvCNik|`S_se z-u{ykJsJGT(SLV6NF#GNd_R+3r_TJLSLl{ocQ9CO?cSp{>Li{leR7!o)awagGOQ8U zVkb44%sKC6Vo8nDzp3;R_rKX{*?fPuK3)4yvyW$6#5!wFdp`)ME}fAeiYWaqW}Uo3 zk<7a4R4{S4R1f1RqDXP(8Y2af72`T7pnJC(z0H7>RuAb2KICCc)qeFyyD<)VoI#Rg z^hxsb$n%F2LL;qAzOB&+yrA$~!$}6<1{CGwYjiRYNK^<7rg@6|q|>;vN`t<)KLPw( z(W?RdD8X*4qTPXQ#@+274HY4HCrBQ{SJzvgPPzwgy(Ks2ryWs_vAJ8~qI=oCxT^n(;J#uwfy4;PjPbT|&4`EOb z*FDt`Yp0gL^YIAeqVjG;0 z0^#FiB4vwmZgTUz+Nl#hT>jw1IUSJU6iJ<2+u5B=AtfoHutD6MPNJZqg?&k-mf_&a zmUYOX)+=l8-ypt%ic408D`4jQ)`8#Cq#9&uy~|h)hN#eMUo}#KTOsg1t$Y|(+0%%~ zfn2LFjCYXFG_RH`m2iIqgv(er9>nMeHQ22amir=B_p+ER(cP4-5kSXoDa_Wz*BFKP zsxwEMhK@<2^jNE1DdMO_w5SI$0IavTgv5#ss&n@&1#j0;xN(Wq<`OiUsGB$bK4Vt=DOR$4apj8PKFf}`S!G?tz?HYoKFon#>hfOFhV7-N)jS!&-lOqFGF9Gf@`C=|>qx$| z89EnS zI(@Z>FTJtf8y|&HPHT%kJ3cW%-X<^l6B%P8&ICxroJWYHrU&OT$~jCP?kZ-^tTz%- z)Ta8?+ybRS2;`24B!F0dkV4=qoS_LL2%l=*EWkiSlWRGkypgtosojcknY0 zc`#jLMx_bkLTS1vr~P$@DNff!M`vW(;>->iaJ9j*xcz(OYtbXp=Dy*ZjwZ9TVw7S; zj@dWe)mksMb4e9{gPl5^V^cMERXDCBtEi!7NQoX zCPtsyZiAI~f^Soi*m~a&q6T4L1ohq)=ZI${l!kL@*RQ%CH+}n2Y_$Lz;TV-9b`?E? z-#^Q{t0D>HY3To_(jK!!LGINN_~`m>7H?*TU3)olfg2;uO`ILqwA+ax1kM9dIA|C4}8R*UVZ7jK(>@CXCurt6#I1RIo(vf(acmRPUbhbo>n?K zH~YC@>gWdJFZSifwuYGcF9kC%vPj}&!$8!PE3eQgAP4~*pi)jpX%)xDpn;6spXWTU z)(?!xD;Dx`vBe0A7K&tLbEFfvv2)W>`Dv_iYb9i8~;Sc6irE14B>4@M?2Euay8@S#3kE$#c5>JlEaOOp1cl^XsP498w(F zE$;e{us{yWh3KneY0o|B({)ewVyri2gcCjy2eXtg4_cRcmfwqavu?Ex%q3qGu&+df z)VHFXC1v~1pdvpcmd@y6TeFHr$kj`19WCG`ixAfLRq(@GE&Qh|UcYh7RxlG4I~9L} zC@K1^2{YoR5V+lV$JO&9KRf{za%UKG7}F{5Hy?B{Z->5Gt+%J(jRJuS%JDIf4)xc>qHgiQ%>N>Drpd!GHQpB&GF z>+^qu+t1gDL2d_k6q|pl{wi#eWS#)0kbV6Ohvc*;5|9YLE^xuPb4(y&Z9eK^wU|nw zx#!KEZ14oY8mtU~UT1%uu_hg+jS%z74kdFRidw`PhQQ!0-3!ib_blAo-`c15w&g0@ z&Lv8zK{Fv=4sYCs?XRTcbs=mzyK*6Bbkglcpz+!n`|C~l+=S44;XY?7dm>^u@o!In zu^1~$5L$Z==5gt_15{oHTu7P|VMeo+ye_N~_OTFN{3tf}EJ6rNrDgO0>7pGdZ3#Cf zP#{q#yyMoQ%1?wtB>JMV+TS1Wi(Du%`1?5$eQu?+b~*S=KL>g_2cY2IVCC=x-T{RC z6CqBLukzG+i*%9Z0228440`H{AWH#^-*D+=4rpA6&?YC8Qc;&?;3xe`N|t!}LPkuj z`<|EG(wXV-pn->!NQm?@#)kO?)+Z`x6MP3cXcgBj&qPS0h;mm3H^J@FIv`mwU#AE4 z6N0-tVTkMqsx;3Km(46?7LfpX(X~^{`OB3Y(rKn9tok?|i6PBKOlj}(NHmi?<$^uZ z2;S5Nf$cYbMOPk~^UU`ReZqzCaA`{4cj6Q>%M^mtgW8>CsY$4@>f%3kmda|6Mr_eZ z1liNaGS`Jh1-CcYPp!ec3$}h-+#O`Fj0SeRgjT|(@V3*Nhz5$rylk1jSLT@)M9_*N z0)EM(Q9Hd1Gx<~@)+V(bzGNhO&jsJF)Wk(i2sOud*Nw@J@evmFTnx8J6d#U~ixD`0 zFUobQj_i^n`l>~F&!N`hAIi4H_`?&Z>=DqVZIVnF>e;H=PN}Gs>J0A4&|1hJM|%@Q z1)u9xJtW{INgYLt7(TTdgSm&*qIN5UjZkNTbTk}m`9|vo|AX%R!MkBI8e^w}4vp3u&>c-(lBiGlq25v8$S=I%j)fc#J0I zzpdMKF5Twjk(}=!UW7&x{sE76mg;`Ace@{cG=5lB?-u-4v{dE}ov3ItGCanxnpSotpC4gLSFPJ<2}m*Zz{f|$r@kK3Ld9=W__PQy zK-P|(=kKELAs4$m@O}caf4cib`E@V3oAjQdQhuQm)lt>_LA)>?2wiy@U1X)-BMDUx zU+6L6odk(wz3=<_&77#Bd9Y$l2=a>!-@-&0k`w1kfw;5VhgiN|YmHZ5M|2YH3qHgWZQlT(TjoB4+4~TU@ds2^McVx@FeJ=i%8&50-NEyq+m;@ z$?Z)1{jU6hH-sY$n{-m>^C$X~-G>Fn0B%|Is{0uTAdZZrD4_*9HSjs{A&nLXz?h

OQdH<-FMI@?yBQ~QDHsJIc8jzuJo(kC2rab!l@)1fMNN>jtYG)lgq zRM08@5YLh(RW*Y1JCbWj{WzzkL<9IC46wYoxT|(MX6q+D3BAd|wOE=~q!=RPgn)qE zO7|o^Q<m zx-#wse3az6;4*<)zT$6kJ+3`uHp0;!ovDuue5JKp$_UnUAqi8q-M#DbSA^r`6cs98 zkNsY;ypTlf`@t|0EJXh0B-?Nqa2)rsvCcq*K*E!w!PrYLJNp*0w|E9S8{eT5jt}iz z6`4Kw*6bSx4n?#PLDnq1cwL21P{BX~IRa84jaN8=oQbJaB^tkO9zn9Nq~WhFW{*f_ zJR(I7{sxE170S*AM8eJ1Sz%qsOX{xjQV)u)P`R*cl3{UW3k2MHn`~ANBXL6^foko8 zw`Wo?8r>U{ntEuw8Aa_z3nbJi!YU+L0{#XHf6jUD zj`7C5H>`|=wdPvMOn#Y}lKnjYyar&(OUp?EP*6}nI^+*{UMD`4@~|=o0695&01*HH z1OOch8o-9s-a|4G6dV8rDP16$_}{uWq)rP3^Y=b9q|OGRM}?HZkjxILgCJ!zBwK~R z{-w!<)W;!N;-i^~i`fS)XXR(*<7eY0 zV`t~*;N$1ufY5%4MF0pPZ`DEa|4jeuw;{Yh{nP$S6Hx!74h`u$4CG~Q$bFc9`GAM~ z5C1>vxc}B)=%Aqg`Hmoj9{S&UDbYWzBSOXu5qSQeBm2S^C@83e*f!`T0aFDwXO z(6F#Dum~@FK|#AiG7J_h+#5D{Y%w(i6DJ&U_5ehXcuZDh2NDH``YG=Fj}ypvl$`5S zXD_V%CfSQ%3i^gJXSDWai1#Kque{%HXxU@7aboeat zB;h(W-!t%2;L$ShEJcNUU9jlhlc(XTB=sZfr@LwAr9LOpZ}fq530}Jc2zss-xhEes z7{0NPo(_B6lls>BaR$$P&h~eff<~5*i%ZGj;JPS-wYX+@stlNN9|KJ$q}cACB%*hR3`6a_<{!tuIf67L4TzSyVD6q9-*IFSPAN$;r*(RUHcQNT%& z#4R?Iw0%YMVu@RC7V~ZXVZRU(%{!*L)FPlIjjoSFM|%xSrZ)Ik>I)%q3o^!YpT87o&AeoZPINUs^?Yo_L4pzlQXF{V?ZTi#MBU^);t07d-B)ol~7^ zFxV(Kd$&aEENJ;Hr-6%;i+3~)Q+A0PmhoHPkfkwpw2r9Lx5VR#lyW8o1vXT$EN53p z`PXX`yEN^>_2v?kg@*HqLW*RV6f^{V*kpz6H`p>jQt(t(k;V!BW zO(UZ*a5XFvWS%e=!K~R?RrRbnf)Py?e9kA@J=|y)Vv!d$YO-R|Rv7XQ=a~pNZ#}QU zj5Y9JB-~>b>SsX127Q%X8EMlArt(CS>lwi1YFVFj$S? zvT)*>YW`(779=zrATi*Nzzev&DzQ{=tzu78umsn;;kQzn(0t94GuGwF3pXav+$7{9 z4*h-I$5p7PJrRB+X*8LYa#)&AfIpo23PbXmbN-NhL;nkVzX;Wxj#xxfW#F+_rtc6Y z(la1Lx$8%-mS0-nI$XhaNK8N)UDEw0*3m}^6f!bzP2StACJKTqirC1k9IK|f2|qKm zexoKzgUyHS%1a*%g~^{hMYW&9xere<6>S1#aHq6Yz#_ljPKz9b7GQ+J#5d|SPJ0lm z)YhDq1=pQ2IxxOT3ppb-nru>=t@M8N43PVNdj<^P?7*8vXVvA*dj@QZv7iKG*{t|W zTq;}&j<%{`8SdDYwtI$%f{WaHyPgVsC+MIjy}ofDXFciExdM52hLrn=FP7Wka>Vc& zmBfe!ZU#QSgN)p zag`>$SEnzwkP5riNa9_P=e%eaGSBqY{g3?zft^%qtyv2m45lCJlPOFUQBe4L~IV)VAv?>>fPAAdZJ~K4GQ#AQp*IR(TS?(i}peOlu zTso{40ZPVtw=q_p!Z=XCBiM;~<^q=n1VLupffPs`$Oh8_r5PZ<{>nnXIUK#2xQ(b= zJT8p84eP8kafjJ#)H4od%hrQrW-mNI%r`@L!PXtQ%Ob9Lt9O39(mAVN(x^@B@y#WcuU+jxo5KJh{J6Ka zv}1k#w}yS#&I&U}LGcfd}y-DJUEML24ulptSxe}I?~{xXRs!al z#6fCGX@h!9rLU zg?p2i%L%2SF-}ezsDtql1hbSc0-g5yNz(#Gq{6y@vcl;N7@ihC zB;M`n^&?#bLzvL6oFZ#QGEe5wWxfws_qOR<)a?%G@}so%G^>;yX#z5w*yx11s<3@G zt6qmK2datKMLA9H6Y(@E&s}+HQR>H2y9Q|>6o1^Q&;D}7YgQ)o8TeO@k%l4&#@f!` z=&#Rv3#~Q4I?FNEmt7TwZ4wWD=4~f2k#e0{SXwTp3H?BNq-_xt@}Rb8^yrA&XyAOa zFoSoPoO*>+)@sAo5A&oua4jO1l8CZ4`PD)K)R*b7ai?{tiL=z>ObFIQEhyv++iv}x zQ`ugig_s{Zs};B&#y}!N_rzj)GF!d_QE)=kWci&HL<6HICq&Ui3>k!3E|jDoQY}%# zyKCXj^c*)&(^WR@aAAWmMI=SUbn0$OO2!Kxjz2r_LpoI~M}kSTwcZP!|4yn9EzF4h zajM2mP+_Im*4`P4=<3m{DnDvm>b(02v>$sMM-KT&PYE$=MR~20J2TXzEp4e|G*3XW zh!k$cQ@w7-Zj96Ah&$KN@f9EW@vpGHGLYBZgsj+$gvq?fj!B}ARR;F00<@2HQA_Ml z>=MP&Hg9xhOC_+yi28{9ORi;ZX5R5Be!W%}{xs_JI1!nV_bw}ei4(ouQ%wpKiac;8 z^AJW9^611>rYlVQ48)kKJ_F^{#iZEO`W)4#?hm1NFT-5NfYY&hPP6BC*{(fb&i7z@ z7}EJUAD8l8W4DMF?18;O9Vvwx&MKu{ojfa3lNKf)MBi7!Qn8~GVZQ%$g4|GA*b;q1 z4&qgBEy7fu;@J!@9i!S6xiQ$^S>(g-y9sX(0w7@HhRq^ax0L*izc0-gcAiPH7^ zGRMu&v7`@PBI|mb3+gNDFF0l3>BcWm8h2oU>iEL`Fq_~kg1I_$<5k{vZAUUAW+;cl zloqMb$x7^pxTm@kAE1+A-S~lLc|{~QRb~p9++#~}De)K;mg?bAzv)wTod?hucBtGsJszQfD zEhdKl-kAkUzQ}~m$_LF3L8c-O658O|9%GMR7&qcvQFoWlTCa#uj3mlVUso3x-MsHy zoIEGo219L=bIbo(Y0CUm0i3qP7KGFc4N+Wq{SF2t1O1d(zex42Fc3Ww1l4jLYs4qy zh;P-4_L_mTpBKMf%juRC3=78JpO2Zya}^2nDXh9Y0|RN0KFFSTrVJ9w+Dq|Hs=}eY zNw$6Xvb82ad_HzrhCK44(`cpOI(PLBN>6C7DzBkNO^RGRdU6sn?rp>@j0Ub8b|Ol- zvydtKiDLeAxbO`0DOp|>j2BcvtchG%t#|UBtC~{zak8Q5vr`Ahoo ziQ+~phq|^vFK=WGY>)KoI|pxG z)E9F043MToJzhZ=GrtL1XAUX2@x3}`DA}ZB!_#t8^bIqtUa1t+?+bQS<$W#TBvW7X zFkI|nyq(aLu9E%0Ia&LPX!2a4dFE3N`VcWS=-$jmo#hL^0kXD`genZ*{lGKOts}N> z@6D3G^If!|%x~M~3r8)40?FY;t*Pg>?S22QP z(-?btTxp-~)8uDOo&hF|c;6(NI}ItB%1r*rN#uX!vDz%7U(H2oDpQB|Z#sz4J3Y5I z#hHgoWv)rNPDOhh$szTV=k5c$>{31qHpX#%p5+Xa34BDEPgzn~+JWy`DuFKB+|#X^ z4!d)tlm|&9TE}tJd+(}R*~80cfa@F&thk*R2wmy@4x(`<7C|&_qPi0Np4D?YYg5wm zjzZ>)-WFw>&ed}UtG3Gy8>0#Wnx)xB77ULJiQ3c4V2*vaJ$lis=vGAGgo51txfSY$ zw->L3a=*&eDKvs_<+*nRxi<%33Opa-Bj}3h)wSiA3`0WSRoJlT+@|2ytBZpZCvLCf zuz!d}qecWevWxCw_|7cc$aE>Kw{XkuG})9aB?}%TH$Y`rR}8YUvSw$W76j*vHwrqN75HsIQr6VJS>sb`9YTJcq_4>Sl@_lKtI}7j-!I zL_yXPM%ZEH08{1}5S$u*lr19~sd_xlb7eaq{zS3o?^kA}VWyA`ncTnnDwO6Wv0Gzx zEa!Uvtx8r&{1<=a(cgIP4DL3sI(_B{ao<M+3{Ow*et zR39Php0cCb3u%4b*bk#f5-H~&zMBnEnR}wYJ`sGkx%zOA=M2s%1zf_SWr*po{OEH^ zHt(r->ia*H?t5d5yZD8YYO1V9A@6FZnB~pXB|Ct&pxEix;@&9>*@%ce1JSq{kIuN+ zJ|(L;e9G}8X%|K@TRPe$B09IBCko@5`1n|QecMW8lBC_%<@aF^wrH?I^PA2-{NTx6 zD7*U zGuH*0C!uYT>mk1{aO{c2z0ujxE_pAGEfAoN3!exElxo9@Z}gRBj7B_$bzpywz2>>- z^PXMC#ii@a-b!iWEYNnz8$mGtC~_KQqkTh3aM`|jKBKemoZ#|gymXITh>duN@Kqb+D|=H~uvR9LiG!$aJKU|P(n z=}EAGnkb^@w6oZ&ZY7dJLJU=FJw;V`$Jlowp^84ufo} zZZl6UPUZajh=U$D1QgF7?L{yk_V zI>p9mS}lb`G^ph-vjP(`o&aqQr@24OWQvH9HQ@}XngnX4dP$8VEz#+=R3!Xy;_^gv z(&7Dme@yQOHz)+k85qi@5X?mI>XRp`ySlaR*Uo-)cv}(opv;J=qYce3=F8 z7wM)31I10i&&fwb*eWY;ChncSPd2OOQG&8sTa#5?y|nS*rfo?VhJ3vibJ=jP0*-B( z%wS*E>ySl%l^iDYnp*9}L!|^)I@vo}z{>xnIQhqRkJndhPLoR2HDvT^Da=MR{ znjJmRb2OyixIeK;^QR1%O{zClpRi$iee)VS^VqooqScDj5{k^}j^Q`kbv#5^sVRC7 z6?4q#O^re|Ntr_YeY`gOPU@Y<>A_*H~|kIU4-rC$qys*muJ( zCo>seuhn)%Mo_bh(EkKfK~B4L^V!j<4o+}PAXPF5Xdvv^IQQuRuIw^cS>|i#HBsc! z5Wk0vx|bFxq81)~)9%N8pvu|jGnTw`F~z^RDS!Dy38L4#rcvvmId$~U}(o4BBBtfjtf`F7+$ zuPr%6%pl5VVEI*RO|)*+z|Jp`R1pWMtJl+m@{5&4Fe?p-TgWmGtm!K|t7S$#WCzN* z)W^Vkh&YgWUicfAf`Nv9xgZG^a={_KM0ntk5fI=JQISzmQIJtk(9p3l(a^EbQBW}P zFtKnzxVX5e82AKuAOdUvci2Z%eE)3L%U?M?f5SnOpaFBuu{cs@cW08mJJ4!(5K z4(1H>a34PHwDpDTj)^DUe?2epe01(;^BwHevg;AWqOMt#vXewj-Pw7?LQ=_1UL_^1 zU31~CWv!Rx z8k8GDji30L?09(zy920uQ_>uOiB(4G#ZSHIs0RNxsS@1#o+{aYgqE9yXw;`gG4qjX z=QCehot#b1eq%_&90{H0w*vv*n zX8XdeYT80Mg)NEjPkyjD0{Dv0Gug_TR#?N(&YG6>BI(vI+sn+CQ!RA~>=PKjGORA@ zlA)8HwlS>}SjT^16m^$|Cio!1?7F{Na_Ywa^m?ajYWhiIMo_X4mwK{W(Vt^S32_)h z=;owkGK00(VM^rfZEE@nY0*RawfB;xw6Vo#3RV(CZOa0|l%0Dv{xovwA0G29xcfHZ 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 literal 0 HcmV?d00001 diff --git a/resources/statoolinfos-logo.jpg b/resources/statoolinfos-logo.jpg index ed3ead03df0aea62cffeed077599ffc0574c44f7..5d30f482ff6d58af11b68e851c188f7db38851ae 100644 GIT binary patch literal 15617 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 + * + * This file is part of StatoolInfos, simple service statistics tool. + * + * StatoolInfos is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * StatoolInfos is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with StatoolInfos. If not, see . + */ +package fr.devinsy.statoolinfos.htmlize; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Locale; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import fr.devinsy.statoolinfos.core.Federation; +import fr.devinsy.statoolinfos.core.Organization; +import fr.devinsy.statoolinfos.core.StatoolInfosException; +import fr.devinsy.xidyn.XidynException; +import fr.devinsy.xidyn.data.TagDataManager; +import fr.devinsy.xidyn.presenters.PresenterUtils; +import utils.BuildInformation; + +/** + * The Class OrganizationPage. + */ +public class FederationPage +{ + private static Logger logger = LoggerFactory.getLogger(FederationPage.class); + + /** + * Builds the. + * + * @param federation + * the organization + * @return the string + * @throws StatoolInfosException + * the statool infos exception + */ + public static String build(final Federation federation) throws StatoolInfosException + { + String result; + + try + { + logger.debug("Building federation page {}…", federation.getName()); + + TagDataManager data = new TagDataManager(); + + data.setContent("versionsup", BuildInformation.instance().version()); + data.setContent("lastUpdateDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd/MM/yyyy HH':'mm", Locale.FRANCE))); + + data.setEscapedContent("federationName", federation.getName()); + data.setEscapedContent("federationDescription", federation.getDescription()); + data.setContent("organizationCount", federation.getOrganizations().size()); + + int index = 0; + for (Organization organization : federation.getOrganizations()) + { + data.setEscapedContent("organizationListLine", index, "organizationListLineNameLink", organization.getName()); + data.setAttribute("organizationListLine", index, "organizationListLineNameLink", "href", organization.getTechnicalName() + ".xhtml"); + data.setEscapedContent("organizationListLine", index, "organizationListLineUrlLink", organization.getWebsite()); + data.setAttribute("organizationListLine", index, "organizationListLineUrlLink", "href", organization.getWebsite()); + + index += 1; + } + + result = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/federation.xhtml", data).toString(); + } + catch (XidynException exception) + { + throw new StatoolInfosException("Error building federation page: " + exception.getMessage(), exception); + } + + // + return result; + } +} diff --git a/src/fr/devinsy/statoolinfos/htmlize/Htmlizer.java b/src/fr/devinsy/statoolinfos/htmlize/Htmlizer.java new file mode 100644 index 0000000..edd3add --- /dev/null +++ b/src/fr/devinsy/statoolinfos/htmlize/Htmlizer.java @@ -0,0 +1,188 @@ +/* + * Copyright (C) 2020 Christian Pierre MOMON + * + * This file is part of StatoolInfos, simple service statistics tool. + * + * StatoolInfos is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * StatoolInfos is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with StatoolInfos. If not, see . + */ +package fr.devinsy.statoolinfos.htmlize; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +import org.apache.commons.io.FileUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import fr.devinsy.statoolinfos.core.Federation; +import fr.devinsy.statoolinfos.core.Organization; +import fr.devinsy.statoolinfos.core.Service; +import fr.devinsy.statoolinfos.core.StatoolInfosException; +import fr.devinsy.statoolinfos.core.StatoolInfosUtils; + +/** + * The Class Htmlizer. + */ +public class Htmlizer +{ + private static Logger logger = LoggerFactory.getLogger(Htmlizer.class); + + /** + * Instantiates a new htmlizer. + */ + private Htmlizer() + { + } + + /** + * Copy stuff. + * + * @param target + * the target + * @throws IOException + */ + private static void copyStuff(final File targetDirectory) throws IOException + { + // Copy commons files (index, images, favicon, css…). + if (!new File(targetDirectory, "index.html").exists()) + { + + StatoolInfosUtils.copyRessource("/fr/devinsy/statoolinfos/htmlize/stuff/index.html", targetDirectory); + StatoolInfosUtils.copyRessource("/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos.css", targetDirectory); + StatoolInfosUtils.copyRessource("/fr/devinsy/statoolinfos/htmlize/stuff/Chart.bundle.min.js", targetDirectory); + StatoolInfosUtils.copyRessource("/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo.jpg", targetDirectory); + StatoolInfosUtils.copyRessource("/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo.ico", targetDirectory); + StatoolInfosUtils.copyRessource("/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo-name.jpg", targetDirectory); + StatoolInfosUtils.copyRessource("/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo.jpg", new File(targetDirectory, "logo.jpg")); + StatoolInfosUtils.copyRessource("/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo.ico", new File(targetDirectory, "favicon.ico")); + StatoolInfosUtils.copyRessource("/fr/devinsy/statoolinfos/htmlize/stuff/about.xhtml", targetDirectory); + } + } + + /** + * Htmlize federation. + * + * @param federation + * the federation + * @param cache + * the cache + * @throws IOException + * @throws StatoolInfosException + */ + public static void htmlize(final Federation federation) throws IOException, StatoolInfosException + { + File targetDirectory = new File(federation.get("conf.htmlize.directory")); + logger.info("Htmlize target directory: {}", targetDirectory.getAbsoluteFile()); + + if (!targetDirectory.exists()) + { + throw new IllegalArgumentException("Htmlize target directory is missing."); + } + else if (!targetDirectory.isDirectory()) + { + throw new IllegalArgumentException("Htmlize target directory is not a directory."); + } + else + { + copyStuff(targetDirectory); + + // + String page = FederationPage.build(federation); + FileUtils.write(new File(targetDirectory, "index.xhtml"), page, StandardCharsets.UTF_8); + + for (Organization organization : federation.getOrganizations()) + { + page = OrganizationPage.build(organization); + FileUtils.write(new File(targetDirectory, organization.getTechnicalName() + ".xhtml"), page, StandardCharsets.UTF_8); + + for (Service service : organization.getServices()) + { + page = ServicePage.build(service); + FileUtils.write(new File(targetDirectory, organization.getTechnicalName() + "-" + service.getTechnicalName() + ".xhtml"), page, StandardCharsets.UTF_8); + } + } + + // Download federation stuff (favicon, logo…). + // Build the federation page. + + // For each organization + // Download organization stuff (favicon, logo…). + // Build organization page. + // for each service + // Download service stuff (favicon, logo…). + // Build service page. + } + } + + /** + * Htmlize organization. + * + * @param federation + * the federation + * @param targetDirectory + * the target directory + * @throws IOException + * @throws StatoolInfosException + */ + public static void htmlize(final Organization organization) throws IOException, StatoolInfosException + { + File targetDirectory = new File(organization.get("conf.htmlize.directory")); + logger.info("Htmlize target directory: {}", targetDirectory.getAbsoluteFile()); + + if (!targetDirectory.exists()) + { + throw new IllegalArgumentException("Htmlize target directory is missing."); + } + else if (!targetDirectory.isDirectory()) + { + throw new IllegalArgumentException("Htmlize target directory is not a directory."); + } + else + { + copyStuff(targetDirectory); + + // + String page = OrganizationPage.build(organization); + FileUtils.write(new File(targetDirectory, "index.xhtml"), page, StandardCharsets.UTF_8); + + for (Service service : organization.getServices()) + { + page = ServicePage.build(service); + FileUtils.write(new File(targetDirectory, organization.getTechnicalName() + "-" + service.getTechnicalName() + ".xhtml"), page, StandardCharsets.UTF_8); + } + + // Download federation stuff (favicon, logo…). + // Build the federation page. + + // For each organization + // Download organization stuff (favicon, logo…). + // Build organization page. + // for each service + // Download service stuff (favicon, logo…). + // Build service page. + } + } + + /** + * Htmlize. + * + * @param service + * the service + */ + public static void htmlize(final Service service) + { + + } +} diff --git a/src/fr/devinsy/statoolinfos/htmlize/OrganizationPage.java b/src/fr/devinsy/statoolinfos/htmlize/OrganizationPage.java index 133e72c..cad1e91 100644 --- a/src/fr/devinsy/statoolinfos/htmlize/OrganizationPage.java +++ b/src/fr/devinsy/statoolinfos/htmlize/OrganizationPage.java @@ -69,9 +69,10 @@ public class OrganizationPage int index = 0; for (Service service : organization.getServices()) { - data.setEscapedContent("serviceListLine", index, "serviceListLineName", service.getName()); - data.setEscapedContent("serviceListLine", index, "serviceListLineUrlLink", service.getURL()); - data.setAttribute("serviceListLine", index, "serviceListLineUrlLink", "href", service.getURL()); + data.setEscapedContent("serviceListLine", index, "serviceListLineNameLink", service.getName()); + data.setAttribute("serviceListLine", index, "serviceListLineNameLink", "href", organization.getTechnicalName() + "-" + service.getTechnicalName() + ".xhtml"); + data.setEscapedContent("serviceListLine", index, "serviceListLineWebsiteLink", service.getWebsite()); + data.setAttribute("serviceListLine", index, "serviceListLineWebsiteLink", "href", service.getWebsite()); data.setEscapedContent("serviceListLine", index, "serviceListLineSoftware", service.getSoftware()); index += 1; diff --git a/src/fr/devinsy/statoolinfos/htmlize/ServicePage.java b/src/fr/devinsy/statoolinfos/htmlize/ServicePage.java new file mode 100644 index 0000000..90ee6d8 --- /dev/null +++ b/src/fr/devinsy/statoolinfos/htmlize/ServicePage.java @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2020 Christian Pierre MOMON + * + * This file is part of StatoolInfos, simple service statistics tool. + * + * StatoolInfos is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * StatoolInfos is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with StatoolInfos. If not, see . + */ +package fr.devinsy.statoolinfos.htmlize; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Locale; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import fr.devinsy.statoolinfos.core.Service; +import fr.devinsy.statoolinfos.core.StatoolInfosException; +import fr.devinsy.xidyn.XidynException; +import fr.devinsy.xidyn.data.TagDataManager; +import fr.devinsy.xidyn.presenters.PresenterUtils; +import utils.BuildInformation; + +/** + * The Class OrganizationPage. + */ +public class ServicePage +{ + private static Logger logger = LoggerFactory.getLogger(ServicePage.class); + + /** + * Builds the. + * + * @param service + * the service + * @return the string + * @throws StatoolInfosException + * the statool infos exception + */ + public static String build(final Service service) throws StatoolInfosException + { + String result; + + try + { + logger.debug("Building organization page {}…", service.get("organization.name")); + + TagDataManager data = new TagDataManager(); + + data.setContent("versionsup", BuildInformation.instance().version()); + data.setContent("lastUpdateDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd/MM/yyyy HH':'mm", Locale.FRANCE))); + + data.setEscapedContent("serviceName", service.getName()); + data.setEscapedContent("serviceDescription", service.getDescription()); + + // int index = 0; + // for (Service service : service.getServices()) + // { + // data.setEscapedContent("serviceListLine", index, + // "serviceListLineNameLink", service.getName()); + // data.setAttribute("serviceListLine", index, + // "serviceListLineNameLink", "href", service.getTechnicalName() + + // ".xhtml"); + // data.setEscapedContent("serviceListLine", index, + // "serviceListLineUrlLink", service.getURL()); + // data.setAttribute("serviceListLine", index, + // "serviceListLineUrlLink", "href", service.getURL()); + // data.setEscapedContent("serviceListLine", index, + // "serviceListLineSoftware", service.getSoftware()); + // + // index += 1; + // } + + result = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/service.xhtml", data).toString(); + } + catch (XidynException exception) + { + throw new StatoolInfosException("Error building service page: " + exception.getMessage(), exception); + } + + // + return result; + } +} diff --git a/src/fr/devinsy/statoolinfos/htmlize/federation.xhtml b/src/fr/devinsy/statoolinfos/htmlize/federation.xhtml new file mode 100644 index 0000000..c77af55 --- /dev/null +++ b/src/fr/devinsy/statoolinfos/htmlize/federation.xhtml @@ -0,0 +1,38 @@ + + + + + StatoolInfos + + + + + + + +

+

StatoolInfosv0.0.14AboutPage updated on
xx/xx/xxxx xx:xx

+ + + +

Federation name

+

Bla bla description

+
Nombre de membres : n/a
+
+ + + + + + + + + +
Nom du membreURL
n/an/a
+
+
+ + diff --git a/src/fr/devinsy/statoolinfos/htmlize/organization.xhtml b/src/fr/devinsy/statoolinfos/htmlize/organization.xhtml index 09702bb..19f5633 100644 --- a/src/fr/devinsy/statoolinfos/htmlize/organization.xhtml +++ b/src/fr/devinsy/statoolinfos/htmlize/organization.xhtml @@ -4,7 +4,7 @@ StatoolInfos - + + + +
+

StatoolInfosv0.0.14AboutPage updated on
xx/xx/xxxx xx:xx

+ +

Service name

+

Bla bla description

+
 
+
+ + + + + + + + + + + +
Nom du serviceURLLogiciel
n/an/an/a
+
+ +
+ + diff --git a/src/fr/devinsy/statoolinfos/htmlize/stuff/about.xhtml b/src/fr/devinsy/statoolinfos/htmlize/stuff/about.xhtml new file mode 100644 index 0000000..fa09f0d --- /dev/null +++ b/src/fr/devinsy/statoolinfos/htmlize/stuff/about.xhtml @@ -0,0 +1,29 @@ + + + + + StatoolInfos + + + + + + + +
+

StatoolInfosAboutPage updated on
xx/xx/xxxx xx:xx

+ +

Introduction

+

StatoolInfos is a simple tool of statistics about federation, organizations and services.

+ +

License and source repository

+

The original author of StatoolInfos is Christian P. MOMON.

+

StatoolInfo is a free software released under the GNU AGPL license.

+

The official source repository is:

+ +
+ + diff --git a/src/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo-name.jpg b/src/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo-name.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed3ead03df0aea62cffeed077599ffc0574c44f7 GIT binary patch literal 11557 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 literal 0 HcmV?d00001 diff --git a/src/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo.jpg b/src/fr/devinsy/statoolinfos/htmlize/stuff/statoolinfos-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5d30f482ff6d58af11b68e851c188f7db38851ae GIT binary patch literal 15617 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 implements PathPro return result; } + /** + * Gets the url. + * + * @param path + * the path + * @return the url + * @throws MalformedURLException + */ + @Override + public URL getURL(final String path) throws MalformedURLException + { + URL result; + + String value = get(path); + if ((path == null) || (!StringUtils.startsWith(value, "http"))) + { + result = null; + } + else + { + result = new URL(value); + } + + // + return result; + } + /** * Put. *