Example #1
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $config = $this->getOption('config');
     $mergeCustomFields = new Element\Checkbox('mergeCustomFields');
     $mergeCustomFields->setLabel('Merge user supplied information');
     $mergeCustomFields->setChecked($config->defaultMergeCustomFields);
     $this->add($mergeCustomFields);
     $mergeGroups = new Element\Checkbox('mergeGroups');
     $mergeGroups->setLabel('Merge manual group assignments');
     $mergeGroups->setChecked($config->defaultMergeGroups);
     $this->add($mergeGroups);
     $mergePackages = new Element\Checkbox('mergePackages');
     $mergePackages->setLabel('Merge missing package assignments');
     $mergePackages->setChecked($config->defaultMergePackages);
     $this->add($mergePackages);
     $submit = new \Library\Form\Element\Submit('submit');
     $submit->setLabel('Merge selected clients');
     $this->add($submit);
     // Checkboxes for "clients[]" are generated manually, without
     // \Zend\Form\Element. Define an input filter to have them processed.
     $arrayCount = new \Zend\Validator\Callback();
     $arrayCount->setCallback(array($this, 'validateArrayCount'))->setMessage('At least 2 different clients have to be selected', \Zend\Validator\Callback::INVALID_VALUE);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add(array('name' => 'clients', 'required' => true, 'continue_if_empty' => true, 'filters' => array(array($this, 'clientsFilter')), 'validators' => array($arrayCount, new \Zend\Validator\Explode(array('validator' => new \Zend\Validator\Digits()))), 'error_message' => $arrayCount->getDefaultTranslator()->translate($arrayCount->getMessageTemplates()[\Zend\Validator\Callback::INVALID_VALUE])));
     $this->setInputFilter($inputFilter);
 }
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('OK');
     $this->add($submit);
 }
Example #3
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $translatedTypes = array('text' => $this->_('Text'), 'clob' => $this->_('Long text'), 'integer' => $this->_('Integer'), 'float' => $this->_('Float'), 'date' => $this->_('Date'));
     $fields = new \Zend\Form\Fieldset('Fields');
     $this->add($fields);
     $inputFilterFields = new \Zend\InputFilter\InputFilter();
     foreach ($this->getOption('CustomFieldManager')->getFields() as $name => $type) {
         if ($name == 'TAG') {
             // Static field, can not be edited
             continue;
         }
         $this->_definedFields[$name] = $translatedTypes[$type];
         $element = new \Zend\Form\Element\Text($name);
         $element->setValue($name);
         $fields->add($element);
         $filter = array('name' => $name, 'required' => true, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'StringLength', 'options' => array('min' => 1, 'max' => 255)), array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateName'), 'callbackOptions' => $name, 'message' => $this->_('The name already exists')))));
         $inputFilterFields->add($filter);
     }
     // Empty text field to create new field.
     $newName = new \Zend\Form\Element\Text('NewName');
     $newName->setLabel('Add');
     $this->add($newName);
     // Datatype of new field
     $newType = new \Zend\Form\Element\Select('NewType');
     $newType->setValueOptions($translatedTypes);
     $this->add($newType);
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('Change');
     $this->add($submit);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add($inputFilterFields, 'Fields');
     $inputFilter->add(array('name' => 'NewName', 'required' => false, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'StringLength', 'options' => array('max' => 255)), array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateName'), 'message' => $this->_('The name already exists'))))));
     $this->setInputFilter($inputFilter);
 }
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $types = new \Zend\Form\Fieldset('Types');
     $this->add($types);
     $inputFilterTypes = new \Zend\InputFilter\InputFilter();
     $this->_definedTypes = $this->getOption('DeviceManager')->getTypeCounts();
     foreach ($this->_definedTypes as $name => $count) {
         $element = new \Zend\Form\Element\Text($name);
         $element->setValue($name);
         $types->add($element);
         $filter = array('name' => $name, 'required' => true, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'StringLength', 'options' => array('min' => 1, 'max' => 255)), array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateName'), 'callbackOptions' => $name, 'message' => $this->_('The name already exists')))));
         $inputFilterTypes->add($filter);
     }
     $add = new \Zend\Form\Element\Text('Add');
     $add->setLabel('Add');
     $this->add($add);
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('Change');
     $this->add($submit);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add($inputFilterTypes, 'Types');
     $inputFilter->add(array('name' => 'Add', 'required' => false, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'StringLength', 'options' => array('max' => 255)), array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateName'), 'message' => $this->_('The name already exists'))))));
     $this->setInputFilter($inputFilter);
 }
Example #5
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $this->_types = $this->getOption('customFieldManager')->getFields();
     $fields = new \Zend\Form\Fieldset('Fields');
     $inputFilterField = new \Zend\InputFilter\InputFilter();
     foreach ($this->_types as $name => $type) {
         if ($type == 'clob') {
             $element = new \Zend\Form\Element\Textarea($name);
         } else {
             $element = new \Zend\Form\Element\Text($name);
         }
         if ($name == 'TAG') {
             $element->setLabel('Category');
         } else {
             $element->setLabel($name);
         }
         $fields->add($element);
         $filter = array('name' => $name, 'required' => false, 'filters' => array(array('name' => 'Callback', 'options' => array('callback' => array($this, 'filterField'), 'callback_params' => $type))), 'validators' => array(array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateField'), 'callbackOptions' => $type))));
         $inputFilterField->add($filter);
     }
     $this->add($fields);
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('Change');
     $this->add($submit);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add($inputFilterField, 'Fields');
     $this->setInputFilter($inputFilter);
 }
Example #6
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $what = new \Zend\Form\Element\Radio('What');
     $what->setValueOptions(array(\Model\Client\Client::MEMBERSHIP_AUTOMATIC => $this->_('Store search parameters. Group memberships will be updated automatically.'), \Model\Client\Client::MEMBERSHIP_ALWAYS => $this->_('Add current search results. Group memberships will be set only this time.'), \Model\Client\Client::MEMBERSHIP_NEVER => $this->_('Exclude search results from a group.')));
     $what->setValue(\Model\Client\Client::MEMBERSHIP_AUTOMATIC);
     $this->add($what);
     $where = new \Zend\Form\Element\Radio('Where');
     $where->setValueOptions(array('new' => $this->_('Store in new group'), 'existing' => $this->_('Store in existing group')));
     $where->setValue('new')->setAttribute('onchange', 'selectElements()');
     $this->add($where);
     $newGroup = new \Zend\Form\Element\Text('NewGroup');
     $newGroup->setLabel('Name');
     $this->add($newGroup);
     $description = new \Zend\Form\Element\Text('Description');
     $description->setLabel('Description');
     $this->add($description);
     $existingGroup = new \Library\Form\Element\SelectSimple('ExistingGroup');
     $existingGroup->setLabel('Group');
     $groups = array();
     foreach ($this->getOption('GroupManager')->getGroups(null, null, 'Name') as $group) {
         $groups[] = $group['Name'];
     }
     $existingGroup->setValueOptions($groups);
     $this->add($existingGroup);
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('OK');
     $this->add($submit);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add(array('name' => 'NewGroup', 'continue_if_empty' => true, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateLength'), 'callbackOptions' => array(0, 255), 'message' => $this->_('The input is more than 255 characters long')), 'break_chain_on_failure' => true), array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateLength'), 'callbackOptions' => array(1, 255), 'message' => "Value is required and can't be empty"), 'break_chain_on_failure' => true), array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateGroupExists'), 'message' => $this->_('The name already exists'))))));
     $inputFilter->add(array('name' => 'Description', 'required' => false, 'filters' => array(array('name' => 'StringTrim'), array('name' => 'Null', 'options' => array('type' => 'string'))), 'validators' => array(array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateLength'), 'callbackOptions' => array(0, 255), 'message' => $this->_('The input is more than 255 characters long'))))));
     $this->setInputFilter($inputFilter);
 }
Example #7
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $preferences = new \Zend\Form\Fieldset('Preferences');
     $this->add($preferences);
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('Set');
     $this->add($submit);
 }
Example #8
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $name = new \Zend\Form\Element\Text('Name');
     $name->setLabel('Name');
     $this->add($name);
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('OK');
     $this->add($submit);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add(array('name' => 'Name', 'required' => false, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'StringLength', 'options' => array('max' => 255)))));
     $this->setInputFilter($inputFilter);
 }
Example #9
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $key = new \Zend\Form\Element\Text('Key');
     $key->setLabel('Product key (if different)');
     $this->add($key);
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('OK');
     $this->add($submit);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add(array('name' => 'Key', 'required' => false, 'filters' => array(array('name' => 'StringTrim'), array('name' => 'StringToUpper')), 'validators' => array(array('name' => 'Library\\Validator\\ProductKey'))));
     $this->setInputFilter($inputFilter);
 }
Example #10
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $deleteInterfaces = new \Zend\Form\Element\Checkbox('DeleteInterfaces');
     $deleteInterfaces->setLabel('Delete interfaces from network listing')->setChecked($this->getOption('config')->defaultDeleteInterfaces);
     $this->add($deleteInterfaces);
     $yes = new \Library\Form\Element\Submit('yes');
     $yes->setLabel('Yes');
     $this->add($yes);
     $no = new \Library\Form\Element\Submit('no');
     $no->setLabel('No');
     $this->add($no);
 }
Example #11
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $file = new \Zend\Form\Element\File('File');
     $file->setLabel('File (*.ocs, *.xml)');
     $this->add($file);
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('Import');
     $this->add($submit);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add(array('name' => 'File'));
     // Sufficient to force uploaded file
     $this->setInputFilter($inputFilter);
 }
Example #12
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $user = new \Zend\Form\Element\Text('User');
     $user->setLabel('Username');
     $this->add($user);
     $password = new \Zend\Form\Element\Password('Password');
     $password->setLabel('Password');
     $this->add($password);
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('Login');
     $this->add($submit);
     $inputFilter = $this->getInputFilter();
     $inputFilter->get('User')->setAllowEmpty(true);
     $inputFilter->get('Password')->setAllowEmpty(true);
 }
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $type = new \Library\Form\Element\SelectSimple('Type');
     $type->setLabel('Type')->setValueOptions($this->getOption('DeviceManager')->getTypes());
     $this->add($type);
     $description = new \Zend\Form\Element\Text('Description');
     $description->setLabel('Description');
     $this->add($description);
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('OK');
     $this->add($submit);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add(array('name' => 'Description', 'required' => false, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'StringLength', 'options' => array('max' => 255)))));
     $this->setInputFilter($inputFilter);
 }
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $inputFilter = new \Zend\InputFilter\InputFilter();
     // Create list of values as array because nested iteration does not work with ResultSet objects.
     $this->_definedValues = iterator_to_array($this->getOption('registryManager')->getValueDefinitions());
     // Subform for enabling/disabling registry inspection, in addition to
     // the same setting in preferences.
     $fieldsetInspect = new \Zend\Form\Fieldset('inspect');
     $inspect = new Element\Checkbox('inspect');
     $inspect->setLabel('Inspect registry')->setChecked($this->getOption('config')->inspectRegistry);
     $fieldsetInspect->add($inspect);
     $this->add($fieldsetInspect);
     // Subform for existing values
     $fieldsetExisting = new \Zend\Form\Fieldset('existing');
     $inputFilterExisting = new \Zend\InputFilter\InputFilter();
     // Create text elements for existing values to rename them
     foreach ($this->_definedValues as $value) {
         $name = $value['Name'];
         $elementName = "value_{$value['Id']}_name";
         $element = new Element\Text($elementName);
         $element->setValue($name)->setLabel($value['FullPath']);
         $inputFilterExisting->add(array('name' => $elementName, 'required' => true, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'StringLength', 'options' => array('max' => 255)), $this->_createBlacklistValidator($name))));
         $fieldsetExisting->add($element);
     }
     $this->add($fieldsetExisting);
     $inputFilter->add($inputFilterExisting, 'existing');
     // Subform for new value
     $fieldsetNew = new \Zend\Form\Fieldset('new_value');
     $newName = new Element\Text('name');
     $newName->setLabel('Name');
     $fieldsetNew->add($newName);
     $newRootKey = new Element\Select('root_key');
     $newRootKey->setLabel('Root key')->setAttribute('type', 'select_untranslated')->setValueOptions(\Model\Registry\Value::rootKeys())->setValue(\Model\Registry\Value::HKEY_LOCAL_MACHINE);
     $fieldsetNew->add($newRootKey);
     // Additional validation in isValid()
     $newSubKeys = new Element\Text('subkeys');
     $newSubKeys->setLabel('Subkeys');
     $fieldsetNew->add($newSubKeys);
     $newValue = new Element\Text('value');
     $newValue->setLabel('Only this value (optional)');
     $fieldsetNew->add($newValue);
     $submit = new \Library\Form\Element\Submit('submit');
     $submit->setLabel('Change');
     $fieldsetNew->add($submit);
     $this->add($fieldsetNew);
     $inputFilterNew = new \Zend\InputFilter\InputFilter();
     $inputFilterNew->add(array('name' => 'name', 'required' => false, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'StringLength', 'options' => array('max' => 255)), $this->_createBlacklistValidator())));
     $inputFilterNew->add(array('name' => 'subkeys', 'continue_if_empty' => true, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateEmptySubkeys'), 'message' => "Value is required and can't be empty")), array('name' => 'StringLength', 'options' => array('max' => 255)))));
     $inputFilterNew->add(array('name' => 'value', 'required' => false, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'StringLength', 'options' => array('max' => 255)))));
     $inputFilter->add($inputFilterNew, 'new_value');
     $this->setInputFilter($inputFilter);
 }
Example #15
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $integerFilter = array('name' => 'Callback', 'options' => array('callback' => array($this, 'normalize'), 'callback_params' => 'integer'));
     $integerValidator = array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateType'), 'callbackOptions' => 'integer'));
     // Package name
     $name = new Element\Text('Name');
     $name->setLabel('Name');
     $this->add($name);
     $inputFilter->add(array('name' => 'Name', 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'StringLength', 'options' => array('max' => 255)), array('name' => 'Library\\Validator\\NotInArray', 'options' => array('haystack' => $this->getOption('packageManager')->getAllNames(), 'caseSensitivity' => \Library\Validator\NotInArray::CASE_INSENSITIVE)))));
     // Comment
     $comment = new Element\Textarea('Comment');
     $comment->setLabel('Comment');
     $this->add($comment);
     $inputFilter->add(array('name' => 'Comment', 'required' => false, 'filters' => array(array('name' => 'StringTrim'))));
     // Platform combobox
     $platform = new Element\Select('Platform');
     $platform->setLabel('Platform')->setAttribute('type', 'select_untranslated')->setAttribute('id', 'form_package_build_platform')->setAttribute('onchange', 'changePlatform()')->setValueOptions(array('windows' => 'Windows', 'linux' => 'Linux', 'mac' => 'MacOS'));
     $this->add($platform);
     // Action combobox
     // Translate labels manually to let xgettext recognize them
     $action = new Element\Select('DeployAction');
     $action->setLabel('Action')->setAttribute('onchange', 'changeParam()')->setValueOptions(array('launch' => $this->_('Download package, execute command, retrieve result'), 'execute' => $this->_('Optionally download package, execute command'), 'store' => $this->_('Just download package to target path')));
     $this->add($action);
     // Command line or target path for action
     // Label is set by JavaScript code.
     $actionParam = new Element\Text('ActionParam');
     $this->add($actionParam);
     $inputFilter->add(array('name' => 'ActionParam', 'required' => true));
     // Upload file
     $file = new Element\File('File');
     $file->setLabel('File');
     $this->add($file);
     $inputFilter->add(array('name' => 'File'));
     // Requirement is set in isValid()
     // Priority combobox
     $priority = new \Library\Form\Element\SelectSimple('Priority');
     $priority->setValueOptions(range(0, 10))->setLabel('Priority (0: exclusive, 10: lowest)');
     $this->add($priority);
     // Maximum fragment size.
     $maxFragmentSize = new Element\Text('MaxFragmentSize');
     $maxFragmentSize->setAttribute('size', '8')->setLabel('Maximum fragment size (kB)');
     $this->add($maxFragmentSize);
     $inputFilter->add(array('name' => 'MaxFragmentSize', 'required' => false, 'filters' => array($integerFilter), 'validators' => array($integerValidator)));
     // Warn user before installation
     $warn = new Element\Checkbox('Warn');
     $warn->setLabel('Warn user')->setAttribute('id', 'form_package_build_warn')->setAttribute('onchange', 'toggleWarn()');
     $this->add($warn);
     // Message to display to user before installation
     $warnMessage = new Element\Textarea('WarnMessage');
     $warnMessage->setLabel('Message');
     $this->add($warnMessage);
     $inputFilter->add(array('name' => 'WarnMessage', 'required' => false, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateNotificationMessage'), 'message' => $this->_('Message must not contain double quotes.'))))));
     // Countdown before installation starts automatically
     $warnCountdown = new Element\Text('WarnCountdown');
     $warnCountdown->setAttribute('size', '5')->setLabel('Countdown (seconds)');
     $this->add($warnCountdown);
     $inputFilter->add(array('name' => 'WarnCountdown', 'required' => false, 'filters' => array($integerFilter), 'validators' => array($integerValidator)));
     // Allow user abort
     $warnAllowAbort = new Element\Checkbox('WarnAllowAbort');
     $warnAllowAbort->setLabel('Allow abort by user');
     $this->add($warnAllowAbort);
     // Allow user delay
     $warnAllowDelay = new Element\Checkbox('WarnAllowDelay');
     $warnAllowDelay->setLabel('Allow delay by user');
     $this->add($warnAllowDelay);
     // Message to display to user after deployment
     $postInstMessage = new Element\Textarea('PostInstMessage');
     $postInstMessage->setLabel('Post-installation message');
     $this->add($postInstMessage);
     $inputFilter->add(array('name' => 'PostInstMessage', 'required' => false, 'filters' => array(array('name' => 'StringTrim')), 'validators' => array(array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateNotificationMessage'), 'message' => $this->_('Message must not contain double quotes.'))))));
     // Submit button
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('Build');
     $this->add($submit);
     $this->setInputFilter($inputFilter);
 }
Example #16
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $inputFilter = new \Zend\InputFilter\InputFilter();
     // Agent options
     $agent = new \Zend\Form\Fieldset('Agent');
     $inputFilterAgent = new \Zend\InputFilter\InputFilter();
     $contactInterval = new Element\Text('contactInterval');
     $contactInterval->setLabel('Agent contact interval (in hours)')->setAttribute('size', '5');
     $agent->add($contactInterval);
     $inputFilterAgent->add($this->_getIntegerFilter('contactInterval', 1));
     $inventoryInterval = new Element\Text('inventoryInterval');
     $inventoryInterval->setLabel('Inventory interval (in days, 0 = always, -1 = never)')->setAttribute('size', '5');
     $agent->add($inventoryInterval);
     $inputFilterAgent->add($this->_getIntegerFilter('inventoryInterval', -1));
     $this->add($agent);
     $inputFilter->add($inputFilterAgent, 'Agent');
     // Download options
     $download = new \Zend\Form\Fieldset('Download');
     $inputFilterDownload = new \Zend\InputFilter\InputFilter();
     $packageDeployment = new Element\Checkbox('packageDeployment');
     $packageDeployment->setLabel('Enable package download')->setAttribute('onchange', 'toggle(this)');
     $download->add($packageDeployment);
     $downloadPeriodDelay = new Element\Text('downloadPeriodDelay');
     $downloadPeriodDelay->setLabel('Delay (in seconds) between periods')->setAttribute('size', '5');
     $download->add($downloadPeriodDelay);
     $inputFilterDownload->add($this->_getIntegerFilter('downloadPeriodDelay', 1));
     $downloadCycleDelay = new Element\Text('downloadCycleDelay');
     $downloadCycleDelay->setLabel('Delay (in seconds) between cycles')->setAttribute('size', '5');
     $download->add($downloadCycleDelay);
     $inputFilterDownload->add($this->_getIntegerFilter('downloadCycleDelay', 1));
     $downloadFragmentDelay = new Element\Text('downloadFragmentDelay');
     $downloadFragmentDelay->setLabel('Delay (in seconds) between fragments')->setAttribute('size', '5');
     $download->add($downloadFragmentDelay);
     $inputFilterDownload->add($this->_getIntegerFilter('downloadFragmentDelay', 1));
     $downloadMaxPriority = new Element\Text('downloadMaxPriority');
     $downloadMaxPriority->setLabel('Maximum package priority')->setAttribute('size', '5');
     $download->add($downloadMaxPriority);
     $inputFilterDownload->add($this->_getIntegerFilter('downloadMaxPriority', 1));
     $downloadTimeout = new Element\Text('downloadTimeout');
     $downloadTimeout->setLabel('Timeout (in days)')->setAttribute('size', '5');
     $download->add($downloadTimeout);
     $inputFilterDownload->add($this->_getIntegerFilter('downloadTimeout', 1));
     $this->add($download);
     $inputFilter->add($inputFilterDownload, 'Download');
     // Network scanning options
     $scan = new \Zend\Form\Fieldset('Scan');
     $inputFilterScan = new \Zend\InputFilter\InputFilter();
     $allowScan = new Element\Checkbox('allowScan');
     $allowScan->setLabel('Allow network scanning')->setAttribute('onchange', 'toggle(this)');
     $scan->add($allowScan);
     $subnets = new \Library\Form\Element\SelectSimple('scanThisNetwork');
     $subnets->setLabel('Always scan this network')->setEmptyOption('');
     $scan->add($subnets);
     $inputFilterScan->add(array('name' => 'scanThisNetwork', 'required' => false));
     $scanSnmp = new Element\Checkbox('scanSnmp');
     $scanSnmp->setLabel('Use SNMP');
     $scan->add($scanSnmp);
     $this->add($scan);
     $inputFilter->add($inputFilterScan, 'Scan');
     $submit = new \Library\Form\Element\Submit('Submit');
     $submit->setLabel('OK');
     $this->add($submit);
     $this->setInputFilter($inputFilter);
 }
Example #17
0
 public function testSetLabel()
 {
     $submit = new \Library\Form\Element\Submit();
     $this->assertEquals('test', $submit->setLabel('test')->getValue());
 }
Example #18
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $translator = $this->getOption('translator');
     $this->_filters = array('Name' => $translator->translate('Name'), 'UserName' => $translator->translate('User name'), 'Windows.UserDomain' => $translator->translate('User domain'), 'Windows.Workgroup' => $translator->translate('Workgroup'), 'OsName' => $translator->translate('OS name'), 'OsVersionNumber' => $translator->translate('OS version number'), 'OsVersionString' => $translator->translate('OS version string'), 'Windows.CpuArchitecture' => $translator->translate('OS architecture'), 'OsComment' => $translator->translate('OS comment'), 'Windows.ProductKey' => $translator->translate('Windows product key'), 'Windows.ManualProductKey' => $translator->translate('Windows product key (manual)'), 'Software.Name' => $translator->translate('Software: Name'), 'Software.Version' => $translator->translate('Software: Version'), 'Software.Publisher' => $translator->translate('Software: Publisher'), 'Software.Comment' => $translator->translate('Software: Comment'), 'Software.InstallLocation' => $translator->translate('Software: Install location'), 'MsOfficeProduct.ProductKey' => $translator->translate('MS Office product key'), 'MsOfficeProduct.ProductId' => $translator->translate('MS Office product ID'), 'InventoryDate' => $translator->translate('Last inventory'), 'LastContactDate' => $translator->translate('Last contact'), 'CpuType' => $translator->translate('CPU type'), 'CpuClock' => $translator->translate('CPU clock (MHz)'), 'CpuCores' => $translator->translate('CPU cores'), 'PhysicalMemory' => $translator->translate('Physical memory'), 'SwapMemory' => $translator->translate('Swap memory'), 'Manufacturer' => $translator->translate('Manufacturer'), 'ProductName' => $translator->translate('Model'), 'Serial' => $translator->translate('Serial number'), 'AssetTag' => $translator->translate('Asset tag'), 'BiosVersion' => $translator->translate('BIOS version'), 'BiosDate' => $translator->translate('BIOS date'), 'Filesystem.Size' => $translator->translate('Filesystem size (MB)'), 'Filesystem.FreeSpace' => $translator->translate('Filesystem free space (MB)'), 'DnsServer' => $translator->translate('DNS server'), 'DefaultGateway' => $translator->translate('Default gateway'), 'NetworkInterface.IpAddress' => $translator->translate('IP address'), 'NetworkInterface.MacAddress' => $translator->translate('MAC address'), 'NetworkInterface.Subnet' => $translator->translate('Network address'), 'NetworkInterface.Netmask' => $translator->translate('Network Mask'), 'Printer.Name' => $translator->translate('Printer name'), 'Printer.Port' => $translator->translate('Printer port'), 'Printer.Driver' => $translator->translate('Printer driver'), 'UserAgent' => $translator->translate('User agent'), 'Display.Manufacturer' => $translator->translate('Monitor: manufacturer'), 'Display.Description' => $translator->translate('Monitor: description'), 'Display.Serial' => $translator->translate('Monitor: serial'), 'Display.Edid' => $translator->translate('Monitor: EDID'), 'DisplayController.Name' => $translator->translate('Display controller'), 'DisplayController.Memory' => $translator->translate('GPU memory'), 'Modem.Name' => $translator->translate('Modem'), 'AudioDevice.Name' => $translator->translate('Audio device'), 'Port.Name' => $translator->translate('Port name'));
     // Append filters and labels for registry values/data
     foreach ($this->getOption('registryManager')->getValueDefinitions() as $regValue) {
         $name = $regValue['Name'];
         $this->_filters["Registry.{$name}"] = "Registry: {$name}";
     }
     // Append filters and labels for user defined info
     $template = $translator->translate('User defined: %s');
     foreach ($this->getOption('customFieldManager')->getFields() as $name => $type) {
         $key = "CustomFields.{$name}";
         switch ($type) {
             case 'text':
             case 'clob':
                 break;
             case 'integer':
             case 'float':
             case 'date':
                 $this->_types[$key] = $type;
                 break;
             default:
                 throw new \UnexpectedValueException('Unsupported datatype: ' . $type);
         }
         if ($name == 'TAG') {
             $label = $translator->translate('Category');
         } else {
             $label = $name;
         }
         $this->_filters[$key] = sprintf($template, $label);
     }
     $filter = new Element\Select('filter');
     $filter->setLabel('Search for')->setAttribute('type', 'select_untranslated')->setAttribute('onchange', 'filterChanged();')->setValueOptions($this->_filters);
     $this->add($filter);
     $search = new Element\Text('search');
     $search->setLabel('Value');
     $this->add($search);
     // Operators dropdown. Options are set by JS depending on filter type.
     // Since valid options are known only after submission, the internal
     // InArray validator must be disabled and replaced by a callback.
     $operator = new Element\Select('operator');
     $operator->setDisableInArrayValidator(true)->setLabel('Operator');
     $this->add($operator);
     $invert = new Element\Checkbox('invert');
     $invert->setLabel('Invert results');
     $this->add($invert);
     $submit = new \Library\Form\Element\Submit('customSearch');
     $submit->setLabel('Search');
     $this->add($submit);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add(array('name' => 'search', 'continue_if_empty' => true, 'filters' => array(array('name' => 'Callback', 'options' => array('callback' => array($this, 'filterSearch')))), 'validators' => array(array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateSearch'))))));
     $inputFilter->add(array('name' => 'operator', 'validators' => array(array('name' => 'Callback', 'options' => array('callback' => array($this, 'validateOperator'))))));
     $this->setInputFilter($inputFilter);
     $this->_operatorsText = array('like' => $translator->translate("Substring match, wildcards '?' and '*' allowed"), 'eq' => $translator->translate('Exact match'));
 }