From a9eb4450c86deda076de2e764b6d096f9c3c90a6 Mon Sep 17 00:00:00 2001
From: Marco Malavolti <marco.malavolti@gmail.com>
Date: Thu, 12 Nov 2020 17:28:45 +0100
Subject: [PATCH] Aligned repo for eduGAIN Technical site

---
 .gitignore                          |   1 +
 README.md                           |  11 ++++++-
 clean7daysOldFiles.sh               |   2 +-
 eccs2.ini.template                  |   2 +-
 eccs2.service.template              |   3 +-
 eccs2properties.py                  |   7 +++--
 web/details_close_blue.png          | Bin 0 -> 9529 bytes
 web/details_close_transparent.png   | Bin 0 -> 570 bytes
 web/details_close_transparent.png.1 | Bin 0 -> 570 bytes
 web/details_open_blue.png           | Bin 0 -> 1099 bytes
 web/details_open_transparent.png    | Bin 0 -> 600 bytes
 web/eccs2.css                       |  47 ++++++++++++++++++++++++++++
 web/{script.js => eccs2.js}         |  30 ++++++++++++++++--
 web/style.css                       |  21 -------------
 14 files changed, 92 insertions(+), 32 deletions(-)
 create mode 100644 web/details_close_blue.png
 create mode 100644 web/details_close_transparent.png
 create mode 100644 web/details_close_transparent.png.1
 create mode 100644 web/details_open_blue.png
 create mode 100644 web/details_open_transparent.png
 create mode 100644 web/eccs2.css
 rename web/{script.js => eccs2.js} (80%)
 delete mode 100644 web/style.css

diff --git a/.gitignore b/.gitignore
index be3f385..5978a7a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ eccs2.pid
 chromedriver
 python*
 eccs2.ini
+eccs2.conf
 eccs2.service
 eccs2properties.py
 clean7daysOldFiles.sh
diff --git a/README.md b/README.md
index 3cf18c9..2713cbb 100644
--- a/README.md
+++ b/README.md
@@ -272,6 +272,15 @@ After the initial download, it is recommended that you occasionally go through t
      * `sudo chgrp apache $HOME ; sudo apache g+rx $HOME` (Apache needs permission to access the $HOME dir)
      * `sudo systemctl restart httpd.service`
 
+3. Restart API WSGI server each day to update the datetime:
+   * `crontab -e`
+
+   ```bash
+   SHELL=/bin/bash
+
+   0 3 * * * /usr/bin/touch $HOME/eccs2/eccs2.ini
+   ```
+
 ## Utility
 
 To perform a restart after an API change use the following command:
@@ -303,7 +312,7 @@ To clean the ECCS2 results from files older than last 7 days use (modify it on y
   ```bash
   SHELL=/bin/bash
 
-  0 5 * * * /bin/bash $HOME/eccs2/clean7daysOldFiles.sh > $HOME/eccs2/logs/clean7daysOldFiles.log 2>&1  
+  0 10 * * * /bin/bash $HOME/eccs2/clean7daysOldFiles.sh > $HOME/eccs2/logs/clean7daysOldFiles.log 2>&1  
   ```
 
 # Utility for developers
diff --git a/clean7daysOldFiles.sh b/clean7daysOldFiles.sh
index f06b1b1..86ee441 100755
--- a/clean7daysOldFiles.sh
+++ b/clean7daysOldFiles.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-BASEDIR=/var/www/html/eccs2
+BASEDIR=$HOME/eccs2
 
 # Remove ECCS2 result older than 7 days
 find $BASEDIR/output/* -mtime +6 -type f -delete
diff --git a/eccs2.ini.template b/eccs2.ini.template
index 6173c44..3ab090f 100644
--- a/eccs2.ini.template
+++ b/eccs2.ini.template
@@ -26,7 +26,7 @@ logto          = logs/%(project)uwsgi.log
 log-maxsize    = 100000000
 log-backupname = logs/%(project)uwsgi.old.log
 
-# Ogni 1000 request riavvia i workers
+# Each 1000 request restart workers
 max-requests   = 1000
 
 # respawn processes taking more than takes more then ... seconds
diff --git a/eccs2.service.template b/eccs2.service.template
index 5938658..bf572c3 100644
--- a/eccs2.service.template
+++ b/eccs2.service.template
@@ -13,7 +13,6 @@ RuntimeDirectory=/home/<USER>/eccs2
 Restart=always
 KillSignal=SIGQUIT
 Type=notify
-StandardError=syslog
+StandardError=inherit
 NotifyAccess=all
-#Environment="PATH=/home/<USER>/eccs2/eccs2venv/bin"
 ExecStart=/home/<USER>/eccs2/eccs2venv/bin/uwsgi --ini /home/<USER>/eccs2/eccs2.ini
diff --git a/eccs2properties.py b/eccs2properties.py
index 2cb8955..2e3d9ae 100644
--- a/eccs2properties.py
+++ b/eccs2properties.py
@@ -1,10 +1,11 @@
+import os
 from datetime import date
 
 DAY = date.today().isoformat()
 
-ECCS2DIR = "/var/www/html/eccs2"
-PATHCHROMEDRIVER = "/var/www/html/eccs2/chromedriver"
-ECCS2PYTHON = "/var/www/html/eccs2/python/bin/python3"
+ECCS2DIR = "%s/eccs2" % os.environ['HOME']
+PATHCHROMEDRIVER = "%s/chromedriver" % ECCS2DIR
+ECCS2PYTHON = "%s/python/bin/python3" % ECCS2DIR
 
 # Input
 ECCS2INPUTDIR = "%s/input" % ECCS2DIR
diff --git a/web/details_close_blue.png b/web/details_close_blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb073659bf23d8e19220749f3a57484481d08012
GIT binary patch
literal 9529
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
Xs#1yfT`no^0*QON`njxgN@xNAXd)f}

literal 0
HcmV?d00001

diff --git a/web/details_close_transparent.png b/web/details_close_transparent.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a942ce400589c1c7b726fc0b99577b45c7b5b3f
GIT binary patch
literal 570
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoSc;uILpV4%IBGajIv5xj
zI14-?iy0UgT0xlc(VPDV85kHOOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3
zkz!zA-0tb(7~;{n_S!+eU`G+Q2kW<TS1>ZI%}_mh>`2Rz>kA$jzv$A~)6CDXDRH6O
zWA2VlwO?Ef(ua?|IJ7HZ%8np&Cy~O!WuDIObM*`U-<|vUetp`xIiJsm@EkYEOOiYL
zg?Ii(&h;Od;y<xySw7~yb67X#fc2iE-$mvh;Eg#PZ{z!Cy|NgO*hlXD8@sLvywkZ>
zFyUXMgzCN~<(!8_6R)b6Y@GWq_MEb=+9BhfxlVi94Rh3b8|RuF5!-%F<KAJ5vJb++
ze;bc0JzwtWEw`@2xblYd46&&jqM9oBzkhU3ImXrJ>N=%0?9!g#gV`~Mz6z-;R4tG8
z-TZc%j$Y=rtVdfmTNN<BZAy~ox%OYqDs<v%o6{Oyk9#(1{k!^s_bZQ6p1YWfY;|bO
zkvo=0HyO0+-4Tu66Se3^&ZU^9?nRo{yyhgt#xFjoeDU5{p(E)99qfObOB2g(pUW@H
z|G+$1y_x$^mic*$lNR&Tdw<$oDpGpG5w6oEx$%>7po#NE!MZvHzU+w7t-{X(mZT;;
zt(3J<)%$pR#lyWjzI+d^35xlZoA}jVsQ!P;Igjp)j@4U~gRcG0dD)eI+WVpP%pd%}
Y7bFCIU|VyBfq{X+)78&qol`;+0AR)ZH2?qr

literal 0
HcmV?d00001

diff --git a/web/details_close_transparent.png.1 b/web/details_close_transparent.png.1
new file mode 100644
index 0000000000000000000000000000000000000000..9a942ce400589c1c7b726fc0b99577b45c7b5b3f
GIT binary patch
literal 570
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoSc;uILpV4%IBGajIv5xj
zI14-?iy0UgT0xlc(VPDV85kHOOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3
zkz!zA-0tb(7~;{n_S!+eU`G+Q2kW<TS1>ZI%}_mh>`2Rz>kA$jzv$A~)6CDXDRH6O
zWA2VlwO?Ef(ua?|IJ7HZ%8np&Cy~O!WuDIObM*`U-<|vUetp`xIiJsm@EkYEOOiYL
zg?Ii(&h;Od;y<xySw7~yb67X#fc2iE-$mvh;Eg#PZ{z!Cy|NgO*hlXD8@sLvywkZ>
zFyUXMgzCN~<(!8_6R)b6Y@GWq_MEb=+9BhfxlVi94Rh3b8|RuF5!-%F<KAJ5vJb++
ze;bc0JzwtWEw`@2xblYd46&&jqM9oBzkhU3ImXrJ>N=%0?9!g#gV`~Mz6z-;R4tG8
z-TZc%j$Y=rtVdfmTNN<BZAy~ox%OYqDs<v%o6{Oyk9#(1{k!^s_bZQ6p1YWfY;|bO
zkvo=0HyO0+-4Tu66Se3^&ZU^9?nRo{yyhgt#xFjoeDU5{p(E)99qfObOB2g(pUW@H
z|G+$1y_x$^mic*$lNR&Tdw<$oDpGpG5w6oEx$%>7po#NE!MZvHzU+w7t-{X(mZT;;
zt(3J<)%$pR#lyWjzI+d^35xlZoA}jVsQ!P;Igjp)j@4U~gRcG0dD)eI+WVpP%pd%}
Y7bFCIU|VyBfq{X+)78&qol`;+0AR)ZH2?qr

literal 0
HcmV?d00001

diff --git a/web/details_open_blue.png b/web/details_open_blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd0cfa2f70fd702fd5b8e0a7ec1c7780d5124a01
GIT binary patch
literal 1099
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoSc;uILpV4%IBGajIv5xj
zI14-?iy0UgT0xlc(VPDV85kHOOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3
zkz!zAKH=%&7~;{nc3QkobgIO$`NikTqZYo^T=;sSYK~9G<TU3wy{ikk%G7+XoYCG|
z(wTS5Fg>X!YLB7e$M>z0bC1oC*dDUo)!a(Y=gcNu?+uNaDat+^-P$}S96bJCkn+2I
z@!Ox5ADto_wz5ur{;B%@_wP3McUJ6oUfAQa&d=S>^!emuVL!{c52l3pFf;IkD+`^|
z5!h$A<m%Nj)#|^^OC>@!Ixjw*E}rhb?{u59uZBj#THgzKd5nwAnHi>>vH4_tc*3IO
z1sP3Uvg=lM>F%~US^Pde_Hsk^*Sa}7g=)fePl#ME<7hj+H{mR=>t)Z6o=f!EC%m#|
z>q-p$d-$DykUjf7?aT$`6;(#z&F3?>-#S?B-w=|oS^8OY(q!Wf_HWAewY*jByVZ>g
zp0zHODrVpJ`zgN>^ZotHstfe9_}CA=@O|CH%n+N|QWtK$#6x0xd)<w5Tjf-KzRX@|
zZEmou=3B}A>&-c9dpGT?loP2wzw6=YrCyOPcGX-#B{5IG$<$>${4+68is8u3iI=k+
zmsPy)-1H&kd$dQ{{@6`^8$}=NRbO~YN!5>kJ{!ZWC$CCU4lm4&xxLVI|4s?nW(nTu
zZxxqS6|9ww*dw?}GS<#|uJ|*nz<`8`H&Zt?|95NK#<xJhSy1Wyg-?G{W*^I9K5d>i
zgE2dgA$zC%r$19BPiu{sx@=wL;RoKAu9!NDC55`2RN+Y8a_{N{o?i+_^VV4ir@J#U
zT-2WzJ9Eb~yBT->iKZ`ECDuKYTgSJNX~Dn!J3=P*25U4d$`FX!?-?YfH0$cutDOuA
zpMG9uU^p#pzwV_bx8Mb~%^t$a`cIy_{da!zN$9zoBhMZO;eCcGu7@T(5|(D0{%G=q
zMUNGp9gB-vz4|Sa?}UAS&bCP|`PI*C!kE0}$IF!U^&1X7<5~Wz&(ZJP6xk~gvleVL
znfi93@b(Gs?EAcCe=dJGslJ1aVeQsR`J)@MY&OWRnxbu)lV#5p{QKgh($G^%auy6-
z8KG~ViSd6pzw4auU#Y8>-xRC=J`xU6={dzdkMZb)O`hF{_J36}zsG<0-E=#ls{K4n
ztL5jo+oT(ZH=WOZUEcJ49*g1C_1t>ud5Urt4S&w$U$DNDZp@s1$J;cma<N7A-u7&3
zkLSmJMFlThukrNT`~>q{*2Sy!xTYnUZ!Gx8A+$WsRZ)9In|u5pgTJR&UZ4J5r1s0|
zxw5y5FP?mNbmKo+jS~sFw->C<W;}eAfniDr&rkcd|8c4&j!SdT^Pb&nZOi@KPB!wa
zR@MfU#i!H5TRfKA*nfNyyI+?rPT^VGe2K+dy>~p3*E;%xdqGpV+}ihl_AxLpFnGH9
KxvX<aXaWHKD)wdo

literal 0
HcmV?d00001

diff --git a/web/details_open_transparent.png b/web/details_open_transparent.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a5b5ca4af8c43d9e2e903426606e54416cb32a7
GIT binary patch
literal 600
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoSc;uILpV4%IBGajIv5xj
zI14-?iy0UgT0xlc(VPDV85kHOOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3
zkz!zAyz1%V7~;{n_S#;*kU$aE2mP-_J}|MRImvKZWH~>wj?iHK!F6kf#=d6$hFcth
zi$Ag+IU=vc?S0@_zz=azZr9GKw>SikB+c)f{Bt++Ij_9DwE3miZa%-W_xen`xrRNN
zJ`3j59agV7A|&^y*t&6_*+-#uk8JoJipD*Nma^{&wrG^S<NZh9lCxR!&k_AINn4o9
zd9H7m`poB9XZ%6EX@yH>=LnsO@GMThHF25HL%Uz!72}-k#U{I5_VY^WKFuz&K9OPd
zkH&?+8m%9l`P`Q(S8O?F@uS%~SC|ej5=z^B;zMNBrvlmifu{=mraW>wuKD}04cClw
z1#J2s*R^x+Ii5Y|tjpZ>Ujz2Enf8bsxt@2m(L6A-qj&lD%WXfR&wkzCnAK+cR(Emq
zo2?zGKY|a0i$n`Vm8Pt1@+;q%At)_r_hb9lxFng^GdJ9sY;n!`qoK_4$v!`R^67mm
zX!Q2{T&P<Ry`|hT{n4D7)e;BI@~*OXA9@q^Xa7yx<K;YNe12T3V{INNF;`45QM)xU
zO(-#RN78l)!I|$L70K<?`cuPgUb1eT*Q1>7<jhlhV%hmSz5g^795sJ*>Auh7=0}&-
zcVz9H{bM$-)lRWMq43O5naIEQr<GoG?r(X&<w*R)O{oum+~3p5z`(%Z>FVdQ&MBb@
E0Pmp-<p2Nx

literal 0
HcmV?d00001

diff --git a/web/eccs2.css b/web/eccs2.css
new file mode 100644
index 0000000..02f4bab
--- /dev/null
+++ b/web/eccs2.css
@@ -0,0 +1,47 @@
+td.details-control {
+  background: url('../images/details_open.png') no-repeat center center;
+  cursor: pointer;
+}
+
+tr.shown td.details-control {
+  background: url('../images/details_close.png') no-repeat center center;
+}
+
+#inner-table {
+ padding-left:40px; 
+ background-color:white;
+}
+
+#inner-table tr td{
+   border: 0;
+}
+
+table {
+   color: black;
+}
+
+.eccs-central {
+   padding-left: 10px;
+   padding-right: 10px;
+}
+
+.strong {
+   font-weight: bold;
+}
+
+button#goButton {
+   float:right;
+   padding-right: 10px;
+   padding-left: 10px;
+   padding-bottom: 2px;
+   padding-top: 2px;
+   margin-left: 5px;  
+   position: relative;
+   top: -3px;
+}
+
+input#myDate {
+   float:right;
+   position: relative;
+   top: -3px;
+}
diff --git a/web/script.js b/web/eccs2.js
similarity index 80%
rename from web/script.js
rename to web/eccs2.js
index 4c4567a..5e38bd3 100644
--- a/web/script.js
+++ b/web/eccs2.js
@@ -65,13 +65,31 @@ function getPastResults() {
 }
  
 $(document).ready(function() {
+    // Setup - add a text input to each footer cell
+    $('#eccstable thead tr').clone(true).appendTo( '#eccstable thead' );
+    $('#eccstable thead tr:not(:eq(1)) th').each( function (i) {
+        var title = $('#eccstable thead th').eq( $(this).index() ).text();
+        if($(this).index() !=0 && $(this).index() !=5) $(this).html( '<input type="text" placeholder="Search '+title+'" style="text-align:center;width: 100%;" />' );
+ 
+        $( 'input', this ).on( 'keyup change', function () {
+            if ( table.column(i).search() !== this.value ) {
+                table
+                    .column(i)
+                    .search( this.value )
+                    .draw();
+            }
+        } );
+    } );
+
     table = $('#eccstable').DataTable( {
+        "responsive": "true",
         "ajax": { 
            "url": url,
            "dataSrc": ""
         },
         "lengthMenu": [[10, 20, 30, 40, 50, 100, -1], [10, 20, 30, 40, 50, 100, "All"]],
         "autoWidth": false,
+        "dom": '<"top"lip>rt<"bottom"><"clear">',
         "columns": [
             {
               "className":      'details-control',
@@ -92,18 +110,24 @@ $(document).ready(function() {
             },
             { 
               "data": "status",
-              "className": "dt-body-center"
+              "className": "dt-body-center",
+              "visible": false
             }
         ],
         "rowCallback": function( row, data, index ) {
           if (data.status == "ERROR") {
-            $('td', row).css('background-color', '#EA4335');
+            //$('td', row).css('background-color', '#EA4335'); // NEW ECCS2
+            $('td', row).css('background-color', '#EA3D3F'); // OLD ECCS
+            //$('td', row).css('background-color', '#FF0000');
+            //$('td', row).css('background-color', '#F22422');
           }
           if (data.status == "DISABLED") {
             $('td', row).css('background-color', '#FFFFFF');
           }
           if (data.status == "OK") {
-            $('td', row).css('background-color', '#34A853');
+            //$('td', row).css('background-color', '#34A853');
+            //$('td', row).css('background-color', '#00CE00'); // NEW ECCS2
+            $('td', row).css('background-color', '#72F81B'); // OLD ECCS
           }
         },
         "order": [[1, 'asc']]
diff --git a/web/style.css b/web/style.css
deleted file mode 100644
index cfa012f..0000000
--- a/web/style.css
+++ /dev/null
@@ -1,21 +0,0 @@
-td.details-control {
-  background: url('./details_open.png') no-repeat center center;
-  cursor: pointer;
-}
-
-tr.shown td.details-control {
-  background: url('./details_close.png') no-repeat center center;
-}
-
-#inner-table {
- padding-left:40px; 
- background-color:white;
-}
-
-#inner-table tr td{
-   border: 0;
-}
-
-.strong {
-   font-weight: bold;
-}
-- 
GitLab