From ba52e6471c9417bb31a55797cf644c5cc43abc4f Mon Sep 17 00:00:00 2001 From: zhouxin Date: Fri, 9 Jun 2023 16:29:42 +0800 Subject: [PATCH] * Bind computeEndDate to delta in productplan-edit. --- module/productplan/js/edit.ui.js | 41 +++++++++++++++++++++++++++++ module/productplan/ui/edit.html.php | 1 + 2 files changed, 42 insertions(+) diff --git a/module/productplan/js/edit.ui.js b/module/productplan/js/edit.ui.js index 6cb509bf74..b872b828bf 100644 --- a/module/productplan/js/edit.ui.js +++ b/module/productplan/js/edit.ui.js @@ -11,3 +11,44 @@ function toggleDateVisibility() $('#end').removeAttr('disabled').closest('.form-row').show(); } } + +/** + * Convert a date string like 2011-11-11 to date object in js. + * + * @param string $date + * @access public + * @return date + */ +function convertStringToDate(dateString) +{ + dateString = dateString.split('-'); + dateString = dateString[1] + '/' + dateString[2] + '/' + dateString[0]; + + return Date.parse(dateString); +} + +/** + * Compute the end date for productplan. + * + * @param int $delta + * @access public + * @return void + */ +function computeEndDate(delta) +{ + var beginDate = $('#begin').val(); + if(!beginDate) return; + + var delta = parseInt(delta); + beginDate = convertStringToDate(beginDate); + if((delta == 7 || delta == 14) && (beginDate.getDay() == 1)) + { + delta = (weekend == 2) ? (delta - 2) : (delta - 1); + } + + var currentBeginDate = window.zui.formatDate(beginDate, 'yyyy-MM-dd'); + var endDate = window.zui.formatDate(beginDate.addDays(delta - 1), 'yyyy-MM-dd'); + + $('#begin').val(currentBeginDate); + $('#end').val(endDate).datetimepicker('update'); +} diff --git a/module/productplan/ui/edit.html.php b/module/productplan/ui/edit.html.php index d49d1b9f8d..a04f0f201b 100644 --- a/module/productplan/ui/edit.html.php +++ b/module/productplan/ui/edit.html.php @@ -15,6 +15,7 @@ namespace zin; formPanel ( set::title($lang->productplan->edit), + on::change('.radio-primary > input', 'computeEndDate'), on::change('#future_', 'toggleDateVisibility'), formGroup (