v20200724
authorkilian <ksaffran@dks.lu>
Fri, 24 Jul 2020 07:34:06 +0000 (09:34 +0200)
committerkilian <ksaffran@dks.lu>
Fri, 24 Jul 2020 07:34:06 +0000 (09:34 +0200)
51 files changed:
.gitignore
.vscode/settings.json
webapp/app.cgi
webapp/data/reports/pot/pot_period.conf
webapp/data/reports/pot/pot_period.header.tt
webapp/data/reports/pot/pot_period.tt
webapp/data/reports/pot/pot_staffmember_period.conf [new file with mode: 0644]
webapp/data/reports/pot/pot_staffmember_period.footer.tt [new file with mode: 0644]
webapp/data/reports/pot/pot_staffmember_period.header.tt [new file with mode: 0644]
webapp/data/reports/pot/pot_staffmember_period.tt [new file with mode: 0644]
webapp/db.cgi
webapp/lib/pdfreport.pm
webapp/report.cgi
webapp/static/css/fonts/pot.svg
webapp/static/css/fonts/pot.ttf
webapp/static/css/fonts/pot.woff
webapp/static/css/icons.css
webapp/static/css/module.css [deleted file]
webapp/static/css/theme.css
webapp/static/css/theme.last.css [deleted file]
webapp/static/css/w3pro.css [deleted file]
webapp/static/css/w3pro.min.css [deleted file]
webapp/static/js/form.js
webapp/static/js/report.js [new file with mode: 0644]
webapp/static/vendors/slimselect/slimselect.css
webapp/tmpl/block/dlgreport.tt
webapp/tmpl/index.tt
webapp/tmpl/macro/fields.tt
webapp/tmpl/module/companies.tt
webapp/tmpl/module/companies/companies.js
webapp/tmpl/module/companies/dlg_users.tt
webapp/tmpl/module/companies/schemadataset.js
webapp/tmpl/module/companies/staffgroups.js
webapp/tmpl/module/companies/users.js
webapp/tmpl/module/index.tt
webapp/tmpl/module/periods.tt
webapp/tmpl/module/periods/reportperiod.js
webapp/tmpl/module/periods/staffperiodweeks.js
webapp/tmpl/module/periods/tlb_staffperiodweeks.tt [new file with mode: 0644]
webapp/tmpl/module/profile.tt
webapp/tmpl/module/profile/dlgpassword.tt
webapp/tmpl/module/profile/dlgusername.tt
webapp/tmpl/module/staff.tt
webapp/tmpl/module/staff/dlg_staffcontract.tt [new file with mode: 0644]
webapp/tmpl/module/staff/pnl_basedata.tt [new file with mode: 0644]
webapp/tmpl/module/staff/staff.js
webapp/tmpl/module/staff/staffcontract.js
webapp/tmpl/module/staff/staffperiods.js
webapp/tmpl/module/workplans.tt
webapp/tmpl/module/workplans/workplans.js
website/index.html

index 1e4b8e6..b326ff1 100644 (file)
@@ -3,3 +3,7 @@ desktopapp/node_modules
 desktopapp/release-builds
 desktopapp/node_modules/package-lock.json
 OLD/
+webapp/data/output/*
+webapp/data/tmp/*
+webapp/tools/
+webapp/lib/perl5/*
\ No newline at end of file
index aaf7c79..f147280 100644 (file)
@@ -2,17 +2,6 @@
   "perlSyntax.includePaths": [
     "${workspaceFolder}\\lib\\perl5","${workspaceFolder}\\lib"
 ],
-"tidyHtml.optionsTidy": {
-  "indent-attributes": false,
-  "tab-size":2,
-  "indent":true,
-  "show-body-only":true,
-  "fix-uri": false,
-  "newline":"LF",
-  "drop-empty-elements": false,
-  "hide-comments": false,
-  "literal-attributes": "yes",
-},
 "git.ignoreLimitWarning": true
 
 }
\ No newline at end of file
index 6f5660a..d6379ab 100644 (file)
@@ -46,16 +46,7 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
 
  
     
-    if($p->{fn} eq "deleterow"){
-      delete $p->{fn};
-      delete $p->{sid};
-      my $retid = undef;
-      my @sql = $db->create_ddl_delete($p);
-      foreach my $s (@sql){
-          $retid= $db->exec($s);
-      }
-      $html->{result}->{id} = $retid->{0};
-    }
+    
     if($p->{fn} eq "savepassword"){
       if ((length($p->{pwd}) > 7) && ($p->{pwd} =~ /\d/) && ($p->{pwd} =~ /[a-z]/) && ($p->{pwd} =~ /[A-Z]/) ){
         $se->savepassword($sess->{id},$p->{pwd});
index 99f6c40..f81cfd4 100644 (file)
@@ -1,4 +1,4 @@
-PDF_TOP="35mm"
+PDF_TOP="20mm"
 PDF_BOTTOM="10mm"
 PDF_LEFT="5mm"
 PDF_RIGHT="5mm"
index 24671e8..39018bc 100644 (file)
@@ -3,9 +3,9 @@
 [% qgcompany = dksdb.prepare("select * from companies WHERE schemata= ?") %]
 [% gcompany = qgcompany.execute(schemata) %]
 [% cmp = gcompany.get_all() %]
-[% qreport = dksdb.prepare("select to_char(startdate,'DD.MM.YYYY') as startdate, to_char(enddate,'DD.MM.YYYY') as enddate from ${schemata}.reportperiod WHERE id= ?") %]
-[% grep = qreport.execute(id_reportperiod) %]
-[% rep = grep.get_all() %]
+[% #qreport = dksdb.prepare("select to_char(startdate,'DD.MM.YYYY') as startdate, to_char(enddate,'DD.MM.YYYY') as enddate from ${schemata}.reportperiod WHERE id= ?") %]
+[% #grep = qreport.execute() %]
+[% #rep = grep.get_all() %]
 <!DOCTYPE html>
 <html><head>
 <meta charset="UTF-8">
 <table style="width: 100%;">
   <tr>
     <td style="width: 150mm; margin-top:5mm;">
-      <h2>Plan d'Organisation du Travail<h2>
-      <h4>du [% rep.0.startdate %] au [% rep.0.enddate %]</h4>
+      <h3>Plan d'Organisation du Travail<h3>
     </td>
     <td style="width: 60mm;text-align: right;">
-      <div style="text-align: left;width: 60mm; font-size: 12pt;font: sans;">
+      <div style="text-align: left;width: 60mm; font-size: 8pt;font: sans;">
           <b>[% cmp.0.company %] [% cmp.0.socialtype %]</b><br/>
           [% cmp.0.address %]<br/> 
           [% cmp.0.zip %] [% cmp.0.city%]<br/><br/>
-          <br/>
-          TVA: [% comp.0.vatnumber %]<br/>
       </div>
     </td>
     <tr><td style="text-align: left;"></td><td></td></tr>
index 931d87e..39077b2 100644 (file)
@@ -7,10 +7,10 @@
   <title>POT - Period</title>
   <style>
   div {
-  font-size: 18pt;
+  font-size: 12pt;
 }
 table {
-  font-size: 12pt;
+  font-size: 8pt;
   border-spacing: 0;
   border-collapse: 0;
  
@@ -57,15 +57,15 @@ tfoot { display:table-footer-group }
   </style>
 </head>
 <body>
-  [% weeklist = dksdb.prepare("select dspweek,dspweekdates,weekdates,weekident from ${schemata}.vw_staffreportperioddays where id_reportperiod = ? group by dspweek,dspweekdates,weekdates,weekident order by dspweek;") %]
+  [% weeklist = dksdb.prepare("select dspweekshort,dspweekdates,weekdates,weekident from ${schemata}.vw_staffreportperioddays where id_reportperiod = ? group by dspweekshort,dspweekdates,weekdates,weekident order by dspweekshort;") %]
   [% periodweek = dksdb.prepare("select st.prename,st.surname,spd.* from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod= ? and spd.weekident= ? order by st.surname,st.prename,spd.daydate;") %]
   [% FOREACH wl = weeklist.execute(id_reportperiod) %]
   <table>
     <thead>
       [% dspwd = wl.dspweekdates.split(',') %]
       [% wd = wl.weekdates.split(',') %]
-      <tr><th colspan="16">Semaine [% wl.dspweek %]</th></tr>
-      <tr><th>Nom</th>
+      <tr><th colspan="16"></th></tr>
+      <tr><th>Semaine [% wl.dspweekshort %]</th>
       <th colspan="2">Lundi<br/>[% dspwd.0 %]</th>
       <th colspan="2">Mardi<br/>[% dspwd.1 %]</th>
       <th colspan="2">Mecredi<br/>[% dspwd.2 %]</th>
@@ -90,9 +90,10 @@ tfoot { display:table-footer-group }
         [% IF wdk < 7 %]
         [% IF pw.timestart1%]
               <td class="datavalues">
-              [% pw.timestart1 %]-[% pw.timeend1 %]<br/>
-              [% IF pw.timestart2 %][% pw.timestart2 %]-[% pw.timeend2 %]<br/>[% END %]
-              [% IF pw.timepause %]P: [% pw.timepause %][% END %]</td>
+              [% pw.timestart1 %] - [% pw.timeend1 %]<br/>
+              [% IF pw.timestart2 %][% pw.timestart2 %] - [% pw.timeend2 %]<br/>[% END %]
+              [% IF pw.timepause %]P: [% pw.timepause %][% END %]
+              </td>
               <td class="datavalues">
                 [% IF pw.workhours %]T: [% pw.workhours %]<br/>[%END %]
                 [% IF pw.recuperationhours %]R: [% pw.recuperationhours %]<br/>[%END %]
diff --git a/webapp/data/reports/pot/pot_staffmember_period.conf b/webapp/data/reports/pot/pot_staffmember_period.conf
new file mode 100644 (file)
index 0000000..5192522
--- /dev/null
@@ -0,0 +1,12 @@
+PDF_TOP="25mm"
+PDF_BOTTOM="10mm"
+PDF_LEFT="5mm"
+PDF_RIGHT="5mm"
+PDF_SIZE="A4"
+PDF_ORIENTATION="Landscape"
+PDF_ENGINE="Template::Toolkit"
+PDF_ENCODING="UTF-8"
+TEMPLATE_DSN=""
+TEMPLATE_DBUSER=""
+TEMPLATE_DBPASSWORD=""
+REPORT_NAME="POT periodes par salarié"
\ No newline at end of file
diff --git a/webapp/data/reports/pot/pot_staffmember_period.footer.tt b/webapp/data/reports/pot/pot_staffmember_period.footer.tt
new file mode 100644 (file)
index 0000000..8a5797b
--- /dev/null
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script>
+function subst() {
+    var vars = {};
+    var query_strings_from_url = document.location.search.substring(1).split('&');
+    for (var query_string in query_strings_from_url) {
+        if (query_strings_from_url.hasOwnProperty(query_string)) {
+            var temp_var = query_strings_from_url[query_string].split('=', 2);
+            vars[temp_var[0]] = decodeURI(temp_var[1]);
+        }
+    }
+    var css_selector_classes = ['page', 'frompage', 'topage', 'webpage', 'section', 'subsection', 'date', 'isodate', 'time', 'title', 'doctitle', 'sitepage', 'sitepages'];
+    for (var css_class in css_selector_classes) {
+        if (css_selector_classes.hasOwnProperty(css_class)) {
+            var element = document.getElementsByClassName(css_selector_classes[css_class]);
+            for (var j = 0; j < element.length; ++j) {
+                element[j].textContent = vars[css_selector_classes[css_class]];
+            }
+        }
+    }
+}
+</script></head>
+<body style="border:0; margin: 0;" onload="subst()">
+<table style="width: 100%;" >
+  <tr><td colspan="2" style="text-align: center;"><span class="date"></span>&nbsp;<span class="time"></span></td></tr>
+  <tr>
+    <td></td>
+    <td style="text-align:right">
+      Page <span class="page"></span>/<span class="topage"></span>
+    </td>
+  </tr>
+</table>
+</body></html>
\ No newline at end of file
diff --git a/webapp/data/reports/pot/pot_staffmember_period.header.tt b/webapp/data/reports/pot/pot_staffmember_period.header.tt
new file mode 100644 (file)
index 0000000..5f67e44
--- /dev/null
@@ -0,0 +1,28 @@
+[% USE DBI %]
+[% USE dksdb = DBI(dsn, dbuser, dbpassword) %]
+[% qgcompany = dksdb.prepare("select * from companies WHERE schemata= ?") %]
+[% gcompany = qgcompany.execute(schemata) %]
+[% cmp = gcompany.get_all() %]
+[% #qreport = dksdb.prepare("select to_char(startdate,'DD.MM.YYYY') as startdate, to_char(enddate,'DD.MM.YYYY') as enddate from ${schemata}.reportperiod WHERE id= ?") %]
+[% #grep = qreport.execute(id_reportperiod) %]
+[% #rep = grep.get_all() %]
+<!DOCTYPE html>
+<html><head>
+<meta charset="UTF-8">
+</head><body style="border:0; margin: 0;" o>
+<table style="width: 100%;">
+  <tr>
+    <td style="width: 150mm; margin-top:5mm;">
+      <h4>Plan d'Organisation du Travail<h4>
+    </td>
+    <td style="width: 60mm;text-align: right;">
+      <div style="text-align: left;width: 60mm; font-size: 8pt;font: sans;">
+          <b>[% cmp.0.company %] [% cmp.0.socialtype %]</b><br/>
+          [% cmp.0.address %]<br/> 
+          [% cmp.0.zip %] [% cmp.0.city%]<br/><br/>
+      </div>
+    </td>
+    <tr><td style="text-align: left;"></td><td></td></tr>
+  </tr>
+</table>
+</body></html>
diff --git a/webapp/data/reports/pot/pot_staffmember_period.tt b/webapp/data/reports/pot/pot_staffmember_period.tt
new file mode 100644 (file)
index 0000000..1bc144b
--- /dev/null
@@ -0,0 +1,174 @@
+[% USE DBI %]
+[% USE dksdb = DBI(dsn, dbuser, dbpassword) %]
+
+<!DOCTYPE html>
+<html>
+<head>
+  <title>POT - Staffmember - Period</title>
+  <style>
+  div {
+  font-size: 12pt;
+}
+table {
+  font-size: 8pt;
+  border-spacing: 0;
+  border-collapse: collapse;
+  border: none;
+  width: 100%;
+}
+th {
+  border: 1px solid black;
+}
+td {
+  text-align: center;
+  border: 1px solid black;
+}
+
+.right{
+  text-align: right;
+}
+
+table.tbinline {
+  border-collapse: collapse;
+}
+table.tbinline td {
+  border: 0.5px solid #969696; 
+}
+table.tbinline tr:first-child td {
+  border-top: 0;
+}
+table.tbinline tr td:first-child {
+  border-left: 0;
+}
+table.tbinline tr:last-child td {
+  border-bottom: 0;
+}
+table.tbinline tr td:last-child {
+  border-right: 0;
+}
+/*table#tbl_products {
+  border-spacing: 0;
+  border-collapse: 0;
+  margin-top: 10mm;
+  width: 100%;
+} */
+
+/*table#tbl_products td {
+  padding: 2mm;
+  border-bottom: 1px solid black;
+}*/
+
+/*table#tbl_products th {
+  margin: 1mm; 
+  border: 1px solid #fff;
+  border-bottom: 0px;
+  padding: 2mm;
+  background-color: #c6c6c6;
+}*/
+td.datavalues {
+  font-size: 8pt;
+  /*padding: 3px;*/
+}
+table { page-break-inside:auto }
+tr    { page-break-inside:avoid; page-break-after:auto }
+thead { display:table-header-group }
+tfoot { display:table-footer-group }
+.page-break  { display: block; page-break-before: always; }
+  </style>
+</head>
+<body>
+  [% IF id_stafflist %]
+  [% stafflist = dksdb.prepare("select distinct(spd.id_staff),st.surname,st.prename,spd.id_reportperiod,spd.periodstart,spd.periodend from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod = ? and spd.id_staff in (${id_stafflist}) order by st.surname,st.prename,spd.periodstart asc;") %]
+  [% ELSE %]
+  [% sqlcmd = "select distinct(spd.id_staff),st.surname,st.prename,spd.id_reportperiod,spd.periodstart,spd.periodend from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod = ?  order by st.surname,st.prename,spd.periodstart asc;" %]
+  [% stafflist = dksdb.prepare("select distinct(spd.id_staff),st.surname,st.prename,spd.id_reportperiod,spd.periodstart,spd.periodend from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod = ?  order by st.surname,st.prename,spd.periodstart asc;") %]
+  [% END %]
+  [% staffmemberperiod = dksdb.prepare("select st.prename,st.surname,spd.* from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod= ? and spd.id_staff= ? order by spd.daydate asc;") %]
+  [% #sqlcmd %]
+  [% FOREACH wl = stafflist.execute(id_reportperiod) %]
+  <table>
+    <thead>
+      <tr ><th colspan="5">[% wl.periodstart %] - [% wl.periodend %] </th><th colspan="4"> [% wl.surname %] [% wl.prename %]</th></tr>
+      <tr><th>Semaine</th>
+      <th>Lundi</th>
+      <th>Mardi</th>
+      <th>Mecredi</th>
+      <th>Jeudi</th>
+      <th>Vendredi</th>
+      <th>Samedi</th>
+      <th>Dimanche</th>
+      <th>Totaux</th></tr>
+    </thead>
+    <tbody>
+      [% wdk = 0 %]
+      [% FOREACH pw = staffmemberperiod.execute(id_reportperiod,wl.id_staff) %]
+        [% wd = pw.weekdates.split(',') %]
+        [% IF wdk == 0 %]
+          [% dspwd = pw.dspweekdates.split(',') %]
+          <tr><th rowspan="2">[% pw.dspweekshort %]</th>
+          <th>[% dspwd.0 %]</th>
+          <th>[% dspwd.1 %]</th>
+          <th>[% dspwd.2 %]</th>
+          <th>[% dspwd.3 %]</th>
+          <th>[% dspwd.4 %]</th>
+          <th>[% dspwd.5 %]</th>
+          <th>[% dspwd.6 %]</th>
+          <th></th></tr><tr>
+        [% END %]
+
+        [% WHILE pw.daydate != wd.$wdk and wdk < 7 %]
+          <td>&nbsp;</td>
+          [% wdk = wdk + 1 %]
+        [% END %]
+
+        [% IF wdk < 7 %]
+          [% IF pw.timestart1 %]
+          <td>
+          <table class="tbinline">
+            <tr>
+              <td class="datavalues">[% pw.timestart1 %]</td>
+              <td class="datavalues">[% pw.timeend1 %]</td>
+              <td class="datavalues">[% IF pw.workhours %]T: [% pw.workhours %][% END %]</td>
+            </tr>
+            <tr>
+              <td class="datavalues"> [% IF pw.timestart2 %][% pw.timestart2 %][% END %]</td>
+              <td class="datavalues">[% IF pw.timestart2 %][% pw.timeend2 %][% END %]</td>
+              <td class="datavalues">[% IF pw.recuperationhours %]R: [% pw.recuperationhours %]<br/>[% END %]</td>
+            </tr>
+            <tr>
+              <td>&nbsp;</td>
+              <td></td>
+              <td class="datavalues">[% IF pw.vacancyhours %]C: [% pw.vacancyhours %]<br/>[% END %]</td>
+            </tr>
+            <tr>
+              <td></td>
+              <td class="datavalues">[% IF pw.timepause %]P: [% pw.timepause %][% END %]</td>
+              <td>[% IF pw.vacancyhours %]J: [% pw.dayhours %][% END %]</td>
+            </tr>
+            </table>
+            </td>
+          [% ELSE %]
+          <td>&nbsp;</td>
+          [% END %]  
+        [% END %]
+        
+        [% wdk = wdk + 1 %]
+        [% IF wdk >= 7 %]
+          <td class="datavalues">
+          <table  class="tbinline">
+            <!--<tr><td class="datavalues">[% IF pw.week_workhours && pw.week_workhours != "00:00" %]T: [% pw.week_workhours %][%END %]</td></tr>-->
+            <tr><td class="datavalues">&nbsp;[% IF pw.week_totalhours && pw.week_totalhours != "00:00"  %]S: [% pw.week_totalhours %][%END %]</td></tr>
+            <tr><td class="datavalues">&nbsp;[% IF pw.week_recuperationhours && pw.week_recuperationhours != "00:00" %]R: [% pw.week_recuperationhours %][%END %]</td></tr>
+            <tr><td class="datavalues">&nbsp;[% IF pw.week_vacancyhours && pw.week_vacancyhours != "00:00"  %]C: [% pw.week_vacancyhours %][%END %]</td></tr>
+            <tr><td class="datavalues">&nbsp;[% IF pw.week_diffhours && pw.week_diffhours != "00:00"  %]D: [% pw.week_diffhours %][%END %]</td></tr>
+          </table>
+          </td></tr>
+          [% wdk = 0 %]
+        [% END %]
+      [% END %]
+    </tbody>
+  </table>
+  <div class="page-break"></div>
+  [% END %]
+</body>
+</html>
\ No newline at end of file
index a5a78ed..20dd847 100644 (file)
@@ -152,7 +152,8 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
     if (exists($p->{schemata})){
       $schema = $db->securetext($p->{schemata});
     }
-    my $rid = $db->exec("DELETE FROM ".$schema.".".$db->securetext($p->{table})." WHERE id='".$db->securetext($p->{id})."';");
+    
+    my $rid = $db->exec("update  ".$schema.".".$db->securetext($p->{table})." set isdeleted=true WHERE id='".$db->securetext($p->{id})."';");
     if (keys(%{$rid}) > 0 ){
       $html->{result} = $rid->{0};
     }
@@ -268,8 +269,19 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
     $html->{sql} = $fnsql;
     $html->{result} = $db->queryarray($fnsql);
   }
+  elsif (exists($p->{fn}) && ($p->{fn} eq "deleterow")){
+      delete $p->{fn};
+      delete $p->{sid};
+      my $retid = undef;
+      my @sql = $db->create_ddl_delete($p);
+      foreach my $s (@sql){
+          $retid= $db->exec($s);
+      }
+      $html->{result}->{id} = $retid->{0};
+    }
   elsif (exists($p->{fn})){
-    #my $pfn = $p->{params};
+   my $pfn = $p->{params};
+   my $pfn = JSON::PP::decode_json($p->{params});
    my $schema = "public";
     if (exists($p->{schemata})){
       $schema = $db->securetext($p->{schemata});
@@ -283,7 +295,7 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
     }
     
     #$html->{params} = $pfn;
-    #$html->{sql} = $fnsql;
+    $html->{sql} = $fnsql;
     $html->{result} = $db->queryarray($fnsql);
   }
 }
index 67341ef..413b459 100644 (file)
@@ -60,7 +60,7 @@ sub createpdf(){
     }
     $cmd .= ' "'.$tmpreportpath.'/'.$template.'.html"';
     $cmd .= ' "'.$output.'"';
-    #print $cmd."\n";
+    print STDERR $cmd."\n";
     $r = system($cmd);
   }
   if (-e $output){
index 3aa6296..5551f80 100644 (file)
@@ -83,17 +83,23 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
   elsif (exists($p->{generate})){
     print $cgi->header(-type=>"application/json", -charset => "utf-8");
     #print Dumper($p->{data});
+    $html->{params} = $p;
     my $data = JSON::PP::decode_json($p->{data});
     my $reportpath =$sitecfg->{docroot}.$sitecfg->{datapath}.'reports/'.dirname($p->{generate});
     my $tmppath = $sitecfg->{docroot}.$sitecfg->{datapath}.'tmp/';
     my $output = $sitecfg->{docroot}.$sitecfg->{datapath}.'output/';
-    #print $reportpath."\n".$tmppath."\n".$output."\n".$output.dirname($p->{generate})."\n";
+    $html->{params} = $p;
+    $html->{options}->{reportpath} = $reportpath;
+    $html->{options}->{tmppath} = $tmppath;
+    $html->{options}->{output} = $output; 
+    # #print $reportpath."\n".$tmppath."\n".$output."\n".$output.dirname($p->{generate})."\n";
     if (! -d $tmppath) { make_path($tmppath);}
     if (! -d $output) { make_path($output);}
     if (! -d $output.dirname($p->{generate})){make_path($output.dirname($p->{generate}));}
-    #print "OUTPUT:".$output."\n";
+    # #print "OUTPUT:".$output."\n";
     my $rep = pdfreport->new({tmplpath => $reportpath, tmp => $tmppath});
     my ($result,$file) = $rep->createpdf(basename($p->{generate}),$output.dirname($p->{generate}).'/'.$p->{file},$data);
+    #my $file = $p->{file};
     $html->{result}->{file} = dirname($p->{generate}).'/'.basename($file);
   }
   elsif (exists($p->{open})){
index 8cc7738..bb20c84 100644 (file)
@@ -25,7 +25,7 @@
 <glyph unicode="&#xe90f;" glyph-name="documentsave" d="M345.584 354.72v-202.88h345.36v202.88zM533.952 557.568h56.752v-130.416h-56.752zM286.432 586.544h114.104v-186.55h231.83v186.55h35.629l82.102-82.093v-381.571h-463.664zM194.583 882.635v-869.291h634.898v674.562h-201.145v194.729zM121.52 960h548.147l232.877-227.99v-796.010h-781.024z" />
 <glyph unicode="&#xe910;" glyph-name="documents" d="M301.347 410.718v-155.408h72.277v82.877h267.51v-82.877h72.62v155.408zM74.104 686.18v-82.471h866.943v82.471l30.484-30.67c30.546-30.641 52.389-38.879 40.118-103.597-12.236-64.501-71.375-418.254-80.171-466.116-9.667-52.479-63.044-51.798-63.044-51.798h-721.747c0 0-53.375-0.68-63.009 51.798-8.796 47.863-67.967 401.616-80.204 466.116-12.266 64.717 9.571 72.956 40.115 103.597zM146.677 759.102h721.749v-103.59h-721.749zM249.767 862.691h515.569v-51.795h-515.569z" />
 <glyph unicode="&#xe911;" glyph-name="download" d="M896 224v-128c0-17.673-14.327-32-32-32v0h-704c-17.673 0-32 14.327-32 32v0 128c0 17.673 14.327 32 32 32v0h704c17.673 0 32-14.327 32-32v0zM485.961 340.455c5.876-8.154 15.345-13.4 26.039-13.4s20.163 5.246 25.974 13.305l0.065 0.095 177.818 248.945c3.727 5.164 5.961 11.621 5.961 18.6 0 17.673-14.327 32-32 32h-81.818v192c0 17.673-14.327 32-32 32v0h-128c-17.673 0-32-14.327-32-32v0-192h-81.818c-17.673 0-32-14.327-32-32 0-6.978 2.234-13.435 6.025-18.694l-0.065 0.095z" />
-<glyph unicode="&#xe912;" glyph-name="duplicate" d="M736 464v144l160-160h-144c-8.837 0-16 7.163-16 16v0zM352 640v176c0 8.837-7.163 16-16 16v0h-144c-17.673 0-32-14.327-32-32v0-480c0-17.673 14.327-32 32-32v0h224v288c0.116 11.518 2.262 22.501 6.096 32.655l-0.217-0.655h-37.879c-17.673 0-32 14.327-32 32v0zM672 416v176c0 8.837-7.163 16-16 16v0h-144c-17.673 0-32-14.327-32-32v0-480c0-17.673 14.327-32 32-32v0h352c17.673 0 32 14.327 32 32v0 272c0 8.837-7.163 16-16 16v0h-176c-17.673 0-32 14.327-32 32v0zM416 832v-144c0-8.837 7.163-16 16-16v0h144z" />
+<glyph unicode="&#xe912;" glyph-name="duplicate1" d="M736 464v144l160-160h-144c-8.837 0-16 7.163-16 16v0zM352 640v176c0 8.837-7.163 16-16 16v0h-144c-17.673 0-32-14.327-32-32v0-480c0-17.673 14.327-32 32-32v0h224v288c0.116 11.518 2.262 22.501 6.096 32.655l-0.217-0.655h-37.879c-17.673 0-32 14.327-32 32v0zM672 416v176c0 8.837-7.163 16-16 16v0h-144c-17.673 0-32-14.327-32-32v0-480c0-17.673 14.327-32 32-32v0h352c17.673 0 32 14.327 32 32v0 272c0 8.837-7.163 16-16 16v0h-176c-17.673 0-32 14.327-32 32v0zM416 832v-144c0-8.837 7.163-16 16-16v0h144z" />
 <glyph unicode="&#xe913;" glyph-name="edit" d="M150.64 131.024l196.688-112.934-177.876-82.090zM440.518 757.632l319.786-183.541-245.536-427.755-18.294 54.689-93.831 9.688-15.939 58.789-92.020 3.171-25.749 64.455-73.896-7.251zM594.229 959.985c8.817 0.212 17.429-1.772 25.181-6.213l226.455-129.975c27.498-15.797 33.665-56.711 13.811-91.334l-26.999-47.086-326.116 187.209 26.999 47.086c14.27 24.886 38.139 39.772 60.67 40.314z" />
 <glyph unicode="&#xe914;" glyph-name="excel" d="M789.441 241.11v-102.216h168.092v102.216zM789.441 373.99v-102.216h168.092v102.216zM789.441 506.871v-102.216h168.092v102.216zM345.376 635.776l-51.108-127.204-43.156 115.844h-69.282l70.42-166.952-78.365-165.819h68.144l51.108 118.12 51.108-129.471h74.959l-86.318 182.848 80.635 172.633zM789.441 639.751v-102.216h168.092v102.216zM789.441 772.631v-102.216h168.092v102.216zM608.293 830.554h402.053c7.527 0 13.629-6.102 13.629-13.629v-729.139c0-7.533-6.102-13.625-13.629-13.625h-402.053v64.733h149.918v102.216h-149.918v30.665h149.918v102.216h-149.918v30.665h149.918v102.216h-149.918v30.663h149.918v102.216h-149.918v30.665h149.918v102.216h-149.918zM589.444 943.748v-991.49l-589.444 102.216v787.058z" />
 <glyph unicode="&#xe915;" glyph-name="expand" d="M139.462 308.298h744.932l-372.468-372.442zM511.926 960l372.468-372.442h-744.932z" />
 <glyph unicode="&#xe946;" glyph-name="sendemail" d="M27.191 706.781c-25.772-241.871 124.762-457.551 339.243-483.692 130.086-15.899 254.021 41.716 338.899 143.179l-99.362 77.659 417.947 168.715-62.835-446.319-94.675 73.987c-102.159-126.221-264.94-198.635-437.993-177.524-267.144 32.56-457.349 275.497-424.787 542.664 4.313 35.279 12.355 69.116 23.562 101.329zM119.785 802.29l301.541-301.517c9.96-9.956 26.039-9.956 35.971 0l300.424 300.37c6.124-4.049 10.197-10.971 10.197-18.876v-222.443l-254.765-102.9 107.427-83.946h-452.099c-22.788 22.312-43.559 47.202-61.051 74.628v334.661c0 8.758 5.061 16.291 12.355 20.023zM154.8 854.39h569.177c-0.319-5.431-2.529-10.81-6.738-14.938l-263.022-261.552c-8.813-8.573-22.738-8.625-31.099-0.080l-262.357 260.383c-4.368 4.42-6.284 10.331-5.962 16.186z" />
 <glyph unicode="&#xe947;" glyph-name="exit" d="M826.547 713.055l174.681-174.731-174.681-174.856v116.127h-324.501v117.521h324.501zM22.578 960h748.846v-322.493h-85.415v233.478h-527.32l143.325-93.695v-571.717h383.995v233.478h85.415v-322.493h-469.41v-180.559l-279.436 180.559z" />
 <glyph unicode="&#xe948;" glyph-name="key" d="M738.8 883.463c-8.706 0-17.411-3.312-24.038-9.937-13.313-13.315-13.313-34.816 0-48.13l148.772-148.899c13.318-13.25 34.83-13.25 48.143 0.064 13.308 13.25 13.308 34.816-0.067 48.13l-148.768 148.835c-6.63 6.625-15.336 9.937-24.042 9.937zM711.352 960c26.51 0.008 53.012-10.118 73.233-30.404l177.155-177.025c40.447-40.509 40.447-106.138 0-146.523l-213.276-213.222c-40.389-40.436-106.026-40.436-146.535 0l-20.948 20.956-146.829-147.025-75.136 22.819 16.939-80.955-78.011 19.881 12.629-85.271-86.701 11.249 16.942-80.95-78.887 18.878 15.316-82.52-74.011-74.080-81.386 174.416 431.31 431.342 110.665-110.618-138.919 138.968c-40.498 40.383-40.498 106.017 0 146.523l213.17 213.157c20.255 20.253 46.773 30.396 73.283 30.404z" />
+<glyph unicode="&#xe949;" glyph-name="duplicate" d="M10.24 553.574v-396.186h104.448v54.497h-52.224v685.67h685.67v-52.224h54.477v104.448h-792.371v-396.206zM168.038 790.374c-0.686-1.587-0.911-191.846-0.686-422.973l0.686-420.024 845.722-1.137-0.451 422.748-0.686 422.973-421.837 0.676c-336.251 0.461-422.072 0.010-422.748-2.263zM959.273 369.674v-368.937h-737.884v737.874h737.874v-368.937zM538.563 580.588c-0.911-0.911-1.587-36.782-1.587-79.688v-77.875l-78.787-0.451-79.012-0.686v-104.448l78.787-0.686 79.012-0.451 0.451-79.012 0.686-78.787 52.9-0.686 52.675-0.451v158.925h158.925l-0.451 52.9-0.686 52.675-78.787 0.686-79.012 0.451-0.451 79.012-0.686 78.787-51.313 0.676c-28.14 0.246-51.753-0.205-52.664-0.891z" />
+<glyph unicode="&#xe94a;" glyph-name="paste" d="M605.659 64.886h204.831v-28.466h-204.831zM605.659 156.302h204.831v-28.481h-204.831zM550.693 412.216c-5.984 0-10.938-4.925-10.938-10.968v-410.451c0-6.055 4.955-10.969 10.938-10.969h307.123c6.043 0 10.967 4.913 10.967 10.969v266.799l-81.768 0.329c-69.89-5.489-71.762 57.844-71.762 57.844v96.447zM550.69 456.091h184.737l39.994-42.204h0.562l96.757-102.552 0.057-0.204 39.816-42.017v-278.318c0-30.288-24.536-54.812-54.81-54.812h-307.112c-30.276 0-54.81 24.524-54.81 54.812v410.453c0 30.265 24.534 54.842 54.81 54.842zM473.656 917.935c-30.071 0-54.464-23.086-54.464-51.573 0-28.453 24.394-51.569 54.464-51.569 30.074 0 54.464 23.116 54.464 51.569 0 28.487-24.39 51.573-54.464 51.573zM473.656 960c52.904 0 96.089-39.324 98.736-88.812l0.128-4.816h83.897v-29.951h179.521v-404.837l-76.399 80.603h-3.089v225.206h-100.033v-100.188h-365.509v100.188h-100.049v-694.723h248.938v-51.875c0-7.646 0.777-15.114 2.256-22.328l0.886-3.83h-331.552v871.785h179.521v29.951h83.882l0.129 4.816c2.647 49.488 45.833 88.812 98.736 88.812z" />
+<glyph unicode="&#xe94b;" glyph-name="copy" d="M614.832 590.144v-132.453c0 0-2.565-87.003-98.572-79.45l-112.324-0.455v-366.468c0-8.312 6.771-15.062 15.082-15.062h421.761c8.278 0 15.061 6.75 15.061 15.062v563.764c0 8.289-6.782 15.062-15.061 15.062zM436.672 886.928v-160.666c0 0-3.093-105.514-119.549-96.373l-136.227-0.54v-444.483c0-10.086 8.22-18.258 18.305-18.258h144.511v226.987l54.706 57.72 0.080 0.29 132.935 140.843h0.746l54.925 57.952h141.888v218.278c0 10.031-8.205 18.25-18.259 18.25zM403.040 960h307.691c50.448 0 91.366-40.914 91.366-91.32v-218.28h38.685c41.603 0 75.331-33.742 75.331-75.313v-563.775c0-41.61-33.728-75.312-75.331-75.312h-421.76c-41.593 0-75.309 33.703-75.309 75.312v82.224h-144.516c-50.46 0-91.356 40.875-91.356 91.335v463.677l66.357 70.010 0.095 0.341 161.216 170.811h0.911z" />
+<glyph unicode="&#xe94c;" glyph-name="replace" d="M202.716 688.95l202.812-202.848h-127.928v-257.484h236.225v-137.025h-373.306v394.509h-140.518zM474.506 804.216h412.622v-378.822h137.016l-202.713-202.789-202.809 202.789h131.457v241.798h-275.572z" />
+<glyph unicode="&#xe94d;" glyph-name="week" d="M528.871 122.241c-5.104 0-9.357-4.98-9.357-11.12v-101.089c0-6.14 4.253-11.12 9.357-11.12h95.404c5.245 0 9.497 4.98 9.497 11.12v101.089c0 6.14-4.252 11.12-9.497 11.12zM404.547 122.241c-5.245 0-9.499-4.98-9.499-11.12v-101.089c0-6.14 4.253-11.12 9.499-11.12h95.404c5.103 0 9.357 4.98 9.357 11.12v101.089c0 6.14-4.255 11.12-9.357 11.12zM280.080 122.241c-5.245 0-9.499-4.98-9.499-11.12v-101.089c0-6.14 4.253-11.12 9.499-11.12h95.404c5.245 0 9.499 4.98 9.499 11.12v101.089c0 6.14-4.253 11.12-9.499 11.12zM155.614 122.241c-5.103 0-9.355-4.98-9.355-11.12v-101.089c0-6.14 4.252-11.12 9.355-11.12h95.405c5.247 0 9.499 4.98 9.499 11.12v101.089c0 6.14-4.252 11.12-9.499 11.12zM777.801 258.021c-5.245 0-9.497-4.98-9.497-11.12v-101.089c0-6.14 4.252-11.121 9.497-11.121h95.404c5.245 0 9.499 4.981 9.499 11.121v101.089c0 6.14-4.253 11.12-9.499 11.12zM653.335 258.021c-5.245 0-9.497-4.98-9.497-11.12v-101.089c0-6.14 4.252-11.121 9.497-11.121h95.407c5.245 0 9.496 4.981 9.496 11.121v101.089c0 6.14-4.251 11.12-9.496 11.12zM528.871 258.021c-5.104 0-9.357-4.98-9.357-11.12v-101.089c0-6.14 4.253-11.121 9.357-11.121h95.404c5.245 0 9.497 4.981 9.497 11.121v101.089c0 6.14-4.252 11.12-9.497 11.12zM404.547 258.021c-5.245 0-9.499-4.98-9.499-11.12v-101.089c0-6.14 4.253-11.121 9.499-11.121h95.404c5.103 0 9.357 4.981 9.357 11.121v101.089c0 6.14-4.255 11.12-9.357 11.12zM280.080 258.021c-5.245 0-9.499-4.98-9.499-11.12v-101.089c0-6.14 4.253-11.121 9.499-11.121h95.404c5.245 0 9.499 4.981 9.499 11.121v101.089c0 6.14-4.253 11.12-9.499 11.12zM155.614 258.021c-5.103 0-9.355-4.98-9.355-11.12v-101.089c0-6.14 4.252-11.121 9.355-11.121h95.405c5.247 0 9.499 4.981 9.499 11.121v101.089c0 6.14-4.252 11.12-9.499 11.12zM777.801 393.972c-5.245 0-9.497-4.981-9.497-10.959v-101.252c0-6.144 4.252-11.124 9.497-11.124h95.404c5.245 0 9.499 4.98 9.499 11.124v101.252c0 5.977-4.253 10.959-9.499 10.959zM653.335 393.972c-5.245 0-9.497-4.981-9.497-10.959v-101.252c0-6.144 4.252-11.124 9.497-11.124h95.407c5.245 0 9.496 4.98 9.496 11.124v101.252c0 5.977-4.251 10.959-9.496 10.959zM528.871 393.972c-5.104 0-9.357-4.981-9.357-10.959v-101.252c0-6.144 4.253-11.124 9.357-11.124h95.404c5.245 0 9.497 4.98 9.497 11.124v101.252c0 5.977-4.252 10.959-9.497 10.959zM404.547 393.972c-5.245 0-9.499-4.981-9.499-10.959v-101.252c0-6.144 4.253-11.124 9.499-11.124h95.404c5.103 0 9.357 4.98 9.357 11.124v101.252c0 5.977-4.255 10.959-9.357 10.959zM280.080 393.972c-5.245 0-9.499-4.981-9.499-10.959v-101.252c0-6.144 4.253-11.124 9.499-11.124h95.404c5.245 0 9.499 4.98 9.499 11.124v101.252c0 5.977-4.253 10.959-9.499 10.959zM155.614 393.972c-5.103 0-9.355-4.981-9.355-10.959v-101.252c0-6.144 4.252-11.124 9.355-11.124h95.405c5.247 0 9.499 4.98 9.499 11.124v101.252c0 5.977-4.252 10.959-9.499 10.959zM777.801 527.093c-5.245 0-9.497-4.977-9.497-11.12v-101.252c0-5.979 4.252-10.959 9.497-10.959h95.404c5.245 0 9.499 4.98 9.499 10.959v101.252c0 6.143-4.253 11.12-9.499 11.12zM653.335 527.093c-5.245 0-9.497-4.977-9.497-11.12v-101.252c0-5.979 4.252-10.959 9.497-10.959h95.407c5.245 0 9.496 4.98 9.496 10.959v101.252c0 6.143-4.251 11.12-9.496 11.12zM528.871 527.093c-5.104 0-9.357-4.977-9.357-11.12v-101.252c0-5.979 4.253-10.959 9.357-10.959h95.404c5.245 0 9.497 4.98 9.497 10.959v101.252c0 6.143-4.252 11.12-9.497 11.12zM404.547 527.093c-5.245 0-9.499-4.977-9.499-11.12v-101.252c0-5.979 4.253-10.959 9.499-10.959h95.404c5.103 0 9.357 4.98 9.357 10.959v101.252c0 6.143-4.255 11.12-9.357 11.12zM103.731 908.379v-308.082h804.773v308.082zM67.865 960h888.271c5.245 0 9.497-4.981 9.497-11.12v-975.365c0-6.144-1.701-15.603-3.828-21.248l-9.496-11.619c-4.68-2.492-12.76-4.648-18.004-4.648h-844.608c-5.247 0-13.326 2.156-18.004 4.648l-9.64 11.619c-1.985 5.645-3.686 15.104-3.686 21.248v975.365c0 6.14 4.254 11.12 9.499 11.12z" />
+<glyph unicode="&#xe94e;" glyph-name="baggage" d="M733.725 664.051v-522.022h122.802v522.022zM170.739 664.051v-522.022h122.77v522.022zM438.264 769.338l-22.849-67.612h194.723l-24.368 67.612zM415.655 791.666h192.707l51.857-89.94h232.036c72.769 0 131.762-54.978 131.762-122.813v-351.734c0-67.85-58.993-122.843-131.762-122.843h-760.493c-72.753 0-131.763 54.993-131.763 122.843v351.734c0 67.835 59.009 122.813 131.763 122.813h232.036z" />
+<glyph unicode="&#xe94f;" glyph-name="trash" d="M191.166 630.621h136.774v-577.939h105.019v577.939h157.78v-577.939h105.083v577.939h136.772v-694.765h-641.428zM126.98 847.182h769.8v-99.472h-769.8zM335.572 960h352.663v-90.878h-352.663z" />
+<glyph unicode="&#xe950;" glyph-name="erase" d="M88.57 4.16h886.236c18.731 0 34.042-15.353 34.042-34.060 0-18.79-15.311-34.1-34.042-34.1h-886.236c-18.729 0-34.042 15.31-34.042 34.1 0 18.707 15.313 34.060 34.042 34.060zM331.535 590.147l-248.272-249.935 157.96-161.957c13.749-13.833 48.813-37.771 68.188-37.771h104.73c19.416 0 46.979 23.937 60.73 37.771l131.647 136.812zM629.682 960c17.438 0 34.877-7.814 48.146-21.084l278.586-279.645c26.499-26.457 26.499-72.207 0-98.729l-425.897-430.494c-26.523-26.605-78.815-57.729-116.377-57.729h-104.73c-37.459 0-89.815 31.125-116.375 57.729l-157.96 167.29c-26.5 26.499-26.5 69.935 0 96.332l546.42 546.452c13.166 13.293 30.711 19.877 48.187 19.877z" />
 </font></defs></svg>
\ No newline at end of file
index 678044b..7d46fec 100644 (file)
Binary files a/webapp/static/css/fonts/pot.ttf and b/webapp/static/css/fonts/pot.ttf differ
index c1b2fbd..9cff6eb 100644 (file)
Binary files a/webapp/static/css/fonts/pot.woff and b/webapp/static/css/fonts/pot.woff differ
index d091593..4d5e6d4 100644 (file)
@@ -1,9 +1,9 @@
 @font-face {
   font-family: 'pot';
   src:
-    url('fonts/pot.ttf?26rj7t') format('truetype'),
-    url('fonts/pot.woff?26rj7t') format('woff'),
-    url('fonts/pot.svg?26rj7t#pot') format('svg');
+    url('fonts/pot.ttf?rbi3uv') format('truetype'),
+    url('fonts/pot.woff?rbi3uv') format('woff'),
+    url('fonts/pot.svg?rbi3uv#pot') format('svg');
   font-weight: normal;
   font-style: normal;
   font-display: block;
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-duplicate:before {
+  content: "\e949";
+}
+.icon-replace:before {
+  content: "\e94c";
+}
+.icon-week:before {
+  content: "\e94d";
+}
+.icon-baggage:before {
+  content: "\e94e";
+}
+.icon-trash:before {
+  content: "\e94f";
+}
+.icon-erase:before {
+  content: "\e950";
+}
+.icon-paste:before {
+  content: "\e94a";
+}
+.icon-copy:before {
+  content: "\e94b";
+}
 .icon-sendemail:before {
   content: "\e946";
 }
 .icon-download:before {
   content: "\e911";
 }
-.icon-duplicate:before {
+.icon-duplicate1:before {
   content: "\e912";
 }
 .icon-edit:before {
diff --git a/webapp/static/css/module.css b/webapp/static/css/module.css
deleted file mode 100644 (file)
index ca08b42..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/* input::-webkit-calendar-picker-indicator{\r
-  display: none;\r
-}\r
-And to hide the prompt:\r
-\r
-input[type="date"]::-webkit-input-placeholder{ \r
-  visibility: hidden !important;\r
-} */
\ No newline at end of file
index c2a3746..57aa9db 100644 (file)
@@ -543,28 +543,6 @@ div.BodySectionHeader
        font-weight: bold;
 }
 
-button.Button_ImgPlacer
-{
-
-       background-color: rgba(0%,0%,0%,0);
-       border-top-style: none;
-       border-right-style: none;
-       border-bottom-style: none;
-       border-left-style: none;
-
-       font-family: -fm-font-family(Arial,Arial-BoldMT);
-       font-weight: bold;
-       font-size: 10pt;
-       color: #fff;
-}
-button.Button_ImgPlacer .inner_border
-{
-       padding-top: 0pt;
-       padding-right: 0pt;
-       padding-bottom: 0pt;
-       padding-left: 0pt;
-}
-
 
 div.PageHeadTitle
 {
diff --git a/webapp/static/css/theme.last.css b/webapp/static/css/theme.last.css
deleted file mode 100644 (file)
index 65f11eb..0000000
+++ /dev/null
@@ -1,1027 +0,0 @@
-/* W3PRO.CSS 4.13 June 2019 by Jan Egil and Borge Refsnes */
-html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
-/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
-html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}
-html,body {-webkit-user-select: none;-ms-user-select: none;user-select: none;-moz-user-select:none;}
-article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}
-audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}
-audio:not([controls]){display:none;height:0}[hidden],template{display:none}
-a{background-color:transparent}a:active,a:hover{outline-width:0}
-abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
-b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}
-small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
-sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
-code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
-button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
-button,input{overflow:visible}button,select{text-transform:none}
-button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
-button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
-button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
-fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
-legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
-[type=checkbox],[type=radio]{padding:0}
-[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
-[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
-[type=search]::-webkit-search-decoration{-webkit-appearance:none}
-::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
-/* End extract */
-/* html,body {
-       background-color: #52638e;
-} */
-html,body{font-family:Verdana,sans-serif;font-size:9pt;line-height:1.5}html{overflow-x:hidden}
-h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}.serif{font-family:serif}
-h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin: 0}.wide{letter-spacing:4px}
-hr{border:0;border-top:1px solid #eee;margin:20px 0}
-.img{max-width:100%;height:auto; vertical-align:middle}a{color:inherit}
-.table,.table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.table-all{border:1px solid #ccc}
-.bordered tr,.table-all tr{border-bottom:1px solid #ddd}.striped tbody tr:nth-child(even){background-color:#f1f1f1}
-.table-all tr:nth-child(odd){background-color:#fff}.table-all tr:nth-child(even){background-color:#f1f1f1}
-.hoverable tbody tr:hover,.ul.hoverable li:hover{background-color:#ccc}.centered tr th,.centered tr td{text-align:center}
-.table td,.table th,.table-all td,.table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
-.table th:first-child,.table td:first-child,.table-all th:first-child,.table-all td:first-child{padding-left:16px}
-.btn,.button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap ;border-radius: 3px; color:#fff!important;background-color:#293146!important}
-.btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
-.btn,.button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}   
-.disabled,.btn:disabled,.button:disabled{cursor:not-allowed;opacity:0.3}.disabled *,:disabled *{pointer-events:none}
-.btn.disabled:hover,.btn:disabled:hover{box-shadow:none}
-.badge,.tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.badge{border-radius:50%}
-.ul{list-style-type:none;padding:0;margin:0}.ul li{padding:8px 16px;border-bottom:1px solid #ddd}.ul li:last-child{border-bottom:none}
-.tooltip,.display-container{position:relative}.tooltip .text{display:none}.tooltip:hover .text{display:inline-block}
-.ripple:active{opacity:0.5}.ripple{transition:opacity 0s}
-.input{padding:2px;display:block;border: 0;border-bottom: 1px solid #ccc;width:100%;background-color: #fff;}/*#e8f0fe*/
-.select{padding:2px 0; display:block;width:100%;border:1px solid #ccc;background-color: #fff;}
-.dropdown-click,.dropdown-hover{position:relative;display:inline-block;cursor:pointer}
-.dropdown-hover:hover .dropdown-content{display:block; }
-.dropdown-hover:first-child,.dropdown-click:hover{background-color:#ccc;color:#000}
-.dropdown-hover:hover > .button:first-child,.dropdown-click:hover > .button:first-child{background-color:#ccc;color:#000}
-.dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
-.check,.radio{width:24px;height:24px;position:relative;top:6px}
-.sidebar{height:100%;width:160px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
-.bar-block .dropdown-hover,.bar-block .dropdown-click{width:100%}
-.bar-block .dropdown-hover .dropdown-content,.bar-block .dropdown-click .dropdown-content{min-width:100%}
-.bar-block .dropdown-hover .button,.bar-block .dropdown-click .button{width:100%;text-align:left;padding:8px 16px}
-.main,#main{transition:margin-left .4s}
-.modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
-.modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
-.bar{width:100%;overflow:hidden}.center .bar{display:inline-block;width:auto}
-.bar .bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
-.bar .dropdown-hover,.bar .dropdown-click{position:static;float:left}
-.bar .button{white-space:normal}
-.bar-block .bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
-.bar-block.center .bar-item{text-align:center}.block{display:block;width:100%}
-.responsive{display:block;overflow-x:auto}
-.container:after,.container:before,.datapanel:after,.datapanel:before,.row:after,.row:before,.row-padding:after,.row-padding:before,
-.cell-row:before,.cell-row:after,.clear:after,.clear:before,.bar:before,.bar:after{content:"";display:table;clear:both}
-.col,.half,.third,.twothird,.threequarter,.quarter,.fifth,.twofifth,.threefifth,.fourfifth{float:left;width:100%}
-.col.s1{width:8.33333%}.col.s2{width:16.66666%}.col.s3{width:24.99999%}.col.s4{width:33.33333%}
-.col.s5{width:41.66666%}.col.s6{width:49.99999%}.col.s7{width:58.33333%}.col.s8{width:66.66666%}
-.col.s9{width:74.99999%}.col.s10{width:83.33333%}.col.s11{width:91.66666%}.col.s12{width:99.99999%}
-@media (min-width:601px){.col.m1{width:8.33333%}.col.m2{width:16.66666%}.col.m3,.quarter{width:24.99999%}.col.m4,.third{width:33.33333%}.fifth{width:20%;min-width:100px}
-.col.m5{width:41.66666%}.col.m6,.half{width:49.99999%}.col.m7{width:58.33333%}.col.m8,.twothird{width:66.66666%}
-.col.m9,.threequarter{width:74.99999%}.col.m10{width:83.33333%}.col.m11{width:91.66666%}.col.m12{width:99.99999%}.twofifth{width:40%}.threefifth{width:60%}.fourfifth{width:80%}}
-@media (min-width:993px){.col.l1{width:8.33333%}.col.l2{width:16.66666%}.col.l3{width:24.99999%}.col.l4{width:33.33333%}
-.col.l5{width:41.66666%}.col.l6{width:49.99999%}.col.l7{width:58.33333%}.col.l8{width:66.66666%}
-.col.l9{width:74.99999%}.col.l10{width:83.33333%}.col.l11{width:91.66666%}.col.l12{width:99.99999%}}
-.rest{overflow:hidden}.stretch{margin-left:-16px;margin-right:-16px}
-.content,.auto{margin-left:auto;margin-right:auto}.content{max-width:980px}.auto{max-width:1140px}
-.cell-row{display:table;width:100%}.cell{display:table-cell}
-.cell-top{vertical-align:top}.cell-middle{vertical-align:middle}.cell-bottom{vertical-align:bottom}
-.hide{display:none!important}.show-block,.show{display:block!important}.show-inline-block{display:inline-block!important}
-@media (max-width:1205px){.auto{max-width:95%}}
-@media (max-width:600px){.modal-content{margin:0 10px;width:auto!important}.modal{padding-top:30px}
-.dropdown-hover.mobile .dropdown-content,.dropdown-click.mobile .dropdown-content{position:relative}   
-.hide-small{display:none!important}.mobile{display:block;width:100%!important}.bar-item.mobile,.dropdown-hover.mobile,.dropdown-click.mobile{text-align:center}
-.dropdown-hover.mobile,.dropdown-hover.mobile .btn,.dropdown-hover.mobile .button,.dropdown-click.mobile,.dropdown-click.mobile .btn,.dropdown-click.mobile .button{width:100%}}
-@media (max-width:768px){.modal-content{width:500px}.modal{padding-top:50px}}
-@media (min-width:993px){.modal-content{width:900px}.hide-large{display:none!important}.sidebar.collapse{display:block!important}}
-@media (max-width:992px) and (min-width:601px){.hide-medium{display:none!important}}
-@media (max-width:992px){.sidebar.collapse{display:none}.main{margin-left:0!important;margin-right:0!important}.auto{max-width:100%}}
-.top,.bottom{position:fixed;width:100%;z-index:1}.top{top:0}.bottom{bottom:0}
-.overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
-.display-topleft{position:absolute;left:0;top:0}.display-topright{position:absolute;right:0;top:0}
-.display-bottomleft{position:absolute;left:0;bottom:0}.display-bottomright{position:absolute;right:0;bottom:0}
-.display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
-.display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
-.display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
-.display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-container:hover .display-hover{display:block}.display-container:hover span.display-hover{display:inline-block}.display-hover{display:none}
-.display-position{position:absolute}
-.circle{border-radius:50%}
-.round-small{border-radius:2px}.round,.round-medium{border-radius:4px}.round-large{border-radius:8px}.round-xlarge{border-radius:16px}.round-xxlarge{border-radius:32px}
-.row-padding,.row-padding>.half,.row-padding>.third,.row-padding>.twothird,.row-padding>.threequarter,.row-padding>.quarter,.row-padding>.col{padding:0 8px}
-.container,.datapanel{padding:0.01em 8px}.datapanel{margin-top:8px;margin-bottom:8px}
-.code,.codespan{font-family:Consolas,"courier new";font-size:16px}
-.code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
-.codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
-.card,.card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16)}
-.card-4,.hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
-.spin{animation:spin 2s infinite linear}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
-.animate-fading{animation:fading 2s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
-.animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
-.animate-top{position:relative;animation:animatetop 1s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
-.animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
-.animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
-.animate-bottom{position:relative;animation:animatebottom 1s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
-.animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
-.animate-input{transition:width 0.4s ease-in-out}.animate-input:focus{width:100%!important}
-.opacity,.hover-opacity:hover{opacity:0.60}.opacity-off,.hover-opacity-off:hover{opacity:1}
-.opacity-max{opacity:0.25}.opacity-min{opacity:0.75}
-.greyscale-max,.grayscale-max,.hover-greyscale:hover,.hover-grayscale:hover{filter:grayscale(100%)}
-.greyscale,.grayscale{filter:grayscale(75%)}.greyscale-min,.grayscale-min{filter:grayscale(50%)}
-.sepia{filter:sepia(75%)}.sepia-max,.hover-sepia:hover{filter:sepia(100%)}.sepia-min{filter:sepia(50%)}
-.tiny{font-size:10px!important}.small{font-size:12px!important}.medium{font-size:15px!important}.large{font-size:18px!important}
-.xlarge{font-size:24px!important}.xxlarge{font-size:36px!important}.xxxlarge{font-size:48px!important}.jumbo{font-size:64px!important}
-.left-align{text-align:left!important}.right-align{text-align:right!important}.justify{text-align:justify!important}.center{text-align:center!important}
-.border-0{border:0!important}.border{border:1px solid #ccc!important}
-.border-top{border-top:1px solid #ccc!important}.border-bottom{border-bottom:1px solid #ccc!important}
-.border-left{border-left:1px solid #ccc!important}.border-right{border-right:1px solid #ccc!important}
-.topbar{border-top:6px solid #ccc!important}.bottombar{border-bottom:6px solid #ccc!important}
-.leftbar{border-left:6px solid #ccc!important}.rightbar{border-right:6px solid #ccc!important}
-.section,.code{margin-top:16px!important;margin-bottom:16px!important}
-.margin{margin:16px!important}.margin-top{margin-top:16px!important}.margin-bottom{margin-bottom:16px!important}
-.margin-left{margin-left:16px!important}.margin-right{margin-right:16px!important}
-.padding-small{padding:4px 8px!important}.padding{padding:8px 16px!important}.padding-large{padding:12px 24px!important}
-.padding-16{padding-top:16px!important;padding-bottom:16px!important}.padding-24{padding-top:24px!important;padding-bottom:24px!important}
-.padding-32{padding-top:32px!important;padding-bottom:32px!important}.padding-48{padding-top:48px!important;padding-bottom:48px!important}
-.padding-64{padding-top:64px!important;padding-bottom:64px!important}
-.left{float:left!important}.right{float:right!important}
-.button:hover{color:#fff!important;background-color:#343434!important}
-.transparent,.hover-none:hover{background-color:transparent!important}
-.hover-none:hover{box-shadow:none!important}
-/* DEFAULT COLORS */
-.amber,.hover-amber:hover{color:#000!important;background-color:#ffc107!important}
-.aqua,.hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
-.blue,.hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
-.light-blue,.hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
-.brown,.hover-brown:hover{color:#fff!important;background-color:#795548!important}
-.cyan,.hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
-.blue-grey,.hover-blue-grey:hover{color:#fff!important;background-color:#293146!important}
-.green,.hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
-.light-green,.hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
-.indigo,.hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
-.khaki,.hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
-.lime,.hover-lime:hover{color:#000!important;background-color:#cddc39!important}
-.orange,.hover-orange:hover{color:#000!important;background-color:#ff9800!important}
-.deep-orange,.hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
-.pink,.hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
-.purple,.hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
-.deep-purple,.hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
-.red,.hover-red:hover{color:#fff!important;background-color:#f44336!important}
-.sand,.hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
-.teal,.hover-teal:hover{color:#fff!important;background-color:#009688!important}
-.yellow,.hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
-.white,.hover-white:hover{color:#000!important;background-color:#fff!important}
-.black,.hover-black:hover{color:#fff!important;background-color:#000!important}
-.grey,.hover-grey:hover{color:#000!important;background-color:#c6c6c6!important}
-.light-grey,.hover-light-grey:hover{color:#000!important;background-color:#f1f1f1!important}
-.dark-grey,.hover-dark-grey:hover{color:#fff!important;background-color:#616161!important}
-.pale-red,.hover-pale-red:hover{color:#000!important;background-color:#ffe7e7!important}.pale-green,.hover-pale-green:hover{color:#000!important;background-color:#e7ffe7!important}
-.pale-yellow,.hover-pale-yellow:hover{color:#000!important;background-color:#ffffd7!important}.pale-blue,.hover-pale-blue:hover{color:#000!important;background-color:#e7ffff!important}
-.text-align-right { text-align: right;}
-.text-amber,.hover-text-amber:hover{color:#ffc107!important}
-.text-aqua,.hover-text-aqua:hover{color:#00ffff!important}
-.text-blue,.hover-text-blue:hover{color:#2196F3!important}
-.text-light-blue,.hover-text-light-blue:hover{color:#87CEEB!important}
-.text-brown,.hover-text-brown:hover{color:#795548!important}
-.text-cyan,.hover-text-cyan:hover{color:#00bcd4!important}
-.text-blue-grey,.hover-text-blue-grey:hover{color:#607d8b!important}
-.text-green,.hover-text-green:hover{color:#4CAF50!important}
-.text-light-green,.hover-text-light-green:hover{color:#8bc34a!important}
-.text-indigo,.hover-text-indigo:hover{color:#3f51b5!important}
-.text-khaki,.hover-text-khaki:hover{color:#b4aa50!important}
-.text-lime,.hover-text-lime:hover{color:#cddc39!important}
-.text-orange,.hover-text-orange:hover{color:#ff9800!important}
-.text-deep-orange,.hover-text-deep-orange:hover{color:#ff5722!important}
-.text-pink,.hover-text-pink:hover{color:#e91e63!important}
-.text-purple,.hover-text-purple:hover{color:#9c27b0!important}
-.text-deep-purple,.hover-text-deep-purple:hover{color:#673ab7!important}
-.text-red,.hover-text-red:hover{color:#f44336!important}
-.text-sand,.hover-text-sand:hover{color:#fdf5e6!important}
-.text-teal,.hover-text-teal:hover{color:#009688!important}
-.text-yellow,.hover-text-yellow:hover{color:#d2be0e!important}
-.text-white,.hover-text-white:hover{color:#fff!important}
-.text-black,.hover-text-black:hover{color:#000!important}
-.text-grey,.hover-text-grey:hover{color:#757575!important}
-.text-light-grey,.hover-text-light-grey:hover{color:#f1f1f1!important}
-.text-dark-grey,.hover-text-dark-grey:hover{color:#3a3a3a!important}
-.border-amber,.hover-border-amber:hover{border-color:#ffc107!important}
-.border-aqua,.hover-border-aqua:hover{border-color:#00ffff!important}
-.border-blue,.hover-border-blue:hover{border-color:#2196F3!important}
-.border-light-blue,.hover-border-light-blue:hover{border-color:#87CEEB!important}
-.border-brown,.hover-border-brown:hover{border-color:#795548!important}
-.border-cyan,.hover-border-cyan:hover{border-color:#00bcd4!important}
-.border-blue-grey,.hover-blue-grey:hover{border-color:#607d8b!important}
-.border-green,.hover-border-green:hover{border-color:#4CAF50!important}
-.border-light-green,.hover-border-light-green:hover{border-color:#8bc34a!important}
-.border-indigo,.hover-border-indigo:hover{border-color:#3f51b5!important}
-.border-khaki,.hover-border-khaki:hover{border-color:#f0e68c!important}
-.border-lime,.hover-border-lime:hover{border-color:#cddc39!important}
-.border-orange,.hover-border-orange:hover{border-color:#ff9800!important}
-.border-deep-orange,.hover-border-deep-orange:hover{border-color:#ff5722!important}
-.border-pink,.hover-border-pink:hover{border-color:#e91e63!important}
-.border-purple,.hover-border-purple:hover{border-color:#9c27b0!important}
-.border-deep-purple,.hover-border-deep-purple:hover{border-color:#673ab7!important}
-.border-red,.hover-border-red:hover{border-color:#f44336!important}
-.border-sand,.hover-border-sand:hover{border-color:#fdf5e6!important}
-.border-teal,.hover-border-teal:hover{border-color:#009688!important}
-.border-yellow,.hover-border-yellow:hover{border-color:#ffeb3b!important}
-.border-white,.hover-border-white:hover{border-color:#fff!important}
-.border-black,.hover-border-black:hover{border-color:#000!important}
-.border-grey,.hover-border-grey:hover{border-color:#9e9e9e!important}
-.border-light-grey,.hover-border-light-grey:hover{border-color:#f1f1f1!important}
-.border-dark-grey,.hover-border-dark-grey:hover{border-color:#616161!important}
-.border-pale-red,.hover-border-pale-red:hover{border-color:#ffe7e7!important}.border-pale-green,.hover-border-pale-green:hover{border-color:#e7ffe7!important}
-.border-pale-yellow,.hover-border-pale-yellow:hover{border-color:#ffffd7!important}.border-pale-blue,.hover-border-pale-blue:hover{border-color:#e7ffff!important}
-/* DEFAULT THEME */
-.theme-l5 {color:#000 !important; background-color:#f6f8fc !important}
-.theme-l4 {color:#000 !important; background-color:#e1e9f6 !important}
-.theme-l3 {color:#000 !important; background-color:#c3d3ed !important}
-.theme-l2 {color:#000 !important; background-color:#a5bee4 !important}
-.theme-l1 {color:#fff !important; background-color:#88a8db !important}
-.theme-d1 {color:#fff !important; background-color:#5180cb !important}
-.theme-d2 {color:#fff !important; background-color:#3a6fc3 !important}
-.theme-d3 {color:#fff !important; background-color:#3361aa !important}
-.theme-d4 {color:#fff !important; background-color:#2c5392 !important}
-.theme-d5 {color:#fff !important; background-color:#24457a !important}
-
-.theme-light {color:#000 !important; background-color:#f6f8fc !important}
-.theme-dark {color:#fff !important; background-color:#24457a !important}
-.theme-action {color:#fff !important; background-color:#24457a !important}
-
-.theme {color:#fff !important; background-color:#6a92d3 !important}
-.text-theme {color:#6a92d3 !important}
-.border-theme {border-color:#6a92d3 !important}
-
-.hover-theme:hover {color:#fff !important; background-color:#6a92d3 !important}
-.hover-text-theme:hover {color:#6a92d3 !important}
-.hover-border-theme:hover {border-color:#6a92d3 !important}
-
-/* .label { color: #000; font-size: 8pt;} */
-/* #main {margin-left: 210px;} */
-/* @media (max-width:768px){
-  #sidebar { display: none;}
-  #main { margin-left: 0px;} 
-} */
-
-.table {
-  table-layout: fixed;
-}
-
-.text-line-through { text-decoration: line-through; }
-
-#snackbar {
-  visibility: hidden;
-  min-width: 250px;
-  margin-left: -125px;
-  background-color: #333;
-  color: #fff;
-  text-align: center;
-  
-  padding: 16px;
-  position: fixed;
-  z-index: 1;
-  left: 50%;
-  bottom: 30px;
-  font-size: 17px;
-}
-
-#snackbar.show {
-  visibility: visible;
-  -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
-  animation: fadein 0.5s, fadeout 0.5s 2.5s;
-}
-
-@-webkit-keyframes fadein {
-  from {bottom: 0; opacity: 0;} 
-  to {bottom: 30px; opacity: 1;}
-}
-
-@keyframes fadein {
-  from {bottom: 0; opacity: 0;}
-  to {bottom: 30px; opacity: 1;}
-}
-
-@-webkit-keyframes fadeout {
-  from {bottom: 30px; opacity: 1;} 
-  to {bottom: 0; opacity: 0;}
-}
-
-@keyframes fadeout {
-  from {bottom: 30px; opacity: 1;}
-  to {bottom: 0; opacity: 0;}
-}
-
-.tabulator-header-filter > input {
-  background-color: #fff;
-  border: 1px solid #ccc;
-  font-weight: normal;
-}
-
-.readonly {
-  pointer-events:none;
-  color: #000!important;
-  background-color: #d3d3d3!important;
-}
-
-
-
-.right-side-bg {
-  background: url("../img/bg1.jpg");
-  background-size: cover;
-  min-height: 100vh;
-}
-
-
-
-
-/* .mceContentBody { 
-  background: #fff;
-  color:#000;
-} */
-
-/* .tabulator-row-even {
-  background-color: #757575;
-} */
-
-
-button
-{
-       background-color: #f4f4f4;
-       border: 1pt solid #cccccc;
-       font-size: 10pt;
-       color: #000;
-       line-height: 1line;
-       text-align: center;
-}
-button:hover
-{
-       background-color: #343434;
-}
-button:pressed
-{
-       background-color: #343434;
-}
-button:focus
-{
-       background-color: #343434;
-}
-
-header
-{
-       background-color: #fff;
-       box-sizing: border-box;
-}
-
-
-
-::-webkit-input-placeholder
-{
-       color: rgba(60.3922%,60.3922%,60.3922%,1);
-}
-
-
-textarea
-{
-       background-color: #fff;
-       border-top-color: rgba(80%,80%,80%,1);
-       border-right-color: rgba(80%,80%,80%,1);
-       border-bottom-color: rgba(80%,80%,80%,1);
-       border-left-color: rgba(80%,80%,80%,1);
-       border-top-style: solid;
-       border-right-style: solid;
-       border-bottom-style: solid;
-       border-left-style: solid;
-       border-top-width: 1pt;
-       border-right-width: 1pt;
-       border-bottom-width: 1pt;
-       border-left-width: 1pt;
-       font-size: 11pt;
-       color: #000;
-       line-height: 1line;
-       text-align: left;
-       /* margin-top: 0.88em;
-       margin-right: 0.75em;
-       margin-bottom: 0.63em;
-       margin-left: 0.75em;
-       top: 0pt;
-       right: 30pt;
-       bottom: 0pt;
-       left: 0pt;
-       position: absolute;
-       box-sizing: border-box; */
-}
-textarea:focus
-{
-       border-top-color: rgba(0%,43.9216%,81.1765%,1);
-       border-right-color: rgba(0%,43.9216%,81.1765%,1);
-       border-bottom-color: rgba(0%,43.9216%,81.1765%,1);
-       border-left-color: rgba(0%,43.9216%,81.1765%,1);
-}
-textarea:placeholder
-{
-       color: rgba(80%,80%,80%,1);
-}
-/* textarea .text
-{
-       
-} */
-textarea .scrollbar_track
-{
-       width: 30pt;
-       top: 0pt;
-       right: 0pt;
-       bottom: 0pt;
-       position: absolute;
-       box-sizing: border-box;
-}
-
-
-footer
-{
-       background-color: #fff;
-       box-sizing: border-box;
-}
-
-
-div.group_container
-{
-       background-color: #e3e3e3;
-       border-top-color: rgba(80%,80%,80%,1);
-       border-right-color: rgba(80%,80%,80%,1);
-       border-bottom-color: rgba(80%,80%,80%,1);
-       border-left-color: rgba(80%,80%,80%,1);
-       border-top-style: solid;
-       border-right-style: solid;
-       border-bottom-style: solid;
-       border-left-style: solid;
-       border-top-width: 1pt;
-       border-right-width: 1pt;
-       border-bottom-width: 1pt;
-  border-left-width: 1pt;
-  padding-top: 4px;
-  padding-bottom: 8px;
-}
-
-/* Custom Styles */
-.ListView_Default
-{
-       
-       background-color: rgba(0%,0%,0%,0);
-       border-top-style: none;
-       border-right-style: none;
-       border-bottom-style: none;
-       border-left-style: none;
-       
-       color: #000;
-       text-align: left;
-       margin-top: 2pt;
-       margin-right: 2pt;
-       margin-bottom: 2pt;
-       margin-left: 2pt;
-}
-
-
-button.btnNavigation 
-{
-       
-       background-color: #00000000;
-       font-weight: bold;
-       font-size: 10pt;
-       color: #fff;
-       padding-top: 0pt;
-       padding-right: 0pt;
-       padding-bottom: 0pt;
-       padding-left: 0pt;
-}
-
-div.PageListHeader
-{
-       border-top-color: rgba(80%,80%,80%,1);
-       border-right-color: rgba(80%,80%,80%,1);
-       border-bottom-color: rgba(80%,80%,80%,1);
-       border-left-color: rgba(80%,80%,80%,1);
-       border-top-style: solid;
-       border-right-style: solid;
-       border-bottom-style: solid;
-       border-left-style: solid;
-       border-top-width: 1pt;
-       border-right-width: 1pt;
-       border-bottom-width: 1pt;
-       border-left-width: 1pt;
-       color: #fff;
-
-}
-div.PageListHeader .inner_border
-{
-       padding-top: 5pt;
-       padding-right: 5pt;
-       padding-bottom: 5pt;
-       padding-left: 5pt;
-}
-
-.moduletoolbar
-{
-  background-color: #005bce;
-  color: #fff;
-}
-
-div.BodySectionHeader
-{
-
-       font-weight: bold;
-}
-
-button.Button_ImgPlacer
-{
-       
-       background-color: rgba(0%,0%,0%,0);
-       border-top-style: none;
-       border-right-style: none;
-       border-bottom-style: none;
-       border-left-style: none;
-       
-
-       font-weight: bold;
-       font-size: 10pt;
-       color: #fff;
-}
-button.Button_ImgPlacer .inner_border
-{
-       padding-top: 0pt;
-       padding-right: 0pt;
-       padding-bottom: 0pt;
-       padding-left: 0pt;
-}
-
-
-div.PageHeadTitle
-{
-       font-size: 18pt;
-       color: #fff;
-}
-
-div.ListView_SectionHeader
-{
-       
-       background-color: rgba(22.3529%,26.6667%,38.4314%,1);
-       
-}
-
-button.toolbarbtn
-{
-  /* border: 0.5px solid #c6c6c6; */
-       
-       background-color: rgba(0%,0%,0%,0);
-       
-       color: #fff;
-}
-button.toolbarbtn:hover
-{
-       
-       background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-       
-}
-button.toolbarbtn:pressed
-{
-       
-       background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-       
-}
-button.toolbarbtn:focus
-{
-       border-top-color: rgba(80%,80%,80%,1);
-       border-right-color: rgba(80%,80%,80%,1);
-       border-bottom-color: rgba(80%,80%,80%,1);
-       border-left-color: rgba(80%,80%,80%,1);
-}
-
-
-a.toolbarbtn
-{
-  border: 0.5px solid #c6c6c6;
-       background-color: rgba(0%,0%,0%,0);
-       color: #fff;
-}
-a.toolbarbtn:hover
-{
-       
-       background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-       
-}
-a.toolbarbtn:pressed
-{
-       
-       background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-       
-}
-a.toolbarbtn:focus
-{
-       border-top-color: rgba(80%,80%,80%,1);
-       border-right-color: rgba(80%,80%,80%,1);
-       border-bottom-color: rgba(80%,80%,80%,1);
-       border-left-color: rgba(80%,80%,80%,1);
-}
-
-
-div.ListView_Header
-{
-       border-top-color: rgba(80%,80%,80%,1);
-       border-right-color: rgba(80%,80%,80%,1);
-       border-bottom-color: rgba(80%,80%,80%,1);
-       border-left-color: rgba(80%,80%,80%,1);
-       border-top-style: solid;
-       border-right-style: solid;
-       border-bottom-style: solid;
-       border-left-style: solid;
-       border-top-width: 1pt;
-       border-right-width: 1pt;
-       border-bottom-width: 1pt;
-       border-left-width: 1pt;
-       font-weight: normal;
-       color: #fff;
-
-}
-div.ListView_Header .inner_border
-{
-       padding-top: 2pt;
-       padding-right: 2pt;
-       padding-bottom: 2pt;
-       padding-left: 2pt;
-}
-
-div.toolbar
-{
-       /*  */
-       /* background-color: rgba(32.1569%,38.8235%,55.6863%,1); */
-       background-color: #005bce;
-       /*  */
-}
-
-div.FooterLabel
-{
-       color: #fff;
-}
-
-button.bodybtn, a.bodybtn {
-       padding: 30px; 
-       font-size: 20pt;
-}
-
-button.bodybtn:hover
-{
-
-       background-color: rgb(141, 141, 141);
-       /* color: #fff; */
-}
-
-a.bodybtn:hover
-{
-       
-       background-color: rgb(141, 141, 141);
-       
-       width: 200px;
-       padding: 30px; 
-       font-size: 10px;
-       text-decoration: none;
-       /* color: #fff; */
-}
-
-
-/* div.portalpanel {
-       display: -webkit-box;
-       width: 100%;
-} */
-
-/* .portal{
-       width: 100%; 
-       table-layout: fixed;
-       border-collapse: collapse;
-}
-
-.portal tbody{
-display:block;
-width: 100%;
-overflow-y: scroll;
-}
-
-.portal thead tr,.portal tfoot tr {
- display: block;
- width: 100%;
-}
-
-.portal thead,.portal tfoot {
-background: #384462;
-color:#fff;
-}
-
-.portal th, .portal td {
-padding: 5px;
-text-align: left;
-width: 100%;
- border: 1px solid #c6c6c6;
-
-}
-
-.portal tbody tr:nth-child(even) { 
-       background-color: rgb(247, 247, 247);
-}
-
-.portal tbody tr:hover{
-       background-color: #959fb9;
-}
-
-.portal_selected {
-       background-color: #acacac!important;
-} */
-
-
-
-
-::-webkit-scrollbar {
--webkit-appearance: none;
-width: 10px;
-}
-
-::-webkit-scrollbar-track {
-       background-color:  rgba(80%, 80%, 80%, .5);
-}
-
-::-webkit-scrollbar-thumb {
-border-radius: 0px;
-background-color: rgba(0, 0, 0, .5);
--webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
-}      
-
-div.portaltextheader {
-       padding: 2px;
-       border: 1px solid white;
-}
-
-
-
-
-
-select {
-  /* -webkit-appearance: none; */
-  display: block;
-  color: #000;
-  line-height: 1line;
-       text-align: left;
-  padding: 3.5px;
-  width: 100%;
-  max-width: 100%; 
-  box-sizing: border-box;
-       margin: 0;
-       border: 0;
-  border-bottom: 1px solid #cccccc;
-  /* box-shadow: 0 1px 0 1px rgba(0,0,0,.04); */
-  border-radius: 0px;
-  font-weight: normal;
-  font-size: 11pt;
-  background-color: #fff;
-  /* background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'), 
-    linear-gradient(to bottom, #fff 0%,#fff 100%);
-  background-repeat: no-repeat, repeat;
-  background-position: right .7em top 50%, 0 0;
-  background-size: .65em auto, 100%; */
-}
-
-
-/* option {
-  appearance: none;
-  border: 1px solid 0070cf;
-  padding: 2px;
-} */
-select:focus
-{
-       outline: 1px solid #3a6fc3;  
-       /* border: 1px solid #3a6fc3; */
-  /* border-radius: unset; */
-}
-
-
-::-webkit-select-placeholder
-{
-       color: #9a9a9a;
-}
-
-div.DataFooter{
-       background: #384462;
-}
-.input-sum{padding:2px;display:block;border: 1px solid #ccc;width:100%;background-color: #4D4D4D; }  
-
-
-.currency-sum {padding:2px;display:block;border: 1px solid #ccc;width:100%;background-color: #4D4D4D;}
-
-.currency-sum,.currency-sum:read-only {
-  display: block;
-  color: #fff;
-  padding: 2px;
-  padding-right: 12px;
-  width: 100%;
-  max-width: 100%; 
-  box-sizing: border-box;
-  margin: 0;
-  border: 1px solid #ccc;
-  border-radius: unset;
-  -moz-appearance: none;
-  -webkit-appearance: none;
-  appearance: none;
-  background-color: #4D4D4D;
-  background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20fill=%22white%22%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%3C/svg%3E');
-  background-repeat: no-repeat, repeat;
-  background-position: right 2px top 50%, 0 0;
-  background-size: 9px auto, 100%;
-}
-
-
-
-
-/* input[type=date]::-webkit-inner-spin-button, 
-input[type=date]::-webkit-outer-spin-button { 
-  display: none;
-} */
-
-:focus {
-  outline: unset;
-}
-
-input
-{
-       background-color: #ffffff;
-       border: 1px solid #fff;
-
-       border-bottom: 1px solid #cccccc; 
-       font-weight: normal;
-       font-size: 11pt;
-       color: #000000;
-       line-height: 1line;
-  text-align: left;
-  width:100%;
-  padding:2px;
-  display:block;
-       /* border-radius: 3px; */
-}
-/* input:focus
-{
-       border: #0070cf;
-} */
-
-/* input:focus {
-  border: 1px solid #3a6fc3;
-  border-radius: unset;
-} */
-
-input[readonly=true]{
-  color: #000!important;
-  background-color: #d3d3d3!important;
-}
-
-/* input[type=number]::-webkit-inner-spin-button, 
-input[type=number]::-webkit-outer-spin-button { 
-  -webkit-appearance: none; 
-  margin: 0; 
-} */
-/* input[type=checkbox]{
-  appearance: none;
-  display:inline-block;
-  font-size: 24px!important;
-  border: 1px solid green;
-} */
-
-input[class=currency] {
-  padding: 2px;
-  padding-right: 12px;
-  text-align: right;
-  background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%0A%3C/svg%3E'), 
-  linear-gradient(to bottom, #fff 0%,#fff 100%);
-  background-repeat: no-repeat, repeat;
-  background-position: right 2px top 50%, 0 0;
-  background-size: 9px auto, 100%;
-}
-
-input[class=currency]:read-only {
-  background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%0A%3C/svg%3E'), 
-    linear-gradient(to bottom, #d3d3d3 0%,#d3d3d3 100%);
-}
-
-input[class=percent] {
-  padding: 2px;
-  padding-right: 12px;
-  text-align: right;
-  background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22256%22%20height=%22232%22%20version=%221.0%22%3E%3Cg%20transform=%22translate(-112.3674,-128.3649)%22%3E%3Cpath%20style=%22fill:black;fill-opacity:1;stroke:none%22%20d=%22M%20317.1674,257.53698%20C%20308.53463,257.53708%20301.73774,261.20839%20296.77671,268.55094%20C%20291.91449,275.89365%20289.48349,286.1138%20289.48368,299.2114%20C%20289.48349,312.11067%20291.91449,322.2812%20296.77671,329.72303%20C%20301.73774,337.06568%20308.53463,340.737%20317.1674,340.73698%20C%20325.60128,340.737%20332.24934,337.06568%20337.11159,329.72303%20C%20342.07258,322.2812%20344.5532,312.11067%20344.55345,299.2114%20C%20344.5532,286.21302%20342.07258,276.04249%20337.11159,268.69977%20C%20332.24934,261.25801%20325.60128,257.53708%20317.1674,257.53698%20M%20317.1674,238.63466%20C%20332.84469,238.63477%20345.29739,244.09213%20354.52554,255.00675%20C%20363.75318,265.92157%20368.36713,280.65644%20368.3674,299.2114%20C%20368.36713,317.76648%20363.70357,332.50135%20354.37671,343.41605%20C%20345.14855,354.23156%20332.74546,359.6393%20317.1674,359.63931%20C%20301.29123,359.6393%20288.7393,354.23156%20279.51159,343.41605%20C%20270.28351,332.50135%20265.66956,317.76648%20265.66973,299.2114%20C%20265.66956,280.55721%20270.28351,265.82234%20279.51159,255.00675%20C%20288.83853,244.09213%20301.39045,238.63477%20317.1674,238.63466%20M%20163.5674,147.9928%20C%20155.03401,147.993%20148.28673,151.71393%20143.32554,159.15559%20C%20138.46349,166.49841%20136.03248,176.61933%20136.03252,189.51838%20C%20136.03248,202.61621%20138.46349,212.83635%20143.32554,220.17884%20C%20148.18751,227.52161%20154.93479,231.19292%20163.5674,231.1928%20C%20172.19989,231.19292%20178.94717,227.52161%20183.80926,220.17884%20C%20188.77041,212.83635%20191.25103,202.61621%20191.25113,189.51838%20C%20191.25103,176.71856%20188.77041,166.59764%20183.80926,159.15559%20C%20178.84794,151.71393%20172.10066,147.993%20163.5674,147.9928%20M%20297.9674,129.09047%20L%20321.78136,129.09047%20L%20182.7674,359.63931%20L%20158.95345,359.63931%20L%20297.9674,129.09047%20M%20163.5674,129.09047%20C%20179.24484,129.0907%20191.74715,134.54806%20201.07438,145.46256%20C%20210.4014,156.27827%20215.06496,170.96352%20215.06508,189.51838%20C%20215.06496,208.27201%20210.4014,223.05649%20201.07438,233.87187%20C%20191.84638,244.68748%20179.34406,250.09523%20163.5674,250.09512%20C%20147.79061,250.09523%20135.28829,244.68748%20126.06043,233.87187%20C%20116.93172,222.95727%20112.36739,208.17279%20112.3674,189.51838%20C%20112.36739,171.06275%20116.98134,156.37749%20126.20926,145.46256%20C%20135.43713,134.54806%20147.88983,129.0907%20163.5674,129.09047%22%20/%3E%3C/g%3E%3C/svg%3E'), 
-    linear-gradient(to bottom, #fff 0%,#fff 100%);
-  background-repeat: no-repeat, repeat;
-  background-position: right 2px top 50%, 0 0;
-  background-size: 9px auto, 100%;
-}
-
-
-label {
-  height: 12.8px!important;
-  color: #757575; 
-  font-size: 8pt;
-}
-
-
-
-input[type="checkbox"] {
-  display: block;
-  -webkit-appearance:none;/* Hides the default checkbox style */ 
-  height:29.66px;
-  width:29.66px;
-  cursor:pointer;
-  position:relative;
-  -webkit-transition: .15s;
-  border-radius: unset;
-  border: 1px solid #cccccc; 
-  background-color:#fff;
- }
- input[type="checkbox"]:checked {
-  background-color:green;
- }
- input[type="checkbox"]:before, input[type="checkbox"]:checked:before {
-  position:absolute;
-  top:0;
-  left:0;
-  width:100%;
-  height:100%;
-  line-height:2em;
-  text-align:center;
-  color:#fff;
-  content: '';
- }
- input[type="checkbox"]:checked:before {
-  font-size: 11pt;
-  content: '✔';
- }
- input[type="checkbox"]:hover:before {
-  background:rgba(255,255,255,0.3);
- }
-
- body.mceContentBody { 
-  background:#e8f0fe;
-  color:#000;
-}
-
-/* .mceContentBody { 
-  background: #e8f0fe;
-  color:#000;
-} */
-
-/* .tabulator-row-even {
-  background-color: #757575;
-} */
-
-
-input:hover:enabled , select:hover:enabled {
-       outline: 0px solid #607d8b;
-       border-bottom:  1px solid #607d8b;
-  outline-offset: -1px;
-       /* Opera/IE 8+ */
-} 
-input:focus:enabled, select:focus:enabled  {
-       outline: 0px solid #607d8b;
-       border-bottom:  1px solid #607d8b;
-  /* outline: 1px solid #607d8b; */
-  outline-offset: -1px;
-       /* Opera/IE 8+ */
-} 
-
-input[type="time"]::-webkit-calendar-picker-indicator {
-  display: none;
-}
-
-.modal-content > header {
-       background-color: #293146;
-       color: #fff;
-       padding:8px!important;
-       margin-bottom: 10px;
-}
-
-.modal-content > footer {
-       /*container right-align padding-16 grey*/
-       /* padding:0.01em 8px; */
-       text-align:right!important;
-       color:#000!important;
-       background-color:#c6c6c6!important;
-       margin-top: 6px;
-       padding-top:8px!important;
-       padding-bottom:8px!important;
-}
-.modal-content > header:after,.modal-content > header:before,.modal-content > footer:after,.modal-content > footer:before {
-       content:"";display:table;clear:both
-}
-
-option:hover {
-       outline: 1px solid red;
-}
\ No newline at end of file
diff --git a/webapp/static/css/w3pro.css b/webapp/static/css/w3pro.css
deleted file mode 100644 (file)
index 1cc81b1..0000000
+++ /dev/null
@@ -1,392 +0,0 @@
-/* W3PRO.CSS 4.13 June 2019 by Jan Egil and Borge Refsnes */
-html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
-/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
-html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}
-article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}
-audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}
-audio:not([controls]){display:none;height:0}[hidden],template{display:none}
-a{background-color:transparent}a:active,a:hover{outline-width:0}
-abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
-b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}
-small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
-sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
-code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
-button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
-button,input{overflow:visible}button,select{text-transform:none}
-button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
-button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
-button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
-fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
-legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
-[type=checkbox],[type=radio]{padding:0}
-[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
-[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
-[type=search]::-webkit-search-decoration{-webkit-appearance:none}
-::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
-/* End extract */
-html,body{font-family:Verdana,sans-serif;font-size:15px;line-height:1.5}html{overflow-x:hidden}
-h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}.serif{font-family:serif}
-h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin: 0}.wide{letter-spacing:4px}
-hr{border:0;border-top:1px solid #eee;margin:20px 0}
-.btn-append-right{float:left;margin-right: 0px;}
-.image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}
-.table,.table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.table-all{border:1px solid #ccc}
-.bordered tr,.table-all tr{border-bottom:1px solid #ddd}.striped tbody tr:nth-child(even){background-color:#f1f1f1}
-.table-all tr:nth-child(odd){background-color:#fff}.table-all tr:nth-child(even){background-color:#f1f1f1}
-.hoverable tbody tr:hover,.ul.hoverable li:hover{background-color:#ccc}.centered tr th,.centered tr td{text-align:center}
-.table td,.table th,.table-all td,.table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
-.table th:first-child,.table td:first-child,.table-all th:first-child,.table-all td:first-child{padding-left:16px}
-.btn,.button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap; border-radius: 3px;}
-.btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
-.btn,.button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}   
-.disabled,.btn:disabled,.button:disabled{cursor:not-allowed;opacity:0.3}.disabled *,:disabled *{pointer-events:none}
-.btn.disabled:hover,.btn:disabled:hover{box-shadow:none}
-.badge,.tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.badge{border-radius:50%}
-.ul{list-style-type:none;padding:0;margin:0}.ul li{padding:8px 16px;border-bottom:1px solid #ddd}.ul li:last-child{border-bottom:none}
-.tooltip,.display-container{position:relative}.tooltip .text{display:none}.tooltip:hover .text{display:inline-block}
-.ripple:active{opacity:0.5}.ripple{transition:opacity 0s}
-.input{padding:4px;display:block;border:1px solid #ccc;width:100%;background-color: #e8f0fe; border-radius: 3px; }
-.input-append{padding:4px;display:block;border:1px solid #ccc;float:left;background-color: #e8f0fe;}
-.select{padding:4px 0; display:block;width:100%;border:1px solid #ccc;background-color: #e8f0fe;}
-.dropdown-click,.dropdown-hover{position:relative;display:inline-block;cursor:pointer}
-.dropdown-hover:hover .dropdown-content{display:block; }
-.dropdown-hover:first-child,.dropdown-click:hover{background-color:#ccc;color:#000}
-.dropdown-hover:hover > .button:first-child,.dropdown-click:hover > .button:first-child{background-color:#ccc;color:#000}
-.dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
-.check,.radio{width:24px;height:24px;position:relative;top:6px}
-.sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
-.bar-block .dropdown-hover,.bar-block .dropdown-click{width:100%}
-.bar-block .dropdown-hover .dropdown-content,.bar-block .dropdown-click .dropdown-content{min-width:100%}
-.bar-block .dropdown-hover .button,.bar-block .dropdown-click .button{width:100%;text-align:left;padding:8px 16px}
-.main,#main{transition:margin-left .4s}
-.modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
-.modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
-.bar{width:100%;overflow:hidden}.center .bar{display:inline-block;width:auto}
-.bar .bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
-.bar .dropdown-hover,.bar .dropdown-click{position:static;float:left}
-.bar .button{white-space:normal}
-.bar-block .bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
-.bar-block.center .bar-item{text-align:center}.block{display:block;width:100%}
-.responsive{display:block;overflow-x:auto}
-.container:after,.container:before,.panel:after,.panel:before,.row:after,.row:before,.row-padding:after,.row-padding:before,
-.cell-row:before,.cell-row:after,.clear:after,.clear:before,.bar:before,.bar:after{content:"";display:table;clear:both}
-.col,.half,.third,.twothird,.threequarter,.quarter,.fifth,.twofifth,.threefifth,.fourfifth{float:left;width:100%}
-.col.s1{width:8.33333%}.col.s2{width:16.66666%}.col.s3{width:24.99999%}.col.s4{width:33.33333%}
-.col.s5{width:41.66666%}.col.s6{width:49.99999%}.col.s7{width:58.33333%}.col.s8{width:66.66666%}
-.col.s9{width:74.99999%}.col.s10{width:83.33333%}.col.s11{width:91.66666%}.col.s12{width:99.99999%}
-@media (min-width:601px){.col.m1{width:8.33333%}.col.m2{width:16.66666%}.col.m3,.quarter{width:24.99999%}.col.m4,.third{width:33.33333%}.fifth{width:20%;min-width:100px}
-.col.m5{width:41.66666%}.col.m6,.half{width:49.99999%}.col.m7{width:58.33333%}.col.m8,.twothird{width:66.66666%}
-.col.m9,.threequarter{width:74.99999%}.col.m10{width:83.33333%}.col.m11{width:91.66666%}.col.m12{width:99.99999%}.twofifth{width:40%}.threefifth{width:60%}.fourfifth{width:80%}}
-@media (min-width:993px){.col.l1{width:8.33333%}.col.l2{width:16.66666%}.col.l3{width:24.99999%}.col.l4{width:33.33333%}
-.col.l5{width:41.66666%}.col.l6{width:49.99999%}.col.l7{width:58.33333%}.col.l8{width:66.66666%}
-.col.l9{width:74.99999%}.col.l10{width:83.33333%}.col.l11{width:91.66666%}.col.l12{width:99.99999%}}
-.rest{overflow:hidden}.stretch{margin-left:-16px;margin-right:-16px}
-.content,.auto{margin-left:auto;margin-right:auto}.content{max-width:980px}.auto{max-width:1140px}
-.cell-row{display:table;width:100%}.cell{display:table-cell}
-.cell-top{vertical-align:top}.cell-middle{vertical-align:middle}.cell-bottom{vertical-align:bottom}
-.hide{display:none!important}.show-block,.show{display:block!important}.show-inline-block{display:inline-block!important}
-@media (max-width:1205px){.auto{max-width:95%}}
-@media (max-width:600px){.modal-content{margin:0 10px;width:auto!important}.modal{padding-top:30px}
-.dropdown-hover.mobile .dropdown-content,.dropdown-click.mobile .dropdown-content{position:relative}   
-.hide-small{display:none!important}.mobile{display:block;width:100%!important}.bar-item.mobile,.dropdown-hover.mobile,.dropdown-click.mobile{text-align:center}
-.dropdown-hover.mobile,.dropdown-hover.mobile .btn,.dropdown-hover.mobile .button,.dropdown-click.mobile,.dropdown-click.mobile .btn,.dropdown-click.mobile .button{width:100%}}
-@media (max-width:768px){.modal-content{width:500px}.modal{padding-top:50px}}
-@media (min-width:993px){.modal-content{width:900px}.hide-large{display:none!important}.sidebar.collapse{display:block!important}}
-@media (max-width:992px) and (min-width:601px){.hide-medium{display:none!important}}
-@media (max-width:992px){.sidebar.collapse{display:none}.main{margin-left:0!important;margin-right:0!important}.auto{max-width:100%}}
-.top,.bottom{position:fixed;width:100%;z-index:1}.top{top:0}.bottom{bottom:0}
-.overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
-.display-topleft{position:absolute;left:0;top:0}.display-topright{position:absolute;right:0;top:0}
-.display-bottomleft{position:absolute;left:0;bottom:0}.display-bottomright{position:absolute;right:0;bottom:0}
-.display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
-.display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
-.display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
-.display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-container:hover .display-hover{display:block}.display-container:hover span.display-hover{display:inline-block}.display-hover{display:none}
-.display-position{position:absolute}
-.circle{border-radius:50%}
-.round-small{border-radius:2px}.round,.round-medium{border-radius:4px}.round-large{border-radius:8px}.round-xlarge{border-radius:16px}.round-xxlarge{border-radius:32px}
-.row-padding,.row-padding>.half,.row-padding>.third,.row-padding>.twothird,.row-padding>.threequarter,.row-padding>.quarter,.row-padding>.col{padding:0 8px}
-.container,.panel{padding:0.01em 8px}.panel{margin-top:8px;margin-bottom:8px}
-.code,.codespan{font-family:Consolas,"courier new";font-size:16px}
-.code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
-.codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
-.card,.card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16)}
-.card-4,.hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
-.spin{animation:spin 2s infinite linear}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
-.animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
-.animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
-.animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
-.animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
-.animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
-.animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
-.animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
-.animate-input{transition:width 0.4s ease-in-out}.animate-input:focus{width:100%!important}
-.opacity,.hover-opacity:hover{opacity:0.60}.opacity-off,.hover-opacity-off:hover{opacity:1}
-.opacity-max{opacity:0.25}.opacity-min{opacity:0.75}
-.greyscale-max,.grayscale-max,.hover-greyscale:hover,.hover-grayscale:hover{filter:grayscale(100%)}
-.greyscale,.grayscale{filter:grayscale(75%)}.greyscale-min,.grayscale-min{filter:grayscale(50%)}
-.sepia{filter:sepia(75%)}.sepia-max,.hover-sepia:hover{filter:sepia(100%)}.sepia-min{filter:sepia(50%)}
-.tiny{font-size:10px!important}.small{font-size:12px!important}.medium{font-size:15px!important}.large{font-size:18px!important}
-.xlarge{font-size:24px!important}.xxlarge{font-size:36px!important}.xxxlarge{font-size:48px!important}.jumbo{font-size:64px!important}
-.left-align{text-align:left!important}.right-align{text-align:right!important}.justify{text-align:justify!important}.center{text-align:center!important}
-.border-0{border:0!important}.border{border:1px solid #ccc!important}
-.border-top{border-top:1px solid #ccc!important}.border-bottom{border-bottom:1px solid #ccc!important}
-.border-left{border-left:1px solid #ccc!important}.border-right{border-right:1px solid #ccc!important}
-.topbar{border-top:6px solid #ccc!important}.bottombar{border-bottom:6px solid #ccc!important}
-.leftbar{border-left:6px solid #ccc!important}.rightbar{border-right:6px solid #ccc!important}
-.section,.code{margin-top:2px!important;margin-bottom:16px!important}
-.margin{margin:16px!important}.margin-top{margin-top:16px!important}.margin-bottom{margin-bottom:16px!important}
-.margin-left{margin-left:16px!important}.margin-right{margin-right:16px!important}
-.padding-small{padding:4px 8px!important}.padding{padding:8px 16px!important}.padding-large{padding:12px 24px!important}
-.padding-16{padding-top:16px!important;padding-bottom:16px!important}.padding-24{padding-top:24px!important;padding-bottom:24px!important}
-.padding-32{padding-top:32px!important;padding-bottom:32px!important}.padding-48{padding-top:48px!important;padding-bottom:48px!important}
-.padding-64{padding-top:64px!important;padding-bottom:64px!important}
-.left{float:left!important}.right{float:right!important}
-.button:hover{color:#000!important;background-color:#ccc!important}
-.transparent,.hover-none:hover{background-color:transparent!important}
-.hover-none:hover{box-shadow:none!important}
-/* DEFAULT COLORS */
-.amber,.hover-amber:hover{color:#000!important;background-color:#ffc107!important}
-.aqua,.hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
-.blue,.hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
-.light-blue,.hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
-.brown,.hover-brown:hover{color:#fff!important;background-color:#795548!important}
-.cyan,.hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
-.blue-grey,.hover-blue-grey:hover{color:#fff!important;background-color:#607d8b!important}
-.green,.hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
-.light-green,.hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
-.indigo,.hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
-.khaki,.hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
-.lime,.hover-lime:hover{color:#000!important;background-color:#cddc39!important}
-.orange,.hover-orange:hover{color:#000!important;background-color:#ff9800!important}
-.deep-orange,.hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
-.pink,.hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
-.purple,.hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
-.deep-purple,.hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
-.red,.hover-red:hover{color:#fff!important;background-color:#f44336!important}
-.sand,.hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
-.teal,.hover-teal:hover{color:#fff!important;background-color:#009688!important}
-.yellow,.hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
-.white,.hover-white:hover{color:#000!important;background-color:#fff!important}
-.black,.hover-black:hover{color:#fff!important;background-color:#000!important}
-.grey,.hover-grey:hover{color:#000!important;background-color:#9e9e9e!important}
-.light-grey,.hover-light-grey:hover{color:#000!important;background-color:#f1f1f1!important}
-.dark-grey,.hover-dark-grey:hover{color:#fff!important;background-color:#616161!important}
-.pale-red,.hover-pale-red:hover{color:#000!important;background-color:#ffe7e7!important}.pale-green,.hover-pale-green:hover{color:#000!important;background-color:#e7ffe7!important}
-.pale-yellow,.hover-pale-yellow:hover{color:#000!important;background-color:#ffffd7!important}.pale-blue,.hover-pale-blue:hover{color:#000!important;background-color:#e7ffff!important}
-.text-align-right { text-align: right;}
-.text-amber,.hover-text-amber:hover{color:#ffc107!important}
-.text-aqua,.hover-text-aqua:hover{color:#00ffff!important}
-.text-blue,.hover-text-blue:hover{color:#2196F3!important}
-.text-light-blue,.hover-text-light-blue:hover{color:#87CEEB!important}
-.text-brown,.hover-text-brown:hover{color:#795548!important}
-.text-cyan,.hover-text-cyan:hover{color:#00bcd4!important}
-.text-blue-grey,.hover-text-blue-grey:hover{color:#607d8b!important}
-.text-green,.hover-text-green:hover{color:#4CAF50!important}
-.text-light-green,.hover-text-light-green:hover{color:#8bc34a!important}
-.text-indigo,.hover-text-indigo:hover{color:#3f51b5!important}
-.text-khaki,.hover-text-khaki:hover{color:#b4aa50!important}
-.text-lime,.hover-text-lime:hover{color:#cddc39!important}
-.text-orange,.hover-text-orange:hover{color:#ff9800!important}
-.text-deep-orange,.hover-text-deep-orange:hover{color:#ff5722!important}
-.text-pink,.hover-text-pink:hover{color:#e91e63!important}
-.text-purple,.hover-text-purple:hover{color:#9c27b0!important}
-.text-deep-purple,.hover-text-deep-purple:hover{color:#673ab7!important}
-.text-red,.hover-text-red:hover{color:#f44336!important}
-.text-sand,.hover-text-sand:hover{color:#fdf5e6!important}
-.text-teal,.hover-text-teal:hover{color:#009688!important}
-.text-yellow,.hover-text-yellow:hover{color:#d2be0e!important}
-.text-white,.hover-text-white:hover{color:#fff!important}
-.text-black,.hover-text-black:hover{color:#000!important}
-.text-grey,.hover-text-grey:hover{color:#757575!important}
-.text-light-grey,.hover-text-light-grey:hover{color:#f1f1f1!important}
-.text-dark-grey,.hover-text-dark-grey:hover{color:#3a3a3a!important}
-.border-amber,.hover-border-amber:hover{border-color:#ffc107!important}
-.border-aqua,.hover-border-aqua:hover{border-color:#00ffff!important}
-.border-blue,.hover-border-blue:hover{border-color:#2196F3!important}
-.border-light-blue,.hover-border-light-blue:hover{border-color:#87CEEB!important}
-.border-brown,.hover-border-brown:hover{border-color:#795548!important}
-.border-cyan,.hover-border-cyan:hover{border-color:#00bcd4!important}
-.border-blue-grey,.hover-blue-grey:hover{border-color:#607d8b!important}
-.border-green,.hover-border-green:hover{border-color:#4CAF50!important}
-.border-light-green,.hover-border-light-green:hover{border-color:#8bc34a!important}
-.border-indigo,.hover-border-indigo:hover{border-color:#3f51b5!important}
-.border-khaki,.hover-border-khaki:hover{border-color:#f0e68c!important}
-.border-lime,.hover-border-lime:hover{border-color:#cddc39!important}
-.border-orange,.hover-border-orange:hover{border-color:#ff9800!important}
-.border-deep-orange,.hover-border-deep-orange:hover{border-color:#ff5722!important}
-.border-pink,.hover-border-pink:hover{border-color:#e91e63!important}
-.border-purple,.hover-border-purple:hover{border-color:#9c27b0!important}
-.border-deep-purple,.hover-border-deep-purple:hover{border-color:#673ab7!important}
-.border-red,.hover-border-red:hover{border-color:#f44336!important}
-.border-sand,.hover-border-sand:hover{border-color:#fdf5e6!important}
-.border-teal,.hover-border-teal:hover{border-color:#009688!important}
-.border-yellow,.hover-border-yellow:hover{border-color:#ffeb3b!important}
-.border-white,.hover-border-white:hover{border-color:#fff!important}
-.border-black,.hover-border-black:hover{border-color:#000!important}
-.border-grey,.hover-border-grey:hover{border-color:#9e9e9e!important}
-.border-light-grey,.hover-border-light-grey:hover{border-color:#f1f1f1!important}
-.border-dark-grey,.hover-border-dark-grey:hover{border-color:#616161!important}
-.border-pale-red,.hover-border-pale-red:hover{border-color:#ffe7e7!important}.border-pale-green,.hover-border-pale-green:hover{border-color:#e7ffe7!important}
-.border-pale-yellow,.hover-border-pale-yellow:hover{border-color:#ffffd7!important}.border-pale-blue,.hover-border-pale-blue:hover{border-color:#e7ffff!important}
-/* DEFAULT THEME */
-.theme-l5 {color:#000 !important; background-color:#f6f8fc !important}
-.theme-l4 {color:#000 !important; background-color:#e1e9f6 !important}
-.theme-l3 {color:#000 !important; background-color:#c3d3ed !important}
-.theme-l2 {color:#000 !important; background-color:#a5bee4 !important}
-.theme-l1 {color:#fff !important; background-color:#88a8db !important}
-.theme-d1 {color:#fff !important; background-color:#5180cb !important}
-.theme-d2 {color:#fff !important; background-color:#3a6fc3 !important}
-.theme-d3 {color:#fff !important; background-color:#3361aa !important}
-.theme-d4 {color:#fff !important; background-color:#2c5392 !important}
-.theme-d5 {color:#fff !important; background-color:#24457a !important}
-
-.theme-light {color:#000 !important; background-color:#f6f8fc !important}
-.theme-dark {color:#fff !important; background-color:#24457a !important}
-.theme-action {color:#fff !important; background-color:#24457a !important}
-
-.theme {color:#fff !important; background-color:#6a92d3 !important}
-.text-theme {color:#6a92d3 !important}
-.border-theme {border-color:#6a92d3 !important}
-
-.hover-theme:hover {color:#fff !important; background-color:#6a92d3 !important}
-.hover-text-theme:hover {color:#6a92d3 !important}
-.hover-border-theme:hover {border-color:#6a92d3 !important}
-
-.label { color: rgb(153, 150, 150);}
-/* #main {margin-left: 210px;} */
-@media (max-width:768px){
-  #sidebar { display: none;}
-  #main { margin-left: 0px;} 
-}
-
-.select {
-  display: block;
-  font-size: 16px;
-  font-family: sans-serif;
-  font-weight: normal;
-  color: #444;
-  line-height: 1.3;
-  padding: .6em 1.4em .5em .8em;
-  width: 100%;
-  max-width: 100%; 
-  box-sizing: border-box;
-  margin: 0;
-  border-bottom: 1px solid #aaa;
-  box-shadow: 0 1px 0 1px rgba(0,0,0,.04);
-  /* border-radius: .5em; */
-  -moz-appearance: none;
-  -webkit-appearance: none;
-  appearance: none;
-  background-color: #e8f0fe;
-  /*border-radius:4px; */
-  background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'), 
-    linear-gradient(to bottom, #e8f0fe 0%,#e8f0fe 100%);
-  background-repeat: no-repeat, repeat;
-  background-position: right .7em top 50%, 0 0;
-  background-size: .65em auto, 100%;
-}
-.select::-ms-expand {
-  display: none;
-}
-.select:hover {
-  border-color: #888;
-}
-.select:focus {
-  border-color: #aaa;
-  box-shadow: 0 0 1px 1px #6a92d3;
-  box-shadow: 0 0 0 1px -moz-mac-focusring;
-  color: #222; 
-  outline: none;
-}
-
-
-.select option {
-  font-weight:normal;
-}
-
-.table {
-  table-layout: fixed;
-}
-
-.text-line-through { text-decoration: line-through; }
-
-#snackbar {
-  visibility: hidden;
-  min-width: 250px;
-  margin-left: -125px;
-  background-color: #333;
-  color: #fff;
-  text-align: center;
-  /*border-radius: 2px; */
-  padding: 16px;
-  position: fixed;
-  z-index: 1;
-  left: 50%;
-  bottom: 30px;
-  font-size: 17px;
-}
-
-#snackbar.show {
-  visibility: visible;
-  -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
-  animation: fadein 0.5s, fadeout 0.5s 2.5s;
-}
-
-@-webkit-keyframes fadein {
-  from {bottom: 0; opacity: 0;} 
-  to {bottom: 30px; opacity: 1;}
-}
-
-@keyframes fadein {
-  from {bottom: 0; opacity: 0;}
-  to {bottom: 30px; opacity: 1;}
-}
-
-@-webkit-keyframes fadeout {
-  from {bottom: 30px; opacity: 1;} 
-  to {bottom: 0; opacity: 0;}
-}
-
-@keyframes fadeout {
-  from {bottom: 30px; opacity: 1;}
-  to {bottom: 0; opacity: 0;}
-}
-
-.tabulator-header-filter > input {
-  background-color: #e8f0fe;
-  border: 1px solid #ccc;
-  font-weight: normal;
-}
-
-.readonly {
-  pointer-events:none;
-  display:block;border:0px;width:100%;background-color: #fff;
-}
-
-.right-side-bg {
-  background: url("../img/bg1.jpg");
-  background-size: cover;
-  min-height: 100vh;
-}
-
- input:hover  {
-  outline: 1px solid #2196F3;
-  outline-offset: -1px;
-       /* Opera/IE 8+ */
-} 
-input:focus  {
-  outline: 2px solid #2196F3;
-  outline-offset: -1px;
-       /* Opera/IE 8+ */
-} 
-/* .mceContentBody { 
-  background: #e8f0fe;
-  color:#000;
-} */
-
-/* .tabulator-row-even {
-  background-color: #757575;
-} */
\ No newline at end of file
diff --git a/webapp/static/css/w3pro.min.css b/webapp/static/css/w3pro.min.css
deleted file mode 100644 (file)
index b06c58e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}figure{margin:1em 40px}img{border-style:none}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}body,html{font-family:Verdana,sans-serif;font-size:15px;line-height:1.5}html{overflow-x:hidden}h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}.serif{font-family:serif}h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin:0}.wide{letter-spacing:4px}hr{border:0;border-top:1px solid #eee;margin:20px 0}.btn-append-right{float:left;margin-right:0}.image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}.table,.table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.table-all{border:1px solid #ccc}.bordered tr,.table-all tr{border-bottom:1px solid #ddd}.striped tbody tr:nth-child(even){background-color:#f1f1f1}.table-all tr:nth-child(odd){background-color:#fff}.table-all tr:nth-child(even){background-color:#f1f1f1}.hoverable tbody tr:hover,.ul.hoverable li:hover{background-color:#ccc}.centered tr td,.centered tr th{text-align:center}.table td,.table th,.table-all td,.table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}.table td:first-child,.table th:first-child,.table-all td:first-child,.table-all th:first-child{padding-left:16px}.btn,.button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap}.btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.btn,.button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:disabled,.button:disabled,.disabled{cursor:not-allowed;opacity:.3}.disabled *,:disabled *{pointer-events:none}.btn.disabled:hover,.btn:disabled:hover{box-shadow:none}.badge,.tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.badge{border-radius:50%}.ul{list-style-type:none;padding:0;margin:0}.ul li{padding:8px 16px;border-bottom:1px solid #ddd}.ul li:last-child{border-bottom:none}.display-container,.tooltip{position:relative}.tooltip .text{display:none}.tooltip:hover .text{display:inline-block}.ripple:active{opacity:.5}.ripple{transition:opacity 0s}.input{padding:4px;display:block;border:1px solid #ccc;width:100%;background-color:#e8f0fe}.input-append{padding:4px;display:block;border:1px solid #ccc;float:left;background-color:#e8f0fe}.select{padding:4px 0;display:block;width:100%;border:1px solid #ccc;background-color:#e8f0fe}.dropdown-click,.dropdown-hover{position:relative;display:inline-block;cursor:pointer}.dropdown-hover:hover .dropdown-content{display:block}.dropdown-click:hover,.dropdown-hover:first-child{background-color:#ccc;color:#000}.dropdown-click:hover>.button:first-child,.dropdown-hover:hover>.button:first-child{background-color:#ccc;color:#000}.dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}.check,.radio{width:24px;height:24px;position:relative;top:6px}.sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}.bar-block .dropdown-click,.bar-block .dropdown-hover{width:100%}.bar-block .dropdown-click .dropdown-content,.bar-block .dropdown-hover .dropdown-content{min-width:100%}.bar-block .dropdown-click .button,.bar-block .dropdown-hover .button{width:100%;text-align:left;padding:8px 16px}#main,.main{transition:margin-left .4s}.modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4)}.modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}.bar{width:100%;overflow:hidden}.center .bar{display:inline-block;width:auto}.bar .bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}.bar .dropdown-click,.bar .dropdown-hover{position:static;float:left}.bar .button{white-space:normal}.bar-block .bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}.bar-block.center .bar-item{text-align:center}.block{display:block;width:100%}.responsive{display:block;overflow-x:auto}.bar:after,.bar:before,.cell-row:after,.cell-row:before,.clear:after,.clear:before,.container:after,.container:before,.panel:after,.panel:before,.row-padding:after,.row-padding:before,.row:after,.row:before{content:"";display:table;clear:both}.col,.fifth,.fourfifth,.half,.quarter,.third,.threefifth,.threequarter,.twofifth,.twothird{float:left;width:100%}.col.s1{width:8.33333%}.col.s2{width:16.66666%}.col.s3{width:24.99999%}.col.s4{width:33.33333%}.col.s5{width:41.66666%}.col.s6{width:49.99999%}.col.s7{width:58.33333%}.col.s8{width:66.66666%}.col.s9{width:74.99999%}.col.s10{width:83.33333%}.col.s11{width:91.66666%}.col.s12{width:99.99999%}@media (min-width:601px){.col.m1{width:8.33333%}.col.m2{width:16.66666%}.col.m3,.quarter{width:24.99999%}.col.m4,.third{width:33.33333%}.fifth{width:20%;min-width:100px}.col.m5{width:41.66666%}.col.m6,.half{width:49.99999%}.col.m7{width:58.33333%}.col.m8,.twothird{width:66.66666%}.col.m9,.threequarter{width:74.99999%}.col.m10{width:83.33333%}.col.m11{width:91.66666%}.col.m12{width:99.99999%}.twofifth{width:40%}.threefifth{width:60%}.fourfifth{width:80%}}@media (min-width:993px){.col.l1{width:8.33333%}.col.l2{width:16.66666%}.col.l3{width:24.99999%}.col.l4{width:33.33333%}.col.l5{width:41.66666%}.col.l6{width:49.99999%}.col.l7{width:58.33333%}.col.l8{width:66.66666%}.col.l9{width:74.99999%}.col.l10{width:83.33333%}.col.l11{width:91.66666%}.col.l12{width:99.99999%}}.rest{overflow:hidden}.stretch{margin-left:-16px;margin-right:-16px}.auto,.content{margin-left:auto;margin-right:auto}.content{max-width:980px}.auto{max-width:1140px}.cell-row{display:table;width:100%}.cell{display:table-cell}.cell-top{vertical-align:top}.cell-middle{vertical-align:middle}.cell-bottom{vertical-align:bottom}.hide{display:none!important}.show,.show-block{display:block!important}.show-inline-block{display:inline-block!important}@media (max-width:1205px){.auto{max-width:95%}}@media (max-width:600px){.modal-content{margin:0 10px;width:auto!important}.modal{padding-top:30px}.dropdown-click.mobile .dropdown-content,.dropdown-hover.mobile .dropdown-content{position:relative}.hide-small{display:none!important}.mobile{display:block;width:100%!important}.bar-item.mobile,.dropdown-click.mobile,.dropdown-hover.mobile{text-align:center}.dropdown-click.mobile,.dropdown-click.mobile .btn,.dropdown-click.mobile .button,.dropdown-hover.mobile,.dropdown-hover.mobile .btn,.dropdown-hover.mobile .button{width:100%}}@media (max-width:768px){.modal-content{width:500px}.modal{padding-top:50px}}@media (min-width:993px){.modal-content{width:900px}.hide-large{display:none!important}.sidebar.collapse{display:block!important}}@media (max-width:992px) and (min-width:601px){.hide-medium{display:none!important}}@media (max-width:992px){.sidebar.collapse{display:none}.main{margin-left:0!important;margin-right:0!important}.auto{max-width:100%}}.bottom,.top{position:fixed;width:100%;z-index:1}.top{top:0}.bottom{bottom:0}.overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:2}.display-topleft{position:absolute;left:0;top:0}.display-topright{position:absolute;right:0;top:0}.display-bottomleft{position:absolute;left:0;bottom:0}.display-bottomright{position:absolute;right:0;bottom:0}.display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}.display-left{position:absolute;top:50%;left:0;transform:translate(0,-50%);-ms-transform:translate(0,-50%)}.display-right{position:absolute;top:50%;right:0;transform:translate(0,-50%);-ms-transform:translate(0,-50%)}.display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0);-ms-transform:translate(-50%,0)}.display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0);-ms-transform:translate(-50%,0)}.display-container:hover .display-hover{display:block}.display-container:hover span.display-hover{display:inline-block}.display-hover{display:none}.display-position{position:absolute}.circle{border-radius:50%}.round-small{border-radius:2px}.round,.round-medium{border-radius:4px}.round-large{border-radius:8px}.round-xlarge{border-radius:16px}.round-xxlarge{border-radius:32px}.row-padding,.row-padding>.col,.row-padding>.half,.row-padding>.quarter,.row-padding>.third,.row-padding>.threequarter,.row-padding>.twothird{padding:0 8px}.container,.panel{padding:.01em 8px}.panel{margin-top:8px;margin-bottom:8px}.code,.codespan{font-family:Consolas,"courier new";font-size:16px}.code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4caf50;word-wrap:break-word}.codespan{color:#dc143c;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}.card,.card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,.16)}.card-4,.hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,.2),0 4px 20px 0 rgba(0,0,0,.19)}.spin{animation:spin 2s infinite linear}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}.animate-opacity{animation:opac .8s}@keyframes opac{from{opacity:0}to{opacity:1}}.animate-top{position:relative;animation:animatetop .4s}@keyframes animatetop{from{top:-300px;opacity:0}to{top:0;opacity:1}}.animate-left{position:relative;animation:animateleft .4s}@keyframes animateleft{from{left:-300px;opacity:0}to{left:0;opacity:1}}.animate-right{position:relative;animation:animateright .4s}@keyframes animateright{from{right:-300px;opacity:0}to{right:0;opacity:1}}.animate-bottom{position:relative;animation:animatebottom .4s}@keyframes animatebottom{from{bottom:-300px;opacity:0}to{bottom:0;opacity:1}}.animate-zoom{animation:animatezoom .6s}@keyframes animatezoom{from{transform:scale(0)}to{transform:scale(1)}}.animate-input{transition:width .4s ease-in-out}.animate-input:focus{width:100%!important}.hover-opacity:hover,.opacity{opacity:.6}.hover-opacity-off:hover,.opacity-off{opacity:1}.opacity-max{opacity:.25}.opacity-min{opacity:.75}.grayscale-max,.greyscale-max,.hover-grayscale:hover,.hover-greyscale:hover{filter:grayscale(100%)}.grayscale,.greyscale{filter:grayscale(75%)}.grayscale-min,.greyscale-min{filter:grayscale(50%)}.sepia{filter:sepia(75%)}.hover-sepia:hover,.sepia-max{filter:sepia(100%)}.sepia-min{filter:sepia(50%)}.tiny{font-size:10px!important}.small{font-size:12px!important}.medium{font-size:15px!important}.large{font-size:18px!important}.xlarge{font-size:24px!important}.xxlarge{font-size:36px!important}.xxxlarge{font-size:48px!important}.jumbo{font-size:64px!important}.left-align{text-align:left!important}.right-align{text-align:right!important}.justify{text-align:justify!important}.center{text-align:center!important}.border-0{border:0!important}.border{border:1px solid #ccc!important}.border-top{border-top:1px solid #ccc!important}.border-bottom{border-bottom:1px solid #ccc!important}.border-left{border-left:1px solid #ccc!important}.border-right{border-right:1px solid #ccc!important}.topbar{border-top:6px solid #ccc!important}.bottombar{border-bottom:6px solid #ccc!important}.leftbar{border-left:6px solid #ccc!important}.rightbar{border-right:6px solid #ccc!important}.code,.section{margin-top:2px!important;margin-bottom:16px!important}.margin{margin:16px!important}.margin-top{margin-top:16px!important}.margin-bottom{margin-bottom:16px!important}.margin-left{margin-left:16px!important}.margin-right{margin-right:16px!important}.padding-small{padding:4px 8px!important}.padding{padding:8px 16px!important}.padding-large{padding:12px 24px!important}.padding-16{padding-top:16px!important;padding-bottom:16px!important}.padding-24{padding-top:24px!important;padding-bottom:24px!important}.padding-32{padding-top:32px!important;padding-bottom:32px!important}.padding-48{padding-top:48px!important;padding-bottom:48px!important}.padding-64{padding-top:64px!important;padding-bottom:64px!important}.left{float:left!important}.right{float:right!important}.button:hover{color:#000!important;background-color:#ccc!important}.hover-none:hover,.transparent{background-color:transparent!important}.hover-none:hover{box-shadow:none!important}.amber,.hover-amber:hover{color:#000!important;background-color:#ffc107!important}.aqua,.hover-aqua:hover{color:#000!important;background-color:#0ff!important}.blue,.hover-blue:hover{color:#fff!important;background-color:#2196f3!important}.hover-light-blue:hover,.light-blue{color:#000!important;background-color:#87ceeb!important}.brown,.hover-brown:hover{color:#fff!important;background-color:#795548!important}.cyan,.hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}.blue-grey,.hover-blue-grey:hover{color:#fff!important;background-color:#607d8b!important}.green,.hover-green:hover{color:#fff!important;background-color:#4caf50!important}.hover-light-green:hover,.light-green{color:#000!important;background-color:#8bc34a!important}.hover-indigo:hover,.indigo{color:#fff!important;background-color:#3f51b5!important}.hover-khaki:hover,.khaki{color:#000!important;background-color:khaki!important}.hover-lime:hover,.lime{color:#000!important;background-color:#cddc39!important}.hover-orange:hover,.orange{color:#000!important;background-color:#ff9800!important}.deep-orange,.hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}.hover-pink:hover,.pink{color:#fff!important;background-color:#e91e63!important}.hover-purple:hover,.purple{color:#fff!important;background-color:#9c27b0!important}.deep-purple,.hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}.hover-red:hover,.red{color:#fff!important;background-color:#f44336!important}.hover-sand:hover,.sand{color:#000!important;background-color:#fdf5e6!important}.hover-teal:hover,.teal{color:#fff!important;background-color:#009688!important}.hover-yellow:hover,.yellow{color:#000!important;background-color:#ffeb3b!important}.hover-white:hover,.white{color:#000!important;background-color:#fff!important}.black,.hover-black:hover{color:#fff!important;background-color:#000!important}.grey,.hover-grey:hover{color:#000!important;background-color:#9e9e9e!important}.hover-light-grey:hover,.light-grey{color:#000!important;background-color:#f1f1f1!important}.dark-grey,.hover-dark-grey:hover{color:#fff!important;background-color:#616161!important}.hover-pale-red:hover,.pale-red{color:#000!important;background-color:#ffe7e7!important}.hover-pale-green:hover,.pale-green{color:#000!important;background-color:#e7ffe7!important}.hover-pale-yellow:hover,.pale-yellow{color:#000!important;background-color:#ffffd7!important}.hover-pale-blue:hover,.pale-blue{color:#000!important;background-color:#e7ffff!important}.text-align-right{text-align:right}.hover-text-amber:hover,.text-amber{color:#ffc107!important}.hover-text-aqua:hover,.text-aqua{color:#0ff!important}.hover-text-blue:hover,.text-blue{color:#2196f3!important}.hover-text-light-blue:hover,.text-light-blue{color:#87ceeb!important}.hover-text-brown:hover,.text-brown{color:#795548!important}.hover-text-cyan:hover,.text-cyan{color:#00bcd4!important}.hover-text-blue-grey:hover,.text-blue-grey{color:#607d8b!important}.hover-text-green:hover,.text-green{color:#4caf50!important}.hover-text-light-green:hover,.text-light-green{color:#8bc34a!important}.hover-text-indigo:hover,.text-indigo{color:#3f51b5!important}.hover-text-khaki:hover,.text-khaki{color:#b4aa50!important}.hover-text-lime:hover,.text-lime{color:#cddc39!important}.hover-text-orange:hover,.text-orange{color:#ff9800!important}.hover-text-deep-orange:hover,.text-deep-orange{color:#ff5722!important}.hover-text-pink:hover,.text-pink{color:#e91e63!important}.hover-text-purple:hover,.text-purple{color:#9c27b0!important}.hover-text-deep-purple:hover,.text-deep-purple{color:#673ab7!important}.hover-text-red:hover,.text-red{color:#f44336!important}.hover-text-sand:hover,.text-sand{color:#fdf5e6!important}.hover-text-teal:hover,.text-teal{color:#009688!important}.hover-text-yellow:hover,.text-yellow{color:#d2be0e!important}.hover-text-white:hover,.text-white{color:#fff!important}.hover-text-black:hover,.text-black{color:#000!important}.hover-text-grey:hover,.text-grey{color:#757575!important}.hover-text-light-grey:hover,.text-light-grey{color:#f1f1f1!important}.hover-text-dark-grey:hover,.text-dark-grey{color:#3a3a3a!important}.border-amber,.hover-border-amber:hover{border-color:#ffc107!important}.border-aqua,.hover-border-aqua:hover{border-color:#0ff!important}.border-blue,.hover-border-blue:hover{border-color:#2196f3!important}.border-light-blue,.hover-border-light-blue:hover{border-color:#87ceeb!important}.border-brown,.hover-border-brown:hover{border-color:#795548!important}.border-cyan,.hover-border-cyan:hover{border-color:#00bcd4!important}.border-blue-grey,.hover-blue-grey:hover{border-color:#607d8b!important}.border-green,.hover-border-green:hover{border-color:#4caf50!important}.border-light-green,.hover-border-light-green:hover{border-color:#8bc34a!important}.border-indigo,.hover-border-indigo:hover{border-color:#3f51b5!important}.border-khaki,.hover-border-khaki:hover{border-color:khaki!important}.border-lime,.hover-border-lime:hover{border-color:#cddc39!important}.border-orange,.hover-border-orange:hover{border-color:#ff9800!important}.border-deep-orange,.hover-border-deep-orange:hover{border-color:#ff5722!important}.border-pink,.hover-border-pink:hover{border-color:#e91e63!important}.border-purple,.hover-border-purple:hover{border-color:#9c27b0!important}.border-deep-purple,.hover-border-deep-purple:hover{border-color:#673ab7!important}.border-red,.hover-border-red:hover{border-color:#f44336!important}.border-sand,.hover-border-sand:hover{border-color:#fdf5e6!important}.border-teal,.hover-border-teal:hover{border-color:#009688!important}.border-yellow,.hover-border-yellow:hover{border-color:#ffeb3b!important}.border-white,.hover-border-white:hover{border-color:#fff!important}.border-black,.hover-border-black:hover{border-color:#000!important}.border-grey,.hover-border-grey:hover{border-color:#9e9e9e!important}.border-light-grey,.hover-border-light-grey:hover{border-color:#f1f1f1!important}.border-dark-grey,.hover-border-dark-grey:hover{border-color:#616161!important}.border-pale-red,.hover-border-pale-red:hover{border-color:#ffe7e7!important}.border-pale-green,.hover-border-pale-green:hover{border-color:#e7ffe7!important}.border-pale-yellow,.hover-border-pale-yellow:hover{border-color:#ffffd7!important}.border-pale-blue,.hover-border-pale-blue:hover{border-color:#e7ffff!important}.theme-l5{color:#000!important;background-color:#f6f8fc!important}.theme-l4{color:#000!important;background-color:#e1e9f6!important}.theme-l3{color:#000!important;background-color:#c3d3ed!important}.theme-l2{color:#000!important;background-color:#a5bee4!important}.theme-l1{color:#fff!important;background-color:#88a8db!important}.theme-d1{color:#fff!important;background-color:#5180cb!important}.theme-d2{color:#fff!important;background-color:#3a6fc3!important}.theme-d3{color:#fff!important;background-color:#3361aa!important}.theme-d4{color:#fff!important;background-color:#2c5392!important}.theme-d5{color:#fff!important;background-color:#24457a!important}.theme-light{color:#000!important;background-color:#f6f8fc!important}.theme-dark{color:#fff!important;background-color:#24457a!important}.theme-action{color:#fff!important;background-color:#24457a!important}.theme{color:#fff!important;background-color:#6a92d3!important}.text-theme{color:#6a92d3!important}.border-theme{border-color:#6a92d3!important}.hover-theme:hover{color:#fff!important;background-color:#6a92d3!important}.hover-text-theme:hover{color:#6a92d3!important}.hover-border-theme:hover{border-color:#6a92d3!important}.label{color:#999696}@media (max-width:768px){#sidebar{display:none}#main{margin-left:0}}.select{display:block;font-size:16px;font-family:sans-serif;font-weight:400;color:#444;line-height:1.3;padding:.6em 1.4em .5em .8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border-bottom:1px solid #aaa;box-shadow:0 1px 0 1px rgba(0,0,0,.04);-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:#e8f0fe;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),linear-gradient(to bottom,#e8f0fe 0,#e8f0fe 100%);background-repeat:no-repeat,repeat;background-position:right .7em top 50%,0 0;background-size:.65em auto,100%}.select::-ms-expand{display:none}.select:hover{border-color:#888}.select:focus{border-color:#aaa;box-shadow:0 0 1px 1px #6a92d3;box-shadow:0 0 0 1px -moz-mac-focusring;color:#222;outline:0}.select option{font-weight:400}.table{table-layout:fixed}.text-line-through{text-decoration:line-through}#snackbar{visibility:hidden;min-width:250px;margin-left:-125px;background-color:#333;color:#fff;text-align:center;padding:16px;position:fixed;z-index:1;left:50%;bottom:30px;font-size:17px}#snackbar.show{visibility:visible;-webkit-animation:fadein .5s,fadeout .5s 2.5s;animation:fadein .5s,fadeout .5s 2.5s}@-webkit-keyframes fadein{from{bottom:0;opacity:0}to{bottom:30px;opacity:1}}@keyframes fadein{from{bottom:0;opacity:0}to{bottom:30px;opacity:1}}@-webkit-keyframes fadeout{from{bottom:30px;opacity:1}to{bottom:0;opacity:0}}@keyframes fadeout{from{bottom:30px;opacity:1}to{bottom:0;opacity:0}}.tabulator-header-filter>input{background-color:#e8f0fe;border:1px solid #ccc;font-weight:400}.readonly{pointer-events:none;display:block;border:0;width:100%;background-color:#fff}.right-side-bg{background:url(../img/bg1.jpg);background-size:cover;min-height:100vh}
\ No newline at end of file
index a35abab..f548af2 100644 (file)
@@ -7,12 +7,14 @@ saveform: function(frmid,aftercallback,clientschema){
     flds["schemata"]=schemata;
   }
   delete flds["null"]; 
+  console.log("Data to save");
+  console.log(flds);
   if (aftercallback){
-    req.reqdata("POST","index.cgi",flds,aftercallback);
+    req.reqdata("POST","db.cgi",flds,aftercallback);
     form.formsaved({});
   }
   else {
-    req.reqdata("POST","index.cgi",flds,formsaved);
+    req.reqdata("POST","db.cgi",flds,formsaved);
   }
   return false;
 },
@@ -201,29 +203,20 @@ fillformbydataclass2: function(dataclass,choices,data,onblur){
           else if (frm[f].classList.contains("datefield")){ 
             console.log("set flatpickr value:" + data[frm[f].id]);
             frm[f]._flatpickr.setDate(data[frm[f].id]);
-          } else if (frm[f].classList.contains("timefield")){
-            frm[f]._flatpickr.setDate(data[frm[f].id]);
+          } 
+          else if (frm[f].classList.contains("timefield")){
+            frm[f].value = timecalc.StringToTime(data[frm[f].id]);
+          //   frm[f]._flatpickr.setDate(data[frm[f].id]);
           }
-          else if (frm[f].classList.contains("choices__input")){ 
-            if ((data[frm[f].id] != null) && (data[frm[f].id] != '[""]')){
-              if (data[frm[f].id].startsWith('["')){
-                choices[frm[f].id].setValue(JSON.parse(data[frm[f].id]));
-              }
-              else {
-                choices[frm[f].id].setChoiceByValue(data[frm[f].id]);
-              } 
-            }
-          } else {
+          else {
             frm[f].value=data[frm[f].id];
           }
         }
         if (frm[f].tagName == 'SELECT'){
-          if (frm[f].classList.contains("choices__input")){
-            if (frm[f].multiple == true){
-              choices[frm[f].id].setChoiceByValue(JSON.parse(data[frm[f].id]));
-            }else {
-              choices[frm[f].id].setChoiceByValue(data[frm[f].id]);
-            }
+          if (frm[f].multiple == true){
+            console.log("Set Multiple:" + frm[f].id);
+            console.log(data[frm[f].id]);
+            choices[frm[f].id].set(JSON.parse(data[frm[f].id]));
           } else {
             frm[f].value=data[frm[f].id];
           }
@@ -235,7 +228,7 @@ fillformbydataclass2: function(dataclass,choices,data,onblur){
 fillselectlist: function(obj,data,vidcol,vvalcol){
   var sellist = [];
   let csel = obj.value;
-  console.log("selected value =" + csel);
+  //console.log("selected value =" + csel);
   if (data){
     for (var i in data){
       sellist.push({value:data[i][vidcol],text:data[i][vvalcol]});
diff --git a/webapp/static/js/report.js b/webapp/static/js/report.js
new file mode 100644 (file)
index 0000000..f4187e7
--- /dev/null
@@ -0,0 +1,13 @@
+var report ={
+  generate: function(repname,filename,data){
+    showdataloaddlg("Création PDF encours","Attendez s.v.p.");
+    req.reqdata("POST","report.cgi",{"generate":repname,"file": filename + ".pdf","data":data},report.openreport);
+    return false;
+  },
+  openreport(data){
+    closedataloaddlg();
+    if (data && data.file){
+      window.open(api + "report.cgi?open=" + encodeURIComponent(data.file));
+    }
+  }
+}
\ No newline at end of file
index dfa7813..2a8df02 100644 (file)
   align-items              : center;
   font-size                : 12px;
   padding                  : 3px 5px;
-  margin                   : 3px 5px 3px 0px;
+  margin                   : 1px 1px;
   color                    : #000;
+  font-size: 11pt;
   background-color         : #9ABCEA;
-  border-radius            : 4px;
+  border-radius            : 2px;
   animation-name           : scaleIn;
   animation-duration       : .2s;
   animation-timing-function: ease-out;
index 2a371b6..dfce0e8 100644 (file)
@@ -44,7 +44,7 @@ var dlgreport = {
       var repdata = '';
       for (var r in data.reports){
         repdata += '<a href="javascript:dlgreport.generate(\''+ data.reports[r].name+'\');" class="bar-item button padding border">';
-        repdata += '<img src="[% abspath %]img/icons/pdf.svg" style="width: 24px;">&nbsp;' + data.reports[r].label +'</a>';
+        repdata += '<span class="icon icon-pdf" style="font-size: 16px;"></span>' + data.reports[r].label +'</a>';
       }
       document.getElementById("dlgreport_reportlist").innerHTML = repdata;
       document.getElementById('dlgreport').style.display='block';
index 5edcc71..9295b0b 100644 (file)
@@ -18,7 +18,7 @@
     <!-- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
   <meta http-equiv="Pragma" content="no-cache" />
   <meta http-equiv="Expires" content="0" /> -->
-    <link rel="apple-touch-icon" sizes="57x57" href="[% abspath %][% staticpath %]img/favicon/apple-icon-57x57.png">
+<link rel="apple-touch-icon" sizes="57x57" href="[% abspath %][% staticpath %]img/favicon/apple-icon-57x57.png">
 <link rel="apple-touch-icon" sizes="60x60" href="[% abspath %][% staticpath %]img/favicon/apple-icon-60x60.png">
 <link rel="apple-touch-icon" sizes="72x72" href="[% abspath %][% staticpath %]img/favicon/apple-icon-72x72.png">
 <link rel="apple-touch-icon" sizes="76x76" href="[% abspath %][% staticpath %]img/favicon/apple-icon-76x76.png">
@@ -62,7 +62,7 @@
   <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/tabulator/js/tabulator.min.js"></script>
   <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/moment/moment-with-locales.min.js"></script>
   <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/tinymce/js/tinymce/tinymce.min.js"></script>
-  <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/slimselect/slimselect.min.js"></script>
+  <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/slimselect/slimselect.js"></script>
   <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/flatpickr/flatpickr.min.js"></script>
   <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/flatpickr/l10n/fr.js"></script>
   <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/flatpickr/plugins/weekSelect/weekSelect.js"></script>
@@ -72,7 +72,8 @@
   <script type="text/javascript" src="[% abspath %][% staticpath %]js/timecalc.js?v=[% vstamp %]"></script>
   <script type="text/javascript" src="[% abspath %][% staticpath %]js/form.js?v=[% vstamp %]"></script>
   <script type="text/javascript" src="[% abspath %][% staticpath %]js/record.js?v=[% vstamp %]"></script>
-   <script type="text/javascript" src="[%pagename%]/[% pagename %].js?v=[% vstamp %]"></script>
+  <script type="text/javascript" src="[% abspath %][% staticpath %]js/report.js?v=[% vstamp %]"></script>
+  
 </body>
 
 </html>
\ No newline at end of file
index 52f8e7c..27ea6e1 100644 (file)
   [% IF state.length > 0 %]\r
     [% fieldeditbox(column,table,title,size,state,value) %]\r
   [% ELSE %]\r
-  <div class="container">\r
+  <div class="container ">\r
         \r
-        <select class="select data_[% table %] [% IF state.length > 0 %][% state %][% END %][% IF extraclass.length > 0 %][% extraclass %][% END%]" id="[% column %]" data-column="[% column %]"  data-table="[% table %]" data-id="" value="[% value %]" name="[% table %]_[% column %]" [% IF state.length > 0 %][% state %][% END %] [% IF blurevent %]onchange="[% changeevent %]"[% END %]>\r
+        <select class="select data_[% table %] [% IF state.length > 0 %][% state %][% END %]" id="[% column %]" data-column="[% column %]"  data-table="[% table %]" data-id="" value="[% value %]" name="[% table %]_[% column %]" [% IF state.length > 0 %][% state %][% END %] [% IF blurevent %]onchange="[% changeevent %]"[% END %]>\r
         </select>\r
-        <label for="[% table %]_[% column %]" class="label">[% title %]</label>\r
+        <label for="[% table %]_[% column %]" class="label [% IF extraclass.length > 0 %][% extraclass %][% END%]">[% title %]</label>\r
   </div>\r
   [% END %]\r
 [% END -%]\r
   </div>\r
   [% ELSE %]\r
     <div class="cell" style="width: 60px;">\r
-        <input type="time" class="input-append timefield data_[% table %] [% IF class %][% class %][% END %]"  id="[% column %]" name="[% table %]_[% column %]"  data-column="[% column %]"  data-table="[% table %]" data-id="" value="[% value %]" [% IF blurevent %]onblur="[% blurevent %]"[% END %]/>\r
+        <input type="text" class="input-append timefield data_[% table %] [% IF class %][% class %][% END %]"  id="[% column %]" name="[% table %]_[% column %]"  data-column="[% column %]"  data-table="[% table %]" data-id="" value="[% value %]" onblur="timecalc.validateTime(this);[% IF blurevent %][% blurevent %][% END %];return false;"/>\r
     </div>\r
     <div class="cell" sytle="width: 20px;">\r
-        <a class="toolbarbtn text-red" style="padding: 4px 8px; border: 0;" onclick="document.getElementById('[% column %]').value='';document.getElementById('[% column %]')._flatpickr.clear();return false;"><span class="icon icon-remove" style="font-size: 10px;"></span></a>\r
+        <a class="toolbarbtn text-red" style="padding: 4px 8px; border: 0;" onclick="document.getElementById('[% column %]').value='';return false;"><span class="icon icon-remove" style="font-size: 10px;"></span></a>\r
     </div>    \r
   [% END %]\r
   </div>\r
       </div>\r
 [% END -%]\r
 [% MACRO fieldintervalbox(column,table,title,size,state,value,class,blurevent) BLOCK -%]\r
-  <div class="container col [% IF size %][% size %][% END  %]">\r
+\r
        \r
         <div class="container">\r
   [% IF state == "disabled" || state == "readonly" %]\r
     <input type="text" class="input data_[% table %] white text-black [% IF class %][% class %][% END %]"  style="max-width: 60px; width: 60px;" id="[% column %]"data-column="[% column %]"  data-table="[% table %]" data-id=""  name="[% table %]_[% column %]" maxlength="5"  value="[% value %]" readonly/>\r
   [% ELSE %]\r
-        <input type="text" class="input-append data_[% table %] intervalfield [% IF class %][% class %][% END %]"  style="max-width: 60px; width: 60px;" id="[% column %]" name="[% table %]_[% column %]" maxlength="5"  placeholder="00:00"  value="[% value %]" onchange="timecalc.validateInterval(this);return false;" [% IF blurevent %]onblur="[% blurevent %]"[% END %]/>\r
+        <input type="text" class="input input-append data_[% table %] intervalfield [% IF class %][% class %][% END %]"  style="max-width: 60px; width: 60px;" id="[% column %]" name="[% table %]_[% column %]" maxlength="5"  placeholder="00:00"  value="[% value %]" onchange="timecalc.validateInterval(this);return false;" [% IF blurevent %]onblur="[% blurevent %]"[% END %]/>\r
         \r
         \r
   [% END %]\r
+  <label for="[% table %]_[% column %]" class="label">[% title %]</label>\r
   </div>\r
-   <label for="[% table %]_[% column %]" class="label">[% title %]</label>\r
-      </div>\r
+   \r
+      \r
 [% END -%]\r
 [% MACRO fieldtextarea(column,table,title,size,state,height,value,blurevent) BLOCK -%]\r
   <div class="container [% IF size %][% size %][% END  %]" >\r
index 0610d1b..ceefb3f 100644 (file)
@@ -28,8 +28,8 @@
             Configuration sectoriel POT
           </div>
           <button class="bar-item toolbarbtn right" onclick="worktimes.remove(); return false;" id="btn_delete_staffcontract"><span class="icon icon-remove text-red" style="font-size: 16px;"></span>supprimer</button> 
-          <button class="bar-item toolbarbtn right" onclick="worktimes.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;">éditer</span></button>
-           <button class="bar-item toolbarbtn right" onclick="worktimes.add(); return false;"><span class="icon icon-plus" style="font-size: 16px;">ajouter</span></button>
+          <button class="bar-item toolbarbtn right" onclick="worktimes.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;"></span>éditer</button>
+           <button class="bar-item toolbarbtn right" onclick="worktimes.add(); return false;"><span class="icon icon-plus" style="font-size: 16px;"></span>ajouter</button>
         </div>
         <div id="tbl_worktimes"></div>
       </div>
@@ -39,8 +39,8 @@
             Utilisateurs
           </div>
           <button class="bar-item toolbarbtn right" id="btn_delete_staffcontract" onclick="users.remove(); return false;"><span class="icon icon-remove text-red" style="font-size: 16px;"></span>supprimer</button> 
-          <button class="bar-item toolbarbtn right" onclick="users.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;">éditer</span></button>
-          <button class="bar-item toolbarbtn right" onclick="users.add(); return false;"><span class="icon icon-plus" style="font-size: 16px;">ajouter</span></button>
+          <button class="bar-item toolbarbtn right" onclick="users.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;"></span>éditer</button>
+          <button class="bar-item toolbarbtn right" onclick="users.add(); return false;"><span class="icon icon-plus" style="font-size: 16px;"></span>ajouter</button>
         </div>
         <div id="tbl_users"></div>
       </div>
@@ -48,7 +48,8 @@
   </div>
 </div>[% INCLUDE module/companies/dlg_dataset.tt %] [% INCLUDE module/companies/dlg_staffgroups.tt %] [% INCLUDE module/companies/dlg_worktimes.tt %] [% INCLUDE block/dlgdeleterow.tt %] [% INCLUDE block/dlgmessage.tt %] [% INCLUDE
 module/companies/dlg_users.tt %] 
-<script src="companies/staffgroups.js"></script> 
-<script src="companies/worktimes.js"></script> 
-<script src="companies/users.js"></script> 
-<script src="companies/schemadataset.js"></script>
+<script type="text/javascript" src="companies/companies.js?v=[% vstamp %]"></script>
+<script src="companies/staffgroups.js?v=[% vstamp %]"></script> 
+<script src="companies/worktimes.js?v=[% vstamp %]"></script> 
+<script src="companies/users.js?v=[% vstamp %]"></script> 
+<script src="companies/schemadataset.js?v=[% vstamp %]"></script>
index 6315948..0cf009e 100644 (file)
@@ -1,6 +1,8 @@
 
 schemata = "public";
 currentview = null;
+
+let periodunits = [{"value":"week","text":"Semaine(s)"},{"value":"month","text":"Mois"}]; 
 function initpage(){
   companies.inittable();
   staffgroups.inittable();
@@ -40,6 +42,7 @@ let companies ={
       showSearch: false,
       afterClose: function(){record.savefield(document.getElementById('reportperiodunit'));}
     });
+    form.fillselectlist(companies.choices["reportperiodunit"],periodunits,'value','text');
     // companies.choices["reportperiodunit"].passedElement.element.addEventListener(
     //   'change',
     //   function(event) {
@@ -111,9 +114,10 @@ let companies ={
       //app.setschemata();
       //TODO: parent.setschemata(udata[0].schemata);
       form.cleanform2("companies",companies.choices);
-      req.reqdata("POST", "db.cgi", { "get":  "companies" + "data","schemata":schemata, "filter":"id='" + udata[0].id + "'"}, companies.fillform);
+      req.reqdata("POST", "db.cgi", { "get":  "companies" + "data","schemata":"public", "filter":"id='" + udata[0].id + "'"}, companies.fillform);
       staffgroups.gettbldata();
       worktimes.gettbldata();
+      users.gettbldata(),
       //if (companies.current_view == 'nodata'){ companies.current_view = 'basedata';}
       companies.setview(companies.current_view);
       //app.viewpanel('frm_' +"companies");
@@ -146,7 +150,7 @@ let companies ={
   },
   checkschema(ev,fieldid){
     let companyname = document.getElementById(fieldid).value;
-    req.reqdata("POST","index.cgi",{"fn":"getfreeschema","companyname":companyname},companies.setnewschema);
+    req.reqdata("POST","db.cgi",{"fn":"getfreeschema","companyname":companyname},companies.setnewschema);
   },
   setnewschema(data){
     if (data && data.newschema){
index 1818282..658d7b2 100644 (file)
@@ -9,7 +9,7 @@
     <div class="container">
       <div id="usermsg"></div>
       <form id="frm_users" name="frm_users">
-        [% fieldhidden('users_id','users','ident') %]
+        [% fieldhidden('id_users','users','ident') %]
         <div class="row">
             <div class="cell" style="width: 300px;">
               [% fieldeditbox("username","users","Login / E-Mail",'','','','','') %]
index 37e4b3e..896b773 100644 (file)
@@ -2,11 +2,9 @@
 let schemadataset= {
   choices: {"newsector":null},
   initform: function(){
-    schemadataset.choices["newsector"] = new Choices('#newsector',{
-      searchEnabled: false,
-      itemSelectText: '',
-      removeItemButton: true,
-      choices : []
+    schemadataset.choices["newsector"] = new SlimSelect({
+      select: "#newsector",
+      showSearch: false
     });
     schemadataset.getsectors();
   },
index 31a1c8d..bba83cd 100644 (file)
@@ -4,12 +4,12 @@ let staffgroups = {
   initform: function(){},
   inittable: function(){
     staffgroups.tbl = new Tabulator("#tbl_staffgroups", {
-      headerVisible:false,
+      // headerVisible:false,
       height: "254px",
       layout: "fitDataStretch",
       selectable: 1,
       rowContext:function(e, row){ e.preventDefault(); },
-      columns: [{ title: "Département",  field: "groupname" }]
+      columns: [{ title: "Département",  field: "groupname" },{ title: "salarié(s)",  field: "staffmembers" }]
   });
     //staffgroups.gettbldata();
   },
index 36c1a5a..0bb3430 100644 (file)
@@ -41,9 +41,9 @@ let users ={
     // {title:"Entreprise", field:"company",headerFilter:"input"},  
     {title:"Nom", field:"surname",resizable: false},
     {title:"Prénom", field:"prename",resizable:false},
-    {title:"Accès", field:"usergroup",resizable:false},
+    {title:"Accès", field:"usergroups",resizable:false},
     {title:"Bloqué", field:"blocked",formatter:"tickCross",hozAlign:"center",  
-     formatterParams:{allowEmpty:true,allowTruthy:true,tickElement:'<span style="color: green;">&#10004;</span>'}},
+     formatterParams:{allowEmpty:true,allowTruthy:true,tickElement:'<span style="color: red;">&#10004;</span>'}},
     // {title:"Accès",field:"groupname",headerFilter:"input"},
     // {title:"Position",field:"job"},
     // {title:"Téléphone",field:"phone"},
@@ -56,7 +56,7 @@ let users ={
   gettbldata: function(){
       let sel= companies.tbl.getSelectedData();
       if (sel[0]){
-        req.reqdata("POST", "db.cgi", { "get":  "userslist","schemata":schemata,"filter":" schemaaccess='" + sel[0].schemata + "'"}, users.loadtbldata);
+        req.reqdata("POST", "db.cgi", { "get":  "userslist","schemata":"public","filter":" schemaaccess='" + sel[0].schemata + "'"}, users.loadtbldata);
       }
   },
   loadtbldata: function(data){
@@ -70,7 +70,7 @@ let users ={
     let udata = users.tbl.getSelectedData();
     if (udata[0]) {
       form.cleanform2("users",users.choices);
-      req.reqdata("POST", "db.cgi", { "get":  "users" + "data","schemata":schemata, "filter":"id='" + udata[0].id + "'"}, users.fillform);
+      req.reqdata("POST", "db.cgi", { "get":  "usersdata","schemata":"public", "filter":"id='" + udata[0].id + "'"}, users.fillform);
       app.viewdialog("users");
     }
   },
@@ -107,7 +107,7 @@ let users ={
   },
   sendnewpassword: function(){
     let fndata = {"fn":"sendnewpassword","email":document.getElementById("username").value};
-    req.reqdata("POST","index.cgi",fndata,users.aftersendnewpassword);
+    req.reqdata("POST","app.cgi",fndata,users.aftersendnewpassword);
 
   },
   aftersendnewpassword: function(data){
@@ -128,19 +128,19 @@ let users ={
     return false;
   },
   getcompanies: function(){
-    req.reqdata("POST","db.cgi",{"get":"companieslist","schemata":schemata},users.fillcompanies);
+    req.reqdata("POST","db.cgi",{"get":"companieslist","schemata":"public"},users.fillcompanies);
   },
   fillcompanies: function(data){
     form.fillselectlist(users.choices["id_company"],data.sqldata,'id','company');
   },
   getusergroups: function(){
-    req.reqdata("POST","db.cgi",{"get":"usergroupslist","schemata":schemata},users.fillusergroups);
+    req.reqdata("POST","db.cgi",{"get":"usergroupslist","schemata":"public"},users.fillusergroups);
   },
   fillusergroups: function(data){
     form.fillselectlist(users.choices["id_usergroup"],data.sqldata,'id','groupname');
   },
   getschemata: function(){
-    req.reqdata("POST","db.cgi",{"get":"schemata","schemata":schemata},users.fillschemata);
+    req.reqdata("POST","db.cgi",{"get":"schemata","schemata":"public"},users.fillschemata);
   },
   fillschemata: function(data){
     form.fillselectlist(users.choices["schemaaccess"],data.sqldata,'schemaname','company');
@@ -149,13 +149,13 @@ let users ={
     let usernamex = document.getElementsByName("users_username");
     let newusername = usernamex[0].value;
     if (users.validateEmail(newusername)){
-      let iduser = document.getElementById("id").value;
+      let iduser = document.getElementById("id_users").value;
       let filter = "username='"+ newusername+ "'";
       
       if (iduser != ''){
         filter += " and id !=" + iduser;
       }
-      req.reqdata("POST","db.cgi",{"get":"usersdata","filter":filter},users.checkmailreturn);
+      req.reqdata("POST","db.cgi",{"get":"usersdata","schemata":"public","filter":filter},users.checkmailreturn);
     }else {
        document.getElementById("usermsg").innerHTML= '<div class="panel red">inserez un email valide s.v.p.!</div>';
     }
@@ -174,9 +174,20 @@ let users ={
           return re.test(String(email).toLowerCase());
   },
   save: function(){
-      form.saveform("users",users.userformsaved);
+    var flds=form.getformcontent("users",null);
+    flds["fn"] ="saveform";
+    flds["schemata"]="public";
+    flds["ident_users_id"] = flds["ident_users_id_users"];
+    delete flds["null"]; 
+    delete flds["ident_users_id_users"];
+    console.log("Data to save");
+    console.log(flds);
+    req.reqdata("POST","db.cgi",flds,users.userformsaved);
+    return false;
+  
   },
   userformsaved: function (data){
+    
     users.gettbldata();
     document.getElementById('dlg_users').style.display='none';
     form.formsaved(null);      
index fdcdf3b..d32ff2f 100644 (file)
@@ -6,6 +6,7 @@
       <div class="bar-item"><img style="height: 40px;" src="[% abspath %][% staticpath %]img/potlogowhite.svg"> </div>
       <div class="bar-item PageHeadTitle hide-small">POT - Plan d'orgatisation du travail</div>
       <button class="bar-item toolbarbtn  right" onclick="app.logout();"><span class="icon icon-logout" style="font-size: 22px;"></span>Logout</button> 
+      <div class="bar-item right">[% fieldselectbox("current_schemata","session","DataSet",'','',session.sessiondata.schemata,'text-white','') %]</div>
     </div>
   <!-- <span class="bar-item right" id="modulename" style="display: none;"></span> -->
 </div>
       <a class="bar-item bodybtn" href="[% abspath %]workplans.html"><span class="icon icon-template" style="font-size: 24px;"/></span>Modèles</a>
     </div>
   </div>
-  <div class="card"  style="margin-top: 10px;">
+  <!--<div class="card"  style="margin-top: 10px;">
     <header class="container moduletoolbar">
       <h3>Profile</h3>
     </header>
     <div class="bar">
       <a class="bar-item bodybtn" href="[% abspath %]profile.html"><span class="icon icon-key" style="font-size: 24px;"/></span>Changer mot de passe</a>
-      <div class="bar-item">[% fieldselectbox("current_schemata","session","DataSet",'','',session.sessiondata.schemata,'','') %]</div>
+      
     </div>
-  </div>
+  </div>-->
 </div>
+<script type="text/javascript" src="index/index.js?v=[% vstamp %]"></script>
 
index 21db8cf..eee58ee 100644 (file)
@@ -5,13 +5,13 @@
      <a class="bar-item toolbarbtn" href="[% abspath %]index.html"><span class="icon icon-back" style="font-size: 16px;"></span>retour</a>
       <div class="bar-item PageHeadTitle">Périodes de références</div>
       <div class="toolbar paneltoolbar" id="tlb_periods">
-      <button class="bar-item toolbarbtn  right" onclick="reportperiod.add();"><span class="icon icon-plus" style="font-size: 16px;"><br/>ajouter</button> 
-      <button class="bar-item toolbarbtn right" onclick="reportperiod.editplan();"><span class="icon icon-edit" style="font-size: 16px;"><br/>éditer</button>
-       <button class="bar-item toolbarbtn right" onclick="reportperiod.generatereport();"><span class="icon icon-pdf" style="font-size: 16px;"><br/>PDF</button>
-      <button class="bar-item toolbarbtn right" onclick="reportperiod.datarefresh();"><span class="icon icon-datarefresh" style="font-size: 16px;"><br/>actualiser</button>
-      <button class="bar-item toolbarbtn right" onclick="reportperiod.showdlgpayedhours();"><span class="icon icon-pay" style="font-size: 16px;"><br/>heures payées</button>
+      <button class="bar-item toolbarbtn  right" onclick="reportperiod.add();"><span class="icon icon-plus" style="font-size: 16px;"></span>ajouter</button> 
+      <button class="bar-item toolbarbtn right" onclick="reportperiod.editplan();"><span class="icon icon-edit" style="font-size: 16px;"></span>éditer</button>
+       <button class="bar-item toolbarbtn right" onclick="reportperiod.generatereport();"><span class="icon icon-pdf" style="font-size: 16px;"></span>PDF</button>
+      <button class="bar-item toolbarbtn right" onclick="reportperiod.datarefresh();"><span class="icon icon-datarefresh" style="font-size: 16px;"></span>actualiser</button>
+      <button class="bar-item toolbarbtn right" onclick="reportperiod.showdlgpayedhours();"><span class="icon icon-pay" style="font-size: 16px;"></span>heures payées</button>
   <!--<button class="bar-item toolbarbtn  right" onclick="staff.remove();"><span class="icon icon-remove text-red" style="font-size: 16px;"></span>supprimer</button>
-  <button class="bar-item toolbarbtn  right" onclick="staff.edit();"><span class="icon icon-edit" style="font-size: 16px;"><br/>éditer</button>-->
+  <button class="bar-item toolbarbtn  right" onclick="staff.edit();"><span class="icon icon-edit" style="font-size: 16px;">éditer</button>-->
     </div>
   </div>
 </div>
       </div>
       <div class="panel" id="pnl_staffperiodweeks" style="display: none;">
         <div class="bar moduletoolbar">
-          <button class="bar-item toolbarbtn" onclick="reportperiod.setview('periods'); return false;"><span class="icon icon-back" style="font-size: 16px;"><br/>retour</button>
+          <button class="bar-item toolbarbtn" onclick="reportperiod.setview('periods'); return false;"><span class="icon icon-back" style="font-size: 16px;"></span>retour</button>
           <div class="bar-item SubHeadTitle" id="periodtitle" style="display: none;"></div>
           <div class="bar-item SubHeadTitle" id="stafftitle"></div>
-          <button class="bar-item toolbarbtn right" onclick="staffperiodweeks.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;"><br/>editer</button>
+          [% INCLUDE module/periods/tlb_staffperiodweeks.tt %]
+          
         </div>
       <div id="tbl_staffperiodweeks" ></div>
       </div>
@@ -45,5 +46,5 @@
     [% INCLUDE block/dlgaction.tt %] 
     [% INCLUDE block/dlgstaffperioddays.tt %]
     [% INCLUDE block/dlgstaffpayedhours.tt %]
-    <script src="periods/reportperiod.js"></script>
-    <script src="periods/staffperiodweeks.js"></script>
\ No newline at end of file
+    <script src="periods/reportperiod.js?v=[% vstamp %]"></script>
+    <script src="periods/staffperiodweeks.js?v=[% vstamp %]"></script>
\ No newline at end of file
index 2bb3a6b..68ffcb3 100644 (file)
@@ -18,9 +18,10 @@ let reportperiod ={
   inittable: function(){
     reportperiod.tblfilter = new Tabulator("#tbl_reportperiodfilter", {
       // headerFilterPlaceholder: "filter...",
-      height: "calc(100vh - 120px)",
+      height: "calc(100vh - 56px)",
       layout: "fitDataStretch",
       selectable: 1,
+      
       // persistence:{
       //   sort: true, //persist column sorting
       //   filter: true, //persist filter sorting
@@ -29,10 +30,7 @@ let reportperiod ={
       // },
       rowClick:function(e, row){
         console.log("Filter selected");
-        let fsel = reportperiod.tblfilter.getSelectedData();
-        console.log(fsel);
-        reportperiod.gettbldata(fsel[0].id);
-        reportperiod.setview(reportperiod.current_view);
+        reportperiod.gettbldata();
         //invoices.gettbldata(fsel);
         //invoices.getsums(fsel);
       },
@@ -61,9 +59,10 @@ let reportperiod ={
     });
     reportperiod.tbl = new Tabulator("#tbl_reportperiod", {
       // headerFilterPlaceholder: "filter...",
-      height: "calc(100vh - 120px)",
-      layout: "fitData",
+      height: "calc(100vh - 56px)",
+      layout: "fitDataFill",
       selectable: 1,
+      // selectableRangeMode:"click",
       // persistence:{
       //   sort: true, //persist column sorting
       //   filter: true, //persist filter sorting
@@ -98,13 +97,16 @@ let reportperiod ={
     });
     reportperiod.gettbldatafilter();
   },
-  gettbldata: function(idrp){
-    if (idrp){
-      req.reqdata("POST", "db.cgi", { "get":  "staffreportperiodlist","schemata":schemata, "filter":" id_reportperiod='" + idrp +"'"}, reportperiod.loadtbldata);
+  gettbldata: function(){
+    let fsel = reportperiod.tblfilter.getSelectedData();
+    console.log(fsel);
+    if (fsel[0]){
+      req.reqdata("POST", "db.cgi", { "get":  "staffreportperiodlist","schemata":schemata, "filter":" id_reportperiod='" + fsel[0].id +"'"}, reportperiod.loadtbldata);
+      
     } else {
       reportperiod.loadtbldata({"sqldata":[]});
     }
-    
+    reportperiod.setview(reportperiod.current_view);
   },
   loadtbldata: function(data){
     if (data && data.sqldata) { reportperiod.tbl.setData(data.sqldata);}
@@ -127,10 +129,10 @@ let reportperiod ={
     reportperiod.gettbldata();
   },
   generatereport: function(){
-    let udata = reportperiod.tbl.getSelectedData();
-    let repdata = {"schemata":schemata,"id_reportperiod":udata[0].id_reportperiod};
+    let udata = reportperiod.tblfilter.getSelectedData();
+    let repdata = {"schemata":schemata,"id_reportperiod":udata[0].id};
     if (udata[0]) {
-      dlgreport.show('pot',repdata,"periode_" + moment(udata[0].startdate).format("YYYYMMDD") + "-" + moment(udata[0].enddate).format("YYYYMMDD"));
+      report.generate('pot/pot_staffmember_period',"periode_" + moment(udata[0].startdate).format("YYYYMMDD") + "-" + moment(udata[0].enddate).format("YYYYMMDD"),repdata);
     }
   },
   datarefresh: function(){
@@ -168,7 +170,7 @@ let reportperiod ={
     rpdata["fn"] ="saveform";
     rpdata["schemata"] = schemata;
     form.formsaved({});
-    req.reqdata("POST","index.cgi",rpdata,reportperiod.gettbldata);
+    req.reqdata("POST","db.cgi",rpdata,reportperiod.gettbldata);
     return false;
   },
   setview: function(viewname){
index ff6f6ea..3c1f180 100644 (file)
@@ -8,26 +8,36 @@ var staffperiodweeks = {
   //name: "staffperiodweeks",
   currentday: null,
   parenttbl: null,
+  copy_id: null,
   choices:{"id_vacancytype":null,"id_recuperationtype":null},
   initform: function(){
-    flatpickr(".timefield",{
-      dateFormat: "H:i",
-      defaultHour:'',
-      defaultMinute:'',
-      enableTime: true,
-      noCalendar: true,
-      time_24hr: true,
-      "locale": "fr",
-    });
-    
-    
+    // flatpickr(".timefield",{
+    //   dateFormat: "H:i",
+    //   defaultHour:'',
+    //   defaultMinute:'',
+    //   enableTime: true,
+    //   noCalendar: true,
+    //   time_24hr: true,
+    //   "locale": "fr",
+    // });
     staffperiodweeks.choices["id_vacancytype"] = new SlimSelect({
       select: "#id_vacancytype",
-      showSearch: false
+      showSearch: false,
+      allowDeselect: true,
+      deselectLabel: '<span class="text-red">✖</span>',
+      onChange: function(){
+        staffperiodweeks.setvacancyhours();
+      }
     });
     staffperiodweeks.choices["id_recuperationtype"] = new SlimSelect({
       select: "#id_recuperationtype",
-      showSearch: false
+      showSearch: false,
+      allowDeselect: true,
+      deselectLabel: '<span class="text-red">✖</span>',
+      onChange: function(){
+        staffperiodweeks.setrecuperationhours();
+      },
+
     });
     staffperiodweeks.getvacancy();
     staffperiodweeks.getrecuperation();
@@ -39,14 +49,15 @@ var staffperiodweeks = {
         tfields[i].addEventListener("change",function(){staffperiodweeks.checkworktime();});
       } 
     }
-    document.getElementById("id_vacancytype").addEventListener('change', function(event){staffperiodweeks.setvacancyhours(event,this.id);});
-    document.getElementById("id_recuperationtype").addEventListener('change', function(event){staffperiodweeks.setrecuperationhours(event,this.id);});
+    document.getElementById("id_vacancytype").addEventListener('change', function(event){});
+    document.getElementById("id_recuperationtype").addEventListener('change', function(event){});
   },
   inittable: function(){
      staffperiodweeks.tbl = new Tabulator("#tbl_staffperiodweeks", {
-      height: "calc(100vh - 176px)",
-      layout: "fitDataStretch",
-      selectable: 1,
+      height: "calc(100vh - 112px)",
+      layout: "fitDataFill",
+      selectable: true,
+      selectableRangeMode:"click",
       rowContext:function(e, row){e.preventDefault();},
       groupBy:["dspweek"],
       groupStartOpen:[true],
@@ -54,18 +65,18 @@ var staffperiodweeks = {
       groupHeader:[function(value, count, data){ return value;},
       ],
       columns: [
-        { title: "Date",field: "daydate",align:"right",sorter:"datetime",formatter:"datetime",formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"dd, DD.MM.YYYY",invalidPlaceholder:""}},
-        { title: "Début 1",field: "timestart1",sorter: false,hozAlign:"right"},
-        { title: "Fin 1",field: "timeend1",sorter:false,hozAlign:"right"},
-        { title: "Coup.",field: "interruptionhours",sorter:false,hozAlign:"right"},
-        { title: "Début 2",field: "timestart2",sorter: false,hozAlign:"right"},
-        { title: "Fin 2",field: "timeend2",sorter: false,hozAlign:"right"},
-        { title: "Pause",field: "timepause",sorter: false,hozAlign:"right"},
-        { title: "Travail",field: "workhours",sorter: false,hozAlign:"right",bottomCalc:staffperiodweeks.setweekworkhours},
-        { title: "Congé",field: "vacancyhours",sorter: false,hozAlign:"right",bottomCalc:staffperiodweeks.setweekvacancyhours},
-        { title: "Récup.",field: "recuperationhours",hozAlign:"right",sorter: false,bottomCalc:staffperiodweeks.setweekrecuperationhours},
-        { title: "Total",field: "dayhours",hozAlign:"right",sorter: false,bottomCalc:staffperiodweeks.setweektotalhours},
-        { title: "Diff",field:"diffhours",hozAlign:"right",formatter:nullFormatter,sorter:false,bottomCalc:staffperiodweeks.setweekdiffhours}
+        { title: "Date",field: "daydate",align:"right",headerSort:"datetime",formatter:"datetime",formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"dd, DD.MM.YYYY",invalidPlaceholder:""}},
+        { title: "Début 1",field: "timestart1",headerSort: false,hozAlign:"right"},
+        { title: "Fin 1",field: "timeend1",headerSort:false,hozAlign:"right"},
+        { title: "Coup.",field: "interruptionhours",headerSort:false,hozAlign:"right"},
+        { title: "Début 2",field: "timestart2",headerSort: false,hozAlign:"right"},
+        { title: "Fin 2",field: "timeend2",headerSort: false,hozAlign:"right"},
+        { title: "Pause",field: "timepause",headerSort: false,hozAlign:"right"},
+        { title: "Travail",field: "workhours",headerSort: false,hozAlign:"right",bottomCalc:staffperiodweeks.setweekworkhours},
+        { title: "Congé",field: "vacancyhours",headerSort: false,hozAlign:"right",bottomCalc:staffperiodweeks.setweekvacancyhours},
+        { title: "Récup.",field: "recuperationhours",hozAlign:"right",headerSort: false,bottomCalc:staffperiodweeks.setweekrecuperationhours},
+        { title: "Total",field: "dayhours",hozAlign:"right",headerSort: false,bottomCalc:staffperiodweeks.setweektotalhours},
+        { title: "Diff",field:"diffhours",formatter:nullFormatter,headerSort:false,bottomCalc:staffperiodweeks.setweekdiffhours}
       ]
   });
   staffperiodweeks.initform();
@@ -129,7 +140,7 @@ var staffperiodweeks = {
     wpdata["fn"] ="saveform";
     wpdata["schemata"] = schemata;
     showdataloaddlg('','<div class="xxlarge">Attendez s.v.p.!</div>');
-    req.reqdata("POST","index.cgi",wpdata,staffperiodweeks.afterdatasaved);
+    req.reqdata("POST","db.cgi",wpdata,staffperiodweeks.afterdatasaved);
     return false;
   },
   afterdatasaved: function(data){
@@ -157,22 +168,25 @@ var staffperiodweeks = {
   fillrecuperation: function(data){
     form.fillselectlist(staffperiodweeks.choices["id_recuperationtype"],data.sqldata,'id','vacancyname');
   },
-  setvacancyhours: function(ev,id){
-    if (!ev.detail.value){
-      document.getElementById("vacancyhours")._flatpickr.clear();
+  setvacancyhours: function(){
+    console.log("Set vacancy hours!");
+    console.log(staffperiodweeks.choices["id_vacancytype"].selected());
+    if (!staffperiodweeks.choices["id_vacancytype"].selected()){
+      document.getElementById("vacancyhours").value='';
     } else {
       if (!document.getElementById("vacancyhours").value){
-        document.getElementById("vacancyhours")._flatpickr.setDate(staffperiodweeks.currentday.contracthours);
+        document.getElementById("vacancyhours").value=staffperiodweeks.currentday.contracthours;
       }
     }
     staffperiodweeks.checkdaytime();
   },
-  setrecuperationhours: function(ev,id){
-    if (!ev.detail.value){
-      document.getElementById("recuperationhours")._flatpickr.clear();
+  setrecuperationhours: function(){
+    console.log("Set recuperation hours!");
+    if (!staffperiodweeks.choices["id_recuperationtype"].selected()){
+      document.getElementById("recuperationhours").value='';
     } else {
       if (!document.getElementById("recuperationhours").value){
-        document.getElementById("recuperationhours")._flatpickr.setDate(staffperiodweeks.currentday.contracthours);
+        document.getElementById("recuperationhours").value=staffperiodweeks.currentday.contracthours;
       }
     }
     staffperiodweeks.checkdaytime();
@@ -248,6 +262,30 @@ var staffperiodweeks = {
         document.getElementById("btn_saveday").disabled=false;
       }
       
+    }
+  },
+  copy: function(){
+    var sel = staffperiodweeks.tbl.getSelectedData();
+    if (sel.length > 0){
+
+    }
+  },
+  paste: function(){
+    var sel = staffperiodweeks.tbl.getSelectedData();
+    if (sel.length > 0){
+
+    }
+  },
+  clean: function(){
+    var sel = staffperiodweeks.tbl.getSelectedData();
+    if (sel.length > 0){
+
+    }
+  },
+  replacedlg: function(){
+    var sel = staffperiodweeks.tbl.getSelectedData();
+    if (sel.length > 0){
+
     }
   }
 };
diff --git a/webapp/tmpl/module/periods/tlb_staffperiodweeks.tt b/webapp/tmpl/module/periods/tlb_staffperiodweeks.tt
new file mode 100644 (file)
index 0000000..63be0e4
--- /dev/null
@@ -0,0 +1,5 @@
+<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;"></span>éditer</button>
+<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.copy(); return false;"><span class="icon icon-copy" style="font-size: 16px;"></span>copier</button>
+<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.paste(); return false;"><span class="icon icon-paste" style="font-size: 16px;"></span>coller</button>
+<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.clean(); return false;"><span class="icon icon-erase" style="font-size: 16px;"></span>vider</button>
+<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.replacedlg(); return false;"><span class="icon icon-replace" style="font-size: 16px;"></span>changer modèle</button>
\ No newline at end of file
index b2d0ce3..03e5882 100644 (file)
@@ -67,6 +67,6 @@
    [% #INCLUDE block/dlgcropper.tt %]\r
   [% INCLUDE module/profile/dlgpassword.tt %]\r
   [% INCLUDE module/profile/dlgusername.tt %]\r
-  <script src="profile/profile.js"></script>\r
+  <script src="profile/profile.js?v=[% vstamp %]"></script>\r
   \r
 \r
index b01db7c..ba7690f 100644 (file)
@@ -49,7 +49,7 @@ function savepassword(){
   }
   
   if (errmsg == ""){
-    req.reqdata('POST','index.cgi',{"fn":"savepassword","pwd":pwd1},pwdsaved);  
+    req.reqdata('POST','app.cgi',{"fn":"savepassword","pwd":pwd1},pwdsaved);  
   }else {
     document.getElementById("msg").innerHTML='<div class="panel red">'+ errmsg+'</div>';
   }
index 8c2dcc7..21645bf 100644 (file)
@@ -59,7 +59,7 @@ function checkmailreturn(data){
 }
 
 function resendcode(){
-  req.reqdata("POST","index.cgi",{"fn":"sendmailvcode","mail":newusername},mailsended);
+  req.reqdata("POST","app.cgi",{"fn":"sendmailvcode","mail":newusername},mailsended);
   return false;
 }
 
@@ -74,7 +74,7 @@ function mailsended(data){
 }
 
 function saveemail(){
-  req.reqdata("POST","index.cgi",{"fn":"savenewemail","email":newusername,"vcode":document.getElementById("verificationcode").value},mailreturncode);
+  req.reqdata("POST","app.cgi",{"fn":"savenewemail","email":newusername,"vcode":document.getElementById("verificationcode").value},mailreturncode);
   return false;
 }
 
index 5790811..98f8c69 100644 (file)
     
     <div class="cell" >
       [% INCLUDE block/pnl_nodata.tt %]
-      <div class="panel" id="pnl_basedata" style="display: none;">
-      
-        <div class="bar moduletoolbar">
-          <div class="bar-item SubHeadTitle">Données de base</div>
-        </div>
-        <form id="frm_staff">
-          [% fieldhidden('id','staff','ident') %]
-        <div class="row" style="margin-top: 5px;">
-          <div class="cell">
-            <div class="row">
-              <div class="cell" style="width: 80px;">
-                [% fieldeditbox('staffnumber','staff','No.','','','','','record.savefield(this);') %]
-              </div>
-              <div class="cell" style="width: 150px;">
-                [% fieldeditbox('matricule','staff','Matricule','','','','','record.savefield(this);') %]
-              </div>
-              <div class="cell" style="width: 170px;">
-                [% fielddatebox('birthdate','staff',"date de naissance",'','','','record.savefield(this);') %]
-              </div>
-              </div>
-              <div class="row">
-                <div class="cell" style="width: 200px;">
-                  [% fieldeditbox('surname','staff','Nom','','','','','record.savefield(this,staff.gettbldata);') %]
-                </div>
-                <div class="cell" style="width: 200px;">
-                  [% fieldeditbox('prename','staff','Prénom','','','','','record.savefield(this,staff.gettbldata);') %]
-                </div>
-              </div>
-              <div class="row">
-                <div class="cell" style="width: 400px;">
-                  [% fieldeditbox('job','staff','Job / Position','','','','','record.savefield(this);') %]
-                </div>
-              </div>
-              <div class="row">
-                <div class="cell" style="width: 400px;">
-                  [% fieldselectbox('id_staffgroup','staff','Département','','','','','record.savefield(this);') %]
-                </div>
-              </div>
-          </div>
-          <div class="cell">
-            <div class="row">
-              <div class="cell" style="width: 400px;">
-                [% fieldeditbox('address','staff','adresse','','','','','record.savefield(this);') %]
-              </div>
-            </div>
-            <div class="row">
-              <div class="cell" style="width: 70px;">
-                [% fieldeditbox('zip','staff','cp','','','','','record.savefield(this);') %]
-              </div>
-              <div class="cell" style="width: 170px;">
-                [% fieldeditbox('city','staff','ville','','','','','record.savefield(this);') %]
-              </div>
-              <div class="cell" style="width: 160px;">
-                [% fieldeditbox('country','staff','pays','','','','','record.savefield(this);') %]
-              </div>
-            </div>
-            <div class="row">
-              <div class="cell" style="width: 400px;">
-                [% fieldeditbox('phone','staff','Téléphone','','','','','record.savefield(this);') %]
-              </div>
-            </div>
-            <div class="row">
-              <div class="cell" style="width: 400px;">
-                [% fieldeditbox('email','staff','email','','','','','record.savefield(this);') %]
-              </div>
-            </div>
-          </div>
-          
-        </div>
-
-<div class="bar moduletoolbar">
-    <div class="bar-item SubHeadTitle">Données contractuelles</div>
-      <button class="bar-item toolbarbtn right" id="btn_delete_staffcontract" onclick="staffcontract.remove(); return false;"><span class="icon icon-remove text-red" style="font-size: 16px;"></span>supprimer</button>
-      <button class="bar-item toolbarbtn  right" onclick="staffcontract.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;"><br/>éditer</button>
-      <button class="bar-item toolbarbtn right"  onclick="staffcontract.add(); return false;"><span class="icon icon-plus" style="font-size: 16px;"><br/>ajouter</button> 
-      </div>
-     
-        <div id="tbl_staffcontract" ></div>
-</div>
+      [% INCLUDE module/staff/pnl_basedata.tt %]
 <div id="pnl_periods" class="panel" style="display: none;">
   <div class="bar moduletoolbar">
           <div class="bar-item SubHeadTitle">Périodes de Références</div>
           <button class="bar-item toolbarbtn  right" onclick="staffperiods.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;"><br/>éditer</button>
+          <button class="bar-item toolbarbtn  right" onclick="staffperiods.generatereport(); return false;"><span class="icon icon-pdf" style="font-size: 16px;"><br/>PDF</button>
         </div>
   <div id="tbl_staffperiods" ></div>
 </div>
           <button class="bar-item toolbarbtn" onclick="staff.setview('periods'); return false;"><span class="icon icon-back" style="font-size: 16px;"><br/>retour</button>
           <div class="bar-item SubHeadTitle" id="periodtitle"></div>
           <div class="bar-item SubHeadTitle" id="stafftitle" style="display: none;"></div>
-          <button class="bar-item toolbarbtn right" onclick="staffperiodweeks.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;"><br/>editer</button>
+          [% INCLUDE module/periods/tlb_staffperiodweeks.tt %]
         </div>
   <div id="tbl_staffperiodweeks" ></div>
 </div>
 </div>
 </div>
 
-<div id="dlg_staffcontract" class="modal">
-
-  <div class="modal-content animate-top card-4">
-    <header> 
-      <span onclick="document.getElementById('dlg_staffcontract').style.display='none'; return false;" 
-       class="button toolbarbtn display-topright" ><span class="icon icon-remove" style="font-size: 18px;"></span></span>
-      <h3 id="dlgstaffcontract_title">Données contractuelles</h3>
-    </header>
-    <div class="container">
-        <div id="contractmsg"></div>
-        <form id="frm_staffcontract">
-        [% fieldhidden("id_staffcontract","staffcontract",'ident','') %]
-        [% fieldhidden("id_staff","staffcontract",'','') %]
-        <div class="container">
-        [% fielddatebox("startdate","staffcontract","date début",'quarter','','') %]
-        [% fielddatebox("enddate","staffcontract","date fin",'quarter','','') %]
-        </div>
-        <div class="container">
-        [% fieldintervalbox("weekhours","staffcontract","heures par semaine","third","","","") %]
-        [% fieldselectbox("weekdays","staffcontract","jours de travail par semaine","third","","","") %]
-        <div class="container">
-        [% fieldmultiselectbox("defaultfreedays","staffcontract","Jours de semaines libre ","","","","") %]
-        </div>
-        [% fieldselectbox('id_workplan','staffcontract','POT (Modèle)','third','','','') %]
-        </div>
-        </form>
-    </div>
-    <footer>
-    <button class="button theme-light margin-right border" onclick="document.getElementById('dlg_staffcontract').style.display='none'; return false;"><span class="icon icon-remove"></span>&nbsp;Annuler</button>
-    <button class="button actionbtn margin-right border" onclick="staffcontract.save();"><span class="icon icon-Save"></span>&nbsp;Sauvegarder</button>  
-    </footer>
-  </div>
-</div>
+[% INCLUDE module/staff/dlg_staffcontract.tt %]
 [% INCLUDE block/dlgstaffpayedhours.tt %]
 [% INCLUDE block/dlgstaffperioddays.tt %]
 [% INCLUDE block/dlgdeleterow.tt %]
+[% INCLUDE block/dlgdataload.tt %]
 
-<!--<script src="staff/staff.js"></script>-->
-<script src="staff/staffcontract.js"></script>
-<script src="staff/staffperiods.js"></script>
-<script src="periods/staffperiodweeks.js"></script>
\ No newline at end of file
+<script src="staff/staff.js?v=[% vstamp %]"></script>
+<script src="staff/staffcontract.js?v=[% vstamp %]"></script>
+<script src="staff/staffperiods.js?v=[% vstamp %]"></script>
+<script src="periods/staffperiodweeks.js?v=[% vstamp %]"></script>
\ No newline at end of file
diff --git a/webapp/tmpl/module/staff/dlg_staffcontract.tt b/webapp/tmpl/module/staff/dlg_staffcontract.tt
new file mode 100644 (file)
index 0000000..4d769ad
--- /dev/null
@@ -0,0 +1,39 @@
+<div id="dlg_staffcontract" class="modal">
+
+  <div class="modal-content animate-top card-4">
+    <header> 
+      <span onclick="document.getElementById('dlg_staffcontract').style.display='none'; return false;" 
+       class="button toolbarbtn display-topright" ><span class="icon icon-remove" style="font-size: 18px;"></span></span>
+      <h3 id="dlgstaffcontract_title">Données contractuelles</h3>
+    </header>
+    
+    <div class="container">
+    
+    
+      <div id="contractmsg"></div>
+        <form id="frm_staffcontract">
+          [% fieldhidden("id_staffcontract","staffcontract",'ident','') %]
+         [% fieldhidden("id_staff","staffcontract",'','') %]
+        <div class="row">
+          <div class="cell">
+            [% fielddatebox("startdate","staffcontract","date début",'','','') %]
+          </div>
+          <div class="cell">
+            [% fielddatebox("enddate","staffcontract","date fin",'','','') %]
+          </div>
+        </div>
+        <div class="row">
+          <div class="cell" style="width: 100%">
+            [% fieldselectbox('id_workplan','staffcontract','POT (Modèle)','third','','','') %]
+          </div>
+        </div>
+       </form>  
+    </div>
+     
+
+    <footer>
+    <button class="button theme-light margin-right border" onclick="document.getElementById('dlg_staffcontract').style.display='none'; return false;"><span class="icon icon-remove"></span>&nbsp;Annuler</button>
+    <button class="button actionbtn margin-right border" onclick="staffcontract.save();"><span class="icon icon-Save"></span>&nbsp;Sauvegarder</button>  
+    </footer>
+  </div>
+</div>
\ No newline at end of file
diff --git a/webapp/tmpl/module/staff/pnl_basedata.tt b/webapp/tmpl/module/staff/pnl_basedata.tt
new file mode 100644 (file)
index 0000000..f829a9b
--- /dev/null
@@ -0,0 +1,79 @@
+<div class="panel" id="pnl_basedata" style="display: none;">
+      
+        <div class="bar moduletoolbar">
+          <div class="bar-item SubHeadTitle">Données de base</div>
+        </div>
+        <form id="frm_staff">
+          [% fieldhidden('id','staff','ident') %]
+        <div class="row" style="margin-top: 5px;">
+          <div class="cell">
+            <div class="row">
+              <div class="cell" style="width: 80px;">
+                [% fieldeditbox('staffnumber','staff','No.','','','','','record.savefield(this);') %]
+              </div>
+              <div class="cell" style="width: 150px;">
+                [% fieldeditbox('matricule','staff','Matricule','','','','','record.savefield(this);') %]
+              </div>
+              <div class="cell" style="width: 170px;">
+                [% fielddatebox('birthdate','staff',"date de naissance",'','','','record.savefield(this);') %]
+              </div>
+              </div>
+              <div class="row">
+                <div class="cell" style="width: 200px;">
+                  [% fieldeditbox('surname','staff','Nom','','','','','record.savefield(this,staff.gettbldata);') %]
+                </div>
+                <div class="cell" style="width: 200px;">
+                  [% fieldeditbox('prename','staff','Prénom','','','','','record.savefield(this,staff.gettbldata);') %]
+                </div>
+              </div>
+              <div class="row">
+                <div class="cell" style="width: 400px;">
+                  [% fieldeditbox('job','staff','Job / Position','','','','','record.savefield(this);') %]
+                </div>
+              </div>
+              <div class="row">
+                <div class="cell" style="width: 400px;">
+                  [% fieldselectbox('id_staffgroup','staff','Département','','','','','record.savefield(this);') %]
+                </div>
+              </div>
+          </div>
+          <div class="cell">
+            <div class="row">
+              <div class="cell" style="width: 400px;">
+                [% fieldeditbox('address','staff','adresse','','','','','record.savefield(this);') %]
+              </div>
+            </div>
+            <div class="row">
+              <div class="cell" style="width: 70px;">
+                [% fieldeditbox('zip','staff','cp','','','','','record.savefield(this);') %]
+              </div>
+              <div class="cell" style="width: 170px;">
+                [% fieldeditbox('city','staff','ville','','','','','record.savefield(this);') %]
+              </div>
+              <div class="cell" style="width: 160px;">
+                [% fieldeditbox('country','staff','pays','','','','','record.savefield(this);') %]
+              </div>
+            </div>
+            <div class="row">
+              <div class="cell" style="width: 400px;">
+                [% fieldeditbox('phone','staff','Téléphone','','','','','record.savefield(this);') %]
+              </div>
+            </div>
+            <div class="row">
+              <div class="cell" style="width: 400px;">
+                [% fieldeditbox('email','staff','email','','','','','record.savefield(this);') %]
+              </div>
+            </div>
+          </div>
+          
+        </div>
+        </form>
+<div class="bar moduletoolbar">
+    <div class="bar-item SubHeadTitle">Données contractuelles</div>
+      <button class="bar-item toolbarbtn right" id="btn_delete_staffcontract" onclick="staffcontract.remove(); return false;"><span class="icon icon-remove text-red" style="font-size: 16px;"></span>supprimer</button>
+      <button class="bar-item toolbarbtn  right" onclick="staffcontract.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;"><br/>éditer</button>
+      <button class="bar-item toolbarbtn right"  onclick="staffcontract.add(); return false;"><span class="icon icon-plus" style="font-size: 16px;"><br/>ajouter</button> 
+      </div>
+     
+        <div id="tbl_staffcontract" ></div>
+</div>
\ No newline at end of file
index e3659b6..3cf3c02 100644 (file)
@@ -33,7 +33,7 @@ let staff ={
     staff.initform();
     staff.tbl = new Tabulator("#tbl_" + "staff", {
       // headerFilterPlaceholder: "filter...",
-      height: "calc(100vh - 120px)",
+      height: "calc(100vh - 56px)",
       layout: "fitDataStretch",
       selectable: 1,
       groupBy:["groupname"],
@@ -98,6 +98,10 @@ let staff ={
     }
   },
   afterdeletecallback: function(data){
+    let x = staff.tbl.getSelectedData();
+    if (x[0]){
+      staff.tbl.deselectRow(x["id"]);
+    }
     staff.gettbldata();
   },
   viewtable: function(){
index ce03924..ee20da4 100644 (file)
@@ -1,36 +1,14 @@
+let weekdays = [{label:"lundi",value:"1"},{label:"mardi",value:"2"},{label:"mercredi",value:"3"},{label:"jeudi",value:"4"},{label:"vendredi",value:"5"},{label:"samedi",value:"6"},{label:"dimanche",value:"7"}];
 let staffcontract = {
   name: "staffcontract",
   tbl: null,
-  choices:{"weekdays":null,"id_workplan":null,"defaultfreedays":null},
+  choices:{"id_workplan":null},
   maxfreedays: 1,
   initform: function(){
     staffcontract.choices["id_workplan"] = new SlimSelect({
       select: "#id_workplan",
       showSearch: false
     });
-    // staffcontract.choices["weekdays"] = new Choices('#weekdays',{
-    //   searchEnabled: false,
-    //   itemSelectText: '',
-    //   removeItemButton: false,
-    //   choices : [{value:"1",label:"1"},{value:"2",label:"2"},{value:"3",label:"3"},{value:"4",label:"4"},{value:"5",label:"5"},{value:"6",label:"6"},{value:"7",label:"7"}]
-    // });
-    staffcontract.choices["defaultfreedays"] = new SlimSelect({
-      select: "#defaultfreedays",
-      showSearch: false
-    }); 
-    // new Choices('#defaultfreedays',{
-    //   searchEnabled: false,
-    //   itemSelectText: '',
-    //   itemSort: false,
-    //   removeItemButton: true,
-    //   shouldSort: false,
-    //   shouldSortItems: false,
-    //   maxItemCount: staffcontract.maxfreedays,
-    //   maxItemText: (maxItemCount) => {
-    //     return 'max. de jours de semaine ajoutées';
-    //   },
-    //   choices : [{label:"lundi",value:"1"},{label:"mardi",value:"2"},{label:"mercredi",value:"3"},{label:"jeudi",value:"4"},{label:"vendredi",value:"5"},{label:"samedi",value:"6"},{label:"dimanche",value:"7"}]
-    // });
     flatpickr("#startdate",{altInput: true,
       altFormat: "d.m.Y",
       dateFormat: "Y-m-d",
@@ -43,15 +21,35 @@ let staffcontract = {
       "locale": "fr",
       weekNumbers: true
     });
-    document.getElementById("weekdays").addEventListener('change', function(event){staffcontract.setmaxfreedays(event,this.id);});
+
+    // staffcontract.choices["weekdays"] = new SlimSelect({
+    //   select: "#weekdays",
+    //   showSearch: false,
+    //   onChange: function () { 
+    //     staffcontract.setmaxfreedays();
+    //   }
+    // });
+    // let numweekdays = [{value:"1",label:"1"},{value:"2",label:"2"},{value:"3",label:"3"},{value:"4",label:"4"},{value:"5",label:"5"},{value:"6",label:"6"},{value:"7",label:"7"}];
+    // form.fillselectlist(staffcontract.choices["weekdays"],numweekdays,"value","label");
+
+    
+    // staffcontract.choices["defaultfreedays"] = new SlimSelect({
+    //   select: "#defaultfreedays",
+    //   showSearch: false
+    // });
+    
+    // form.fillselectlist(staffcontract.choices["defaultfreedays"],weekdays,"value","label");
+
+    
+    //document.getElementById("weekdays").addEventListener('change', function(event){});
   },
   inittable: function(){
     staffcontract.initform();
     
     staffcontract.tbl = new Tabulator("#tbl_staffcontract", {
     headerFilterPlaceholder: "filter...",
-    height: "calc(100vh - 418px)",
-    layout: "fitData",
+    height: "calc(100vh - 375px)",
+    layout: "fitDataFill",
     selectable: 1,
     rowContext:function(e, row){ e.preventDefault();},
     columns: [
@@ -113,27 +111,22 @@ let staffcontract = {
     flds["ident_staffcontract_id"] = flds["ident_staffcontract_id_staffcontract"];
     delete flds["ident_staffcontract_id_staffcontract"];
     delete flds["null"];
-    bok = true;
-    for (let f in flds){
-      if ((f != "staffcontract_enddate") && ( f != "ident_staffcontract_id")){
-        if (flds[f] == ""){
-          bok=false;
-        }
-      }
-    }
-    if (parseInt(flds["staffcontract_weekdays"]) + flds["staffcontract_defaultfreedays"].length != 7){
-      document.getElementById("contractmsg").innerHTML= '<div class="panel red">jours de semaine libre incomplet!</div>';
-      return false;
-    }
-    if (bok == false){
-      document.getElementById("contractmsg").innerHTML= '<div class="panel red">Tous les champs sauf "date fin" sans requis!</div>';
+    let bok = 0;
+    for (let f in flds){if ((f != "staffcontract_enddate") && ( f != "ident_staffcontract_id")){if (flds[f] == ""){bok=1;}}}
+    // if (parseInt(flds["staffcontract_weekdays"]) + flds["staffcontract_defaultfreedays"].length != 7){
+    //   document.getElementById("contractmsg").innerHTML= '<div class="panel red">jours de semaine libre incomplet (jours de travail + jours libre &ne; 7)!</div>';
+    //   return false;
+    // }
+    if (bok != 0){
+      if (bok == 1){ document.getElementById("contractmsg").innerHTML= '<div class="panel red">Tous les champs sauf "date fin" sans requis!</div>'; }
+      // if (bok == 2){ document.getElementById("contractmsg").innerHTML= '<div class="panel red"> jours de travail + jours libre &ne; 7!</div>'; }
       return false;
     }
     flds["fn"] ="saveform";
     flds["schemata"]=schemata;
     flds["id_staff"]=staff.current_id;
     flds["ident"] ="id";
-    req.reqdata("POST","index.cgi",flds,staffcontract.afterstaffcontractsaved);
+    req.reqdata("POST","db.cgi",flds,staffcontract.afterstaffcontractsaved);
     return false;
   },
   afterstaffcontractsaved: function(){
@@ -148,13 +141,23 @@ let staffcontract = {
     req.reqdata("POST","db.cgi",{"get":"workplanlist","schemata":schemata},staffcontract.fillwptemplates);
   },
   fillwptemplates: function(data){
-    form.fillselectlist(staffcontract.choices["id_workplan"],data.sqldata,'id','workplan');
+    form.fillselectlist(staffcontract.choices["id_workplan"],data.sqldata,'id','dspworkplandetail');
   },
-  setmaxfreedays: function(ev,id){
-    let wmax = document.getElementById("weekdays").value;
-    staffcontract.maxfreedays = 7-wmax;
-    staffcontract.choices["defaultfreedays"].config.maxItemCount = staffcontract.maxfreedays;
-    staffcontract.choices["defaultfreedays"].removeActiveItems();
-    return false;
-  }
+  // setmaxfreedays: function(ev,id){
+  //   let wmax = staffcontract.choices["weekdays"].selected();
+  //   staffcontract.maxfreedays = 7-wmax;
+  //   //console.log(wmax);
+  //   //console.log(staffcontract.choices["defaultfreedays"]);
+  //   staffcontract.choices["defaultfreedays"].destroy();
+  //   staffcontract.choices["defaultfreedays"] = new SlimSelect({
+  //     select: "#defaultfreedays",
+  //     showSearch: false,
+  //     limit: staffcontract.maxfreedays
+  //   });
+    
+  //   form.fillselectlist(staffcontract.choices["defaultfreedays"],weekdays,"value","label");
+  //   //staffcontract.choices["defaultfreedays"].config.maxItemCount = staffcontract.maxfreedays;
+  //   staffcontract.choices["defaultfreedays"].setData('');
+  //   return false;
+  // }
 }
\ No newline at end of file
index 2017011..e92b2f3 100644 (file)
@@ -7,9 +7,10 @@ let staffperiods = {
   inittable: function(){
     staffperiods.tbl = new Tabulator("#tbl_staffperiods", {
       // headerFilterPlaceholder: "filter...",
-      height: "calc(100vh - 172px)",
-      layout: "fitData",
-      selectable: 1,
+      height: "calc(100vh - 112px)",
+      layout: "fitDataFill",
+      selectable: true,
+      selectableRangeMode:"click",
       // persistence:{
       //   sort: true, //persist column sorting
       //   filter: true, //persist filter sorting
@@ -29,7 +30,7 @@ let staffperiods = {
       columns: [
         
              {title: "Début",field: "startdate",headerSort:"datetime",formatter:"datetime",formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"DD.MM.YYYY",invalidPlaceholder:""} },
-             {title: "Fin",field: "enddate",sorter:"datetime",formatter:"datetime",formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"DD.MM.YYYY",invalidPlaceholder:""} },
+             {title: "Fin",field: "enddate",headerSort:"datetime",formatter:"datetime",formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"DD.MM.YYYY",invalidPlaceholder:""} },
             // {title: "Département",field:"groupname" , visible: false},
             // {title: "Prénom", field:"prename",headerSort: false},
             // {title: "Nom", field:"surname",headerSort: false},
@@ -68,5 +69,14 @@ let staffperiods = {
     if (sel[0]){
       staffperiodweeks.loadplan(staffperiods.tbl);
     }
-  }
+  },
+  generatereport: function(){
+    let udata = staffperiod.tbl.getSelectedData();
+    let sdata = staff.tbl.getSelectedData();
+    
+    let repdata = {"schemata":schemata,"id_reportperiod":"'" + udata[0].id_reportperiod + "'"};
+    if (udata[0]) {
+      report.generate('pot/pot_staffmemberperiod',"periode_" + moment(udata[0].startdate).format("YYYYMMDD") + "-" + moment(udata[0].enddate).format("YYYYMMDD"),repdata);
+    }
+  },
 }
\ No newline at end of file
index 7541ab1..a14d18f 100644 (file)
@@ -6,9 +6,9 @@
       <div class="bar-item PageHeadTitle">Plans de travail (modèles)</div>
       <div class="toolbar" id="tbar_tbl_workplans">
   <button class="bar-item toolbarbtn  right" onclick="workplans.remove();"><span class="icon icon-remove text-red" style="font-size: 16px;"></span>supprimer</button>
-  <!--  -->
-  <button class="bar-item toolbarbtn  right" onclick="workplans.add();"><span class="icon icon-plus" style="font-size: 16px;"><br/>ajouter</button> 
-  <button class="bar-item toolbarbtn right" onclick="workplans.rename();"><span class="icon icon-rename" style="font-size: 16px;"><br/>renomer</button> 
+  <button class="bar-item toolbarbtn  right" onclick="workplans.duplicate();"><span class="icon icon-duplicate" style="font-size: 16px;"></span>dupliquer</button>
+  <button class="bar-item toolbarbtn  right" onclick="workplans.add();"><span class="icon icon-plus" style="font-size: 16px;"></span>ajouter</button> 
+  <button class="bar-item toolbarbtn right" onclick="workplans.rename();"><span class="icon icon-rename" style="font-size: 16px;"></span>renomer</button> 
 </div>
 <div class="toolbar" id="tbar_frm_staff" style="display: none;">
 </div>
@@ -24,9 +24,9 @@
       <div class="panel" id="pnl_workplans" style="display: none;">
         <div class="bar moduletoolbar">
           <div class="bar-item PageHeadTitle">Modèle</div>
-          <button class="bar-item toolbarbtn  right" onclick="workplans.addweek();"><span class="icon icon-plus" style="font-size: 16px;"><br/>ajouter semaine</button>
-          <button class="bar-item toolbarbtn right" onclick="workplans.removeweek();"><span class="icon icon-remove text-red" style="font-size: 16px;"><br/>supprimer semaine</button>
-          <button class="bar-item toolbarbtn  right" onclick="workplans.edit();"><span class="icon icon-edit" style="font-size: 16px;"><br/>éditer</button>
+            <button class="bar-item toolbarbtn  right" onclick="workplans.edit();"><span class="icon icon-edit" style="font-size: 16px;"></span>éditer</button>
+            <button class="bar-item toolbarbtn  right" onclick="workplans.setcopyday();"><span class="icon icon-copy" style="font-size: 16px;"></span>copier</button>
+            <button class="bar-item toolbarbtn  right" onclick="workplans.pasteday();"><span class="icon icon-paste" id="pasteday" style="font-size: 16px;"></span>coller</button>
         </div>
         <div id="tbl_workplandata"></div>
       </div>
@@ -38,4 +38,6 @@
 [% INCLUDE module/workplans/dlg_workplan.tt %]  
 
 [% INCLUDE block/dlgdeleterow.tt %]
+[% INCLUDE block/dlgmessage.tt %]
+<script type="text/javascript" src="workplans/workplans.js?v=[% vstamp %]"></script>
 
index 9a2b959..b864020 100644 (file)
@@ -9,17 +9,18 @@ let workplans ={
   choices:{},
   tbl: null,
   tblfilter: null,
+  copy_day_id: null,
   current_view: 'workplans',
   initform: function(){
-    flatpickr(".timefield",{
-      dateFormat: "H:i",
-      enableTime: true,
-      noCalendar: true,
-      time_24hr: true,
-      defaultHour: "0",
-      defaultMinute: "0",
-      "locale": "fr",
-    });
+    // flatpickr(".timefield",{
+    //   dateFormat: "H:i",
+    //   enableTime: true,
+    //   noCalendar: true,
+    //   time_24hr: true,
+    //   defaultHour: "0",
+    //   defaultMinute: "0",
+    //   "locale": "fr",
+    // });
     let tfields = document.getElementsByClassName("timefield");
     for (let i=0;i<tfields.length;i++){
       tfields[i].addEventListener("change",function(){workplans.checktime(this.id);});
@@ -28,7 +29,7 @@ let workplans ={
   inittable: function(){
     workplans.tblfilter = new Tabulator("#tbl_workplans", {
       headerFilterPlaceholder: "filter...",
-      height: "calc(100vh - 120px)",
+      height: "calc(100vh - 56px)",
       layout: "fitDataStretch",
       selectable: 1,
       rowClick:function(e, row){
@@ -41,8 +42,8 @@ let workplans ={
   });
     workplans.tbl = new Tabulator("#tbl_workplandata", {
       headerFilterPlaceholder: "filter...",
-      height: "calc(100vh - 180px)",
-      layout: "fitDataStretch",
+      height: "calc(100vh - 111px)",
+      layout: "fitDataFill",
       selectable: 1,
       rowContext:function(e, row){e.preventDefault(); },
       groupBy:["weeknum"],
@@ -75,7 +76,11 @@ let workplans ={
     }
   },
   gettbldata: function(wkid){
-    req.reqdata("POST", "db.cgi", {"get": "workplandayslist" ,"filter":" id_workplan='" + wkid + "'","schemata":schemata}, workplans.loadtbldata);
+    let wpsel = workplans.tblfilter.getSelectedData();
+    if (wpsel[0]){
+      req.reqdata("POST", "db.cgi", {"get": "workplandayslist" ,"filter":" id_workplan='" + wpsel[0].id + "'","schemata":schemata}, workplans.loadtbldata);
+    }
+    
   },
   loadtbldata: function(data){
     if (data && data.sqldata) {
@@ -83,8 +88,8 @@ let workplans ={
     }
   },
   viewplan: function(){
-    let wpsel = workplans.tblfilter.getSelectedData();
-    workplans.gettbldata(wpsel[0].id);
+    
+    workplans.gettbldata();
     workplans.setview("workplans");
   },
   setview: function(viewname){
@@ -120,6 +125,27 @@ let workplans ={
     form.cleanform('workplans');
     app.viewdialog('workplans');
   },
+  duplicate: function(){
+    let sel = workplans.tblfilter.getSelectedData();
+    if (sel[0]){
+      req.reqdata("POST","db.cgi",{"fn":"duplicate_workplan","schemata":schemata,"params":[sel[0].id]},workplans.gettblfilterdata);
+    }
+  },
+  setcopyday: function(){
+    let cdata = workplans.tbl.getSelectedData();
+    if (cdata[0]){
+      document.getElementById("pasteday").innerHTML = '&nbsp;' +weekdays[cdata[0].weekday];
+      workplans.copy_day_id=cdata[0].id;
+    }
+  },
+  pasteday: function(){
+    let cdata = workplans.tbl.getSelectedData();
+    console.log("COPY id: " + workplans.copy_day_id);
+    console.log("PASTE id:" + cdata[0].id);
+    if (cdata[0] && workplans.copy_day_id &&cdata[0].id != workplans.copy_day_id){
+      req.reqdata("POST","db.cgi",{"fn":"workplan_replaceday","schemata":schemata,"params":[workplans.copy_day_id,cdata[0].id]},workplans.gettbldata);
+    }
+  },
   remove: function() {
 
     let udata = workplans.tbl.getSelectedData();
@@ -169,11 +195,16 @@ let workplans ={
   },
   saveworkplan: function(){
     let wpdata = form.getformcontent("workplans");
-    console.log(wpdata);
+    
     wpdata["ident_workplans_id"] = wpdata["ident_workplans_id_workplan"] ;
     delete wpdata["ident_workplans_id_workplan"];
+    console.log(wpdata);
+    if (wpdata["ident_workplans_id"] == ""){
+      req.reqdata("POST","db.cgi",{"fn":"add_workplan","params":[wpdata["workplans_workplan"]],"schemata":schemata},workplans.afterworkplansave);
+    } else {
+      form.saveformdata(wpdata,workplans.afterworkplansave,schemata);
+    }
     
-    form.saveformdata(wpdata,workplans.afterworkplansave,schemata);
     return false;
   },
   afterworkplansave: function(){
@@ -215,16 +246,16 @@ let workplans ={
      
     
   },
-  addweek: function(){
-    let udata = workplans.tbl.getSelectedData();
-    if (udata[0]){
-      req.reqdata("POST","db.cgi",{"fn":"workplan_addweek","params":"[\""+ udata[0].id_workplan +"\"]"},workplans.gettbldata());
-    } 
+  // addweek: function(){
+  //   let udata = workplans.tbl.getSelectedData();
+  //   if (udata[0]){
+  //     req.reqdata("POST","db.cgi",{"fn":"workplan_addweek","params":"[\""+ udata[0].id_workplan +"\"]"},workplans.gettbldata());
+  //   } 
     
-  },
-  removeweek: function(){
-    req.reqdata("POST","db.cgi",{"fn":"workplan_removeweek","params":"[\""+ udata[0].id_workplan + "\",\""+ udata[0].week+"\"]"},workplans.gettbldata());
-  }
+  // },
+  // removeweek: function(){
+  //   req.reqdata("POST","db.cgi",{"fn":"workplan_removeweek","params":"[\""+ udata[0].id_workplan + "\",\""+ udata[0].week+"\"]"},workplans.gettbldata());
+  // }
 }
 let wdayFormatter = function(cell, formatterParams){
   //cell.getElement().style.backgroundColor="grey";
index 611d60a..8921d22 100644 (file)
@@ -1,58 +1,65 @@
 <!DOCTYPE html>
-<html>
+<html dir="ltr" lang="fr">
   <head>
-    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
-    <meta content="width=device-width, initial-scale=1.0, shrink-to-fit=no" name="viewport">
-    <meta content="Kilian Saffran - DKS sarl" name="author">
-    <meta content="index,follow" name="robots">
-    <link href="img/favicon/apple-icon-57x57.png" rel="apple-touch-icon" sizes="57x57">
-    <link href="img/favicon/apple-icon-60x60.png" rel="apple-touch-icon" sizes="60x60">
-    <link href="img/favicon/apple-icon-72x72.png" rel="apple-touch-icon" sizes="72x72">
-    <link href="img/favicon/apple-icon-76x76.png" rel="apple-touch-icon" sizes="76x76">
-    <link href="img/favicon/apple-icon-114x114.png" rel="apple-touch-icon" sizes="114x114">
-    <link href="img/favicon/apple-icon-120x120.png" rel="apple-touch-icon" sizes="120x120">
-    <link href="img/favicon/apple-icon-144x144.png" rel="apple-touch-icon" sizes="144x144">
-    <link href="img/favicon/apple-icon-152x152.png" rel="apple-touch-icon" sizes="152x152">
-    <link href="img/favicon/apple-icon-180x180.png" rel="apple-touch-icon" sizes="180x180">
-    <link href="img/favicon/android-icon-192x192.png" rel="icon" sizes="192x192" type="image/png">
-    <link href="img/favicon/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png">
-    <link href="img/favicon/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png">
-    <link href="img/favicon/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png">
-    <link href="img/favicon/manifest.json" rel="manifest">
-    <meta content="#ffffff" name="msapplication-TileColor">
-    <meta content="img/favicon/ms-icon-144x144.png" name="msapplication-TileImage">
-    <meta content="#ffffff" name="theme-color">
-    <link href="css/site.css?v=1" rel="stylesheet">
-    <title>
-      POT - Plan d'organisation du travail
-    </title>
+    <meta charset="utf-8">
+    <meta name="author" content="Kilian Saffran - DKS sarl">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
+    <meta http-equiv="Pragma" content="no-cache" />
+    <meta http-equiv="Expires" content="0" />
+    <meta name="robots" content="index,follow">
+    <link rel="apple-touch-icon" sizes="57x57" href="img/favicon/apple-icon-57x57.png">
+    <link rel="apple-touch-icon" sizes="60x60" href="img/favicon/apple-icon-60x60.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="img/favicon/apple-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="76x76" href="img/favicon/apple-icon-76x76.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="img/favicon/apple-icon-114x114.png">
+    <link rel="apple-touch-icon" sizes="120x120" href="img/favicon/apple-icon-120x120.png">
+    <link rel="apple-touch-icon" sizes="144x144" href="img/favicon/apple-icon-144x144.png">
+    <link rel="apple-touch-icon" sizes="152x152" href="img/favicon/apple-icon-152x152.png">
+    <link rel="apple-touch-icon" sizes="180x180" href="img/favicon/apple-icon-180x180.png">
+    <link rel="icon" type="image/png" sizes="192x192"  href="img/favicon/android-icon-192x192.png">
+    <link rel="icon" type="image/png" sizes="32x32" href="img/favicon/favicon-32x32.png">
+    <link rel="icon" type="image/png" sizes="96x96" href="img/favicon/favicon-96x96.png">
+    <link rel="icon" type="image/png" sizes="16x16" href="img/favicon/favicon-16x16.png">
+    <link rel="manifest" href="img/favicon/manifest.json">
+    <meta name="msapplication-TileColor" content="#ffffff">
+    <meta name="msapplication-TileImage" content="img/favicon/ms-icon-144x144.png">
+    <meta name="theme-color" content="#ffffff">
+    <link  rel="stylesheet" href="css/site.css?v=17072020">
+    <style>
+    body, html {height: 100%}
+.bgimg {
+  background-image: url('img/potbg.jpg');
+  min-height: 100%;
+  background-position: center;
+  background-size: cover;
+}
+    </style>
   </head>
   <body>
-    <div class="bgimg display-container animate-opacity text-white">
-      <div class="display-topleft padding-large xlarge"></div>
-      <div class="display-middle">
-        <h1 class="jumbo animate-top">
-          <img alt="POT" src="img/pot_big.png">
-        </h1>
-        <hr class="border-grey" style="margin:auto;width:40%">
-        <p class="large center">
-          COMING SOON<br>
-          currently in beta version<br>
-          <br>
-        </p>
-        <div class="row center">
-          <div class="cell half">
-            <a href="download/Setup_POT_v1.0.0.exe"><img src="img/windows_badge.png" style="width: 200px;"></a>
-          </div>
-          <div class="cell half">
-            <a href="download/POT_v1.0.0.dmg"><img src="img/macos_badge.png" style="width: 200px;"></a>
-          </div>
-        </div>
-        <p></p>
-      </div>
-      <div class="display-bottomleft padding-large">
-        Powered by <a href="https://www.dks.lu" target="_blank">dks.lu</a>
+<div class="bgimg display-container animate-opacity text-white">
+  <div class="display-topleft padding-large xlarge"></div>
+  <div class="display-middle">
+    <h1 class="jumbo animate-top">
+      <img alt="POT" src="img/pot_big.png">
+    </h1>
+    <hr class="border-grey" style="margin:auto;width:40%">
+    <p class="large center">
+      COMING SOON<br>
+      currently in beta version<br>
+      <br>
+    </p>
+    <div class="row center">
+      <div class="col" style="width: 100%;">
+        <a class="button xlarge round blue-grey" style="width: 100%;" href="app/login.html">Login</a>
       </div>
     </div>
-  </body>
-</html>
+    <p></p>
+  </div>
+  <div class="display-bottomleft padding-large">
+    Powered by <a href="https://www.dks.lu" target="_blank">dks.lu</a>
+  </div>
+</div>
+
+</body>
+</html>
\ No newline at end of file