diff --git a/COPYRIGHT b/COPYRIGHT index e6525d5ccb2..a94d93ede38 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -68,7 +68,7 @@ jQuery jqueryFileTree 1.0.1 GPL and MIT License Yes jQuery jquerytreeview 1.4.1 MIT License Yes JS library for filetree jQuery TableDnD 0.6 GPL and MIT License Yes JS library plugin TableDnD (to reorder table rows) jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker -jsGanttImproved 2.7.3 BSD License Yes JS library (to build Gantt reports) +jsGanttImproved 2.8.10 BSD License Yes JS library (to build Gantt reports) SwaggerUI 2.2.10 GPL-2+ Yes JS library to offer the REST API explorer Image libraries: diff --git a/dev/dolibarr_changes.txt b/dev/dolibarr_changes.txt index 58723960150..3f62333d5e8 100644 --- a/dev/dolibarr_changes.txt +++ b/dev/dolibarr_changes.txt @@ -31,7 +31,7 @@ Replace: d.items&& With d&&d.items&& - + ESCPOS: ------- @@ -55,8 +55,8 @@ NUSOAP: * Line 1257 of file nusoap.php. Add: libxml_disable_entity_loader(true); // Avoid load of external entities (security problem). Required only for libxml < 2. - - + + * Line 4346 of file nusoap.php $rev = array(); @@ -128,13 +128,13 @@ with if (!@TCPDF_STATIC::file_exists($file)) { // DOL CHANGE If we keep this, the image is not visible on pages after the first one. //var_dump($file.' '.(!@TCPDF_STATIC::file_exists($file))); - //return false; + //return false; $tfile = str_replace(' ', '%20', $file); if (@TCPDF_STATIC::file_exists($tfile)) { $file = $tfile; } } - + * Replace in tcpdf.php: if (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) { with @@ -174,7 +174,7 @@ with imagesetpixel($imgalpha, $xpx, $ypx, $alpha); into imagesetpixel($imgalpha, $xpx, $ypx, (int) $alpha); - + * Removed useless directories ("examples", "tools") * Optionally, removed all fonts except @@ -243,7 +243,7 @@ with: with foreach ($value[1] as $k => $v) { -* Fix by replacing +* Fix by replacing if ($res[0] == PDF_TYPE_OBJECT) with if (isset($res[0]) && $res[0] == PDF_TYPE_OBJECT) @@ -253,23 +253,16 @@ with JSGANTT: -------- * Replace in function JSGantt.taskLink - var OpenWindow=window.open(pRef, "newwin", "height="+vHeight+",width="+vWidth); + window.open(pRef, 'newwin', 'height=' + vHeight + ',width=' + vWidth); with - // LDR To open in same window + // @CHANGE DOLI To open in same window //var OpenWindow=window.open(pRef, "newwin", "height="+vHeight+",width="+vWidth); window.location.href=pRef -* Replace - vTmpDiv=this.newNode(vTmpCell, 'div', null, null, vTaskList[i].getResource()); -with - var vTmpNode=this.newNode(vTmpCell, 'div', null, ''); - vTmpNode=this.newNode(vTmpNode, 'a', null, '', vLangs[vLang]['moreinfo']); - vTmpNode.setAttribute('href',vTaskList[i].getLink()); - * Replace '% Comp.' to have a smaller text column header - 'comp':'% Comp.' + 'comp': '%...' with - 'comp':'%' + 'comp': '%' @@ -307,19 +300,19 @@ RESTLER: // @CHANGE LDR if (!is_string($haystack)) return false; -* Replace +* Replace $loaders = array_unique(static::$rogueLoaders); - - with - + + with + $loaders = array_unique(static::$rogueLoaders, SORT_REGULAR); - + * Replace CommentParser.php line 423 elseif (count($value) && is_numeric($value[0])) - + with - + elseif (count($value) && isset($value[0]) && is_numeric($value[0])) * Add CommentParser.php line 406 & 407 to remove a warning on api request in php 8.1 @@ -417,5 +410,3 @@ Edit CSS to restore line removed between 4.0.5 and 4.0.6. It generates this bug: .select2-hidden-accessible { margin: -10000px !important; /* line to restore */ } - - diff --git a/dev/translation/dynamic_translation_keys.lst b/dev/translation/dynamic_translation_keys.lst index 47ab2e14a79..2dcd99eafbc 100644 --- a/dev/translation/dynamic_translation_keys.lst +++ b/dev/translation/dynamic_translation_keys.lst @@ -2650,9 +2650,7 @@ ProductsOrServicesTranslations ProductsPipeServices ProductsPricePerCustomer ProfId10 -ProfId10FR ProfId10Short -ProfId10ShortFR ProfId1ShortCM ProfId1ShortFR ProfId2ShortCM @@ -2663,14 +2661,15 @@ ProfId4ShortCM ProfId4ShortFR ProfId5ShortCM ProfId5ShortFR -ProfId6ShortCM -ProfId6ShortFR +ProfId1Short +ProfId2Short +ProfId3Short +ProfId4Short +ProfId5Short +ProfId6Short ProfId7Short -ProfId7ShortFR ProfId8Short -ProfId8ShortFR ProfId9Short -ProfId9ShortFR ProformaBill ProjectCreatedByEmailCollector ProjectHasNoCategory diff --git a/dev/translation/sanity_check_trans_missing_unused.sh b/dev/translation/sanity_check_trans_missing_unused.sh index 459f59117a5..b003127d5be 100755 --- a/dev/translation/sanity_check_trans_missing_unused.sh +++ b/dev/translation/sanity_check_trans_missing_unused.sh @@ -129,7 +129,7 @@ if [ -s "${MISSING_AND_UNUSED_FILE}" ] ; then echo "## :warning: Unused Translations may match ->trans(\$key.'SomeString')." echo "## You can add such dynamic keys to $(basename "$DYNAMIC_KEYS_SRC_FILE")" echo "## so that they are ignored for this report." - echo "## :warning: Unused Translations may be commented in the code" + echo "## :warning: Unused Translations may also be commented in the code" echo "## You can add such 'disabled' keys to $(basename "$EXCLUDE_KEYS_SRC_FILE")" echo "## so that they are ignored for this report." echo diff --git a/htdocs/accountancy/admin/subaccount.php b/htdocs/accountancy/admin/subaccount.php index 8c9a493a258..5e30c3d0a50 100644 --- a/htdocs/accountancy/admin/subaccount.php +++ b/htdocs/accountancy/admin/subaccount.php @@ -44,7 +44,7 @@ $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'ac $search_subaccount = GETPOST('search_subaccount', 'alpha'); $search_label = GETPOST('search_label', 'alpha'); -$search_type = GETPOSTINT('search_type'); +$search_type = GETPOST('search_type', 'intcomma'); // Security check if ($user->socid > 0) { diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index f07961486c6..1a5a68fc085 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -652,7 +652,7 @@ print ''; if ($langs->transcountry("ProfId1", $mysoc->country_code) != '-') { print ''; if (!empty($mysoc->country_code)) { - print ''; + print ''; } else { print $countrynotdefined; } @@ -663,7 +663,7 @@ if ($langs->transcountry("ProfId1", $mysoc->country_code) != '-') { if ($langs->transcountry("ProfId2", $mysoc->country_code) != '-') { print ''; if (!empty($mysoc->country_code)) { - print ''; + print ''; } else { print $countrynotdefined; } @@ -674,7 +674,7 @@ if ($langs->transcountry("ProfId2", $mysoc->country_code) != '-') { if ($langs->transcountry("ProfId3", $mysoc->country_code) != '-') { print ''; if (!empty($mysoc->country_code)) { - print ''; + print ''; } else { print $countrynotdefined; } @@ -685,7 +685,7 @@ if ($langs->transcountry("ProfId3", $mysoc->country_code) != '-') { if ($langs->transcountry("ProfId4", $mysoc->country_code) != '-') { print ''; if (!empty($mysoc->country_code)) { - print ''; + print ''; } else { print $countrynotdefined; } @@ -696,7 +696,7 @@ if ($langs->transcountry("ProfId4", $mysoc->country_code) != '-') { if ($langs->transcountry("ProfId5", $mysoc->country_code) != '-') { print ''; if (!empty($mysoc->country_code)) { - print ''; + print ''; } else { print $countrynotdefined; } @@ -707,7 +707,7 @@ if ($langs->transcountry("ProfId5", $mysoc->country_code) != '-') { if ($langs->transcountry("ProfId6", $mysoc->country_code) != '-') { print ''; if (!empty($mysoc->country_code)) { - print ''; + print ''; } else { print $countrynotdefined; } @@ -716,9 +716,9 @@ if ($langs->transcountry("ProfId6", $mysoc->country_code) != '-') { // ProfId7 if ($langs->transcountry("ProfId7", $mysoc->country_code) != '-') { - print ''; + print ''; if (!empty($mysoc->country_code)) { - print ''; + print ''; } else { print $countrynotdefined; } @@ -727,9 +727,9 @@ if ($langs->transcountry("ProfId7", $mysoc->country_code) != '-') { // ProfId8 if ($langs->transcountry("ProfId8", $mysoc->country_code) != '-') { - print ''; + print ''; if (!empty($mysoc->country_code)) { - print ''; + print ''; } else { print $countrynotdefined; } @@ -738,9 +738,9 @@ if ($langs->transcountry("ProfId8", $mysoc->country_code) != '-') { // ProfId9 if ($langs->transcountry("ProfId9", $mysoc->country_code) != '-') { - print ''; + print ''; if (!empty($mysoc->country_code)) { - print ''; + print ''; } else { print $countrynotdefined; } @@ -749,9 +749,9 @@ if ($langs->transcountry("ProfId9", $mysoc->country_code) != '-') { // ProfId10 if ($langs->transcountry("ProfId10", $mysoc->country_code) != '-') { - print ''; + print ''; if (!empty($mysoc->country_code)) { - print ''; + print ''; } else { print $countrynotdefined; } diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php index 86f850f7cdf..b0f25e98872 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -1271,7 +1271,7 @@ class FormOther $selectboxlist .= ''; $selectboxlist .= ''; $selectboxlist .= ''; - $selectboxlist .= Form::selectarray('boxcombo', $arrayboxtoactivatelabel, -1, $langs->trans("ChooseBoxToAdd").'...', 0, 0, '', 0, 0, 0, 'ASC', 'maxwidth150onsmartphone hideonprint', 0, 'hidden selected', 0, 0); + $selectboxlist .= Form::selectarray('boxcombo', $arrayboxtoactivatelabel, -1, $langs->trans("ChooseBoxToAdd").'...', 0, 0, '', 0, 0, 0, 'ASC', 'maxwidth300 hideonprint', 0, 'hidden selected', 0, 0); if (empty($conf->use_javascript_ajax)) { $selectboxlist .= ' '; } diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index d150e866f02..3403a95d269 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -7648,7 +7648,11 @@ function dol_string_onlythesehtmlattributes($stringtoclean, $allowed_attributes // Warning: loadHTML does not support HTML5 on old libxml versions. $dom = new DOMDocument('', 'UTF-8'); + // If $stringtoclean is wrong, it will generates warnings. So we disable warnings and restore them later. + $savwarning = error_reporting(); + error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE); $dom->loadHTML($stringtoclean, LIBXML_ERR_NONE | LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD | LIBXML_NONET | LIBXML_NOWARNING | LIBXML_NOXMLDECL); + error_reporting($savwarning); if ($dom instanceof DOMDocument) { for ($els = $dom->getElementsByTagname('*'), $i = $els->length - 1; $i >= 0; $i--) { diff --git a/htdocs/core/modules/societe/mod_codecompta_digitaria.php b/htdocs/core/modules/societe/mod_codecompta_digitaria.php index fc0e9f7ebb4..ff7caf85e5b 100644 --- a/htdocs/core/modules/societe/mod_codecompta_digitaria.php +++ b/htdocs/core/modules/societe/mod_codecompta_digitaria.php @@ -123,7 +123,7 @@ class mod_codecompta_digitaria extends ModeleAccountancyCode $texte = str_replace(array('{s1}', '{s2}', '{s3}', '{s4}'), array($s1, $s2, $s3, $s4), $texte); $texte .= "
\n"; // Remove special char if COMPANY_DIGITARIA_REMOVE_SPECIAL is set to 1 or not set (default) - if (!isset($conf->global->COMPANY_DIGITARIA_REMOVE_SPECIAL) || !empty($conf->global->$conf->global->COMPANY_DIGITARIA_REMOVE_SPECIAL)) { + if (!isset($conf->global->COMPANY_DIGITARIA_REMOVE_SPECIAL) || !empty($conf->global->COMPANY_DIGITARIA_REMOVE_SPECIAL)) { $texte .= $langs->trans('RemoveSpecialChars').' = '.yn(1)."
\n"; } // Apply a regex replacement pattern on code if COMPANY_DIGITARIA_CLEAN_REGEX is set. Value must be a regex with parenthesis. The part into parenthesis is kept, the rest removed. diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 6cc403e87d5..ccabebed79f 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -103,7 +103,7 @@ if (!$sortfield) { $sall = trim((GETPOST('search_all', 'alphanohtml') != '') ? GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); $search_ref = GETPOST('search_ref', 'alpha'); -$search_user = GETPOSTINT('search_user'); +$search_user = GETPOST('search_user', 'intcomma'); $search_amount_ht = GETPOST('search_amount_ht', 'alpha'); $search_amount_vat = GETPOST('search_amount_vat', 'alpha'); $search_amount_ttc = GETPOST('search_amount_ttc', 'alpha'); diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index f9ec2a67379..9de6922119f 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -451,7 +451,7 @@ if ($action == 'confirm_deleteline' && $confirm == 'yes' && $permissiontoreceive } // Update a dispatched line -if ($action == 'updateline' && $permissiontoreceive) { +if ($action == 'updateline' && $permissiontoreceive && empty($cancel)) { $db->begin(); $error = 0; diff --git a/htdocs/includes/jsgantt/jsgantt.css b/htdocs/includes/jsgantt/jsgantt.css index f5c2d2971f8..3c9121a3c13 100644 --- a/htdocs/includes/jsgantt/jsgantt.css +++ b/htdocs/includes/jsgantt/jsgantt.css @@ -2,7 +2,7 @@ div.gantt { font-family: tahoma, arial, verdana, Sans-serif; - font-size: 10px; + font-size: 12px; color: #656565; } @@ -31,10 +31,9 @@ div.gantt { font-size: 12px; border: #efefef 1px solid; text-align: center; - cursor: default + cursor: default; } - .gtasklist { height: 19px; min-width: 5px; @@ -44,7 +43,7 @@ div.gantt { border-right: none; } -.gtasknolist-label{ +.gtasknolist-label { padding: 10px 50px; } /* all three width values set just to make sure - helps resizing code */ @@ -56,7 +55,7 @@ div.gantt { .gminorheading { background-color: #ffffff; font-weight: bold; - font-size: 9px; + font-size: 11px; white-space: nowrap; } @@ -154,9 +153,9 @@ td.gspanning { .gtaskname { min-width: 170px; - max-width: 170px; - width: 170px; - font-size: 9px; + max-width: 220px; + width: 220px; + font-size: 12px; border-left: none; } @@ -246,6 +245,11 @@ span.gfoldercollapse { background-color: #fffde5; } +.gitemdifferent td { + background-image: none; + background-color: rgba(0, 0, 0, 0.05); +} + /* task bar caption text styles */ .gmilecaption, @@ -487,7 +491,7 @@ span.gfoldercollapse { div.gtaskbarcontainer { z-index: 1; position: absolute; - top: 0px + top: 0px; } .textbar { @@ -510,7 +514,7 @@ div.gtaskbarcontainer { font-size: 10px; display: block; background: #ffffff; - color: #656565 + color: #656565; } .gTaskInfo { @@ -652,7 +656,7 @@ div.gtaskbarcontainer { /* Old Internet Explorer version hacks */ .gantt { - _height: 100% + _height: 100%; } /* otherwise the chart disappears! */ @@ -777,7 +781,6 @@ td.gspanning div { } @media print { - /* All your print styles go here */ html, .gchartgrid { @@ -787,6 +790,32 @@ td.gspanning div { .glistgrid { float: none !important; } + + /* Hide scrollbar for Chrome, Safari and Opera */ + .gchartcontainer *::-webkit-scrollbar { + display: none; + } + + /* Hide scrollbar for IE, Edge and Firefox */ + .gchartcontainer * { + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ + } + + /* Hide tool-tip */ + .JSGanttToolTip { + display: none !important; + } + + /* This is the default css, injected by the JSGantt.printChart(width,height); function --> + @page { + size: ${width}mm ${height}mm; + } + + .gchartcontainer { + width: ${width}mm; + } + <-- This will be injected by the JSGantt.printChart() function */ } /* if using setUseSingleCell(1) the following is a suggested set of CSS3 styles to recreate the table grid - won't work on old browsers @@ -812,16 +841,21 @@ td.gspanning div { display: flex; flex-direction: column; + /* Allow resize */ + resize: horizontal; } .gmainright { overflow: hidden; - flex: auto; + flex: 1 1 auto; } .gmainleft { overflow: hidden; - flex: 0 0 50%; + flex: 0 0 20%; + min-width: 220px; + /* Allow side to grow and shrink */ + flex: 1 0 auto; } .gtasktableh tr, @@ -927,25 +961,25 @@ td.gspanning div { } table { - page-break-after: auto + page-break-after: auto; } tr { page-break-inside: avoid; - page-break-after: auto + page-break-after: auto; } td { page-break-inside: avoid; - page-break-after: auto + page-break-after: auto; } thead { - display: table-header-group + display: table-header-group; } tfoot { - display: table-footer-group + display: table-footer-group; } } @@ -966,7 +1000,7 @@ td.gspanning div { border-radius: 8px; border: 2px solid white; /* should match background, can't be transparent */ - background-color: rgba(0, 0, 0, .5); + background-color: rgba(0, 0, 0, 0.5); } .frame::-webkit-scrollbar-track { @@ -979,4 +1013,4 @@ td.gspanning div { overflow: scroll; -ms-overflow-style: scrollbar; display: block; -} \ No newline at end of file +} diff --git a/htdocs/includes/jsgantt/jsgantt.js b/htdocs/includes/jsgantt/jsgantt.js index be9a20611f2..d0ba238bb89 100644 --- a/htdocs/includes/jsgantt/jsgantt.js +++ b/htdocs/includes/jsgantt/jsgantt.js @@ -1,6 +1,7 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSGantt = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 1) vTmpDate.setDate(vTmpDate.getDate() + 1); } - else if (this.vFormat == 'hour') { + else if (this.vFormat == "hour") { for (var i = vTmpDate.getHours(); i < 24; i++) { vTmpDate.setHours(i); //works around daylight savings but may look a little odd on days where the clock goes forward if (vTmpDate <= vMaxDate) { - var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vMinorHeaderCellClass); - draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth); + var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass); + draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth); vNumCols++; } } @@ -442,18 +440,18 @@ exports.GanttChart = function (pDiv, pFormat) { } var vDateRow = vTmpRow; // Calculate size of grids : Plus 3 because 1 border left + 2 of paddings - var vTaskLeftPx = (vNumCols * (vColWidth + 3)) + 1; + var vTaskLeftPx = vNumCols * (vColWidth + 3) + 1; // Fix a small space at the end for day - if (this.vFormat === 'day') { + if (this.vFormat === "day") { vTaskLeftPx += 2; } - vTmpTab.style.width = vTaskLeftPx + 'px'; // Ensure that the headings has exactly the same width as the chart grid + vTmpTab.style.width = vTaskLeftPx + "px"; // Ensure that the headings has exactly the same width as the chart grid // const vTaskPlanLeftPx = (vNumCols * (vColWidth + 3)) + 1; var vSingleCell = false; - if (this.vUseSingleCell !== 0 && this.vUseSingleCell < (vNumCols * vNumRows)) + if (this.vUseSingleCell !== 0 && this.vUseSingleCell < vNumCols * vNumRows) vSingleCell = true; - draw_utils_1.newNode(vTmpDiv, 'div', null, 'rhscrpad', null, null, vTaskLeftPx + 1); - vTmpDiv = draw_utils_1.newNode(vRightHeader, 'div', null, 'glabelfooter'); + draw_utils_1.newNode(vTmpDiv, "div", null, "rhscrpad", null, null, vTaskLeftPx + 1); + vTmpDiv = draw_utils_1.newNode(vRightHeader, "div", null, "glabelfooter"); return { gChartLbl: gChartLbl, vTaskLeftPx: vTaskLeftPx, vSingleCell: vSingleCell, vDateRow: vDateRow, vRightHeader: vRightHeader, vNumCols: vNumCols }; }; /** @@ -463,23 +461,23 @@ exports.GanttChart = function (pDiv, pFormat) { */ this.drawCharBody = function (vTaskLeftPx, vTmpContentTabWrapper, gChartLbl, gListLbl, vMinDate, vMaxDate, vSingleCell, vNumCols, vColWidth, vDateRow) { var vRightTable = document.createDocumentFragment(); - var vTmpDiv = draw_utils_1.newNode(vRightTable, 'div', this.vDivId + 'gchartbody', 'gchartgrid gcontainercol'); + var vTmpDiv = draw_utils_1.newNode(vRightTable, "div", this.vDivId + "gchartbody", "gchartgrid gcontainercol"); this.setChartBody(vTmpDiv); - var vTmpTab = draw_utils_1.newNode(vTmpDiv, 'table', this.vDivId + 'chartTable', 'gcharttable', null, vTaskLeftPx); + var vTmpTab = draw_utils_1.newNode(vTmpDiv, "table", this.vDivId + "chartTable", "gcharttable", null, vTaskLeftPx); this.setChartTable(vTmpTab); - draw_utils_1.newNode(vTmpDiv, 'div', null, 'rhscrpad', null, null, vTaskLeftPx + 1); - var vTmpTBody = draw_utils_1.newNode(vTmpTab, 'tbody'); - var vTmpTFoot = draw_utils_1.newNode(vTmpTab, 'tfoot'); - events_1.syncScroll([vTmpContentTabWrapper, vTmpDiv], 'scrollTop'); - events_1.syncScroll([gChartLbl, vTmpDiv], 'scrollLeft'); - events_1.syncScroll([vTmpContentTabWrapper, gListLbl], 'scrollLeft'); + draw_utils_1.newNode(vTmpDiv, "div", null, "rhscrpad", null, null, vTaskLeftPx + 1); + var vTmpTBody = draw_utils_1.newNode(vTmpTab, "tbody"); + var vTmpTFoot = draw_utils_1.newNode(vTmpTab, "tfoot"); + events_1.syncScroll([vTmpContentTabWrapper, vTmpDiv], "scrollTop"); + events_1.syncScroll([gChartLbl, vTmpDiv], "scrollLeft"); + events_1.syncScroll([vTmpContentTabWrapper, gListLbl], "scrollLeft"); // Draw each row var i = 0; var j = 0; var bd; if (this.vDebug) { bd = new Date(); - console.info('before tasks loop', bd); + console.info("before tasks loop", bd); } for (i = 0; i < this.vTaskList.length; i++) { var curTaskStart = this.vTaskList[i].getStart() ? this.vTaskList[i].getStart() : this.vTaskList[i].getPlanStart(); @@ -496,31 +494,31 @@ exports.GanttChart = function (pDiv, pFormat) { vTaskPlanRightPx = general_utils_1.getOffset(curTaskPlanStart, curTaskPlanEnd, vColWidth, this.vFormat, this.vShowWeekends); } var vID = this.vTaskList[i].getID(); - var vComb = (this.vTaskList[i].getParItem() && this.vTaskList[i].getParItem().getGroup() == 2); - var vCellFormat = ''; + var vComb = this.vTaskList[i].getParItem() && this.vTaskList[i].getParItem().getGroup() == 2; + var vCellFormat = ""; var vTmpDiv_1 = null; var vTmpItem = this.vTaskList[i]; var vCaptClass = null; // set cell width only for first row because of table-layout:fixed var taskCellWidth = i === 0 ? vColWidth : null; if (this.vTaskList[i].getMile() && !vComb) { - var vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr', this.vDivId + 'childrow_' + vID, 'gmileitem gmile' + this.vFormat, null, null, null, ((this.vTaskList[i].getVisible() == 0) ? 'none' : null)); + var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, "gmileitem gmile" + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null); this.vTaskList[i].setChildRow(vTmpRow); events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow); - var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gtaskcell gtaskcellmile', null, vColWidth, null, null, null); - vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, 'div', null, 'gtaskcelldiv', '\u00A0\u00A0'); - vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'bardiv_' + vID, 'gtaskbarcontainer', null, 12, vTaskLeftPx_1 + vTaskRightPx - 6); + var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellmile", null, vColWidth, null, null, null); + vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0"); + vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, 12, vTaskLeftPx_1 + vTaskRightPx - 6); this.vTaskList[i].setBarDiv(vTmpDiv_1); - var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'taskbar_' + vID, this.vTaskList[i].getClass(), null, 12); + var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, 12); this.vTaskList[i].setTaskDiv(vTmpDiv2); if (this.vTaskList[i].getCompVal() < 100) - vTmpDiv2.appendChild(document.createTextNode('\u25CA')); + vTmpDiv2.appendChild(document.createTextNode("\u25CA")); else { - vTmpDiv2 = draw_utils_1.newNode(vTmpDiv2, 'div', null, 'gmilediamond'); - draw_utils_1.newNode(vTmpDiv2, 'div', null, 'gmdtop'); - draw_utils_1.newNode(vTmpDiv2, 'div', null, 'gmdbottom'); + vTmpDiv2 = draw_utils_1.newNode(vTmpDiv2, "div", null, "gmilediamond"); + draw_utils_1.newNode(vTmpDiv2, "div", null, "gmdtop"); + draw_utils_1.newNode(vTmpDiv2, "div", null, "gmdbottom"); } - vCaptClass = 'gmilecaption'; + vCaptClass = "gmilecaption"; if (!vSingleCell && !vComb) { this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate); } @@ -530,31 +528,31 @@ exports.GanttChart = function (pDiv, pFormat) { // Draw Group Bar which has outer div with inner group div // and several small divs to left and right to create angled-end indicators if (this.vTaskList[i].getGroup()) { - vTaskWidth = (vTaskWidth > this.vMinGpLen && vTaskWidth < this.vMinGpLen * 2) ? this.vMinGpLen * 2 : vTaskWidth; // Expand to show two end points - vTaskWidth = (vTaskWidth < this.vMinGpLen) ? this.vMinGpLen : vTaskWidth; // expand to show one end point - var vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr', this.vDivId + 'childrow_' + vID, ((this.vTaskList[i].getGroup() == 2) ? 'glineitem gitem' : 'ggroupitem ggroup') + this.vFormat, null, null, null, ((this.vTaskList[i].getVisible() == 0) ? 'none' : null)); + vTaskWidth = vTaskWidth > this.vMinGpLen && vTaskWidth < this.vMinGpLen * 2 ? this.vMinGpLen * 2 : vTaskWidth; // Expand to show two end points + vTaskWidth = vTaskWidth < this.vMinGpLen ? this.vMinGpLen : vTaskWidth; // expand to show one end point + var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, (this.vTaskList[i].getGroup() == 2 ? "glineitem gitem" : "ggroupitem ggroup") + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null); this.vTaskList[i].setChildRow(vTmpRow); events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow); - var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gtaskcell gtaskcellbar', null, vColWidth, null, null); - vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, 'div', null, 'gtaskcelldiv', '\u00A0\u00A0'); + var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellbar", null, vColWidth, null, null); + vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0"); this.vTaskList[i].setCellDiv(vTmpDiv_1); if (this.vTaskList[i].getGroup() == 1) { - vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'bardiv_' + vID, 'gtaskbarcontainer', null, vTaskWidth, vTaskLeftPx_1); + vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, vTaskWidth, vTaskLeftPx_1); this.vTaskList[i].setBarDiv(vTmpDiv_1); - var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'taskbar_' + vID, this.vTaskList[i].getClass(), null, vTaskWidth); + var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, vTaskWidth); this.vTaskList[i].setTaskDiv(vTmpDiv2); - draw_utils_1.newNode(vTmpDiv2, 'div', this.vDivId + 'complete_' + vID, this.vTaskList[i].getClass() + 'complete', null, this.vTaskList[i].getCompStr()); - draw_utils_1.newNode(vTmpDiv_1, 'div', null, this.vTaskList[i].getClass() + 'endpointleft'); + draw_utils_1.newNode(vTmpDiv2, "div", this.vDivId + "complete_" + vID, this.vTaskList[i].getClass() + "complete", null, this.vTaskList[i].getCompStr()); + draw_utils_1.newNode(vTmpDiv_1, "div", null, this.vTaskList[i].getClass() + "endpointleft"); if (vTaskWidth >= this.vMinGpLen * 2) - draw_utils_1.newNode(vTmpDiv_1, 'div', null, this.vTaskList[i].getClass() + 'endpointright'); - vCaptClass = 'ggroupcaption'; + draw_utils_1.newNode(vTmpDiv_1, "div", null, this.vTaskList[i].getClass() + "endpointright"); + vCaptClass = "ggroupcaption"; } if (!vSingleCell && !vComb) { this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate); } } else { - vTaskWidth = (vTaskWidth <= 0) ? 1 : vTaskWidth; + vTaskWidth = vTaskWidth <= 0 ? 1 : vTaskWidth; /** * DRAW THE BOXES FOR GANTT */ @@ -564,40 +562,44 @@ exports.GanttChart = function (pDiv, pFormat) { } else { // Draw Task Bar which has colored bar div - vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr', this.vDivId + 'childrow_' + vID, 'glineitem gitem' + this.vFormat, null, null, null, ((this.vTaskList[i].getVisible() == 0) ? 'none' : null)); + var differentDatesHighlight = ""; + if (this.vTaskList[i].getEnd() && this.vTaskList[i].getPlanEnd() && this.vTaskList[i].getStart() && this.vTaskList[i].getPlanStart()) + if (Date.parse(this.vTaskList[i].getEnd()) !== Date.parse(this.vTaskList[i].getPlanEnd()) || Date.parse(this.vTaskList[i].getStart()) !== Date.parse(this.vTaskList[i].getPlanStart())) + differentDatesHighlight = "gitemdifferent "; + vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, "glineitem " + differentDatesHighlight + "gitem" + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null); this.vTaskList[i].setChildRow(vTmpRow); events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow); - var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gtaskcell gtaskcellcolorbar', null, taskCellWidth, null, null); - vTmpDivCell = vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, 'div', null, 'gtaskcelldiv', '\u00A0\u00A0'); + var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellcolorbar", null, taskCellWidth, null, null); + vTmpDivCell = vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0"); } // DRAW TASK BAR - vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'bardiv_' + vID, 'gtaskbarcontainer', null, vTaskWidth, vTaskLeftPx_1); + vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, vTaskWidth, vTaskLeftPx_1); this.vTaskList[i].setBarDiv(vTmpDiv_1); var vTmpDiv2 = void 0; if (this.vTaskList[i].getStartVar()) { // textbar - vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'taskbar_' + vID, this.vTaskList[i].getClass(), null, vTaskWidth); + vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, vTaskWidth); if (this.vTaskList[i].getBarText()) { - draw_utils_1.newNode(vTmpDiv2, 'span', this.vDivId + 'tasktextbar_' + vID, 'textbar', this.vTaskList[i].getBarText(), this.vTaskList[i].getCompRestStr()); + draw_utils_1.newNode(vTmpDiv2, "span", this.vDivId + "tasktextbar_" + vID, "textbar", this.vTaskList[i].getBarText(), this.vTaskList[i].getCompRestStr()); } this.vTaskList[i].setTaskDiv(vTmpDiv2); } // PLANNED // If exist and one of them are different, show plan bar... show if there is no real vStart as well (just plan dates) - if (vTaskPlanLeftPx && ((vTaskPlanLeftPx != vTaskLeftPx_1 || vTaskPlanRightPx != vTaskRightPx) || !this.vTaskList[i].getStartVar())) { - var vTmpPlanDiv = draw_utils_1.newNode(vTmpDivCell, 'div', this.vDivId + 'bardiv_' + vID, 'gtaskbarcontainer gplan', null, vTaskPlanRightPx, vTaskPlanLeftPx); - var vTmpPlanDiv2 = draw_utils_1.newNode(vTmpPlanDiv, 'div', this.vDivId + 'taskbar_' + vID, this.vTaskList[i].getClass() + ' gplan', null, vTaskPlanRightPx); + if (vTaskPlanLeftPx && (vTaskPlanLeftPx != vTaskLeftPx_1 || vTaskPlanRightPx != vTaskRightPx || !this.vTaskList[i].getStartVar())) { + var vTmpPlanDiv = draw_utils_1.newNode(vTmpDivCell, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer gplan", null, vTaskPlanRightPx, vTaskPlanLeftPx); + var vTmpPlanDiv2 = draw_utils_1.newNode(vTmpPlanDiv, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getPlanClass() + " gplan", null, vTaskPlanRightPx); this.vTaskList[i].setPlanTaskDiv(vTmpPlanDiv2); } // and opaque completion div if (vTmpDiv2) { - draw_utils_1.newNode(vTmpDiv2, 'div', this.vDivId + 'complete_' + vID, this.vTaskList[i].getClass() + 'complete', null, this.vTaskList[i].getCompStr()); + draw_utils_1.newNode(vTmpDiv2, "div", this.vDivId + "complete_" + vID, this.vTaskList[i].getClass() + "complete", null, this.vTaskList[i].getCompStr()); } // caption if (vComb) vTmpItem = this.vTaskList[i].getParItem(); if (!vComb || (vComb && this.vTaskList[i].getParItem().getEnd() == this.vTaskList[i].getEnd())) - vCaptClass = 'gcaption'; + vCaptClass = "gcaption"; // Background cells if (!vSingleCell && !vComb && vTmpRow) { this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate); @@ -607,31 +609,31 @@ exports.GanttChart = function (pDiv, pFormat) { if (this.getCaptionType() && vCaptClass !== null) { var vCaptionStr = void 0; switch (this.getCaptionType()) { - case 'Caption': + case "Caption": vCaptionStr = vTmpItem.getCaption(); break; - case 'Resource': + case "Resource": vCaptionStr = vTmpItem.getResource(); break; - case 'Duration': + case "Duration": vCaptionStr = vTmpItem.getDuration(this.vFormat, this.vLangs[this.vLang]); break; - case 'Complete': + case "Complete": vCaptionStr = vTmpItem.getCompStr(); break; } - draw_utils_1.newNode(vTmpDiv_1, 'div', null, vCaptClass, vCaptionStr, 120, (vCaptClass == 'gmilecaption') ? 12 : 0); + draw_utils_1.newNode(vTmpDiv_1, "div", null, vCaptClass, vCaptionStr, 120, vCaptClass == "gmilecaption" ? 12 : 0); } // Add Task Info div for tooltip if (this.vTaskList[i].getTaskDiv() && vTmpDiv_1) { - var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'tt' + vID, null, null, null, null, 'none'); + var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "tt" + vID, null, null, null, null, "none"); var _a = this.createTaskInfo(this.vTaskList[i], this.vTooltipTemplate), component = _a.component, callback = _a.callback; vTmpDiv2.appendChild(component); events_1.addTooltipListeners(this, this.vTaskList[i].getTaskDiv(), vTmpDiv2, callback); } // Add Plan Task Info div for tooltip if (this.vTaskList[i].getPlanTaskDiv() && vTmpDiv_1) { - var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, 'div', this.vDivId + 'tt' + vID, null, null, null, null, 'none'); + var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "tt" + vID, null, null, null, null, "none"); var _b = this.createTaskInfo(this.vTaskList[i], this.vTooltipTemplate), component = _b.component, callback = _b.callback; vTmpDiv2.appendChild(component); events_1.addTooltipListeners(this, this.vTaskList[i].getPlanTaskDiv(), vTmpDiv2, callback); @@ -639,10 +641,10 @@ exports.GanttChart = function (pDiv, pFormat) { } // Include the footer with the days/week/month... if (vSingleCell) { - var vTmpTFootTRow = draw_utils_1.newNode(vTmpTFoot, 'tr'); - var vTmpTFootTCell = draw_utils_1.newNode(vTmpTFootTRow, 'td', null, null, null, '100%'); - var vTmpTFootTCellTable = draw_utils_1.newNode(vTmpTFootTCell, 'table', null, 'gcharttableh', null, '100%'); - var vTmpTFootTCellTableTBody = draw_utils_1.newNode(vTmpTFootTCellTable, 'tbody'); + var vTmpTFootTRow = draw_utils_1.newNode(vTmpTFoot, "tr"); + var vTmpTFootTCell = draw_utils_1.newNode(vTmpTFootTRow, "td", null, null, null, "100%"); + var vTmpTFootTCellTable = draw_utils_1.newNode(vTmpTFootTCell, "table", null, "gcharttableh", null, "100%"); + var vTmpTFootTCellTableTBody = draw_utils_1.newNode(vTmpTFootTCellTable, "tbody"); vTmpTFootTCellTableTBody.appendChild(vDateRow.cloneNode(true)); } else { @@ -655,28 +657,28 @@ exports.GanttChart = function (pDiv, pFormat) { if (pEndDate === void 0) { pEndDate = null; } var columnCurrentDay = null; // Find the Current day cell to put a different class - if (this.vShowWeekends !== false && pStartDate && pEndDate && (this.vFormat == 'day' || this.vFormat == 'week')) { + if (this.vShowWeekends !== false && pStartDate && pEndDate && (this.vFormat == "day" || this.vFormat == "week")) { var curTaskStart = new Date(pStartDate.getTime()); var curTaskEnd = new Date(); var onePeriod = 3600000; - if (this.vFormat == 'day') { + if (this.vFormat == "day") { onePeriod *= 24; } - else if (this.vFormat == 'week') { + else if (this.vFormat == "week") { onePeriod *= 24 * 7; } columnCurrentDay = Math.floor(general_utils_1.calculateCurrentDateOffset(curTaskStart, curTaskEnd) / onePeriod) - 1; } for (var j = 0; j < vNumCols - 1; j++) { - var vCellFormat = 'gtaskcell gtaskcellcols'; - if (this.vShowWeekends !== false && this.vFormat == 'day' && ((j % 7 == 4) || (j % 7 == 5))) { - vCellFormat = 'gtaskcellwkend'; + var vCellFormat = "gtaskcell gtaskcellcols"; + if (this.vShowWeekends !== false && this.vFormat == "day" && (j % 7 == 4 || j % 7 == 5)) { + vCellFormat = "gtaskcellwkend"; } //When is the column is the current day/week,give a different class - else if ((this.vFormat == 'week' || this.vFormat == 'day') && j === columnCurrentDay) { - vCellFormat = 'gtaskcellcurrent'; + else if ((this.vFormat == "week" || this.vFormat == "day") && j === columnCurrentDay) { + vCellFormat = "gtaskcellcurrent"; } - draw_utils_1.newNode(vTmpRow, 'td', null, vCellFormat, '\u00A0\u00A0', taskCellWidth); + draw_utils_1.newNode(vTmpRow, "td", null, vCellFormat, "\u00A0\u00A0", taskCellWidth); } }; /** @@ -696,7 +698,7 @@ exports.GanttChart = function (pDiv, pFormat) { } if (this.vDebug) { bd = new Date(); - console.info('before draw', bd); + console.info("before draw", bd); } // Process all tasks, reset parent date and completion % if task list has altered if (this.vProcessNeeded) @@ -706,25 +708,25 @@ exports.GanttChart = function (pDiv, pFormat) { vMinDate = date_utils_1.getMinDate(this.vTaskList, this.vFormat, this.getMinDate() && date_utils_1.coerceDate(this.getMinDate())); vMaxDate = date_utils_1.getMaxDate(this.vTaskList, this.vFormat, this.getMaxDate() && date_utils_1.coerceDate(this.getMaxDate())); // Calculate chart width variables. - if (this.vFormat == 'day') + if (this.vFormat == "day") vColWidth = this.vDayColWidth; - else if (this.vFormat == 'week') + else if (this.vFormat == "week") vColWidth = this.vWeekColWidth; - else if (this.vFormat == 'month') + else if (this.vFormat == "month") vColWidth = this.vMonthColWidth; - else if (this.vFormat == 'quarter') + else if (this.vFormat == "quarter") vColWidth = this.vQuarterColWidth; - else if (this.vFormat == 'hour') + else if (this.vFormat == "hour") vColWidth = this.vHourColWidth; // DRAW the Left-side of the chart (names, resources, comp%) var vLeftHeader = document.createDocumentFragment(); /** * LIST HEAD - */ + */ var gListLbl = this.drawListHead(vLeftHeader); /** * LIST BODY - */ + */ var _a = this.drawListBody(vLeftHeader), vNumRows = _a.vNumRows, vTmpContentTabWrapper = _a.vTmpContentTabWrapper; /** * CHART HEAD @@ -736,28 +738,28 @@ exports.GanttChart = function (pDiv, pFormat) { var vRightTable = this.drawCharBody(vTaskLeftPx, vTmpContentTabWrapper, gChartLbl, gListLbl, vMinDate, vMaxDate, vSingleCell, vNumCols, vColWidth, vDateRow).vRightTable; if (this.vDebug) { var ad = new Date(); - console.info('after tasks loop', ad, (ad.getTime() - bd.getTime())); + console.info("after tasks loop", ad, ad.getTime() - bd.getTime()); } // MAIN VIEW: Appending all generated components to main view while (this.vDiv.hasChildNodes()) this.vDiv.removeChild(this.vDiv.firstChild); - var vTmpDiv = draw_utils_1.newNode(this.vDiv, 'div', null, 'gchartcontainer'); + var vTmpDiv = draw_utils_1.newNode(this.vDiv, "div", null, "gchartcontainer"); vTmpDiv.style.height = this.vTotalHeight; - var leftvTmpDiv = draw_utils_1.newNode(vTmpDiv, 'div', null, 'gmain gmainleft'); + var leftvTmpDiv = draw_utils_1.newNode(vTmpDiv, "div", null, "gmain gmainleft"); leftvTmpDiv.appendChild(vLeftHeader); // leftvTmpDiv.appendChild(vLeftTable); - var rightvTmpDiv = draw_utils_1.newNode(vTmpDiv, 'div', null, 'gmain gmainright'); + var rightvTmpDiv = draw_utils_1.newNode(vTmpDiv, "div", null, "gmain gmainright"); rightvTmpDiv.appendChild(vRightHeader); rightvTmpDiv.appendChild(vRightTable); vTmpDiv.appendChild(leftvTmpDiv); vTmpDiv.appendChild(rightvTmpDiv); - draw_utils_1.newNode(vTmpDiv, 'div', null, 'ggridfooter'); - var vTmpDiv2 = draw_utils_1.newNode(this.getChartBody(), 'div', this.vDivId + 'Lines', 'glinediv'); - if (this.vEvents.onLineContainerHover && typeof this.vEvents.onLineContainerHover === 'function') { - events_1.addListener('mouseover', this.vEvents.onLineContainerHover, vTmpDiv2); - events_1.addListener('mouseout', this.vEvents.onLineContainerHover, vTmpDiv2); + draw_utils_1.newNode(vTmpDiv, "div", null, "ggridfooter"); + var vTmpDiv2 = draw_utils_1.newNode(this.getChartBody(), "div", this.vDivId + "Lines", "glinediv"); + if (this.vEvents.onLineContainerHover && typeof this.vEvents.onLineContainerHover === "function") { + events_1.addListener("mouseover", this.vEvents.onLineContainerHover, vTmpDiv2); + events_1.addListener("mouseout", this.vEvents.onLineContainerHover, vTmpDiv2); } - vTmpDiv2.style.visibility = 'hidden'; + vTmpDiv2.style.visibility = "hidden"; this.setLines(vTmpDiv2); /* Quick hack to show the generated HTML on older browsers let tmpGenSrc=document.createElement('textarea'); @@ -767,14 +769,14 @@ exports.GanttChart = function (pDiv, pFormat) { // LISTENERS: Now all the content exists, register scroll listeners events_1.addScrollListeners(this); // SCROLL: now check if we are actually scrolling the pane - if (this.vScrollTo != '') { + if (this.vScrollTo != "") { var vScrollDate = new Date(vMinDate.getTime()); var vScrollPx = 0; - if (this.vScrollTo.substr && this.vScrollTo.substr(0, 2) == 'px') { + if (this.vScrollTo.substr && this.vScrollTo.substr(0, 2) == "px") { vScrollPx = parseInt(this.vScrollTo.substr(2)); } else { - if (this.vScrollTo === 'today') { + if (this.vScrollTo === "today") { vScrollDate = new Date(); } else if (this.vScrollTo instanceof Date) { @@ -783,7 +785,7 @@ exports.GanttChart = function (pDiv, pFormat) { else { vScrollDate = date_utils_1.parseDateStr(this.vScrollTo, this.getDateInputFormat()); } - if (this.vFormat == 'hour') + if (this.vFormat == "hour") vScrollDate.setMinutes(0, 0, 0); else vScrollDate.setHours(0, 0, 0, 0); @@ -791,7 +793,7 @@ exports.GanttChart = function (pDiv, pFormat) { } this.getChartBody().scrollLeft = vScrollPx; } - if (vMinDate.getTime() <= (new Date()).getTime() && vMaxDate.getTime() >= (new Date()).getTime()) { + if (vMinDate.getTime() <= new Date().getTime() && vMaxDate.getTime() >= new Date().getTime()) { this.vTodayPx = general_utils_1.getOffset(vMinDate, new Date(), vColWidth, this.vFormat, this.vShowWeekends); } else @@ -800,20 +802,20 @@ exports.GanttChart = function (pDiv, pFormat) { var bdd; if (this.vDebug) { bdd = new Date(); - console.info('before DrawDependencies', bdd); + console.info("before DrawDependencies", bdd); } - if (this.vEvents && typeof this.vEvents.beforeLineDraw === 'function') { + if (this.vEvents && typeof this.vEvents.beforeLineDraw === "function") { this.vEvents.beforeLineDraw(); } this.DrawDependencies(this.vDebug); events_1.addListenerDependencies(this.vLineOptions); // EVENTS - if (this.vEvents && typeof this.vEvents.afterLineDraw === 'function') { + if (this.vEvents && typeof this.vEvents.afterLineDraw === "function") { this.vEvents.afterLineDraw(); } if (this.vDebug) { var ad = new Date(); - console.info('after DrawDependencies', ad, (ad.getTime() - bdd.getTime())); + console.info("after DrawDependencies", ad, ad.getTime() - bdd.getTime()); } this.drawComplete(vMinDate, vColWidth, bd); }; @@ -823,7 +825,7 @@ exports.GanttChart = function (pDiv, pFormat) { this.drawComplete = function (vMinDate, vColWidth, bd) { if (this.vDebug) { var ad = new Date(); - console.info('after draw', ad, (ad.getTime() - bd.getTime())); + console.info("after draw", ad, ad.getTime() - bd.getTime()); } events_1.updateGridHeaderWidth(this); this.chartRowDateToX = function (date) { @@ -833,13 +835,14 @@ exports.GanttChart = function (pDiv, pFormat) { this.vEvents.afterDraw(); } }; - if (this.vDiv && this.vDiv.nodeName && this.vDiv.nodeName.toLowerCase() == 'div') + if (this.vDiv && this.vDiv.nodeName && this.vDiv.nodeName.toLowerCase() == "div") this.vDivId = this.vDiv.id; }; //GanttChart },{"./draw_columns":3,"./draw_dependencies":4,"./events":5,"./lang":8,"./options":9,"./task":10,"./utils/date_utils":11,"./utils/draw_utils":12,"./utils/general_utils":13,"./xml":14}],3:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.draw_task_headings = exports.draw_bottom = exports.draw_header = exports.COLUMN_ORDER = void 0; var date_utils_1 = require("./utils/date_utils"); var task_1 = require("./task"); var events_1 = require("./events"); @@ -1009,6 +1012,7 @@ exports.draw_task_headings = function (column, vTmpRow, vLangs, vLang, vAddition },{"./events":5,"./task":10,"./utils/date_utils":11,"./utils/draw_utils":12}],4:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.DrawDependencies = exports.drawDependency = void 0; exports.drawDependency = function (x1, y1, x2, y2, pType, pClass) { var vDir = 1; var vBend = false; @@ -1105,6 +1109,7 @@ exports.DrawDependencies = function (vDebug) { },{}],5:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.addListenerDependencies = exports.addListenerInputCell = exports.addListenerClickCell = exports.addScrollListeners = exports.addFormatListeners = exports.addFolderListeners = exports.updateGridHeaderWidth = exports.addThisRowListeners = exports.addTooltipListeners = exports.syncScroll = exports.removeListener = exports.addListener = exports.showToolTip = exports.mouseOut = exports.mouseOver = exports.show = exports.hide = exports.folder = void 0; var general_utils_1 = require("./utils/general_utils"); // Function to open/close and hide/show children of specified task exports.folder = function (pID, ganttObj) { @@ -1505,6 +1510,7 @@ var vColumnsNames = { Copyright (c) 2009, Shlomy Gantz BlueBrick Inc. */ Object.defineProperty(exports, "__esModule", { value: true }); +exports.JSGantt = void 0; var events_1 = require("./events"); var general_utils_1 = require("./utils/general_utils"); var xml_1 = require("./xml"); @@ -1545,7 +1551,7 @@ exports.JSGantt.taskLink = task_1.taskLink; exports.JSGantt.parseDateStr = date_utils_1.parseDateStr; exports.JSGantt.formatDateStr = date_utils_1.formatDateStr; exports.JSGantt.parseDateFormatStr = date_utils_1.parseDateFormatStr; -// XML +// XML exports.JSGantt.parseXML = xml_1.parseXML; exports.JSGantt.parseXMLString = xml_1.parseXMLString; exports.JSGantt.findXMLNode = xml_1.findXMLNode; @@ -1568,10 +1574,11 @@ exports.JSGantt.criticalPath = general_utils_1.criticalPath; },{"./draw":2,"./events":5,"./json":7,"./task":10,"./utils/date_utils":11,"./utils/general_utils":13,"./xml":14}],7:[function(require,module,exports){ "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; @@ -1603,6 +1610,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.addJSONTask = exports.parseJSONString = exports.parseJSON = void 0; var task_1 = require("./task"); var general_utils_1 = require("./utils/general_utils"); /** @@ -1649,6 +1657,7 @@ exports.addJSONTask = function (pGanttVar, pJsonObj) { var planstart = void 0; var planend = void 0; var itemClass = void 0; + var planClass = void 0; var link = ''; var milestone = 0; var resourceName = ''; @@ -1695,6 +1704,10 @@ exports.addJSONTask = function (pGanttVar, pJsonObj) { case 'class': itemClass = value; break; + case 'pplanclass': + case 'planclass': + planClass = value; + break; case 'plink': case 'link': link = value; @@ -1752,7 +1765,7 @@ exports.addJSONTask = function (pGanttVar, pJsonObj) { } } //if (id != undefined && !isNaN(parseInt(id)) && isFinite(id) && name && start && end && itemClass && completion != undefined && !isNaN(parseFloat(completion)) && isFinite(completion) && !isNaN(parseInt(parent)) && isFinite(parent)) { - pGanttVar.AddTaskItem(new task_1.TaskItem(id, name_1, start, end, itemClass, link, milestone, resourceName, completion, group, parent_1, open_1, dependsOn, caption, notes, pGanttVar, cost, planstart, planend, duration, bartext, additionalObject)); + pGanttVar.AddTaskItem(new task_1.TaskItem(id, name_1, start, end, itemClass, link, milestone, resourceName, completion, group, parent_1, open_1, dependsOn, caption, notes, pGanttVar, cost, planstart, planend, duration, bartext, additionalObject, planClass)); //} } }; @@ -1760,6 +1773,374 @@ exports.addJSONTask = function (pGanttVar, pJsonObj) { },{"./task":10,"./utils/general_utils":13}],8:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.ua = exports.tr = exports.sv = exports.ru = exports.pt = exports.pl = exports.nl = exports.ko = exports.ja = exports.id = exports.it = exports.hu = exports.he = exports.fr = exports.fi = exports.de = exports.es = exports.en = exports.cs = exports.cn = exports.scn = exports.ar = void 0; +var ar = { + 'format': 'التنسيق', + 'hour': 'ساعة', + 'day': 'يوم', + 'week': 'أسبوع', + 'month': 'شهر', + 'quarter': 'ربع', + 'hours': 'ساعات', + 'days': 'أيام', + 'weeks': 'أسابيع', + 'months': 'أشهر', + 'quarters': 'أرباع', + 'hr': 'س', + 'dy': 'يو', + 'wk': 'أ', + 'mth': 'ش', + 'qtr': 'ر', + 'hrs': 'س', + 'dys': 'ي', + 'wks': 'أ', + 'mths': 'ش', + 'qtrs': 'ر', + 'res': 'الموارد', + 'dur': 'المدة', + 'comp': '%', + 'completion': 'الإنجاز', + 'startdate': 'تاريخ البدء', + 'planstartdate': 'تاريخ بدء الخطة', + 'enddate': 'تاريخ الانتهاء', + 'planenddate': 'تاريخ نهاية الخطة', + 'cost': 'التكلفة', + 'moreinfo': 'مزيد من المعلومات', + 'nodata': 'لم يتم العثور على مهام', + 'notes': 'ملاحظات', + 'january': 'يناير', + 'february': 'فبراير', + 'march': 'مارس', + 'april': 'أبريل', + 'maylong': 'مايو', + 'june': 'يونيو', + 'july': 'يوليو', + 'august': 'أغسطس', + 'september': 'سبتمبر', + 'october': 'أكتوبر', + 'november': 'نوفمبر', + 'december': 'ديسمبر', + 'jan': 'يناير', + 'feb': 'فبراير', + 'mar': 'مارس', + 'apr': 'أبريل', + 'may': 'مايو', + 'jun': 'يونيو', + 'jul': 'يوليو', + 'aug': 'أغسطس', + 'sep': 'سبتمبر', + 'oct': 'أكتوبر', + 'nov': 'نوفمبر', + 'dec': 'ديسمبر', + 'sunday': 'الأحد', + 'monday': 'الإثنين', + 'tuesday': 'الثلاثاء', + 'wednesday': 'الأربعاء', + 'thursday': 'الخميس', + 'friday': 'الجمعة', + 'saturday': 'السبت', + 'sun': 'الأحد', + 'mon': 'الإثنين', + 'tue': 'الثلاثاء', + 'wed': 'الأربعاء', + 'thu': 'الخميس', + 'fri': 'الجمعة', + 'sat': 'السبت', + 'tooltipLoading': 'جاري التحميل...' +}; +exports.ar = ar; +var scn = { + 'january': '一月', + 'february': '二月', + 'march': '三月', + 'april': '四月', + 'maylong': '五月', + 'june': '六月', + 'july': '七月', + 'august': '八月', + 'september': '九月', + 'october': '十月', + 'november': '十一月', + 'december': '十二月', + 'jan': '一月', + 'feb': '二月', + 'mar': '三月', + 'apr': '四月', + 'may': '五月', + 'jun': '六月', + 'jul': '七月', + 'aug': '八月', + 'sep': '九月', + 'oct': '十月', + 'nov': '十一月', + 'dec': '十二月', + 'sunday': '星期日', + 'monday': '星期一', + 'tuesday': '星期二', + 'wednesday': '星期三', + 'thursday': '星期四', + 'friday': '星期五', + 'saturday': '星期六', + 'sun': '星期日', + 'mon': '星期一', + 'tue': '星期二', + 'wed': '星期三', + 'thu': '星期四', + 'fri': '星期五', + 'sat': '星期六', + 'res': '资源', + 'dur': '时长', + 'comp': '完成度', + 'completion': '完成', + 'startdate': '起始日期', + 'planstartdate': '计划起始日期', + 'enddate': '截止日期', + 'planenddate': '计划截止日期', + 'cost': '成本', + 'moreinfo': "更多信息", + 'nodata': 'No tasks found', + 'notes': '备注', + 'format': '格式', + 'hour': '时', + 'day': '日', + 'week': '星期', + 'month': '月', + 'quarter': '季', + 'hours': '小时', + 'days': '天', + 'weeks': '周', + 'months': '月', + 'quarters': '季', + 'hr': '小时', + 'dy': '天', + 'wk': '周', + 'mth': '月', + 'qtr': '季', + 'hrs': '小时', + 'dys': '天', + 'wks': '周', + 'mths': '月', + 'qtrs': '季' +}; +exports.scn = scn; +var cn = { + 'january': '一月', + 'february': '二月', + 'march': '三月', + 'april': '四月', + 'maylong': '五月', + 'june': '六月', + 'july': '七月', + 'august': '八月', + 'september': '九月', + 'october': '十月', + 'november': '十一月', + 'december': '十二月', + 'jan': '一月', + 'feb': '二月', + 'mar': '三月', + 'apr': '四月', + 'may': '五月', + 'jun': '六月', + 'jul': '七月', + 'aug': '八月', + 'sep': '九月', + 'oct': '十月', + 'nov': '十一月', + 'dec': '十二月', + 'sunday': '星期日', + 'monday': '星期一', + 'tuesday': '星期二', + 'wednesday': '星期三', + 'thursday': '星期四', + 'friday': '星期五', + 'saturday': '星期六', + 'sun': '星期日', + 'mon': '星期一', + 'tue': '星期二', + 'wed': '星期三', + 'thu': '星期四', + 'fri': '星期五', + 'sat': '星期六', + 'res': '資源', + 'dur': '時程', + 'comp': '達成率', + 'completion': '達成', + 'startdate': '起始日期', + 'planstartdate': '計劃起始日期', + 'enddate': '截止日期', + 'planenddate': '計劃截止日期', + 'cost': '成本', + 'moreinfo': "更多資訊", + 'nodata': 'No tasks found', + 'notes': '備註', + 'format': '格式', + 'hour': '時', + 'day': '日', + 'week': '星期', + 'month': '月', + 'quarter': '季', + 'hours': '小時', + 'days': '天', + 'weeks': '週', + 'months': '月', + 'quarters': '季', + 'hr': '小時', + 'dy': '天', + 'wk': '週', + 'mth': '月', + 'qtr': '季', + 'hrs': '小時', + 'dys': '天', + 'wks': '週', + 'mths': '月', + 'qtrs': '季' +}; +exports.cn = cn; +var cs = { + 'format': 'Zobrazení', + 'hour': 'Hodina', + 'day': 'Den', + 'week': 'Týden', + 'month': 'Měsíc', + 'quarter': 'Kvartál', + 'hours': 'Hodiny', + 'days': 'Dni', + 'weeks': 'Týdny', + 'months': 'Měsíce', + 'quarters': 'Kvartály', + 'hr': 'Ho', + 'dy': 'Den', + 'wk': 'Tyd', + 'mth': 'Měs', + 'qtr': 'Kvar', + 'hrs': 'Ho', + 'dys': 'Dni', + 'wks': 'Tyd', + 'mths': 'Měs', + 'qtrs': 'Kvar', + 'res': 'Přiřazeno', + 'dur': 'Trvání', + 'comp': '%', + 'completion': 'Hotovo', + 'startdate': 'Start', + 'planstartdate': 'Plánovaný start', + 'enddate': 'Konec', + 'planenddate': 'Plánovaný konec', + 'cost': 'Náklady', + 'moreinfo': 'Více informací', + 'nodata': 'No tasks found', + 'notes': 'Poznámky', + 'january': 'Leden', + 'february': 'Únor', + 'march': 'Březen', + 'april': 'Duben', + 'maylong': 'Květen', + 'june': 'Červen', + 'july': 'Červenec', + 'august': 'Srpen', + 'september': 'Září', + 'october': 'Říjen', + 'november': 'Listopad', + 'december': 'Prosinec', + 'jan': 'Led', + 'feb': 'Úno', + 'mar': 'Bře', + 'apr': 'Dub', + 'may': 'Kvě', + 'jun': 'Čer', + 'jul': 'Čvc', + 'aug': 'Srp', + 'sep': 'Zář', + 'oct': 'Říj', + 'nov': 'Lis', + 'dec': 'Pro', + 'sunday': 'Neděle', + 'monday': 'Pondělí', + 'tuesday': 'Úterý', + 'wednesday': 'Středa', + 'thursday': 'Čtvrtek', + 'friday': 'Pátek', + 'saturday': 'Sobota', + 'sun': 'Ne', + 'mon': 'Po', + 'tue': 'Út', + 'wed': 'St', + 'thu': 'Čt', + 'fri': 'Pa', + 'sat': 'So', + 'tooltipLoading': 'Nahrávám...' +}; +exports.cs = cs; +var de = { + 'format': 'Ansicht', + 'hour': 'Stunde', + 'day': 'Tag', + 'week': 'Woche', + 'month': 'Monat', + 'quarter': 'Quartal', + 'hours': 'Stunden', + 'days': 'Tage', + 'weeks': 'Wochen', + 'months': 'Monate', + 'quarters': 'Quartale', + 'hr': 'h', + 'dy': 'T', + 'wk': 'W', + 'mth': 'M', + 'qtr': 'Q', + 'hrs': 'Std', + 'dys': 'Tage', + 'wks': 'Wochen', + 'mths': 'Monate', + 'qtrs': 'Quartal', + 'res': 'Resource', + 'dur': 'Dauer', + 'comp': '%', + 'completion': 'Fertigstellung', + 'startdate': 'Erste Buchu', + 'planstartdate': 'Erste Buchu Plan', + 'enddate': 'Letzte Buchung', + 'planenddate': 'Plan Letzte Buchung', + 'cost': 'Cost', + 'moreinfo': 'Weitere Infos', + 'nodata': 'No tasks found', + 'notes': 'Anmerkung', + 'january': 'Jänner', + 'february': 'Februar', + 'march': 'März', + 'april': 'April', + 'maylong': 'Mai', + 'june': 'Juni', + 'july': 'Juli', + 'august': 'August', + 'september': 'September', + 'october': 'Oktober', + 'november': 'November', + 'december': 'Dezember', + 'jan': 'Jan', + 'feb': 'Feb', + 'mar': 'Mar', + 'apr': 'Apr', + 'may': 'Mai', + 'jun': 'Jun', + 'jul': 'Jul', + 'aug': 'Aug', + 'sep': 'Sep', + 'oct': 'Okt', + 'nov': 'Nov', + 'dec': 'Dez', + 'sunday': 'Sonntag', + 'monday': 'Montag', + 'tuesday': 'Dienstag', + 'wednesday': 'Mittwoch', + 'thursday': 'Donnerstag', + 'friday': 'Freitag', + 'saturday': 'Samstag', + 'sun': 'So', + 'mon': 'Mo', 'tue': 'Di', 'wed': 'Mi', 'thu': 'Do', 'fri': 'Fr', 'sat': 'Sa' +}; +exports.de = de; var es = { 'january': 'Enero', 'february': 'Febrero', @@ -1801,7 +2182,7 @@ var es = { 'sat': ' Sab', 'res': 'Recurso', 'dur': 'Duración', - 'comp': '% Compl.', + 'comp': '%', 'completion': 'Completado', 'startdate': 'Inicio', 'planstartdate': 'Inicio Planificado', @@ -1859,7 +2240,7 @@ var en = { 'qtrs': 'Qtrs', 'res': 'Resource', 'dur': 'Duration', - 'comp': '% Comp.', + 'comp': '%', 'completion': 'Completion', 'startdate': 'Start Date', 'planstartdate': 'Plan Start Date', @@ -1910,75 +2291,757 @@ var en = { 'tooltipLoading': 'Loading...' }; exports.en = en; -var de = { - 'format': 'Ansicht', - 'hour': 'Stunde', - 'day': 'Tag', - 'week': 'Woche', - 'month': 'Monat', - 'quarter': 'Quartal', - 'hours': 'Stunden', - 'days': 'Tage', - 'weeks': 'Wochen', - 'months': 'Monate', - 'quarters': 'Quartale', - 'hr': 'h', - 'dy': 'T', - 'wk': 'W', - 'mth': 'M', +var fi = { + 'format': 'Näkymä', + 'hour': 'Tunti', + 'day': 'Päivä', + 'week': 'Viikko', + 'month': 'Kuukausi', + 'quarter': 'Kvartaali', + 'hours': 'Tunnit', + 'days': 'Päivät', + 'weeks': 'Viikot', + 'months': 'Kuukaudet', + 'quarters': 'Kvartaalit', + 'hr': 't', + 'dy': 'pv', + 'wk': 'vk', + 'mth': 'kk', 'qtr': 'Q', - 'hrs': 'Std', - 'dys': 'Tage', - 'wks': 'Wochen', - 'mths': 'Monate', - 'qtrs': 'Quartal', - 'res': 'Resource', - 'dur': 'Dauer', - 'comp': '%Fertig', - 'completion': 'Fertigstellung', - 'startdate': 'Erste Buchu', - 'planstartdate': 'Erste Buchu Plan', - 'enddate': 'Letzte Buchung', - 'planenddate': 'Plan Letzte Buchung', - 'cost': 'Cost', - 'moreinfo': 'Weitere Infos', - 'nodata': 'No tasks found', - 'notes': 'Anmerkung', - 'january': 'Jänner', - 'february': 'Februar', - 'march': 'März', - 'april': 'April', + 'hrs': 't:t', + 'dys': 'pv:t', + 'wks': 'vk:t', + 'mths': 'kk:t', + 'qtrs': 'Kvartaalit', + 'res': 'Henkilö', + 'dur': 'Kesto', + 'comp': '%', + 'completion': 'Valmius', + 'startdate': 'Alkupäivä', + 'planstartdate': 'Suunniteltu alkupäivä', + 'enddate': 'Päättymispäivä', + 'planenddate': 'Suunniteltu päättymispäivä', + 'cost': 'Kustannus', + 'moreinfo': 'Lisätieto', + 'nodata': 'Tehtäviä ei löydy', + 'notes': 'Muistiinpanot', + 'january': 'Tammikuu', + 'february': 'Helmikuu', + 'march': 'Maaliskuu', + 'april': 'Huhtikuu', + 'maylong': 'Toukokuu', + 'june': 'Kesäkuu', + 'july': 'Heinäkuu', + 'august': 'Elokuu', + 'september': 'Syyskuu', + 'october': 'Lokakuu', + 'november': 'Marraskuu', + 'december': 'Joulukuu', + 'jan': 'Tammi', + 'feb': 'Helmi', + 'mar': 'Maalis', + 'apr': 'Huhti', + 'may': 'Touko', + 'jun': 'Kesä', + 'jul': 'Heinä', + 'aug': 'Elo', + 'sep': 'Syys', + 'oct': 'Loka', + 'nov': 'Marras', + 'dec': 'Joulu', + 'sunday': 'Sunnuntai', + 'monday': 'Maanantai', + 'tuesday': 'Tiista', + 'wednesday': 'Keskiviikko', + 'thursday': 'Torstai', + 'friday': 'Perjantai', + 'saturday': 'Lauantai', + 'sun': 'Su', + 'mon': 'Ma', + 'tue': 'Ti', + 'wed': 'Ke', + 'thu': 'To', + 'fri': 'Pe', + 'sat': 'La', + 'tooltipLoading': 'Ladataan...' +}; +exports.fi = fi; +/** + * Mois : http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3619 + Jours : http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3617 + */ +var fr = { + 'january': 'Janvier', + 'february': 'Février', + 'march': 'Mars', + 'april': 'Avril', 'maylong': 'Mai', + 'june': 'Juin', + 'july': 'Juillet', + 'august': 'Août', + 'september': 'Septembre', + 'october': 'Octobre', + 'november': 'Novembre', + 'december': 'Décembre', + 'jan': 'Janv', + 'feb': 'Févr', + 'mar': 'Mars', + 'apr': 'Avr', + 'may': 'Mai', + 'jun': 'Juin', + 'jul': 'Juil', + 'aug': 'Août', + 'sep': 'Sept', + 'oct': 'Oct', + 'nov': 'Nov', + 'dec': 'Déc', + 'sunday': 'Dimanche', + 'monday': 'Lundi', + 'tuesday': 'Mardi', + 'wednesday': 'Mercredi', + 'thursday': 'Jeudi', + 'friday': 'Vendredi', + 'saturday': 'Samedi', + 'sun': 'Dim', + 'mon': 'Lun', + 'tue': 'Mar', + 'wed': 'Mer', + 'thu': 'Jeu', + 'fri': 'Ven', + 'sat': 'Sam', + 'res': 'Ressource', + 'dur': 'Durée', + 'comp': '%', + 'completion': 'Terminé', + 'startdate': 'Début', + 'planstartdate': 'Plan Début', + 'enddate': 'Fin', + 'planenddate': 'Plan Fin', + 'cost': 'Cost', + 'moreinfo': "Plus d'informations", + 'nodata': 'No tasks found', + 'notes': 'Notes', + 'format': 'Format', + 'hour': 'Heure', + 'day': 'Jour', + 'week': 'Semaine', + 'month': 'Mois', + 'quarter': 'Trimestre', + 'hours': 'Heures', + 'days': 'Jours', + 'weeks': 'Semaines', + 'months': 'Mois', + 'quarters': 'Trimestres', + 'hr': 'h', + 'dy': 'j', + 'wk': 'sem', + 'mth': 'mois', + 'qtr': 'tri', + 'hrs': 'h', + 'dys': 'j', + 'wks': 'sem', + 'mths': 'mois', + 'qtrs': 'tri' +}; +exports.fr = fr; +var he = { + 'format': 'תבנית', + 'hour': 'שעה', + 'day': 'יום', + 'week': 'שבוע', + 'month': 'חודש', + 'quarter': 'רבעון', + 'hours': 'שעות', + 'days': 'ימים', + 'weeks': 'שבועות', + 'months': 'חודשים', + 'quarters': 'רבעונים', + 'hr': 'שעה', + 'dy': 'יום', + 'wk': 'שבוע', + 'mth': 'חודש', + 'qtr': 'רבעון', + 'hrs': 'שעות', + 'dys': 'ימים', + 'wks': 'שבועות', + 'mths': 'חודשים', + 'qtrs': 'רבעונים', + 'res': 'משאב', + 'dur': 'משך', + 'comp': '%', + 'completion': 'השלמה', + 'startdate': 'תאריך התחלה', + 'planstartdate': 'תאריך התחלה מתוכנן', + 'enddate': 'תאריך סיום', + 'planenddate': 'תאריך סיום מתוכנן', + 'cost': 'עלות', + 'moreinfo': 'מידע נוסף', + 'nodata': 'לא נמצאו משימות', + 'notes': 'הערות', + 'january': 'ינואר', + 'february': 'פברואר', + 'march': 'מרץ', + 'april': 'אפריל', + 'maylong': 'מאי', + 'june': 'יוני', + 'july': 'יולי', + 'august': 'אוגוסט', + 'september': 'ספטמבר', + 'october': 'אוקטובר', + 'november': 'נובמבר', + 'december': 'דצמבר', + 'jan': 'ינו', + 'feb': 'פבר', + 'mar': 'מרץ', + 'apr': 'אפר', + 'may': 'מאי', + 'jun': 'יוני', + 'jul': 'יולי', + 'aug': 'אוג', + 'sep': 'ספט', + 'oct': 'אוק', + 'nov': 'נוב', + 'dec': 'דצמ', + 'sunday': 'יום ראשון', + 'monday': 'יום שני', + 'tuesday': 'יום שלישי', + 'wednesday': 'יום רביעי', + 'thursday': 'الخميس', + 'friday': 'الجمعة', + 'saturday': 'السبت', + 'sun': 'الأحد', + 'mon': 'الإثنين', + 'tue': 'الثلاثاء', + 'wed': 'الأربعاء', + 'thu': 'الخميس', + 'fri': 'الجمعة', + 'sat': 'السبت', + 'tooltipLoading': 'جارٍ التحميل...' +}; +exports.he = he; +var it = { + 'format': 'Formato', + 'hour': 'Ora', + 'day': 'Giorno', + 'week': 'Settimana', + 'month': 'Mese', + 'quarter': 'Trimestre', + 'hours': 'Ore', + 'days': 'Giorni', + 'weeks': 'Mesi', + 'months': 'Settimane', + 'quarters': 'Trimestri', + 'hr': 'Ora', + 'dy': 'G', + 'wk': 'Sett.', + 'mth': 'Mese', + 'qtr': 'Trim.', + 'hrs': 'Ora', + 'dys': 'GG', + 'wks': 'Sett.', + 'mths': 'Mesi', + 'qtrs': 'Trim.', + 'res': 'Risorsa', + 'dur': 'Durata', + 'comp': '%', + 'completion': 'Completamento', + 'startdate': 'Data inizio', + 'planstartdate': 'Piano data inizio', + 'enddate': 'Data fine', + 'planenddate': 'Piano data fine', + 'cost': 'Costo', + 'moreinfo': 'Più informazioni', + 'nodata': 'Nessun task trovato', + 'notes': 'Note', + 'january': 'Gennaio', + 'february': 'Febbraio', + 'march': 'Marzo', + 'april': 'Aprile', + 'maylong': 'Maggio', + 'june': 'Giugno', + 'july': 'Luglio', + 'august': 'Agosto', + 'september': 'Settembre', + 'october': 'Ottobre', + 'november': 'Novembre', + 'december': 'Dicembre', + 'jan': 'Gen', + 'feb': 'Feb', + 'mar': 'Mar', + 'apr': 'Apr', + 'may': 'Mag', + 'jun': 'Giu', + 'jul': 'Lug', + 'aug': 'Ago', + 'sep': 'Set', + 'oct': 'Ott', + 'nov': 'Nov', + 'dec': 'Dic', + 'sunday': 'Domenica', + 'monday': 'Lunedì', + 'tuesday': 'Martedì', + 'wednesday': 'Mercoledì', + 'thursday': 'Giovedì', + 'friday': 'Venerdì', + 'saturday': 'Sabato', + 'sun': 'Dom', + 'mon': 'Lun', + 'tue': 'Mar', + 'wed': 'Mer', + 'thu': 'Gio', + 'fri': 'Ven', + 'sat': 'Sab', + 'tooltipLoading': 'Caricamento...' +}; +exports.it = it; +var hu = { + 'format': 'Formátum', + 'hour': 'Óra', + 'day': 'Nap', + 'week': 'Hét', + 'month': 'Hónap', + 'quarter': 'Negyedév ', + 'hours': 'Órák', + 'days': 'Nap', + 'weeks': 'Hét', + 'months': 'Hónap', + 'quarters': 'Negyedév', + 'hr': 'Ó', + 'dy': 'Nap', + 'wk': 'Hét', + 'mth': 'Hó', + 'qtr': 'NÉ', + 'hrs': 'Óra', + 'dys': 'Nap', + 'wks': 'Hét', + 'mths': 'Hó', + 'qtrs': 'NÉ', + 'res': 'Erőforrás', + 'dur': 'Időtartam', + 'comp': '%', + 'completion': 'Elkészült', + 'startdate': 'Kezdés', + 'planstartdate': 'Tervezett kezdés', + 'enddate': 'Befejezés', + 'planenddate': 'Tervezett befejezés', + 'cost': 'Költség', + 'moreinfo': 'További információ', + 'nodata': 'No tasks found', + 'notes': 'Jegyzetek', + 'january': 'Január', + 'february': 'Február', + 'march': 'Március', + 'april': 'Április', + 'maylong': 'Május', + 'june': 'Június', + 'july': 'Július', + 'august': 'Augusztus', + 'september': 'Szeptember', + 'october': 'Október', + 'november': 'November', + 'december': 'December', + 'jan': 'Jan', + 'feb': 'Feb', + 'mar': 'Már', + 'apr': 'Ápr', + 'may': 'Máj', + 'jun': 'Jún', + 'jul': 'Júl', + 'aug': 'Aug', + 'sep': 'Szep', + 'oct': 'Okt', + 'nov': 'Nov', + 'dec': 'Dec', + 'sunday': 'Vasárnap', + 'monday': 'Hétfő', + 'tuesday': 'Kedd', + 'wednesday': 'Szerda', + 'thursday': 'Csütörtök', + 'friday': 'Péntek', + 'saturday': 'Szombat', + 'sun': 'Vas', + 'mon': 'Hé', + 'tue': 'Ke', + 'wed': 'Sze', + 'thu': 'Csü', + 'fri': 'Pén', + 'sat': 'Szo', + 'tooltipLoading': 'Belöltés...' +}; +exports.hu = hu; +var id = { + 'format': 'Format', + 'hour': 'Jam', + 'day': 'Hari', + 'week': 'Minggu', + 'month': 'Bulan', + 'quarter': 'Kuartal', + 'hours': 'Jam', + 'days': 'Hari', + 'weeks': 'Minggu', + 'months': 'Bulan', + 'quarters': 'Kuartal', + 'hr': 'Jam', + 'dy': 'Hari', + 'wk': 'Min', + 'mth': 'Bln', + 'qtr': 'Krtl', + 'hrs': 'Jam', + 'dys': 'Hari', + 'wks': 'Min', + 'mths': 'Bln', + 'qtrs': 'Krtl', + 'res': 'Sumber Daya', + 'dur': 'Durasi', + 'comp': '%', + 'completion': 'Penyelesaian', + 'startdate': 'Tanggal Mulai', + 'planstartdate': 'Perencanaan Tanggal Mulai', + 'enddate': 'Tanggal Akhir', + 'planenddate': 'Perencanaan Tanggal Akhir', + 'cost': 'Biaya', + 'moreinfo': 'Informasi Lebih Lanjut', + 'nodata': 'No tasks found', + 'notes': 'Catatan', + 'january': 'Januari', + 'february': 'Februari', + 'march': 'Maret', + 'april': 'April', + 'maylong': 'Mei', 'june': 'Juni', 'july': 'Juli', - 'august': 'August', + 'august': 'Agustus', 'september': 'September', 'october': 'Oktober', 'november': 'November', - 'december': 'Dezember', + 'december': 'Desember', 'jan': 'Jan', 'feb': 'Feb', 'mar': 'Mar', 'apr': 'Apr', - 'may': 'Mai', + 'may': 'Mei', 'jun': 'Jun', 'jul': 'Jul', - 'aug': 'Aug', + 'aug': 'Agu', 'sep': 'Sep', 'oct': 'Okt', 'nov': 'Nov', - 'dec': 'Dez', - 'sunday': 'Sonntag', - 'monday': 'Montag', - 'tuesday': 'Dienstag', - 'wednesday': 'Mittwoch', - 'thursday': 'Donnerstag', - 'friday': 'Freitag', - 'saturday': 'Samstag', - 'sun': 'So', - 'mon': 'Mo', 'tue': 'Di', 'wed': 'Mi', 'thu': 'Do', 'fri': 'Fr', 'sat': 'Sa' + 'dec': 'Des', + 'sunday': 'Minggu', + 'monday': 'Senin', + 'tuesday': 'Selasa', + 'wednesday': 'Rabu', + 'thursday': 'Kamis', + 'friday': 'Jumat', + 'saturday': 'Sabtu', + 'sun': 'Min', + 'mon': 'Sen', + 'tue': 'Sel', + 'wed': 'Rab', + 'thu': 'Kam', + 'fri': 'Jum', + 'sat': 'Sab' }; -exports.de = de; +exports.id = id; +var ja = { + 'format': 'タイムライン表示', + 'hour': '時', + 'day': '日', + 'week': '週', + 'month': '月', + 'quarter': '四半期', + 'hours': '時間', + 'days': '日間', + 'weeks': '週間', + 'months': '月間', + 'quarters': '四半期', + 'hr': '時', + 'dy': '日', + 'wk': '週', + 'mth': '月', + 'qtr': '四', + 'hrs': '時間', + 'dys': '日間', + 'wks': '週間', + 'mths': '月間', + 'qtrs': '四半期', + 'res': 'リソース', + 'dur': '期間', + 'comp': '進捗率', + 'completion': '進捗率', + 'startdate': '開始日', + 'planstartdate': '予定開始日', + 'enddate': '期日', + 'planenddate': '予定期日', + 'cost': 'コスト', + 'moreinfo': '詳細', + 'nodata': 'No tasks found', + 'notes': 'ノート', + 'january': '1月', + 'february': '2月', + 'march': '3月', + 'april': '4月', + 'maylong': '5月', + 'june': '6月', + 'july': '7月', + 'august': '8月', + 'september': '9月', + 'october': '10月', + 'november': '11月', + 'december': '12月', + 'jan': '1月', + 'feb': '2月', + 'mar': '3月', + 'apr': '4月', + 'may': '5月', + 'jun': '6月', + 'jul': '7月', + 'aug': '8月', + 'sep': '9月', + 'oct': '10月', + 'nov': '11月', + 'dec': '12月', + 'sunday': '日曜日', + 'monday': '月曜日', + 'tuesday': '火曜日', + 'wednesday': '水曜日', + 'thursday': '木曜日', + 'friday': '金曜日', + 'saturday': '土曜日', + 'sun': '日', + 'mon': '月', + 'tue': '火', + 'wed': '水', + 'thu': '木', + 'fri': '金', + 'sat': '土', + 'tooltipLoading': 'ローディング中...' +}; +exports.ja = ja; +var ko = { + 'format': '구분', + 'hour': '시', + 'day': '일', + 'week': '주', + 'month': '월', + 'quarter': '분기', + 'hours': '시', + 'days': '일', + 'weeks': '주', + 'months': '월', + 'quarters': '분기', + 'hr': '시', + 'dy': '일', + 'wk': '주', + 'mth': '월', + 'qtr': '분기', + 'hrs': '시', + 'dys': '일', + 'wks': '주', + 'mths': '월', + 'qtrs': '분기', + 'res': '이름', + 'dur': '기간', + 'comp': '%', + 'completion': '완료', + 'startdate': '시작일자', + 'planstartdate': '계획 시작일자', + 'enddate': '종료일자', + 'planenddate': '계획 종료일자', + 'cost': '비용', + 'moreinfo': '더 많은 정보', + 'nodata': 'No tasks found', + 'notes': '비고', + 'january': '1월', + 'february': '2월', + 'march': '3월', + 'april': '4월', + 'maylong': '5월', + 'june': '6월', + 'july': '7월', + 'august': '8월', + 'september': '9월', + 'october': '10월', + 'november': '11월', + 'december': '12월', + 'jan': '1', + 'feb': '2', + 'mar': '3', + 'apr': '4', + 'may': '5', + 'jun': '6', + 'jul': '7', + 'aug': '8', + 'sep': '9', + 'oct': '10', + 'nov': '11', + 'dec': '12', + 'sunday': '일요일', + 'monday': '월요일', + 'tuesday': '화요일', + 'wednesday': '수요일', + 'thursday': '목요일', + 'friday': '금요일', + 'saturday': '토요일', + 'sun': '일', + 'mon': '월', + 'tue': '화', + 'wed': '수', + 'thu': '목', + 'fri': '금', + 'sat': '토', + 'tooltipLoading': '로딩중...' +}; +exports.ko = ko; +var nl = { + 'format': 'Format', + 'hour': 'Uur', + 'day': 'Dag', + 'week': 'Week', + 'month': 'Maand', + 'quarter': 'Kwartaal', + 'hours': 'Uren', + 'days': 'Dagen', + 'weeks': 'Weken', + 'months': 'Maanden', + 'quarters': 'Kwartalen', + 'hr': 'uur', + 'dy': 'dag', + 'wk': 'wk', + 'mth': 'mnd', + 'qtr': 'kw', + 'hrs': 'uren', + 'dys': 'dagen', + 'wks': 'weken', + 'mths': 'maanden', + 'qtrs': 'kwartalen', + 'res': 'Resource', + 'dur': 'Doorlooptijd', + 'comp': '%', + 'completion': 'Gereed', + 'startdate': 'Startdatum', + 'planstartdate': 'Geplande startdatum', + 'enddate': 'Einddatum', + 'planenddate': 'Geplande einddatum', + 'cost': 'Kosten', + 'moreinfo': 'Meer informatie', + 'nodata': 'Geen taken gevonden', + 'notes': 'Notities', + 'january': 'januari', + 'february': 'februari', + 'march': 'maart', + 'april': 'april', + 'maylong': 'mei', + 'june': 'juni', + 'july': 'juli', + 'august': 'augustus', + 'september': 'september', + 'october': 'oktober', + 'november': 'november', + 'december': 'december', + 'jan': 'jan', + 'feb': 'feb', + 'mar': 'mrt', + 'apr': 'apr', + 'may': 'mei', + 'jun': 'jun', + 'jul': 'jul', + 'aug': 'aug', + 'sep': 'sep', + 'oct': 'okt', + 'nov': 'nov', + 'dec': 'dec', + 'sunday': 'zondag', + 'monday': 'maandag', + 'tuesday': 'dinsdag', + 'wednesday': 'woensdag', + 'thursday': 'donderdag', + 'friday': 'vrijdag', + 'saturday': 'zaterdag', + 'sun': 'zo', + 'mon': 'ma', + 'tue': 'di', + 'wed': 'wo', + 'thu': 'do', + 'fri': 'vr', + 'sat': 'za' +}; +exports.nl = nl; +var pl = { + 'format': 'Format', + 'hour': 'Godzina', + 'day': 'Dzień', + 'week': 'Tydzień', + 'month': 'Miesiąc', + 'quarter': 'Kwartał', + 'hours': 'Godziny', + 'days': 'Dni', + 'weeks': 'Tygodni', + 'months': 'Miesięcy', + 'quarters': 'Kwartały', + 'hr': 'godz.', + 'dy': 'd.', + 'wk': 'tydz.', + 'mth': 'mies.', + 'qtr': 'kw.', + 'hrs': 'godz.', + 'dys': 'd.', + 'wks': 'tyg.', + 'mths': 'mies.', + 'qtrs': 'kw.', + 'res': 'Zasób', + 'dur': 'Czas trwania', + 'comp': '%', + 'completion': 'Ukończenie', + 'startdate': 'Data Startu', + 'planstartdate': 'Planowana Data Startu', + 'enddate': 'Data Zakończenia', + 'planenddate': 'Planowana Data Zakończenia', + 'cost': 'Koszt', + 'moreinfo': 'Więcej Inormacji', + 'nodata': 'Nie znaleziono zadań', + 'notes': 'Dodatkowe Informacje', + 'january': 'Styczeń', + 'february': 'Luty', + 'march': 'Marzec', + 'april': 'Kwiecień', + 'maylong': 'Maj', + 'june': 'Czerwiec', + 'july': 'Lipiec', + 'august': 'Sierpień', + 'september': 'Wrzesień', + 'october': 'Październik', + 'november': 'Listopad', + 'december': 'Grudzień', + 'jan': 'St', + 'feb': 'Lut', + 'mar': 'Mar', + 'apr': 'Kw', + 'may': 'Maj', + 'jun': 'Cz', + 'jul': 'Lip', + 'aug': 'Sier', + 'sep': 'Wrz', + 'oct': 'Paź', + 'nov': 'Lis', + 'dec': 'Gr', + 'sunday': 'Niedziela', + 'monday': 'Poniedziałek', + 'tuesday': 'Wtorek', + 'wednesday': 'Środa', + 'thursday': 'Czwartek', + 'friday': 'Piątek', + 'saturday': 'Sobota', + 'sun': 'Nd', + 'mon': 'Pon', + 'tue': 'Wt', + 'wed': 'Śr', + 'thu': 'Czw', + 'fri': 'Pt', + 'sat': 'So', + 'tooltipLoading': 'Ładowanie...' +}; +exports.pl = pl; var pt = { 'hours': 'Horas', 'days': 'Dias', @@ -2002,7 +3065,7 @@ var pt = { 'mths': 'meses', 'qtrs': 'qtrs', 'completion': 'Terminado', - 'comp': '% Completado', + 'comp': '%', 'moreinfo': 'Mais informações', 'nodata': 'Sem atividades', 'notes': 'Notas', @@ -2086,7 +3149,7 @@ var ru = { 'sat': ' Сб', 'res': 'Ресурс', 'dur': 'Длительность', - 'comp': '% выполнения', + 'comp': '%', 'completion': 'Выполнено', 'startdate': 'Нач. дата', 'planstartdate': 'Plan Нач. дата', @@ -2120,158 +3183,6 @@ var ru = { 'tooltipLoading': 'Загрузка...' }; exports.ru = ru; -/** - * Mois : http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3619 - Jours : http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3617 - */ -var fr = { - 'january': 'Janvier', - 'february': 'Février', - 'march': 'Mars', - 'april': 'Avril', - 'maylong': 'Mai', - 'june': 'Juin', - 'july': 'Juillet', - 'august': 'Août', - 'september': 'Septembre', - 'october': 'Octobre', - 'november': 'Novembre', - 'december': 'Décembre', - 'jan': 'Janv', - 'feb': 'Févr', - 'mar': 'Mars', - 'apr': 'Avr', - 'may': 'Mai', - 'jun': 'Juin', - 'jul': 'Juil', - 'aug': 'Août', - 'sep': 'Sept', - 'oct': 'Oct', - 'nov': 'Nov', - 'dec': 'Déc', - 'sunday': 'Dimanche', - 'monday': 'Lundi', - 'tuesday': 'Mardi', - 'wednesday': 'Mercredi', - 'thursday': 'Jeudi', - 'friday': 'Vendredi', - 'saturday': 'Samedi', - 'sun': 'Dim', - 'mon': 'Lun', - 'tue': 'Mar', - 'wed': 'Mer', - 'thu': 'Jeu', - 'fri': 'Ven', - 'sat': 'Sam', - 'res': 'Ressource', - 'dur': 'Durée', - 'comp': '% Term.', - 'completion': 'Terminé', - 'startdate': 'Début', - 'planstartdate': 'Plan Début', - 'enddate': 'Fin', - 'planenddate': 'Plan Fin', - 'cost': 'Cost', - 'moreinfo': "Plus d'informations", - 'nodata': 'No tasks found', - 'notes': 'Notes', - 'format': 'Format', - 'hour': 'Heure', - 'day': 'Jour', - 'week': 'Semaine', - 'month': 'Mois', - 'quarter': 'Trimestre', - 'hours': 'Heures', - 'days': 'Jours', - 'weeks': 'Semaines', - 'months': 'Mois', - 'quarters': 'Trimestres', - 'hr': 'h', - 'dy': 'j', - 'wk': 'sem', - 'mth': 'mois', - 'qtr': 'tri', - 'hrs': 'h', - 'dys': 'j', - 'wks': 'sem', - 'mths': 'mois', - 'qtrs': 'tri' -}; -exports.fr = fr; -var cn = { - 'january': '一月', - 'february': '二月', - 'march': '三月', - 'april': '四月', - 'maylong': '五月', - 'june': '六月', - 'july': '七月', - 'august': '八月', - 'september': '九月', - 'october': '十月', - 'november': '十一月', - 'december': '十二月', - 'jan': '一月', - 'feb': '二月', - 'mar': '三月', - 'apr': '四月', - 'may': '五月', - 'jun': '六月', - 'jul': '七月', - 'aug': '八月', - 'sep': '九月', - 'oct': '十月', - 'nov': '十一月', - 'dec': '十二月', - 'sunday': '星期日', - 'monday': '星期一', - 'tuesday': '星期二', - 'wednesday': '星期三', - 'thursday': '星期四', - 'friday': '星期五', - 'saturday': '星期六', - 'sun': '星期日', - 'mon': '星期一', - 'tue': '星期二', - 'wed': '星期三', - 'thu': '星期四', - 'fri': '星期五', - 'sat': '星期六', - 'res': '資源', - 'dur': '時程', - 'comp': '達成率', - 'completion': '達成', - 'startdate': '起始日期', - 'planstartdate': '計劃起始日期', - 'enddate': '截止日期', - 'planenddate': '計劃截止日期', - 'cost': '成本', - 'moreinfo': "更多資訊", - 'nodata': 'No tasks found', - 'notes': '備註', - 'format': '格式', - 'hour': '時', - 'day': '日', - 'week': '星期', - 'month': '月', - 'quarter': '季', - 'hours': '小時', - 'days': '天', - 'weeks': '週', - 'months': '月', - 'quarters': '季', - 'hr': '小時', - 'dy': '天', - 'wk': '週', - 'mth': '月', - 'qtr': '季', - 'hrs': '小時', - 'dys': '天', - 'wks': '週', - 'mths': '月', - 'qtrs': '季' -}; -exports.cn = cn; var sv = { 'format': 'Filter', 'hour': 'Timme', @@ -2296,7 +3207,7 @@ var sv = { 'qtrs': 'Q', 'res': 'Resurs', 'dur': 'Tidsåtgång', - 'comp': '% klart', + 'comp': '%', 'completion': 'Klart', 'startdate': 'Startdatum', 'planstartdate': 'Planerad startdatum', @@ -2346,154 +3257,6 @@ var sv = { 'sat': 'lör' }; exports.sv = sv; -var nl = { - 'format': 'Format', - 'hour': 'Uur', - 'day': 'Dag', - 'week': 'Week', - 'month': 'Maand', - 'quarter': 'Kwartaal', - 'hours': 'Uren', - 'days': 'Dagen', - 'weeks': 'Weken', - 'months': 'Maanden', - 'quarters': 'Kwartalen', - 'hr': 'uur', - 'dy': 'dag', - 'wk': 'wk', - 'mth': 'mnd', - 'qtr': 'kw', - 'hrs': 'uren', - 'dys': 'dagen', - 'wks': 'weken', - 'mths': 'maanden', - 'qtrs': 'kwartalen', - 'res': 'Resource', - 'dur': 'Doorlooptijd', - 'comp': '% gereed', - 'completion': 'Gereed', - 'startdate': 'Startdatum', - 'planstartdate': 'Geplande startdatum', - 'enddate': 'Einddatum', - 'planenddate': 'Geplande einddatum', - 'cost': 'Kosten', - 'moreinfo': 'Meer informatie', - 'nodata': 'No tasks found', - 'notes': 'Notities', - 'january': 'januari', - 'february': 'februari', - 'march': 'maart', - 'april': 'april', - 'maylong': 'mei', - 'june': 'juni', - 'july': 'juli', - 'august': 'augustus', - 'september': 'september', - 'october': 'oktober', - 'november': 'november', - 'december': 'december', - 'jan': 'jan', - 'feb': 'feb', - 'mar': 'mrt', - 'apr': 'apr', - 'may': 'mei', - 'jun': 'jun', - 'jul': 'jul', - 'aug': 'aug', - 'sep': 'sep', - 'oct': 'okt', - 'nov': 'nov', - 'dec': 'dec', - 'sunday': 'zondag', - 'monday': 'maandag', - 'tuesday': 'dinsdag', - 'wednesday': 'woensdag', - 'thursday': 'donderdag', - 'friday': 'vrijdag', - 'saturday': 'zaterdag', - 'sun': 'zo', - 'mon': 'ma', - 'tue': 'di', - 'wed': 'wo', - 'thu': 'do', - 'fri': 'vr', - 'sat': 'za' -}; -exports.nl = nl; -var id = { - 'format': 'Format', - 'hour': 'Jam', - 'day': 'Hari', - 'week': 'Minggu', - 'month': 'Bulan', - 'quarter': 'Kuartal', - 'hours': 'Jam', - 'days': 'Hari', - 'weeks': 'Minggu', - 'months': 'Bulan', - 'quarters': 'Kuartal', - 'hr': 'Jam', - 'dy': 'Hari', - 'wk': 'Min', - 'mth': 'Bln', - 'qtr': 'Krtl', - 'hrs': 'Jam', - 'dys': 'Hari', - 'wks': 'Min', - 'mths': 'Bln', - 'qtrs': 'Krtl', - 'res': 'Sumber Daya', - 'dur': 'Durasi', - 'comp': '% Penyelesaian', - 'completion': 'Penyelesaian', - 'startdate': 'Tanggal Mulai', - 'planstartdate': 'Perencanaan Tanggal Mulai', - 'enddate': 'Tanggal Akhir', - 'planenddate': 'Perencanaan Tanggal Akhir', - 'cost': 'Biaya', - 'moreinfo': 'Informasi Lebih Lanjut', - 'nodata': 'No tasks found', - 'notes': 'Catatan', - 'january': 'Januari', - 'february': 'Februari', - 'march': 'Maret', - 'april': 'April', - 'maylong': 'Mei', - 'june': 'Juni', - 'july': 'Juli', - 'august': 'Agustus', - 'september': 'September', - 'october': 'Oktober', - 'november': 'November', - 'december': 'Desember', - 'jan': 'Jan', - 'feb': 'Feb', - 'mar': 'Mar', - 'apr': 'Apr', - 'may': 'Mei', - 'jun': 'Jun', - 'jul': 'Jul', - 'aug': 'Agu', - 'sep': 'Sep', - 'oct': 'Okt', - 'nov': 'Nov', - 'dec': 'Des', - 'sunday': 'Minggu', - 'monday': 'Senin', - 'tuesday': 'Selasa', - 'wednesday': 'Rabu', - 'thursday': 'Kamis', - 'friday': 'Jumat', - 'saturday': 'Sabtu', - 'sun': 'Min', - 'mon': 'Sen', - 'tue': 'Sel', - 'wed': 'Rab', - 'thu': 'Kam', - 'fri': 'Jum', - 'sat': 'Sab' -}; -exports.id = id; var tr = { 'format': 'Biçim', 'hour': 'Saat', @@ -2518,7 +3281,7 @@ var tr = { 'qtrs': 'Çyrk', 'res': 'Kaynak', 'dur': 'Süre', - 'comp': '% Tamamlanma.', + 'comp': '%.', 'completion': 'Tamamlanma', 'startdate': 'Başlangıç Tarihi', 'planstartdate': 'Plan Başlama Tarihi', @@ -2568,310 +3331,86 @@ var tr = { 'sat': 'Cmt' }; exports.tr = tr; -var ja = { - 'format': 'タイムライン表示', - 'hour': '時', - 'day': '日', - 'week': '週', - 'month': '月', - 'quarter': '四半期', - 'hours': '時間', - 'days': '日間', - 'weeks': '週間', - 'months': '月間', - 'quarters': '四半期', - 'hr': '時', - 'dy': '日', - 'wk': '週', - 'mth': '月', - 'qtr': '四', - 'hrs': '時間', - 'dys': '日間', - 'wks': '週間', - 'mths': '月間', - 'qtrs': '四半期', - 'res': 'リソース', - 'dur': '期間', - 'comp': '進捗率', - 'completion': '進捗率', - 'startdate': '開始日', - 'planstartdate': '予定開始日', - 'enddate': '期日', - 'planenddate': '予定期日', - 'cost': 'コスト', - 'moreinfo': '詳細', - 'nodata': 'No tasks found', - 'notes': 'ノート', - 'january': '1月', - 'february': '2月', - 'march': '3月', - 'april': '4月', - 'maylong': '5月', - 'june': '6月', - 'july': '7月', - 'august': '8月', - 'september': '9月', - 'october': '10月', - 'november': '11月', - 'december': '12月', - 'jan': '1月', - 'feb': '2月', - 'mar': '3月', - 'apr': '4月', - 'may': '5月', - 'jun': '6月', - 'jul': '7月', - 'aug': '8月', - 'sep': '9月', - 'oct': '10月', - 'nov': '11月', - 'dec': '12月', - 'sunday': '日曜日', - 'monday': '月曜日', - 'tuesday': '火曜日', - 'wednesday': '水曜日', - 'thursday': '木曜日', - 'friday': '金曜日', - 'saturday': '土曜日', - 'sun': '日', - 'mon': '月', - 'tue': '火', - 'wed': '水', - 'thu': '木', - 'fri': '金', - 'sat': '土', - 'tooltipLoading': 'ローディング中...' +var ua = { + 'january': 'Січень', + 'february': 'Лютий', + 'march': 'Березень', + 'april': 'Квітень', + 'maylong': 'Травень', + 'june': 'Червень', + 'july': 'Липень', + 'august': 'Серпень', + 'september': 'Вересень', + 'october': 'Жовтень', + 'november': 'Листопад', + 'december': 'Грудень', + 'jan': 'Січ', + 'feb': 'Лют', + 'mar': 'Бер', + 'apr': 'Кві', + 'may': 'Тра', + 'jun': 'Чер', + 'jul': 'Лип', + 'aug': 'Сер', + 'sep': 'Вер', + 'oct': 'Жов', + 'nov': 'Лис', + 'dec': 'Гру', + 'sunday': 'Неділя', + 'monday': 'Понеділок', + 'tuesday': 'Вівторок', + 'wednesday': 'Середа', + 'thursday': 'Четвер', + 'friday': 'П\'ятниця', + 'saturday': 'Субота', + 'sun': ' Нд', + 'mon': 'Пн', + 'tue': ' Вт', + 'wed': 'Ср', + 'thu': ' Чт', + 'fri': ' Пт', + 'sat': ' Сб', + 'res': 'Ресурс', + 'dur': 'Тривалість', + 'comp': '%', + 'completion': 'Виконано', + 'startdate': 'Поч. дата', + 'planstartdate': 'План Поч. дата', + 'enddate': 'Кін. дата', + 'planenddate': 'План Кін. дата', + 'cost': 'Вартість', + 'moreinfo': 'Деталі', + 'nodata': 'Нічого не знайдено', + 'notes': 'Нотатки', + 'format': 'Формат', + 'hour': 'Година', + 'day': 'День', + 'week': 'Тиждень', + 'month': 'Місяць', + 'quarter': 'Кварт', + 'hours': 'Годин', + 'days': 'Днів', + 'weeks': 'Тижнів', + 'months': 'Місяців', + 'quarters': 'Кварталів', + 'hr': 'г.', + 'dy': 'дн.', + 'wk': 'тиж.', + 'mth': 'міс.', + 'qtr': 'кв.', + 'hrs': 'г.', + 'dys': 'дн.', + 'wks': 'тиж.', + 'mths': 'міс.', + 'qtrs': 'кв.', + 'tooltipLoading': 'Загрузка...' }; -exports.ja = ja; -var cs = { - 'format': 'Zobrazení', - 'hour': 'Hodina', - 'day': 'Den', - 'week': 'Týden', - 'month': 'Měsíc', - 'quarter': 'Kvartál', - 'hours': 'Hodiny', - 'days': 'Dni', - 'weeks': 'Týdny', - 'months': 'Měsíce', - 'quarters': 'Kvartály', - 'hr': 'Ho', - 'dy': 'Den', - 'wk': 'Tyd', - 'mth': 'Měs', - 'qtr': 'Kvar', - 'hrs': 'Ho', - 'dys': 'Dni', - 'wks': 'Tyd', - 'mths': 'Měs', - 'qtrs': 'Kvar', - 'res': 'Přiřazeno', - 'dur': 'Trvání', - 'comp': '% Hotovo', - 'completion': 'Hotovo', - 'startdate': 'Start', - 'planstartdate': 'Plánovaný start', - 'enddate': 'Konec', - 'planenddate': 'Plánovaný konec', - 'cost': 'Náklady', - 'moreinfo': 'Více informací', - 'nodata': 'No tasks found', - 'notes': 'Poznámky', - 'january': 'Leden', - 'february': 'Únor', - 'march': 'Březen', - 'april': 'Duben', - 'maylong': 'Květen', - 'june': 'Červen', - 'july': 'Červenec', - 'august': 'Srpen', - 'september': 'Září', - 'october': 'Říjen', - 'november': 'Listopad', - 'december': 'Prosinec', - 'jan': 'Led', - 'feb': 'Úno', - 'mar': 'Bře', - 'apr': 'Dub', - 'may': 'Kvě', - 'jun': 'Čer', - 'jul': 'Čvc', - 'aug': 'Srp', - 'sep': 'Zář', - 'oct': 'Říj', - 'nov': 'Lis', - 'dec': 'Pro', - 'sunday': 'Neděle', - 'monday': 'Pondělí', - 'tuesday': 'Úterý', - 'wednesday': 'Středa', - 'thursday': 'Čtvrtek', - 'friday': 'Pátek', - 'saturday': 'Sobota', - 'sun': 'Ne', - 'mon': 'Po', - 'tue': 'Út', - 'wed': 'St', - 'thu': 'Čt', - 'fri': 'Pa', - 'sat': 'So', - 'tooltipLoading': 'Nahrávám...' -}; -exports.cs = cs; -var hu = { - 'format': 'Formátum', - 'hour': 'Óra', - 'day': 'Nap', - 'week': 'Hét', - 'month': 'Hónap', - 'quarter': 'Negyedév ', - 'hours': 'Órák', - 'days': 'Nap', - 'weeks': 'Hét', - 'months': 'Hónap', - 'quarters': 'Negyedév', - 'hr': 'Ó', - 'dy': 'Nap', - 'wk': 'Hét', - 'mth': 'Hó', - 'qtr': 'NÉ', - 'hrs': 'Óra', - 'dys': 'Nap', - 'wks': 'Hét', - 'mths': 'Hó', - 'qtrs': 'NÉ', - 'res': 'Erőforrás', - 'dur': 'Időtartam', - 'comp': '% Kész', - 'completion': 'Elkészült', - 'startdate': 'Kezdés', - 'planstartdate': 'Tervezett kezdés', - 'enddate': 'Befejezés', - 'planenddate': 'Tervezett befejezés', - 'cost': 'Költség', - 'moreinfo': 'További információ', - 'nodata': 'No tasks found', - 'notes': 'Jegyzetek', - 'january': 'Január', - 'february': 'Február', - 'march': 'Március', - 'april': 'Április', - 'maylong': 'Május', - 'june': 'Június', - 'july': 'Július', - 'august': 'Augusztus', - 'september': 'Szeptember', - 'october': 'Október', - 'november': 'November', - 'december': 'December', - 'jan': 'Jan', - 'feb': 'Feb', - 'mar': 'Már', - 'apr': 'Ápr', - 'may': 'Máj', - 'jun': 'Jún', - 'jul': 'Júl', - 'aug': 'Aug', - 'sep': 'Szep', - 'oct': 'Okt', - 'nov': 'Nov', - 'dec': 'Dec', - 'sunday': 'Vasárnap', - 'monday': 'Hétfő', - 'tuesday': 'Kedd', - 'wednesday': 'Szerda', - 'thursday': 'Csütörtök', - 'friday': 'Péntek', - 'saturday': 'Szombat', - 'sun': 'Vas', - 'mon': 'Hé', - 'tue': 'Ke', - 'wed': 'Sze', - 'thu': 'Csü', - 'fri': 'Pén', - 'sat': 'Szo', - 'tooltipLoading': 'Belöltés...' -}; -exports.hu = hu; -var ko = { - 'format': '구분', - 'hour': '시', - 'day': '일', - 'week': '주', - 'month': '월', - 'quarter': '분기', - 'hours': '시', - 'days': '일', - 'weeks': '주', - 'months': '월', - 'quarters': '분기', - 'hr': '시', - 'dy': '일', - 'wk': '주', - 'mth': '월', - 'qtr': '분기', - 'hrs': '시', - 'dys': '일', - 'wks': '주', - 'mths': '월', - 'qtrs': '분기', - 'res': '이름', - 'dur': '기간', - 'comp': '% ', - 'completion': '완료', - 'startdate': '시작일자', - 'planstartdate': '계획 시작일자', - 'enddate': '종료일자', - 'planenddate': '계획 종료일자', - 'cost': '비용', - 'moreinfo': '더 많은 정보', - 'nodata': 'No tasks found', - 'notes': '비고', - 'january': '1월', - 'february': '2월', - 'march': '3월', - 'april': '4월', - 'maylong': '5월', - 'june': '6월', - 'july': '7월', - 'august': '8월', - 'september': '9월', - 'october': '10월', - 'november': '11월', - 'december': '12월', - 'jan': '1', - 'feb': '2', - 'mar': '3', - 'apr': '4', - 'may': '5', - 'jun': '6', - 'jul': '7', - 'aug': '8', - 'sep': '9', - 'oct': '10', - 'nov': '11', - 'dec': '12', - 'sunday': '일요일', - 'monday': '월요일', - 'tuesday': '화요일', - 'wednesday': '수요일', - 'thursday': '목요일', - 'friday': '금요일', - 'saturday': '토요일', - 'sun': '일', - 'mon': '월', - 'tue': '화', - 'wed': '수', - 'thu': '목', - 'fri': '금', - 'sat': '토', - 'tooltipLoading': '로딩중...' -}; -exports.ko = ko; +exports.ua = ua; },{}],9:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.includeGetSet = void 0; var date_utils_1 = require("./utils/date_utils"); var draw_columns_1 = require("./draw_columns"); exports.includeGetSet = function () { @@ -2996,6 +3535,12 @@ exports.includeGetSet = function () { this.vLangs[pLang][vKey] = (pVals[vKey]) ? document.createTextNode(pVals[vKey]).data : this.vLangs['en'][vKey]; } }; + this.setCustomLang = function (pVals) { + this.vLangs[this.vLang] = new Object(); + for (var vKey in this.vLangs['en']) { + this.vLangs[this.vLang][vKey] = (pVals[vKey]) ? document.createTextNode(pVals[vKey]).data : this.vLangs['en'][vKey]; + } + }; this.setTotalHeight = function (pVal) { this.vTotalHeight = pVal; }; // EVENTS this.setEvents = function (pEvents) { this.vEvents = pEvents; }; @@ -3094,6 +3639,7 @@ var __assign = (this && this.__assign) || function () { return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.processRows = exports.ClearTasks = exports.RemoveTaskItem = exports.AddTaskItemObject = exports.AddTaskItem = exports.createTaskInfo = exports.TaskItem = exports.TaskItemObject = exports.sortTasks = exports.taskLink = void 0; var general_utils_1 = require("./utils/general_utils"); var draw_utils_1 = require("./utils/draw_utils"); var date_utils_1 = require("./utils/date_utils"); @@ -3108,7 +3654,9 @@ exports.taskLink = function (pRef, pWidth, pHeight) { vHeight = pHeight; else vHeight = 400; - window.open(pRef, 'newwin', 'height=' + vHeight + ',width=' + vWidth); // let OpenWindow = + // @CHANGE LDR To open in same window + //window.open(pRef, 'newwin', 'height=' + vHeight + ',width=' + vWidth); // let OpenWindow = + window.location.href=pRef }; exports.sortTasks = function (pList, pID, pIdx) { if (pList.length < 2) { @@ -3146,15 +3694,16 @@ exports.TaskItemObject = function (object) { general_utils_1.internalProperties.forEach(function (property) { delete pDataObject[property]; }); - return new exports.TaskItem(object.pID, object.pName, object.pStart, object.pEnd, object.pClass, object.pLink, object.pMile, object.pRes, object.pComp, object.pGroup, object.pParent, object.pOpen, object.pDepend, object.pCaption, object.pNotes, object.pGantt, object.pCost, object.pPlanStart, object.pPlanEnd, object.pDuration, object.pBarText, object); + return new exports.TaskItem(object.pID, object.pName, object.pStart, object.pEnd, object.pClass, object.pLink, object.pMile, object.pRes, object.pComp, object.pGroup, object.pParent, object.pOpen, object.pDepend, object.pCaption, object.pNotes, object.pGantt, object.pCost, object.pPlanStart, object.pPlanEnd, object.pDuration, object.pBarText, object, object.pPlanClass); }; -exports.TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption, pNotes, pGantt, pCost, pPlanStart, pPlanEnd, pDuration, pBarText, pDataObject) { +exports.TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption, pNotes, pGantt, pCost, pPlanStart, pPlanEnd, pDuration, pBarText, pDataObject, pPlanClass) { if (pCost === void 0) { pCost = null; } if (pPlanStart === void 0) { pPlanStart = null; } if (pPlanEnd === void 0) { pPlanEnd = null; } if (pDuration === void 0) { pDuration = null; } if (pBarText === void 0) { pBarText = null; } if (pDataObject === void 0) { pDataObject = null; } + if (pPlanClass === void 0) { pPlanClass = null; } var vGantt = pGantt ? pGantt : this; var _id = document.createTextNode(pID).data; var vID = general_utils_1.hashKey(document.createTextNode(pID).data); @@ -3168,6 +3717,7 @@ exports.TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRe var vGroupMinPlanStart = null; var vGroupMinPlanEnd = null; var vClass = document.createTextNode(pClass).data; + var vPlanClass = document.createTextNode(pPlanClass).data; var vLink = document.createTextNode(pLink).data; var vMile = parseInt(document.createTextNode(pMile).data); var vRes = document.createTextNode(pRes).data; @@ -3305,6 +3855,7 @@ exports.TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRe return vEnd; }; this.getPlanStart = function () { return vPlanStart ? vPlanStart : vStart; }; + this.getPlanClass = function () { return vPlanClass && vPlanClass !== "null" ? vPlanClass : vClass; }; this.getPlanEnd = function () { return vPlanEnd ? vPlanEnd : vEnd; }; this.getCost = function () { return vCost; }; this.getGroupMinStart = function () { return vGroupMinStart; }; @@ -3407,11 +3958,11 @@ exports.TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRe vDuration = tmpPer + ' ' + ((tmpPer != 1) ? pLang['wks'] : pLang['wk']); break; case 'month': - tmpPer = Math.round(hours / 24 / 7 / 30); + tmpPer = Math.round(hours / 24 / 7 / 4.35); vDuration = tmpPer + ' ' + ((tmpPer != 1) ? pLang['mths'] : pLang['mth']); break; case 'quarter': - tmpPer = Math.round(hours / 24 / 7 / 30 / 3); + tmpPer = Math.round(hours / 24 / 7 / 13); vDuration = tmpPer + ' ' + ((tmpPer != 1) ? pLang['qtrs'] : pLang['qtr']); break; } @@ -3440,6 +3991,7 @@ exports.TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRe this.setName = function (pName) { vName = pName; }; this.setNotes = function (pNotes) { vNotes = pNotes; }; this.setClass = function (pClass) { vClass = pClass; }; + this.setPlanClass = function (pPlanClass) { vPlanClass = pPlanClass; }; this.setCost = function (pCost) { vCost = pCost; }; this.setResource = function (pRes) { vRes = pRes; }; this.setDuration = function (pDuration) { vDuration = pDuration; }; @@ -3546,7 +4098,8 @@ exports.TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRe pComp: vComp, pCost: vCost, pGroup: vGroup, - pDataObjec: vDataObject + pDataObject: vDataObject, + pPlanClass: vPlanClass }; }; }; @@ -3601,7 +4154,7 @@ exports.createTaskInfo = function (pTask, templateStrOrFn) { } if (_this.vShowTaskInfoDur == 1 && !pTask.getMile()) { vTmpDiv = draw_utils_1.newNode(vTaskInfo, 'div', null, 'gTILine gTId'); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel', _this.vLangs[_this.vLang]['duration'] + ': '); + draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel', _this.vLangs[_this.vLang]['dur'] + ': '); draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskText', pTask.getDuration(_this.vFormat, _this.vLangs[_this.vLang])); } if (_this.vShowTaskInfoComp == 1) { @@ -3611,7 +4164,7 @@ exports.createTaskInfo = function (pTask, templateStrOrFn) { } if (_this.vShowTaskInfoRes == 1) { vTmpDiv = draw_utils_1.newNode(vTaskInfo, 'div', null, 'gTILine gTIr'); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel', _this.vLangs[_this.vLang]['resource'] + ': '); + draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel', _this.vLangs[_this.vLang]['res'] + ': '); draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskText', pTask.getResource()); } if (_this.vShowTaskInfoLink == 1 && pTask.getLink() != '') { @@ -3815,6 +4368,7 @@ exports.processRows = function (pList, pID, pRow, pLevel, pOpen, pUseSort, vDebu },{"./utils/date_utils":11,"./utils/draw_utils":12,"./utils/general_utils":13}],11:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.getIsoWeek = exports.parseDateFormatStr = exports.formatDateStr = exports.parseDateStr = exports.coerceDate = exports.getMaxDate = exports.getMinDate = void 0; /** * DATES */ @@ -4110,6 +4664,7 @@ exports.getIsoWeek = function (pDate) { },{}],12:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.drawSelector = exports.sLine = exports.CalcTaskXY = exports.getArrayLocationByID = exports.newNode = exports.makeInput = void 0; var events_1 = require("../events"); exports.makeInput = function (formattedValue, editable, type, value, choices) { if (type === void 0) { type = 'text'; } @@ -4274,8 +4829,9 @@ exports.drawSelector = function (pPos) { },{"../events":5}],13:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.printChart = exports.calculateStartEndFromDepend = exports.makeRequestOldBrowsers = exports.makeRequest = exports.moveToolTip = exports.updateFlyingObj = exports.isParentElementOrSelf = exports.criticalPath = exports.hashKey = exports.hashString = exports.fadeToolTip = exports.hideToolTip = exports.isIE = exports.getOffset = exports.calculateCurrentDateOffset = exports.getScrollbarWidth = exports.getScrollPositions = exports.benchMark = exports.getZoomFactor = exports.delayedHide = exports.stripUnwanted = exports.stripIds = exports.changeFormat = exports.findObj = exports.internalPropertiesLang = exports.internalProperties = void 0; exports.internalProperties = ['pID', 'pName', 'pStart', 'pEnd', 'pClass', 'pLink', 'pMile', 'pRes', 'pComp', 'pGroup', 'pParent', - 'pOpen', 'pDepend', 'pCaption', 'pNotes', 'pGantt', 'pCost', 'pPlanStart', 'pPlanEnd']; + 'pOpen', 'pDepend', 'pCaption', 'pNotes', 'pGantt', 'pCost', 'pPlanStart', 'pPlanEnd', 'pPlanClass']; exports.internalPropertiesLang = { 'pID': 'id', 'pName': 'name', @@ -4283,7 +4839,8 @@ exports.internalPropertiesLang = { 'pEnd': 'enddate', 'pLink': 'link', 'pMile': 'mile', - 'pRes': 'resource', + 'pRes': 'res', + 'pDuration': 'dur', 'pComp': 'comp', 'pGroup': 'group', 'pParent': 'parent', @@ -4293,7 +4850,8 @@ exports.internalPropertiesLang = { 'pNotes': 'notes', 'pCost': 'cost', 'pPlanStart': 'planstartdate', - 'pPlanEnd': 'planenddate' + 'pPlanEnd': 'planenddate', + 'pPlanClass': 'planclass' }; exports.findObj = function (theObj, theDoc) { if (theDoc === void 0) { theDoc = null; } @@ -4567,14 +5125,16 @@ function isParentElementOrSelf(child, parent) { } exports.isParentElementOrSelf = isParentElementOrSelf; exports.updateFlyingObj = function (e, pGanttChartObj, pTimer) { + var documentElement = document.documentElement; + var bodyElement = document.getElementsByTagName('body')[0]; var vCurTopBuf = 3; var vCurLeftBuf = 5; var vCurBotBuf = 3; var vCurRightBuf = 15; var vMouseX = (e) ? e.clientX : window.event.clientX; var vMouseY = (e) ? e.clientY : window.event.clientY; - var vViewportX = document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth; - var vViewportY = document.documentElement.clientHeight || document.getElementsByTagName('body')[0].clientHeight; + var vViewportX = (documentElement === null || documentElement === void 0 ? void 0 : documentElement.clientWidth) || (bodyElement === null || bodyElement === void 0 ? void 0 : bodyElement.clientWidth); + var vViewportY = (documentElement === null || documentElement === void 0 ? void 0 : documentElement.clientHeight) || (bodyElement === null || bodyElement === void 0 ? void 0 : bodyElement.clientHeight); var vNewX = vMouseX; var vNewY = vMouseY; var screenX = screen.availWidth || window.innerWidth; @@ -4583,8 +5143,8 @@ exports.updateFlyingObj = function (e, pGanttChartObj, pTimer) { var vOldY = parseInt(pGanttChartObj.vTool.style.top); if (navigator.appName.toLowerCase() == 'microsoft internet explorer') { // the clientX and clientY properties include the left and top borders of the client area - vMouseX -= document.documentElement.clientLeft; - vMouseY -= document.documentElement.clientTop; + vMouseX -= documentElement === null || documentElement === void 0 ? void 0 : documentElement.clientLeft; + vMouseY -= documentElement === null || documentElement === void 0 ? void 0 : documentElement.clientTop; var vZoomFactor = exports.getZoomFactor(); if (vZoomFactor != 1) { // IE 7 at non-default zoom level vMouseX = Math.round(vMouseX / vZoomFactor); @@ -4724,10 +5284,26 @@ exports.makeRequestOldBrowsers = function (pFile, vDebug) { }; exports.calculateStartEndFromDepend = function (tasksList) { }; +exports.printChart = function (width, height, css) { + if (css === void 0) { css = undefined; } + if (css === undefined) { + css = // Default injected CSS + "@media print {\n @page {\n size: " + width + "mm " + height + "mm;\n }\n /* set gantt container to the same width as the page */\n .gchartcontainer {\n width: " + width + "mm;\n }\n };"; + } + var $container = document.querySelector('.gchartcontainer'); + $container.insertAdjacentHTML('afterbegin', ""); + // Remove the print CSS when the print dialog is closed + window.addEventListener('afterprint', function () { + $container.removeChild($container.children[0]); + }, { 'once': true }); + // Trigger the print + window.print(); +}; },{}],14:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.getXMLTask = exports.getXMLProject = exports.AddXMLTask = exports.getXMLNodeValue = exports.findXMLNode = exports.parseXMLString = exports.parseXML = void 0; var task_1 = require("./task"); var date_utils_1 = require("./utils/date_utils"); var draw_utils_1 = require("./utils/draw_utils"); @@ -4955,7 +5531,7 @@ exports.AddXMLTask = function (pGanttVar, pXmlDoc) { if (vSubCreated) pDepend = ''; // Finally add the task - pGanttVar.AddTaskItem(new task_1.TaskItem(pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption, pNotes, pGanttVar, pCost, pPlanStart, pPlanEnd, pDuration)); + pGanttVar.AddTaskItem(new task_1.TaskItem(pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption, pNotes, pGanttVar, pCost, pPlanStart, pPlanEnd, pDuration, undefined, undefined, pClass)); } } } @@ -4985,6 +5561,7 @@ exports.AddXMLTask = function (pGanttVar, pXmlDoc) { var pCaption = exports.getXMLNodeValue(Task[i], 'pCaption', 2, ''); var pNotes = exports.getXMLNodeValue(Task[i], 'pNotes', 2, ''); var pClass = exports.getXMLNodeValue(Task[i], 'pClass', 2, ''); + var pPlanClass = exports.getXMLNodeValue(Task[i], 'pPlanClass', 2, ''); if (typeof pClass == 'undefined') { if (pGroup > 0) pClass = 'ggroupblack'; @@ -4993,8 +5570,10 @@ exports.AddXMLTask = function (pGanttVar, pXmlDoc) { else pClass = 'gtaskblue'; } + if (typeof pPlanClass == 'undefined') + pPlanClass = pClass; // Finally add the task - pGanttVar.AddTaskItem(new task_1.TaskItem(pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption, pNotes, pGanttVar, pCost, pPlanStart, pPlanEnd, pDuration)); + pGanttVar.AddTaskItem(new task_1.TaskItem(pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption, pNotes, pGanttVar, pCost, pPlanStart, pPlanEnd, pDuration, undefined, undefined, pPlanClass)); } } } @@ -5055,10 +5634,11 @@ exports.getXMLTask = function (pID, pIdx) { var vTmpFrag = document.createDocumentFragment(); var vTmpDiv = draw_utils_1.newNode(vTmpFrag, 'div', null, null, this.vTaskList[vIdx].getNotes().innerHTML); vTask += '' + vTmpDiv.innerHTML + ''; + vTask += '' + this.vTaskList[vIdx].getPlanClass() + ''; vTask += ''; } return vTask; }; },{"./task":10,"./utils/date_utils":11,"./utils/draw_utils":12,"./utils/general_utils":13}]},{},[1])(1) -}); \ No newline at end of file +}); diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 526483b1339..d1ca72b826a 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -135,180 +135,97 @@ ProfId9=Professional ID 9 ProfId10=Professional ID 10 ProfId1AR=Prof Id 1 (CUIT/CUIL) ProfId2AR=Prof Id 2 (Revenu brutes) -ProfId3AR=- -ProfId4AR=- -ProfId5AR=- -ProfId6AR=- ProfId1AT=Prof Id 1 (USt.-IdNr) ProfId2AT=Prof Id 2 (USt.-Nr) ProfId3AT=Prof Id 3 (Handelsregister-Nr.) -ProfId4AT=- ProfId5AT=EORI number -ProfId6AT=- ProfId1AU=Prof Id 1 (ABN) -ProfId2AU=- -ProfId3AU=- -ProfId4AU=- -ProfId5AU=- -ProfId6AU=- ProfId1BE=Prof Id 1 (Professional number) -ProfId2BE=- -ProfId3BE=- -ProfId4BE=- ProfId5BE=EORI number -ProfId6BE=- -ProfId1BR=- ProfId2BR=IE (Inscricao Estadual) ProfId3BR=IM (Inscricao Municipal) ProfId4BR=CPF #ProfId5BR=CNAE #ProfId6BR=INSS ProfId1CH=UID-Nummer -ProfId2CH=- ProfId3CH=Prof Id 1 (Federal number) ProfId4CH=Prof Id 2 (Commercial Record number) ProfId5CH=EORI number -ProfId6CH=- ProfId1CL=Prof Id 1 (R.U.T.) -ProfId2CL=- -ProfId3CL=- -ProfId4CL=- -ProfId5CL=- -ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (No. of Creation decree) ProfId4CM=Id. prof. 4 (No. of Deposit certificate) ProfId5CM=Id. prof. 5 (Others) -ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=No. of Creation decree ProfId4ShortCM=No. of Deposit certificate ProfId5ShortCM=Others -ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) -ProfId2CO=- -ProfId3CO=- -ProfId4CO=- -ProfId5CO=- -ProfId6CO=- ProfId1DE=Prof Id 1 (USt.-IdNr) ProfId2DE=Prof Id 2 (USt.-Nr) ProfId3DE=Prof Id 3 (Handelsregister-Nr.) -ProfId4DE=- ProfId5DE=EORI number -ProfId6DE=- ProfId1ES=Prof Id 1 (CIF/NIF) ProfId2ES=Prof Id 2 (Social security number) ProfId3ES=Prof Id 3 (CNAE) ProfId4ES=Prof Id 4 (Collegiate number) ProfId5ES=Prof Id 5 (EORI number) -ProfId6ES=- ProfId1FR=Prof Id 1 (SIREN) ProfId2FR=Prof Id 2 (SIRET) ProfId3FR=Prof Id 3 (NAF, old APE) ProfId4FR=Prof Id 4 (RCS/RM) ProfId5FR=Prof Id 5 (numéro EORI) -ProfId6FR=- -ProfId7FR=- -ProfId8FR=- -ProfId9FR=- -ProfId10FR=- ProfId1ShortFR=SIREN ProfId2ShortFR=SIRET ProfId3ShortFR=NAF ProfId4ShortFR=RCS ProfId5ShortFR=EORI -ProfId6ShortFR=- -ProfId7ShortFR=- -ProfId8ShortFR=- -ProfId9ShortFR=- -ProfId10ShortFR=- ProfId1GB=Registration Number -ProfId2GB=- ProfId3GB=SIC -ProfId4GB=- -ProfId5GB=- -ProfId6GB=- ProfId1HN=Id prof. 1 (RTN) -ProfId2HN=- -ProfId3HN=- -ProfId4HN=- -ProfId5HN=- -ProfId6HN=- ProfId1IN=Prof Id 1 (TIN) ProfId2IN=Prof Id 2 (PAN) ProfId3IN=Prof Id 3 (SRVC TAX) ProfId4IN=Prof Id 4 ProfId5IN=Prof Id 5 -ProfId6IN=- -ProfId1IT=- -ProfId2IT=- -ProfId3IT=- -ProfId4IT=- ProfId5IT=EORI number -ProfId6IT=- ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg) ProfId2LU=Id. prof. 2 (Business permit) -ProfId3LU=- -ProfId4LU=- ProfId5LU=EORI number -ProfId6LU=- ProfId1MA=Id prof. 1 (R.C.) ProfId2MA=Id prof. 2 (Patente) ProfId3MA=Id prof. 3 (I.F.) ProfId4MA=Id prof. 4 (C.N.S.S.) ProfId5MA=Id prof. 5 (I.C.E.) -ProfId6MA=- ProfId1MX=Prof Id 1 (R.F.C). ProfId2MX=Prof Id 2 (R..P. IMSS) ProfId3MX=Prof Id 3 (Professional Charter) -ProfId4MX=- -ProfId5MX=- -ProfId6MX=- ProfId1NL=KVK nummer -ProfId2NL=- -ProfId3NL=- ProfId4NL=Burgerservicenummer (BSN) ProfId5NL=EORI number -ProfId6NL=- ProfId1PT=Prof Id 1 (NIPC) ProfId2PT=Prof Id 2 (Social security number) ProfId3PT=Prof Id 3 (Commercial Record number) ProfId4PT=Prof Id 4 (Conservatory) ProfId5PT=Prof Id 5 (EORI number) -ProfId6PT=- ProfId1SN=RC ProfId2SN=NINEA -ProfId3SN=- -ProfId4SN=- -ProfId5SN=- -ProfId6SN=- ProfId1TN=Prof Id 1 (RC) ProfId2TN=Prof Id 2 (Fiscal matricule) ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) -ProfId5TN=- -ProfId6TN=- ProfId1US=Prof Id (FEIN) -ProfId2US=- -ProfId3US=- -ProfId4US=- -ProfId5US=- -ProfId6US=- ProfId1RO=Prof Id 1 (CUI) ProfId2RO=Prof Id 2 (Nr. Înmatriculare) ProfId3RO=Prof Id 3 (CAEN) ProfId4RO=Prof Id 5 (EUID) ProfId5RO=Prof Id 5 (EORI number) -ProfId6RO=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) ProfId4RU=Prof Id 4 (OKPO) -ProfId5RU=- -ProfId6RU=- ProfId1UA=Prof Id 1 (EDRPOU) ProfId2UA=Prof Id 2 (DRFO) ProfId3UA=Prof Id 3 (INN) diff --git a/htdocs/margin/checkMargins.php b/htdocs/margin/checkMargins.php index 5cdee16619b..f913582de28 100644 --- a/htdocs/margin/checkMargins.php +++ b/htdocs/margin/checkMargins.php @@ -64,6 +64,8 @@ $enddate = dol_mktime(23, 59, 59, GETPOSTINT('enddatemonth'), GETPOSTINT('enddat $search_ref = GETPOST('search_ref', 'alpha'); +$hookmanager->initHooks(array('checkmarginlist')); + // Security check $result = restrictedArea($user, 'margins'); diff --git a/htdocs/projet/ganttchart.inc.php b/htdocs/projet/ganttchart.inc.php index 40d6bc3ebdf..bc55ffd671c 100644 --- a/htdocs/projet/ganttchart.inc.php +++ b/htdocs/projet/ganttchart.inc.php @@ -204,7 +204,7 @@ function constructGanttLine($tarr, $task, $task_dependencies, $level = 0, $proje //$parent = $task["task_parent"]; } // Define percent - $percent = $task['task_percent_complete'] ? $task['task_percent_complete'] : 0; + $percent = empty($task['task_percent_complete']) ? 0 : $task['task_percent_complete']; // Link (more information) if ($task["task_id"] < 0) { //$link=DOL_URL_ROOT.'/projet/tasks.php?withproject=1&id='.abs($task["task_id"]); @@ -264,9 +264,9 @@ function constructGanttLine($tarr, $task, $task_dependencies, $level = 0, $proje $taskid = $task["task_alternate_id"]; //$taskid = $task['task_id']; - $note = $task['note']; + $note = empty($task['note']) ? '' : $task['note']; - $note = dol_concatdesc($note, $langs->trans("Workload").' : '.($task['task_planned_workload'] ? convertSecondToTime($task['task_planned_workload'], 'allhourmin') : '')); + $note = dol_concatdesc($note, $langs->trans("Workload").' : '.(empty($task['task_planned_workload']) ? '' : convertSecondToTime($task['task_planned_workload'], 'allhourmin'))); $s .= "g.AddTaskItem(new JSGantt.TaskItem('".$taskid."', '".dol_escape_js(trim($name))."', '".$start_date."', '".$end_date."', '".$css."', '".$link."', ".$task['task_milestone'].", '".dol_escape_js($resources)."', ".($percent >= 0 ? $percent : 0).", ".$line_is_auto_group.", '".$parent."', 1, '".$dependency."', '".(empty($task["task_is_group"]) ? (($percent >= 0 && $percent != '') ? $percent.'%' : '') : '')."', '".dol_escape_js($note)."', g));"; echo $s; diff --git a/htdocs/projet/ganttview.php b/htdocs/projet/ganttview.php index 1ea9da66f38..b88e9a899f7 100644 --- a/htdocs/projet/ganttview.php +++ b/htdocs/projet/ganttview.php @@ -356,7 +356,7 @@ if (count($tasksarray) > 0) { //if ($s) $tasks[$taskcursor]['task_resources']=implode(',',$idofusers); $tasks[$taskcursor]['task_resources'] = $s; if ($s) { - $tasks[$taskcursor]['task_resources'] = ''.$langs->trans("List").''; + $tasks[$taskcursor]['task_resources'] = ''.$langs->trans("Contacts").''; } //print "xxx".$val->id.$tasks[$taskcursor]['task_resources']; $tasks[$taskcursor]['note'] = $task->note_public; diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php index f8cc28e05a2..015c70a72e2 100644 --- a/htdocs/projet/tasks/contact.php +++ b/htdocs/projet/tasks/contact.php @@ -413,7 +413,7 @@ if ($id > 0 || !empty($ref)) { print ''; $formcompany->selectTypeContact($object, '', 'type', 'internal', 'position'); print ''; - print ''; + print ''; print ''; // Line to add an external contact. Only if project linked to a third party. @@ -438,7 +438,7 @@ if ($id > 0 || !empty($ref)) { print ''; $formcompany->selectTypeContact($object, '', 'typecontact', 'external', 'position'); print ''; - print 'displayCanvasExists($canvasdisplayactio $i = 1; $j = 0; $NBCOLS = ($conf->browser->layout == 'phone' ? 1 : 2); - while ($i <= 6) { + $NBPROFIDMIN = getDolGlobalInt('THIRDPARTY_MIN_NB_PROF_ID', 2); + $NBPROFIDMAX = getDolGlobalInt('THIRDPARTY_MAX_NB_PROF_ID', 6); + while ($i <= $NBPROFIDMAX) { $idprof = $langs->transcountry('ProfId'.$i, $object->country_code); - if ($idprof != '-') { + if ($idprof != '-' && ($i <= $NBPROFIDMIN || !empty($langs->tab_translate['ProfId'.$i.$object->country_code]))) { $key = 'idprof'.$i; if (($j % $NBCOLS) == 0) { @@ -2281,9 +2283,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($canvasdisplayactio $i = 1; $j = 0; $NBCOLS = ($conf->browser->layout == 'phone' ? 1 : 2); - while ($i <= 6) { + $NBPROFIDMIN = getDolGlobalInt('THIRDPARTY_MIN_NB_PROF_ID', 2); + $NBPROFIDMAX = getDolGlobalInt('THIRDPARTY_MAX_NB_PROF_ID', 6); + while ($i <= $NBPROFIDMAX) { $idprof = $langs->transcountry('ProfId'.$i, $object->country_code); - if ($idprof != '-') { + if ($idprof != '-' && ($i <= $NBPROFIDMIN || !empty($langs->tab_translate['ProfId'.$i.$object->country_code]))) { $key = 'idprof'.$i; if (($j % $NBCOLS) == 0) { @@ -2705,10 +2709,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($canvasdisplayactio // Prof ids $i = 1; $j = 0; - while ($i <= 6) { + $NBPROFIDMIN = getDolGlobalInt('THIRDPARTY_MIN_NB_PROF_ID', 2); + $NBPROFIDMAX = getDolGlobalInt('THIRDPARTY_MAX_NB_PROF_ID', 6); + while ($i <= $NBPROFIDMAX) { $idprof = $langs->transcountry('ProfId'.$i, $object->country_code); - if ($idprof != '-') { - //if (($j % 2) == 0) print ''; + if ($idprof != '-' && ($i <= $NBPROFIDMIN || !empty($langs->tab_translate['ProfId'.$i.$object->country_code]))) { print ''; print ''.$idprof.''; $key = 'idprof'.$i; @@ -2723,13 +2728,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($canvasdisplayactio } } print ''; - //if (($j % 2) == 1) print ''; print ''; $j++; } $i++; } - //if ($j % 2 == 1) print ''; // This fields are used to know VAT to include in an invoice when the thirdparty is making a sale, so when it is a supplier. diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index dfdf1bc9439..5af126ea5fd 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -3961,6 +3961,13 @@ table.liste tr:last-of-type td, table.noborder:not(#tablelines):not(#tableliness border-bottom-color: var(--colortopbordertitle1); border-bottom-style: solid; } +/* CSS to remove the interline border */ +table.nointerlines tr:not(:last-child) td { + border-bottom: unset !important; + border-top: unset !important; +} + + /* div.tabBar div.fichehalfright table.noborder:not(.margintable):not(.paymenttable):not(.lastrecordtable):last-of-type { border-bottom: 1px solid var(--colortopbordertitle1); @@ -4019,10 +4026,10 @@ table.liste tr, table.noborder tr, div.noborder form { min-height: 20px; } table.liste th, table.noborder th, table.noborder tr.liste_titre td, table.noborder tr.box_titre td { - padding: 7px 8px 7px 8px; /* t r b l */ + padding: 7px 10px 7px 12px; /* t r b l */ } table.liste td, table.noborder td, div.noborder form div, table.tableforservicepart1 td, table.tableforservicepart2 td { - padding: 8px 6px 8px 6px; /* t r b l */ + padding: 8px 10px 8px 12px; /* t r b l */ /* line-height: 22px; This create trouble on cell login on list of last events of a contract*/ height: 22px; } @@ -6074,7 +6081,7 @@ td.gminorheading { }*/ .gtaskname div, .gtaskname { min-width: 250px !important; - max-width: unset !important; + max-width: 500px !important; width: unset !important; } .gpccomplete div, .gpccomplete { diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 129015d839b..d569b99b6b3 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -4086,6 +4086,11 @@ table.paddingtopbottomonly tr td { padding-top: 1px; padding-bottom: 2px; } +/* CSS to remove the interline border */ +table.nointerlines tr:not(:last-child) td { + border-bottom: unset !important; + border-top: unset !important; +} .liste_titre_filter { background: var(--colorbacktitle1) !important; @@ -4117,11 +4122,11 @@ tr#trlinefordates td { } table.liste th, table.noborder th, table.noborder tr.liste_titre td, table.noborder tr.box_titre td { - padding: 8px 6px 8px 6px; /* t r b l */ + padding: 8px 8px 8px 10px; /* t r b l */ } table.liste td, table.noborder td, div.noborder form div, table.tableforservicepart1 td, table.tableforservicepart2 td { - padding: 4px 6px 4px 6px; /* t r b l */ + padding: 4px 8px 4px 10px; /* t r b l */ height: 22px; } table.liste tr.trkanban td { diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php index ff445c5cf85..0fa0d805d28 100644 --- a/htdocs/user/bank.php +++ b/htdocs/user/bank.php @@ -85,19 +85,21 @@ if (empty($account->userid)) { } // Define value to know what current user can do on users -$canadduser = (!empty($user->admin) || $user->hasRight('user', 'user', 'creer') || $user->rights->hrm->write_personal_information->write); -$canreaduser = (!empty($user->admin) || $user->rights->user->user->lire || $user->rights->hrm->read_personal_information->read); -$permissiontoaddbankaccount = ($user->hasRight('salaries', 'write') || $user->hasRight('hrm', 'employee', 'write') || $user->hasRight('user', 'creer')); +$selfpermission = ($user->id == $id && $user->hasRight('user', 'self', 'creer')); +$canadduser = (!empty($user->admin) || $user->hasRight('user', 'user', 'creer') || $user->hasRight('hrm', 'write_personal_information', 'write') ); +$canreaduser = (!empty($user->admin) || $user->hasRight('user', 'user', 'lire') || $user->hasRight('hrm', 'read_personal_information', 'read') ); +$permissiontoaddbankaccount = ($user->hasRight('salaries', 'write') || $user->hasRight('hrm', 'employee', 'write') || $user->hasRight('user', 'user', 'creer') || $selfpermission); $permissiontoreadhr = $user->hasRight('hrm', 'read_personal_information', 'read') || $user->hasRight('hrm', 'write_personal_information', 'write'); $permissiontowritehr = $user->hasRight('hrm', 'write_personal_information', 'write'); +$permissiontosimpleedit = ($selfpermission || $canadduser); -// Ok if user->hasRight('salaries', 'read') or user->hasRight('hrm', 'read') +// Ok if user->hasRight('salaries', 'readall') or user->hasRight('hrm', 'read') //$result = restrictedArea($user, 'salaries|hrm', $object->id, 'user&user', $feature2); $ok = false; if ($user->id == $id) { $ok = true; // A user can always read its own card } -if ($user->hasRight('salaries', 'read')) { +if ($user->hasRight('salaries', 'readall')) { $ok = true; } if ($user->hasRight('hrm', 'read')) { @@ -201,7 +203,7 @@ if ($action == 'setbirth' && $canadduser && !$cancel) { } // update personal email -if ($action == 'setpersonal_email' && $canadduser && !$cancel) { +if ($action == 'setpersonal_email' && $permissiontosimpleedit && !$cancel) { $object->personal_email = (string) GETPOST('personal_email', 'alphanohtml'); $result = $object->update($user); if ($result < 0) { @@ -210,7 +212,7 @@ if ($action == 'setpersonal_email' && $canadduser && !$cancel) { } // update personal mobile -if ($action == 'setpersonal_mobile' && $canadduser && !$cancel) { +if ($action == 'setpersonal_mobile' && $permissiontosimpleedit && !$cancel) { $object->personal_mobile = (string) GETPOST('personal_mobile', 'alphanohtml'); $result = $object->update($user); if ($result < 0) { @@ -282,7 +284,7 @@ llxHeader('', $title, $help_url); $head = user_prepare_head($object); -if ($id && $bankid && $action == 'edit' && ($user->hasRight('user', 'user', 'creer') || $user->hasRight('hrm', 'write_personal_information', 'write'))) { +if ($id && $bankid && $action == 'edit' && !$cancel && $permissiontoaddbankaccount) { if ($conf->use_javascript_ajax) { print "\n