示例#1
0
 public function testLinkMethodCallsLinkRowsToFields()
 {
     $this->rowEditor->linkByQueryString('dewdrop_test_fruits', 'dewdrop_test_fruit_id');
     /* @var $field \Dewdrop\Db\Field */
     $field = $this->fields->get('dewdrop_test_fruits:name');
     $this->assertFalse($field->hasRow());
     $this->rowEditor->link();
     $this->assertTrue($field->hasRow());
 }
示例#2
0
 public function testAddingFieldWithDuplicateIdViaArrayInterfaceWithReplacePreviousField()
 {
     $field = new Field();
     $field->setId('visible');
     $newHash = spl_object_hash($field);
     $oldHash = spl_object_hash($this->fields->get('visible'));
     $this->assertEquals($oldHash, spl_object_hash($this->fields->get('visible')));
     $this->fields['visible'] = $field;
     $this->assertEquals($newHash, spl_object_hash($this->fields->get('visible')));
     $count = 0;
     /* @var $field Field */
     foreach ($this->fields as $field) {
         if ('visible' === $field->getId()) {
             $count += 1;
         }
     }
     $this->assertEquals(1, $count);
 }
示例#3
0
 /**
  * Apply the filter to the supplied set of fields.  In return, you'll end
  * up with a \Dewdrop\Fields\GroupedFields object that reflects the sort
  * order and grouping preferences contained in this filter.  You can use
  * that object either as a normal \Dewdrop\Fields object or you can call
  * getGroups() on it to get the fields back in their assigned groups.
  *
  * @param Fields $currentFields
  * @return GroupedFields
  */
 public function apply(Fields $currentFields)
 {
     if (!$this->loadedDbData) {
         $this->loadedDbData = $this->load();
     }
     $groupedFields = new GroupedFields([], $currentFields->getUser());
     foreach ($this->loadedDbData as $fieldConfig) {
         // Ungrouped fields come after grouped fields
         if (!$fieldConfig['group_id']) {
             continue;
         }
         $fieldId = $fieldConfig['field_id'];
         $groupId = $fieldConfig['group_id'];
         if ($currentFields->has($fieldId)) {
             if (!$groupedFields->hasGroup($groupId)) {
                 $group = $groupedFields->addGroup($groupId);
                 $group->setTitle($fieldConfig['group_title']);
             }
             $groupedFields->getGroup($groupId)->add($currentFields->get($fieldId));
         }
     }
     $ungrouped = $groupedFields->addGroup('ungrouped');
     $ungrouped->setTitle('Other');
     foreach ($this->loadedDbData as $fieldConfig) {
         if (!$fieldConfig['group_id']) {
             $id = $fieldConfig['field_id'];
             if ($currentFields->has($id)) {
                 $ungrouped->add($currentFields->get($id));
             }
         }
     }
     foreach ($currentFields as $field) {
         if (!$groupedFields->has($field->getId())) {
             $ungrouped->add($field);
         }
     }
     return $groupedFields;
 }