Differential D21864 Diff 52157 src/applications/differential/conduit/DifferentialGetCommitMessageConduitAPIMethod.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/conduit/DifferentialGetCommitMessageConduitAPIMethod.php
Show First 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | protected function execute(ConduitAPIRequest $request) { | ||||
// There are three modes here: "edit", "create", and "read" (which has | // There are three modes here: "edit", "create", and "read" (which has | ||||
// no value for the "edit" parameter). | // no value for the "edit" parameter). | ||||
// In edit or create mode, we hide read-only fields. In create mode, we | // In edit or create mode, we hide read-only fields. In create mode, we | ||||
// show "Field:" templates for some fields even if they are empty. | // show "Field:" templates for some fields even if they are empty. | ||||
$edit_mode = $request->getValue('edit'); | $edit_mode = $request->getValue('edit'); | ||||
$is_any_edit = (bool)strlen($edit_mode); | $is_any_edit = $edit_mode !== null && (bool)strlen($edit_mode); | ||||
$is_create = ($edit_mode == 'create'); | $is_create = ($edit_mode == 'create'); | ||||
$field_list = DifferentialCommitMessageField::newEnabledFields($viewer); | $field_list = DifferentialCommitMessageField::newEnabledFields($viewer); | ||||
$custom_storage = $this->loadCustomFieldStorage($viewer, $revision); | $custom_storage = $this->loadCustomFieldStorage($viewer, $revision); | ||||
foreach ($field_list as $field) { | foreach ($field_list as $field) { | ||||
$field->setCustomFieldStorage($custom_storage); | $field->setCustomFieldStorage($custom_storage); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | foreach ($field_list as $field_key => $field) { | ||||
'Commit message field "%s" was expected to render a string or '. | 'Commit message field "%s" was expected to render a string or '. | ||||
'null value, but rendered a "%s" instead.', | 'null value, but rendered a "%s" instead.', | ||||
$field->getFieldKey(), | $field->getFieldKey(), | ||||
gettype($value))); | gettype($value))); | ||||
} | } | ||||
$is_title = ($field_key == $key_title); | $is_title = ($field_key == $key_title); | ||||
if (!strlen($value)) { | if ($value === null || !strlen($value)) { | ||||
if ($is_template) { | if ($is_template) { | ||||
$commit_message[] = $label.': '; | $commit_message[] = $label.': '; | ||||
} | } | ||||
} else { | } else { | ||||
if ($is_title) { | if ($is_title) { | ||||
$commit_message[] = $value; | $commit_message[] = $value; | ||||
} else { | } else { | ||||
$value = str_replace( | $value = str_replace( | ||||
▲ Show 20 Lines • Show All 42 Lines • Show Last 20 Lines |