From cb883e4c3f55422c8443630576d5145665d4e887 Mon Sep 17 00:00:00 2001 From: Kilian Saffran Date: Thu, 4 Feb 2021 07:35:00 +0100 Subject: [PATCH] v20200204 --- app/data/schemata/defaultcompany.schema.sql | 25 +- app/index.cgi | 9 +- app/lib/POT/Archive.pm | 51 + app/lib/POT/Period.pm | 9 +- app/lib/POT/Report.pm | 3 +- app/lib/dksdb.pm | 2 +- app/lib/session.pm | 7 + app/{manifest.json => manifest.webmanifest} | 14 +- app/static/css/fonts/appicons.eot | Bin 37668 -> 37760 bytes app/static/css/fonts/appicons.svg | 126 +- app/static/css/fonts/appicons.ttf | Bin 37500 -> 37592 bytes app/static/css/fonts/appicons.woff | Bin 37576 -> 37668 bytes app/static/css/icons.css | 146 +- app/tmpl/block/dlg_print.tt | 19 + app/tmpl/block/dlgstaffperioddays.tt | 4 +- app/tmpl/index.tt | 4 +- app/tmpl/lang/de.tt | 5 +- app/tmpl/lang/fr.tt | 5 +- app/tmpl/module/archive.tt | 13 + app/tmpl/module/archive/archive.js | 28 + app/tmpl/module/index.tt | 2 +- app/tmpl/module/periods/reportperiod.js | 31 +- app/tmpl/module/periods/staffperiodweeks.js | 164 +- .../module/periods/tlb_staffperiodweeks.tt | 2 + app/tmpl/module/staff/staff.js | 9 +- app/tmpl/module/staff/staffcontract.js | 7 +- app/tmpl/module/staff/staffperiods.js | 14 +- app/tmpl/module/staff/staffvacancy.js | 5 + app/tmpl/module/workplans/workplans.js | 9 +- dev/appicons.json | 2 +- dev/db/potlu2_db.demo.pg.data.sql | 4693 ++++++++++++++ dev/db/potlu2_db.demo.pg.full.sql | 5380 +++++++++++++++++ dev/db/potlu2_db.demo.pg.schema.sql | 645 ++ .../potlu2_db.newcompanyschema.pg.schema.sql | 25 +- 34 files changed, 11220 insertions(+), 238 deletions(-) create mode 100644 app/lib/POT/Archive.pm rename app/{manifest.json => manifest.webmanifest} (62%) create mode 100644 app/tmpl/block/dlg_print.tt create mode 100644 app/tmpl/module/archive.tt create mode 100644 app/tmpl/module/archive/archive.js create mode 100644 dev/db/potlu2_db.demo.pg.data.sql create mode 100644 dev/db/potlu2_db.demo.pg.full.sql create mode 100644 dev/db/potlu2_db.demo.pg.schema.sql diff --git a/app/data/schemata/defaultcompany.schema.sql b/app/data/schemata/defaultcompany.schema.sql index 14f8131a..5b0ba474 100644 --- a/app/data/schemata/defaultcompany.schema.sql +++ b/app/data/schemata/defaultcompany.schema.sql @@ -3,11 +3,11 @@ CREATE SCHEMA %%NEWSCHEMA%%; CREATE FUNCTION %%NEWSCHEMA%%.trg_before_upd_schematable() RETURNS trigger LANGUAGE plpgsql - AS $$ - begin - new.modified = now(); - RETURN NEW; - END; + AS $$ + begin + new.modified = now(); + RETURN NEW; + END; $$; CREATE TABLE %%NEWSCHEMA%%.reportperiod ( @@ -90,18 +90,17 @@ CREATE TABLE %%NEWSCHEMA%%.staffreportperiod ( status44hcount integer DEFAULT 0, last44date date, lastsundate date, - itmcontracthours interval DEFAULT '00:00:00'::interval, - maxdays integer DEFAULT 0, avgtotalweekhours interval, + itmcontracthours interval, + maxdays integer, vacancyill interval, vacancynormal interval, - isvalidated boolean, - payedhours40 interval, - payedhours40calc interval, - hourstotransfer interval, hourstotransfercalc interval, + hourstotransfer interval, + isvalidated boolean, payedhours0 interval, - unpayedprevious interval + payedhours40calc interval, + payedhours40 interval ); CREATE TABLE %%NEWSCHEMA%%.staffreportperioddays ( @@ -266,8 +265,6 @@ CREATE TRIGGER trg_%%NEWSCHEMA%%_before_upd_staffreportperiod BEFORE UPDATE ON % CREATE TRIGGER trg_%%NEWSCHEMA%%_before_upd_staffreportperioddays BEFORE UPDATE ON %%NEWSCHEMA%%.staffreportperioddays FOR EACH ROW EXECUTE FUNCTION %%NEWSCHEMA%%.trg_before_upd_schematable(); -CREATE TRIGGER trg_%%NEWSCHEMA%%_before_upd_timetracker BEFORE UPDATE ON %%NEWSCHEMA%%.timetracker FOR EACH ROW EXECUTE FUNCTION %%NEWSCHEMA%%.trg_before_upd_schematable(); - CREATE TRIGGER trg_%%NEWSCHEMA%%_before_upd_vacancydays BEFORE UPDATE ON %%NEWSCHEMA%%.vacancydays FOR EACH ROW EXECUTE FUNCTION %%NEWSCHEMA%%.trg_before_upd_schematable(); CREATE TRIGGER trg_%%NEWSCHEMA%%_before_upd_vacancytypes BEFORE UPDATE ON %%NEWSCHEMA%%.vacancytypes FOR EACH ROW EXECUTE FUNCTION %%NEWSCHEMA%%.trg_before_upd_schematable(); diff --git a/app/index.cgi b/app/index.cgi index 42e4e198..07d8e536 100644 --- a/app/index.cgi +++ b/app/index.cgi @@ -137,6 +137,9 @@ $vars->{page} = 'module/'.$vars->{page}; $vars->{pagename} = basename($vars->{page}); $vars->{pagename} =~ s/\.tt$//; +if ($sess->{id}){ + $vars->{cmpcfg} = $se->getCompanyConfig($sess->{sessiondata}->{schemata}); +} $vars->{params}= $p; if ($sess->{lang} eq ""){ $sess->{lang} = "fr"; @@ -150,8 +153,8 @@ $vars->{remote_addr} = $ENV{REMOTE_ADDR}; my $template = Template->new({INCLUDE_PATH => [$sitecfg->{tmplpath}]}); $template->process($skl,$vars) || die "Template process failed: ", $template->error(), "\n"; $db->disconnect(); -# if ($vars->{page} =~ /\.tt/){ -# print '
'.Dumper($vars)."
";
-#  } 
+if ($vars->{page} =~ /\.tt/){
+      print '
'.Dumper($vars)."
";
+} 
 
 
diff --git a/app/lib/POT/Archive.pm b/app/lib/POT/Archive.pm
new file mode 100644
index 00000000..cdc92911
--- /dev/null
+++ b/app/lib/POT/Archive.pm
@@ -0,0 +1,51 @@
+package POT::Archive;
+
+use strict;
+
+sub new {
+    my $class = shift;
+    my $p = shift;
+    my $self = bless {}, $class;
+    $self->{db} = $p->{db};
+    return $self;
+}
+
+sub getArchive(){
+  my $self = shift;
+  my $schema = shift;
+}
+
+sub addToArchive(){
+  my $self = shift;
+  my $schema = shift;
+  my $id_staff =shift; # ARRAY;
+  my $id_period = shift;
+  
+    my $sqlcompany = "select id,schemata,periodtypes,company,socialtype,address,zip,city,country from public.companies where schemata='".$schema."';";
+  my $sqllegend = "select id,vacancyname,legend,isworktime FROM ".$schema.".vacancytypes";
+  my $sqlperiod = "select rp.id,rp.startdate,rp.enddate,st.prename,st.surname,st.staffnumber,st.matricule,to_char(rp.startdate,'DD.MM.YYYY') as dspstartdate,to_char(rp.enddate,'DD.MM.YYYY') as dspenddate, srp.id_staff, 
+  to_char(srp.contracthours, 'HH24:MI'::text) AS contracthours,
+    to_char(srp.workhours, 'HH24:MI'::text) AS workhours,
+    to_char(srp.vacancyhours, 'HH24:MI'::text) AS vacancyhours,
+    to_char(srp.vacancyill, 'HH24:MI'::text) AS vacancyill,
+    to_char(srp.vacancynormal, 'HH24:MI'::text) AS vacancynormal,
+    to_char(srp.recuperationhours, 'HH24:MI'::text) AS recuperationhours,
+    case when position('-' in to_char(srp.hoursdiff, 'HH24:MI')) > 0  then '-' || replace(to_char(srp.hoursdiff, 'HH24:MI'),'-','') else to_char(srp.hoursdiff, 'HH24:MI') end  as hoursdiff,
+    to_char(srp.totalhours, 'HH24:MI'::text) AS totalhours,
+    to_char(srp.payedhours, 'HH24:MI'::text) AS payedhours,
+    to_char(srp.avgtotalweekhours, 'HH24:MI'::text) AS avgtotalweekhours,
+    case when position('-' in to_char(srp.transferedhourscalc, 'HH24:MI')) > 0 then '-' || replace(to_char(srp.transferedhourscalc, 'HH24:MI'),'-','') else to_char(srp.transferedhourscalc, 'HH24:MI') end  as transferedhourscalc,
+    '+' || suppvacancysunwork as suppvacancysunwork,
+    '+' || suppvacancy44hours as suppvacancy44hours
+   from ".$schema.".staffreportperiod srp 
+join ".$schema.".reportperiod rp on (srp.id_reportperiod =rp.id)
+join ".$schema.".staff st on (srp.id_staff=st.id)
+where st.isdeleted is null and id_staff='".$id_staff."' and srp.idreportperiod='".$id_period."' 
+order by rp.startdate,rp.enddate,st.surname,st.prename;";
+    my $sqlpreioddays = "";
+    my $sqlperiodweeksums = "";
+    
+ 
+}
+
+1;
\ No newline at end of file
diff --git a/app/lib/POT/Period.pm b/app/lib/POT/Period.pm
index b3ada891..2e79cc6c 100644
--- a/app/lib/POT/Period.pm
+++ b/app/lib/POT/Period.pm
@@ -129,12 +129,12 @@ sub getStaffPeriods(){
     to_char(srp.vacancyextra, 'HH24:MI'::text) AS vacancyextra,
     to_char(srp.partunemplhours, 'HH24:MI'::text) AS partunemplhours,
     to_char(srp.recuperationhours, 'HH24:MI'::text) AS recuperationhours,
-    case when position('-' in to_char(srp.hoursdiff, 'HH24:MI')) > 0 then '-' || replace(to_char(srp.hoursdiff, 'HH24:MI'),'-','') else to_char(srp.hoursdiff, 'HH24:MI') end  as hoursdiff,
+    case when position('-' in to_char(srp.hoursdiff, 'HH24:MI')) > 0 then '-' || replace(to_char(srp.hoursdiff, 'HH24:MI'),'-','') else to_char(srp.hoursdiff, 'HH24:MI') end as hoursdiff,
     to_char(srp.totalhours, 'HH24:MI'::text) AS totalhours,
     srp.id as id_staffreportperiod,srp.id_reportperiod, srp.id_staff, srp.id, rp.startdate, rp.enddate,
     COALESCE(st.surname || ' '::text, ''::text) || COALESCE(st.prename, ''::text) AS staffname,
     st.id_staffgroup, sgr.groupname,
-    case when position('-' in to_char(srp.transferedhours, 'HH24:MI')) > 0 then '-' || replace(to_char(srp.transferedhours, 'HH24:MI'),'-','') else to_char(srp.transferedhours, 'HH24:MI') end  as transferedhours,
+    case when position('-' in to_char(srp.transferedhours, 'HH24:MI')) > 0 then '-' || replace(to_char(srp.transferedhours, 'HH24:MI'),'-','') else to_char(srp.transferedhours, 'HH24:MI') end as transferedhours,
     case when suppvacancysunwork is not null and suppvacancysunwork > 0 then '+' || suppvacancysunwork  else  null end as suppvacancysunwork,
     case when suppvacancy44hours is not null and suppvacancy44hours > 0 then '+' || suppvacancy44hours  else null end as suppvacancy44hours
     ,itmcontracthours,maxdays,srp.isvalidated,
@@ -335,6 +335,7 @@ sub getPeriodDayLimits(){
   my $before = $self->{db}->query("select daydate as datebefore,to_char(case when timestart2 is null then timeend1 else timeend2 end,'HH24:MI') as timeendbefore from ".$schema.".staffreportperioddays where id_staff= '".$id_staff."' and daydate < date('".$daydate."') and (timestart1 is not null or timestart2 is not null) order by daydate desc limit 1;");
 	my $after =  $self->{db}->query("select daydate as dateafter ,to_char(case when timestart1 is null then timestart2 else timestart1 end,'HH24:MI') as timestartafter from ".$schema.".staffreportperioddays where id_staff= '".$id_staff."' and daydate > date('".$daydate."') and (timestart1 is not null or timestart2 is not null) order by daydate asc limit 1;");
   my $contr = $self->{db}->query($csql); 
+   print STDERR "contr:\n".Dumper($contr)."\n"."\n===\n";
   if ($contr->{weekhours} ge '40:00:00' ){
     
 	my $sql = "select to_char(wk.maxdayhours,'HH24:MI') as maxdayhours,
@@ -651,8 +652,6 @@ sub clonePeriodDay(){
                                vacillhours=".$self->{db}->value($copy->{vacillhours}).",
                                vacextrahours=".$self->{db}->value($copy->{vacextrahours}).",
                                partunemplhours=".$self->{db}->value($copy->{partunemplhours}).", 
-													   --id_vacancytype=".$self->{db}->value($copy->{id_vacancytype}).", 
-													   --id_recuperationtype=".$self->{db}->value($copy->{id_recuperationtype}).", 
 													   recuperationhours=".$self->{db}->value($copy->{recuperationhours})." 
 		where id in ('".join("','",@{$pasteids})."');";
     $sql =~ s/\s+/ /g;
@@ -684,8 +683,6 @@ sub cleanPeriodDays(){
                           vacillhours = null,
                           vacextrahours = null,
                           partunemplhours = null,  
-	   											--id_vacancytype = null, 
-	   											--id_recuperationtype = null, 
 	   											recuperationhours = null,
 	   											workhours=null, 
 	   											dayhours=null 
diff --git a/app/lib/POT/Report.pm b/app/lib/POT/Report.pm
index b1c27164..4001e873 100644
--- a/app/lib/POT/Report.pm
+++ b/app/lib/POT/Report.pm
@@ -505,8 +505,7 @@ sub getPeriodWeekSums(){
   ,case when cd.contractworkdays < cd.cmpcontractdays then to_char(cd.contractworkdays*'08:00:00'::interval,'HH24:MI') else to_char(cd.contracthours,'HH24:MI') end as contracthours
   ,to_char(AVG(ws.totalhours) over (order by ws.weekstart),'HH24:MI') as avgtotalhours
   ,case when cd.contractworkdays < cd.cmpcontractdays then '00:00' else
-  case when position('-' in to_char(ws.totalhours-cd.contracthours ,'HH24:MI')) > 0  then '-' || replace(to_char(ws.totalhours-cd.contracthours ,'HH24:MI'),'-','') else to_char(ws.totalhours-cd.contracthours ,'HH24:MI') end  
-  end as diffhours
+  case when position('-' in to_char(ws.totalhours-cd.contracthours ,'HH24:MI')) > 0  then '-' || replace(to_char(ws.totalhours-cd.contracthours ,'HH24:MI'),'-','') else to_char(ws.totalhours-cd.contracthours ,'HH24:MI') end end as diffhours
   ,cd.contractworkdays
   ,cd.cmpcontractdays
   ,cd.cmpweekhours
diff --git a/app/lib/dksdb.pm b/app/lib/dksdb.pm
index 3ca21b22..0d40d53c 100644
--- a/app/lib/dksdb.pm
+++ b/app/lib/dksdb.pm
@@ -20,7 +20,7 @@ sub new {
     my $class = shift;
     my $p = shift;
     my $self = bless {}, $class;
-    $self->{debug} = 0;
+    $self->{debug} = 1;
     $self->{dbh} = DBI->connect($p->{dsn},$p->{dbuser},$p->{dbpassword},{PrintError=>1,RaiseError=>1,AutoCommit=>1})  or return "query Connection Error!".$!;
     return $self;
 }
diff --git a/app/lib/session.pm b/app/lib/session.pm
index 5146bfd9..f2bbd3c0 100644
--- a/app/lib/session.pm
+++ b/app/lib/session.pm
@@ -112,6 +112,13 @@ us.isblocked is null group by se.id,us.id,ugrp.id;";
   return $ret;
 }
 
+sub getCompanyConfig(){
+  my $self = shift;
+  my $schema = shift;
+  my $sql = "select timetrackertype,sector,viewpartunempl from public.companies where schemata='".$schema."';";
+  return $self->{db}->query($sql);
+}
+
 sub setsessiondata(){
   my $self = shift;
   my $idsession = shift;
diff --git a/app/manifest.json b/app/manifest.webmanifest
similarity index 62%
rename from app/manifest.json
rename to app/manifest.webmanifest
index 8e1a4ea4..c701f186 100644
--- a/app/manifest.json
+++ b/app/manifest.webmanifest
@@ -3,37 +3,37 @@
  "short_name": "POT",
  "icons": [
   {
-   "src": "/img/favicon/android-icon-36x36.png",
+   "src": "/static/img/favicon/android-icon-36x36.png",
    "sizes": "36x36",
    "type": "image/png",
    "density": "0.75"
   },
   {
-   "src": "/img/favicon/android-icon-48x48.png",
+   "src": "/static/img/favicon/android-icon-48x48.png",
    "sizes": "48x48",
    "type": "image/png",
    "density": "1.0"
   },
   {
-   "src": "/img/favicon/android-icon-72x72.png",
+   "src": "/static/img/favicon/android-icon-72x72.png",
    "sizes": "72x72",
    "type": "image/png",
    "density": "1.5"
   },
   {
-   "src": "/img/favicon/android-icon-96x96.png",
+   "src": "/static/img/favicon/android-icon-96x96.png",
    "sizes": "96x96",
    "type": "image/png",
    "density": "2.0"
   },
   {
-   "src": "/img/favicon/android-icon-144x144.png",
+   "src": "/static/img/favicon/android-icon-144x144.png",
    "sizes": "144x144",
    "type": "image/png",
    "density": "3.0"
   },
   {
-   "src": "/img/favicon/android-icon-192x192.png",
+   "src": "/static/img/favicon/android-icon-192x192.png",
    "sizes": "192x192",
    "type": "image/png",
    "density": "4.0"
@@ -43,5 +43,5 @@
  "background_color":"#52638e",
  "theme_color":"#52638e",
  "display":"standalone",
- "orientation":"portrait"
+ "orientation":"landscape"
 }
\ No newline at end of file
diff --git a/app/static/css/fonts/appicons.eot b/app/static/css/fonts/appicons.eot
index 87cbfb456dfc01690693e4977ae5bf51e01283ad..4dd967356901a9e4df5c20fd38bbfaf0f968df2b 100644
GIT binary patch
delta 528
zcmZ3ojHzKc6Klg{28J6GS1j7+`q!O(jQ42%;P7|kJ+$O7amL(TC7nd+F17#Q{0o5=lFfcPuPG{_4
zw4eNiQHf2QQS86i+sQIa(aPQb_c7NpA7Ef&U}azsS7a1qRP1K@@UMfh>aTzkV+o@)
zWAS7+72VC{OpHAWSpnr=5Le8Nn^EWu)jYjEKs{@6@{RiDd@^!-N$;zCvDNZt7~8`~)B$XddIFg8bqV247?s$>{)_z;dp%i(DSGp9CdM9xUkcxX
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 
 
diff --git a/app/static/css/fonts/appicons.ttf b/app/static/css/fonts/appicons.ttf
index 24639cb6597ae9ec26790357c7a69dc5e1a24cb1..e5731c8f0d8a6104e4b47ebc7ff4055a52071970 100644
GIT binary patch
delta 516
zcmeyfgz3gorU{Dm$yXQ|7#L+37#MQW6N?Lgv;dIb0i-$7b1Ku64~E_Y@+UAb^mJsT
zCZN-<2@F>%LaM*GP=
zj7n_cjAH-A-cBxIj8^XczmK_=`2YhG11kfAxFVw+
zQ`X&lo{_OfAuFK#YdpWrR|am7Z9x0&4xB~M|MyM)&}%H23y}jW02<4{0OWUr@Me>~
z<&5=43~mg|7$um*n5$S+Sl+RoVQXXC!S2H$!!eKJ17`qd5$86pFm5&O2<{c!7kIYt
z3h+AdUgKNFU&X(M|CfN1z&wEqf(C*vf)#@M1pf#X2;C9(5U~+06P+Y_MQnrEKk+3J
zA`)p5nAz%$dzu!+DwW
aITs_BX)bSEGu&JlfYHs6yLsJ&bBqA1f|St!

delta 464
zcmcbyl33=!Vc%;0f7D+vkJ|a^j>ms{Ic9)!i+%)+K@~cARk0@9uBq(fA6jJO{
ze51std_eh&ij+#0$~x5)^&m|vZ82RYy?2IY#tTe8m|0j%u*|bR50V!3=E7{fHE9V
zERdd4nFbWQ!@$tf0m8}$L+@pzCZ;ej^Z_x083;?yJtmp~6a
z4CJ6mAiP>8KcOJM7^rbF%fvsk8SN*}U{qogXB7J{_IC0C#%Sg4|NEG0nGY~9F|aZ)
zh$}J*GAed6efZbGSoK%HiLr!Hnz4BDD`nly(oBp!3RwZ=U*q|0zA|vL04)T%!|uRY
z1pR;CWSc%?$y|sWSOL&j1_mI%8-zDE^etzsH)3#OSjH&9B*t9DqQdfy^$c4Z+YWXg
z4jGPl93MCXIEy&9afNZKaYt~k;J(1Kg;#*riT4`cGX5(5HT=H>oCM|xTo5!6bP=o&
z+$Z=)s6gnBu!o3^Xqo6F(JNvb#Qupdkr0tclh`DgA!Q;}By~!fNBWJ-EZH2{Q?ifb
zBINc($nTK9B>zSsL7_w8j-r*~HYE`yGvya5GAd3glT@y$_NZ5BCTZL0YUzs^#u=Y5
ylQ2uL*kL)%{*#k~Q#|Qx4ho5f%

delta 526
zcmZ3ojOoNuCb4pVH#Y`G1|XPpf`J=M*Dx?n7Mv_RQB$Kn@$&EV#Nq-52F5EuDGn$W
zNYANE1B%^YVCb;`;Wr@Ds2o&=H@>M{X{RoS8Ms7(3
zPz+?|8W3K@prn(NpA1wtK?bPi1_(cLV|tRCSW%z@6#N1dPypjiEIaZNb5j`@CIT&C
zoCLzFW%3gW@{3D=u3s_n&um89$uk(0*u?&e{S|vX`2b_|=4>X$9)({D--6@$ZN4&a
zvj7cZV7R0B;3mRoPcLVndo*teTyi&aD`0DtB_*?id2}lW)39Jz05R?%N
z5S%7>MaV;Fi?D)-h^U`vmgpL>4zX+EHR5k1>?FD*9i(`qyrdRMJ&`^lQzYvmyGVAI
zoPpdl`3dr?;^dDgSSTbYY*7?a>{EQB#HV~f`HPB_N|wqx)fDw0O)G6NT_(MEhGxbK
zOh1@eSWK|Yvp?k|;S}Ul1Uo%1pmE|)x)Bd!i^GT@lbX4%Hz2KFZtD4sVL
IPu$1|0Dp;+NdN!<

diff --git a/app/static/css/icons.css b/app/static/css/icons.css
index feca1ebd..6c40406d 100644
--- a/app/static/css/icons.css
+++ b/app/static/css/icons.css
@@ -1,10 +1,10 @@
 @font-face {
   font-family: 'appicons';
-  src:  url('fonts/appicons.eot?clkm3g');
-  src:  url('fonts/appicons.eot?clkm3g#iefix') format('embedded-opentype'),
-    url('fonts/appicons.ttf?clkm3g') format('truetype'),
-    url('fonts/appicons.woff?clkm3g') format('woff'),
-    url('fonts/appicons.svg?clkm3g#appicons') format('svg');
+  src:  url('fonts/appicons.eot?rmyyuw');
+  src:  url('fonts/appicons.eot?rmyyuw#iefix') format('embedded-opentype'),
+    url('fonts/appicons.ttf?rmyyuw') format('truetype'),
+    url('fonts/appicons.woff?rmyyuw') format('woff'),
+    url('fonts/appicons.svg?rmyyuw#appicons') format('svg');
   font-weight: normal;
   font-style: normal;
   font-display: block;
@@ -25,191 +25,197 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
-.icon-eye-close:before {
-  content: "\e93c";
+.icon-shrink:before {
+  content: "\e900";
 }
-.icon-eye-open:before {
-  content: "\e93d";
+.icon-expand:before {
+  content: "\e901";
 }
 .icon-house:before {
-  content: "\e900";
+  content: "\e902";
 }
 .icon-help:before {
-  content: "\e901";
+  content: "\e903";
 }
 .icon-helpfile:before {
-  content: "\e902";
+  content: "\e904";
 }
 .icon-aggrement:before {
-  content: "\e903";
+  content: "\e905";
 }
 .icon-info:before {
-  content: "\e904";
+  content: "\e906";
 }
 .icon-pause:before {
-  content: "\e905";
+  content: "\e907";
 }
 .icon-calendar:before {
-  content: "\e906";
+  content: "\e908";
 }
 .icon-clocktime:before {
-  content: "\e907";
+  content: "\e909";
 }
 .icon-cube:before {
-  content: "\e908";
+  content: "\e90a";
 }
 .icon-cubelight:before {
-  content: "\e909";
+  content: "\e90b";
 }
 .icon-dashboard:before {
-  content: "\e90a";
+  content: "\e90c";
 }
 .icon-history:before {
-  content: "\e90b";
+  content: "\e90d";
 }
 .icon-shop:before {
-  content: "\e90c";
+  content: "\e90e";
 }
 .icon-template:before {
-  content: "\e90d";
+  content: "\e90f";
 }
 .icon-remove:before {
-  content: "\e90e";
+  content: "\e910";
 }
 .icon-access:before {
-  content: "\e90f";
+  content: "\e911";
 }
 .icon-address:before {
-  content: "\e910";
+  content: "\e912";
 }
 .icon-apps:before {
-  content: "\e911";
+  content: "\e913";
 }
 .icon-archive:before {
-  content: "\e912";
+  content: "\e914";
 }
 .icon-calendar1:before {
-  content: "\e913";
+  content: "\e915";
 }
 .icon-code:before {
-  content: "\e914";
+  content: "\e916";
 }
 .icon-coin:before {
-  content: "\e915";
+  content: "\e917";
 }
 .icon-company:before {
-  content: "\e916";
+  content: "\e918";
 }
 .icon-cube1:before {
-  content: "\e917";
+  content: "\e919";
 }
 .icon-cubelight1:before {
-  content: "\e918";
+  content: "\e91a";
 }
 .icon-dashboard1:before {
-  content: "\e919";
+  content: "\e91b";
 }
 .icon-datarefresh:before {
-  content: "\e91a";
+  content: "\e91c";
 }
 .icon-documentsave:before {
-  content: "\e91b";
+  content: "\e91d";
 }
 .icon-documents:before {
-  content: "\e91c";
+  content: "\e91e";
 }
 .icon-download:before {
-  content: "\e91d";
+  content: "\e91f";
 }
 .icon-duplicate1:before {
-  content: "\e91e";
+  content: "\e920";
 }
 .icon-edit:before {
-  content: "\e91f";
+  content: "\e921";
 }
 .icon-excel:before {
-  content: "\e920";
+  content: "\e922";
 }
-.icon-expand:before {
-  content: "\e921";
+.icon-expand2:before {
+  content: "\e923";
 }
 .icon-file:before {
-  content: "\e922";
+  content: "\e924";
 }
 .icon-Floppy:before {
-  content: "\e923";
+  content: "\e925";
 }
 .icon-folder:before {
-  content: "\e924";
+  content: "\e926";
 }
 .icon-folder_add:before {
-  content: "\e925";
+  content: "\e927";
 }
 .icon-folder_delete:before {
-  content: "\e926";
+  content: "\e928";
 }
 .icon-folder_find:before {
-  content: "\e927";
+  content: "\e929";
 }
 .icon-globe:before {
-  content: "\e928";
+  content: "\e92a";
 }
 .icon-group:before {
-  content: "\e929";
+  content: "\e92b";
 }
 .icon-home:before {
-  content: "\e92a";
+  content: "\e92c";
 }
 .icon-inbox:before {
-  content: "\e92b";
+  content: "\e92d";
 }
 .icon-library:before {
-  content: "\e92c";
+  content: "\e92e";
 }
 .icon-star:before {
-  content: "\e92d";
+  content: "\e92f";
 }
 .icon-list:before {
-  content: "\e92e";
+  content: "\e930";
 }
 .icon-log:before {
-  content: "\e92f";
+  content: "\e931";
 }
 .icon-logout:before {
-  content: "\e930";
+  content: "\e932";
 }
 .icon-menu:before {
-  content: "\e931";
+  content: "\e933";
 }
 .icon-newspaper:before {
-  content: "\e932";
+  content: "\e934";
 }
 .icon-numberlist:before {
-  content: "\e933";
+  content: "\e935";
 }
 .icon-package:before {
-  content: "\e934";
+  content: "\e936";
 }
 .icon-dataset:before {
-  content: "\e935";
+  content: "\e937";
 }
 .icon-check:before {
-  content: "\e936";
+  content: "\e938";
 }
 .icon-pay:before {
-  content: "\e937";
+  content: "\e939";
 }
 .icon-pdf:before {
-  content: "\e938";
+  content: "\e93a";
 }
 .icon-pdfexport:before {
-  content: "\e939";
+  content: "\e93b";
 }
 .icon-pictures:before {
-  content: "\e93a";
+  content: "\e93c";
 }
 .icon-plus:before {
-  content: "\e93b";
+  content: "\e93d";
+}
+.icon-eye-close:before {
+  content: "\e93e";
+}
+.icon-eye-open:before {
+  content: "\e93f";
 }
 .icon-staff:before {
   content: "\e943";
diff --git a/app/tmpl/block/dlg_print.tt b/app/tmpl/block/dlg_print.tt
new file mode 100644
index 00000000..0c34a203
--- /dev/null
+++ b/app/tmpl/block/dlg_print.tt
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app/tmpl/block/dlgstaffperioddays.tt b/app/tmpl/block/dlgstaffperioddays.tt
index 14ff3109..3c0714fa 100644
--- a/app/tmpl/block/dlgstaffperioddays.tt
+++ b/app/tmpl/block/dlgstaffperioddays.tt
@@ -211,8 +211,8 @@
       
               
[% lbl.edittimetracks %]
- - + +
diff --git a/app/tmpl/index.tt b/app/tmpl/index.tt index e217f3f0..4f69b291 100644 --- a/app/tmpl/index.tt +++ b/app/tmpl/index.tt @@ -9,7 +9,7 @@ - POT - Plan d'Organtisation du Travail[% IF mode %][% " - ${mode}" %][% END %] + POT - Plan d'Organtisation du Travail @@ -35,7 +35,7 @@ - + diff --git a/app/tmpl/lang/de.tt b/app/tmpl/lang/de.tt index 17a3d174..7148ed18 100644 --- a/app/tmpl/lang/de.tt +++ b/app/tmpl/lang/de.tt @@ -205,6 +205,7 @@ "vacancyextra" => "Sonderurlaub", "vacancyextra2" => "Sonder-
urlaub", "partunempl" => "Kurzarbeit", + "partunempl2" => "Kurzarbeit", "ttentry" => "Kommen", "ttexit" => "Gehen", "tttotal" => "Total", @@ -231,5 +232,7 @@ "vacancyextra3" => "Sonderurl.", "comment" => "Bemerkung...", "datasaved" => "Die Daten wurden gespeichert!", - "timeperiod" => "Zeitraum" + "timeperiod" => "Zeitraum", + "viewonlyweeks" => "Tage ausblenden", + "viewdays" => "Tage einblenden" } %] \ No newline at end of file diff --git a/app/tmpl/lang/fr.tt b/app/tmpl/lang/fr.tt index 8cf8f01c..090bd4dd 100644 --- a/app/tmpl/lang/fr.tt +++ b/app/tmpl/lang/fr.tt @@ -205,6 +205,7 @@ "vacancyextra" => "extraordinaire", "vacancyextra2" => "c. except.", "partunempl" => "chômage part.", + "partunempl2" => "chômage
partielle", "ttentry" => "entrée", "ttexit" => "sortie", "tttotal" => "Total", @@ -231,5 +232,7 @@ "vacancyextra3" => "c. except.", "comment" => "note...", "datasaved" => "Les données ont été sauvegardées!", - "timeperiod" => "période" + "timeperiod" => "période", + "viewonlyweeks" => "masquer jours", + "viewdays" => "afficher jours" } %] \ No newline at end of file diff --git a/app/tmpl/module/archive.tt b/app/tmpl/module/archive.tt new file mode 100644 index 00000000..a0ad5818 --- /dev/null +++ b/app/tmpl/module/archive.tt @@ -0,0 +1,13 @@ +
+
+ [% lbl.back %] +
[% lbl.archive %]
+
+ + + +
+
+
+
\ No newline at end of file diff --git a/app/tmpl/module/archive/archive.js b/app/tmpl/module/archive/archive.js new file mode 100644 index 00000000..2248f098 --- /dev/null +++ b/app/tmpl/module/archive/archive.js @@ -0,0 +1,28 @@ +function initpage(){ + index.init(); +} + +let archive = { + tbl: null, + init: function(){ + archive.tbl = new Tabulator("#tbl_archive", { + height: "calc(100vh - 56px)", + layout: "fitDataFill", + selectable: true, + selectableRangeMode:"click", + rowContext:function(e, row){e.preventDefault();}, + columns:[ + {formatter:"rowSelection", titleFormatter:"rowSelection", hozAlign:"center", headerSort:false, cellClick:function(e, cell){ + cell.getRow().toggleSelect(); + }}, + {title: "[% lbl.start %]",field: "startdate",headerSort:"datetime",formatter:"datetime",resizable: false,formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"DD.MM.YYYY",invalidPlaceholder:""} }, + {title: "[% lbl.end %]",field: "enddate",sorter:"datetime",resizable: false,formatter:"datetime",formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"DD.MM.YYYY",invalidPlaceholder:""} }, + {title: "[% lbl.name %]",headerFilter:"input", field: "surname" ,resizable:false }, + {title: "[% lbl.prename %]",headerFilter:"input",field: "prename",resizable:false}, + {title: "[% lbl.createdate %]",field: "created",headerSort:"datetime",formatter:"datetime",resizable: false,formatterParams:{inputFormat:"YYYY-MM-DD HH:mm",outputFormat:"DD.MM.YYYY HH:mm",invalidPlaceholder:""} }, + {title: "[% lbl.version %]",field: "version",headerSort:true,resizable: false }, + {title: "[% lbl.stafftransferdate %]",field: "stafftransferdate",sorter:"datetime",resizable: false,formatter:"datetime",formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"DD.MM.YYYY",invalidPlaceholder:""} }, + ] + }); + } +} \ No newline at end of file diff --git a/app/tmpl/module/index.tt b/app/tmpl/module/index.tt index e458bdd2..54caf26b 100644 --- a/app/tmpl/module/index.tt +++ b/app/tmpl/module/index.tt @@ -2,7 +2,7 @@
-
[% lbl.pot_long %]
+
[% lbl.pot_long %][% IF mode %][% " - ${mode}" %][% END %]
[% lbl.logout %]