Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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());
 }
Esempio n. 3
0
 /**
  * @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);
 }
Esempio n. 4
0
 /**
  * @expectedException              \Exception
  * @expectedExceptionMessageRegExp #must include choices using ::setChoices.*#
  */
 public function testBuilderNeedsChoicesException()
 {
     $field = FieldBuilder::begin()->setType(FieldBuilder::TYPE_MULTIPLE_CHOICE)->setLabel("label")->build();
 }
Esempio n. 5
0
 /**
  * @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;
 }
Esempio n. 7
0
 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);
 }