--- /dev/null
+{
+ "input-hidden": {
+ "scope":"html",
+ "prefix":"input-hidden",
+ "body":["<input type=\"hidden\" class=\"data_${1:formname}\" id=\"$1_${2:column}\" data-id=\"\" data-column=\"$2\" data-table=\"${3:table}\" />"]
+ },
+ "input-date": {
+ "scope":"html",
+ "prefix":"input-date",
+ "body":["<div class=\"cell\" style=\"width: 140px;\">",
+ "\t<label class=\"label\" for=\"${1:formname}_${2:column}\">{$3:label}</label>",
+ "\t<input class=\"input border date data_$1 datefield\" data-column=\"$2\" data-id=\"\" data-table=\"${4:table}\" id=\"$1_$2\" onblur=\"dataform.savefield(this);\" type=\"date\">",
+ "</div>"]
+ },
+ "input-text": {
+ "scope":"html",
+ "prefix":"input-text",
+ "body":["<div class=\"cell\" style=\"width: ${1:400}px;\">",
+ "\t<label class=\"label\" for=\"${2:formname}_${3:column}\">${4:label}</label>",
+ "\t<input class=\"input border text data_$2 ${5:readonly}\" data-column=\"$3\" data-id=\"\" data-table=\"${6:table}\" id=\"$2_$3\" onblur=\"dataform.savefield(this);\" type=\"text\" $5>",
+ "</div>"]
+ },
+ "input-number": {
+ "scope":"html",
+ "prefix":"input-number",
+ "body":["<div class=\"cell\" style=\"width: ${1:140}px;\">",
+ "\t<label class=\"label\" for=\"${2:formname}_${3:column}\">${4:label}</label>",
+ "\t<input class=\"input border number right-align data_$2 ${5:readonly}\" data-column=\"$3\" data-id=\"\" data-table=\"${6:table}\" id=\"$2_$3\" onblur=\"dataform.savefield(this);\" type=\"text\" $5>",
+ "</div>"]
+},
+ "form":{
+ "scope":"html",
+ "prefix":"form",
+ "body":"<form id=\"frm_${1:formname}\">$0</form>"
+ },
+ "row": {
+ "scope":"html",
+ "prefix":"row",
+ "body":"<div class=\"row\">$0</div>"
+ },
+ "cellrow": {
+ "scope":"html",
+ "prefix":"cellrow",
+ "body":"<div class=\"cell-row\">$0</div>"
+ },
+ "panel": {
+ "scope":"html",
+ "prefix":"panel",
+ "body":["<div class=\"panel\" id=\"pnl_${1:filename}\" ${2:style=\"display: none;\"}>","$0","</div>"]
+ },
+ "select": {
+ "scope":"html",
+ "prefix": "select",
+ "body":[
+ "<div class=\"cell\" style=\"width: ${1:400}px;\">",
+ "\t<label class=\"label\" for=\"${2:formname}_${3:column}\">${4:label}</label>",
+ "\t<select class=\"select border data_$2\" data-column=\"$3\" data-id=\"\" data-selected=\"\" data-table=\"${4:table}\" id=\"$2_$3\"></select>",
+ "</div>"]
+ },
+ "checkbox": {
+ "scope":"html",
+ "prefix": "checkbox",
+ "body": ["<div class=\"cell\" style=\"width: 100%\">","\t<div class=\"container\">",
+ "\t\t<div class=\"cell-row\">",
+ "\t\t\t<div class=\"cell\" style=\"width: 40px;\">",
+ "\t\t\t\t<input class=\"check data_${2:formname}\" id=\"$2_${3:column}\"> data-column=\"$3\" data-table=\"$2\" data-id=\"\" value=\"\" type=\"checkbox\" />",
+ "\t\t\t</div>",
+ "\t\t\t<div class=\"cell\">${4: checkbox label text}</div>","\t\t</div>","\t</div>","</div>"]
+ },
+ "textarea": {
+ "scope":"html",
+ "prefix":"textarea",
+ "body":[
+ "<div class=\"cell\" style=\"width: ${1:100%};\">",
+ "\t<label class=\"label\" for=\"${2:formname}_${3:column}\">${4:label}</label>",
+ "\t<textarea class=\"input border data_$2 ${5:richeditarea}\" style=\"height: ${6:height}px;\" data-id=\"\" data-column=\"$3\" data-table=\"${7:table}\" id=\"$2_$3\" ></textarea>",
+ "</div>"
+ ]
+ },
+ "topbarlistpage":{
+ "scope":"html",
+ "prefix":"topbar-listpage",
+ "body":["<div class=\"bar toolbar\">",
+ "<a class=\"bar-item toolbarbtn\" href=\"index.html\"><span class=\"icon-home\" style=\"font-size: 18px;\"></span>Home</a>",
+ "<div class=\"bar-item PageHeadTitle\">${1:Page Title}</div>",
+ "<div class=\"hide-small\">",
+ "\t<button class=\"bar-item toolbarbtn right\" onclick=\"${2:jsclass}.confirmRemove();\"><span class=\"icon-trash\" style=\"font-size: 17px;\"></span>suppr.</button>",
+ "\t<button class=\"bar-item toolbarbtn right\" onclick=\"$2.edit();\"><span class=\"icon-edit\" style=\"font-size: 17px;\"></span>édit.</button>",
+ "\t<button class=\"bar-item toolbarbtn right\" onclick=\"$2.duplicate()\"><span class=\"icon-duplicate\" style=\"font-size: 17px;\"></span>dupl.</button>",
+ "\t<button class=\"bar-item toolbarbtn right\" onclick=\"$2.add();\"><span class=\"icon-plus\" style=\"font-size: 17px;\"></span>ajouter</button>",
+ "</div> ",
+ "<div class=\"hide-large hide-medium\">",
+ "\t<button class=\"bar-item toolbarbtn right\" onclick=\"myapp.togglemenu('mobilemenu_$2');\"><span class=\"icon-menu xxlarge\" style=\"font-size: 20px;\"></span></button>",
+ "</div>",
+ "<div class=\"toolbar\" id=\"mobilemenu_$2\" style=\"display: none;\">",
+ "\t<div class=\"bar\">",
+ "\t\t<button class=\"bar-item toolbarbtn\" onclick=\"$2.add();\"><span class=\"icon-plus\" style=\"font-size: 17px;\"></span>ajouter</button>",
+ "\t\t<button class=\"bar-item toolbarbtn\" onclick=\"$2.edit();\"><span class=\"icon-edit\" style=\"font-size: 17px;\"></span>édit.</button>",
+ "\t\t<button class=\"bar-item toolbarbtn\" onclick=\"$2.confirmRemove();\"><span class=\"icon-trash\" style=\"font-size: 17px;\"></span>suppr.</button>",
+ "\t\t <button class=\"bar-item toolbarbtn\" onclick=\"$2.duplicate()\"><span class=\"icon-duplicate\" style=\"font-size: 17px;\"></span>dupl.</button>",
+ "\t</div>",
+ "</div>",
+ "</div>"]
+ },
+ "topbarformpage":{
+ "scope":"html",
+ "prefix":"topbar-formpage",
+ "body": [
+ "<div class=\"bar toolbar\">",
+ "\t<button class=\"bar-item toolbarbtn\" onclick=\"myapp.viewpanel('${1:panelname'});\"><span class=\"icon-back\" style=\"font-size: 18px;\"></span>retour</button>",
+ "\t<div class=\"bar-item PageHeadTitle\">${2: title}</div>",
+ "</div>"]
+ },
+ "tablebar":{
+ "scope":"html",
+ "prefix":"tablebar",
+ "body":["<div class=\"bar moduletoolbar\">",
+ "<div class=\"bar-item PageSubTitle\">${1:Page Title}</div>",
+ "\t<button class=\"bar-item toolbarbtn right\" onclick=\"${2:jsclass}.confirmRemove();\"><span class=\"icon-trash\" style=\"font-size: 17px;\"></span>[% lbl.delete %]</button>",
+ "\t<button class=\"bar-item toolbarbtn right\" onclick=\"$2.edit();\"><span class=\"icon-edit\" style=\"font-size: 17px;\"></span>[% lbl.edit %]</button>",
+ "\t<button class=\"bar-item toolbarbtn right\" onclick=\"$2.duplicate()\"><span class=\"icon-duplicate\" style=\"font-size: 17px;\"></span>[% lbl.duplicate %]</button>",
+ "\t<button class=\"bar-item toolbarbtn right\" onclick=\"$2.add();\"><span class=\"icon-plus\" style=\"font-size: 17px;\"></span>[% lbl.add %]</button>",
+ "</div>"]
+ },
+ "display-container":{
+ "scope":"html",
+ "prefix":"display-container",
+ "body": [
+ "<div class=\"display-container\">",
+ "</div>"]
+ }
+ // Place your oldbell_lu workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
+ // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
+ // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
+ // used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
+ // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
+ // Placeholders with the same ids are connected.
+ // Example:
+ // "Print to console": {
+ // "scope": "javascript,typescript",
+ // "prefix": "log",
+ // "body": [
+ // "console.log('$1');",
+ // "$2"
+ // ],
+ // "description": "Log output to console"
+ // }
+}
\ No newline at end of file
my $se = session->new({db => $db});
$vars->{ua} = $ENV{HTTP_USER_AGENT};
-if (($vars->{ua} !~ /^POT/) || ($vars->{ua} !~ /iPad/)){
+if (($vars->{ua} !~ /^POT/) && ($vars->{ua} !~ /iPad/)){
print "Location: https://www.plandutravail.lu\n\n";
exit(0);
- }
+}
$vars->{realpath} = $cgi->url({-absolute=>1});
$vars->{filepath} = substr($cgi->url({-absolute=>1}),length($vars->{basepath})+1);
$vars->{baseurl} = $cgi->url({-base=>1}).'/'.$vars->{basepath};
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 '<pre style="display: none;" >'.Dumper($vars)."<pre>";
- }
+# if ($vars->{page} =~ /\.tt/){
+# print '<pre style="display: none;" >'.Dumper($vars)."<pre>";
+# }
return 1;
}
-# sub admin_sendpassword(){
-# my $self = shift;
-# my $email = shift;
-# my $ret->{messagetype} ='red';
-# $ret->{message} = "email inconnue!";
-# my $sql = "select id,userpassword,surname,prename from users where username='".$self->{db}->securetext($email)."';";
-# my $ex = $self->{db}->querysorted($sql);
-# if (keys(%{$ex}) > 0){
-# my $newpwd = $self->randomstring(12);
-# my $pwd = sha256_hex($newpwd);
-# $self->{db}->exec("UPDATE users SET userpassword = '".$pwd."' WHERE id='".$ex->{0}->{id}."';");
-# my $data->{newpassword} = $newpwd;
-# $data->{name} = $ex->{0}->{prename}." ".$ex->{0}->{surname};
-# my $eml = sendemail->new();
-# my $mret = $eml->sendemail('user_forgotpasswd',$email,$data);
-# if ($mret != 0){
-# $ret->{messagetype} ='red';
-# $ret->{message} = "Pour le moment il n'y est pas possible de recevoir un nouveau mot de passe, <br/>si besoin contacter le support!";
-# return $ret;
-# }
-# $ret->{message} = "nous vous avons envoyés un nouveau mot de passe par email!";
-# $ret->{messagetype} = "green";
-# }
-# return $ret;
-# }
+
sub passwordforgotten(){
return $ret;
}
-# sub registeruser(){
-# my $self = shift;
-# my $data = shift;
-# my $ret->{messagetype} ='red';
-# $ret->{message} = "Une erreur c'est produite, essayer plus tard!";
-# $ret->{page} = "message.tt";
-# my @reqfields = ("companies_company","terms","users_email","members_phone","members_surname","members_prename","members_job");
-# my $reqf = 1;
-# foreach my $rf (@reqfields){
-# if (!exists($data->{$rf})){
-# $reqf = 0;
-# }
-# }
-# if ($reqf == 0){
-# $ret->{message} = "Rempissez tous les champs s.v.p.!";
-# $ret->{page} = "register.tt";
-# return $ret;
-# }
-# foreach my $d (%{$data}){
-# $data->{$d} = $self->{db}->securetext($data->{$d});
-# }
-
-# my $user = $self->{db}->querysorted("select id from users where username='".$data->{users_email}."';");
-# if (keys(%{$user}) > 0){
-# $ret->{page} = "register.tt";
-# $ret->{message} = "Il y existe déjà un utilisateur avec la mème adresse e-mail!";
-# return $ret;
-# }
-
-# my $newcode = $self->randomstring(6);
-
-# my $newuserid = $self->{db}->querysorted("INSERT INTO users (username,vcode) VALUES ('".$data->{users_email}."','".$newcode."') returning id;");
-# #$self->{db}->exec("INSERT INTO useringroups (id_user,id_group) VALUES ('".$newuserid->{0}->{id}."',(select id from usergroups where isdefault=true));");
-# my $company = $self->{db}->querysorted("select id from companies where link=unaccent_string('".$data->{companies_company}."');");
-# if (keys(%{$company}) == 0 ){
-# $company = $self->{db}->querysorted("INSERT INTO companies (company,link) VALUES ('".$data->{companies_company}."',unaccent_string('".$data->{companies_company}."')) returning id;");
-# #$self->{db}->exec("INSERT INTO useringroups (id_user,id_group) VALUES ('".$newuserid->{0}->{id}."',(select id from usergroups where usergroup='company'));");
-# }
-# $self->{db}->exec("INSERT INTO members (surname, prename, phone, id_user, id_company, job) VALUES('".$data->{members_surname}."', '".$data->{members_prename}."', '".$data->{members_phone}."', ".$newuserid->{0}->{id}.", ".$company->{0}->{id}.", '".$data->{members_job}."');");
-# my $maildata->{vcode} = $newcode;
-# my $eml = sendemail->new();
-# my $mret = $eml->sendemail('user_verification',$newuserid->{0}->{id},$data->{users_email},$maildata,undef);
-# if ($mret == 0){
-# $ret->{message} = "Merci,<br/>nous vous avons envoyé un email,avec un code de vérification!<br/>Entrez ce code ci dessous, pour valider votre compte!<br/>en cas de problèmes envoyer un email à <a href=\"mailto:suppoort\@dks.lu\">info\@solana-architecture.lu</a>";
-# $ret->{messagetype} = "green";
-# $ret->{page} = "validationcode.tt";
-# } else {
-# $self->{db}->exec("UPDATE users set username='".$data->{users_email}."',vcode=null where id=".$newuserid->{0}->{id}." ;");
-# $ret->{message} = "nous ne pouvons pas envoyer un email à '".$data->{users_email}."' ! Si cette email n'existe pas, régisterez-vous avec un email existant!<br>en cas de problèemes envoyer un email à <a href=\"mailto:info\@solana-architecture.lu\">info\@solana-architecture.lu</a>";
-# $ret->{messagetype} = "red";
-# $ret->{page} = "register.tt";
-# }
-# #$self->{db}->exec("insert into appaccess (id_user) values (".$newuserid->{0}->{id}.");");
-# # $ret->{messagetype} = "green";
-
-# return $ret;
-# }
-# sub validateaccount(){
-# my $self = shift;
-# my $data = shift;
-# foreach my $d (%{$data}){
-# $data->{$d} = $self->{db}->securetext($data->{$d});
-# }
-
-# my $ret->{messagetype} ='red';
-# my $vcodedata = $self->{db}->querysorted("select id,vcode,username from users where vcode='".$data->{vcode}."';");
-# if (keys(%{$vcodedata}) == 0){
-# $ret->{message} = "code inconnue!";
-# $ret->{page} = "validationcode.tt";
-# }
-# my $newpwd = $self->randomstring(12);
-# my $pwd = sha256_hex($newpwd);
-# my $maildata->{password} = $newpwd;
-# my $eml = sendemail->new();
-# my $newuserid = $self->{db}->querysorted("UPDATE users set userpassword='".$pwd."',vcode=null,regcode=null where id=".$vcodedata->{0}->{id}." returning id,username;");
-# my $mret = $eml->sendemail('user_registration',$vcodedata->{0}->{id},$vcodedata->{0}->{username},$maildata,undef);
-# if ($mret == 0){
-# $ret->{message} = "Merci,<br/>Nous vous avons envoyé un email avec les données nécessaires pour se connecter!";
-# $ret->{messagetype} = "green";
-# $ret->{page} = "message.tt";
-# } else {
-# $ret->{message} = "NOus n'avons pas pu vous envoyé un email à '".$newuserid->{0}->{username}."'! Si l'addresse email n'existe pas, essayer avec un email existant!";
-# $ret->{page} = "message.tt";
-# }
-# return $ret;
-# }
-
sub getsession($){
my $self = shift;
my $sid = shift;
my $sql = "select se.id as idsession,us.lang,us.id,us.username,ugrp.id as usergroup,us.id_staffgroups as staffgroups,se.sessiondata from sessions se
join users us on (us.id=se.id_user)
left join usergroups ugrp on (ugrp.id=us.id_usergroup)
-where se.id= '".$self->{db}->securetext($sid)."' and se.remote_addr= '".$ENV{REMOTE_ADDR}."' and
+where se.id= '".$self->{db}->securetext($sid)."' and se.remote_addr= '".$ENV{REMOTE_ADDR}."' and (se.user_agent LIKE '".'%POT%'."' OR se.user_agent LIKE ''".'%iPad%'."'') and
us.isblocked is null group by se.id,us.id,ugrp.id;";
#and se.user_agent LIKE 'POT/%/%/%'
my $res= $self->{db}->querysorted($sql);
# return 1;
# }
+# sub registeruser(){
+# my $self = shift;
+# my $data = shift;
+# my $ret->{messagetype} ='red';
+# $ret->{message} = "Une erreur c'est produite, essayer plus tard!";
+# $ret->{page} = "message.tt";
+# my @reqfields = ("companies_company","terms","users_email","members_phone","members_surname","members_prename","members_job");
+# my $reqf = 1;
+# foreach my $rf (@reqfields){
+# if (!exists($data->{$rf})){
+# $reqf = 0;
+# }
+# }
+# if ($reqf == 0){
+# $ret->{message} = "Rempissez tous les champs s.v.p.!";
+# $ret->{page} = "register.tt";
+# return $ret;
+# }
+# foreach my $d (%{$data}){
+# $data->{$d} = $self->{db}->securetext($data->{$d});
+# }
+
+# my $user = $self->{db}->querysorted("select id from users where username='".$data->{users_email}."';");
+# if (keys(%{$user}) > 0){
+# $ret->{page} = "register.tt";
+# $ret->{message} = "Il y existe déjà un utilisateur avec la mème adresse e-mail!";
+# return $ret;
+# }
+
+# my $newcode = $self->randomstring(6);
+
+# my $newuserid = $self->{db}->querysorted("INSERT INTO users (username,vcode) VALUES ('".$data->{users_email}."','".$newcode."') returning id;");
+# #$self->{db}->exec("INSERT INTO useringroups (id_user,id_group) VALUES ('".$newuserid->{0}->{id}."',(select id from usergroups where isdefault=true));");
+# my $company = $self->{db}->querysorted("select id from companies where link=unaccent_string('".$data->{companies_company}."');");
+# if (keys(%{$company}) == 0 ){
+# $company = $self->{db}->querysorted("INSERT INTO companies (company,link) VALUES ('".$data->{companies_company}."',unaccent_string('".$data->{companies_company}."')) returning id;");
+# #$self->{db}->exec("INSERT INTO useringroups (id_user,id_group) VALUES ('".$newuserid->{0}->{id}."',(select id from usergroups where usergroup='company'));");
+# }
+# $self->{db}->exec("INSERT INTO members (surname, prename, phone, id_user, id_company, job) VALUES('".$data->{members_surname}."', '".$data->{members_prename}."', '".$data->{members_phone}."', ".$newuserid->{0}->{id}.", ".$company->{0}->{id}.", '".$data->{members_job}."');");
+# my $maildata->{vcode} = $newcode;
+# my $eml = sendemail->new();
+# my $mret = $eml->sendemail('user_verification',$newuserid->{0}->{id},$data->{users_email},$maildata,undef);
+# if ($mret == 0){
+# $ret->{message} = "Merci,<br/>nous vous avons envoyé un email,avec un code de vérification!<br/>Entrez ce code ci dessous, pour valider votre compte!<br/>en cas de problèmes envoyer un email à <a href=\"mailto:suppoort\@dks.lu\">info\@solana-architecture.lu</a>";
+# $ret->{messagetype} = "green";
+# $ret->{page} = "validationcode.tt";
+# } else {
+# $self->{db}->exec("UPDATE users set username='".$data->{users_email}."',vcode=null where id=".$newuserid->{0}->{id}." ;");
+# $ret->{message} = "nous ne pouvons pas envoyer un email à '".$data->{users_email}."' ! Si cette email n'existe pas, régisterez-vous avec un email existant!<br>en cas de problèemes envoyer un email à <a href=\"mailto:info\@solana-architecture.lu\">info\@solana-architecture.lu</a>";
+# $ret->{messagetype} = "red";
+# $ret->{page} = "register.tt";
+# }
+# #$self->{db}->exec("insert into appaccess (id_user) values (".$newuserid->{0}->{id}.");");
+# # $ret->{messagetype} = "green";
+
+# return $ret;
+# }
+
+
+# sub validateaccount(){
+# my $self = shift;
+# my $data = shift;
+# foreach my $d (%{$data}){
+# $data->{$d} = $self->{db}->securetext($data->{$d});
+# }
+
+# my $ret->{messagetype} ='red';
+# my $vcodedata = $self->{db}->querysorted("select id,vcode,username from users where vcode='".$data->{vcode}."';");
+# if (keys(%{$vcodedata}) == 0){
+# $ret->{message} = "code inconnue!";
+# $ret->{page} = "validationcode.tt";
+# }
+# my $newpwd = $self->randomstring(12);
+# my $pwd = sha256_hex($newpwd);
+# my $maildata->{password} = $newpwd;
+# my $eml = sendemail->new();
+# my $newuserid = $self->{db}->querysorted("UPDATE users set userpassword='".$pwd."',vcode=null,regcode=null where id=".$vcodedata->{0}->{id}." returning id,username;");
+# my $mret = $eml->sendemail('user_registration',$vcodedata->{0}->{id},$vcodedata->{0}->{username},$maildata,undef);
+# if ($mret == 0){
+# $ret->{message} = "Merci,<br/>Nous vous avons envoyé un email avec les données nécessaires pour se connecter!";
+# $ret->{messagetype} = "green";
+# $ret->{page} = "message.tt";
+# } else {
+# $ret->{message} = "NOus n'avons pas pu vous envoyé un email à '".$newuserid->{0}->{username}."'! Si l'addresse email n'existe pas, essayer avec un email existant!";
+# $ret->{page} = "message.tt";
+# }
+# return $ret;
+# }
+
+# sub admin_sendpassword(){
+# my $self = shift;
+# my $email = shift;
+# my $ret->{messagetype} ='red';
+# $ret->{message} = "email inconnue!";
+# my $sql = "select id,userpassword,surname,prename from users where username='".$self->{db}->securetext($email)."';";
+# my $ex = $self->{db}->querysorted($sql);
+# if (keys(%{$ex}) > 0){
+# my $newpwd = $self->randomstring(12);
+# my $pwd = sha256_hex($newpwd);
+# $self->{db}->exec("UPDATE users SET userpassword = '".$pwd."' WHERE id='".$ex->{0}->{id}."';");
+# my $data->{newpassword} = $newpwd;
+# $data->{name} = $ex->{0}->{prename}." ".$ex->{0}->{surname};
+# my $eml = sendemail->new();
+# my $mret = $eml->sendemail('user_forgotpasswd',$email,$data);
+# if ($mret != 0){
+# $ret->{messagetype} ='red';
+# $ret->{message} = "Pour le moment il n'y est pas possible de recevoir un nouveau mot de passe, <br/>si besoin contacter le support!";
+# return $ret;
+# }
+# $ret->{message} = "nous vous avons envoyés un nouveau mot de passe par email!";
+# $ret->{messagetype} = "green";
+# }
+# return $ret;
+# }
+
1;
\ No newline at end of file
-<div id="dlg_newpassword" class="modal">
- <div class="modal-content animate-top card-4">
- <header>
- <span onclick="document.getElementById('dlg_newpassword').style.display='none'; return false;"
- class="button toolbarbtn display-topright" ><span class="icon icon-remove" style="font-size: 18px;"></span></span>
- <h2>[% lbl.newpassword %]</h2>
- </header>
- <div class="container">
- <div id="newpasswordmsg">
- <div class="info-panel2">[% lbl.pwdcondition %]</div>
- </div>
- <form id="frm_newpassword">
- <div class="row" style="margin-top: 5px;">
- <div class="container">
- <label for="newpwd1" class="label">[% lbl.password %]</label>
- <div class="cell">
- <input type="password" class="input data_newpassword " id="newpwd1" data-column="newpwd1" style="width: 250px;display: inline-block;" data-table="newpassword" data-id="" value="" />
- <button class="button actionbtn text-white" id="btn_newpwd1" onclick="profile.viewpwd('newpwd1');return false;"><span class="icon icon-eye-open" style="font-size: 16pt;"></span></button>
- </div>
- </div>
- <div class="container">
- <label for="newpwd2" class="label">[% lbl.retypepwd %]</label>
- <div class="cell">
- <input type="password" class="input data_newpassword " id="newpwd2" data-column="newpwd2" style="width: 250px; display: inline-block;" data-table="newpassword" data-id="" value=""/>
- <button class="button actionbtn text-white" id="btn_newpwd2" onclick="profile.viewpwd('newpwd2');return false;"><span class="icon icon-eye-open" style="font-size: 16pt;"></span></button>
- </div>
- </div>
- </div>
- </form>
- </div>
- <footer>
- <button class="button theme-light border" onclick="document.getElementById('dlg_newpassword').style.display='none'; return false;"><span class="icon icon-remove"></span>[% lbl.cancel %]</button>
- <button class="button actionbtn margin" onclick="profile.generatenewpassword();"><span class="icon icon-Save"></span>[% lbl.genpwd %]</button>
- <button class="button actionbtn margin" onclick="profile.savepwd();"><span class="icon icon-Save"></span>[% lbl.save %]</button>
- </footer>
-</div>
+<div id="dlg_newpassword" class="modal">\r
+ <div class="modal-content animate-top card-4">\r
+ <header> \r
+ <span onclick="document.getElementById('dlg_newpassword').style.display='none'; return false;" \r
+ class="button toolbarbtn display-topright" ><span class="icon icon-remove" style="font-size: 18px;"></span></span>\r
+ <h2>[% lbl.newpassword %]</h2>\r
+ </header>\r
+ <div class="container">\r
+ <div id="newpasswordmsg">\r
+ <div class="info-panel2">[% lbl.pwdcondition %]</div>\r
+ </div>\r
+ <form id="frm_newpassword">\r
+ <div class="row" style="margin-top: 5px;">\r
+ <div class="container">\r
+ <label for="newpwd1" class="label">[% lbl.password %]</label>\r
+ <div class="cell">\r
+ <input type="password" class="input data_newpassword " id="newpwd1" data-column="newpwd1" style="width: 250px;display: inline-block;" data-table="newpassword" data-id="" value="" />\r
+ <button class="button actionbtn text-white" id="btn_newpwd1" onclick="profile.viewpwd('newpwd1');return false;"><span class="icon icon-eye-open" style="font-size: 16pt;"></span></button>\r
+ </div>\r
+ </div>\r
+ <div class="container">\r
+ <label for="newpwd2" class="label">[% lbl.retypepwd %]</label>\r
+ <div class="cell">\r
+ <input type="password" class="input data_newpassword " id="newpwd2" data-column="newpwd2" style="width: 250px; display: inline-block;" data-table="newpassword" data-id="" value=""/>\r
+ <button class="button actionbtn text-white" id="btn_newpwd2" onclick="profile.viewpwd('newpwd2');return false;"><span class="icon icon-eye-open" style="font-size: 16pt;"></span></button>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </form>\r
+ </div>\r
+ <footer>\r
+ <button class="button theme-light border" onclick="document.getElementById('dlg_newpassword').style.display='none'; return false;"><span class="icon icon-remove"></span>[% lbl.cancel %]</button>\r
+ <button class="button actionbtn margin" onclick="profile.generatenewpassword();"><span class="icon icon-Save"></span>[% lbl.genpwd %]</button>\r
+ <button class="button actionbtn margin" onclick="profile.savepwd();"><span class="icon icon-Save"></span>[% lbl.save %]</button>\r
+ </footer>\r
+</div>\r
</div>
\ No newline at end of file
-[% appversion='1.0.28' %]
+[% appversion='1.0.27' %]
[% minify = '' %]
[% PROCESS "lang/${lang}.tt" %]
<!DOCTYPE html>
-[% lbl = {
- "pot_long" => "Plan d'organisation du travail",
- "weeklytemplates" => "Wochen-Vorlagen",
- "template" => "Vorlagen",
- "staff" => "Arbeitnehmer",
- "sectorconfig" => "Konfiguration Sektor",
- "sectorconfigpot" => "sektorielle Konfiguration POT",
- "periodsconfig" => "Konfiguration Periode",
- "sectorhoursconfig" => "sektorielle Stunden Konfiguration" ,
- "back" => "zurück",
- "delete" => "löschen",
- "duplicate" => "dupl.",
- "add" => "neu",
- "rename" => "umbenennen",
- "edit" => "bearb.",
- "copy" => "kopiern",
- "paste" => "einfügen",
- "basedata" => "Stammdaten",
- "periods" => "Perioden",
- "refperiods" => "Referenz-Perioden",
- "pdf" => "PDF",
- "finalstatement" => "SchlussAbrechnung",
- "finalstatementpot" => "POT Schluss<br/>Abrechnung",
- "statement" => "Abrechnung",
- "companyunit" => "Unternhemen / Standort",
- "logout" => "Logout",
- "modules" => "Module",
- "staffcount" => "Arbeitnehmer Anz.",
- "config" => "Konfiguration",
- "company" => "Unternehmen",
- "terms" => "AGB",
- "administration" => "Administration",
- "companies" => "Unternehmen",
- "sectors" => "Sektoren",
- "sector" => "Sektor",
- "vacancydays" => "Feiertage",
- "vacancytypes" => "Urlaubs-Bezeichnungen",
- "vacancytype" => "Urlaubs-Bezeichnung",
- "vacancy" => "Urlaub",
- "recuperationtype" => "Art des Stunden-Ausgleichs",
- "recuperation" => "Stunden-Ausgleich",
- "hours" => "Stunden",
- "infohours" => "Stunden-info",
- "acceptterms" => "Ich habe die AGB gelesen und bin einverstanden",
- "users" => "Benutzer",
- "newpassword" => "neues Passwort",
- "changelogin" => "Login ändern",
- "editday" => "Tag bearbeiten",
- "workhours" => "Arbeitsstunden",
- "start" => "Anfang",
- "startdate" => "Anfangs-Datum",
- "enddate" => "End-Datum",
- "end" => "Ende",
- "total" => "Total",
- "totalday" => "Total tag",
- "pausehours" => "Pausen-Zeiten",
- "totalpause" => "Total Pause",
- "cancel" => "Abbrechen",
- "save" => "Speichern",
- "changetemplate" => "changer modèle",
- "selecttemplate" => "Selection du modèle",
- "commit" => "Validieren und Abschließen",
- "pottemplate" => "POT (Vorlage)",
- "name" => "Name",
- "staffgroupname" => "Name der Abteilung",
- "prename" => "Vorname",
- "companytype" => "Rechtsform",
- "companyunitname" => "Name der Firma / Geschäftsstelle",
- "matricule" => "Matrikel-Nr.",
- "birthdate" => "Geburtsdatum",
- "job" => "Job / Position",
- "department" => "Abteilung",
- "departments" => "Abteilungen",
- "departmentaccess" => "Abteilungen (Zugriff)",
- "timetracker" => "Stechuhr",
- "no" => "Nein",
- "yes" => "Ja",
- "address" => "Addresse",
- "zip" => "PLZ",
- "city" => "Ort",
- "country" => "Land",
- "phone" => "Telefon",
- "email" => "E-Mail",
- "contractdata" => "Vertrags-Daten",
- "renewperiods" => "Perioden aktualisieren",
- "weekhours" => "Stunden / Woche",
- "weekhours_short" => "h/Woche",
- "minmaxvalues" => "Min/max Werte",
- "maxdayhours" => "max h/Tag",
- "maxweekhours" => "max h/Woche",
- "maxcutoff" => "max Unterbrechung",
- "maxtotal" => "max Total",
- "mindailyfreehours" => "min Stunden Ruhezeit",
- "mindailyouttime" => "min Stunden Ruhezeit",
- "mindailyouttime2" => "min Stunden<br/>Ruhezeit",
- "daytotal" => "Total Tag",
- "weekdays" => "Tage / Woche",
- "weekdays_short" => "t/Woche",
- "addstaffmember" => "neuer Arbeitnehmer",
- "timetracks" => "Zeitstempel",
- "clean" => "leeren",
- "cutoff" => "Unterbrechung",
- "loginlink" => "EInlogggen",
- "username" => "Login",
- "password" => "Passwort",
- "clientaccess" => "Kunden-Login",
- "login" => "Einloggen",
- "forgotpassword" => "Passwort vergessen",
- "user" => "Benutzer",
- "sendpassword" => "Passwort schicken",
- "rcs" => "No. Handelsregister",
- "vatnumber" => "Ust-Id International",
- "dbschema" => "Datenbnak-Schema",
- "duration" => "Dauer",
- "unit" => "EInheit",
- "payedpauses" => "bezahlte Pausen",
- "pauses" => "Pausen",
- "type" => "Typ",
- "url" => "URL",
- "lastsync" => "letzte Aktualisierung",
- "accessblocked" => "Login blockieren",
- "useraccess" => "Benutzer-Zugriff",
- "datasetaccess" => "Datensatz-Zugriff",
- "staffgroupaccess" => "Abteilungs-Zugriff",
- "dataset" => "Datensatz",
- "usernamechange" => "Login ändern",
- "newusername" => "neuer Login",
- "edittimetracks" => "Stechuhr bearbeiten",
- "infoouttimes" => "Info Ruhezeiten davor/danach",
- "freetimebefore" => "Ruhezeit davor",
- "freetimeafter" => "Ruhezeit danach",
- "statementbeforevalidation" => "Abrechnung vor Validierung",
- "reopen" => "Freischalten",
- "transferhours" => "zu übertragende Stunden",
- "transferhours1_5" => "zu übertragende Stunden (x1,5)",
- "weeklyavg" => "Wochen Durchschnitt",
- "transferfreehours" => "zu übertragende Stunden<br/>Stunden-Ausgleich",
- "plushourstopayplus40" => "Überstunden<br/>zu bezahlen mit +40%",
- "hourstopayplus40" => "zu vergütenden Stunden (+40%)",
- "hourstopayonly40" => "Überstunden<br/>zu beahlen (40%)",
- "ok" => "OK",
- "waitmsg" => "Bitte warten!",
- "close" => "Schließen",
- "keepvacancy" => "Urlaubs-Einstellungen behalten",
- "keeprecuperation" => "Stundenausgleich-Einstellungen behalten",
- "replace" => "austauschen",
- "qdeletecompany" => "ausgewählte Firma wirklich löschen?",
- "ddeletestaffgroup" => "ausgewählte Abteilung wirklich löschen?",
- "qdeleteuser" => "ausgewählte Benutzer wirklich löschen?",
- "qdeletehours" => "ausgewählte Stunden wirklich löschen?",
- "qdeletestaff" => "ausgewählte Arbeitnehmer wirklich löschen?",
- "qdeletedata" => "ausgewählte Daten wirklich löschen?",
- "qdeleteworkplan" => "ausgewählte Vorlage wirklich löschen?"
- "allfieldsrequired" => "bitte alle Felder ausfüllen!",
- "monday" => "Montag",
- "tuesday" => "Dienstag",
- "wednesday" => "Mittwoch",
- "thursday" => "Donnerstag",
- "friday" => "Freitag",
- "saturday" => "Samstag",
- "sunday" => "Sonntag",
- "contract" => "Vertrag",
- "work" => "Arbeit",
- "contractrequired" => "Alle Felder sind erfordert (außer \"End-Datum\")!",
- "recuperation_short" => "Ausgleich",
- "vacancyill2" => "Krank",
- "statementtransfered2" => "übertragene<br/>Abrechnung",
- "supphourspayed2" => "bezahlte<br/>Überstunden",
- "supp44h2" => "+Urlaub wg.<br/>+44 h",
- "suppsunwork" => "+Urlaub wg.<br/>Sonntagsarbeit",
- "avgweek_short" => "Wochen<br/>Durchschnitt",
- "validated" => "validiert",
- "diffcontract" => "Unterschied<br/>Vertrag",
- "weekhours2" => "Arbeits-<br/>Stunden",
- "worktotal2" => "Total<br/>Arbeit",
- "standard" => "Standard",
- "pausehours2" => "Pausen",
- "totalpause2" => "Total<br/>PAuse",
- "day" => "Tag",
- "description" => "Beschreibung",
- "msgdel_stdhours" => "Die Standard-Vorlage kann nicht gelöscht werden!",
- "newpassword" => "Neues Passwort",
- "retypepwd" => "Neues Passwort wiederholen",
- "pwdcondition" => "Passwörter müssen mindstens 10 Zeichen lang seien und mindestens 1 Grossbuchstabe, 1 Klein-Buchstabe und 1 Zahl enthalten",
- "genpwd" => "Passwort vorschlagen",
- "usergroup" => "Berechtigungen",
- "language" => "Sprache"
+[% lbl = { \r
+ "pot_long" => "Plan d'organisation du travail",\r
+ "weeklytemplates" => "Wochen-Vorlagen",\r
+ "template" => "Vorlagen",\r
+ "staff" => "Arbeitnehmer",\r
+ "sectorconfig" => "Konfiguration Sektor",\r
+ "sectorconfigpot" => "sektorielle Konfiguration POT",\r
+ "periodsconfig" => "Konfiguration Periode",\r
+ "sectorhoursconfig" => "sektorielle Stunden Konfiguration" ,\r
+ "back" => "zurück",\r
+ "delete" => "löschen",\r
+ "duplicate" => "dupl.",\r
+ "add" => "neu",\r
+ "rename" => "umbenennen",\r
+ "edit" => "bearb.",\r
+ "copy" => "kopiern",\r
+ "paste" => "einfügen",\r
+ "basedata" => "Stammdaten",\r
+ "periods" => "Perioden",\r
+ "refperiods" => "Referenz-Perioden",\r
+ "pdf" => "PDF",\r
+ "finalstatement" => "SchlussAbrechnung",\r
+ "finalstatementpot" => "POT Schluss<br/>Abrechnung",\r
+ "statement" => "Abrechnung",\r
+ "companyunit" => "Unternhemen / Standort",\r
+ "logout" => "Logout",\r
+ "modules" => "Module",\r
+ "staffcount" => "Arbeitnehmer Anz.",\r
+ "config" => "Konfiguration",\r
+ "company" => "Unternehmen",\r
+ "terms" => "AGB",\r
+ "administration" => "Administration",\r
+ "companies" => "Unternehmen",\r
+ "sectors" => "Sektoren",\r
+ "sector" => "Sektor",\r
+ "vacancydays" => "Feiertage",\r
+ "vacancytypes" => "Urlaubs-Bezeichnungen",\r
+ "vacancytype" => "Urlaubs-Bezeichnung",\r
+ "vacancy" => "Urlaub",\r
+ "recuperationtype" => "Art des Stunden-Ausgleichs",\r
+ "recuperation" => "Stunden-Ausgleich",\r
+ "hours" => "Stunden",\r
+ "infohours" => "Stunden-info",\r
+ "acceptterms" => "Ich habe die AGB gelesen und bin einverstanden",\r
+ "users" => "Benutzer",\r
+ "newpassword" => "neues Passwort",\r
+ "changelogin" => "Login ändern",\r
+ "editday" => "Tag bearbeiten",\r
+ "workhours" => "Arbeitsstunden",\r
+ "start" => "Anfang",\r
+ "startdate" => "Anfangs-Datum",\r
+ "enddate" => "End-Datum",\r
+ "end" => "Ende",\r
+ "total" => "Total",\r
+ "totalday" => "Total tag",\r
+ "pausehours" => "Pausen-Zeiten",\r
+ "totalpause" => "Total Pause",\r
+ "cancel" => "Abbrechen",\r
+ "save" => "Speichern",\r
+ "changetemplate" => "changer modèle",\r
+ "selecttemplate" => "Selection du modèle",\r
+ "commit" => "Validieren und Abschließen",\r
+ "pottemplate" => "POT (Vorlage)",\r
+ "name" => "Name",\r
+ "staffgroupname" => "Name der Abteilung",\r
+ "prename" => "Vorname",\r
+ "companytype" => "Rechtsform",\r
+ "companyunitname" => "Name der Firma / Geschäftsstelle",\r
+ "matricule" => "Matrikel-Nr.",\r
+ "birthdate" => "Geburtsdatum",\r
+ "job" => "Job / Position",\r
+ "department" => "Abteilung",\r
+ "departments" => "Abteilungen",\r
+ "departmentaccess" => "Abteilungen (Zugriff)",\r
+ "timetracker" => "Stechuhr",\r
+ "no" => "Nein",\r
+ "yes" => "Ja",\r
+ "address" => "Addresse",\r
+ "zip" => "PLZ",\r
+ "city" => "Ort",\r
+ "country" => "Land",\r
+ "phone" => "Telefon",\r
+ "email" => "E-Mail",\r
+ "contractdata" => "Vertrags-Daten",\r
+ "renewperiods" => "Perioden aktualisieren",\r
+ "weekhours" => "Stunden / Woche",\r
+ "weekhours_short" => "h/Woche",\r
+ "minmaxvalues" => "Min/max Werte",\r
+ "maxdayhours" => "max h/Tag",\r
+ "maxweekhours" => "max h/Woche",\r
+ "maxcutoff" => "max Unterbrechung",\r
+ "maxtotal" => "max Total",\r
+ "mindailyfreehours" => "min Stunden Ruhezeit",\r
+ "mindailyouttime" => "min Stunden Ruhezeit",\r
+ "mindailyouttime2" => "min Stunden<br/>Ruhezeit",\r
+ "daytotal" => "Total Tag",\r
+ "weekdays" => "Tage / Woche",\r
+ "weekdays_short" => "t/Woche",\r
+ "addstaffmember" => "neuer Arbeitnehmer",\r
+ "timetracks" => "Zeitstempel",\r
+ "clean" => "leeren",\r
+ "cutoff" => "Unterbrechung",\r
+ "loginlink" => "EInlogggen",\r
+ "username" => "Login",\r
+ "password" => "Passwort",\r
+ "clientaccess" => "Kunden-Login",\r
+ "login" => "Einloggen",\r
+ "forgotpassword" => "Passwort vergessen",\r
+ "user" => "Benutzer",\r
+ "sendpassword" => "Passwort schicken",\r
+ "rcs" => "No. Handelsregister",\r
+ "vatnumber" => "Ust-Id International",\r
+ "dbschema" => "Datenbnak-Schema",\r
+ "duration" => "Dauer",\r
+ "unit" => "EInheit",\r
+ "payedpauses" => "bezahlte Pausen",\r
+ "pauses" => "Pausen",\r
+ "type" => "Typ",\r
+ "url" => "URL",\r
+ "lastsync" => "letzte Aktualisierung",\r
+ "accessblocked" => "Login blockieren",\r
+ "useraccess" => "Benutzer-Zugriff",\r
+ "datasetaccess" => "Datensatz-Zugriff",\r
+ "staffgroupaccess" => "Abteilungs-Zugriff",\r
+ "dataset" => "Datensatz",\r
+ "usernamechange" => "Login ändern",\r
+ "newusername" => "neuer Login",\r
+ "edittimetracks" => "Stechuhr bearbeiten",\r
+ "infoouttimes" => "Info Ruhezeiten davor/danach",\r
+ "freetimebefore" => "Ruhezeit davor",\r
+ "freetimeafter" => "Ruhezeit danach",\r
+ "statementbeforevalidation" => "Abrechnung vor Validierung",\r
+ "reopen" => "Freischalten",\r
+ "transferhours" => "zu übertragende Stunden",\r
+ "transferhours1_5" => "zu übertragende Stunden (x1,5)",\r
+ "weeklyavg" => "Wochen Durchschnitt",\r
+ "transferfreehours" => "zu übertragende Stunden<br/>Stunden-Ausgleich",\r
+ "plushourstopayplus40" => "Überstunden<br/>zu bezahlen mit +40%",\r
+ "hourstopayplus40" => "zu vergütenden Stunden (+40%)",\r
+ "hourstopayonly40" => "Überstunden<br/>zu beahlen (40%)",\r
+ "ok" => "OK",\r
+ "waitmsg" => "Bitte warten!",\r
+ "close" => "Schließen",\r
+ "keepvacancy" => "Urlaubs-Einstellungen behalten",\r
+ "keeprecuperation" => "Stundenausgleich-Einstellungen behalten",\r
+ "replace" => "austauschen",\r
+ "qdeletecompany" => "ausgewählte Firma wirklich löschen?",\r
+ "ddeletestaffgroup" => "ausgewählte Abteilung wirklich löschen?",\r
+ "qdeleteuser" => "ausgewählte Benutzer wirklich löschen?",\r
+ "qdeletehours" => "ausgewählte Stunden wirklich löschen?",\r
+ "qdeletestaff" => "ausgewählte Arbeitnehmer wirklich löschen?",\r
+ "qdeletedata" => "ausgewählte Daten wirklich löschen?",\r
+ "qdeleteworkplan" => "ausgewählte Vorlage wirklich löschen?"\r
+ "allfieldsrequired" => "bitte alle Felder ausfüllen!",\r
+ "monday" => "Montag",\r
+ "tuesday" => "Dienstag",\r
+ "wednesday" => "Mittwoch",\r
+ "thursday" => "Donnerstag",\r
+ "friday" => "Freitag",\r
+ "saturday" => "Samstag",\r
+ "sunday" => "Sonntag",\r
+ "contract" => "Vertrag",\r
+ "work" => "Arbeit",\r
+ "contractrequired" => "Alle Felder sind erfordert (außer \"End-Datum\")!",\r
+ "recuperation_short" => "Ausgleich",\r
+ "vacancyill2" => "Krank",\r
+ "statementtransfered2" => "übertragene<br/>Abrechnung",\r
+ "supphourspayed2" => "bezahlte<br/>Überstunden",\r
+ "supp44h2" => "+Urlaub wg.<br/>+44 h",\r
+ "suppsunwork" => "+Urlaub wg.<br/>Sonntagsarbeit",\r
+ "avgweek_short" => "Wochen<br/>Durchschnitt",\r
+ "validated" => "validiert",\r
+ "diffcontract" => "Unterschied<br/>Vertrag",\r
+ "weekhours2" => "Arbeits-<br/>Stunden",\r
+ "worktotal2" => "Total<br/>Arbeit",\r
+ "standard" => "Standard",\r
+ "pausehours2" => "Pausen",\r
+ "totalpause2" => "Total<br/>PAuse",\r
+ "day" => "Tag",\r
+ "description" => "Beschreibung",\r
+ "msgdel_stdhours" => "Die Standard-Vorlage kann nicht gelöscht werden!",\r
+ "newpassword" => "Neues Passwort",\r
+ "retypepwd" => "Neues Passwort wiederholen",\r
+ "pwdcondition" => "Passwörter müssen mindstens 10 Zeichen lang seien und mindestens 1 Grossbuchstabe, 1 Klein-Buchstabe und 1 Zahl enthalten",\r
+ "genpwd" => "Passwort vorschlagen",\r
+ "usergroup" => "Berechtigungen",\r
+ "language" => "Sprache"\r
} %]
\ No newline at end of file
"friday" => "vendredi",
"saturday" => "samedi",
"sunday" => "dimanche",
- "contractrequired" => "Tous les champs sauf sans requis (sauf 'date fin')!",
+ "contractrequired" => "Tous les champs sauf sans requis (sauf \"date fin\")!",
"contract" => "Contrat",
"work" => "Travail",
"recuperation_short" => "Récup",
//.log(data);
users.tbl.setData(data.result.sqldata);
});
- },
- // confirmchangepassword: function(){
- // /* @preserve[% IF session.usergroup == 'admin' || session.usergroup == 'manager' %]*/
- // let sel =users.tbl.getSelectedData();
- // if (sel[0]){
- // showinfodlg(">[% lbl.newpassword %]","Êtes vous sûre changer le [% lbl.password %]?",users.setnewpassword,{},"<span class=\"icon-Save\"></span>[% lbl.yes %]","<span class=\"icon-remove\"></span>[% lbl.no %]");
- // }
- // /* @preserve[% END %]*/
- // },
- // setnewpassword: function(){
- // /* @preserve[% IF session.usergroup == 'admin' || session.usergroup == 'manager' %]*/
- // let sel =users.tbl.getSelectedData();
- // if (sel[0]){
- // let fndata = {"fn":"setnewpassword","email":sel[0].username};
- // postData("db.cgi",fndata).then(data => {
- // document.getElementById('dlg_users').style.display='none';
- // if (data && data.result.data.password){
- // showmessagedlg(">[% lbl.newpassword %]!",'<div class="container"><input class="input" type="text" value="'+data.result.data.username+'" readonly> <label class="label" for="staffgroups_groupname">Utilisateur</label></div><div class="container"><input class="input" type="text" value="'+data.result.data.password+'" readonly> <label class="label" for="staffgroups_groupname">[% lbl.newpassword %]</label></div>');
- // }else {
- // showmessagedlg("Erreur!","Une erreur c'est produite pour l'envoie d'un >[% lbl.newpassword %]!");
- // }
- // });
- // }
- // /* @preserve[% END %]*/
- // }
+ }
}
-let profile = {
- reftbl: null,
-generatenewpassword: function(){
- let fndata = {"fn":"genpwd"};
- postData("db.cgi",fndata).then(data => {
- if (data && data.result.data.password){
- document.getElementById("newpwd1").value=data.result.data.password;
- profile.viewpwd('newpwd1',"text");
-
- document.getElementById("newpwd2").value=data.result.data.password;
- }
- });
-},
-showdlgnewpassword: function(tbl=false){
- let sel = [];
- if (tbl == true){
- sel =profile.reftbl.getSelectedData();
- if (sel.length == 0){
- return false;
- }
- }
- document.getElementById("newpwd1").value = "";
- document.getElementById("newpwd2").value = "";
- profile.viewpwd('newpwd1',"pwd");
- profile.viewpwd('newpwd2',"pwd");
- app.viewdialog("newpassword");
- return false;
-},
-validatepwd: function(){
- let pwd1 = document.getElementById("newpwd1").value;
- let pwd2 = document.getElementById("newpwd1").value;
- let res = true;
- if (pwd1 != pwd2) { res = false; console.log(pwd1 + "!=" +pwd2);}
- if (pwd1.length < 10 || pwd2.length < 10) { res=false; console.log("pwd length mismatch!");}
- if (/[a-z]/.test(pwd1) == false || /[a-z]/.test(pwd2) == false) {res = false; console.log("lower letters mismatch!");}
- if (/[A-Z]/.test(pwd1) == false || /[A-Z]/.test(pwd2) == false) {res = false; console.log("upper letters mismatch!");}
- if (/[0-9]/.test(pwd1) == false || /[0-9]/.test(pwd2) == false) { res =false; console.log("number letters mismatch!");}
- return res;
-},
-viewpwd(id,force){
-
- if (force == "text"){
- document.getElementById(id).type = "text";
- document.getElementById("btn_" + id).innerHTML='<span class="icon icon-eye-close"></span>';
- } else if (force == "pwd"){
- document.getElementById(id).type = "password";
- document.getElementById("btn_" + id).innerHTML='<span class="icon icon-eye-open"></span>';
- }else {
- var fldtype = document.getElementById(id).type;
- if (fldtype == "text"){
- document.getElementById(id).type = "password";
- document.getElementById("btn_" + id).innerHTML='<span class="icon icon-eye-open"></span>';
- } else {
- document.getElementById(id).type = "text";
- document.getElementById("btn_" + id).innerHTML='<span class="icon icon-eye-close"></span>';
- }
- }
-
- return false;
-},
-savepwd: function(){
- let valp = profile.validatepwd();
- let sel = [];
- if (profile.reftbl){
- sel =profile.reftbl.getSelectedData();
- console.log("has reftbl!");
- } else {
- sel.push({id:"[% session.id %]"});
- console.log("set own profile pwd!");
- }
- if (sel[0] && valp==true){
- postData("db.cgi",{"fn":"savenewpwd","pwd":document.getElementById("newpwd1").value,"iduser":sel[0].id}).then(data => {
- app.closedlg("dlg_newpassword");
- dataform.formsaved({});
- })
- }
- return false;
-}
+let profile = {\r
+ reftbl: null,\r
+generatenewpassword: function(){\r
+ let fndata = {"fn":"genpwd"};\r
+ postData("db.cgi",fndata).then(data => {\r
+ if (data && data.result.data.password){\r
+ document.getElementById("newpwd1").value=data.result.data.password;\r
+ profile.viewpwd('newpwd1',"text");\r
+\r
+ document.getElementById("newpwd2").value=data.result.data.password; \r
+ }\r
+ });\r
+},\r
+showdlgnewpassword: function(tbl=false){\r
+ let sel = [];\r
+ if (tbl == true){\r
+ sel =profile.reftbl.getSelectedData();\r
+ if (sel.length == 0){\r
+ return false;\r
+ }\r
+ } \r
+ document.getElementById("newpwd1").value = "";\r
+ document.getElementById("newpwd2").value = "";\r
+ profile.viewpwd('newpwd1',"pwd");\r
+ profile.viewpwd('newpwd2',"pwd");\r
+ app.viewdialog("newpassword");\r
+ return false;\r
+},\r
+validatepwd: function(){\r
+ let pwd1 = document.getElementById("newpwd1").value;\r
+ let pwd2 = document.getElementById("newpwd1").value;\r
+ let res = true;\r
+ if (pwd1 != pwd2) { res = false; console.log(pwd1 + "!=" +pwd2);}\r
+ if (pwd1.length < 10 || pwd2.length < 10) { res=false; console.log("pwd length mismatch!");}\r
+ if (/[a-z]/.test(pwd1) == false || /[a-z]/.test(pwd2) == false) {res = false; console.log("lower letters mismatch!");}\r
+ if (/[A-Z]/.test(pwd1) == false || /[A-Z]/.test(pwd2) == false) {res = false; console.log("upper letters mismatch!");}\r
+ if (/[0-9]/.test(pwd1) == false || /[0-9]/.test(pwd2) == false) { res =false; console.log("number letters mismatch!");}\r
+ return res;\r
+},\r
+viewpwd(id,force){\r
+ \r
+ if (force == "text"){\r
+ document.getElementById(id).type = "text";\r
+ document.getElementById("btn_" + id).innerHTML='<span class="icon icon-eye-close"></span>';\r
+ } else if (force == "pwd"){\r
+ document.getElementById(id).type = "password";\r
+ document.getElementById("btn_" + id).innerHTML='<span class="icon icon-eye-open"></span>';\r
+ }else {\r
+ var fldtype = document.getElementById(id).type;\r
+ if (fldtype == "text"){\r
+ document.getElementById(id).type = "password";\r
+ document.getElementById("btn_" + id).innerHTML='<span class="icon icon-eye-open"></span>';\r
+ } else {\r
+ document.getElementById(id).type = "text";\r
+ document.getElementById("btn_" + id).innerHTML='<span class="icon icon-eye-close"></span>';\r
+ }\r
+ }\r
+ \r
+ return false;\r
+},\r
+savepwd: function(){\r
+ let valp = profile.validatepwd();\r
+ let sel = [];\r
+ if (profile.reftbl){\r
+ sel =profile.reftbl.getSelectedData();\r
+ console.log("has reftbl!");\r
+ } else {\r
+ sel.push({id:"[% session.id %]"});\r
+ console.log("set own profile pwd!");\r
+ }\r
+ if (sel[0] && valp==true){\r
+ postData("db.cgi",{"fn":"savenewpwd","pwd":document.getElementById("newpwd1").value,"iduser":sel[0].id}).then(data => {\r
+ app.closedlg("dlg_newpassword");\r
+ dataform.formsaved({});\r
+ })\r
+ }\r
+ return false;\r
+}\r
}
\ No newline at end of file
<div class="display-container">
<div class="bar toolbar">
<a class="bar-item toolbarbtn" href="[% abspath %]index.html"><span class="icon icon-back" style="font-size: 16px;"></span>[% lbl.back %]</a>
- <div class="bar-item PageHeadTitle">[% lbl.titles.sectorconfig %]</div>
+ <div class="bar-item PageHeadTitle">[% lbl.sectorconfig %]</div>
[% IF (session.usergroup == 'admin') %]
<!--<button class="bar-item toolbarbtn" onclick="companies.setview('basedata');"><span class="icon icon-staff" style="font-size: 16px;"></span>[% lbl.basedata %]</button>
<button class="bar-item toolbarbtn" onclick="users.gettbldata();companies.setview('users');"><span class="icon icon-user" style="font-size: 16px;"></span>[% lbl.users %]</button>
<div class="display-container">
<div class="bar moduletoolbar">
<div class="bar-item SubHeadTitle">
- [% lbl.titles.sectorconfigpot %]
+ [% lbl.sectorconfigpot %]
</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>[% lbl.delete %]</button>
<button class="bar-item toolbarbtn right" onclick="worktimes.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;"></span>[% lbl.edit %]</button>
<div class="display-container">
<div class="bar toolbar">
<a class="bar-item toolbarbtn" href="[% abspath %]index.html"><span class="icon icon-back" style="font-size: 16px;"></span>[% lbl.back %]</a>
- <div class="bar-item PageHeadTitle">[% lbl.titles.staff %]</div>
+ <div class="bar-item PageHeadTitle">[% lbl.staff %]</div>
<button class="bar-item toolbarbtn" onclick="staff.setview('basedata');"><span class="icon icon-staff" style="font-size: 16px;"></span>[% lbl.basedata %]</button>
<button class="bar-item toolbarbtn" onclick="staff.setview('periods');"><span class="icon icon-calendar" style="font-size: 16px;"></span>[% lbl.periods %]</button>
[% IF session.usergroup != 'teamleader' %]
--- /dev/null
+<div class="display-container">\r
+ <form id="frm_timetracker">\r
+ <div class="row">\r
+ \r
+ <div class="cell" style="width: 400px;">\r
+ <label class="label" for="timetracker_type">Type</label>\r
+ <select class="select border data_timetracker" data-column="type" data-id="" data-selected="" data-table="timetracker" id="timetracker_type"></select>\r
+ </div>\r
+ <div class="cell" style="width: 400px;">\r
+ <label class="label" for="timetracker_name">Name</label>\r
+ <input class="input border text data_timetracker" data-column="name" data-id="" data-table="timetracker" id="timetracker_name" onblur="dataform.savefield(this);" type="text">\r
+ </div>\r
+ <div class="cell" style="width: 400px;">\r
+ <label class="label" for="timetracker_stampstartlimit">Limit (minutes)</label>\r
+ <input class="input border text data_timetracker number" data-column="stampstartlimit" data-id="" data-table="timetracker" id="timetracker_stampstartlimit" onblur="dataform.savefield(this);" type="number">\r
+ </div>\r
+ </div>\r
+ <div class="row">\r
+ <div class="col">\r
+ <fieldset>\r
+ <legend>Network</legend>\r
+ <div class="cell" style="width: 400px;">\r
+ <label class="label" for="timetracker_networktype">Network Type</label>\r
+ <select class="select border data_timetracker" data-column="nettype" data-id="" data-selected="" data-table="timetracker" id="timetracker_networktype">\r
+ <option value="dhcp">DHCP</option>\r
+ <option value="static">Static</option>\r
+ </select>\r
+ </div>\r
+ <div class="cell" style="width: 400px;">\r
+ <label class="label" for="timetracker_netip">IP</label>\r
+ <input class="input border text data_timetracker" data-column="netip" data-id="" data-table="timetracker" id="timetracker_netip" onblur="dataform.savefield(this);" type="text">\r
+ </div>\r
+ <div class="cell" style="width: 400px;">\r
+ <label class="label" for="timetracker_netsubnet">Subnet</label>\r
+ <input class="input border text data_timetracker" data-column="netsubnet" data-id="" data-table="timetracker" id="timetracker_netsubnet" onblur="dataform.savefield(this);" type="text">\r
+ </div>\r
+ <div class="cell" style="width: 400px;">\r
+ <label class="label" for="timetracker_netgateway">Gateway</label>\r
+ <input class="input border text data_timetracker" data-column="netgateway" data-id="" data-table="timetracker" id="timetracker_netgateway" onblur="dataform.savefield(this);" type="text">\r
+ </div>\r
+ <div class="cell" style="width: 400px;">\r
+ <label class="label" for="timetracker_netdns">DNS</label>\r
+ <input class="input border text data_timetracker" data-column="netdns" data-id="" data-table="timetracker" id="timetracker_netdns" onblur="dataform.savefield(this);" type="text">\r
+ </div>\r
+ </fieldset>\r
+ </div>\r
+ <div class="col">\r
+ <div class="bar moduletoolbar">\r
+ <div class="bar-item PageSubTitle">WLAN</div>\r
+ <button class="bar-item toolbarbtn right" onclick="timetracker.confirmRemoveWLAN();"><span class="icon-trash" style="font-size: 17px;"></span>[% lbl.delete %]</button>\r
+ <button class="bar-item toolbarbtn right" onclick="timetracker.editWLAN();"><span class="icon-edit" style="font-size: 17px;"></span>[% lbl.edit %]</button>\r
+ <button class="bar-item toolbarbtn right" onclick="timetracker.addWLAN();"><span class="icon-plus" style="font-size: 17px;"></span>[% lbl.add %]</button>\r
+ </div>\r
+ <div id="tbl_timetrackerwlan"></div>\r
+ </div>\r
+ </div>\r
+ <div class="row">\r
+ <div class="bar moduletoolbar">\r
+ <div class="bar-item PageSubTitle">Openvpn</div>\r
+ <button class="bar-item toolbarbtn right" onclick="timetracker.confirmRemoveOVPN();"><span class="icon-trash" style="font-size: 17px;"></span>[% lbl.delete %]</button>\r
+ <button class="bar-item toolbarbtn right" onclick="timetracker.editOVPN();"><span class="icon-edit" style="font-size: 17px;"></span>[% lbl.edit %]</button>\r
+ <button class="bar-item toolbarbtn right" onclick="timetracker.addOVPN();"><span class="icon-plus" style="font-size: 17px;"></span>[% lbl.add %]</button>\r
+ </div>\r
+ <div id="tbl_timetrackerovpn"></div>\r
+ </div>\r
+</form>\r
+</div>\r
--- /dev/null
+let timetracker = {\r
+ tblwlan: null,\r
+ tblovpn: null,\r
+ current_id: null,\r
+ init: function(){\r
+ \r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+let timetrackers={\r
+ tbl: null,\r
+ init: function(){\r
+\r
+ },\r
+}
\ No newline at end of file
--- /dev/null
+<div class="display-container">\r
+ <div class="bar toolbar">\r
+ <a class="bar-item toolbarbtn" href="[% abspath %]index.html"><span class="icon icon-back" style="font-size: 16px;"></span>[% lbl.back %]</a>\r
+ <div class="bar-item PageHeadTitle">[% lbl.timetrackers %]</div>\r
+ [% IF session.usergroup == 'admin' %]\r
+ <button class="bar-item toolbarbtn right" onclick="timetracker.remove();"><span class="icon icon-remove text-red" style="font-size: 16px;"></span>[% lbl.delete %]</button>\r
+ \r
+ <button class="bar-item toolbarbtn right" onclick="timertracker.add();"><span class="icon icon-plus" style="font-size: 16px;"><br/>[% lbl.add %]</button> \r
+ [% END %]\r
+ <!-- <button class="bar-item toolbarbtn right" onclick="timertracker.edit();"><span class="icon icon-edit" style="font-size: 16px;"><br/>[% lbl.edit %]</button> -->\r
+ </div>\r
+</div>\r
+<div class="display-container">\r
+ <div class="cell-row">\r
+ <div class="cell" style="width: 300px;">\r
+ <div id="tbl_timetracker" ></div>\r
+ </div>\r
+ <div class="cell" >\r
+ [% INCLUDE block/pnl_nodata.tt %] \r
+ [% INCLUDE module/timetracker/pnl_timetracker.tt %]\r
+ </div>\r
+ </div>\r
+</div>\r
+<script type="text/javascript" src="timetracker/timetrackers[% minify%].js?v=[% appversion %]"></script>\r
+<script type="text/javascript" src="timetracker/timetracker[% minify%].js?v=[% appversion %]"></script>\r
<div class="display-container">
<div class="bar toolbar">
<a class="bar-item toolbarbtn" href="[% abspath %]index.html"><span class="icon icon-back" style="font-size: 16px;"></span>[% lbl.back %]</a>
- <div class="bar-item PageHeadTitle">[% lbl.titles.weekytemplates %]</div>
+ <div class="bar-item PageHeadTitle">[% lbl.weekytemplates %]</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>[% lbl.delete %]</button>
<button class="bar-item toolbarbtn right" onclick="workplans.duplicate();"><span class="icon icon-duplicate" style="font-size: 16px;"></span>[% lbl.duplicate %]</button>
[% INCLUDE block/pnl_nodata.tt %]
<div class="panel" id="pnl_workplans" style="display: none;">
<div class="bar moduletoolbar">
- <div class="bar-item PageHeadTitle">[% lbl.titles.template %]</div>
+ <div class="bar-item PageHeadTitle">[% lbl.template %]</div>
<button class="bar-item toolbarbtn right" onclick="workplans.edit();"><span class="icon icon-edit" style="font-size: 16px;"></span>[% lbl.edit %]</button>
<button class="bar-item toolbarbtn right" onclick="workplans.setcopyday();"><span class="icon icon-copy" style="font-size: 16px;"></span>[% lbl.copy %]</button>
<button class="bar-item toolbarbtn right" onclick="workplans.pasteday();"><span class="icon icon-paste" id="pasteday" style="font-size: 16px;"></span>[% lbl.paste %]</button>
{
"name": "POT",
- "version": "1.0.26",
+ "version": "1.0.27",
"description": "plan d'organisation du travail",
"main": "main.js",
"scripts": {
-<VirtualHost *:80>
-Servername app.pot.lan
-ServerAdmin webmaster@localhost
-DocumentRoot /usr/home/dksalu/public_html/potapp
-DirectoryIndex index.html index.cgi
-
-<Directory "/usr/home/dksalu/public_html/potapp">
-
-Options +Indexes +ExecCGI
-AllowOverride All
-
-</Directory>
-
-ErrorLog ${APACHE_LOG_DIR}/error.log
-CustomLog ${APACHE_LOG_DIR}/access.log combined
-
+<VirtualHost *:80>\r
+Servername app.pot.lan\r
+ServerAdmin webmaster@localhost\r
+DocumentRoot /usr/home/dksalu/public_html/potapp\r
+DirectoryIndex index.html index.cgi\r
+\r
+<Directory "/usr/home/dksalu/public_html/potapp">\r
+\r
+Options +Indexes +ExecCGI\r
+AllowOverride All\r
+\r
+</Directory>\r
+\r
+ErrorLog ${APACHE_LOG_DIR}/error.log\r
+CustomLog ${APACHE_LOG_DIR}/access.log combined\r
+\r
</VirtualHost>
\ No newline at end of file
-<VirtualHost *:80>
-Servername lu.plandutravail.lan
-ServerAdmin webmaster@localhost
-DocumentRoot /usr/home/dksalu/public_html/plandutravail_lu
-DirectoryIndex index.html index.cgi
-
-<Directory "/usr/home/dksalu/public_html/plandutravail_lu">
-
-Options +Indexes +ExecCGI
-AllowOverride All
-
-</Directory>
-
-ErrorLog ${APACHE_LOG_DIR}/error.log
-CustomLog ${APACHE_LOG_DIR}/access.log combined
-
+<VirtualHost *:80>\r
+Servername lu.plandutravail.lan\r
+ServerAdmin webmaster@localhost\r
+DocumentRoot /usr/home/dksalu/public_html/plandutravail_lu\r
+DirectoryIndex index.html index.cgi\r
+\r
+<Directory "/usr/home/dksalu/public_html/plandutravail_lu">\r
+\r
+Options +Indexes +ExecCGI\r
+AllowOverride All\r
+\r
+</Directory>\r
+\r
+ErrorLog ${APACHE_LOG_DIR}/error.log\r
+CustomLog ${APACHE_LOG_DIR}/access.log combined\r
+\r
</VirtualHost>
\ No newline at end of file
-#!/usr/bin/perl
-
-use strict;
-
-my $num = 12;
-my $randstring = &randstr($num);
- print "RandPWD:\n".$randstring."\n===\n";
- while (($randstring !~ /[A-Z]+/) || ($randstring !~ /[a-z]+/) || ($randstring !~ /[0-9]+/)){
- $randstring = &randstr($num);
- print "RandPWD:\n".$randstring."\n===\n";
- }
-
-
-sub randstr(){
- my $num = shift;
- my @alphanumeric = ('a'..'z', 'A'..'Z', 0..9);
- my $randstring = join '', map $alphanumeric[rand @alphanumeric], 0..$num;
- return $randstring;
+#!/usr/bin/perl\r
+\r
+use strict;\r
+\r
+my $num = 12;\r
+my $randstring = &randstr($num);\r
+ print "RandPWD:\n".$randstring."\n===\n";\r
+ while (($randstring !~ /[A-Z]+/) || ($randstring !~ /[a-z]+/) || ($randstring !~ /[0-9]+/)){\r
+ $randstring = &randstr($num);\r
+ print "RandPWD:\n".$randstring."\n===\n";\r
+ } \r
+\r
+\r
+sub randstr(){\r
+ my $num = shift;\r
+ my @alphanumeric = ('a'..'z', 'A'..'Z', 0..9);\r
+ my $randstring = join '', map $alphanumeric[rand @alphanumeric], 0..$num;\r
+ return $randstring;\r
}
\ No newline at end of file
-Timestamp Filename Error Message
-2021-01-11 19:49:30.488 +0100 POT.fmp12 0 Import of script steps from clipboard started
-2021-01-11 19:49:30.504 +0100 Startup 0 script steps imported : 1
-2021-01-11 19:49:30.504 +0100 POT.fmp12 0 Import completed
+Timestamp Filename Error Message\r
+2021-01-11 19:49:30.488 +0100 POT.fmp12 0 Import of script steps from clipboard started\r
+2021-01-11 19:49:30.504 +0100 Startup 0 script steps imported : 1\r
+2021-01-11 19:49:30.504 +0100 POT.fmp12 0 Import completed\r