Implement is_strict and options fields

This commit is contained in:
Kijin Sung 2024-10-08 21:46:56 +09:00
parent 8fd72747fc
commit db4103b732
7 changed files with 104 additions and 11 deletions

View file

@ -174,8 +174,14 @@ class DocumentAdminController extends Document
$var_idx = Context::get('var_idx');
$name = Context::get('name');
$type = Context::get('type');
$is_required = Context::get('is_required');
$default = Context::get('default');
$is_required = Context::get('is_required') === 'Y' ? 'Y' : 'N';
$is_strict = Context::get('is_strict') === 'Y' ? 'Y' : 'N';
$default = trim(utf8_clean(Context::get('default')));
$options = trim(utf8_clean(Context::get('options')));
if ($options !== '')
{
$options = array_map('trim', explode("\n", $options));
}
$desc = Context::get('desc') ? Context::get('desc') : '';
$search = Context::get('search');
$eid = Context::get('eid');
@ -201,8 +207,11 @@ class DocumentAdminController extends Document
}
// insert or update
$oDocumentController = getController('document');
$output = $oDocumentController->insertDocumentExtraKey($module_srl, $var_idx, $name, $type, $is_required, $search, $default, $desc, $eid);
$oDocumentController = DocumentController::getInstance();
$output = $oDocumentController->insertDocumentExtraKey(
$module_srl, $var_idx, $name, $type, $is_required, $search,
$default, $desc, $eid, $is_strict, $options
);
if(!$output->toBool()) return $output;
$this->setMessage('success_registed');

View file

@ -1611,11 +1611,16 @@ class DocumentController extends Document
* @param string $var_default
* @param string $var_desc
* @param int $eid
* @param string $var_is_strict
* @param array $var_options
* @return object
*/
function insertDocumentExtraKey($module_srl, $var_idx, $var_name, $var_type, $var_is_required = 'N', $var_search = 'N', $var_default = '', $var_desc = '', $eid = 0)
function insertDocumentExtraKey($module_srl, $var_idx, $var_name, $var_type, $var_is_required = 'N', $var_search = 'N', $var_default = '', $var_desc = '', $eid = 0, $var_is_strict = 'N', $var_options = null)
{
if(!$module_srl || !$var_idx || !$var_name || !$var_type || !$eid) return new BaseObject(-1, 'msg_invalid_request');
if (!$module_srl || !$var_idx || !$var_name || !$var_type || !$eid)
{
return new BaseObject(-1, 'msg_invalid_request');
}
$obj = new stdClass();
$obj->module_srl = $module_srl;
@ -1623,8 +1628,10 @@ class DocumentController extends Document
$obj->var_name = $var_name;
$obj->var_type = $var_type;
$obj->var_is_required = $var_is_required=='Y'?'Y':'N';
$obj->var_is_strict = $var_is_strict=='Y'?'Y':'N';
$obj->var_search = $var_search=='Y'?'Y':'N';
$obj->var_default = $var_default;
$obj->var_options = $var_options ? json_encode($var_options, \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES) : null;
$obj->var_desc = $var_desc;
$obj->eid = $eid;
@ -3653,7 +3660,7 @@ Content;
{
foreach($documentExtraKeys AS $extraItem)
{
$this->insertDocumentExtraKey($value, $extraItem->idx, $extraItem->name, $extraItem->type, $extraItem->is_required , $extraItem->search , $extraItem->default , $extraItem->desc, $extraItem->eid) ;
$this->insertDocumentExtraKey($value, $extraItem->idx, $extraItem->name, $extraItem->type, $extraItem->is_required , $extraItem->search , $extraItem->default , $extraItem->desc, $extraItem->eid, $extraItem->is_strict, $extraItem->options);
}
}
}

View file

@ -49,6 +49,14 @@
<label class="x_inline" for="is_required_n"><input type="radio" name="is_required" id="is_required_n" value="N" checked="checked"|cond="$selected_var->is_required != 'Y'" /> {$lang->not}</label>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label">{$lang->extra_vars_is_strict}</label>
<div class="x_controls">
<label class="x_inline" for="is_strict_y"><input type="radio" name="is_strict" id="is_strict_y" value="Y" checked="checked"|cond="$selected_var->is_strict == 'Y'" /> {$lang->yes}</label>
<label class="x_inline" for="is_strict_n"><input type="radio" name="is_strict" id="is_strict_n" value="N" checked="checked"|cond="$selected_var->is_strict != 'Y'" /> {$lang->not}</label>
<p class="x_help-block">{$lang->about_extra_vars_is_strict}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="default">{$lang->default_value}</label>
<div class="x_controls">
@ -56,6 +64,13 @@
<p class="x_help-block">{$lang->about_extra_vars_default_value}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="default">{$lang->extra_vars_options}</label>
<div class="x_controls">
<textarea type="text" name="options" id="options">{implode("\n", $selected_var->getOptions())}</textarea>
<p class="x_help-block">{$lang->about_extra_vars_options}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="lang_desc">{$lang->description}</label>
<div class="x_controls">