Page MenuHomePhabricator

D16533.id39787.diff
No OneTemporary

D16533.id39787.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -50,7 +50,7 @@
'rsrc/css/application/conpherence/notification.css' => '6cdcc253',
'rsrc/css/application/conpherence/transaction.css' => '2c71247c',
'rsrc/css/application/conpherence/update.css' => 'faf6be09',
- 'rsrc/css/application/conpherence/widget-pane.css' => 'c689f6a4',
+ 'rsrc/css/application/conpherence/widget-pane.css' => 'a131d5b6',
'rsrc/css/application/contentsource/content-source-view.css' => '4b8b05d4',
'rsrc/css/application/countdown/timer.css' => '16c52f5c',
'rsrc/css/application/daemon/bulk-job.css' => 'df9c1d4a',
@@ -399,6 +399,7 @@
'rsrc/js/application/conpherence/behavior-menu.js' => '1d45c74d',
'rsrc/js/application/conpherence/behavior-pontificate.js' => '21ba5861',
'rsrc/js/application/conpherence/behavior-quicksand-blacklist.js' => '7927a7d3',
+ 'rsrc/js/application/conpherence/behavior-toggle-widget.js' => '9e6c52cb',
'rsrc/js/application/conpherence/behavior-widget-pane.js' => 'a8458711',
'rsrc/js/application/countdown/timer.js' => 'e4cc26b3',
'rsrc/js/application/daemon/behavior-bulk-job-reload.js' => 'edf8a145',
@@ -581,7 +582,7 @@
'conpherence-thread-manager' => '01774ab2',
'conpherence-transaction-css' => '2c71247c',
'conpherence-update-css' => 'faf6be09',
- 'conpherence-widget-pane-css' => 'c689f6a4',
+ 'conpherence-widget-pane-css' => 'a131d5b6',
'd3' => 'a11a5ff2',
'differential-changeset-view-css' => '9ef7d354',
'differential-core-view-css' => '5b7b8ff4',
@@ -731,6 +732,7 @@
'javelin-behavior-test-payment-form' => 'fc91ab6c',
'javelin-behavior-time-typeahead' => '522431f7',
'javelin-behavior-toggle-class' => '92b9ec77',
+ 'javelin-behavior-toggle-widget' => '9e6c52cb',
'javelin-behavior-typeahead-browse' => '635de1ec',
'javelin-behavior-typeahead-search' => '93d0c9e3',
'javelin-behavior-view-placeholder' => '47830651',
@@ -1698,6 +1700,13 @@
'phabricator-phtize',
'changeset-view-manager',
),
+ '9e6c52cb' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-util',
+ 'javelin-workflow',
+ 'javelin-stratcom',
+ ),
'9ef7d354' => array(
'phui-inline-comment-view-css',
),
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -2216,6 +2216,7 @@
'PhabricatorConpherenceNotificationsSetting' => 'applications/settings/setting/PhabricatorConpherenceNotificationsSetting.php',
'PhabricatorConpherencePreferencesSettingsPanel' => 'applications/settings/panel/PhabricatorConpherencePreferencesSettingsPanel.php',
'PhabricatorConpherenceThreadPHIDType' => 'applications/conpherence/phid/PhabricatorConpherenceThreadPHIDType.php',
+ 'PhabricatorConpherenceWidgetVisibleSetting' => 'applications/settings/setting/PhabricatorConpherenceWidgetVisibleSetting.php',
'PhabricatorConsoleApplication' => 'applications/console/application/PhabricatorConsoleApplication.php',
'PhabricatorConsoleContentSource' => 'infrastructure/contentsource/PhabricatorConsoleContentSource.php',
'PhabricatorContentSource' => 'infrastructure/contentsource/PhabricatorContentSource.php',
@@ -6973,6 +6974,7 @@
'PhabricatorConpherenceNotificationsSetting' => 'PhabricatorSelectSetting',
'PhabricatorConpherencePreferencesSettingsPanel' => 'PhabricatorEditEngineSettingsPanel',
'PhabricatorConpherenceThreadPHIDType' => 'PhabricatorPHIDType',
+ 'PhabricatorConpherenceWidgetVisibleSetting' => 'PhabricatorInternalSetting',
'PhabricatorConsoleApplication' => 'PhabricatorApplication',
'PhabricatorConsoleContentSource' => 'PhabricatorContentSource',
'PhabricatorContentSource' => 'Phobject',
diff --git a/src/applications/conpherence/controller/ConpherenceViewController.php b/src/applications/conpherence/controller/ConpherenceViewController.php
--- a/src/applications/conpherence/controller/ConpherenceViewController.php
+++ b/src/applications/conpherence/controller/ConpherenceViewController.php
@@ -12,6 +12,30 @@
protected function buildApplicationCrumbs() {
$crumbs = $this->buildConpherenceApplicationCrumbs();
$crumbs->setBorder(true);
+
+ $widget_key = PhabricatorConpherenceWidgetVisibleSetting::SETTINGKEY;
+ $user = $this->getViewer();
+ $widget_view = (bool)$user->getUserSetting($widget_key, false);
+
+ $divider = id(new PHUIListItemView())
+ ->setType(PHUIListItemView::TYPE_DIVIDER);
+ $crumbs->addAction($divider);
+
+ $toggle_id = celerity_generate_unique_node_id();
+ Javelin::initBehavior(
+ 'toggle-widget',
+ array(
+ 'show' => (int)$widget_view,
+ 'settingsURI' => '/settings/adjust/?key='.$widget_key,
+ ));
+
+ $crumbs->addAction(
+ id(new PHUIListItemView())
+ ->setHref('#')
+ ->setID($toggle_id)
+ ->addSigil('conpherence-widget-toggle')
+ ->setIcon('fa-columns'));
+
return $crumbs;
}
diff --git a/src/applications/conpherence/view/ConpherenceLayoutView.php b/src/applications/conpherence/view/ConpherenceLayoutView.php
--- a/src/applications/conpherence/view/ConpherenceLayoutView.php
+++ b/src/applications/conpherence/view/ConpherenceLayoutView.php
@@ -55,12 +55,18 @@
return $this;
}
+ public function getWidgetColumnVisible() {
+ $widget_key = PhabricatorConpherenceWidgetVisibleSetting::SETTINGKEY;
+ $user = $this->getUser();
+ return (bool)$user->getUserSetting($widget_key, false);
+ }
+
public function render() {
require_celerity_resource('conpherence-menu-css');
require_celerity_resource('conpherence-message-pane-css');
require_celerity_resource('conpherence-widget-pane-css');
- $layout_id = celerity_generate_unique_node_id();
+ $layout_id = 'conpherence-main-layout';
$selected_id = null;
$selected_thread_id = null;
@@ -90,9 +96,13 @@
'hasWidgets' => false,
));
- $class = null;
+ $classes = array();
if (!$this->getUser()->isLoggedIn()) {
- $class = 'conpherence-logged-out';
+ $classes[] = 'conpherence-logged-out';
+ }
+
+ if (!$this->getWidgetColumnVisible()) {
+ $classes[] = 'hide-widgets';
}
$this->initBehavior(
@@ -105,7 +115,7 @@
'id' => $layout_id,
'sigil' => 'conpherence-layout',
'class' => 'conpherence-layout '.
- $class.
+ implode(' ', $classes).
' conpherence-role-'.$this->role,
),
array(
diff --git a/src/applications/settings/setting/PhabricatorConpherenceWidgetVisibleSetting.php b/src/applications/settings/setting/PhabricatorConpherenceWidgetVisibleSetting.php
new file mode 100644
--- /dev/null
+++ b/src/applications/settings/setting/PhabricatorConpherenceWidgetVisibleSetting.php
@@ -0,0 +1,12 @@
+<?php
+
+final class PhabricatorConpherenceWidgetVisibleSetting
+ extends PhabricatorInternalSetting {
+
+ const SETTINGKEY = 'conpherence-widget';
+
+ public function getSettingName() {
+ return pht('Conpherence Widget Pane Visible');
+ }
+
+}
diff --git a/webroot/rsrc/css/application/conpherence/widget-pane.css b/webroot/rsrc/css/application/conpherence/widget-pane.css
--- a/webroot/rsrc/css/application/conpherence/widget-pane.css
+++ b/webroot/rsrc/css/application/conpherence/widget-pane.css
@@ -190,3 +190,18 @@
width: 60px;
margin: 0 auto 0 auto;
}
+
+/****** Hide Widgets **********************************************************/
+
+.device-desktop .hide-widgets .conpherence-widget-pane {
+ display: none;
+}
+
+.device-desktop .hide-widgets .conpherence-message-pane,
+.device-desktop .hide-widgets .loading .messages-loading-mask,
+.device-desktop .hide-widgets .loading .messages-loading-icon,
+.device-desktop .hide-widgets .conpherence-no-threads,
+.device-desktop .hide-widgets .conpherence-message-pane .conpherence-messages,
+.device-desktop .hide-widgets .conpherence-message-pane .phui-form-view {
+ right: 0;
+}
diff --git a/webroot/rsrc/js/application/conpherence/behavior-toggle-widget.js b/webroot/rsrc/js/application/conpherence/behavior-toggle-widget.js
new file mode 100644
--- /dev/null
+++ b/webroot/rsrc/js/application/conpherence/behavior-toggle-widget.js
@@ -0,0 +1,26 @@
+/**
+ * @provides javelin-behavior-toggle-widget
+ * @requires javelin-behavior
+ * javelin-dom
+ * javelin-util
+ * javelin-workflow
+ * javelin-stratcom
+ */
+
+JX.behavior('toggle-widget', function(config) {
+
+ function _toggleColumn(e) {
+ e.kill();
+ JX.DOM.alterClass(JX.$('conpherence-main-column'), 'hide-widgets', true);
+
+ new JX.Request(config.settingsURI)
+ .setData({value: (config.show ? 0 : 1)})
+ .send();
+ }
+
+ JX.Stratcom.listen(
+ 'click',
+ 'conpherence-toggle-widget',
+ _toggleColumn);
+
+});

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 26, 8:54 PM (1 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7723995
Default Alt Text
D16533.id39787.diff (8 KB)

Event Timeline