Пример #1
0
 public function readValueFromObject(PhabricatorCustomFieldInterface $object)
 {
     $key = $this->getFieldKey();
     if ($object->hasAlmanacProperty($key)) {
         $this->setValueFromStorage($object->getAlmanacPropertyValue($key));
     }
 }
 /**
  * @task apps
  */
 public static function getObjectFields(PhabricatorCustomFieldInterface $object, $role)
 {
     try {
         $attachment = $object->getCustomFields();
     } catch (PhabricatorDataNotAttachedException $ex) {
         $attachment = new PhabricatorCustomFieldAttachment();
         $object->attachCustomFields($attachment);
     }
     try {
         $field_list = $attachment->getCustomFieldList($role);
     } catch (PhabricatorCustomFieldNotAttachedException $ex) {
         $base_class = $object->getCustomFieldBaseClass();
         $spec = $object->getCustomFieldSpecificationForRole($role);
         if (!is_array($spec)) {
             throw new Exception(pht("Expected an array from %s for object of class '%s'.", 'getCustomFieldSpecificationForRole()', get_class($object)));
         }
         $fields = self::buildFieldList($base_class, $spec, $object);
         foreach ($fields as $key => $field) {
             if (!$field->shouldEnableForRole($role)) {
                 unset($fields[$key]);
             }
         }
         foreach ($fields as $field) {
             $field->setObject($object);
         }
         $field_list = new PhabricatorCustomFieldList($fields);
         $attachment->addCustomFieldList($role, $field_list);
     }
     return $field_list;
 }
 public function readValueFromObject(PhabricatorCustomFieldInterface $object)
 {
     $key = $this->getProxy()->getRawStandardFieldKey();
     $this->setValueFromStorage($object->getProperty($key));
 }
 /**
  * Publish field indexes into index tables, so ApplicationSearch can search
  * them.
  *
  * @return void
  */
 public function rebuildIndexes(PhabricatorCustomFieldInterface $object)
 {
     $indexes = array();
     $index_keys = array();
     $phid = $object->getPHID();
     $role = PhabricatorCustomField::ROLE_APPLICATIONSEARCH;
     foreach ($this->fields as $field) {
         if (!$field->shouldEnableForRole($role)) {
             continue;
         }
         $index_keys[$field->getFieldIndex()] = true;
         foreach ($field->buildFieldIndexes() as $index) {
             $index->setObjectPHID($phid);
             $indexes[$index->getTableName()][] = $index;
         }
     }
     if (!$indexes) {
         return;
     }
     $any_index = head(head($indexes));
     $conn_w = $any_index->establishConnection('w');
     foreach ($indexes as $table => $index_list) {
         $sql = array();
         foreach ($index_list as $index) {
             $sql[] = $index->formatForInsert($conn_w);
         }
         $indexes[$table] = $sql;
     }
     $any_index->openTransaction();
     foreach ($indexes as $table => $sql_list) {
         queryfx($conn_w, 'DELETE FROM %T WHERE objectPHID = %s AND indexKey IN (%Ls)', $table, $phid, array_keys($index_keys));
         if (!$sql_list) {
             continue;
         }
         foreach (PhabricatorLiskDAO::chunkSQL($sql_list) as $chunk) {
             queryfx($conn_w, 'INSERT INTO %T (objectPHID, indexKey, indexValue) VALUES %Q', $table, $chunk);
         }
     }
     $any_index->saveTransaction();
 }
 public function readValueFromObject(PhabricatorCustomFieldInterface $object)
 {
     $this->value = $object->loadUserProfile()->getTitle();
 }
 public function readValueFromObject(PhabricatorCustomFieldInterface $object)
 {
     $this->value = $object->getRealName();
 }