Page MenuHomePhabricator

D11991.id28873.diff
No OneTemporary

D11991.id28873.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -8,7 +8,7 @@
return array(
'names' => array(
'core.pkg.css' => '1a530a25',
- 'core.pkg.js' => 'a77025a1',
+ 'core.pkg.js' => '5a1c336d',
'darkconsole.pkg.js' => '8ab24e01',
'differential.pkg.css' => '4c3242f8',
'differential.pkg.js' => '7b5a4aa4',
@@ -346,12 +346,12 @@
'rsrc/image/texture/table_header_hover.png' => '038ec3b9',
'rsrc/image/texture/table_header_tall.png' => 'd56b434f',
'rsrc/js/application/aphlict/Aphlict.js' => '2be71d56',
- 'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => 'cc2d9c80',
+ 'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => '830b3278',
'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => '851f167c',
'rsrc/js/application/aphlict/behavior-aphlict-status.js' => 'ea681761',
'rsrc/js/application/auth/behavior-persona-login.js' => '9414ff18',
'rsrc/js/application/config/behavior-reorder-fields.js' => '14a827de',
- 'rsrc/js/application/conpherence/behavior-durable-column.js' => 'dc9fb293',
+ 'rsrc/js/application/conpherence/behavior-durable-column.js' => '5294d959',
'rsrc/js/application/conpherence/behavior-menu.js' => '869e3445',
'rsrc/js/application/conpherence/behavior-pontificate.js' => '86df5915',
'rsrc/js/application/conpherence/behavior-widget-pane.js' => '40b1ff90',
@@ -542,7 +542,7 @@
'inline-comment-summary-css' => 'eb5f8e8c',
'javelin-aphlict' => '2be71d56',
'javelin-behavior' => '61cbc29a',
- 'javelin-behavior-aphlict-dropdown' => 'cc2d9c80',
+ 'javelin-behavior-aphlict-dropdown' => '830b3278',
'javelin-behavior-aphlict-listen' => '851f167c',
'javelin-behavior-aphlict-status' => 'ea681761',
'javelin-behavior-aphront-basic-tokenizer' => 'b3a4b884',
@@ -584,7 +584,7 @@
'javelin-behavior-diffusion-locate-file' => '6d3e1947',
'javelin-behavior-diffusion-pull-lastmodified' => '2b228192',
'javelin-behavior-doorkeeper-tag' => 'e5822781',
- 'javelin-behavior-durable-column' => 'dc9fb293',
+ 'javelin-behavior-durable-column' => '5294d959',
'javelin-behavior-error-log' => '6882e80a',
'javelin-behavior-fancy-datepicker' => 'c51ae228',
'javelin-behavior-global-drag-and-drop' => '07f199d8',
@@ -1134,6 +1134,14 @@
'javelin-dom',
'javelin-reactor-dom',
),
+ '5294d959' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-stratcom',
+ 'javelin-scrollbar',
+ 'javelin-quicksand',
+ 'phabricator-keyboard-shortcut',
+ ),
'54b612ba' => array(
'javelin-color',
'javelin-install',
@@ -1400,6 +1408,16 @@
'82ce2142' => array(
'aphront-typeahead-control-css',
),
+ '830b3278' => array(
+ 'javelin-behavior',
+ 'javelin-request',
+ 'javelin-stratcom',
+ 'javelin-vector',
+ 'javelin-dom',
+ 'javelin-uri',
+ 'javelin-behavior-device',
+ 'phabricator-title',
+ ),
'834a1173' => array(
'javelin-behavior',
'javelin-scrollbar',
@@ -1733,16 +1751,6 @@
'javelin-stratcom',
'phabricator-phtize',
),
- 'cc2d9c80' => array(
- 'javelin-behavior',
- 'javelin-request',
- 'javelin-stratcom',
- 'javelin-vector',
- 'javelin-dom',
- 'javelin-uri',
- 'javelin-behavior-device',
- 'phabricator-title',
- ),
'd19198c8' => array(
'javelin-install',
'javelin-dom',
@@ -1782,15 +1790,6 @@
'javelin-dom',
'phabricator-busy',
),
- 'dc9fb293' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-stratcom',
- 'javelin-scrollbar',
- 'javelin-quicksand',
- 'phabricator-keyboard-shortcut',
- 'javelin-behavior-conpherence-widget-pane',
- ),
'de2e896f' => array(
'javelin-behavior',
'javelin-dom',
diff --git a/src/applications/conpherence/controller/ConpherenceUpdateController.php b/src/applications/conpherence/controller/ConpherenceUpdateController.php
--- a/src/applications/conpherence/controller/ConpherenceUpdateController.php
+++ b/src/applications/conpherence/controller/ConpherenceUpdateController.php
@@ -209,14 +209,19 @@
->setDatasource(new PhabricatorPeopleDatasource()));
require_celerity_resource('conpherence-update-css');
- return id(new AphrontDialogView())
+ $view = id(new AphrontDialogView())
->setTitle(pht('Add Participants'))
->addHiddenInput('action', 'add_person')
->addHiddenInput(
'latest_transaction_id',
$request->getInt('latest_transaction_id'))
->appendChild($form);
+
+ if ($request->getExists('minimal_display')) {
+ $view->addHiddenInput('minimal_display', true);
}
+ return $view;
+ }
private function renderRemovePersonDialogue(
ConpherenceThread $conpherence) {
diff --git a/src/applications/conpherence/view/ConpherenceDurableColumnView.php b/src/applications/conpherence/view/ConpherenceDurableColumnView.php
--- a/src/applications/conpherence/view/ConpherenceDurableColumnView.php
+++ b/src/applications/conpherence/view/ConpherenceDurableColumnView.php
@@ -146,21 +146,17 @@
$dropdown_id = celerity_generate_unique_node_id();
$settings_list = new PHUIListView();
- $cw_registry =
- ConpherenceWidgetConfigConstants::getWidgetRegistry();
- $first = true;
- foreach ($cw_registry as $widget => $config) {
+ $header_actions = $this->getHeaderActionsConfig($conpherence);
+ foreach ($header_actions as $action) {
$settings_list->addMenuItem(
id(new PHUIListItemView())
- ->setHref('#')
- ->setDisabled($first)
- ->setName($config['name'])
- ->setIcon($config['icon'])
- ->addSigil('conpherence-durable-column-widget-selected')
+ ->setHref($action['href'])
+ ->setName($action['name'])
+ ->setIcon($action['icon'])
+ ->addSigil('conpherence-durable-column-header-action')
->setMetadata(array(
- 'widget' => $widget,
+ 'action' => $action['key'],
)));
- $first = false;
}
$settings_menu = phutil_tag(
@@ -220,6 +216,28 @@
}
+ private function getHeaderActionsConfig(ConpherenceThread $conpherence) {
+ return array(
+ array(
+ 'name' => pht('Add Participants'),
+ 'href' => '/conpherence/update/'.$conpherence->getID().'/',
+ 'icon' => 'fa-plus',
+ 'key' => ConpherenceUpdateActions::ADD_PERSON,
+ ),
+ array(
+ 'name' => pht('View in Conpherence'),
+ 'href' => '/conpherence/'.$conpherence->getID().'/',
+ 'icon' => 'fa-comments',
+ 'key' => 'go_conpherence',
+ ),
+ array(
+ 'name' => pht('Close Window'),
+ 'href' => '#',
+ 'icon' => 'fa-times',
+ 'key' => 'close_window',
+ ),);
+ }
+
private function buildTransactions() {
$conpherence = $this->getSelectedConpherence();
if (!$conpherence) {
diff --git a/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js b/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
--- a/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
+++ b/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
@@ -170,4 +170,8 @@
dirty = true;
refresh();
});
+
+ JX.Stratcom.listen('notification-panel-close', null, function() {
+ set_visible(null);
+ });
});
diff --git a/webroot/rsrc/js/application/conpherence/behavior-durable-column.js b/webroot/rsrc/js/application/conpherence/behavior-durable-column.js
--- a/webroot/rsrc/js/application/conpherence/behavior-durable-column.js
+++ b/webroot/rsrc/js/application/conpherence/behavior-durable-column.js
@@ -6,7 +6,6 @@
* javelin-scrollbar
* javelin-quicksand
* phabricator-keyboard-shortcut
- * javelin-behavior-conpherence-widget-pane
*/
JX.behavior('durable-column', function() {
@@ -102,20 +101,25 @@
// end copy / hack of stuff with big ole TODO on it
+ function _toggleColumn() {
+ if (window.location.pathname.indexOf('/conpherence/') === 0) {
+ return;
+ }
+ show = !show;
+ JX.DOM.alterClass(frame, 'with-durable-column', show);
+ var column = JX.$('conpherence-durable-column');
+ if (show) {
+ JX.DOM.show(column);
+ loadThreadContent(loadThreadID);
+ } else {
+ JX.DOM.hide(column);
+ }
+ JX.Stratcom.invoke('resize');
+ JX.Quicksand.setFrame(show ? quick : null);
+ }
+
new JX.KeyboardShortcut('\\', 'Toggle Conpherence Column')
- .setHandler(function() {
- show = !show;
- JX.DOM.alterClass(frame, 'with-durable-column', show);
- var column = JX.$('conpherence-durable-column');
- if (show) {
- JX.DOM.show(column);
- loadThreadContent(loadThreadID);
- } else {
- JX.DOM.hide(column);
- }
- JX.Stratcom.invoke('resize');
- JX.Quicksand.setFrame(show ? quick : null);
- })
+ .setHandler(_toggleColumn)
.register();
new JX.Scrollbar(JX.$('conpherence-durable-column-content'));
@@ -124,29 +128,49 @@
JX.Stratcom.listen(
'click',
- 'conpherence-durable-column-widget-selected',
+ 'conpherence-durable-column-header-action',
function (e) {
e.kill();
- var data = e.getNodeData('conpherence-durable-column-widget-selected');
- var widget = data.widget;
- if (widget == 'conpherence-message-pane') {
- return loadThreadContent(loadThreadID);
+ var data = e.getNodeData('conpherence-durable-column-header-action');
+ var action = data.action;
+ var link = e.getNode('tag:a');
+
+ switch (action) {
+ case 'add_person':
+ JX.Stratcom.invoke('notification-panel-close');
+ var params = {
+ action: action,
+ latest_transaction_id: latestTransactionID,
+ minimal_display: true
+ };
+ var workflow = new JX.Workflow.newFromLink(link)
+ .setData(params)
+ .setHandler(function(r) {
+ var messages = _getColumnMessagesNode();
+ JX.DOM.appendContent(messages, JX.$H(r.transactions));
+ messages.scrollTop = messages.scrollHeight;
+
+ latestTransactionID = r.latest_transaction_id;
+ // since this is a two step workflow, and the "finally" method
+ // gets called on the first form load, restore "updating" if
+ // necessary
+ if (updating === null) {
+ updating = {
+ threadPHID: loadedThreadPHID,
+ knownID: latestTransactionID
+ };
+ }
+ });
+ sync_workflow(workflow);
+ break;
+ case 'go_conpherence':
+ JX.$U(link.href).go();
+ break;
+ case 'close_window':
+ JX.Stratcom.invoke('notification-panel-close');
+ _toggleColumn();
+ break;
}
-
- _markLoading(true);
- var uri = '/conpherence/widget/' + loadThreadID + '/';
- loadedThreadID = null;
-
- var params = { widget : widget };
- new JX.Workflow(uri)
- .setData(params)
- .setHandler(function(r) {
- var body = _getColumnBodyNode();
- JX.DOM.setContent(body, JX.$H(r));
- new JX.Scrollbar(JX.$('conpherence-durable-column-content'));
- _markLoading(false);
- })
- .start();
});
function _getColumnNode() {

File Metadata

Mime Type
text/plain
Expires
Tue, Nov 5, 6:35 AM (1 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6759281
Default Alt Text
D11991.id28873.diff (11 KB)

Event Timeline