From da6545947b2e483b78f8268a2c1a21467a560f52 Mon Sep 17 00:00:00 2001
From: jaylin <chieh.lin@rwth-aachen.de>
Date: Sun, 10 Mar 2024 22:08:54 +0100
Subject: [PATCH] Export Event and Measurement table

---
 my_flask_app/__pycache__/main.cpython-39.pyc  | Bin 25204 -> 26082 bytes
 my_flask_app/main.py                          |  33 ++-
 .../models/__pycache__/models.cpython-39.pyc  | Bin 9641 -> 9641 bytes
 my_flask_app/templates/app.html               | 257 +++++++++++-------
 4 files changed, 183 insertions(+), 107 deletions(-)

diff --git a/my_flask_app/__pycache__/main.cpython-39.pyc b/my_flask_app/__pycache__/main.cpython-39.pyc
index 870e9cbe212add277a10cf6075c2b75ab29566f5..068245242330937a344b5e4907b246345019b383 100644
GIT binary patch
delta 8800
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

delta 8116
zcmaEKn(@mKM!rN|UM>a(28Q;pZ&M2vPvnzfl$)qs%FoD<!jQs|Bc3Y}C6Ox`HF3RT
zJy?h-M=MGzg&~D0M>|RzOzTAHfN9+*-4uot&K$j5{V4rhgD3;AdafM9T%#x>Fq=Ea
zIM*b~B-b>`G}kQ3EZ02BJXbzSK36$PIafML8q5b-XAxxqRs#|TsR8MckE)jkyG15S
zCRZ*>E>|f^Dc3T}GFK`}Dpw^+C08LzA=e_x0&EdajuqHoV$|~HSm)YA*)TGs@TIb3
z*{1N@Fr@M|Gep^?2&A&a+oy7-8l?!@Fr;$Vry8XQ*)XK?q#C6N+c2cEEO1B>S;&|o
znj+T1(99U+n97pnlp>xYks_JSlp@v3lp>uX1D0_H%gClkq%(rW<x=Fq;x1ru1-Q6k
ziV|4d6)dg{7gtG9ZDDAxXN+<KOQ^vm)KfIT8r;F+ns9Ng6m77$2UuJOF0PxR2Nw4P
zi|fP14N?rj;$C2JBe=M6iV0ZU8zf$zVhWcqOECva_<$r*Ea2jnDOO-{-xTW<n-+#B
zzf}Je+c}IWb}9BPEKva|4k?Z;3{iopK`Bmi7*m{6Tv}M7f>T4lYFty?T3Dh&Q`}QL
zS{S0jQan?<S{S0jQ@m4rS{R}tQtN|K{ZoABFs1mV__we`MW({|0V#nkEKyM@6)C|f
zAuWti(J7%RVJ!?%F)86G5iJZ+u_=)$Q7sHnaVgO$F)a*H@hO!lu_<vaj8O?GRjEN>
z=${IL45<vM{weWuI8zc*5?ffK5>x$CgHn>_Fr_4?q@=X4L?xwEr=+H&wJ=5{r_`jR
zr)0D+Mx~@=rew7+M5U%=r{uISM5U$VrsTCSM5U+Xrxdg>L}jEDrWCa>L}jKFr<AlX
zL}jIBr<7(hO<*aKN@dB)NhwPy?`33UNMQ<Q(5#(Y#?r~fev3V;I6p5lt#YyitIgzi
z*5CEg3=9lK@*qMSMCgDB5e5c^TP#7Yjy^?NAU;?cETakHg0+Cu6iI-%QXoPOtR=)X
zBBV$R#8&_jG9W^ifq_Ajvk0sSReg~j1A`C)hWg2`*<KnMfON6mV$aD>PtVLtzr~tb
zRFq#-BmlN1C9x#&7E5ALda)*Bkud`U!%BuCv&n26F^m?QlQ|rj8Lc)i<$lD-=r*~7
zH_ioYl=v;yf}+g45{L<Gxv3=?`6;(p((;RPZ!xE*mJ|ts+^P&BR6&F~h)@IB#*~s&
zq&QiNuY{3*@_arqM*GRz_zc;SK=R3x-}1?tW`LNPAR+}sxG^v=M6s77Cgr3S8%A-Z
z7bO;C#Jl*17#5|0jAO}5%uOvypKQ-B!)*pq4<^hfr}0l<Y?%C=|8>1HNYnvj3bToc
z$t~8zl$6wzDE6Y%-2AfClp-ev1_rmHC<X?G5KYFSbWk|)f_+sa4APhjBEX)>0$InF
zSWu9fmvV~@qP+<0!$OdnA`npwB1%96FUTOyA`=E128Jlk%#zgHc(6;GK$2iDR)APl
zAfgsT)PV?)^+jMGfC=--a|Nv!+cw`2bYf(5m@F-<$mRl4<}_K+QDkzMu!1T`*-FNu
z8c?J$-D1)+xW$&7pHrHfhhoZXVRwxVkj74sANbQ!6H7{qQsW^ii#3Ii{X3aUM2-#Y
zVdcqsA~B4ule<M^om)V<%R#!?i&6`65|dLkd5cUyg6$vz<d<9Q$@zIDsd*(uAggZi
zfuk%wGq1QLF)ul_sB`jb5h=!rli5U#Q6kDk)Rl4J<Sx<2+@P2!0{hQla)p=-qwD0U
zVw&}!B#IOj-~b0X@0L(;Mt-?VW^qYoUUErTVoqslaS<qvioik74sqQgnCpr_?!3j8
zlbDp6Qyj%xl30|US`rW876pP-fr1heYUUt+3P9v1+luQku9%!7zAn@ioQBNJ&5M?T
zB9|RG)IbJ+TvY@PD1<XuAkJ6`k_YL>uxfI?gbw4X&2uF5nbdqisyskM0EhskS+IId
z<{~f~LQMWBC2tQ7CQp#6Xb|BAaxtTCkvEtQF7g4<Ou;U<*z%LIQj<%H+(B+<wEzK4
zrXt_T{?d}hVE2O4H$04Qv80wI<`i*)w6mAw$ERc_mq5G(3e=*k$+M-E6v55}$34iI
zx46K87@w0_TvD_e<d`*+?@6l)Yy>fp!gR8*OcM8Y1_p*I3H_qf;?&8GvMQ68$e0>|
zJq$Jzq(ze%QgmzqX$M)llCcOR4v87CdFGS3Wpx;LPPUK@Py|V7G8Ms97wrJ)11kd)
z=95>-YBKKHd|6hEu^wy**gBB5TdZZEL{kLvMA2H1Hc%)Qfx{CVvg<%%pb#xu4`PAB
zRFf0pI&i2VEJcJLUr}meibrZ<N@|fuh_4SMLAHXD3tN#U*nW`JkVFB_PRvEA#SkZe
z-3unnCr_03WZbv;w!AlE{cZ*ZhF{znCAm3z1&Kw)sYSP#N>U&?z{!>o<hEcC0d_gq
zBmN+6EQnwMS<O@w17dFg5nxY&{G-W@lz#O=5zdj8nU@lun3Geq2c#05JhCP)RaEl>
zc>t2FKqVRjLlM~NEXDby1-F<>Qi_ZAf;4~v@)i#yH9(3MBzwUg0~6+xC6zoFk8e&=
zTEgfG&hy}O4fcW`$Q-ci!G>{{Wah$(DRA1l#hYJHl3tWwTHpi9$l%;j6g1geCB^<M
z$ftae0vYUda2&y7rf3$(XmIXi0(-W&q^JO7JS2)rC%;oMF#{E2khlT622^A~Liz+q
zGdOXd1Z5;{NUnmU`K^;9RIQ~z))$=vDLW4$z&-^N=9AZ|hBIE@ETQShSic`6cK}3y
z{S5XlD2j?eetrpZ7{tCrP(I-T)yuk&L<)-Pmtd9P_&x<P;tWU;v$~E#(P<Dj2owOE
zMWCoGItX$l2dD%qNv$XW7oWFSbMjLYQ;Naa`4($YVqSV`(M*s=P-&&f1&-6ABOrmJ
zAOakvmq9F$dvAdq6Ay9B8c+Z-Cf;JqM9!5UrJ#gUH`!L(oN>?OQtge>pjZS~PMX|B
zpmxA5_LR)T98iH&GuctcEDbCVZpwgLLg45DJBOnP92ejis05iD0V3vtyu}4cTRx!j
zrWYi@4H1YhsVqoEchGbO28KD4@9M}hPT%}nN05>6!DL=Nje3Y%lJoQOKyG;mG8<Hd
z7Ci#_j6Jm?HMz7TwMYfT<48*_NzO>j$+^XvoReRi3XY&#ETEF{7HdgqK~8GXG>|%$
z?9|F)a7Y*30-1;K3pbKq=7FRt9l;tv))#^Nb&IvIG_|M_)Tk&f%_%9G50Yjs$}a~8
z9lDohFfcHzn*3Eyodd+uWGu3utfHUK_+auBeKi5NS8g$v7UdKrO+KZsZ3GTVdyviG
z6bU9kbzD(C0|UcRMh1praL1C7hmnJkhf#^CD1WlL!Kr#sf+_;1G;sO?r#?`c16M}B
zm~<30*^AzROa<q(w;<L}5CP6<;Ftv^FHQC$P`P)DGdHm!J~_WMucT-J$bX!m5R3;k
zjBc?)gh3_UE#|z^T!@bq;qJU83RV!0)^0gBd7_~#(|?A^8w>;e!43i2#|*Zw=r71A
zAe$hjAq*3Q7zWB*@fqNf`VJ@vI6!@CMixdMMj@smhRp#+$xLh@hZlKl-f41?kqwkX
ziyS6TFq8BK`7Mgg+{oD6$QWD%RSDRXq$q$)gk)D+^(rQHyP_MQ)X8RHWNcw%T!a>y
z;DG$aF!_s_nj50H`VVq610w@N(QOb5>?u%w0H>>4tSP0r1;s_+Kn4dlIHW-dO;ey~
z_T&U}Bc*#FZ4Dp-?DapOkmiOI$&kFed-4`@HBC^yxy4+PTTle9CGLPUfI|pOfYS!3
zc6-7&nb{(Nam(b3)*_oLELa%p89{Di0ui9(P{m?XQe;=e4CaFfRuI9)$iSe<1n~hl
zM%apGgDjW|A~--Qz?OoY+6WQ@TM8z?Hcw(;V31^DU?>LlcNiF17+IJ&7+DxO7=@T7
z|F-1k1<7kNfg5y1_a|Spu7$K5!6oVgaLd?EopbUYD{T`{L=}O$Qs9iVk`YqIbz`x!
zkAZ=~n2CX*sDHAwwU#Hmm01K%+o0m22%fdTr9{zVkSR|<1So<u*&yx#XEj8DHFa{I
zwYU!0YhVKGze5ZR40<5{@qv?^03!#Z6eABKA0r1-(IK4vDYNmm0s9Bs6$Ez@LE!`T
zSrIoVRB`#s4&txBHd-+}ps2y&R8V5&gH~*i615mD>l7VkU|_Js;qt?in{DsuJ^<B8
ze8H|huFfF}S_*DK{=N!D&%uHUKAygwAqrM`rMXF|MW6_r+-GN}-vtUnP~d1X74?AF
z;KTtEfY=TWGEnqHL%i|Z&ZhnaNFB~dc?psQmEA?JK&;mw0vu7GoN|i=)KJw#E|d8f
z85p8?pq&>;o&FxA2Of=4+{J}C@lXXt9~l%G7>dA&`4dPPno}n;Ffh1GzHYD0G#OMf
zDNI&zm=_PO$3Qi=CM&pBDar%s1m}B@Yi~g+nf$y|O=fU9y2V^vm;<gGAb|k30~`{d
z8Y&eO1#IBN!@(-WSoCPJqNBSG*ty9dbHS>?1XxP}0|P@oNDC;-GO%zk78OjM;^^T9
z4nR=1Rg(p&h5{LLixu2?L$`Yh0|P@j$RMcQj3SIhQzk1ptrP%7d(l&n-OoV8b8s$v
z@1&^(as@16v4s{WVmlxa>*TBlu9u6zv5S`5K%oQ)Ie46Eaw54JQm=yS21gyJRxJ_)
zWr~lW5|9<t^~Ole%NQ6KYC+xsjlD21axiiTGJ&c<2_^w1K1MlEc3d{e<v!zs$q!sy
z8J|y9b4{y9a~8M|04FuDqd~5`#gUs>P>`9IUR)#qasaq=Ku&Jpw&YciQ?G#tuv0&P
zT*(D$5TquTWaj4;fx`;3ImyFN1dh^63=9l?lf~WS4L~eSPH>_Dw@iw_#)F&spf)3<
z+CkWMe{-5!2#YGHW&&5^;JjG`N}0D<ic@paAoYPQ$YJi2?|W$pBI^IoAi-Y@lcl`l
z*}$=EIJw?iotqQnNr(lLH+ow@@+K&y++r;*DatH>q+)RE3KSH#IMY*0oWVmBw^-7$
z^V5n%Kn8%b0=TRNWm0ezcZ($}KQpfg6sAZqUj}joKO+OfEw;?O;?$xNO*N!s5Wrx_
zz(61fzzJjy$e3dwf^+gr9~Z{elkfRN3tRySfRhrq=3Ow^)7MK3+z_q@m5!WgnR$sh
z@t_{tr^zdQ<wZcL8<I)Du~N#wz_4WU9p9O}AeJT*q$_cMa+6;vqr>DMepzggnsRc6
zzqTK!10BVaQId-&SwN9~izPWVCkJ9E*m$tX7a15B*qIp^iiJSAo{5E-1C(4DxtO>Z
zg&4V*iY`um=wHGi1S;KGi})wU29za&Ya(#sss{NAG>lf13QA@o;JjTNUz`eRh^MAN
zN<6S#U;=C*s92BySqRA+pxT#(S%8^`nT3&ynTwf=si<hPNuW3*2Po&SWGspR=lJv>
zHAAo&AOe={LGiniu}B>h%^-0|3I=6-S7va9yD!MNUI8Qv>QzEIaNwc|p4X!I!95w!
z5FmIEt++@Sq#T@5K;<E%E@lOJ6V%=SH_0@4Ajtw80${sAo-YEIZoHtDT2f+hD!9uK
z#g&*dxgc1Ev3+uHu)HM5xsc%31X%(O4P{0K27}2*gUuP0C;tt8$*3{;d5Ef_7AUxR
zi*P%AvTmrXHrN5+ass;p;m#`3o?IHL!6-6$UZ@Lt%2HuuU<jW4EmWIPWwTP4G*i6>
z$Zg<E1#T07N0h;B0&qVH+@k`wd%)w(;1&aT7#ZAR0FN3gfkI0bM2Lb2PzRuh8^i*&
zgNs11UZf4;!bh=hapaZe<bdMf7JEv4YFZ+wrvhqoX);3!9wU&Gj6q={k2OqmLGs{w
z7#t)NIT_qOBjD!Aagkz);A$F_P+;i+5#0J9_kd#?tO(rf0EOr+4p8y{cP8OpDgrf_
zA*lk9gjGS^hRIhWYZ+BH2S;6I6a_^Js38Fwe}yE}kfNH&)-jS9I-mkepeQvhwWugH
z1wQa9j5DC3#6U^DG%vHT6f^*mS6ot*n3-2n3@J^eK`j=J%wmXq6gz}2E^3*)Cq}zo
z4`dm0Rb~OC@hSuIrvWHlgdtf1OAtf}L5u)3a$r_PF_k74feS;B=c9NFvXNwqKn4~W
zg51HC29f~zxwr`APo^T%$r-Ww=t)?Ok%3{y<khi(jB1<z#-=ecrcO?YH?anVIC{W>
zM$un@3Lj8PWng4t;`ztK%=DLqm4i`=iGzuQQG|(usi=7J<@l!>;OGDo;G7B?d;bm6
z3Q8Odj9lPiQh>3jWb%WAO}3zVt%_aQFwxY=!l;T}ISmY|*p&?o%q>#Pi|jz<BU@2w
za(+>YCUX_HbAE1aex8DRQDS9L)a3JtGWB4a5Cqsx(C|Mq3j;$jDAzDBaWL}zXM&Jy
zVD|SSkcwLz@$tEdnR)T?A)1W0SW{AyO4BtNi+Dj1!{q0u3Bt^Ner{k!ZV_lKD2lBh
zF)t;t_!d(^$}OJU%J{U&*+~szQC!7^If*&R8L7FIkemw2!jl=30|l%=acvDEzJfBZ
z(d5Ep5jN1YOOg8I?qp3i4Nx^EH+e#`oI(+}qyU!>;EWEQj{;3Dfu@ldqNFBINEVsQ
zlfuKN4-S;%{JgZx^rF1UYAJH{79b(kqI}RG3AnS_2C{7-h*$w4R)L7^AYvzo*aaf?
zfr#TE;yQ=`jT9Au>hU7b5KR$iC<D?v1C2@CVg^kuAv(jLzGxAs+gEf5q__Sshy*pX
zAzd+01Gfm&<R}6)>54#2q9RZYTm-5%i$GOb5vT+&0+pggpj=x7N{mIIWL5-9F!1;R
zH523GZ!s5@BF~?IqZ<^{w>WHa^HWN5q*CobEv8~ncLmg7<Y81{1mOTig~^Gj?vvM~
GngIavtZ;b%

diff --git a/my_flask_app/main.py b/my_flask_app/main.py
index 3a3f7ba..b7d9e78 100644
--- a/my_flask_app/main.py
+++ b/my_flask_app/main.py
@@ -3,9 +3,9 @@ import pandas as pd
 from my_flask_app import app
 from .models.models import CustomTable, CustomColumn, Theme, CompressedDataType, Observation_Spec, RegType, RegRole
 from flask_sqlalchemy import SQLAlchemy
-from flask import jsonify, redirect, render_template, request, session, url_for, json
+from flask import jsonify, make_response, redirect, render_template, request, session, url_for, json, send_file
 from sqlalchemy import ARRAY, BIGINT, BOOLEAN, DOUBLE_PRECISION, FLOAT, INT, INTEGER, JSON, NUMERIC, SMALLINT, TIMESTAMP, UUID, VARCHAR, MetaData, String, create_engine, text, inspect
-import pydot, base64, os, logging
+import pydot, base64, os, logging, io
 from sqlalchemy.orm import scoped_session, sessionmaker
 from sqlalchemy.dialects.postgresql.base import ischema_names
 from sqlalchemy.dialects.postgresql import JSONB, TSTZRANGE, INTERVAL, BYTEA, JSON, UUID, DOUBLE_PRECISION, BYTEA, ARRAY, REAL, TSTZRANGE, UUID, BYTEA, JSONB, JSON, ARRAY, FLOAT, INTEGER, TIMESTAMP, TEXT, BOOLEAN, VARCHAR, NUMERIC, REAL
@@ -379,6 +379,35 @@ def get_ME_table():
     return jsonify({'table_HTML': table_HTML})
 
 
+@app.route('/export-to-csv', methods=['POST'])
+def export_to_csv():
+
+    data = request.get_json()  # This is the data sent from the frontend
+    df = pd.DataFrame(data)
+
+    if not data:
+        raise ValueError("No data provided for export.")
+
+    # Adjust the dataframe to skip the first column and rename the headers
+    df = df.iloc[:, 1:]  # Skip the first column
+    headers = ['time', 'object', 'type', 'label'] # List your headers here
+    num_features = len(data[0]) - len(headers) - 1
+    headers.extend([f'f_{i+1}' for i in range(num_features)])
+    df.columns = headers # Rename the DataFrame headers
+
+
+     # Convert the DataFrame to a CSV string
+    csv_output = io.StringIO()
+    df.to_csv(csv_output, index=False)
+    csv_output.seek(0)
+
+    # Create a Flask response
+    response = make_response(csv_output.getvalue())
+    response.headers["Content-Disposition"] = "attachment; filename=exported_data.csv"
+    response.headers["Content-Type"] = "text/csv"
+
+    return response
+
 def readHeaderHTML(str):
     soup = BeautifulSoup(str, 'html.parser')
     tds = soup.find_all('td')
diff --git a/my_flask_app/models/__pycache__/models.cpython-39.pyc b/my_flask_app/models/__pycache__/models.cpython-39.pyc
index 85c8c24503febc2cee3793115e586cf4f4bf73ef..2e0a8d9d8d7c2f1d91d5104ea76cf387a4a83dbe 100644
GIT binary patch
delta 20
ccmZ4Kz0#XIk(ZZ?fq{Wx(yzB0x#y_@06wh-aR2}S

delta 20
bcmZ4Kz0#XIk(ZZ?fq{X6P4x9f?s=*JHE{&~

diff --git a/my_flask_app/templates/app.html b/my_flask_app/templates/app.html
index d22226f..2583177 100644
--- a/my_flask_app/templates/app.html
+++ b/my_flask_app/templates/app.html
@@ -580,6 +580,8 @@
                     <div class="mb-3">
                         <h4 style="display: inline; margin-left: .2em;">Machine Data Table (LIMIT 500)</h4>
                         <button type="submit" class="btn btn-primary uk-button-small headerButton" style="margin-top: -3px;" onclick="resetMachineDataTable()">Reset</button>
+                        <button type="submit" class="btn btn-primary uk-button-small headerButton" style="margin-top: -3px;" onclick="">Add</button>
+                        <button type="submit" class="btn btn-primary uk-button-small headerButton" style="margin-top: -3px;" onclick="exportSelectedRowsToCSV()">Export</button>
                     </div>
                     <div class="uk-overflow-auto" id="machine-data-table" style="flex-grow: 1; overflow-y: auto; max-height: max-content; margin-top: -20px;" >
                         <table  id="MD-table" class="uk-table uk-table-hover uk-table-small uk-table-middle uk-table-divider uk-table-striped" style="cursor: pointer;">
@@ -766,75 +768,41 @@
         }
 
 
-        
-
-
-
-        // function select_schema(){
-        //     document.getElementById('schemaSelect').addEventListener('changed', function() {
-        //         var selectedSchema = this.value;
-        //         console.log(selectedSchema);
-        //         // Iterate over all option elements in the select element
-        //         let options = document.getElementById('schemaSelect').options;
-        //         for (let i = 0; i < options.length; i++) {
-        //             if (options[i].value == selectedSchema) {
-        //                 options[i].selected = true;  // Set the selected attribute to true
-        //             } else {
-        //                 options[i].selected = false; // Ensure other options are not marked as selected
-        //             }
-        //         }
-
-        //         fetch('/update-schema', {
-        //             method: 'POST',
-        //             body: JSON.stringify({ schema: selectedSchema }),
-        //             headers: {
-        //                 'Content-Type': 'application/json'
-        //             }
-        //         })
-        //         .then(response => response.json())
-        //         .then(data => {
-        //             // Update the tables container with the new tables
-        //             const tablesContainer = document.getElementById('show_tables1');
-        //             tablesContainer.innerHTML = ''; // Clear existing tables
-
-        //             data.tables.forEach(table => {
-        //                 // Create new elements for each table and append them to the container
-        //                 const divOuter = document.createElement('div');
-        //                 divOuter.className = "uk-margin";
-        //                 divOuter.style = "height: 15px; margin-bottom: -4px;";
-
-        //                 const divInner = document.createElement('div');
-        //                 divInner.className = "list-group-item-action uk-card uk-card-default uk-card-body uk-card-small";
-        //                 divInner.style = "height: 15px; padding-top: 5px;";
-        //                 divInner.textContent = table;
+        function exportSelectedRowsToCSV() {
+            // Collect all selected rows from the Machine Data Table
+            var selectedRowsData = [];
+            document.querySelectorAll('#MD-table input[type="checkbox"]:checked').forEach(function(checkbox) {
+                var row = checkbox.closest('tr');
+                var rowData = {};
+                row.querySelectorAll('td').forEach(function(td, index) {
+                    rowData['column' + index] = td.textContent; // or any other logic to get cell data
+                });
+                selectedRowsData.push(rowData);
+            });
 
-        //                 divOuter.appendChild(divInner);
-        //                 tablesContainer.appendChild(divOuter);
-        //             });
-        //             showErdCanvas("erdCanvas1", "zoomInBtn1", "zoomOutBtn1", data.image1 );
-        //         })
-        //         .catch(error => console.error('Error:', error));
-        //     });
-        // }
+            // Send the selected rows data to the Flask backend
+            fetch('/export-to-csv', {
+                method: 'POST',
+                body: JSON.stringify(selectedRowsData),
+                headers: {
+                    'Content-Type': 'application/json'
+                }
+            })
+            .then(response => response.blob()) // Get the file blob from the response
+            .then(blob => {
+                // Create a link element and click it to download the file
+                var url = window.URL.createObjectURL(blob);
+                var a = document.createElement('a');
+                a.href = url;
+                a.download = 'exported_data.csv';
+                document.body.appendChild(a);
+                a.click();
+                a.remove();
+            })
+            .catch(error => console.error('Error:', error));
+        }
 
 
-        // function show_all() {
-        //     document.getElementById('showAllClick').addEventListener('change', function() {
-        //         var showAll = this.checked; // The checkbox is currently checked (true) or unchecked (false) 
-        //         fetch('/update-show-all', {
-        //             method: 'POST',
-        //             body: JSON.stringify({ show_all: showAll }),
-        //             headers: {
-        //                 'Content-Type': 'application/json'
-        //             }
-        //         })
-        //         .then(response => response.json())
-        //         .then(data => {
-        //             showErdCanvas("erdCanvas1", "zoomInBtn1", "zoomOutBtn1", data.image1 );
-        //         })
-        //         .catch(error => console.error('Error:', error));
-        //     });
-        // }
 
         function click_all_MD_table(element) {
             var checkboxes = document.querySelectorAll('#MD-table tbody input[type="checkbox"]');
@@ -948,7 +916,6 @@
         }
 
 
-
         // Select only the specified select elements
         const time_object_selects = document.querySelectorAll('.time-object-select');
 
@@ -1049,6 +1016,7 @@
             });
         }
 
+
         function selfdefinedObject() {
             var object = document.getElementById('defined-object').value;
             var select = document.getElementById('defined_object_values');
@@ -1284,6 +1252,7 @@
             document.getElementById('defined-label').value = ''; // Clear the input field
         }
 
+
         function toggleSidebar() {
             var sidebar = document.getElementById("sidebar1");
             var content = document.getElementById("content");
@@ -1296,16 +1265,19 @@
             }
         }
 
+
         function toggleTerminal() {
             var terminal = document.getElementById('terminal');
             terminal.classList.toggle('active');
         }
 
+
         function closeTerminal() {  
             var terminal = document.getElementById('terminal');
             terminal.style.height = `0 px`;
         }
 
+
         function makeSidebarResizable(sidebarId, handleId, isLeftHandle) {
             var isResizing = false;
             var lastDownX = 0;
@@ -1346,6 +1318,7 @@
             });
         }
 
+
         function showErdCanvas(erdCanvas, zoomInBtn, zoomOutBtn, erdImage) {
             var canvas = document.getElementById(erdCanvas);
             var ctx = canvas.getContext("2d");
@@ -1451,6 +1424,7 @@
             .catch(error => console.error('Error:', error));
         }
 
+
         function handleLabelColumnClick(label) {
             fetch('/get-label-column', {
                 method: 'POST',
@@ -1482,6 +1456,7 @@
             .catch(error => console.error('Error:', error));
         }
 
+
         function makeTerminalResizable() {
             const terminal = document.getElementById('terminal');
             const terminalHeader = document.getElementById('terminal-header');
@@ -1505,6 +1480,7 @@
             });
         }
 
+
         function segmentTypeSelected() {
             console.log('Segment type selected');
             if (this.value == 'segment') {
@@ -1518,6 +1494,7 @@
             }
         }
 
+
         document.querySelectorAll('.type-radio').forEach(function(radio) {
             radio.addEventListener('change', function() {
                 var $ = function(id) { return document.getElementById(id); };
@@ -1615,46 +1592,116 @@
             });
 
 
-            // document.getElementById('resetButton').addEventListener('click', function(event) {
-            //     event.preventDefault();  // Prevent the default form submission
-
-            //     // Send a POST request to the server
-            //     fetch('/handle-drop', {
-            //         method: 'POST',
-            //         body: JSON.stringify({'reset': true}),
-            //         headers: {
-            //             'Content-Type': 'application/json'
-            //         }
-            //     })
-            //     .then(response => response.json())
-            //     .then(data => {
-            //         // let tables_list = data['tables'];
-            //         document.getElementById('tables').innerHTML = data.tables;
-            //         // for (let i = 0; i < tables_list.length; i++) {
-            //         //     let table = tables_list[i];
-            //         //     let item_inner = document.createElement('div');
-            //         //     item_inner.className = 'ist-group-item-action uk-card uk-card-default uk-card-body uk-card-small';
-            //         //     item_inner.style = "height: 15px; padding-top: 5px;"
-            //         //     item_inner.textContent = table;
-
-            //         //     let item_outer = document.createElement('div');
-            //         //     item_outer.className = 'uk-margin';
-            //         //     item_outer.style = "height: 15px; margin-bottom: -4px;"
-            //         //     item_outer.appendChild(item_inner);
-
-            //         //     document.getElementById('show_tables1').appendChild(item_outer);
-            //         // }
-            //         document.getElementById('dropped_items').innerHTML =data.dropped_items;
-            //         showErdCanvas("erdCanvas2", "zoomInBtn2", "zoomOutBtn2", data.image2);
-            //         showErdCanvas("erdCanvas3", "zoomInBtn3", "zoomOutBtn3", data.image2);
-
-            //     })
-            //     .catch(error => console.error('Error:', error));
-            // });
-
-            // Attach click event listener to each dropped item
+
+        // function select_schema(){
+        //     document.getElementById('schemaSelect').addEventListener('changed', function() {
+        //         var selectedSchema = this.value;
+        //         console.log(selectedSchema);
+        //         // Iterate over all option elements in the select element
+        //         let options = document.getElementById('schemaSelect').options;
+        //         for (let i = 0; i < options.length; i++) {
+        //             if (options[i].value == selectedSchema) {
+        //                 options[i].selected = true;  // Set the selected attribute to true
+        //             } else {
+        //                 options[i].selected = false; // Ensure other options are not marked as selected
+        //             }
+        //         }
+
+        //         fetch('/update-schema', {
+        //             method: 'POST',
+        //             body: JSON.stringify({ schema: selectedSchema }),
+        //             headers: {
+        //                 'Content-Type': 'application/json'
+        //             }
+        //         })
+        //         .then(response => response.json())
+        //         .then(data => {
+        //             // Update the tables container with the new tables
+        //             const tablesContainer = document.getElementById('show_tables1');
+        //             tablesContainer.innerHTML = ''; // Clear existing tables
+
+        //             data.tables.forEach(table => {
+        //                 // Create new elements for each table and append them to the container
+        //                 const divOuter = document.createElement('div');
+        //                 divOuter.className = "uk-margin";
+        //                 divOuter.style = "height: 15px; margin-bottom: -4px;";
+
+        //                 const divInner = document.createElement('div');
+        //                 divInner.className = "list-group-item-action uk-card uk-card-default uk-card-body uk-card-small";
+        //                 divInner.style = "height: 15px; padding-top: 5px;";
+        //                 divInner.textContent = table;
+
+        //                 divOuter.appendChild(divInner);
+        //                 tablesContainer.appendChild(divOuter);
+        //             });
+        //             showErdCanvas("erdCanvas1", "zoomInBtn1", "zoomOutBtn1", data.image1 );
+        //         })
+        //         .catch(error => console.error('Error:', error));
+        //     });
+        // }
+
+
+        // function show_all() {
+        //     document.getElementById('showAllClick').addEventListener('change', function() {
+        //         var showAll = this.checked; // The checkbox is currently checked (true) or unchecked (false) 
+        //         fetch('/update-show-all', {
+        //             method: 'POST',
+        //             body: JSON.stringify({ show_all: showAll }),
+        //             headers: {
+        //                 'Content-Type': 'application/json'
+        //             }
+        //         })
+        //         .then(response => response.json())
+        //         .then(data => {
+        //             showErdCanvas("erdCanvas1", "zoomInBtn1", "zoomOutBtn1", data.image1 );
+        //         })
+        //         .catch(error => console.error('Error:', error));
+        //     });
+        // }
+
+
+
+        // document.getElementById('resetButton').addEventListener('click', function(event) {
+        //     event.preventDefault();  // Prevent the default form submission
+
+        //     // Send a POST request to the server
+        //     fetch('/handle-drop', {
+        //         method: 'POST',
+        //         body: JSON.stringify({'reset': true}),
+        //         headers: {
+        //             'Content-Type': 'application/json'
+        //         }
+        //     })
+        //     .then(response => response.json())
+        //     .then(data => {
+        //         // let tables_list = data['tables'];
+        //         document.getElementById('tables').innerHTML = data.tables;
+        //         // for (let i = 0; i < tables_list.length; i++) {
+        //         //     let table = tables_list[i];
+        //         //     let item_inner = document.createElement('div');
+        //         //     item_inner.className = 'ist-group-item-action uk-card uk-card-default uk-card-body uk-card-small';
+        //         //     item_inner.style = "height: 15px; padding-top: 5px;"
+        //         //     item_inner.textContent = table;
+
+        //         //     let item_outer = document.createElement('div');
+        //         //     item_outer.className = 'uk-margin';
+        //         //     item_outer.style = "height: 15px; margin-bottom: -4px;"
+        //         //     item_outer.appendChild(item_inner);
+
+        //         //     document.getElementById('show_tables1').appendChild(item_outer);
+        //         // }
+        //         document.getElementById('dropped_items').innerHTML =data.dropped_items;
+        //         showErdCanvas("erdCanvas2", "zoomInBtn2", "zoomOutBtn2", data.image2);
+        //         showErdCanvas("erdCanvas3", "zoomInBtn3", "zoomOutBtn3", data.image2);
+
+        //     })
+        //     .catch(error => console.error('Error:', error));
+        // });
+
+        // Attach click event listener to each dropped item
           
         });
+    
     </script>
 </body>
 </html>
-- 
GitLab