Skip to content

Commit

Permalink
Suggested values now rendered in template
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesread committed Aug 14, 2023
1 parent 737bbe1 commit 181255b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 10 deletions.
6 changes: 6 additions & 0 deletions src/main/php/libAllure/Element.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ protected function validateInternals()
protected function afterConstruct()
{
}

abstract public function render();

public function addSuggestedValue($value, $caption = null)
Expand All @@ -51,6 +52,11 @@ public function addSuggestedValue($value, $caption = null)
$this->suggestedValues[$value] = $caption;
}

public function getSuggestedValues(): array
{
return $this->suggestedValues;
}

final public function validate()
{
$this->validateRequired();
Expand Down
10 changes: 1 addition & 9 deletions src/main/php/libAllure/ElementInput.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,7 @@ public function render()

$classes = ($this->required) ? ' class = "required" ' : null;

$suggestedValues = array();

if (!empty($this->suggestedValues)) {
foreach ($this->suggestedValues as $suggestedValue => $caption) {
$suggestedValues[] = '<span class = "dummyLink" onclick = "document.getElementById(\'' . $this->name . '\').value = \'' . $suggestedValue . '\'">' . $caption . '</span>';
}
}

return sprintf('<input %s id = "%s" name = "%s" value = "%s" /><div>%s</div>', $onChange, $this->name, $this->name, $value, implode(', ', $suggestedValues));
return sprintf('<input %s id = "%s" name = "%s" value = "%s" />', $onChange, $this->name, $this->name, $value);
}

public function validateInternals()
Expand Down
10 changes: 9 additions & 1 deletion src/main/php/libAllure/templates/formElements.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,21 @@
{elseif $element->getType() eq 'submit'}
<button value = "{$form->getName()}" name = "{$element->getName()}" type = "submit">{$element->getCaption()}</button>
{else}
<fieldset>
<fieldset>
{$element->render()}

{if $element->description ne ''}
<p class = "description"><img src = "resources/images/icons/help.png" class = "imageIcon" alt = "Form element help" />{$element->description}</p>
{/if}

{if !empty($suggestedValues)}
<div>
{foreach from = $suggestedValues key = sv item = caption}
<span class = "dummyLink" onclick = "document.getElementById('{$element->getName()}').value = '{$sv} '">{$caption}</span>';
{/foreach}
</div>
{/if}

{if $element->getValidationError() ne ''}
<p class = "formValidationError">{$element->getValidationError()}</p>
{/if}
Expand Down

0 comments on commit 181255b

Please sign in to comment.