1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-27 07:50:57 +01:00

Remove 'full-display' setting from Conpherence, spruce up search results

Summary: This removes 'full-display', 'minimal-display' from Conpherence, which I recall was because we had 2 UIs for column and regular chat. I'm also tossing in slightly nicer search results, with a link to the actual message and the full date shown for context.

Test Plan: Post a message in mobile, tablet, full conpherence, and in durable column. Clean up UI in durable column. Do a search in Full UI, click on result date, get taken to the message... usually. My test data is a little wonky, but I think this works most of the time.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Differential Revision: https://secure.phabricator.com/D16710
This commit is contained in:
Chad Little 2016-10-15 20:26:15 -07:00
parent dd25b2b48b
commit ac8e11359d
12 changed files with 124 additions and 179 deletions

View file

@ -7,10 +7,10 @@
*/
return array(
'names' => array(
'conpherence.pkg.css' => 'f934296b',
'conpherence.pkg.css' => '49b8aaac',
'conpherence.pkg.js' => 'cbe4d9be',
'core.pkg.css' => 'b99bbf5e',
'core.pkg.js' => '30185d95',
'core.pkg.js' => '3eb7abf7',
'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => 'e1d704ce',
'differential.pkg.js' => '634399e9',
@ -46,10 +46,10 @@ return array(
'rsrc/css/application/config/config-template.css' => '8f18fa41',
'rsrc/css/application/config/setup-issue.css' => 'f794cfc3',
'rsrc/css/application/config/unhandled-exception.css' => '4c96257a',
'rsrc/css/application/conpherence/durable-column.css' => '44bcaa19',
'rsrc/css/application/conpherence/durable-column.css' => 'd82e130c',
'rsrc/css/application/conpherence/header-pane.css' => 'e8acbd37',
'rsrc/css/application/conpherence/menu.css' => '4f51db5a',
'rsrc/css/application/conpherence/message-pane.css' => '7a94bf5e',
'rsrc/css/application/conpherence/message-pane.css' => 'b80f1675',
'rsrc/css/application/conpherence/notification.css' => '965db05b',
'rsrc/css/application/conpherence/participant-pane.css' => '7bba0b56',
'rsrc/css/application/conpherence/transaction.css' => '85129c68',
@ -435,9 +435,9 @@ return array(
'rsrc/js/application/calendar/behavior-month-view.js' => 'fe33e256',
'rsrc/js/application/calendar/behavior-recurring-edit.js' => '5f1c4d5f',
'rsrc/js/application/config/behavior-reorder-fields.js' => 'b6993408',
'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '01774ab2',
'rsrc/js/application/conpherence/behavior-conpherence-search.js' => '3e137827',
'rsrc/js/application/conpherence/behavior-durable-column.js' => 'c5238acb',
'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '358c717b',
'rsrc/js/application/conpherence/behavior-conpherence-search.js' => '9bbf3762',
'rsrc/js/application/conpherence/behavior-durable-column.js' => 'aa3bd034',
'rsrc/js/application/conpherence/behavior-menu.js' => '07928ca3',
'rsrc/js/application/conpherence/behavior-participant-pane.js' => '8604caa8',
'rsrc/js/application/conpherence/behavior-pontificate.js' => 'f2e58483',
@ -616,13 +616,13 @@ return array(
'conduit-api-css' => '7bc725c4',
'config-options-css' => '0ede4c9b',
'config-page-css' => '8798e14f',
'conpherence-durable-column-view' => '44bcaa19',
'conpherence-durable-column-view' => 'd82e130c',
'conpherence-header-pane-css' => 'e8acbd37',
'conpherence-menu-css' => '4f51db5a',
'conpherence-message-pane-css' => '7a94bf5e',
'conpherence-message-pane-css' => 'b80f1675',
'conpherence-notification-css' => '965db05b',
'conpherence-participant-pane-css' => '7bba0b56',
'conpherence-thread-manager' => '01774ab2',
'conpherence-thread-manager' => '358c717b',
'conpherence-transaction-css' => '85129c68',
'd3' => 'a11a5ff2',
'differential-changeset-view-css' => '9ef7d354',
@ -666,7 +666,7 @@ return array(
'javelin-behavior-conpherence-menu' => '07928ca3',
'javelin-behavior-conpherence-participant-pane' => '8604caa8',
'javelin-behavior-conpherence-pontificate' => 'f2e58483',
'javelin-behavior-conpherence-search' => '3e137827',
'javelin-behavior-conpherence-search' => '9bbf3762',
'javelin-behavior-countdown-timer' => 'e4cc26b3',
'javelin-behavior-dark-console' => 'f411b6ae',
'javelin-behavior-dashboard-async-panel' => '469c0d9e',
@ -695,7 +695,7 @@ return array(
'javelin-behavior-diffusion-pull-lastmodified' => 'f01586dc',
'javelin-behavior-doorkeeper-tag' => 'e5822781',
'javelin-behavior-drydock-live-operation-status' => '901935ef',
'javelin-behavior-durable-column' => 'c5238acb',
'javelin-behavior-durable-column' => 'aa3bd034',
'javelin-behavior-editengine-reorder-configs' => 'd7a74243',
'javelin-behavior-editengine-reorder-fields' => 'b59e1e96',
'javelin-behavior-error-log' => '6882e80a',
@ -974,17 +974,6 @@ return array(
'javelin-request',
'javelin-typeahead-source',
),
'01774ab2' => array(
'javelin-dom',
'javelin-util',
'javelin-stratcom',
'javelin-install',
'javelin-aphlict',
'javelin-workflow',
'javelin-router',
'javelin-behavior-device',
'javelin-vector',
),
'019f36c4' => array(
'javelin-behavior',
'javelin-dom',
@ -1211,6 +1200,17 @@ return array(
'javelin-dom',
'javelin-workflow',
),
'358c717b' => array(
'javelin-dom',
'javelin-util',
'javelin-stratcom',
'javelin-install',
'javelin-aphlict',
'javelin-workflow',
'javelin-router',
'javelin-behavior-device',
'javelin-vector',
),
'3ab51e2c' => array(
'javelin-behavior',
'javelin-behavior-device',
@ -1227,13 +1227,6 @@ return array(
'javelin-util',
'javelin-uri',
),
'3e137827' => array(
'javelin-behavior',
'javelin-dom',
'javelin-util',
'javelin-workflow',
'javelin-stratcom',
),
'3f5d6dbf' => array(
'javelin-behavior',
'javelin-dom',
@ -1759,6 +1752,13 @@ return array(
'phabricator-phtize',
'changeset-view-manager',
),
'9bbf3762' => array(
'javelin-behavior',
'javelin-dom',
'javelin-util',
'javelin-workflow',
'javelin-stratcom',
),
'9bdbbab0' => array(
'javelin-behavior',
'javelin-dom',
@ -1839,6 +1839,16 @@ return array(
'javelin-util',
'phabricator-prefab',
),
'aa3bd034' => array(
'javelin-behavior',
'javelin-dom',
'javelin-stratcom',
'javelin-behavior-device',
'javelin-scrollbar',
'javelin-quicksand',
'phabricator-keyboard-shortcut',
'conpherence-thread-manager',
),
'ab2f381b' => array(
'javelin-request',
'javelin-behavior',
@ -1966,16 +1976,6 @@ return array(
'javelin-install',
'javelin-dom',
),
'c5238acb' => array(
'javelin-behavior',
'javelin-dom',
'javelin-stratcom',
'javelin-behavior-device',
'javelin-scrollbar',
'javelin-quicksand',
'phabricator-keyboard-shortcut',
'conpherence-thread-manager',
),
'c587b80f' => array(
'javelin-install',
),

View file

@ -5,7 +5,6 @@ final class ConpherenceTransactionRenderer extends Phobject {
public static function renderTransactions(
PhabricatorUser $user,
ConpherenceThread $conpherence,
$full_display = true,
$marker_type = 'older') {
$transactions = $conpherence->getTransactions();
@ -74,8 +73,7 @@ final class ConpherenceTransactionRenderer extends Phobject {
->setUser($user)
->setConpherenceThread($conpherence)
->setHandles($handles)
->setMarkupEngine($engine)
->setFullDisplay($full_display);
->setMarkupEngine($engine);
foreach ($transactions as $transaction) {
$collapsed = false;

View file

@ -335,9 +335,6 @@ final class ConpherenceUpdateController
$request->getInt('latest_transaction_id'))
->appendForm($form);
if ($request->getExists('minimal_display')) {
$view->addHiddenInput('minimal_display', true);
}
return $view;
}
@ -477,9 +474,6 @@ final class ConpherenceUpdateController
->addHiddenInput('__continue__', true)
->appendChild($form);
if ($request->getExists('minimal_display')) {
$view->addHiddenInput('minimal_display', true);
}
if ($request->getExists('force_ajax')) {
$view->addHiddenInput('force_ajax', true);
}
@ -492,7 +486,6 @@ final class ConpherenceUpdateController
$conpherence_id,
$latest_transaction_id) {
$minimal_display = $this->getRequest()->getExists('minimal_display');
$need_transactions = false;
$need_participant_cache = true;
switch ($action) {
@ -525,8 +518,7 @@ final class ConpherenceUpdateController
if ($need_transactions && $conpherence->getTransactions()) {
$data = ConpherenceTransactionRenderer::renderTransactions(
$user,
$conpherence,
!$minimal_display);
$conpherence);
$key = PhabricatorConpherenceColumnMinimizeSetting::SETTINGKEY;
$minimized = $user->getUserSetting($key);
if (!$minimized) {
@ -547,35 +539,33 @@ final class ConpherenceUpdateController
$nav_item = null;
$header = null;
$people_widget = null;
if (!$minimal_display) {
switch ($action) {
case ConpherenceUpdateActions::METADATA:
$policy_objects = id(new PhabricatorPolicyQuery())
->setViewer($user)
->setObject($conpherence)
->execute();
$header = $this->buildHeaderPaneContent(
$conpherence,
$policy_objects);
$header = hsprintf('%s', $header);
$nav_item = id(new ConpherenceThreadListView())
->setUser($user)
->setBaseURI($this->getApplicationURI())
->renderSingleThread($conpherence, $policy_objects);
$nav_item = hsprintf('%s', $nav_item);
break;
case ConpherenceUpdateActions::ADD_PERSON:
$people_widget = id(new ConpherenceParticipantView())
->setUser($user)
->setConpherence($conpherence)
->setUpdateURI($update_uri);
$people_widget = hsprintf('%s', $people_widget->render());
break;
case ConpherenceUpdateActions::REMOVE_PERSON:
case ConpherenceUpdateActions::NOTIFICATIONS:
default:
break;
}
switch ($action) {
case ConpherenceUpdateActions::METADATA:
$policy_objects = id(new PhabricatorPolicyQuery())
->setViewer($user)
->setObject($conpherence)
->execute();
$header = $this->buildHeaderPaneContent(
$conpherence,
$policy_objects);
$header = hsprintf('%s', $header);
$nav_item = id(new ConpherenceThreadListView())
->setUser($user)
->setBaseURI($this->getApplicationURI())
->renderSingleThread($conpherence, $policy_objects);
$nav_item = hsprintf('%s', $nav_item);
break;
case ConpherenceUpdateActions::ADD_PERSON:
$people_widget = id(new ConpherenceParticipantView())
->setUser($user)
->setConpherence($conpherence)
->setUpdateURI($update_uri);
$people_widget = hsprintf('%s', $people_widget->render());
break;
case ConpherenceUpdateActions::REMOVE_PERSON:
case ConpherenceUpdateActions::NOTIFICATIONS:
default:
break;
}
$data = $conpherence->getDisplayData($user);
$dropdown_query = id(new AphlictDropdownDataQuery())

View file

@ -73,7 +73,6 @@ final class ConpherenceViewController extends
$data = ConpherenceTransactionRenderer::renderTransactions(
$user,
$conpherence,
$full_display = true,
$marker_type);
$messages = ConpherenceTransactionRenderer::renderMessagePaneContent(
$data['transactions'],

View file

@ -199,7 +199,7 @@ final class ConpherenceThreadSearchEngine
->setMarkupEngine($engines[$conpherence_phid])
->setConpherenceThread($conpherence)
->setConpherenceTransaction($xaction)
->setFullDisplay(true)
->setSearchResult(true)
->addClass('conpherence-fulltext-result');
if ($message['match']) {

View file

@ -413,8 +413,7 @@ final class ConpherenceDurableColumnView extends AphrontTagView {
$data = ConpherenceTransactionRenderer::renderTransactions(
$this->getUser(),
$conpherence,
$full_display = false);
$conpherence);
$messages = ConpherenceTransactionRenderer::renderMessagePaneContent(
$data['transactions'],
$data['oldest_transaction_id'],

View file

@ -6,8 +6,8 @@ final class ConpherenceTransactionView extends AphrontView {
private $conpherenceTransaction;
private $handles;
private $markupEngine;
private $fullDisplay;
private $classes = array();
private $searchResult;
private $timeOnly;
public function setConpherenceThread(ConpherenceThread $t) {
@ -47,17 +47,13 @@ final class ConpherenceTransactionView extends AphrontView {
return $this->markupEngine;
}
public function setFullDisplay($bool) {
$this->fullDisplay = $bool;
public function addClass($class) {
$this->classes[] = $class;
return $this;
}
private function getFullDisplay() {
return $this->fullDisplay;
}
public function addClass($class) {
$this->classes[] = $class;
public function setSearchResult($result) {
$this->searchResult = $result;
return $this;
}
@ -100,11 +96,7 @@ final class ConpherenceTransactionView extends AphrontView {
$image = $this->renderTransactionImage();
$content = $this->renderTransactionContent();
$classes = implode(' ', $this->classes);
$transaction_dom_id = null;
if ($this->getFullDisplay()) {
$transaction_dom_id = 'anchor-'.$transaction->getID();
}
$transaction_dom_id = 'anchor-'.$transaction->getID();
$header = phutil_tag_div(
'conpherence-transaction-header grouped',
@ -137,12 +129,25 @@ final class ConpherenceTransactionView extends AphrontView {
$tip = phabricator_datetime($transaction->getDateCreated(), $viewer);
$label = phabricator_time($transaction->getDateCreated(), $viewer);
$width = 360;
if ($this->getFullDisplay()) {
Javelin::initBehavior('phabricator-watch-anchor');
$anchor = id(new PhabricatorAnchorView())
->setAnchorName($transaction->getID())
->render();
Javelin::initBehavior('phabricator-watch-anchor');
$anchor = id(new PhabricatorAnchorView())
->setAnchorName($transaction->getID())
->render();
if ($this->searchResult) {
$uri = $thread->getMonogram();
$info[] = hsprintf(
'%s',
javelin_tag(
'a',
array(
'href' => '/'.$uri.'#'.$transaction->getID(),
'class' => 'transaction-date',
'sigil' => 'conpherence-search-result-jump',
),
$tip));
} else {
$info[] = hsprintf(
'%s%s',
$anchor,
@ -150,7 +155,7 @@ final class ConpherenceTransactionView extends AphrontView {
'a',
array(
'href' => '#'.$transaction->getID(),
'class' => 'anchor-link',
'class' => 'transaction-date anchor-link',
'sigil' => 'has-tooltip',
'meta' => array(
'tip' => $tip,
@ -158,20 +163,6 @@ final class ConpherenceTransactionView extends AphrontView {
),
),
$label));
} else {
$href = '/'.$thread->getMonogram().'#'.$transaction->getID();
$info[] = javelin_tag(
'a',
array(
'href' => $href,
'class' => 'epoch-link',
'sigil' => 'has-tooltip',
'meta' => array(
'tip' => $tip,
'size' => $width,
),
),
$label);
}
return phutil_tag(

View file

@ -180,19 +180,6 @@
padding: 8px 12px 0;
}
.conpherence-durable-column-transactions
.conpherence-transaction-view.conpherence-edited {
color: {$lightgreytext};
margin: 0;
padding: 0;
font-style: italic;
}
.conpherence-durable-column-transactions .conpherence-edited
.conpherence-transaction-header {
display: none;
}
.conpherence-durable-column-transactions .conpherence-transaction-view {
background: none;
margin: 0;
@ -205,48 +192,29 @@
word-wrap: break-word;
}
.conpherence-durable-column-transactions .conpherence-transaction-detail {
border: 0;
margin: 0 0 0 32px;
.conpherence-durable-column-transactions .conpherence-transaction-view
.conpherence-transaction-detail {
border: 0;
margin: 0 0 0 32px;
}
.conpherence-durable-column-transactions .conpherence-transaction-detail
.conpherence-transaction-header {
.conpherence-durable-column-transactions .conpherence-transaction-view
.conpherence-transaction-detail .conpherence-transaction-header {
background: none;
padding: 0 0 2px 0;
}
.conpherence-durable-column-transactions
.conpherence-transaction-view.date-marker {
margin: 12px 0 0;
.conpherence-transaction-view.date-marker {
margin: 12px 0 0;
}
.conpherence-durable-column-transactions
.conpherence-transaction-view.date-marker .date {
left: 0;
font-size: {$normalfontsize};
top: -14px;
padding: 0 6px 0 0;
}
.conpherence-durable-column-transactions .conpherence-transaction-detail
.conpherence-transaction-header .conpherence-transaction-info {
color: {$lightbluetext};
font-size: {$smallerfontsize};
}
.conpherence-transaction-header .epoch-link {
color: {$lightgreytext};
}
.conpherence-durable-column-transactions .conpherence-transaction-detail
.conpherence-transaction-header .phui-link-person {
margin: 0 8px 0 0;
}
.conpherence-durable-column-transactions .conpherence-transaction-detail
.conpherence-transaction-content .phui-link-person {
color: #000;
.conpherence-transaction-view.date-marker .date {
left: 0;
font-size: {$normalfontsize};
top: -10px;
padding: 0 6px 0 0;
}
.conpherence-durable-column-transactions
@ -267,9 +235,8 @@ img {
}
.conpherence-durable-column-transactions .conpherence-transaction-detail
.conpherence-transaction-content {
background: #fff;
padding: 0 0 8px 0;
.conpherence-transaction-content {
padding: 0 0 8px 0;
}
.conpherence-durable-column-textarea {

View file

@ -321,7 +321,7 @@
}
.conpherence-transaction-view .conpherence-transaction-info,
.conpherence-transaction-view .anchor-link,
.conpherence-transaction-view .transaction-date,
.conpherence-transaction-view .phabricator-content-source-view {
color: {$lightgreytext};
line-height: 16px;

View file

@ -31,7 +31,6 @@ JX.install('ConpherenceThreadManager', {
_transactionCache: null,
_canEditLoadedThread: null,
_updating: null,
_minimalDisplay: false,
_messagesRootCallback: JX.bag,
_willLoadThreadCallback: JX.bag,
_didLoadThreadCallback: JX.bag,
@ -150,11 +149,6 @@ JX.install('ConpherenceThreadManager', {
return this._canEditLoadedThread;
},
setMinimalDisplay: function(bool) {
this._minimalDisplay = bool;
return this;
},
setMessagesRootCallback: function(callback) {
this._messagesRootCallback = callback;
return this;
@ -196,9 +190,6 @@ JX.install('ConpherenceThreadManager', {
},
_getParams: function(base_params) {
if (this._minimalDisplay) {
base_params.minimal_display = true;
}
if (this._latestTransactionID) {
base_params.latest_transaction_id = this._latestTransactionID;
}

View file

@ -44,7 +44,13 @@ JX.behavior('conpherence-search', function() {
});
request.setData({fulltext: search_text});
request.send();
}
function _viewResult(e) {
e.kill();
var uri = e.getNode('tag:a');
_toggleSearch(e);
JX.$U(uri).go();
}
JX.Stratcom.listen(
@ -63,6 +69,11 @@ JX.behavior('conpherence-search', function() {
_doSearch(e);
});
JX.Stratcom.listen(
'click',
'conpherence-search-result-jump',
_viewResult);
JX.Stratcom.listen(
'click',
'conpherence-search-toggle',

View file

@ -114,7 +114,6 @@ JX.behavior('durable-column', function(config, statics) {
*/
var threadManager = new JX.ConpherenceThreadManager();
threadManager.setMinimalDisplay(true);
threadManager.setMessagesRootCallback(function() {
return _getColumnMessagesNode();
});
@ -282,7 +281,7 @@ JX.behavior('durable-column', function(config, statics) {
function _sendMessage(e) {
e.kill();
var form = _getColumnFormNode();
threadManager.sendMessage(form, { minimal_display: true });
threadManager.sendMessage(form, {});
}
JX.Stratcom.listen(