public function getFields() { $fields = []; foreach ($this->object->getValues() as $key => $value) { $fields[] = FieldBuilder::begin()->setType(FieldBuilder::TYPE_TEXT)->setLabel($key)->setInitial((string) $value)->build(); } return array_combine($this->keys, $fields); }
public function testIntersectWritableNames() { $fieldName1 = "fieldname1"; $field1 = FieldBuilder::begin()->setType(Field::TYPE_LITERAL)->setLabel('field1')->build(); $fieldName2 = "fieldname2"; $field2 = FieldBuilder::begin()->setType(Field::TYPE_LITERAL)->setLabel('field1')->build(); $fieldName3 = "fieldname3"; $field3 = FieldBuilder::begin()->setType(Field::TYPE_LITERAL)->setLabel('field1')->build(); $row = RowBuilder::begin()->addWritable($field1, $fieldName1)->addWritable($field2, $fieldName2)->addWritable($field3, $fieldName3)->intersectWritableNames([$fieldName1, $fieldName3])->build(); $this->assertEquals([$fieldName1 => $field1, $fieldName3 => $field3], $row->getWritables()); $this->assertEquals([$fieldName1 => $fieldName1, $fieldName3 => $fieldName3], $row->getLabels()); }
/** * @param string $label * @return FormBuilder */ public function addLabel($label) { $labelField = FieldBuilder::begin()->setType(FieldBuilder::TYPE_SECTION_LABEL)->setLabel($label)->build(); return $this->addWritable($labelField, $label); }
/** * @expectedException \Exception * @expectedExceptionMessageRegExp #must include choices using ::setChoices.*# */ public function testBuilderNeedsChoicesException() { $field = FieldBuilder::begin()->setType(FieldBuilder::TYPE_MULTIPLE_CHOICE)->setLabel("label")->build(); }
/** * @param QueryWrapperInterface[]|null $queries * @return WritableInterface[] */ protected function makeTables($queries = null) { /** @var WritableInterface[] $tables */ $tables = []; foreach ($this->queries as $queryIndex => $query) { $objects = $query->find(); /** @var RowInterface[] $rows */ $rows = []; /** @var string $tableName */ $tableName = StringUtils::slugify($query->getTitleCasedObjectName()); foreach ($objects as $object) { /** @var string $detailurl */ $detailurl = static::makeUrl([static::MODE_FIELD => static::MODE_DETAIL, static::QUERY_INDEX_FIELD => $queryIndex, static::OBJECT_ID_FIELD => $object->getPrimaryKey()]); $rows[] = RowBuilder::begin()->addObject($object)->setOnClick("\n athens.multi_panel.loadPanel(1, '{$detailurl}');\n athens.multi_panel.openPanel(1);\n ")->build(); } /** @var string $adderUrl */ $adderUrl = static::makeUrl([static::MODE_FIELD => static::MODE_DETAIL, static::QUERY_INDEX_FIELD => $queryIndex]); $rows[] = RowBuilder::begin()->addWritable(FieldBuilder::begin()->setLabel("adder")->setType(FieldBuilder::TYPE_LITERAL)->addClass('adder')->setInitial("+ Add another")->build(), "adder")->setOnClick("\n athens.multi_panel.loadPanel(1, '{$adderUrl}');\n athens.multi_panel.openPanel(1);\n ")->build(); $tables[] = SectionBuilder::begin()->setId('object-manager-table-wrapper-' . $tableName)->addLabel(ucwords($tableName))->addWritable(TableBuilder::begin()->setId('object-manager-table-' . $tableName)->addRows($rows)->build())->build(); } return $tables; }
/** * @param string $content * @param string $name * @return WritableBearerBuilder */ public function addLiteralContent($content, $name = null) { $content = FieldBuilder::begin()->setType(FieldBuilder::TYPE_LITERAL)->setLabel("section-content")->setInitial($content)->build(); $this->addWritable($content, $name); return $this; }
public function testVisitRow() { $writer = new HTMLWriter(); $initialText = (string) rand(); $initialLiteral = SafeString::fromString('<a href="http://example.com">A link</a>'); $initialHidden = (string) rand(); $onClick = "console.log('Click!');"; $textField = FieldBuilder::begin()->setType("text")->setLabel("Text Field")->setInitial($initialText)->build(); $literalField = FieldBuilder::begin()->setType("literal")->setLabel("Literal Field")->setInitial($initialLiteral)->build(); $hiddenField = FieldBuilder::begin()->setType("text")->setLabel("Hidden Field")->setInitial($initialHidden)->build(); $highlightableRow = RowBuilder::begin()->addWritable($textField, "TextField")->addWritable($literalField, "LiteralField")->addWritable($hiddenField, "HiddenField")->setHighlightable(true)->build(); // Get result and strip quotes, for easier analysis $result = $this->stripQuotes($writer->visitRow($highlightableRow)); $this->assertContains("<tr", $result); $this->assertContains("</tr>", $result); $this->assertContains("<td class=TextField", $result); $this->assertContains("<td class=LiteralField", $result); $this->assertContains("<td class=HiddenField", $result); $this->assertContains("highlightable", $result); $this->assertContains("class= clickable", $result); $this->assertContains($this->stripQuotes($initialLiteral), $result); $clickableRow = RowBuilder::begin()->addWritable($textField, "TextField")->addWritable($literalField, "LiteralField")->addWritable($hiddenField, "HiddenField")->setOnClick($onClick)->build(); // Get result and strip quotes, for easier analysis $result = $this->stripQuotes($writer->visitRow($clickableRow)); $this->assertContains("class= clickable", $result); }