Conpherence - improve stack re: non-update updates
Summary: Fixes T7761. Fixes T7318. When we send an empty message to the server, pretend its just a request to load the page. Make load a bit smarter such that if we don't get back any transactions, rather than error like the fool, just send down to the client the notion of a 'non_update'. Instrument the client to just turn off the appropriate loading state, etc for a non update. T7318 is a tricky beast since we don't know exactly how to reproduce it but if / when it occurs again it would be some other bizarre application behavior maybe? We won't be getting the execption anymore, that's for sure. Test Plan: removed code in `ConpherenceThreadManager.sendMessage` that protects against sending empty messages. sent empty messages (non updates) like whoa and everything worked on both durable column and main column view. re-added the code in `ConpherenceThreadManager.sendMessage` and noted empty messages did not send while any text including a space sent up nicely Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T7318, T7761 Differential Revision: https://secure.phabricator.com/D12339
This commit is contained in:
@@ -76,11 +76,17 @@ final class ConpherenceUpdateController
|
||||
break;
|
||||
case ConpherenceUpdateActions::MESSAGE:
|
||||
$message = $request->getStr('text');
|
||||
$xactions = $editor->generateTransactionsFromText(
|
||||
$user,
|
||||
$conpherence,
|
||||
$message);
|
||||
$delete_draft = true;
|
||||
if (strlen($message)) {
|
||||
$xactions = $editor->generateTransactionsFromText(
|
||||
$user,
|
||||
$conpherence,
|
||||
$message);
|
||||
$delete_draft = true;
|
||||
} else {
|
||||
$action = ConpherenceUpdateActions::LOAD;
|
||||
$updated = false;
|
||||
$response_mode = 'ajax';
|
||||
}
|
||||
break;
|
||||
case ConpherenceUpdateActions::ADD_PERSON:
|
||||
$person_phids = $request->getArr('add_person');
|
||||
@@ -397,13 +403,17 @@ final class ConpherenceUpdateController
|
||||
->withIDs(array($conpherence_id))
|
||||
->executeOne();
|
||||
|
||||
if ($need_transactions) {
|
||||
$non_update = false;
|
||||
if ($need_transactions && $conpherence->getTransactions()) {
|
||||
$data = ConpherenceTransactionView::renderTransactions(
|
||||
$user,
|
||||
$conpherence,
|
||||
!$this->getRequest()->getExists('minimal_display'));
|
||||
$participant_obj = $conpherence->getParticipant($user->getPHID());
|
||||
$participant_obj->markUpToDate($conpherence, $data['latest_transaction']);
|
||||
} else if ($need_transactions) {
|
||||
$non_update = true;
|
||||
$data = array();
|
||||
} else {
|
||||
$data = array();
|
||||
}
|
||||
@@ -451,6 +461,7 @@ final class ConpherenceUpdateController
|
||||
}
|
||||
$data = $conpherence->getDisplayData($user);
|
||||
$content = array(
|
||||
'non_update' => $non_update,
|
||||
'transactions' => hsprintf('%s', $rendered_transactions),
|
||||
'conpherence_title' => (string) $data['title'],
|
||||
'latest_transaction_id' => $new_latest_transaction_id,
|
||||
|
||||
Reference in New Issue
Block a user