diff --git a/module/story/ui/affected.html.php b/module/story/ui/affected.html.php
index 4ee8e78ee0..5c5b171edc 100644
--- a/module/story/ui/affected.html.php
+++ b/module/story/ui/affected.html.php
@@ -29,58 +29,67 @@ $getAffectedTabs = function($story, $users)
);
}
- return formGroup
+ $tabs = tabs
+ (
+ setClass('w-full'),
+ tabPane
+ (
+ to::suffix(label($affectedTaskCount)),
+ set::key('affectedProjects'),
+ set::title($lang->story->affectedProjects),
+ set::active(true),
+ empty($affectedProjects) ? div(setClass('dtable-empty-tip'), div(setClass('text-gray'), $lang->noData)) : $affectedProjects
+ ),
+ tabPane
+ (
+ to::suffix(label(count($story->bugs))),
+ set::key('affectedBugs'),
+ set::title($lang->story->affectedBugs),
+ empty($story->bugs) ? div(setClass('dtable-empty-tip'), div(setClass('text-gray'), $lang->noData)) : dtable
+ (
+ set::cols($config->story->affect->bugs->fields),
+ set::data(array_values($story->bugs)),
+ set::style(array('min-width' => '100%'))
+ )
+ ),
+ tabPane
+ (
+ to::suffix(label(count($story->cases))),
+ set::key('affectedCases'),
+ set::title($lang->story->affectedCases),
+ empty($story->cases) ? div(setClass('dtable-empty-tip'), div(setClass('text-gray'), $lang->noData)) : dtable
+ (
+ set::cols($config->story->affect->cases->fields),
+ set::data(array_values($story->cases)),
+ set::style(array('min-width' => '100%'))
+ )
+ ),
+ empty($story->twins) ? null : tabPane
+ (
+ to::suffix(label(count($story->twins))),
+ set::key('affectedTwins'),
+ set::title($lang->story->affectedTwins),
+ empty($story->twins) ? div(setClass('dtable-empty-tip'), div(setClass('text-gray'), $lang->noData)) : dtable
+ (
+ set::cols($config->story->affect->twins->fields),
+ set::data(array_values($story->twins)),
+ set::style(array('min-width' => '100%'))
+ )
+ )
+ );
+
+ global $app;
+ return $app->rawMethod == 'change' ? section
+ (
+ set::width('full'),
+ set::title($lang->story->checkAffection),
+ set::required(false),
+ $tabs
+ ) : formGroup
(
setClass('w-full'),
set::label($lang->story->checkAffection),
set::required(false),
- tabs
- (
- setClass('w-full'),
- tabPane
- (
- to::suffix(label($affectedTaskCount)),
- set::key('affectedProjects'),
- set::title($lang->story->affectedProjects),
- set::active(true),
- empty($affectedProjects) ? div(setClass('dtable-empty-tip'), div(setClass('text-gray'), $lang->noData)) : $affectedProjects
- ),
- tabPane
- (
- to::suffix(label(count($story->bugs))),
- set::key('affectedBugs'),
- set::title($lang->story->affectedBugs),
- empty($story->bugs) ? div(setClass('dtable-empty-tip'), div(setClass('text-gray'), $lang->noData)) : dtable
- (
- set::cols($config->story->affect->bugs->fields),
- set::data(array_values($story->bugs)),
- set::style(array('min-width' => '100%'))
- )
- ),
- tabPane
- (
- to::suffix(label(count($story->cases))),
- set::key('affectedCases'),
- set::title($lang->story->affectedCases),
- empty($story->cases) ? div(setClass('dtable-empty-tip'), div(setClass('text-gray'), $lang->noData)) : dtable
- (
- set::cols($config->story->affect->cases->fields),
- set::data(array_values($story->cases)),
- set::style(array('min-width' => '100%'))
- )
- ),
- empty($story->twins) ? null : tabPane
- (
- to::suffix(label(count($story->twins))),
- set::key('affectedTwins'),
- set::title($lang->story->affectedTwins),
- empty($story->twins) ? div(setClass('dtable-empty-tip'), div(setClass('text-gray'), $lang->noData)) : dtable
- (
- set::cols($config->story->affect->twins->fields),
- set::data(array_values($story->twins)),
- set::style(array('min-width' => '100%'))
- )
- )
- )
+ $tabs
);
};
diff --git a/module/story/ui/change.html.php b/module/story/ui/change.html.php
index 6f5c564d5d..c08db7e959 100644
--- a/module/story/ui/change.html.php
+++ b/module/story/ui/change.html.php
@@ -24,25 +24,11 @@ jsVar('storyType', $story->type);
jsVar('rawModule', $this->app->rawModule);
jsVar('page', $this->app->rawMethod);
-$formTitle = div
-(
- setClass('flex items-center pb-3'),
- div($lang->story->changed),
- entityLabel
- (
- set::level(1),
- setClass('pl-2'),
- set::entityID($story->id),
- set::reverse(true),
- span(setID('storyTitle'), $story->title)
- )
-);
-
$formItems = array();
-$formItems['reviewer'] = formGroup
+$formItems['reviewer'] = section
(
set::width('full'),
- set::label($fields['reviewer']['title']),
+ set::title($fields['reviewer']['title']),
inputGroup
(
picker
@@ -69,10 +55,10 @@ $formItems['reviewer'] = formGroup
),
set::required(true)
);
-$formItems['title'] = formGroup
+$formItems['title'] = section
(
set::width('full'),
- set::label($fields['title']['title']),
+ set::title($fields['title']['title']),
inputGroup
(
inputControl
@@ -108,7 +94,7 @@ $formItems['title'] = formGroup
),
set::required($fields['title']['required'])
);
-$formItems['hidden'] = formRow
+$formItems['hidden'] = section
(
set::hidden(true),
formGroup
@@ -117,10 +103,10 @@ $formItems['hidden'] = formRow
input(set::type('hidden'), set::name('lastEditedDate'), set::value($story->lastEditedDate))
)
);
-$formItems['spec'] = formGroup
+$formItems['spec'] = section
(
set::width('full'),
- set::label($fields['spec']['title']),
+ set::title($fields['spec']['title']),
set::required(strpos(",{$this->config->story->change->requiredFields},", ",spec,") !== false),
set::tip($lang->story->specTemplate),
editor
@@ -140,10 +126,10 @@ foreach($fields as $field => $attr)
if($attr['control'] == 'editor')
{
- $formItems[$field] = formGroup
+ $formItems[$field] = section
(
set::width('full'),
- set::label($attr['title']),
+ set::title($attr['title']),
set::required($attr['required']),
editor
(
@@ -154,11 +140,11 @@ foreach($fields as $field => $attr)
}
else
{
- $formItems[$field] = formGroup
+ $formItems[$field] = section
(
set::width('full'),
set::name($fieldName),
- set::label($attr['title']),
+ set::title($attr['title']),
set::control($control),
set::value($attr['default']),
set::required($attr['required'])
@@ -166,10 +152,10 @@ foreach($fields as $field => $attr)
}
}
-$formItems['file'] = formGroup
+$formItems['file'] = section
(
set::width('full'),
- set::label($lang->attach),
+ set::title($lang->attach),
$story->files ? fileList
(
set::files($story->files),
@@ -180,9 +166,26 @@ $formItems['file'] = formGroup
);
if($this->config->vision != 'or') $formItems['affected'] = $getAffectedTabs($story, $users);
-formPanel
+detailHeader
+(
+ to::prefix($lang->story->changed),
+ to::title
+ (
+ entityLabel
+ (
+ set::level(1),
+ set::entityID($story->id),
+ set::reverse(true),
+ span(setID('storyTitle'), $story->title)
+ )
+ )
+);
+
+
+detailBody
(
setID('dataform'),
+ set::isForm(true),
set::ajax(array('beforeSubmit' => jsRaw('clickSubmit'))),
set::actions(array
(
@@ -190,8 +193,7 @@ formPanel
array('text' => $lang->story->doNotSubmit, 'data-status' => 'draft', 'class' => 'secondary', 'btnType' => 'submit'),
array('text' => $lang->goback, 'data-back' => 'APP', 'class' => 'open-url')
)),
- $formTitle,
- $formItems,
+ sectionList($formItems),
h::hr(),
history()
);