From f6c0bb0c5faee1d95cb8480e10361aa88f7aff06 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 16 Jul 2026 19:03:36 +0000 Subject: [PATCH] feat: hide ONLYOFFICE logo via direct CSS patch + iframe injection + init script for persistence --- docker-compose.yml | 1 + onlyoffice-init.sh | 24 ++++++++++++++++++ .../433a0593-d3cf-414e-8763-ab5f87cbc75c.docx | Bin 40674 -> 40670 bytes renderer/carbone-templates/registry.json | 2 +- static/carbone.js | 11 ++++++++ static/index.html | 4 +-- 6 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 onlyoffice-init.sh diff --git a/docker-compose.yml b/docker-compose.yml index d4e8119..1bd8751 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -50,6 +50,7 @@ services: - onlyoffice_data:/var/www/onlyoffice/Data - onlyoffice_logs:/var/log/onlyoffice - onlyoffice_cache:/var/lib/onlyoffice + - ./onlyoffice-init.sh:/app/ds/run-document-server-before.sh:ro networks: - cvnet ports: diff --git a/onlyoffice-init.sh b/onlyoffice-init.sh new file mode 100644 index 0000000..7691c04 --- /dev/null +++ b/onlyoffice-init.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# ONLYOFFICE init script - runs before the document server starts +# Hides the ONLYOFFICE logo from the editor header + +CSS_FILE=/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/resources/css/app.css +if [ -f "$CSS_FILE" ]; then + # Check if already patched + if ! grep -q 'display:none!important' <<< "$(grep '#header-logo{' "$CSS_FILE" | head -1)"; then + sed -i 's/#header-logo{/#header-logo{display:none!important;/g' "$CSS_FILE" + echo "[onlyoffice-init] Patched app.css to hide logo" + fi +fi + +# Also patch the spreadsheet and presentation editors if they exist +for CSS in \ + /var/www/onlyoffice/documentserver/web-apps/apps/spreadsheeteditor/main/resources/css/app.css \ + /var/www/onlyoffice/documentserver/web-apps/apps/presentationeditor/main/resources/css/app.css; do + if [ -f "$CSS" ]; then + if ! grep -q 'display:none!important' <<< "$(grep '#header-logo{' "$CSS" | head -1)"; then + sed -i 's/#header-logo{/#header-logo{display:none!important;/g' "$CSS" + echo "[onlyoffice-init] Patched $(basename $(dirname $(dirname $(dirname $(dirname $CSS))))) to hide logo" + fi + fi +done \ No newline at end of file diff --git a/renderer/carbone-templates/433a0593-d3cf-414e-8763-ab5f87cbc75c.docx b/renderer/carbone-templates/433a0593-d3cf-414e-8763-ab5f87cbc75c.docx index 234f0709ec1e72445e2b8f7468ec0488836b717a..4f1f73a085e97f702afb39544274c8a4f87133ed 100644 GIT binary patch delta 2410 zcmZ8j2{=@J7r(ab*%`|)(vT37B}=lDB{Rv=i@XWh5;H_1WMmoZBe^tYj3sMIvdfZe z;pIg_c0!RB`_>TOT<`lm->383`~2>C?)m-x=iKvu&i~H5rk{LG&tZmUVB`lN^C6aU zc(Bm>5W#ya%`_<2X5FHLP>uahEQDYH^}v4^$j`{>LtMUgErt;Ci4g#Lz>*LV{8g`6 zHSRsRh>X!Fo2qGNJI8b;9~I7bf^_2sX7Yke3h#N(@D?T|3t+$PPfGgPB;05*5o>=M z8qw~3u7|^o5Tz3m7%x?kWr1pv>B$=M=l9L5sc6uxGkT~w@$_prZ1tXmp>A9J^_q7k zSFocbAX3-G{C0=koPtfU3Hz|H-9@QHJ#T?B=e#y_UntB95r;LApXn&X6CH>n(XGO% zS_!c+AB3i#AwERc0mV{RUZGrrkv7YkQ?DK!yJU6qyWh>~-6ze>iY3EjSLx%L9Tp<> zHLhR%Ix*)d13hV+R4w&-I-71C*lW|!f>Ud!>j?%&3MK%8La1`)xw|beBJ7m6+HKeZ z!Pjb5>3!opk`gCipu(z!f5IVGS4$A`5W69u##5)U__2b}<>ZtzyoF;pbv(l$l<|3j z!*n8(VdQ7bgV?vaDQq3vX--uSNr)O*zMUo0(U~ya1*??5Em=34suMj#;=%0IZX;54 zV_)lvq`k!g|3n!;8fp7(F=BE5Wm`hqXZ4L=7L}Uk1tWNN7h;k93pXY&3a;!03z5`VeD7nL zF;jY}Exn(u9@I>I85c)4L`M{*_I|hiX5q)Rqt!0-Nkveh?+we>i!6bU{V*&Xmc0=Z z`$k*QE6i+e0hc3>)#0<~X1naMLke4F;n&H|*lkrA^cVKjqy1MIJ`xt}vls>|l4?*T z&fQ-ys7s>tTNMuSvX_~K8_w7yVDC;j)V2WN+$J7#~mB zL^}SQ?Q5OkqbpoRqSe$pi~D|B;@9W;MtI>nk~!?R#BB$NUiMRiJGDE*>kkYbt&UFS z%1@VP!?*gv3-Dd~;ZlDkwWLecl`I*Auu6)ukj5CTJ`lwn9MlaTu;)jF*s*`!duEFjG!ejmQ6UekMZbGu;$vtL4&rgi@v?%9{6Y8#p%Qz_&_eY)hWD`(A-Z+l`bGYB#)qcvs7pT{|U5L7yRT=JBmC_lD z+u#eUqsmfub^bdvS!hFZ`PvDh9aj=Vd24tz12iV@N5vhCNw%2l5P}kMaL|^*1E$7C z{^OQIFc4P(1;@tw)3ZP#Jf7Z-AnU`E_@+)ZgX`I13jyB=46gyH%Hvk`P=`dUIHLphJ+x!k3Y!7N;0 z$WE%A7V(#vrk&<>Uujt2+2F5^_Ud^#&OOi5_xlIjLqCb8U7NJd=p3ut(4MJ4xR~BF z?NU_`u5mC}@rNzv?gO6we7i(r;=L6GnJ(2DXQ3%!q*1H3gY5+4%NI*BQhdE-VCCFC z@c%6?Z%K?iXr)Qg7}PWwkmbNdC9gs*GUWjy)Y7LU9S9akx)8{bwIR4g)`Fmbd=7$n z^10tm&eLh9@&DUI0Dxix0G@;M7y#%FuqYe={Jngf6@6Xq+;PXb`JM{EdYYl>=m7va zxc}LMe);kPcC>f`0|4+IqGO}}rMr6J?p$%a;py@_9|5heP%3I6O%t$W0syf?0@P?w zBt{&J$>4x0P^5^_*@75~+`kSzR~)DqCk}d0I3ysQg`Z7e5RIQkyWxj)TEUMLd5Cp1 zU5qXeluH*mAV3@c5p7{fTIPofUjv=f5q6Mhg2{5#Ra#6ft!C~+qUDJI;OymO=Hun< ztLW(M{d;W?n+d=8v53avrYZ0pVrzoa>BkPT5Z5=a8KAwhq{YAv#R!4NGGw5%(HUa& qlF6W6G6MP*2dtKed3RIV574jx0MM=jqY2PV0IbM3apW-xdj1bu{}N>Y delta 2298 zcmZ8j2{hDe8=o1I>?7N?j5SM^8e0q#CQ0@^VlXDzvUDwOL zl%=ntLMdfWwuCf|Qe2Ym{Po>)zT0!&^Z%XSbDrmYpZ|G&=Xu{Zov^u1n1GWl7hDVi znl7P9Ae0BDO8^ph?sI@?!n*+l(SRQp4k8f0waar8#o&UvgjMh6ODAoY;1CEKXiSkN zhM$`>5Z=)&H4T>+8P5O`&1tX%Pj^3ASp0Equ^ud``JtuKVG3g|Vuy{PP?SzI5mc`D z+hOk)&6{*!-pJy&cOE1cmm3vk^O~-2Ju*Q!%kkZh*IzgN@u~mC<6}1d4!9+!0(%salEZCZnyDx81%L@xjBjF(Pnp4MIEmN`=eCV>!#EiowjP&I_ej5&&k~-^A zPtru@{*ZXw2zMxF{DFRJux5O~+?sonC`-6>R*@3Fc z#*ba3JK6)^2lUyUE**Y``*I$K?tsQqyUmiWL2`ZGCBzGozBt~23V1{jLB_znOPc4Mk54rP_u2Csu^jb$R$-u8b<(N~!Ro>5%5&J2A&+iH(z<#dxJ} zx2cT7xKN31Ilqk)H+ZP(fSa>X?VEA4xA9lip0Lr?wt8L|dhKjngMgn6F)g0hm1P&2 z-fpZ+P`#`?fHF6nPjiff&{Ycyt_&*Q06HqkIr{a)@%ixAc-QOol>ao;PZqi6NB2S&ve!3e;)iXSISCLTiYZ zgxp@*yz9M3xn1tsqaVKd#^uo|7deD(QbQxMKcumE6SkW~^_^aG-P6vhG>s<(H0oR@U8mU-%bDRX(Xe zR>}AGwhh@WPHm8B2M6j6ztzOv>g=+<*|PP(n`(7>sN+wcNn)%mFD9&=-o7Rt!A_XH zX!A61fOk5aKao@*Tb~(9W(_reZ7|4JFLYgI#FyBRf3P;t?fssyU+OQiM)|gOmSc|+ z?Ts!0Mk-cguVvZ|#^P_Ry6e9ZBC4jpGk@vwA&|+VfYT4oktjzoCismyM-9=}3pFi8 zD;)(UO34{{#GY&{b-sdoPx>nnz3?r*as>AS-=|-BWmbaob2{U=`cTqe7)m6BS20$K`1!+n1{Zeg_~Q=q0OafBZmm77frIk zEI(>^HRC$|d+&_dwtMor{6B+}hch@=y$=*IJJRlQfnze^GHG{Aa%cI12*{9R0r%2< zzz_>v2t<(!0@()v2sBY*GG#L2wSsU4zGvrPcZs1}2Ki668_+w8bK^eAq{w*@0A|X+~LHeM>lybP+L8EKVSi zmHnztPQ23m9F$y^vfmm@C+-cFFd%Joa_&;-GO#%LQ{@u^32AgepbW<%!g?X_6kSpz1l6pPMUy z-xA>kpUyzZ^!DX5hQ}~}x!gfLdmsLs*|>7&xCeO%ZB{vmFeBzV+TWHcrC{T$&tyr< z%!r$$>+s2=&M8D1(*a3a1nkyg{iB@2b&M#?+4aS=c_RCH+{g{#yN-+luEJHLLi4E4 z(gN|R<&+{*qeWT%y@C5-rVrUE!{rf)Dc`8xn4)bbV_#$6XjRF?BT4TGc=TOKm1tkq zc3I68E{o~DCkx37b#0xvX;FI6O)F3OyB=edO{{a^_%z`ju*20jWxt9)-DSt@FE}`= zg<`S;6jBl_UUSt9=d4a_rRaXv!gz-6ApXDa%Ks#ur` z2RmJL%?yNvYgiD}icLTWEXIIPS!@cze6i^-SL&e>UHPBN@ko#A* oN&#R}prH9{Ne|K&LmW5{k}+`zgtK<-XGu~(BmDq(@iox(H>%#^DgXcg diff --git a/renderer/carbone-templates/registry.json b/renderer/carbone-templates/registry.json index 39a6d72..acfa156 100644 --- a/renderer/carbone-templates/registry.json +++ b/renderer/carbone-templates/registry.json @@ -6,6 +6,6 @@ "originalName": "master_cv_template.docx", "path": "/root/workspace/cv-app/renderer/carbone-templates/433a0593-d3cf-414e-8763-ab5f87cbc75c.docx", "uploadedAt": "2026-07-16T09:03:29.601Z", - "updatedAt": "2026-07-16T12:09:36.709Z" + "updatedAt": "2026-07-16T18:59:36.503Z" } ] \ No newline at end of file diff --git a/static/carbone.js b/static/carbone.js index 18b33a4..63f2fc1 100644 --- a/static/carbone.js +++ b/static/carbone.js @@ -359,6 +359,17 @@ async function openOnlyofficeEditor(templateId, templateName) { }, onDocumentReady: function() { console.log('Document loaded in editor'); + // Inject CSS into ONLYOFFICE iframe to hide the logo + try { + var iframe = document.getElementById(containerId).querySelector('iframe'); + if (iframe && iframe.contentDocument) { + var style = iframe.contentDocument.createElement('style'); + style.textContent = '#header-logo { display: none !important; }'; + iframe.contentDocument.head.appendChild(style); + } + } catch(e) { + console.log('Could not inject CSS into iframe:', e); + } }, onSave: function(event) { toast('Document saved successfully'); diff --git a/static/index.html b/static/index.html index 23968c1..7abe3f6 100644 --- a/static/index.html +++ b/static/index.html @@ -139,7 +139,7 @@ - - + + \ No newline at end of file