public static function addSettingsFormFields(QuickForm $form)
 {
     $pdb = new PuppetDb();
     $form->addElement('select', 'api_version', array('label' => 'API version', 'required' => true, 'multiOptions' => array('v4' => 'v4: PuppetDB 2.3, 3.0, 3.1, 3.2, 4.0 (PE 3.8, 2015.2, 2015.3)', 'v3' => 'v3: PuppetDB 1.5, 1.6 (PE 3.1, 3.2, 3.3)', 'v2' => 'v2: PuppetDB 1.1, 1.2, 1.3, 1.4', 'v1' => 'v1: PuppetDB 1.0')));
     $form->addElement('select', 'server', array('label' => 'PuppetDB Server', 'required' => true, 'multiOptions' => $form->optionalEnum($pdb->listServers()), 'class' => 'autosubmit'));
     if (!($server = $form->getSentOrObjectSetting('server'))) {
         return $form;
     }
     $form->addElement('select', 'client_cert', array('label' => 'Client Certificate', 'required' => true, 'class' => 'autosubmit', 'multiOptions' => $form->optionalEnum($pdb->listClientCerts($server))));
     if (!($cert = $form->getSentOrObjectSetting('client_cert'))) {
         return;
     }
     $form->addElement('select', 'query_type', array('label' => 'Query type', 'required' => true, 'class' => 'autosubmit', 'multiOptions' => $form->optionalEnum(array('resource' => $form->translate('Resources'), 'node' => $form->translate('Nodes')))));
     if (!($queryType = $form->getSentOrObjectSetting('query_type'))) {
         return;
     }
     try {
         $db = new PuppetDbApi($form->getSentOrObjectSetting('api_version'), $cert, $server);
         $resourceTypes = $db->enumResourceTypes();
     } catch (Exception $e) {
         $form->addError(sprintf($form->translate('Failed to load resource types: %s'), $e->getMessage()));
     }
     if (empty($resourceTypes)) {
         $form->addElement('text', 'resource_type', array('label' => 'Resource type', 'required' => true));
     } else {
         $form->addElement('select', 'resource_type', array('label' => 'Resource type', 'required' => true, 'class' => 'autosubmit', 'multiOptions' => $form->optionalEnum($resourceTypes)));
     }
 }
 public static function addSettingsFormFields(QuickForm $form)
 {
     $form->addElement('select', 'file_format', array('label' => $form->translate('File format'), 'description' => $form->translate('Available file formats, usually CSV, JSON, YAML and XML. Whether' . ' all of those are available eventually depends on various' . ' libraries installed on your system. Please have a look at' . ' the documentation in case your list is not complete.'), 'required' => true, 'class' => 'autosubmit', 'multiOptions' => $form->optionalEnum(static::listAvailableFormats($form))));
     $format = $form->getSentOrObjectSetting('file_format');
     if ($format === 'csv') {
         $form->addElement('text', 'csv_delimiter', array('label' => $form->translate('Field delimiter'), 'description' => $form->translate('This sets the field delimiter. One character only, defaults' . ' to comma: ,'), 'value' => ',', 'required' => true));
         $form->addElement('text', 'csv_enclosure', array('label' => $form->translate('Value enclosure'), 'description' => $form->translate('This sets the field enclosure character. One character only,' . ' defaults to double quote: "'), 'value' => '"', 'required' => true));
         /*
         // Not configuring escape as it behaves strangely. "te""st" works fine.
         // Seems that even in case we use \, it must be "manually" removed later
         // on
         $form->addElement('text', 'csv_escape', array(
             'label'       => $form->translate('Escape character'),
             'description' => $form->translate(
                 'This sets the escaping character. One character only,'
                 . ' defaults to backslash: \\'
             ),
             'value'       => '\\',
             'required'    => true,
         ));
         */
     }
     $form->addElement('select', 'basedir', array('label' => $form->translate('Base directoy'), 'description' => sprintf($form->translate('This import rule will only work with files relative to this' . ' directory. The content of this list depends on your' . ' configuration in "%s"'), Config::module('fileshipper', 'imports')->getConfigFile()), 'required' => true, 'class' => 'autosubmit', 'multiOptions' => $form->optionalEnum(static::listBaseDirectories())));
     if (!$format || !($basedir = $form->getSentOrObjectSetting('basedir'))) {
         return $form;
     }
     $form->addElement('select', 'file_name', array('label' => $form->translate('File name'), 'description' => $form->translate('Choose a file from the above directory or * to import all files' . ' from there at once'), 'required' => true, 'multiOptions' => $form->optionalEnum(self::enumFiles($basedir, $form))));
     return $form;
 }
 public function getFormElement($name, QuickForm $form)
 {
     try {
         $data = $this->fetchData();
         $error = false;
     } catch (Exception $e) {
         $data = array();
         $error = sprintf($form->translate('Unable to fetch data: %s'), $e->getMessage());
     }
     $element = $form->createElement('select', $name, array('multiOptions' => $form->optionalEnum($data)));
     if ($error) {
         $element->addError($error);
     }
     return $element;
 }
Example #4
0
 protected static function addResourceFormElement(QuickForm $form, $name, $type)
 {
     $list = self::enumResources($type);
     $form->addElement('select', $name, array('label' => 'Resource name', 'multiOptions' => $form->optionalEnum($list), 'required' => true));
     if (true && empty($list)) {
         if (self::hasPermission('config/application/resources')) {
             $hint = $form->translate('Please click %s to create new resources');
             $link = sprintf('<a href="' . Url::fromPath('config/resource') . '" data-base-target="_main">%s</a>', $form->translate('here'));
             $form->addHtmlHint(sprintf($hint, $link));
             $msg = $form->translate('No db resource available');
         } else {
             $msg = $form->translate('Please ask an administrator to grant you access to resources');
         }
         $form->getElement($name)->addError($msg);
     }
 }
 public static function addSettingsFormFields(QuickForm $form)
 {
     $form->addElement('select', 'object_type', array('label' => 'Object type', 'required' => true, 'multiOptions' => $form->optionalEnum(array('CheckCommand' => 'Commands', 'Endpoint' => 'Endpoints', 'Host' => 'Host', 'Zone' => 'Zones'))));
 }