Page MenuHomePhabricator

D12777.diff
No OneTemporary

D12777.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -7,7 +7,7 @@
*/
return array(
'names' => array(
- 'core.pkg.css' => 'ca3f6a60',
+ 'core.pkg.css' => 'a821cfc9',
'core.pkg.js' => '919c56b5',
'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => 'bb338e4b',
@@ -49,7 +49,7 @@
'rsrc/css/application/conpherence/menu.css' => 'f389e048',
'rsrc/css/application/conpherence/message-pane.css' => '3150e2a2',
'rsrc/css/application/conpherence/notification.css' => 'd208f806',
- 'rsrc/css/application/conpherence/transaction.css' => '25138b7f',
+ 'rsrc/css/application/conpherence/transaction.css' => '885433f0',
'rsrc/css/application/conpherence/update.css' => '1099a660',
'rsrc/css/application/conpherence/widget-pane.css' => '2af42ebe',
'rsrc/css/application/contentsource/content-source-view.css' => '4b8b05d4',
@@ -133,7 +133,7 @@
'rsrc/css/phui/phui-document.css' => '94d5dcd8',
'rsrc/css/phui/phui-feed-story.css' => 'c9f3a0b5',
'rsrc/css/phui/phui-fontkit.css' => 'dd8ddf27',
- 'rsrc/css/phui/phui-form-view.css' => '17eace76',
+ 'rsrc/css/phui/phui-form-view.css' => '94ae3032',
'rsrc/css/phui/phui-form.css' => 'f535f938',
'rsrc/css/phui/phui-header-view.css' => 'da4586b1',
'rsrc/css/phui/phui-icon.css' => 'bc766998',
@@ -346,6 +346,7 @@
'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => 'b1a59974',
'rsrc/js/application/aphlict/behavior-aphlict-status.js' => 'ea681761',
'rsrc/js/application/auth/behavior-persona-login.js' => '9414ff18',
+ 'rsrc/js/application/calendar/event-all-day.js' => 'ca5fa62a',
'rsrc/js/application/config/behavior-reorder-fields.js' => '14a827de',
'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '9e507b59',
'rsrc/js/application/conpherence/behavior-drag-and-drop-photo.js' => 'cf86d16a',
@@ -516,7 +517,7 @@
'conpherence-message-pane-css' => '3150e2a2',
'conpherence-notification-css' => 'd208f806',
'conpherence-thread-manager' => '9e507b59',
- 'conpherence-transaction-css' => '25138b7f',
+ 'conpherence-transaction-css' => '885433f0',
'conpherence-update-css' => '1099a660',
'conpherence-widget-pane-css' => '2af42ebe',
'differential-changeset-view-css' => 'e19cfd6e',
@@ -585,6 +586,7 @@
'javelin-behavior-doorkeeper-tag' => 'e5822781',
'javelin-behavior-durable-column' => '657c2b50',
'javelin-behavior-error-log' => '6882e80a',
+ 'javelin-behavior-event-all-day' => 'ca5fa62a',
'javelin-behavior-fancy-datepicker' => '5c0f680f',
'javelin-behavior-global-drag-and-drop' => 'c8e57404',
'javelin-behavior-herald-rule-editor' => '7ebaeed3',
@@ -784,7 +786,7 @@
'phui-font-icon-base-css' => '3dad2ae3',
'phui-fontkit-css' => 'dd8ddf27',
'phui-form-css' => 'f535f938',
- 'phui-form-view-css' => '17eace76',
+ 'phui-form-view-css' => '94ae3032',
'phui-header-view-css' => 'da4586b1',
'phui-icon-view-css' => 'bc766998',
'phui-image-mask-css' => '5a8b09c8',
diff --git a/src/applications/conpherence/query/ConpherenceThreadSearchEngine.php b/src/applications/conpherence/query/ConpherenceThreadSearchEngine.php
--- a/src/applications/conpherence/query/ConpherenceThreadSearchEngine.php
+++ b/src/applications/conpherence/query/ConpherenceThreadSearchEngine.php
@@ -149,32 +149,48 @@
$viewer,
$conpherences);
+ $engines = array();
+
$fulltext = $query->getParameter('fulltext');
if (strlen($fulltext) && $conpherences) {
$context = $this->loadContextMessages($conpherences, $fulltext);
$author_phids = array();
- foreach ($context as $messages) {
+ foreach ($context as $phid => $messages) {
+ $conpherence = $conpherences[$phid];
+
+ $engine = id(new PhabricatorMarkupEngine())
+ ->setViewer($viewer)
+ ->setContextObject($conpherence);
+
foreach ($messages as $group) {
foreach ($group as $message) {
$xaction = $message['xaction'];
if ($xaction) {
$author_phids[] = $xaction->getAuthorPHID();
+ $engine->addObject(
+ $xaction->getComment(),
+ PhabricatorApplicationTransactionComment::MARKUP_FIELD_COMMENT);
}
}
}
+ $engine->process();
+
+ $engines[$phid] = $engine;
}
$handles = $viewer->loadHandles($author_phids);
+ $handles = iterator_to_array($handles);
} else {
$context = array();
}
$list = new PHUIObjectItemListView();
$list->setUser($viewer);
- foreach ($conpherences as $conpherence) {
+ foreach ($conpherences as $conpherence_phid => $conpherence) {
$created = phabricator_date($conpherence->getDateCreated(), $viewer);
$title = $conpherence->getDisplayTitle($viewer);
+ $monogram = $conpherence->getMonogram();
if ($conpherence->getIsRoom()) {
$icon_name = $conpherence->getPolicyIconName($policy_objects);
@@ -186,7 +202,7 @@
$item = id(new PHUIObjectItemView())
->setObjectName($conpherence->getMonogram())
->setHeader($title)
- ->setHref('/conpherence/'.$conpherence->getID().'/')
+ ->setHref('/'.$conpherence->getMonogram())
->setObject($conpherence)
->addIcon('none', $created)
->addIcon(
@@ -201,43 +217,37 @@
phabricator_datetime($conpherence->getDateModified(), $viewer)),
));
- $messages = idx($context, $conpherence->getPHID());
+ $messages = idx($context, $conpherence_phid);
if ($messages) {
-
- // TODO: This is egregiously under-designed.
-
foreach ($messages as $group) {
$rows = array();
- $rowc = array();
foreach ($group as $message) {
$xaction = $message['xaction'];
if (!$xaction) {
continue;
}
- $rowc[] = ($message['match'] ? 'highlighted' : null);
- $rows[] = array(
- $handles->renderHandle($xaction->getAuthorPHID()),
- $xaction->getComment()->getContent(),
- phabricator_datetime($xaction->getDateCreated(), $viewer),
- );
+ $history_href = '/'.$monogram.'#'.$xaction->getID();
+
+ $view = id(new ConpherenceTransactionView())
+ ->setUser($viewer)
+ ->setHandles($handles)
+ ->setMarkupEngine($engines[$conpherence_phid])
+ ->setConpherenceThread($conpherence)
+ ->setConpherenceTransaction($xaction)
+ ->setEpoch($xaction->getDateCreated(), $history_href)
+ ->addClass('conpherence-fulltext-result');
+
+ if ($message['match']) {
+ $view->addClass('conpherence-fulltext-match');
+ }
+
+ $rows[] = $view;
}
- $table = id(new AphrontTableView($rows))
- ->setHeaders(
- array(
- pht('User'),
- pht('Message'),
- pht('At'),
- ))
- ->setRowClasses($rowc)
- ->setColumnClasses(
- array(
- '',
- 'wide',
- ));
+
$box = id(new PHUIBoxView())
- ->appendChild($table)
- ->addMargin(PHUI::MARGIN_SMALL);
+ ->appendChild($rows)
+ ->addClass('conpherence-fulltext-results');
$item->appendChild($box);
}
}
@@ -362,8 +372,12 @@
$groups = array();
foreach ($hits as $thread_phid => $rows) {
$rows = ipull($rows, null, 'transactionPHID');
+ $done = array();
foreach ($rows as $phid => $row) {
- unset($rows[$phid]);
+ if (isset($done[$phid])) {
+ continue;
+ }
+ $done[$phid] = true;
$group = array();
@@ -381,7 +395,7 @@
if (isset($rows[$prev])) {
$match = true;
- unset($rows[$prev]);
+ $done[$prev] = true;
} else {
$match = false;
}
@@ -411,7 +425,7 @@
if (isset($rows[$next])) {
$match = true;
- unset($rows[$next]);
+ $done[$next] = true;
} else {
$match = false;
}
@@ -451,6 +465,9 @@
foreach ($group as $key => $list) {
foreach ($list as $lkey => $item) {
$xaction = idx($xactions, $item['phid']);
+ if ($xaction->shouldHide()) {
+ continue;
+ }
$groups[$thread_phid][$key][$lkey]['xaction'] = $xaction;
}
}
diff --git a/webroot/rsrc/css/application/conpherence/transaction.css b/webroot/rsrc/css/application/conpherence/transaction.css
--- a/webroot/rsrc/css/application/conpherence/transaction.css
+++ b/webroot/rsrc/css/application/conpherence/transaction.css
@@ -25,3 +25,22 @@
color: {$darkbluetext};
font-weight: bold;
}
+
+.conpherence-fulltext-results {
+ margin: 0 8px 8px;
+ background: {$lightgreybackground};
+ border: 1px solid {$lightgreyborder};
+}
+
+.conpherence-fulltext-result {
+ margin: 0 0 1px;
+ padding: 8px;
+}
+
+.conpherence-fulltext-match {
+ background: {$lightyellow};
+}
+
+.conpherence-fulltext-results .epoch-link {
+ float: right;
+}

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 5, 10:26 AM (20 h, 9 m ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7225073
Default Alt Text
D12777.diff (9 KB)

Event Timeline