Esempio n. 1
0
 /**
  * Zwraca tablicę metadata do konfiguracji grida.
  * UWAGA! To nie jest Metadata z Doctrina
  */
 public function createMetadata()
 {
     $fields = $this->initializeFields();
     $this->metadata = new Metadata($this);
     $fieldsNames = array();
     $fieldsMappings = array();
     foreach ($fields as $field) {
         // var_dump($field);
         if ($field["isAssociation"] === true) {
             if ($this->hasAssociatedObjectField($field['fieldName'], "name")) {
                 $fieldName = $field['fieldName'] . ".name";
                 $fieldsNames[] = $fieldName;
                 $type = 'text';
                 if ($field['mapping']['type'] == ClassMetadata::MANY_TO_MANY) {
                     $this->groupById = true;
                 }
                 $fieldsMappings[$fieldName] = array("title" => $fieldName, "source" => true, "field" => $fieldName, "id" => $fieldName, "type" => $type, 'associated' => true);
             }
         } else {
             $fieldName = $field['fieldName'];
             $fieldsNames[] = $field['fieldName'];
             // echo $fieldName." = ".$field['mapping']['type']."\n";
             $fieldMapping = array("title" => $fieldName, "source" => true, "field" => $fieldName, "id" => $fieldName, "type" => $this->types[$field['mapping']['type']], 'associated' => false);
             if ($fieldName == 'id') {
                 $fieldMapping["primary"] = true;
             }
             $fieldsMappings[$fieldName] = $fieldMapping;
         }
     }
     $this->metadata->setFields($fieldsNames);
     $this->metadata->setFieldsMappings($fieldsMappings);
     $this->metadata->setGroupBy(array());
     return $this->metadata;
 }
Esempio n. 2
0
 /**
  * @param \APY\DataGridBundle\Grid\Columns $columns
  * @return null
  */
 public function getColumns($columns)
 {
     foreach ($this->metadata->getColumnsFromMapping($columns) as $column) {
         $columns->addColumn($column);
     }
 }