/** * * @param PollerTemplate $pollerTemplate * @return type * @throws Exception */ public static function buildPollerTemplateForm(PollerTemplate $pollerTemplate, $pollerId) { $setUp = $pollerTemplate->getBrokerPart()->getSetup(); if (count($setUp) < 1) { throw new Exception('No setup found in the template'); } $currentSetUp = $setUp[0]; $brokerMode = $currentSetUp->getMode('normal'); $formHandler = new Form('broker_full_form'); $formComponents = array(); $defaultValues = array(); $formComponents['General']['general'] = static::addGeneralParams($formHandler, $defaultValues, $pollerId); $formComponents['General']['path'] = static::addPathParams($formHandler, $defaultValues, $pollerId); foreach ($brokerMode as $mode) { if (!isset($mode['general'])) { throw new Exception('No name detected'); } $sectionName = $mode['general']['name']; unset($mode['general']); $formComponents[$sectionName] = array(); foreach ($mode as $blockInitialName => $blockContent) { switch ($blockInitialName) { default: continue; break; case 'logger': $elements = static::parseLoggerParams($formHandler, $blockInitialName, $blockContent, $defaultValues, $sectionName); if (count($elements) > 0) { $formComponents[$sectionName][$blockInitialName] = $elements; } break; case 'input': case 'output': $elements = static::parseOutputInputParams($formHandler, $blockInitialName, $blockContent, $defaultValues, $sectionName); if (count($elements) > 0) { $formComponents[$sectionName][$blockInitialName] = $elements; } break; case 'module_directory': case 'event_queue_max_size': case 'write_thread_id': case 'write_timestamp': case 'flush_logs': $elements = static::parseCustomParams($formHandler, $blockInitialName, array($blockInitialName => $blockContent), $defaultValues); if (count($elements) > 0) { $formComponents[$sectionName][$blockInitialName] = $elements; } break; } } if (count($formComponents[$sectionName]) == 0) { unset($formComponents[$sectionName]); } } $formHandler->addHidden('poller_id', $pollerId); $formHandler->addHidden('poller_tmpl', $pollerTemplate->getName()); $formHandler->addSubmit('save_form', _("Save")); static::getSavedDefaultValues($pollerId, $defaultValues); $formHandler->setDefaults($defaultValues); $finalForm = static::genForm($formHandler, $formComponents); return $finalForm; }
public function testGenForm() { $_SESSION['user'] = new User(1); $router = Di::getDefault()->get('router'); $router->dispatch(); $expectedField = '<div class="form-group ">'; $expectedField .= '<div class="col-sm-2" style="text-align:right">'; $expectedField .= '<label class="label-controller" for="TemporayFilePath">Temporay File Path</label>'; $expectedField .= ' <span style="color:red">*</span>'; $expectedField .= '</div>'; $expectedField .= '<div class="col-sm-9">'; $expectedField .= '<span>'; $expectedField .= '<input id="TemporayFilePath" type="text" name="TemporayFilePath" value="" class="form-control input-sm mandatory-field " placeholder="Temporay File Path" />'; $expectedField .= '<span>'; $expectedField .= '</div>'; $expectedField .= '</div>'; $expectedForms = array('engine' => true, 'broker' => true, 'steps' => array(array('name' => 'MyStep', 'html' => '<div>' . $expectedField . '</div>'))); $templatePath = CENTREON_PATH . $this->dataPath; $myTestTemplate = new Template('myTestTemplate', $templatePath, $templatePath); $this->assertEquals($expectedForms, $myTestTemplate->genForm()); }