Path: blob/master/src/applications/differential/field/DifferentialCommitMessageCustomField.php
12256 views
<?php12abstract class DifferentialCommitMessageCustomField3extends DifferentialCommitMessageField {45abstract public function getCustomFieldKey();67public function getFieldOrder() {8$custom_key = $this->getCustomFieldKey();9return 100000 + $this->getCustomFieldOrder($custom_key);10}1112public function isFieldEnabled() {13$custom_key = $this->getCustomFieldKey();14return $this->isCustomFieldEnabled($custom_key);15}1617public function readFieldValueFromObject(DifferentialRevision $revision) {18$custom_key = $this->getCustomFieldKey();19$value = $this->readCustomFieldValue($revision, $custom_key);20return $value;21}2223protected function readFieldValueFromCustomFieldStorage($value) {24return $value;25}2627protected function readJSONFieldValueFromCustomFieldStorage(28$value,29$default) {30try {31return phutil_json_decode($value);32} catch (PhutilJSONParserException $ex) {33return $default;34}35}3637protected function readCustomFieldValue(38DifferentialRevision $revision,39$key) {40$value = idx($this->getCustomFieldStorage(), $key);41return $this->readFieldValueFromCustomFieldStorage($value);42}4344protected function getCustomFieldOrder($key) {45$field_list = PhabricatorCustomField::getObjectFields(46new DifferentialRevision(),47PhabricatorCustomField::ROLE_DEFAULT);4849$fields = $field_list->getFields();5051$idx = 0;52foreach ($fields as $field_key => $value) {53if ($key === $field_key) {54return $idx;55}56$idx++;57}5859return $idx;60}6162public function getFieldTransactions($value) {63return array(64array(65'type' => $this->getCommitMessageFieldKey(),66'value' => $value,67),68);69}7071}727374