public static function renderEdit($request, $module, $action, afDomAccess $view) { $fields = $view->wrapAll('fields/field'); $submitUrl = self::getSubmitUrl($module, $action, $view); $validators = afEditView::getValidators($fields); $fileTypes = afEditView::getFileTypes($fields); $result = array(); $result['success'] = true; $result['af_submitUrl'] = $request->getUriPrefix() . $submitUrl; $instance = afEditShowRenderer::fetchDataInstance($view); foreach (self::getFieldValues($instance, $fields) as $name => $value) { $result[sprintf('edit[%s]', $name)] = $value; } $result['af_formcfg'] = self::buildFormcfg($submitUrl, $validators, $fileTypes); return afOutput::renderText(json_encode($result)); }
<?php include dirname(__FILE__) . '/../bootstrap/dbunit.php'; $t = new lime_test(3, new lime_output_color()); $doc = afConfigUtils::getDoc('networkmonitor_snmp', 'editSnmpPackage'); $view = afDomAccess::wrap($doc, 'view'); $fields = $view->wrapAll('fields/field'); $t->is(count($fields), 3); $t->is(afEditView::getParams($fields[1], 'validator/param'), array('class' => 'SnmpPackage', 'column' => 'name', 'unique_error' => 'This name is already used. Please choose another one!')); $validators = json_decode('{"edit[name]":{"immValidatorUnique":{"params":{"class":"SnmpPackage","column":"name","unique_error":"This name is already used. Please choose another one!"}}},"edit[template]":{"immValidatorRequired":[]}}', true); $t->is(afEditView::getValidators($fields), $validators);