From 328c657e0f3dbd58f086cb5669f95a51d3548f47 Mon Sep 17 00:00:00 2001 From: aminhashemi92 Date: Thu, 9 Oct 2025 11:45:59 +0330 Subject: [PATCH] add loader on uploading installation report --- db.sqlite3 | Bin 4210688 -> 4210688 bytes .../installation_report_step.html | 92 +++++++++++++++++- 2 files changed, 91 insertions(+), 1 deletion(-) diff --git a/db.sqlite3 b/db.sqlite3 index 79d4607ad3f36157e7ceb521df4ace8e4a2dffd2..088d726c69e80fce0675e1bb4afcdf56d3caf92d 100644 GIT binary patch delta 3604 zcmbtXdr(y86~E8jyUX2smt6rxWLMM{MV9-%dofvdMXRG?3^-%zv;#g+(JBafhRof2oFRI9ORT9d|c`f)EXXh`^@ zfBepG_MUUkIrp6Jan>|j2@|0!n^>LOowE?h-YTI04pn;i5=`6W zdj+pQ*S}ds{O;8n8hV9w-QQU7m6ortYYr3XwuiaQv54tn(yu`{J9D#r;3Cjx`uLU1FbA+Ye+1J5>}n_JA!;yU@Io;R-e zxE4<^tkjBoUaeWTX-9*!e*Ml}TLfJ-bamV2>dg)6?$>14i6a`kby zS}f|Ju%hb*c;gs1*X#_&Qq4pVzHQu!Df1J9K3wdnE_6Rd>L7`bIH(kRT3n%P!tL!k@dnGAzv&#)0LLQ z_yq6f_H&Hqb&rSbWSO)i%#QjFq?K$6yKI*~#z$WjjGz!M7R6#g3yG?zDEhZ)bPX(f z$(OsrDB4uhuqCv$ZZq3T>2BL$Yu3ab6AzB`{7)2Eu>Z_}FG;FEeRcRRu zTA`#>uG>|K>Zpd%3JTTj*vvL-qtTq-5=|M7HByvkzD!XB*|4I4o4xr{z|FF3dWkAq zU(u{i=2lRQiOZr0su;H1;s(GMXHNy@)qF>cZBj;E(i3MYYic+=VWzUCiNdJM84c0bXO z`@L*7Op`dy>Xy_jsajG=3Hj&wUc)f_?+y|tWa{6E zd)KEUbA|0r+vdun63(y5O2R(Y-)suw~6%|sU9kVfoS;)ePFPQ@q^D&S#hx9mbleR)lyrib<|p_f?7c>rXsNa zmbizoTA?`Xuns${gR#Oo7%QxUvBEkSE3AXD!aA5H`07XEq4O-w-@*8=`A7VH{tjAM z(#JeakuID~-0zeSWO%<*nYM~DX%hp%wxXqA)u3{Xps#|eo8ln&$0y1iFWpO@qfgUs z({Is-=mc$op0>hi@cwP3-A-?T*G|uCr{}fP^V;co?ex5MdR{v{FJo1OMJw$3rwY9O zsk(SAM|eowrS%^kUe($g6n_b_Nf;XIawWcmyj&yP0xnX^`w z6hnSaBNr=5C@jl{Fm{ki;y~X(A3@}M38`WGy82z2nS>;5tleJSu&ZW+6l=|LCC-#- z2s%O-!GLGVimMiq4R{j#Az3mD%rpJ(gU{;ZUNCrA_kou#1f1Zj(2H+^i)xs4YJ#E4 z&Yvf$4i_UVfK`WIICGFfFJmCb^#3lOALLVfk~fJIkt9r_im&3Me2~YuK`uo^i6DXD zgLn$XdYIJujxI8M;KTDJH$dH25gIn;y;#A5ix)~b@QVv29l$JlF&hNGj8FvQOrRgo zEQ;*+QoZzt7)UII$YQ)k1!MkBKb&~i%k^_NCc1Ta;Gl9)D{#0aL+J!XC^>uT@DX_)f<_MPou8V z4BB+>P)X`%R2TJA%B1$t81*Fu(*?N`2ZK+h(WU#DHYZ6C#D1oAgv}9-k8sNf?;GLf z5pJ@$ooR%rcO$X;PBi`0;^@E+CQJSZ<~<^O=@=FuW5l@S2p=a)e(k2v-4H~D%E3YM zG2x4g_6n60T|pgr?v>#QNh(Hzh$hOSsxz$<>J>4h$%ZC~j5(oRGD2ZPFhq@se?uQ1 z9>HWIB%uLJ)|r-X7!2zrDI}|!tc96<6Y9~hB!+d(Fqq~E^}{2cB!?A^X?kAowTJcL zsZ|m+4b^k-V#)0KqD<#4j6cV(=ALrzaOIvSp0gg6y}{O`Jx=RL^Se*Fm$)9dj<^iw zZ%hYM;DkF(_i-n=rkeo08M+_e|Lo06fx%Fe^N+7}i?`gdrW^lG^KqrO&9O<$$2wt| zcf}_$A8U+l-twL19BciS0jkwVL#pu@bZ!j vP*Mw|DapTgstzciy)_;}ZuD7t|bZysO%LVYvkIMFFw7wvEe9Hd-kLAgY delta 1859 zcmajfeNYr-7y$77y6@ZF<4#V%lUq(K6gYNockeioq8V+I7AR44&U!awx% z!ka1ez^`X&B0krY8HNcIS7`y!$@8 zv-iC3K9R^4DuQ)oP&GHYUGwqpK%JON%DcOBCB0>KDP2Lq$}=efW$YLn%YEq@7bsGt zB1Q2Al|V2UK+z0xAL+mseMM@aSM&vglKk|##x-rwol1IQl`ayaP^F6=uCX%wWrF{e zzrkPQFC&|cJ;!%fF>p3+V&Lj#I_*E^V^`xe#$Y;3kFLfIzw)FG{jlHASplQBH3JB@ zG)8YU5Cr|^zPTmo2EQ0oWy8y{o(ThH#7vkOvtU-#Gr>05&Fpq=AwP?Y^JPPJZWAl` z8tWU^HmdDyO2?{}XMG#%*EBajwZ8c&rMhU_gECob=AsX@8!zoUNGZK7^H*+s= zMs~a5V)8^8A^SGVpg6gjLdHt_9m)DF!GHUA;q4LoSzbplG(n;t;&!+Auj#};ra!aK z3_1U~Z2TquVDdy6Hb+0dTb#_CT0vcG!tKDOVX2rCn~tSn=~xDuaL>5D-#SPT&U+C@+#(M>BjazXH0VSsqA?d6?L6G!qR+-Q_Ob z6(XO!1BPDrQidL;qv*+AcMXZ(V+p#`=k6qFv6BJepnI-KEK~#4da;wfJ9LS%;;+^* z4-*dJ-lM#e0`h=6AG~=X``txE3l6yx7nl#|69lwe%%21Nm)T2TEK;xmU5f~ND0nei zP;mFX(0ftgxH(N`eo6kR8_Do*$=Vvt(UGbb0vyHafh0NIbUK-~5PFw0u$d zl11}7)|b_8P!}wFtTniBWm(Irg*EFRu3D~Cl+ItgY;o<1hKH2(;m3TUPtBLae4i|c z_kJV8{i3NKTDx42qRKi+q0ycOX~d9Hsy{VVt5W^D$#4={cM8*-C^;HVhM{CQhITbc zZH>$kW&;7C>Ur z73M`8htZ`Lc@qhv2mH2J%dR5q0o1Z<-ku!{P9wk;aeM-2gkl@?3&l=!tJlAp+_xZT zhi`6cMzqmWTw{f!uLewJ*{h0yprRP|L!DZf2FJUL_QI#0Vm9_lK{0xzKwE2Lj_8d9 z^iED6fOtw;Hu^fG&7xpZGCqW!DAn4N#Ts3%=@9#%cGJYXp?BVsUZr(V$RpSj6#Sh< zBm3jp>x-ZyFQnH8R7nZ?Ak1q{bo8+H9D^zkYr`gHHIpFVnfeST^w+sG5UTt`Q2UcJ z28op}9=$Q3%^?jsBW^>t7?dK)S8zFgPuHQ3k7@J94Xi-4kp!`~#a0cAL$+t2zqcfN zn&K~1jH}&rnDU8#eZe5~mCQgh`bs*@5Xr$^->1m34{wUl%O&Y>BCGfmjNZ_6aNb+I zjlnl1c4tkVg5H}H&cNLo-9B1kY0G3S4uXG^U&h_xj&RlN@9be#wT@WVSZ-Q6Ee^b{ a*Uj|0t_}#3g$`izLUQuv`rOcK)BXgt {% endblock %} @@ -38,6 +92,15 @@ {% include '_toasts.html' %} + +
+
+
+
در حال آپلود...
+
لطفا تا بارگذاری کامل گزارش منتظر بمانید.
+
+
+ {% instance_info_modal instance %} @@ -516,7 +579,7 @@ {% if user_is_installer %} {% endif %} - {% if next_step and not edit_mode %} + {% if next_step and not edit_mode and report %} بعدی @@ -638,6 +701,9 @@ // Require date and show success toast on submit (persist across redirect) (function(){ const form = document.querySelector('form[enctype]') || document.querySelector('form'); + const loader = document.getElementById('uploadLoader'); + const submitButton = document.querySelector('button[type="submit"][form="installation-report-form"]'); + if (!form) return; form.addEventListener('submit', function(ev){ const display = document.getElementById('id_visited_date_display'); @@ -663,8 +729,32 @@ return false; } } catch(_) {} + + // Show loader overlay when form is valid and submitting + if (loader) { + loader.classList.add('active'); + } + + // Disable submit button to prevent double submission + if (submitButton) { + submitButton.disabled = true; + submitButton.innerHTML = 'در حال ارسال...'; + } + try { sessionStorage.setItem('install_report_saved', '1'); } catch(_) {} }, false); + + // Hide loader on back navigation or page show (in case of errors) + window.addEventListener('pageshow', function(event) { + if (loader) { + loader.classList.remove('active'); + } + if (submitButton) { + submitButton.disabled = false; + submitButton.innerHTML = 'ثبت گزارش'; + } + }); + // on load, if saved flag exists, show toast try { if (sessionStorage.getItem('install_report_saved') === '1') {