if (count($fnp) < $prcnt){\r
$html["error"] = "Function has ".$prcnt." required parameters!";\r
} else {\r
- echo "call fn";\r
+ //echo "call fn";\r
$html["result"]["data"] = call_user_func_array(array($cl, $p["fn"]), $fnp);\r
//error_log(print_r($html,true));\r
}\r
<glyph unicode="" glyph-name="plus" d="M388.095 960h247.889v-388.114h388.095v-247.869h-388.095v-388.075h-247.889v388.075h-388.095v247.869h388.095z" />
<glyph unicode="" glyph-name="eye-close" d="M614.831 504.313c6.385-14.123 10.082-29.628 10.082-46.128 0-62.324-50.504-112.825-112.818-112.825-7.969 0-15.65 0.874-23.092 2.376zM745.537 666.866c165.275-81.694 278.607-218.658 278.607-218.658s-229.284-278.172-512.082-278.172c-51 0-100.138 9.246-146.581 24.066l56.195 69.951c29.509-6.692 59.571-11.505 90.387-11.505 170.715 0 326.302 116.52 412.192 195.659-53.821 49.567-134.959 113.773-230.042 154.843zM512.103 726.395c22.377 0 44.327-2.246 65.955-5.5l-62.206-77.327c-174.47 0.316-330.062-116.213-415.954-195.348 40.447-37.258 96.649-82.512 162.278-120.273l-49.504-61.511c-128.656 80.387-212.673 181.784-212.673 181.784s229.299 278.176 512.103 278.176zM785.931 904.071l54.439-43.756-697.885-868.147-54.392 43.688z" />
<glyph unicode="" glyph-name="eye-open" d="M512.119 570.851c62.328 0 112.843-50.513 112.843-112.842 0-62.333-50.515-112.842-112.843-112.842s-112.843 50.508-112.843 112.842c0 62.329 50.515 112.842 112.843 112.842zM512.072 643.694c-170.705 0-326.292-116.534-412.173-195.668 85.882-79.144 241.468-195.654 412.173-195.654 170.708 0 326.292 116.51 412.173 195.654-85.882 79.134-241.465 195.668-412.173 195.668zM512.072 726.203c282.799 0 512.072-278.177 512.072-278.177s-229.273-278.182-512.072-278.182c-282.799 0-512.072 278.182-512.072 278.182s229.273 278.177 512.072 278.177z" />
+<glyph unicode="" glyph-name="sum" d="M187.344 960h671.686v-265.559h-45.831v116.311h-528.817l251.273-369.125-280.142-356.385h578.978l16.636 116.318h45.794l-37.891-265.559h-731.951v83.918l294.902 377.621-234.637 345.759v135.97z" />
+<glyph unicode="" glyph-name="timeentry" d="M393.929 713.001l174.72-174.764-174.72-174.827v116.073h-324.558v117.572h324.558zM205.76 960h749.061v-843.557l-279.544-180.587v180.587h-469.517v322.548h85.455v-233.539h384.062v571.835l143.461 93.764h-527.523v-233.535h-85.455z" />
+<glyph unicode="" glyph-name="timeexit" 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="" glyph-name="staff" d="M852.529 206.541c-40.953 0.285-74.344-32.751-74.586-73.619-0.285-41.010 32.708-74.331 73.589-74.616 40.981-0.285 74.373 32.609 74.629 73.619 0.256 40.868-32.708 74.331-73.632 74.616zM853.184 311.346c15.493 0 30.472-2.421 44.755-6.123l5.909-39.159c14.453-5.696 27.795-13.385 39.529-23.068l37.065 13.955c20.847-21.502 36.211-48.13 44.213-77.891l-31.042-24.777c1.153-7.405 1.908-15.094 1.837-22.784-0.086-7.832-0.897-15.379-2.136-22.784l30.743-25.204c-8.415-29.619-24.122-56.105-45.224-77.322l-36.866 14.525c-11.876-9.541-25.332-17.088-39.813-22.641l-6.436-39.017c-14.353-3.702-29.333-5.696-44.812-5.696-15.521 0.142-30.472 2.421-44.811 6.265l-5.852 39.159c-14.439 5.554-27.824 13.385-39.557 23.068l-37.065-13.955c-20.818 21.36-36.211 48.13-44.242 77.891l31.070 24.635c-1.139 7.547-1.88 15.094-1.837 22.926 0.085 7.689 0.897 15.379 2.136 22.784l-30.743 25.062c8.387 29.761 24.122 56.105 45.21 77.464l36.909-14.525c11.847 9.541 25.318 17.088 39.828 22.499l6.365 39.159c14.382 3.56 29.362 5.696 44.868 5.553zM409.028 371.574l49.657-49.694-38.586-38.587 39.825-46.143-52.696-157.924-54.289 156.107 44.44 48.528-38.046 38.019zM618.515 376.928c38.144-7.169 73.391-22.554 103.826-44.248l0.426-0.317-2.897-1.86c-63.883-43.209-105.968-116.325-105.968-199.009 0-41.386 10.521-80.353 29.028-114.37l0.909-1.579h-643.838v102.668c0 127.586 90.779 233.999 211.264 258.14l194.355-304.663zM344.453 820.627c-25.958 0.065-58.686-6.617-62.522-39.908 0 0 0-64.687-17.265-73.32l-4.285-60.371-17.266 17.252 6.459-81.938 32.358-2.176c0 0 8.634-166.017 166.052-133.689 0 0 75.464 23.726 92.699 133.689l25.901 2.176 6.459 73.32-10.776-2.173c0 0-6.491 62.544-12.949 88.412l-4.317 62.531c0 0-36.645 30.199-90.556 4.316 0 0-62.546 2.173-77.637 8.633 0 0-14.592 3.203-32.352 3.248zM418.251 942.627c73.513 0.006 124.602-38.985 124.602-38.985 94.873-75.478 43.136-204.866 43.136-204.866 21.551-12.933 19.41-23.709 19.41-23.709 0-140.181-38.819-129.388-38.819-129.388-21.583-90.57-105.648-131.53-105.648-131.53-163.908-40.977-204.867 129.371-204.867 129.371-34.503 4.316-38.819 84.095-38.819 84.095-10.809 53.91 19.409 75.477 19.409 75.477-64.718 150.938 51.737 196.216 51.737 196.216 46.692 32.612 91.352 43.315 129.859 43.318z" />
<glyph unicode="" glyph-name="back" d="M580.895 960h273.723l-413.813-509.791 2.338-2.896 415.046-511.313h-273.736l-280.542 345.584-1.234-1.48-136.868 168.605 136.868 168.646z" />
<glyph unicode="" glyph-name="next" d="M165.81 960h273.728l280.547-345.583 1.234 1.48 136.87-168.604-415.080-511.292h-273.741l413.82 509.792-2.338 2.896-99.387 122.396z" />
<glyph unicode="" 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="" 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="" 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" />
+<glyph unicode="" glyph-name="normalview" d="M0 55.915h1024.031v-96.99h-1024.031zM0 287.446h1024.031v-96.974h-1024.031zM0 504.656h1024.031v-96.974h-1024.031zM0 720.919h1024.031v-96.974h-1024.031zM0 937.075h1024.031v-96.974h-1024.031z" />
+<glyph unicode="" glyph-name="detailview" d="M0 55.915h1024.046v-96.974h-1024.046zM441.757 287.461h582.289v-96.99h-582.289zM0 504.656h1024.046v-96.974h-1024.046zM441.757 720.919h582.289v-96.959h-582.289zM0 937.075h1024.046v-96.974h-1024.046z" />
<glyph unicode="" glyph-name="projects" d="M738.064 471.472l-206.048-117.081 0.648-237.415 205.4 118.386zM296.816 471.472v-236.11l205.402-118.386 0.646 237.415zM517.439 619.312l-204.671-118.352 204.671-117.696 205.313 117.696zM92.872 910.64h327.139c51.335 0 92.917-41.604 92.917-92.904v-44.536h418.154c51.314 0 92.918-41.615 92.918-92.907v-602.031c0-51.325-41.605-92.918-92.918-92.918h-838.208c-51.27 0-92.873 41.594-92.873 92.918v602.031c0 1.603 0.041 3.196 0.121 4.779l0.078 1.030-0.078 1.030c-0.080 1.584-0.121 3.178-0.121 4.782v125.822c0 51.299 41.603 92.904 92.872 92.904z" />
<glyph unicode="" glyph-name="usertime" d="M557.61 283.76c0 0 234.191-55.807 256.508-278.821h-814.117c0 0 66.954 245.319 267.693 267.648l54.36-232.801 39.942 0.321 45.427 119.165-42.397 73.563h84.77l-40.646-75.446 51.832-116.487 31.151 0.25zM721.151 752.498c3.881 0.061 7.808-1.164 11.085-3.756l86.55-69.216c0.927-0.749 1.758-1.573 2.49-2.458l1.384-2.053 0.604-0.177c3.044-1.077 5.694-2.969 7.708-5.437 2.408-2.972 3.834-6.662 3.883-10.763l0.775-110.79c0.044-9.547-7.646-17.359-17.196-17.446-9.534-0.042-17.332 7.639-17.418 17.206l-0.771 102.937-0.623 0.275c-0.864 0.474-1.701 1.029-2.502 1.669l-86.513 69.196c-7.448 5.987-8.658 16.859-2.723 24.365 3.363 4.163 8.277 6.368 13.267 6.447zM401.426 759.683c33.843 0 65.776-7.706 94.582-21.095-8.652-26.989-13.395-55.697-13.395-85.511 0-93.086 45.61-175.496 115.472-226.751-38.319-69.217-111.983-116.086-196.66-116.086-124.119 0-224.722 100.616-224.722 224.733 0 124.113 100.603 224.711 224.722 224.711zM786.072 821.774c-92.958 0-168.706-75.661-168.706-168.701 0-93.019 75.748-168.723 168.706-168.723 93.042 0 168.708 75.705 168.708 168.723 0 93.040-75.666 168.701-168.708 168.701zM786.072 891.011c131.44 0 237.961-106.559 237.961-237.939 0-131.359-106.521-237.917-237.961-237.917-131.347 0-237.911 106.558-237.911 237.917 0 131.38 106.564 237.939 237.911 237.939z" />
<glyph unicode="" glyph-name="finger1" d="M943.765 724.484c-6.925 3.208-14.269 4.937-21.133 4.937-9.938 0-18.217-3.5-23.398-9.749-30.615-37.272-58.645-109.766-81.218-168.016-10.382-26.932-24.32-62.974-33.738-79.891-5.144 49.556 17.094 228.345 25.656 297.196l0.146 1.111c5.948 47.828 6.885 56.222 6.584 59.957-2.304 26.624-11.603 44.65-27.656 53.547-16.23 9.022-38.279 7.083-62.748-5.485-12.282-6.313-17.24-30.624-35.123-141.157l-0.073-0.499c-9.841-60.706-32.478-200.564-49.876-222.875-15.487 34.036-26.917 222.032-31.854 303.405-3.427 56.977-5.488 89.686-7.686 99.713-4.657 20.932-29.135 40.188-54.521 42.927-21.115 2.514-39.271-7.083-48.869-25.291-16.744-16.266-15.277-74.205-7.646-211.704 3.625-65.442 11.113-200.603-0.536-214.912-20.99 3.811-51.453 90.274-90.514 257.081-10.952 46.707-14.391 60.791-18.312 67.104-7.113 21.578-35.135 39.786-61.388 39.786-2.249 0-4.438-0.146-6.599-0.417-13.88-1.75-45.974-12.224-43.384-71.055 12.76-82.235 28.661-143.017 44.035-202.058l0.307-1.16c9.214-35.348 17.931-68.766 25.611-105.685 18.092-87.187 5.025-139.581 4.876-140.183-1.184-5.397-3.096-8.626-5.704-9.603-0.953-0.344-2.125-0.566-3.436-0.566-7.667 0-18.75 5.899-24.427 9.603-11.676 26.813-70.108 154.724-129.679 176.082l-2.155 0.807-2.219-0.064c-22.442-0.569-39.399-7.874-50.464-21.751-17.484-21.94-12.964-51.754-11.777-57.723l0.734-2.189c0.438-0.937 42.93-93.579 47.581-135.599 4.033-36.081 34.98-76.978 59.863-109.876l1.020-1.351c8.118-10.76 15.113-20.074 20.555-28.594 72.744-87.708 192.059-165.572 193.048-166.226 14.683-12.562 22.521-24.238 22.756-33.875 0.149-6.289-3.351-9.792-3.47-9.938l-2.892-2.645 0.244-0.271h-1.172v-21.334h346.783v7.186l17.773 59.957c55.854 178.514 57.683 333.929 57.601 334.994 0.572 5.665 16.534 59.915 29.385 103.703l0.344 1.126c25.571 87.291 57.446 195.882 65.007 237.516 3.202 17.858-7.086 35.15-26.244 44.005zM946.191 684.793c-7.345-40.501-40.532-153.555-64.742-236.122-20.978-71.429-29.604-101.308-30.31-109.346 0-1.488-0.645-150.225-56.633-329.138l-15.664-52.853h-296.359c1.208 3.622 2.073 7.81 2.036 12.687-0.073 17.137-10.943 35.080-32.532 53.437-1.193 0.77-119.558 78.75-187.856 160.954-5.464 8.73-13.792 19.751-21.858 30.374-21.864 28.916-51.839 68.593-55.093 97.968-4.876 43.819-43.989 130.687-48.978 141.568-0.621 4.395-2.666 23.784 7.339 36.267 6.045 7.561 16.062 11.777 29.769 12.525 53.386-22.25 114.369-163.831 114.971-165.267l1.303-3.023 2.615-2c3.656-2.663 22.829-16.020 41.408-16.020 4.255 0 8.264 0.667 11.844 2.030 7.412 2.782 17.051 9.667 20.735 26.603 0.621 2.292 14.635 57.553-4.712 150.751-7.704 37.287-16.619 71.369-26.016 107.493l-0.161 0.527c-15.167 58.058-30.88 118.097-43.399 198.329-1.166 26.88 6.843 42.754 22.451 44.744 17.812 2.52 40.318-12.124 42.802-23.666l3.126-8.915c3.306-10.775 9.545-37.555 13.719-55.455 35.4-150.91 68.565-275.843 115.419-275.843 3.814 0 9.412 1.108 14.455 6.474 19.267 20.311 16.224 102.002 8.867 234.183-3.573 64.021-8.094 180.517-0.907 191.977l2.901 5.984c4.417 9.506 15.387 13.77 24.092 13.77 1.272 0 2.49-0.067 3.668-0.213 14.875-1.598 31.196-13.332 33.561-24.15 1.851-8.307 4.258-48.214 7.101-94.38l0.082-1.552c16.001-264.082 26.603-328.559 53.836-328.559 30.934 0 46.062 61.461 75.895 246.114l0.146 0.77c7.311 45.222 18.324 113.248 23.23 123.247 15.989 7.999 30.517 9.962 38.946 5.333 10.708-5.917 14.23-21.812 15.271-33.957 0.033-3.296-3.278-29.772-6.447-55.416-28.925-232.454-33.083-312.208-17.103-328.2 4.24-4.2 10.218-6.024 15.572-4.791 16.312 3.436 27.093 27.958 56.052 102.973 21.894 56.588 49.082 126.952 77.301 161.268 0.228 0.244 1.574 0.937 4.52 0.937 3.458 0 7.406-0.937 11.165-2.666 7.022-3.275 14.044-9.649 12.574-17.758zM156.185 382.742c-0.332 1.948-0.457 3.857-0.569 5.792-34.791 3.354-65.947 26.84-76.884 62.267-14.525 47.082 11.968 97.186 59.041 111.711 47.070 14.516 97.168-11.959 111.699-59.041 6.365-20.671 4.642-41.853-3.114-60.386 6.645-3.065 12.592-7.899 17.021-13.98 11.831 24.281 15.040 52.823 6.453 80.664-17.995 58.289-80.062 91.123-138.363 73.14-58.317-18.007-91.123-80.089-73.137-138.397 14.239-46.126 56.082-76.147 101.81-77.812-1.61 5.29-3.029 10.623-3.957 16.041z" />
@font-face {
font-family: 'appicons';
- 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');
+ src:
+ url('fonts/appicons.ttf?86ahp7') format('truetype'),
+ url('fonts/appicons.woff?86ahp7') format('woff'),
+ url('fonts/appicons.svg?86ahp7#appicons') format('svg');
font-weight: normal;
font-style: normal;
font-display: block;
-moz-osx-font-smoothing: grayscale;
}
+.icon-sum:before {
+ content: "\e940";
+}
+.icon-timeentry:before {
+ content: "\e941";
+}
+.icon-timeexit:before {
+ content: "\e942";
+}
+.icon-normalview:before {
+ content: "\e951";
+}
+.icon-detailview:before {
+ content: "\e952";
+}
.icon-shrink:before {
content: "\e900";
}
+++ /dev/null
-<?php
-
-use Twig\Environment;
-use Twig\Error\LoaderError;
-use Twig\Error\RuntimeError;
-use Twig\Extension\SandboxExtension;
-use Twig\Markup;
-use Twig\Sandbox\SecurityError;
-use Twig\Sandbox\SecurityNotAllowedTagError;
-use Twig\Sandbox\SecurityNotAllowedFilterError;
-use Twig\Sandbox\SecurityNotAllowedFunctionError;
-use Twig\Source;
-use Twig\Template;
-
-/* module/login/login.html */
-class __TwigTemplate_dfbbae8876ff7c24a9e15a225d97bc0a66047f0471e84faaa1d42a3b487c1a7b extends Template
-{
- private $source;
- private $macros = [];
-
- public function __construct(Environment $env)
- {
- parent::__construct($env);
-
- $this->source = $this->getSourceContext();
-
- $this->parent = false;
-
- $this->blocks = [
- ];
- }
-
- protected function doDisplay(array $context, array $blocks = [])
- {
- $macros = $this->macros;
- // line 1
- echo "<div class=\"container\">
- <h4>";
- // line 2
- echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, ($context["lbl"] ?? null), "clientaccess", [], "any", false, false, false, 2), "html", null, true);
- echo "</h4>
- </div>
- <form name=\"frmlogin\" method=\"POST\" id=\"frmlogin\">
- <div class=\"container\">
- <label for=\"username\" class=\"label\">";
- // line 6
- echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, ($context["lbl"] ?? null), "username", [], "any", false, false, false, 6), "html", null, true);
- echo "</label>
- <input class=\"input border\" type=\"text\" id=\"login\" name=\"login\">
- </div>
- <div class=\"container\">
- <label for=\"password\" class=\"label\">";
- // line 10
- echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, ($context["lbl"] ?? null), "password", [], "any", false, false, false, 10), "html", null, true);
- echo "</label>
- <input class=\"input border\" type=\"password\" id=\"password\" name=\"password\">
- </div>
- <div class=\"container padding-16\">
- <button type=\"submit\" name=\"btnlogin\" class=\"theme-dark button\" >";
- // line 14
- echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, ($context["lbl"] ?? null), "login", [], "any", false, false, false, 14), "html", null, true);
- echo "</button>
- </div>
- <!--<div class=\"container padding-16\">
- <a href=\"";
- // line 17
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "forgotpassword.html\">>";
- echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, ($context["lbl"] ?? null), "forgotpassword", [], "any", false, false, false, 17), "html", null, true);
- echo "?</a>
- </div>-->
-
- <div class=\"container padding-16\">
- <!--";
- // line 21
- echo twig_escape_filter($this->env, ($context["ua"] ?? null), "html", null, true);
- echo "-->
- </div>
- </form>";
- }
-
- public function getTemplateName()
- {
- return "module/login/login.html";
- }
-
- public function isTraitable()
- {
- return false;
- }
-
- public function getDebugInfo()
- {
- return array ( 76 => 21, 67 => 17, 61 => 14, 54 => 10, 47 => 6, 40 => 2, 37 => 1,);
- }
-
- public function getSourceContext()
- {
- return new Source("", "module/login/login.html", "/mnt/c/Users/ksaff/Workspace/pot_lu/app/tmplm/module/login/login.html");
- }
-}
+++ /dev/null
-<?php
-
-use Twig\Environment;
-use Twig\Error\LoaderError;
-use Twig\Error\RuntimeError;
-use Twig\Extension\SandboxExtension;
-use Twig\Markup;
-use Twig\Sandbox\SecurityError;
-use Twig\Sandbox\SecurityNotAllowedTagError;
-use Twig\Sandbox\SecurityNotAllowedFilterError;
-use Twig\Sandbox\SecurityNotAllowedFunctionError;
-use Twig\Source;
-use Twig\Template;
-
-/* login.html */
-class __TwigTemplate_82c6649333c6b85a13069e5b34349444ab198ec246937a6b5c12d524b6fb051b extends Template
-{
- private $source;
- private $macros = [];
-
- public function __construct(Environment $env)
- {
- parent::__construct($env);
-
- $this->source = $this->getSourceContext();
-
- $this->parent = false;
-
- $this->blocks = [
- ];
- }
-
- protected function doDisplay(array $context, array $blocks = [])
- {
- $macros = $this->macros;
- // line 1
- echo "<!DOCTYPE html>
-<html lang=\"";
- // line 2
- echo twig_escape_filter($this->env, ($context["lang"] ?? null), "html", null, true);
- echo "\">
-<head>
- <meta name=\"language\" content=\"";
- // line 4
- echo twig_escape_filter($this->env, ($context["lang"] ?? null), "html", null, true);
- echo "\">
- <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
- <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, shrink-to-fit=no\">
- <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">
- <meta name=\"apple-mobile-web-app-capable\" content=\"yes\">
- <meta name=\"apple-mobile-web-app-title\" content=\"POT\">
- <title>POT - Plan d'Organtisation du Travail ";
- // line 10
- echo twig_escape_filter($this->env, ($context["mode"] ?? null), "html", null, true);
- echo "</title>
- <meta name=\"robots\" content=\"noindex,nofollow\">
-<link rel=\"apple-touch-icon\" sizes=\"57x57\" href=\"";
- // line 12
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-57x57.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"60x60\" href=\"";
- // line 13
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-60x60.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"72x72\" href=\"";
- // line 14
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-72x72.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"76x76\" href=\"";
- // line 15
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-76x76.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"114x114\" href=\"";
- // line 16
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-114x114.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"120x120\" href=\"";
- // line 17
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-120x120.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"144x144\" href=\"";
- // line 18
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-144x144.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"152x152\" href=\"";
- // line 19
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-152x152.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"";
- // line 20
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-180x180.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"";
- // line 21
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/android-icon-192x192.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"";
- // line 22
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/favicon-32x32.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"96x96\" href=\"";
- // line 23
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/favicon-96x96.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"";
- // line 24
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/favicon-16x16.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link href=\"";
- // line 25
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphone5_splash.png\" media=\"(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 26
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphone6_splash.png\" media=\"(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 27
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphoneplus_splash.png\" media=\"(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 28
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphonex_splash.png\" media=\"(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 29
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphonexr_splash.png\" media=\"(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 30
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphonexsmax_splash.png\" media=\"(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 31
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/ipad_splash.png\" media=\"(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 32
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/ipadpro1_splash.png\" media=\"(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 33
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/ipadpro3_splash.png\" media=\"(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 34
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/ipadpro2_splash.png\" media=\"(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link rel=\"manifest\" href=\"manifest.json\">
-<link rel=\"stylesheet\" href=\"";
- // line 36
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/css/theme";
- echo twig_escape_filter($this->env, ($context["minify"] ?? null), "html", null, true);
- echo ".css?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<style>
-body, html {height: 100%}
-.bgimg {
- background-image: url('";
- // line 40
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/potbg.jpg?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "');
- min-height: 100%;
- background-position: center;
- background-size: cover;
-}
-</style>
-</head>
-<body>
-
- <div class=\"display-container DKS bgimg\" style=\"padding-top: 100px; \">
-
- <div class=\"row\" >
- <div class=\"col l4 m2 hide-small\">
- </div>
- <div class=\"col l4 m8 s12 border round\">
- <div class=\"container center white padding\">
- <img src=\"";
- // line 56
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/toplogo.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\" style=\"height: 60px;\" alt=\"logo\">
- </div>
- <div class=\"container white\" id=\"pnllogin\" >
- ";
- // line 59
- if ((0 === twig_compare(($context["pagename"] ?? null), "forgotpassword"))) {
- // line 60
- echo " ";
- echo twig_include($this->env, $context, "module/login/forgotpassword.html");
- echo "
- ";
- } elseif ((0 === twig_compare( // line 61
-($context["pagename"] ?? null), "message"))) {
- // line 62
- echo " ";
- echo twig_include($this->env, $context, "module/login/message.html");
- echo "
- ";
- } else {
- // line 64
- echo " ";
- echo twig_include($this->env, $context, "module/login/login.html");
- echo "
- ";
- }
- // line 66
- echo " </div>
- </div>
- <div class=\"col l4 m2 hide-small\">
- </div>
- </div>
- <noscript>
- <div class=\"row\">
- <div class=\"col l4 m2 hide-small\">
- </div>
- <div class=\"col l4 m8 s12 border round white\">
- <div class=\"container text-red large\">Javascript doit être activé pour travailler avec POT!</div>
- </div>
- <div class=\"col l4 m2 hide-small\">
- </div>
- </div>
- </noscript>
- </div>
-</body>
-
-</html>
-";
- }
-
- public function getTemplateName()
- {
- return "login.html";
- }
-
- public function isTraitable()
- {
- return false;
- }
-
- public function getDebugInfo()
- {
- return array ( 239 => 66, 233 => 64, 227 => 62, 225 => 61, 220 => 60, 218 => 59, 210 => 56, 189 => 40, 178 => 36, 173 => 34, 169 => 33, 165 => 32, 161 => 31, 157 => 30, 153 => 29, 149 => 28, 145 => 27, 141 => 26, 137 => 25, 131 => 24, 125 => 23, 119 => 22, 113 => 21, 107 => 20, 101 => 19, 95 => 18, 89 => 17, 83 => 16, 77 => 15, 71 => 14, 65 => 13, 59 => 12, 54 => 10, 45 => 4, 40 => 2, 37 => 1,);
- }
-
- public function getSourceContext()
- {
- return new Source("", "login.html", "/mnt/c/Users/ksaff/Workspace/pot_lu/app/tmplm/login.html");
- }
-}
+++ /dev/null
-<?php
-
-use Twig\Environment;
-use Twig\Error\LoaderError;
-use Twig\Error\RuntimeError;
-use Twig\Extension\SandboxExtension;
-use Twig\Markup;
-use Twig\Sandbox\SecurityError;
-use Twig\Sandbox\SecurityNotAllowedTagError;
-use Twig\Sandbox\SecurityNotAllowedFilterError;
-use Twig\Sandbox\SecurityNotAllowedFunctionError;
-use Twig\Source;
-use Twig\Template;
-
-/* browser.html */
-class __TwigTemplate_46459f1d36fb489e360e068ce24c715c99812911846d2caa5c35172dacedcf15 extends Template
-{
- private $source;
- private $macros = [];
-
- public function __construct(Environment $env)
- {
- parent::__construct($env);
-
- $this->source = $this->getSourceContext();
-
- $this->parent = false;
-
- $this->blocks = [
- ];
- }
-
- protected function doDisplay(array $context, array $blocks = [])
- {
- $macros = $this->macros;
- // line 1
- echo "
-<!DOCTYPE html>
-<html lang=\"";
- // line 3
- echo twig_escape_filter($this->env, ($context["lang"] ?? null), "html", null, true);
- echo "\">
-<head>
-
- <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
- <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, shrink-to-fit=no\">
- <title>POT - ";
- // line 8
- echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, ($context["lbl"] ?? null), "pot_long", [], "any", false, false, false, 8), "html", null, true);
- echo " ";
- echo twig_escape_filter($this->env, ($context["mode"] ?? null), "html", null, true);
- echo "</title>
- <meta name=\"language\" content=\"fr\">
- <meta name=\"robots\" content=\"noindex,nofollow\">
- <link rel=\"apple-touch-icon\" sizes=\"57x57\" href=\"img/favicon/apple-icon-57x57.png?v=";
- // line 11
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"60x60\" href=\"img/favicon/apple-icon-60x60.png?v=";
- // line 12
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"72x72\" href=\"img/favicon/apple-icon-72x72.png?v=";
- // line 13
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"76x76\" href=\"img/favicon/apple-icon-76x76.png?v=";
- // line 14
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"114x114\" href=\"img/favicon/apple-icon-114x114.png?v=";
- // line 15
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"120x120\" href=\"img/favicon/apple-icon-120x120.png?v=";
- // line 16
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"144x144\" href=\"img/favicon/apple-icon-144x144.png?v=";
- // line 17
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"152x152\" href=\"img/favicon/apple-icon-152x152.png?v=";
- // line 18
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"img/favicon/apple-icon-180x180.png?v=";
- // line 19
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"img/favicon/android-icon-192x192.png?v=";
- // line 20
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"img/favicon/favicon-32x32.png?v=";
- // line 21
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"96x96\" href=\"img/favicon/favicon-96x96.png?v=";
- // line 22
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"img/favicon/favicon-16x16.png?v=";
- // line 23
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"stylesheet\" href=\"";
- // line 24
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/css/theme.css?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<style>
-body, html {height: 100%}
-.bgimg {
- background-image: url('";
- // line 28
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/potbg.jpg?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "');
- min-height: 100%;
- background-position: center;
- background-size: cover;
-}
-</style>
-</head>
-<body>
-
- <div class=\"display-container DKS bgimg\" style=\"padding-top: 100px; \">
-
- <div class=\"row\" >
- <div class=\"col l4 m2 hide-small\">
- </div>
- <div class=\"col l4 m8 s12 border round\">
- <div class=\"container center white padding\">
- <img src=\"";
- // line 44
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/mg/toplogo.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\" style=\"height: 60px;\" alt=\"logo\">
- </div>
- <div class=\"container white\" id=\"pnllogin\" >
- <div class=\"container\">
- <h4>Ihr Browser wird nicht unterstĂĽtzt!</h4>
- <h4>Votre Navigateur n'est pas supporté!</h4>
- </div>
- <!-- <div class=\"container padding\">
- <a class=\"text-black\" href=\"https://www.plandutravail.lu/download/POT_Setup_64bit.exe\">Download Windows Version</a>
- </div>
- <div class=\"container padding\">
- <a class=\"text-black\" href=\"https://www.plandutravail.lu/download/pot_setup.dmg\">Download MacOS Version</a>
- </div> -->
- </div>
- </div>
- <div class=\"col l4 m2 hide-small\">
- </div>
- </div>
- <noscript>
- <div class=\"row\">
- <div class=\"col l4 m2 hide-small\">
- </div>
- <div class=\"col l4 m8 s12 border round white\">
- <div class=\"container text-red large\">Javascript doit être activé pour travailler avec POT!</div>
- </div>
- <div class=\"col l4 m2 hide-small\">
- </div>
- </div>
- </noscript>
- </div>
-</body>
-
-</html>";
- }
-
- public function getTemplateName()
- {
- return "browser.html";
- }
-
- public function isTraitable()
- {
- return false;
- }
-
- public function getDebugInfo()
- {
- return array ( 139 => 44, 118 => 28, 109 => 24, 105 => 23, 101 => 22, 97 => 21, 93 => 20, 89 => 19, 85 => 18, 81 => 17, 77 => 16, 73 => 15, 69 => 14, 65 => 13, 61 => 12, 57 => 11, 49 => 8, 41 => 3, 37 => 1,);
- }
-
- public function getSourceContext()
- {
- return new Source("", "browser.html", "/mnt/c/Users/ksaff/Workspace/pot_lu/app/tmplm/browser.html");
- }
-}
+++ /dev/null
-<?php
-
-use Twig\Environment;
-use Twig\Error\LoaderError;
-use Twig\Error\RuntimeError;
-use Twig\Extension\SandboxExtension;
-use Twig\Markup;
-use Twig\Sandbox\SecurityError;
-use Twig\Sandbox\SecurityNotAllowedTagError;
-use Twig\Sandbox\SecurityNotAllowedFilterError;
-use Twig\Sandbox\SecurityNotAllowedFunctionError;
-use Twig\Source;
-use Twig\Template;
-
-/* index.html */
-class __TwigTemplate_7000e3c9a492aa607a7a6febeaa22b5d41386b6c1d3c720ee6f08144999c6b9c extends Template
-{
- private $source;
- private $macros = [];
-
- public function __construct(Environment $env)
- {
- parent::__construct($env);
-
- $this->source = $this->getSourceContext();
-
- $this->parent = false;
-
- $this->blocks = [
- ];
- }
-
- protected function doDisplay(array $context, array $blocks = [])
- {
- $macros = $this->macros;
- // line 1
- echo "<!DOCTYPE html>
-<html lang=\"";
- // line 2
- echo twig_escape_filter($this->env, ($context["lang"] ?? null), "html", null, true);
- echo "\">
-<head>
- <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
- <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, shrink-to-fit=no\">
- <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">
- <meta name=\"apple-mobile-web-app-capable\" content=\"yes\">
- <meta name=\"apple-mobile-web-app-title\" content=\"POT\">
- <title>POT - Plan d'Organtisation du Travail</title>
- <meta name=\"language\" content=\"fr\">
- <meta name=\"robots\" content=\"noindex,nofollow\">
- <meta name=\"theme-color\" content=\"#fff\" >
-<link rel=\"apple-touch-icon\" sizes=\"57x57\" href=\"";
- // line 13
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-57x57.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"60x60\" href=\"";
- // line 14
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-60x60.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"72x72\" href=\"";
- // line 15
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-72x72.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"76x76\" href=\"";
- // line 16
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-76x76.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"114x114\" href=\"";
- // line 17
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-114x114.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"120x120\" href=\"";
- // line 18
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-120x120.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"144x144\" href=\"";
- // line 19
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-144x144.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"152x152\" href=\"";
- // line 20
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-152x152.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"";
- // line 21
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/apple-icon-180x180.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"";
- // line 22
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/android-icon-192x192.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"";
- // line 23
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/favicon-32x32.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"96x96\" href=\"";
- // line 24
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/favicon-96x96.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"";
- // line 25
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/favicon/favicon-16x16.png?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link href=\"";
- // line 26
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphone5_splash.png\" media=\"(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 27
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphone6_splash.png\" media=\"(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 28
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphoneplus_splash.png\" media=\"(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 29
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphonex_splash.png\" media=\"(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 30
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphonexr_splash.png\" media=\"(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 31
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/iphonexsmax_splash.png\" media=\"(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 32
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/ipad_splash.png\" media=\"(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 33
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/ipadpro1_splash.png\" media=\"(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 34
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/ipadpro3_splash.png\" media=\"(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link href=\"";
- // line 35
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/img/splashscreens/ipadpro2_splash.png\" media=\"(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2)\" rel=\"apple-touch-startup-image\" />
-<link rel=\"manifest\" href=\"manifest.webmanifest\">
-<link rel=\"stylesheet\" href=\"";
- // line 37
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/css/icons.css?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"stylesheet\" href=\"";
- // line 38
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/css/theme.css?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-
-<link rel=\"stylesheet\" href=\"";
- // line 40
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/tabulator/css/tabulator_site.css?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"stylesheet\" href=\"";
- // line 41
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/slimselect/slimselect.css?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"stylesheet\" href=\"";
- // line 42
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/flatpickr/flatpickr.css?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"stylesheet\" href=\"";
- // line 43
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/flatpickr/themes/airbnb.css?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-<link rel=\"stylesheet\" href=\"";
- // line 44
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/suneditor/css/suneditor.min.css?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\">
-</head>
-<body>
-<div class=\"main\">
- ";
- // line 48
- echo twig_include($this->env, $context, ($context["page"] ?? null));
- echo "
- </div>
- ";
- // line 50
- echo twig_include($this->env, $context, "block/snackbar.html");
- echo "
-";
- // line 51
- echo twig_include($this->env, $context, "block/dlgmessage.html");
- echo "
-";
- // line 52
- echo twig_include($this->env, $context, "block/dlgdataload.html");
- echo "
-";
- // line 53
- echo twig_include($this->env, $context, "block/dlginfo.html");
- echo "
- <script>
- let schemata = \"";
- // line 55
- echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["session"] ?? null), "sessiondata", [], "any", false, false, false, 55), "schemata", [], "any", false, false, false, 55), "html", null, true);
- echo "\";
- let lbl = { \"datasaved\":\"";
- // line 56
- echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, ($context["lbl"] ?? null), "datasaved", [], "any", false, false, false, 56), "html", null, true);
- echo "\"};
- </script>
- <script type=\"text/javascript\" src=\"";
- // line 58
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/tabulator/js/tabulator.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script type=\"text/javascript\" src=\"";
- // line 59
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/moment/moment-with-locales.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script>
- moment.locale('";
- // line 61
- echo twig_escape_filter($this->env, ($context["lang"] ?? null), "html", null, true);
- echo "');
- </script>
- <script type=\"text/javascript\" src=\"";
- // line 63
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/slimselect/slimselect.min.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script type=\"text/javascript\" src=\"";
- // line 64
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/flatpickr/flatpickr.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script type=\"text/javascript\" src=\"";
- // line 65
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/flatpickr/l10n/";
- echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, ($context["session"] ?? null), "lang", [], "any", false, false, false, 65), "html", null, true);
- echo ".js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script type=\"text/javascript\" src=\"";
- // line 66
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/flatpickr/plugins/weekSelect/weekSelect.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script type=\"text/javascript\" src=\"";
- // line 67
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/vendors/suneditor/suneditor.min.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script type=\"text/javascript\" src=\"";
- // line 68
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/js/request.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script type=\"text/javascript\" src=\"";
- // line 69
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/js/app.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script type=\"text/javascript\" src=\"";
- // line 70
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/js/timecalc.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script type=\"text/javascript\" src=\"";
- // line 71
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/js/dataform.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
- <script type=\"text/javascript\" src=\"";
- // line 72
- echo twig_escape_filter($this->env, ($context["abspath"] ?? null), "html", null, true);
- echo "static/js/report.js?v=";
- echo twig_escape_filter($this->env, ($context["appversion"] ?? null), "html", null, true);
- echo "\"></script>
-
-</body>
-
-</html>";
- }
-
- public function getTemplateName()
- {
- return "index.html";
- }
-
- public function isTraitable()
- {
- return false;
- }
-
- public function getDebugInfo()
- {
- return array ( 324 => 72, 318 => 71, 312 => 70, 306 => 69, 300 => 68, 294 => 67, 288 => 66, 280 => 65, 274 => 64, 268 => 63, 263 => 61, 256 => 59, 250 => 58, 245 => 56, 241 => 55, 236 => 53, 232 => 52, 228 => 51, 224 => 50, 219 => 48, 210 => 44, 204 => 43, 198 => 42, 192 => 41, 186 => 40, 179 => 38, 173 => 37, 168 => 35, 164 => 34, 160 => 33, 156 => 32, 152 => 31, 148 => 30, 144 => 29, 140 => 28, 136 => 27, 132 => 26, 126 => 25, 120 => 24, 114 => 23, 108 => 22, 102 => 21, 96 => 20, 90 => 19, 84 => 18, 78 => 17, 72 => 16, 66 => 15, 60 => 14, 54 => 13, 40 => 2, 37 => 1,);
- }
-
- public function getSourceContext()
- {
- return new Source("", "index.html", "/mnt/c/Users/ksaff/Workspace/pot_lu/app/tmplm/index.html");
- }
-}
+++ /dev/null
-[% quser = dksdb.query("select prename,surname from public.users where id='$userid';") %]
-[% user = quser.get_all() %]
-Bonjour [% user.0.prename %] [% user.0.surname %],<br/>
-<br/>
-vous avez demandé un nouveau mot de passe via plandutravail.lu!<br/>
-cliquer ci-dessous pour confirmer votre demande.<a>
-<a href="[% siteurl %]/accountreset.html">Changer mot de passe</a>
-<br/>
-<br/>
-Meilleurs salutations,<br/>
-<br/>
-POT Support Team
\ No newline at end of file
+++ /dev/null
-[% quser = dksdb.query("select prename,surname from public.users where id='$userid';") %]
-[% user = quser.get_all() %]
-Bonjour [% user.0.prename %] [% user.0.surname %],<br/>
-<br/>
-[% quser = dksdb.query("select username,vcode from public.users where id='$userid';") %]
-[% user = quser.get_all() %]
-Merci pour votre création de compte sur pot.lu,
-<br/><br/>
-votre code de validation: <strong style="font-family: Courier New,Courier,Lucida Sans Typewriter,Lucida Typewriter,monospace;">[% user.0.vcode %]</strong><br/>
-Finissez votre régistration en entrant le votre code de validation ici: <a href="[% siteurl %]/validation.html">[% siteurl %]validation.html</a>
-<br/>
-<br/>
-Meilleurs salutations,<br/>
-<br/>
-POT Support Team
+++ /dev/null
-[% USE DBI %]
-[% USE dksdb = DBI(dsn, dbuser, dbpassword) %]
-<html>
- <head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <style>
- body,html {
- margin: 0;
- background-color: #fff;
- }
- </style>
- </head>
- <body bgcolor="#607d8b">
- <div class="maincontainer" align="left" style="padding-top: 5px; width: auto; background-color: #607d8b!important; color: #fff;">
- POT - Plan d'organisation de travail</span>
- <div style="background-color: #fff; color: #000">
- <div class="mailcontent" align="left" style="padding: 10px; color: #000;">
- [% INCLUDE "body/$bodytemplate" %]
- </div>
- </div>
- </div>
- </body>
-</html>
\ No newline at end of file
if ($p["value"] != ""){
$val = "'".$db->securetext($p["value"])."'";
}
+
$usql = "UPDATE ".$schema.".".$db->securetext($p["table"])." SET ".$db->securetext($p["column"])."=".$val." WHERE id='".$db->securetext($p["id"])."';";
+ //file_put_contents("sql.log",$usql."\n",FILE_APPEND);
$html["result"] = $db->exec($usql);
}
}
//error_log($dd);\r
echo $dd;\r
}\r
-if ($vars["ctype"] == 'text/html'){\r
- print '<pre style="display:none;">'.print_r($vars,true)."<pre>";\r
-} \r
+// if ($vars["ctype"] == 'text/html'){\r
+// print '<pre style="display:none;">'.print_r($vars,true)."<pre>";\r
+// } \r
\r
?>
\ No newline at end of file
$date_end=$pdate["enddate"];
$pstart =$pdate["periodstart"];
$pend =$pdate["periodend"];
+
$sql = "select ws.weekstart,ws.weekend,ws.calweek,ws.calyear, ws.id_staff
,to_char(ws.workhours::interval,'HH24:MI') as workhours
- --,to_char(ws.vacancyhours+ws.vacillhours+ws.vacextrahours,'HH24:MI') as vacancyhours
,to_char(ws.vacancyhours,'HH24:MI') as vacancynormal
,to_char(ws.vacillhours,'HH24:MI') as vacancyill
,to_char(ws.vacextrahours,'HH24:MI') as vacancyextra
,cd.contractworkdays
,cd.cmpcontractdays
,cd.cmpweekhours
- ,to_char(ttr.weektrackedhours,'HH24:MI') as weektrackedhours
- ,interval_to_char(sum(ttr.weektrackedhours) over (order by ws.weekstart) - sum(ws.periodworkhours::interval) over (order by ws.weekstart)) as periodtrackdiff
+ ,to_char(coalesce(ttr.weektrackedhours,'00:00:00'::interval),'HH24:MI') as weektrackedhours
+ ,ws.periodworkhours
+ ,interval_to_char(sum(coalesce(ttr.weektrackedhours,'00:00:00'::interval)) over (order by ws.weekstart) - sum(ws.periodworkhours::interval) over (order by ws.weekstart)) as periodtrackdiff
,sum(ws.workhours::interval) over (order by ws.weekstart) as runningworkhours
- ,interval_to_char(ttr.weektrackedhours - ws.periodworkhours::interval) as trackeddiff
+ ,interval_to_char(coalesce(ttr.weektrackedhours,'00:00:00'::interval) - ws.periodworkhours::interval) as trackeddiff
,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 interval_to_char(ws.totalhours-cd.contracthours) end as diffhours
from (
SELECT weekstart,weekend,calweek,calyear, id_staff,
sum(CASE WHEN srpd.workhours IS NULL THEN '00:00:00'::interval ELSE srpd.workhours::interval END) AS workhours,
- sum(case when srpd.daydate between date('".$pstart."') and date('".$pend."') then coalesce(srpd.workhours::interval, '00:00:00'::interval) + case when srpd.workhours::interval > '06:00:00'::interval and srpd.timepause is null then '00:30:00'::interval else coalesce(srpd.timepause::interval,'00:00:00'::interval) end else '00:00:00'::interval end) as periodworkhours,
+ sum(case when srpd.daydate between date('".$pstart."') and date('".$pend."') then coalesce(srpd.workhours::interval, '00:00:00'::interval) else '00:00:00'::interval end) as periodworkhours,
+ --sum(case when srpd.daydate between date('".$pstart."') and date('".$pend."') then coalesce(srpd.workhours::interval, '00:00:00'::interval) else '00:00:00'::interval end) as periodworkhoursnopause,
sum(CASE WHEN srpd.vacancyhours IS NULL THEN '00:00:00'::interval ELSE srpd.vacancyhours::interval END) AS vacancyhours,
sum(CASE WHEN srpd.vacillhours IS NULL THEN '00:00:00'::interval ELSE srpd.vacillhours::interval END) AS vacillhours,
sum(CASE WHEN srpd.vacextrahours IS NULL THEN '00:00:00'::interval ELSE srpd.vacextrahours::interval END) AS vacextrahours,
where id_staff='".$id_staff."' and lpd.daydate between date('".$date_start."') and date('".$date_end."')
order by lpd.daydate ) mh group by id_staff,weekstart
) maxdata on ws.id_staff = maxdata.id_staff and ws.weekstart=maxdata.weekstart
- left join (select weekstart,id_staff,sum(trackedhours) as weektrackedhours from (
- select date(date_trunc('week',daydate)) as weekstart,id_staff,(stamp_out-stamp_in)::interval as trackedhours from ".$schema.".timetracker
- where daydate between date('".$pstart."') and date('".$pend."') and id_staff ='".$id_staff."') ttx group by weekstart,id_staff
- ) ttr on ws.weekstart=ttr.weekstart and ws.id_staff=ttr.id_staff";
- //file_put_contents("sql.log","WS: ".$sql,FILE_APPEND);
+ left join (
+ select weekstart,id_staff,coalesce(sum(daytracked),'00:00:00'::interval) as weektrackedhours from (
+ select daydate,id_staff,weekstart,case when sum(trackedhours) > '06:00:00'::interval then sum(trackedhours)- '00:30:00'::interval else coalesce(sum(trackedhours),'00:00:00'::interval) end as daytracked from (
+select daydate,date(date_trunc('week',daydate)) as weekstart,id_staff,(stamp_out-stamp_in)::interval as trackedhours from ".$schema.".timetracker
+where daydate between date('".$pstart."') and date('".$pend."') and id_staff ='".$id_staff."') tto group by daydate,id_staff,weekstart,trackedhours) ttx group by weekstart,id_staff
+ ) ttr on ws.weekstart=ttr.weekstart and ws.id_staff=ttr.id_staff;";
+
+
+ // $sql = "select ws.weekstart,ws.weekend,ws.calweek,ws.calyear, ws.id_staff
+ // ,to_char(ws.workhours::interval,'HH24:MI') as workhours
+ // --,to_char(ws.vacancyhours+ws.vacillhours+ws.vacextrahours,'HH24:MI') as vacancyhours
+ // ,to_char(ws.vacancyhours,'HH24:MI') as vacancynormal
+ // ,to_char(ws.vacillhours,'HH24:MI') as vacancyill
+ // ,to_char(ws.vacextrahours,'HH24:MI') as vacancyextra
+ // ,to_char(ws.otherpaidhours,'HH24:MI') as otherpaidhours
+ // ,to_char(ws.partunemplhours,'HH24:MI') as partunemplhours
+ // ,to_char(ws.recuperationhours,'HH24:MI') as recuperationhours
+ // ,to_char(ws.totalhours,'HH24:MI') as totalhours
+ // ,cd.contractworkdays
+ // ,cd.cmpcontractdays
+ // ,cd.cmpweekhours
+ // ,to_char(coalesce(ttr.weektrackedhours,'00:00:00'::interval),'HH24:MI') as weektrackedhours
+ // ,ws.periodworkhours
+ // ,interval_to_char(sum(coalesce(ttr.weektrackedhours,'00:00:00'::interval)) over (order by ws.weekstart) - sum(ws.periodworkhours::interval) over (order by ws.weekstart)) as periodtrackdiff
+ // ,sum(ws.workhours::interval) over (order by ws.weekstart) as runningworkhours
+ // ,interval_to_char(coalesce(ttr.weektrackedhours,'00:00:00'::interval) - ws.periodworkhours::interval) as trackeddiff
+ // ,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 interval_to_char(ws.totalhours-cd.contracthours) end as diffhours
+ // ,case when cd.contractworkdays < cd.cmpcontractdays then
+ // to_char(case when cd.cmpweekhours < '40:00:00'::interval then cd.contracthours * 1.15 * cd.contractworkdays else (cd.contractworkdays*'08:00:00'::interval) + (cd.contractworkdays* case when maxdata.maxweekhours > '48:00:00' then '01:16:50'::interval else '00:50:00'::interval end) end,'HH24:MI')
+ // else
+ // to_char(case when cd.contracthours < '40:00:00'::interval then cd.contracthours * 1.15 else maxdata.maxweekhours end,'HH24:MI')
+ // end as maxweekhours
+ // ,case when cd.contractworkdays < cd.cmpcontractdays then to_char(cd.contractworkdays*'08:00:00'::interval,'HH24:MI') else
+ // to_char(case when cd.contracthours < '40:00:00'::interval then cd.contracthours else maxdata.defaultweekhours end,'HH24:MI')
+ // end as defaultweekhours
+ // from (
+ // SELECT weekstart,weekend,calweek,calyear, id_staff,
+ // sum(CASE WHEN srpd.workhours IS NULL THEN '00:00:00'::interval ELSE srpd.workhours::interval END) AS workhours,
+ // sum(case when srpd.daydate between date('".$pstart."') and date('".$pend."') then coalesce(srpd.workhours::interval, '00:00:00'::interval) + case when srpd.workhours::interval > '06:00:00'::interval and srpd.timepause is null then '00:30:00'::interval else coalesce(srpd.timepause::interval,'00:00:00'::interval) end else '00:00:00'::interval end) as periodworkhours,
+ // sum(case when srpd.daydate between date('".$pstart."') and date('".$pend."') then coalesce(srpd.workhours::interval, '00:00:00'::interval) else '00:00:00'::interval end) as periodworkhoursnopause,
+ // sum(CASE WHEN srpd.vacancyhours IS NULL THEN '00:00:00'::interval ELSE srpd.vacancyhours::interval END) AS vacancyhours,
+ // sum(CASE WHEN srpd.vacillhours IS NULL THEN '00:00:00'::interval ELSE srpd.vacillhours::interval END) AS vacillhours,
+ // sum(CASE WHEN srpd.vacextrahours IS NULL THEN '00:00:00'::interval ELSE srpd.vacextrahours::interval END) AS vacextrahours,
+ // sum(CASE WHEN srpd.recuperationhours IS NULL THEN '00:00:00'::interval ELSE srpd.recuperationhours::interval END) AS recuperationhours,
+ // sum(CASE WHEN srpd.otherpaidhours IS NULL THEN '00:00:00'::interval ELSE srpd.otherpaidhours::interval END) AS otherpaidhours,
+ // sum(CASE WHEN srpd.partunemplhours IS NULL THEN '00:00:00'::interval ELSE srpd.partunemplhours::interval END) AS partunemplhours,
+ // sum(CASE WHEN srpd.dayhours IS NULL THEN '00:00:00'::interval ELSE srpd.dayhours::interval END) AS totalhours,
+ // sum(CASE WHEN srpd.workhours > '00:00:00'::time without time zone OR srpd.recuperationhours > '00:00:00'::time without time zone OR srpd.vacancyhours > '00:00:00'::time without time zone OR srpd.vacillhours > '00:00:00'::time without time zone OR srpd.vacextrahours > '00:00:00'::time without time zone OR srpd.otherpaidhours > '00:00:00'::time without time zone or srpd.partunemplhours > '00:00:00'::time without time zone THEN 1 ELSE 0 END) AS workdays,
+ // sum( CASE WHEN srpd.contracthours IS NULL THEN '00:00:00'::interval ELSE srpd.contracthours::interval END) AS contracthours
+ // FROM (select *,date(date_trunc('week', daydate)) AS weekstart,
+ // date(date_trunc('week', daydate) + interval '6 days') AS weekend,
+ // date_part('week', daydate) AS calweek,
+ // date_part('isoyear', daydate) AS calyear from ".$schema.".staffreportperioddays
+ // where id_staff= '".$id_staff."' and daydate between date('".$date_start."') and date('".$date_end."')
+ // ) srpd GROUP BY srpd.weekstart,srpd.weekend,srpd.calweek,srpd.calyear,srpd.id_staff
+ // ORDER BY weekstart) ws left join (
+ // select date(date_trunc('week',pd.daydate)) as weekstart,pd.id_staff,max(sc.weekdays) as cmpcontractdays,max(sc.weekhours) as cmpweekhours,
+ // case when count(pd.daydate) < avg(sc.weekdays) then count(pd.daydate) else avg(sc.weekdays) end as contractworkdays,
+ // case when count(pd.daydate) < avg(sc.weekdays) then avg(sc.weekhours/ sc.weekdays) * count(pd.daydate) else avg(sc.weekhours/ sc.weekdays) * avg(sc.weekdays) end as contracthours ,sum(case when coalesce(pd.workhours,'00:00:00'::time) > '00:00:00'::time then 1 else 0 end) as realworkdays
+ // from ( select id_staff,weekdays ,weekhours,
+ // case when startdate> date('".$date_start."') then startdate else date('".$date_start."') end as staffperiodstart,
+ // case when enddate is null or enddate > date('".$date_end."') then date('".$date_end."')
+ // else enddate end as staffperiodend from ".$schema.".staffcontract where id_staff='".$id_staff."'
+ // and startdate < date('".$date_end."')
+ // ) sc
+ // join ".$schema.".staffreportperioddays pd on (pd.id_staff=sc.id_staff and pd.daydate between sc.staffperiodstart and sc.staffperiodend)
+ // group by date(date_trunc('week',pd.daydate)),pd.id_staff
+ // ) cd on ws.id_staff = cd.id_staff and ws.weekstart=cd.weekstart
+ // left join (
+ // select id_staff,weekstart,max(defaultweekhours) as defaultweekhours,avg(maxweekhours) as maxweekhours from (
+ // select lpd.id_staff,date(date_trunc('week',lpd.daydate)) as weekstart,lpd.daydate,
+ // case when wk.defaultweekhours is null then wkdef.defaultweekhours else wk.defaultweekhours end as defaultweekhours ,
+ // case when wk.maxweekhours is null then wkdef.maxweekhours else wk.maxweekhours end as maxweekhours
+ // from ".$schema.".staffreportperioddays lpd
+ // left join ".$schema.".worktimes wk on (lpd.daydate between wk.startdate and wk.enddate)
+ // cross join (select * from ".$schema.".worktimes where isdefault=true) wkdef
+ // where id_staff='".$id_staff."' and lpd.daydate between date('".$date_start."') and date('".$date_end."')
+ // order by lpd.daydate ) mh group by id_staff,weekstart
+ // ) maxdata on ws.id_staff = maxdata.id_staff and ws.weekstart=maxdata.weekstart
+ // left join (select weekstart,id_staff,sum(trackedhours) as weektrackedhours from (
+ // select weekstart,id_staff,coalesce(sum(daytracked),'00:00:00'::interval) as weektrackedhours from (
+ // select daydate,id_staff,weekstart,case when sum(trackedhours) > '06:00:00'::interval then sum(trackedhours)- '00:30:00'::interval else coalesce(sum(trackedhours),'00:00:00'::interval) end as daytracked from (
+ // select daydate,date(date_trunc('week',daydate)) as weekstart,id_staff,(stamp_out-stamp_in)::interval as trackedhours from ".$schema.".timetracker
+ // where daydate between date('".$pstart."') and date('".$pend."') and id_staff ='".$id_staff."') tto group by daydate,id_staff,weekstart,trackedhours) ttx group by weekstart,id_staff
+ // ) ttr on ws.weekstart=ttr.weekstart and ws.id_staff=ttr.id_staff";
+
+ file_put_contents("sql.log","WS: ".$sql);
$ret = $this->dbh->querybykey('weekstart',$sql);
to_char(coalesce(max(wk.mindailyrecuperation),max(wkstd.mindailyrecuperation)),'HH24:MI') as mindailyrecuperation,
to_char(coalesce(max(wk.maxinterruptionhours),max(wkstd.maxinterruptionhours)),'HH24:MI') as maxinterruptionhours,
max(vd.vacancyname) as vacancyname,
- to_char(case when pd.workhours >= '06:00:00'::interval and pd.payedpause is null and max(tt.trackedtime) > '00:30:00'::interval then max(tt.trackedtime) - case when pd.timepause::interval > '00:30:00'::interval then pd.timepause::interval else '00:30:00'::interval end else max(tt.trackedtime) end,'HH24:MI') as trackedtime,
+ to_char(case when (max(tt.trackedtime) >= '06:00:00'::interval) then max(tt.trackedtime) - case when pd.timepause::interval > '00:30:00'::interval then pd.timepause::interval else '00:30:00'::interval end else max(tt.trackedtime) end,'HH24:MI') as trackedtime,
max(tt.incompletetrack) as incompletetrack
FROM ".$schema.".staffreportperioddays pd
JOIN ".$schema.".staff st ON pd.id_staff = st.id and st.id='".$id_staff."' and st.isdeleted is null
public function getWeekStamps($schema,$date){
- $xsql = "select yy.id_staff,yy.staffname,xx.cw,xx.montime,xx.tuetime,xx.wedtime,xx.thutime,xx.fritime,xx.sattime,xx.suntime,xx.weeksum from (
- select st.id as id_staff,st.surname || ' ' || st.prename as staffname from ".$schema.".staffcontract sc join ".$schema.".staff st on (st.id=sc.id_staff)
+ $xsql = "select yy.id_staff,yy.staffname,yy.groupname,xx.cw,
+ xx.montime,xx.monentry,xx.monexit,
+ xx.tuetime,xx.tueentry,xx.tueexit,
+ xx.wedtime,xx.wedentry,xx.wedexit,
+ xx.thutime,xx.thuentry,xx.thuexit,
+ xx.fritime,xx.frientry,xx.friexit,
+ xx.sattime,xx.satentry,xx.satexit,
+ xx.suntime,xx.sunentry,xx.sunexit,
+ xx.weeksum from (
+ select st.id as id_staff,st.surname || ' ' || st.prename as staffname,gg.groupname from ".$schema.".staffcontract sc join ".$schema.".staff st on (st.id=sc.id_staff) left join ".$schema.".staffgroups gg on (gg.id=st.id_staffgroup)
where (sc.enddate >= date_trunc('week',date('".$date."') + interval '6 days') or enddate is null) and sc.startdate <= date_trunc('week',date('".$date."') + interval '6 days')
and st.isdeleted is null
- group by st.id,st.surname,st.prename) yy left join (
+ group by st.id,st.surname,st.prename,gg.groupname) yy left join (
select id_staff,cw,
- to_char(sum(case when dow = 1 then daystamptime else null end),'HH24:MI') as montime,
- to_char(sum(case when dow = 2 then daystamptime else null end),'HH24:MI') as tuetime,
- to_char(sum(case when dow = 3 then daystamptime else null end),'HH24:MI') as wedtime,
- to_char(sum(case when dow = 4 then daystamptime else null end),'HH24:MI') as thutime,
- to_char(sum(case when dow = 5 then daystamptime else null end),'HH24:MI') as fritime,
- to_char(sum(case when dow = 6 then daystamptime else null end),'HH24:MI') as sattime,
- to_char(sum(case when dow = 7 then daystamptime else null end),'HH24:MI') as suntime,
+ to_char(sum(case when dow = 1 then daystamptime else null end),'HH24:MI') as montime,
+ min(case when dow = 1 then timeentry else null end) as monentry,
+ max(case when dow = 1 then timeexit else null end) as monexit,
+ to_char(sum(case when dow = 2 then daystamptime else null end),'HH24:MI') as tuetime,
+ min(case when dow = 2 then timeentry else null end) as tueentry,
+ max(case when dow = 2 then timeexit else null end) as tueexit,
+ to_char(sum(case when dow = 3 then daystamptime else null end),'HH24:MI') as wedtime,
+ min(case when dow = 3 then timeentry else null end) as wedentry,
+ max(case when dow = 3 then timeexit else null end) as wedexit,
+ to_char(sum(case when dow = 4 then daystamptime else null end),'HH24:MI') as thutime,
+ min(case when dow = 4 then timeentry else null end) as thuentry,
+ max(case when dow = 4 then timeexit else null end) as thuexit,
+ to_char(sum(case when dow = 5 then daystamptime else null end),'HH24:MI') as fritime,
+ min(case when dow = 5 then timeentry else null end) as frientry,
+ max(case when dow = 5 then timeexit else null end) as friexit,
+ to_char(sum(case when dow = 6 then daystamptime else null end),'HH24:MI') as sattime,
+ min(case when dow = 6 then timeentry else null end) as satentry,
+ max(case when dow = 6 then timeexit else null end) as satexit,
+ to_char(sum(case when dow = 7 then daystamptime else null end),'HH24:MI') as suntime,
+ min(case when dow = 7 then timeentry else null end) as sunentry,
+ max(case when dow = 7 then timeexit else null end) as sunexit,
to_char(sum(daystamptime),'HH24:MI') as weeksum
from (
select id_staff,
date_part('week',daydate) as cw,
- sum(coalesce((stamp_out-stamp_in)::interval,'00:00:00')) as daystamptime,
+ to_char(min(stamp_in),'HH24:MI') as timeentry,
+ to_char(max(stamp_out),'HH24:MI') as timeexit,
+ case when sum(coalesce((stamp_out-stamp_in)::interval,'00:00:00')) >= '06:00:00'::interval then sum(coalesce((stamp_out-stamp_in)::interval,'00:00:00')) - '00:30:00'::interval else sum(coalesce((stamp_out-stamp_in)::interval,'00:00:00')) end as daystamptime,
date_part('isodow',daydate) as dow,daydate
from ".$schema.".timetracker tt where tt.daydate between date_trunc('week',date('".$date."')) and date(date_trunc('week',date('".$date."')) + interval '6 days') group by tt.id_staff,daydate
) ttd group by id_staff,cw) xx on yy.id_staff=xx.id_staff;";
<?php
$cfg = array(
- "appversion" => '1.4.0',
"basepath" => substr(dirname($_SERVER["SCRIPT_FILENAME"]),strlen($_SERVER["DOCUMENT_ROOT"])).'/',
"templatepath" => "tmpl/",
"webdocroot" => $_SERVER["DOCUMENT_ROOT"].'/'.substr(dirname($_SERVER["SCRIPT_FILENAME"]),strlen($_SERVER["DOCUMENT_ROOT"])).'/',
"cache" => "data/cache/",
"datapath" => "data/output/",
"liveurl" => "https://dks-pc1/potapp/",
- "cookie" => "potlu140",
+ //"cookie" => "potlu140",
"db"=> array(
"type" => "pgsql",
"host" => "dks-pc1",
"htxuser" => "htx",
"htxpwd" => "Aib5aevo",
"htxurl" => "https://htx.plandutravail.lu/htx/api.php",
- "curlua" => "POT Local Test Server",
- //"liveurl" => "https://app.plandutravail.lu",
- // "cookie" => "potlu140",
+ "curlua" => "POT Server",
+ // "liveurl" => "https://app.plandutravail.lu",
+ "cookie" => "potlu140",
// "db"=> array(
// "type" => "pgsql",
// "host" => "sql12.your-server.de",
// "user" => 'potlu2_user',
// "password" => 'dMY8xGB6cBLzrDGE',
// ),
- // "liveurl" => "https://beta.plandutravail.lu",
+ // // "liveurl" => "https://beta.plandutravail.lu",
// "cookie" => "potlubeta",
// "db"=> array(
// "type" => "pgsql",
"version" => date("YmdHis"),
"minify" => "",
);
-
+ require_once("lib/version.php");
?>
\ No newline at end of file
--- /dev/null
+<?php
+ $cfg["appversion"] = '1.7.1';
+?>
\ No newline at end of file
"short_name": "POT",
"icons": [
{
- "src": "/static/img/favicon/android-icon-36x36.png",
+ "src": "/img/favicon/android-icon-36x36.png",
"sizes": "36x36",
"type": "image/png",
"density": "0.75"
},
{
- "src": "/static/img/favicon/android-icon-48x48.png",
+ "src": "/img/favicon/android-icon-48x48.png",
"sizes": "48x48",
"type": "image/png",
"density": "1.0"
},
{
- "src": "/static/img/favicon/android-icon-72x72.png",
+ "src": "/img/favicon/android-icon-72x72.png",
"sizes": "72x72",
"type": "image/png",
"density": "1.5"
},
{
- "src": "/static/img/favicon/android-icon-96x96.png",
+ "src": "/img/favicon/android-icon-96x96.png",
"sizes": "96x96",
"type": "image/png",
"density": "2.0"
},
{
- "src": "/static/img/favicon/android-icon-144x144.png",
+ "src": "/img/favicon/android-icon-144x144.png",
"sizes": "144x144",
"type": "image/png",
"density": "3.0"
},
{
- "src": "/static/img/favicon/android-icon-192x192.png",
+ "src": "/img/favicon/android-icon-192x192.png",
"sizes": "192x192",
"type": "image/png",
"density": "4.0"
},
{
- "src": "/static/img/favicon/android-icon-512x512.png",
+ "src": "/img/favicon/android-icon-512x512.png",
"sizes": "512x512",
"type": "image/png",
"density": "4.0"
+++ /dev/null
-<?php\r
-phpinfo();\r
-chmod("data/output/alicehartmann/pot", 0777);\r
-?>
\ No newline at end of file
<a class="inlinebtn" style="margin-top: 1px;margin-left: -26px;" href="javascript:dataform.cleanfield('recuperationhours');staffperiodweeks.checkdaytime();" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
</td>
</tr>
- <tr style="border-top: 1px solid black;">
+ <!-- -->
+ <tr style="border-top: 1px solid black;{% if cmpcfg.sector != "HORESCA" %}display: none;{% endif %}">
<th class="labelcol">{{ lbl.partunempl }}</th>
<td colspan="2">
<input type="text" class="data_staffreportperioddays" data-column="partunempcomment" placeholder="{{ lbl.comment }}" data-id="" data-table="staffreportperioddays" id="partunempcomment" name="staffreportperioddays_partunempcomment" />
<a class="inlinebtn" style="margin-top: 1px;margin-left: -26px;" href="javascript:dataform.cleanfield('partunemplhours');staffperiodweeks.checkdaytime();" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
</th>
</tr>
+ <!-- -->
<tr style="border-top: 1px solid black;">
<th class="labelcol">{{ lbl.otherpaidhours }}</th>
<td colspan="2">
delete flds["ident_users_id_users"];
}
- console.log("userdata",flds);
+ //console.log("userdata",flds);
postData("db.php",flds).then(data2 => {
- console.log("data returned",data2);
+ //console.log("data returned",data2);
users.gettbldata();
document.getElementById('dlg_users').style.display='none';
dataform.formsaved(null);
<div class="bar">
<a class="bar-item bodybtn" href="{{ abspath }}periods.html"><span class="icon icon-calendar" style="font-size: 24px;"></span>{{ lbl.refperiods }}</a>
<a class="bar-item bodybtn" href="{{ abspath }}staff.html"><span class="icon icon-group" style="font-size: 24px;"></span>{{ lbl.staff }}</a>
- <a class="bar-item bodybtn" href="{{ abspath }}timeclock.html"><span class="icon icon-star" style="font-size: 24px;"></span>{{ lbl.timetracker }}</a>
+ {% if cmpcfg.timetrackertype == 'pot' %}
+ <a class="bar-item bodybtn" href="{{ abspath }}timeclock.html"><span class="icon icon-clocktime" style="font-size: 24px;"></span>{{ lbl.timetracker }}</a>
+ {% endif %}
</div>
</div>
<div class="card" style="margin-top: 10px;">
},
gettermsstatus: function(){
postData("db.php",{"get":"termsstatus"}).then(data => {
- console.log("termsstatus",data);
+ //console.log("termsstatus",data);
if (data.result.data.terms != "1"){
document.getElementById("dlg_terms").style.display = 'block';
}
if ("serviceWorker" in navigator) {\r
window.addEventListener("load", function() {\r
navigator.serviceWorker\r
- .register("/static/js/sw.js")\r
+ .register("/js/sw.js")\r
.then(res => console.log("service worker registered"))\r
.catch(err => console.log("service worker not registered", err))\r
})\r
}
if (frm[f].tagName == 'SELECT'){
if (frm[f].multiple == true){
- if (frm[f].classList.contains("choices__input")){
- choices[frm[f].id].removeActiveItems();
+ //console.log("clean multiple",choices[frm[f].id]);
+ if (choices[frm[f].id]){
+ choices[frm[f].id].set([]);
}
+ // if (frm[f].classList.contains("choices__input")){
+ // choices[frm[f].id].removeActiveItems();
+ // }
} else {
frm[f].value = "";
}
frm[f].value=data[frm[f].id];
}
}
+ if (frm[f].tagName == 'TEXTAREA'){
+ if (frm[f].classList.contains("richeditarea")){
+ choices[frm[f].id].setContents(data[frm[f].id]);
+ //tinymce.get(frm[f].id).setContent("");
+ } else {
+ frm[f].innerHTML = data[frm[f].id];
+ }
+ }
}
}
}
fdata["save"] = "field";
fdata["schemata"] = schemata;
fdata["value"] = objdata;
- console.log("savefielddata",fdata);
- if (callback){}
- //postData("db.php",fdata).then(data => { if (callback){callback(data);}});
+ //console.log("savefielddata",fdata);
+ //if (callback){}
+ postData("db.php",fdata).then(data => { if (callback){callback(data);}});
},
saveschemafield: function(obj,schema){
fdata = obj.dataset;
-var api = location.origin + '/';
+var api = location.origin + '/potapp/';
+
// var api2 = location.origin + '/';
-// console.log("API 2",api2);
+//console.log("API 2",api);
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}
async function postData(url = '', data = {}) {
}
if (prd[0]){
- console.log("perioddata",prd[0]);
+ //console.log("perioddata",prd[0]);
if (prd[0].isvalidated != null){
// console.log("invalidate show");
document.getElementById("btn_invalidateperiod").style.display = 'inline';
/*{% endif %} */
{title: '<span style="font-size: 8pt;">{{ lbl.avgweek_short }}</span>',width: 60, field:"avgtotalweekhours",hozAlign:"right",headerSort: false,formatter:periodAVGFormatter},
{title: '<span style="font-size: 9pt;">{{ lbl.validated }}</span>',width: 40, field:"isvalidated",hozAlign:"center",headerSort: false,formatter:"tickCross", formatterParams:{allowEmpty:true,allowTruthy: false},headerVertical:true},
- /*{% if session.usergorup == "admin" %}*/
+ /*{% if session.usergroup == "admin" %}*/
{title: '<span style="font-size: 9pt;">{{ lbl.maxdays }}</span>',width: 60, field:"maxdays",hozAlign:"center",headerSort: false}
/*{% endif %}*/
]
initform: function(){
staffperiodweeks.choices["id_workplan"] = new SlimSelect({
select: "#id_workplan",
- showSearch: false,
-
+ showSearch: false
});
// staffperiodweeks.getvacancy();
// staffperiodweeks.getrecuperation();
{title: '<span style="font-size: 8pt;">{{ lbl.partunempl }}</span>',width:90, field:"partunemplhours",hozAlign:"right",headerSort: false},
{ title: "{{ lbl.recuperation_short }}",field: "recuperationhours",hozAlign:"center",headerSort: false,formatter:recupformatter,bottomCalc:staffperiodweeks.setweekrecuperationhours},
{ title: "{{ lbl.total|raw }}",field: "dayhours",hozAlign:"center",headerSort: false,formatter:totalFormatter,bottomCalc:staffperiodweeks.setweektotalhours,bottomCalcFormatter:"html"},
- { title: "{{ lbl.diffcontract|raw }}",field:"diffhours",hozAlign:"center",formatter:nullFormatter,headerSort:false,bottomCalc:staffperiodweeks.setweekdiffhours},
- { title: "{{ lbl.avgweek_short }}",field: "avgweekhours",hozAlign:"center",headerSort: false,formatter:nullFormatter,bottomCalc:staffperiodweeks.setavgweekhours},
- { title: "{{ lbl.resttime }}",field: "freehoursafter",hozAlign:"center",formatter:freetimeFormatter,headerSort: false},
- { title: "{{ lbl.timetracks }}",field:"trackedtime",hozAlign:"center",formatter:timetrackFormatter,headerSort: false,bottomCalc:staffperiodweeks.settotaltrackhours},
- { title: "{{ lbl.trackdiff }}",field:"periodtrackdiff",formatter:nullFormatter,headerSort:false,bottomCalc:staffperiodweeks.settrackeddiffhours}
+ // { title: '<span style="font-size: 8pt;">{{ lbl.diffcontract|raw }}</span>',field:"diffhours",hozAlign:"center",formatter:nullFormatter,headerSort:false,bottomCalc:staffperiodweeks.setweekdiffhours},
+ { title: '<span style="font-size: 8pt;">{{ lbl.avgweek_short }}</span>',field: "avgweekhours",hozAlign:"center",headerSort: false,formatter:nullFormatter,bottomCalc:staffperiodweeks.setavgweekhours},
+ { title: '<span style="font-size: 8pt;">{{ lbl.resttime }}</span>',field: "freehoursafter",hozAlign:"center",formatter:freetimeFormatter,headerSort: false},
+ { title: '<span style="font-size: 8pt;">{{ lbl.timetracks }}</span>',field:"trackedtime",hozAlign:"center",formatter:timetrackFormatter,headerSort: false,bottomCalc:staffperiodweeks.settotaltrackhours,tooltip:true},
+ { title: '<span style="font-size: 8pt;">{{ lbl.trackdiff }}</span>',field:"periodtrackdiff",formatter:nullFormatter,headerSort:false,bottomCalc:staffperiodweeks.settrackeddiffhours},
+ { title: '<span style="font-size: 8pt;">Diff Woche</span>',field:"trackeddiff",formatter:nullFormatter,headerSort:false,bottomCalc:staffperiodweeks.setweektrackdiff}
]
});
staffperiodweeks.tblfooter = new Tabulator("#tbl_staffperiodfooter", {
{title: '<span style="font-size: 8pt;">{{ lbl.statementtransfered3 }}</span>',width: 80, field:"transferedhours",hozAlign:"right",headerSort: false},
{title: '<span style="font-size: 9pt;">{{ lbl.supphourspayed2 }}</span>',width: 80, field:"payedhours",hozAlign:"right",headerSort: false} ,
{title: '<span style="font-size: 8pt;">{{ lbl.finalstatementpot2 }}</span>',width: 90, field:"hoursdiff",hozAlign:"right",headerSort: false},
+ /*{% if cmpcfg.sector == "HORESCA" %} */
{title: '<span style="font-size: 9pt;">{{ lbl.supp44h3 }}</span>',width: 70, field:"suppvacancy44hours",hozAlign:"right",headerSort: false},
{title: '<span style="font-size: 9pt;">{{ lbl.suppsunwork2 }}</span>',width: 70, field:"suppvacancysunwork",hozAlign:"right",headerSort: false},
+ /*{% endif %} */
{title: '<span style="font-size: 8pt;">{{ lbl.avgweek_short2 }}</span>',width: 100, field:"avgtotalweekhours",hozAlign:"right",headerSort: false,formatter:periodAVGFormatter},
{title: '<span style="font-size: 9pt;">{{ lbl.validated2 }}</span>',width: 60, field:"isvalidated",hozAlign:"center",headerSort: false,formatter:"tickCross", formatterParams:{allowEmpty:true,allowTruthy: false}}
if (staffperiodweeks.weekdata && staffperiodweeks.weekdata[data[0].weekstart]) {return staffperiodweeks.weekdata[data[0].weekstart].periodtrackdiff;}
return "";
},
+ setweektrackdiff: function(values, data, calcParams){
+ if (staffperiodweeks.weekdata && staffperiodweeks.weekdata[data[0].weekstart]) {return staffperiodweeks.weekdata[data[0].weekstart].trackeddiff;}
+ return "";
+ },
setavgweekhours: function(values, data, calcParams){
if (staffperiodweeks.weekdata && staffperiodweeks.weekdata[data[0].weekstart]) {return staffperiodweeks.weekdata[data[0].weekstart].avgtotalhours;}
return "";
// document.getElementById("vacextracomment").value='';
// document.getElementById("recupcomment").value='';
// document.getElementById("partunempcomment").value='';
- console.log("CDAY",staffperiodweeks.currentday);
+ //("CDAY",staffperiodweeks.currentday);
dataform.fillformbydataclass2("staffreportperioddays",staffperiodweeks.choices,staffperiodweeks.currentday);
document.getElementById("display_date").innerHTML=moment(staffperiodweeks.currentday.daydate).format("dddd , DD.MM.YYYY");
//document.getElementById("display_staffname").innerHTML=selrp[0].staffname;
delete wpdata.staffreportperioddays_dayhours;
wpdata["fn"] ="saveform";wpdata["table"]="staffreportperioddays";
wpdata["schemata"] = schemata;
- console.log(wpdata);
+ //console.log(wpdata);
showdataloaddlg('','<div class="xxlarge">{{ lbl.waitmsg }}</div>');
postData("db.php",wpdata).then(data => {
let sel = staffperiodweeks.tbl.getSelectedData();
}
}
flds["timetrackdata"]=trdata;
- console.log(trdata);
+ //console.log(trdata);
postData("db.php",flds).then(data => {
//staffperiodweeks.gettbldata();
//document.getElementById('dlg_stafftimetracker').style.display='none';
updateWeekHours: function(){
let selrp = staffperiodweeks.parenttbl.getSelectedData();
postData("db.php",{"fn":"update_staff_in_period","schemata":schemata,"id_period":selrp[0].id_reportperiod,"id_staff":selrp[0].id_staff}).then( data => {
- console.log(data);
+ //console.log(data);
//staffperiodweeks.gettbldata();
staffperiodweeks.tblfooter.setData([data.result["0"]]);
dataform.formsaved({});
checkdaytime: function(obj){
if (obj){
timecalc.validateTime(obj);
- console.log("checkdaytime",obj);
+ //console.log("checkdaytime",obj);
} else {
- console.log("noobj");
+ //console.log("noobj");
}
let wktime = 0;
edittimetracker: function(){
staffperiodweeks.inittimetracktable();
let sel = staffperiodweeks.tbl.getSelectedData();
- if (sel.length > 0 && sel[0].daydate < staffperiodweeks.today){
+ if (sel.length >= 0 && sel[0].daydate <= staffperiodweeks.today){
document.getElementById("btn_ttadd").style.display ="block";
document.getElementById("btn_ttremove").style.display ="block";
staffperiodweeks.selectedid = sel[0].id;
values.forEach(function(value){
calc += timecalc.TimeToMinutes(value);
});
- if ((dhrs > 360) && (calc > 30) && (pps == false)){
+ if ((calc >= 360) && (pps == false)){
let tpsval = '00:30';
let calcwp = calc-30;
if (tps > 0){
}
return cell.getValue();
}
+
+// let tooltipworkhours = function(cell){
+// //cell - cell component
+
+// //function should return a string for the tooltip of false to hide the tooltip
+// return cell._cell.row.data.dspworkdata + "<br/>Pause:<br/>" + cell._cell.row.data.dsppausedata; //return cells "field - value";
+// }
<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.paste(); return false;"><span class="icon icon-paste" id="spwpasteval"></span>{{ lbl.paste }}</button>
<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.clean(); return false;"><span class="icon icon-erase"></span>{{ lbl.clean }}</button>
<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.replacedlg(); return false;"><span class="icon icon-replace"></span>{{ lbl.changetemplate }}</button>
-<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.viewonlyweeks(); return false;"><span class="icon icon-shrink"></span>{{ lbl.viewonlyweeks }}</button>
-<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.viewdays(); return false;"><span class="icon icon-expand"></span>{{ lbl.viewdays }}</button>
+<!-- <button class="bar-item toolbarbtn right" onclick="staffperiodweeks.viewonlyweeks(); return false;"><span class="icon icon-shrink"></span>{{ lbl.viewonlyweeks }}</button> -->
+<!-- <button class="bar-item toolbarbtn right" onclick="staffperiodweeks.viewdays(); return false;"><span class="icon icon-expand"></span>{{ lbl.viewdays }}</button> -->
<span>
let sel = [];\r
if (profile.reftbl){\r
sel =profile.reftbl.getSelectedData();\r
- console.log("has reftbl!");\r
+ //console.log("has reftbl!");\r
} else {\r
sel.push({id:"{{ session.id }}"});\r
- console.log("set own profile pwd!");\r
+ //console.log("set own profile pwd!");\r
}\r
if (sel[0] && valp==true){\r
postData("db.php",{"fn":"savenewpwd","pwd":document.getElementById("newpwd1").value,"iduser":sel[0].id}).then(data => {\r
<select class="select data_staff" id="timetrackers" data-selected="" data-column="timetrackers" data-table="staff" data-id="" multiple value="" name="staff_timetrackers"></select>
</div>
</div>
+ <div class="row">
+ <div class="half">
+ <div class="container">
+ <div class="cell" style="width: 78px;">
+ <label for="staff_timetrackers" class="label"> </label>
+ <div>{{lbl.monday}}</div>
+ </div>
+ <div class="cell" style="width: 86px;">
+ <label for="staff_timetrackers" class="label">Min</label>
+ <input class="timefield data_staff" data-column="mon_mintime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="mon_mintime" name="staff_mon_mintime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('mon_mintime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ <div class="cell" style="width: 86px;">
+ <label for="staff_timetrackers" class="label">Max</label>
+ <input class="timefield data_staff" data-column="mon_maxtime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="mon_maxtime" name="staff_mon_maxtime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('mon_maxtime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ </div>
+ <div class="container">
+ <div class="cell" style="width: 78px;">
+ <div>{{lbl.tuesday}}</div>
+ </div>
+ <div class="cell" style="width: 86px;">
+
+ <input class="timefield data_staff" data-column="tue_mintime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="tue_mintime" name="staff_tue_mintime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('tue_mintime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ <div class="cell" style="width: 86px;">
+
+ <input class="timefield data_staff" data-column="tue_maxtime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="tue_maxtime" name="staff_tue_maxtime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('tue_maxtime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ </div>
+ <div class="container">
+ <div class="cell" style="width: 78px;">
+
+ <div>{{lbl.wednesday}}</div>
+ </div>
+ <div class="cell" style="width: 86px;">
+
+ <input class="timefield data_staff" data-column="wed_mintime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="wed_mintime" name="staff_wed_mintime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('wed_mintime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ <div class="cell" style="width: 86px;">
+
+ <input class="timefield data_staff" data-column="wed_maxtime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="wed_maxtime" name="staff_wed_maxtime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('wed_maxtime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ </div>
+ <div class="container">
+ <div class="cell" style="width: 78px;">
+
+ <div>{{lbl.thursday}}</div>
+ </div>
+ <div class="cell" style="width: 86px;">
+
+ <input class="timefield data_staff" data-column="thu_mintime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="thu_mintime" name="staff_thu_mintime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('thu_mintime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ <div class="cell" style="width: 86px;">
+
+ <input class="timefield data_staff" data-column="thu_maxtime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="thu_maxtime" name="staff_thu_maxtime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('thu_maxtime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ </div>
+ <div class="container">
+ <div class="cell" style="width: 78px;">
+
+ <div>{{lbl.friday}}</div>
+ </div>
+ <div class="cell" style="width: 86px;">
+
+ <input class="timefield data_staff" data-column="fri_mintime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="fri_mintime" name="staff_fri_mintime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('fri_mintime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ <div class="cell" style="width: 86px;">
+
+ <input class="timefield data_staff" data-column="fri_maxtime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="fri_maxtime" name="staff_fri_maxtime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('fri_maxtime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ </div>
+ </div>
+ <div class="half">
+ <div class="container">
+ <div class="cell" style="width: 78px;">
+ <label for="staff_timetrackers" class="label"> </label>
+ <div>{{lbl.saturday}}</div>
+ </div>
+ <div class="cell" style="width: 86px;">
+ <label for="staff_timetrackers" class="label">Min</label>
+ <input class="timefield data_staff" data-column="sat_mintime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="sat_mintime" name="staff_sat_mintime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('sat_mintime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ <div class="cell" style="width: 86px;">
+ <label for="staff_timetrackers" class="label">Max</label>
+ <input class="timefield data_staff" data-column="sat_maxtime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="sat_maxtime" name="staff_sat_maxtime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('sat_maxtime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ </div>
+ <div class="container">
+ <div class="cell" style="width: 78px;">
+
+ <div>{{lbl.sunday}}</div>
+ </div>
+ <div class="cell" style="width: 86px;">
+
+ <input class="timefield data_staff" data-column="sun_mintime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="sun_mintime" name="staff_sun_mintime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('sun_mintime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ <div class="cell" style="width: 86px;">
+
+ <input class="timefield data_staff" data-column="sun_maxtime" data-id="" style="display: inline;float: left;" placeholder="00:00" data-table="staff" id="sun_maxtime" name="staff_sun_maxtime" onblur="timecalc.validateTime(this);dataform.savefield(this,null);return false;" type="text" value="">
+ <a class="inlinebtn" href="javascript:dataform.cleanfield('sun_maxtime');" ><span class="icon icon-remove" style="font-size: 10px;"></span></a>
+ </div>
+ </div>
+ </div>
+ </div>
</div>
</div>
</div>
select: "#timetrackers",
showSearch: false,
afterClose: function(){
- dataform.savefielddata(document.getElementById('timetrackers'),staff.choices["timetrackers"].selected(),null);
+ var ttd = staff.choices["timetrackers"].selected()
+ //var attd = ttd.split(",");
+ //console.log(ttd);
+ dataform.savefielddata(document.getElementById('timetrackers'),JSON.stringify(ttd),null);
}
});
staff.choices["timetrackerlang"] = new SlimSelect({
},
edit: function(){
let udata = staff.tbl.getSelectedData();
- console.log("Staff Details",udata[0]);
+ //console.log("Staff Details",udata[0]);
if (udata[0]) {
//console.log("selstaff",udata[0]);
staff.current_id = udata[0].id;
dataform.cleanform2("staff",staff.choices);
postData("db.php",{ "get":"staff","schemata":schemata,"id":udata[0].id}).then(data => {
- console.log("staffdata",data.result.data);
+ //console.log("staffdata",data.result.data);
if (data.result.data["istimetrackenabled"] == true){
- data.result.data["istimetrackenabled"] = "1"
+ data.result.data["istimetrackenabled"] = "1";
}
dataform.fillformbydataclass2("staff",staff.choices,data.result.data,'dataform.savefield(this,null);');
staffcontract.gettbldata();
cleanfingerprints: function(){
showdataloaddlg('','<div class="xxlarge">{{ lbl.waitmsg }}</div>');
postData('db.php',{"cl":"TimeTracker","fn":"send_cleanfp","schema":schemata,"id_staff":staff.current_id}).then(data => {
- console.log("Clean returns",data);
+ //console.log("Clean returns",data);
closedataloaddlg();
}).catch(err => {
closedataloaddlg();
- console.log("Clean err returns",data);
+ //console.log("Clean err returns",data);
});
},
sendtotracker: function(){
showdataloaddlg('','<div class="xxlarge">{{ lbl.waitmsg }}</div>');
postData('db.php',{"cl":"TimeTracker","fn":"send_setstaff","schema":schemata,"id_staff":staff.current_id}).then(data => {
- console.log("SetStaff returns",data);
+ //console.log("SetStaff returns",data);
closedataloaddlg();
}).catch(err => {
closedataloaddlg();
- console.log("SetStaff err returns",data);
+ //console.log("SetStaff err returns",data);
});
//alert("Noch nicht aktiviert!\nPas activé pour l'instant!")
}
{title: '<span style="font-size: 9pt;">{{ lbl.statementtransfered2 }}</span>', field:"transferedhours",hozAlign:"right",headerSort: false},
{title: '<span style="font-size: 9pt;">{{ lbl.supphourspayed2 }}</span>', field:"payedhours",hozAlign:"right",headerSort: false,headerVertical:true} ,
{title: '<span style="font-size: 9pt;">{{ lbl.finalstatementpot }}</span>', field:"hoursdiff",headerSort: false,hozAlign:"right"},
+ /*{% if cmpcfg.sector == "HORESCA" %} */
{title: '<span style="font-size: 9pt;">{{ lbl.supp44h2 }}</span>', field:"suppvacancy44hours",hozAlign:"right",headerSort: false,headerVertical:true},
{title: '<span style="font-size: 9pt;">{{ lbl.suppsunwork }}</span>', field:"suppvacancysunwork",hozAlign:"right",headerSort: false,headerVertical:true},
+ /*{% endif %}*/
{title: '<span style="font-size: 9pt;">{{ lbl.avgweek_short }}</span>', field:"avgtotalweekhours",hozAlign:"right",headerSort: false,formatter:periodAVGFormatter},
- {title: '<span style="font-size: 9pt;">{{ lbl.validated }}</span>', field:"isvalidated",hozAlign:"center",headerSort: false,formatter:"tickCross", formatterParams:{allowEmpty:true,allowTruthy: false}}
+ {title: '<span style="font-size: 9pt;">{{ lbl.validated }}</span>', field:"isvalidated",hozAlign:"center",headerSort: false,formatter:"tickCross", formatterParams:{allowEmpty:true,allowTruthy: false}},
+ /*{% if session.usergroup == "admin" %}*/
+ {title: '<span style="font-size: 9pt;">{{ lbl.maxdays }}</span>',width: 60, field:"maxdays",hozAlign:"center",headerSort: false}
+ /*{% endif %}*/
]
});
},
flds["fn"] ="saveform";flds["table"]="staffvacancyyear";
flds["schemata"]=schemata;
- console.log("staffvacancyyear",flds);
+ //console.log("staffvacancyyear",flds);
postData("db.php",flds).then(data => {
staffvacancy.gettblyeardata();
document.getElementById('dlg_staffvacancyyear').style.display='none';
// workplans.edit();\r
// },\r
rowContext:function(e, row){e.preventDefault(); },\r
- // groupBy:["weeknum"],\r
- // groupStartOpen:[true],\r
- // groupClosedShowCalcs:true,\r
- // groupHeader:[\r
- // function(value, count, data){ \r
- // return "Semaine " + value;\r
- // },\r
- // ],\r
+ groupBy:["groupname"],\r
+ groupStartOpen:[true],\r
+ groupHeader:[function(value, count, data){ return ((value)?value:"");}],\r
+ cellDblClick:function(e, cell){\r
+ //e - the click event object\r
+ //cell - cell component\r
+ },\r
+ //groupClosedShowCalcs:true,\r
+ // groupHeader:[\r
+ // function(value, count, data){ \r
+ // value;\r
+ // },\r
+ // ],\r
columns: [\r
{ title: "{{ lbl.staffname }}",field: "staffname",headerFilter:"input"},\r
- { title: "{{ lbl.monday }}<br/><span id=\"mondate\">DD.MM.YYYY</span>",field: "montime"},\r
- { title: "{{ lbl.tuesday }}<br/><span id=\"tuedate\">DD.MM.YYYY</span>",field: "tuetime"},\r
- { title: "{{ lbl.wednesday }}<br/><span id=\"weddate\">DD.MM.YYYY</span>",field: "wedtime" }, \r
- { title: "{{ lbl.thursday }}<br/><span id=\"thudate\">DD.MM.YYYY</span>",field: "thutime"}, \r
- { title: "{{ lbl.friday }}<br/><span id=\"fridate\">DD.MM.YYYY</span>",field: "fritime" }, \r
- { title: "{{ lbl.saturday }}<br/><span id=\"satdate\">DD.MM.YYYY</span>",field: "sattime" }, \r
- { title: "{{ lbl.sunday }}<br/><span id=\"sundate\">DD.MM.YYYY</span>",field: "suntime" },\r
- { title: "{{ lbl.weektotal }}",field: "weeksum"},\r
- { title: "{{ lbl.monthdiff }}",field: "monthdiff"},\r
- { title: "{{ lbl.perioddiff }}",field: "perioddiff"}\r
+ { title: "<span id=\"mondate\">DD.MM.YYYY</span>",\r
+ columns: [\r
+ {title:'<span class="icon icon-timeentry"></span>',field:"monentry",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-timeexit"></span>',field:"monexit",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-sum"></span>',field:"montime",headerSort: false,width:60,formatter:boldFormatter},\r
+ ]\r
+ },\r
+ { title: "<span id=\"tuedate\">DD.MM.YYYY</span>",\r
+ columns: [\r
+ {title:'<span class="icon icon-timeentry"></span>',field:"tueentry",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-timeexit"></span>',field:"tueexit",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-sum"></span>',field:"tuetime",headerSort: false,width:60,formatter:boldFormatter},\r
+ ]\r
+ },\r
+ { title: "<span id=\"weddate\">DD.MM.YYYY</span>",\r
+ columns: [\r
+ {title:'<span class="icon icon-timeentry"></span>',field:"wedentry",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-timeexit"></span>',field:"wedexit",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-sum"></span>',field:"wedtime",headerSort: false,width:60,formatter:boldFormatter},\r
+ ]\r
+ }, \r
+ { title: "<span id=\"thudate\">DD.MM.YYYY</span>",\r
+ columns: [\r
+ {title:'<span class="icon icon-timeentry"></span>',field:"thuentry",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-timeexit"></span>',field:"thuexit",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-sum"></span>',field:"thutime",headerSort: false,width:60,formatter:boldFormatter},\r
+ ]\r
+ }, \r
+ { title: "<span id=\"fridate\">DD.MM.YYYY</span>",\r
+ columns: [\r
+ {title:'<span class="icon icon-timeentry"></span>',field:"frientry",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-timeexit"></span>',field:"friexit",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-sum"></span>',field:"fritime",headerSort: false,width:60,formatter:boldFormatter},\r
+ ]\r
+ }, \r
+ { title: "<span id=\"satdate\">DD.MM.YYYY</span>",\r
+ columns: [\r
+ {title:'<span class="icon icon-timeentry"></span>',field:"satentry",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-timeexit"></span>',field:"satexit",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-sum"></span>',field:"sattime",headerSort: false,width:60,formatter:boldFormatter},\r
+ ]\r
+ }, \r
+ { title: "<span id=\"sundate\">DD.MM.YYYY</span>",\r
+ columns: [\r
+ {title:'<span class="icon icon-timeentry"></span>',field:"sunentry",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-timeexit"></span>',field:"sunexit",headerSort: false,width:60},\r
+ {title:'<span class="icon icon-sum"></span>',field:"suntime",headerSort: false,width:60,formatter:boldFormatter},\r
+ ]\r
+ },\r
+ { title: "{{ lbl.weektotal }}",field: "weeksum",headerSort: false,width:100,formatter:boldFormatter},\r
+ // { title: "{{ lbl.monthdiff }}",field: "monthdiff",headerSort: false,width:100},\r
+ // { title: "{{ lbl.perioddiff }}",field: "perioddiff",headerSort: false,width:100}\r
]\r
});\r
document.getElementById('weekselect')._flatpickr.setDate(moment().format('YYYY-MM-DD'));\r
let wsobj = document.getElementById('weekselect').value;\r
postData("db.php",{"cl":"TimeTracker","fn":"getWeekStamps","schema":schemata,"date":wsobj}).then(data => {\r
let aa = ["mon","tue","wed","thu","fri","sat","sun"];\r
- let mondate = moment(wsobj).startOf('week').format('YYYY-MM-DD');\r
+ let mondate = moment(wsobj).startOf('week').format('ddd, YYYY-MM-DD');\r
for (var d=0;d<aa.length;d++){\r
- upddate = moment(mondate).add(d,'days').format('DD.MM.YYYY');\r
+ upddate = moment(mondate).add(d,'days').format('ddd DD.MM.YYYY');\r
document.getElementById(aa[d] + "date").innerHTML=upddate;\r
}\r
- console.log(data);\r
+ //console.log(data);\r
timeclock.tbl.setData(data.result.data);\r
});\r
},\r
\r
let boldFormatter = function(cell, formatterParams){\r
cell.getElement().style.fontWeight="bold";\r
+ cell.getElement().style.borderRight="2px solid black";\r
return cell.getValue();\r
-};
\ No newline at end of file
+};\r
+\r
wps["id"] = wpdatanew["ident_id"];
delete wpdatanew["ident_id"];
wps["workplanday"] = wpdatanew;
- console.log(wps);
+ //console.log(wps);
postData("db.php",wps).then(data => {
document.getElementById('dlg_workplanday').style.display='none';
workplans.gettbldata();
ssh -p ${SSHPORT} ${SSHUSER}@${SSHHOST} 'cd '${REMOTEAPPFOLDER}' && find . -type f -printf "%p|%s\n" | sort' > ${TMPDIR}/sourcefiles.remote.txt
echo "To update:"
-UPDFILES=`diff -y -W 200 ${TMPDIR}/sourcefiles.local.txt ${TMPDIR}/sourcefiles.remote.txt | grep " |" | awk '{ print $1 }' | cut -d"|" -f 1 | grep -v ".htaccess" | grep -v "dksconfig" | grep -v ".git" | grep -v "/media/"`
+UPDFILES=`diff -y -W 200 ${TMPDIR}/sourcefiles.local.txt ${TMPDIR}/sourcefiles.remote.txt | grep " |" | awk '{ print $1 }' | cut -d"|" -f 1 | grep -v ".htaccess" | grep -v "/config.php" | grep -v ".git" | grep -v "/media/"`
echo ${UPDFILES}
echo ""
echo "new files:"
-INSFILES=`diff -y -W 200 ${TMPDIR}/sourcefiles.local.txt ${TMPDIR}/sourcefiles.remote.txt | grep " <" | awk '{ print $1 }' | cut -d"|" -f 1 | grep -v ".htaccess" | grep -v "dksconfig" | grep -v ".git" | grep -v "/media/"`
+INSFILES=`diff -y -W 200 ${TMPDIR}/sourcefiles.local.txt ${TMPDIR}/sourcefiles.remote.txt | grep " <" | awk '{ print $1 }' | cut -d"|" -f 1 | grep -v ".htaccess" | grep -v "/config.php" | grep -v ".git" | grep -v "/media/"`
echo ${INSFILES}
echo ""
echo "only online or OLD files:"