From 91bf4d6026caaaf6f8b988043799018752879421 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Mon, 20 Nov 2023 13:43:17 +0800 Subject: [PATCH] * Add required item for edit bug. --- lib/zin/wg/tabledata/css/v1.css | 3 ++- lib/zin/wg/tabledata/v1.php | 6 ++++-- module/bug/ui/edit.html.php | 11 +++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/zin/wg/tabledata/css/v1.css b/lib/zin/wg/tabledata/css/v1.css index cbfb539c83..2119e915dc 100644 --- a/lib/zin/wg/tabledata/css/v1.css +++ b/lib/zin/wg/tabledata/css/v1.css @@ -1,3 +1,4 @@ .table-data {table-layout: fixed;} .table-data th, -.table-data .table-data-th {width: 60px; color: var(--color-slate-600);} +.table-data .table-data-th {width: 65px; color: var(--color-slate-600);} +.table-data th.required:before {content: '*'; color: rgba(var(--color-danger-500-rgb),var(--tw-text-opacity)); position: relative; top: 0.25rem; right: 0.25rem;} diff --git a/lib/zin/wg/tabledata/v1.php b/lib/zin/wg/tabledata/v1.php index a173e15f64..4859449f7d 100644 --- a/lib/zin/wg/tabledata/v1.php +++ b/lib/zin/wg/tabledata/v1.php @@ -12,7 +12,8 @@ class tableData extends wg protected static array $defineProps = array( 'title?: string', 'useTable?: bool=true', - 'class?: string' + 'class?: string', + 'required?: bool=false' ); public static function getPageCSS(): string|false @@ -22,12 +23,13 @@ class tableData extends wg private function buildItemWithTr($item): wg { + $required = $item->prop('required'); return h::tr ( setClass($item->prop('trClass')), h::th ( - setClass('py-1.5 pr-2 font-normal nowrap text-right', $item->prop('thClass')), + setClass('py-1.5 pr-2 font-normal nowrap text-right' . ($required ? ' required' : ''), $item->prop('thClass')), $item->prop('name'), $item->block('suffixName') ), diff --git a/module/bug/ui/edit.html.php b/module/bug/ui/edit.html.php index 46fc984ae4..eb05d25a93 100644 --- a/module/bug/ui/edit.html.php +++ b/module/bug/ui/edit.html.php @@ -79,6 +79,7 @@ detailBody section ( set::title($lang->bug->legendSteps), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',steps,') !== false), editor ( set::name('steps'), @@ -165,6 +166,7 @@ detailBody ( set::trClass($product->shadow && isset($project) && empty($project->multiple) ? 'hidden' : ''), set::name($lang->bug->plan), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',plan,') !== false), formGroup ( set('id', 'planBox'), @@ -193,6 +195,7 @@ detailBody item ( set::name($lang->bug->type), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',type,') !== false), formGroup ( picker @@ -206,6 +209,7 @@ detailBody item ( set::name($lang->bug->severity), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',severity,') !== false), severityPicker ( set::items($lang->bug->severityList), @@ -217,6 +221,7 @@ detailBody item ( set::name($lang->bug->pri), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',pri,') !== false), priPicker ( set::items($lang->bug->priList), @@ -248,6 +253,7 @@ detailBody item ( set::name($lang->bug->assignedTo), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',assignedTo,') !== false), formGroup ( inputGroup @@ -275,6 +281,7 @@ detailBody item ( set::name($lang->bug->deadline), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',deadline,') !== false), formGroup ( datePicker @@ -305,6 +312,7 @@ detailBody item ( set::name($lang->bug->os), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',os,') !== false), formGroup ( picker @@ -319,6 +327,7 @@ detailBody item ( set::name($lang->bug->browser), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',browser,') !== false), formGroup ( picker @@ -333,6 +342,7 @@ detailBody item ( set::name($lang->bug->keywords), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',keywords,') !== false), formGroup ( input @@ -397,6 +407,7 @@ detailBody item ( set::name($lang->bug->project), + set::required(strpos(",{$config->bug->edit->requiredFields},", ',project,') !== false), formGroup ( set('id', 'projectBox'),