mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 08:52:39 +01:00
Always collapse the left nav on desktops
Summary: There is basically no reason for anyone to ever use the uncollapsed mode for more than the first 2 minutes of using the tool. Delete all code related to collapse/expand. (I'm going to add tooltips next.) Also move the drag bar a few pixels to the right, so it does not overlap with the scrollbar on the "local" nav if there is one. Test Plan: Viewed in desktop/tablet/phone modes. Reviewers: vrana Reviewed By: vrana CC: aran Differential Revision: https://secure.phabricator.com/D3413
This commit is contained in:
parent
c4ed47929c
commit
5c006193dd
5 changed files with 11 additions and 134 deletions
|
@ -1518,7 +1518,7 @@ celerity_register_resource_map(array(
|
||||||
),
|
),
|
||||||
'javelin-behavior-phabricator-nav' =>
|
'javelin-behavior-phabricator-nav' =>
|
||||||
array(
|
array(
|
||||||
'uri' => '/res/dc349915/rsrc/js/application/core/behavior-phabricator-nav.js',
|
'uri' => '/res/6e550189/rsrc/js/application/core/behavior-phabricator-nav.js',
|
||||||
'type' => 'js',
|
'type' => 'js',
|
||||||
'requires' =>
|
'requires' =>
|
||||||
array(
|
array(
|
||||||
|
@ -1528,9 +1528,8 @@ celerity_register_resource_map(array(
|
||||||
3 => 'javelin-dom',
|
3 => 'javelin-dom',
|
||||||
4 => 'javelin-magical-init',
|
4 => 'javelin-magical-init',
|
||||||
5 => 'javelin-vector',
|
5 => 'javelin-vector',
|
||||||
6 => 'javelin-request',
|
6 => 'javelin-util',
|
||||||
7 => 'javelin-util',
|
7 => 'javelin-fx',
|
||||||
8 => 'javelin-fx',
|
|
||||||
),
|
),
|
||||||
'disk' => '/rsrc/js/application/core/behavior-phabricator-nav.js',
|
'disk' => '/rsrc/js/application/core/behavior-phabricator-nav.js',
|
||||||
),
|
),
|
||||||
|
@ -2477,7 +2476,7 @@ celerity_register_resource_map(array(
|
||||||
),
|
),
|
||||||
'phabricator-nav-view-css' =>
|
'phabricator-nav-view-css' =>
|
||||||
array(
|
array(
|
||||||
'uri' => '/res/289a0aed/rsrc/css/aphront/phabricator-nav-view.css',
|
'uri' => '/res/1d3e1353/rsrc/css/aphront/phabricator-nav-view.css',
|
||||||
'type' => 'css',
|
'type' => 'css',
|
||||||
'requires' =>
|
'requires' =>
|
||||||
array(
|
array(
|
||||||
|
|
|
@ -33,7 +33,6 @@ final class PhabricatorUserPreferences extends PhabricatorUserDAO {
|
||||||
const PREFERENCE_DIFFUSION_VIEW = 'diffusion-view';
|
const PREFERENCE_DIFFUSION_VIEW = 'diffusion-view';
|
||||||
const PREFERENCE_DIFFUSION_SYMBOLS = 'diffusion-symbols';
|
const PREFERENCE_DIFFUSION_SYMBOLS = 'diffusion-symbols';
|
||||||
|
|
||||||
const PREFERENCE_NAV_COLLAPSED = 'nav-collapsed';
|
|
||||||
const PREFERENCE_NAV_WIDTH = 'nav-width';
|
const PREFERENCE_NAV_WIDTH = 'nav-width';
|
||||||
|
|
||||||
protected $userPHID;
|
protected $userPHID;
|
||||||
|
|
|
@ -77,48 +77,19 @@ final class AphrontSideNavView extends AphrontView {
|
||||||
$nav_id = null;
|
$nav_id = null;
|
||||||
$drag_id = null;
|
$drag_id = null;
|
||||||
$content_id = celerity_generate_unique_node_id();
|
$content_id = celerity_generate_unique_node_id();
|
||||||
$collapse_id = null;
|
|
||||||
$expand_id = null;
|
|
||||||
$local_id = null;
|
$local_id = null;
|
||||||
$local_menu = null;
|
$local_menu = null;
|
||||||
$main_id = celerity_generate_unique_node_id();
|
$main_id = celerity_generate_unique_node_id();
|
||||||
|
|
||||||
$apps = $this->renderApplications();
|
$apps = $this->renderApplications();
|
||||||
|
|
||||||
$key = PhabricatorUserPreferences::PREFERENCE_NAV_COLLAPSED;
|
|
||||||
if ($user->loadPreferences()->getPreference($key)) {
|
|
||||||
$nav_classes[] = 'phabricator-nav-app-collapsed';
|
|
||||||
}
|
|
||||||
|
|
||||||
$collapse_id = celerity_generate_unique_node_id();
|
|
||||||
$expand_id = celerity_generate_unique_node_id();
|
|
||||||
|
|
||||||
$collapse_button = phutil_render_tag(
|
|
||||||
'a',
|
|
||||||
array(
|
|
||||||
'href' => '#',
|
|
||||||
'class' => 'phabricator-nav-app-button-collapse',
|
|
||||||
'id' => $collapse_id,
|
|
||||||
),
|
|
||||||
'« Collapse');
|
|
||||||
$expand_button = phutil_render_tag(
|
|
||||||
'a',
|
|
||||||
array(
|
|
||||||
'href' => '#',
|
|
||||||
'class' => 'phabricator-nav-app-button-expand',
|
|
||||||
'id' => $expand_id,
|
|
||||||
),
|
|
||||||
'»');
|
|
||||||
|
|
||||||
$app_menu = phutil_render_tag(
|
$app_menu = phutil_render_tag(
|
||||||
'div',
|
'div',
|
||||||
array(
|
array(
|
||||||
'class' => 'phabricator-nav-col phabricator-nav-app',
|
'class' => 'phabricator-nav-col phabricator-nav-app',
|
||||||
'id' => $app_id,
|
'id' => $app_id,
|
||||||
),
|
),
|
||||||
$apps->render()).
|
$apps->render());
|
||||||
$expand_button.
|
|
||||||
$collapse_button;
|
|
||||||
|
|
||||||
if ($this->flexible) {
|
if ($this->flexible) {
|
||||||
$drag_id = celerity_generate_unique_node_id();
|
$drag_id = celerity_generate_unique_node_id();
|
||||||
|
@ -154,9 +125,6 @@ final class AphrontSideNavView extends AphrontView {
|
||||||
'localID' => $local_id,
|
'localID' => $local_id,
|
||||||
'dragID' => $drag_id,
|
'dragID' => $drag_id,
|
||||||
'contentID' => $content_id,
|
'contentID' => $content_id,
|
||||||
'collapseID' => $collapse_id,
|
|
||||||
'expandID' => $expand_id,
|
|
||||||
'collapseKey' => $key,
|
|
||||||
));
|
));
|
||||||
|
|
||||||
if ($this->active && $local_id) {
|
if ($this->active && $local_id) {
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
.phabricator-nav-drag {
|
.phabricator-nav-drag {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 327px;
|
left: 217px;
|
||||||
width: 7px;
|
width: 7px;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
z-index: 4;
|
z-index: 4;
|
||||||
|
@ -66,10 +66,6 @@
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.device-desktop .phabricator-nav-app-collapsed .phabricator-nav-drag {
|
|
||||||
left: 215px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.phabricator-nav-col a,
|
.phabricator-nav-col a,
|
||||||
.phabricator-nav-col span {
|
.phabricator-nav-col span {
|
||||||
display: block;
|
display: block;
|
||||||
|
@ -79,7 +75,7 @@
|
||||||
left: 150px;
|
left: 150px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.device-desktop .phabricator-nav-app-collapsed .phabricator-nav-local {
|
.device-desktop .phabricator-nav-local {
|
||||||
left: 38px;
|
left: 38px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,12 +87,11 @@
|
||||||
margin-left: 330px;
|
margin-left: 330px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.device-desktop .phabricator-nav-app-collapsed .phabricator-nav-content {
|
.device-desktop .phabricator-nav-content {
|
||||||
margin-left: 36px;
|
margin-left: 38px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.device-desktop .has-local-nav.phabricator-nav-app-collapsed
|
.device-desktop .has-local-nav .phabricator-nav-content {
|
||||||
.phabricator-nav-content {
|
|
||||||
margin-left: 216px;
|
margin-left: 216px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,51 +148,10 @@ span.phabricator-nav-app-item-icon {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.phabricator-nav-app-button-expand,
|
.device-desktop .phabricator-nav-app {
|
||||||
a.phabricator-nav-app-button-collapse {
|
|
||||||
position: fixed;
|
|
||||||
display: none;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
padding: 4px;
|
|
||||||
z-index: 4;
|
|
||||||
background: #44494d;
|
|
||||||
line-height: 14px;
|
|
||||||
border-top: 1px solid #222222;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 11px;
|
|
||||||
box-shadow: inset -1px -1px 3px rgba(0, 0, 0, 0.1);
|
|
||||||
color: #c0c0c0;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.phabricator-nav-app-button-collapse {
|
|
||||||
width: 141px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.phabricator-nav-app-button-expand {
|
|
||||||
width: 29px;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.device-desktop .phabricator-nav-app-button-expand,
|
|
||||||
.device-desktop .phabricator-nav-app-button-collapse {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.device-desktop .phabricator-nav-app-collapsed .phabricator-nav-app {
|
|
||||||
width: 37px;
|
width: 37px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.phabricator-nav-app-collapsed .phabricator-nav-app-button-collapse {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.device-desktop .phabricator-nav-app-collapsed
|
|
||||||
.phabricator-nav-app-button-expand {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.device-desktop .phabricator-nav-head {
|
.device-desktop .phabricator-nav-head {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
* javelin-dom
|
* javelin-dom
|
||||||
* javelin-magical-init
|
* javelin-magical-init
|
||||||
* javelin-vector
|
* javelin-vector
|
||||||
* javelin-request
|
|
||||||
* javelin-util
|
* javelin-util
|
||||||
* javelin-fx
|
* javelin-fx
|
||||||
* @javelin
|
* @javelin
|
||||||
|
@ -85,48 +84,6 @@ JX.behavior('phabricator-nav', function(config) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// - Application Menu Collapse/Expand ------------------------------------------
|
|
||||||
|
|
||||||
function collapse(state, skip_save) {
|
|
||||||
// As necessary, adjust the drag bar and content positioning. Do this first,
|
|
||||||
// so we don't end up measuring things after the collapse takes effect.
|
|
||||||
|
|
||||||
// This is the difference between the widths of the uncollapsed application
|
|
||||||
// nav (150px) and the collapsed one (38px).
|
|
||||||
var delta = 112;
|
|
||||||
delta = state ? -delta : delta;
|
|
||||||
if (config.dragID) {
|
|
||||||
var drag = JX.$(config.dragID);
|
|
||||||
var p = JX.$V(drag);
|
|
||||||
p.x += delta;
|
|
||||||
p.y = null;
|
|
||||||
p.setPos(drag);
|
|
||||||
}
|
|
||||||
|
|
||||||
var c = parseInt(getComputedStyle(content).marginLeft, 10);
|
|
||||||
content.style.marginLeft = (c + delta) + 'px';
|
|
||||||
|
|
||||||
JX.DOM.alterClass(
|
|
||||||
JX.$(config.mainID),
|
|
||||||
'phabricator-nav-app-collapsed',
|
|
||||||
state);
|
|
||||||
|
|
||||||
if (!skip_save) {
|
|
||||||
new JX.Request('/settings/adjust/', JX.bag)
|
|
||||||
.setData({key: config.collapseKey, value: state ? 1 : ''})
|
|
||||||
.send();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
JX.DOM.listen(JX.$(config.collapseID), 'click', null, function(e) {
|
|
||||||
collapse(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
JX.DOM.listen(JX.$(config.expandID), 'click', null, function(e) {
|
|
||||||
collapse(false);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// - Flexible Navigation Column ------------------------------------------------
|
// - Flexible Navigation Column ------------------------------------------------
|
||||||
|
|
||||||
if (config.dragID) {
|
if (config.dragID) {
|
||||||
|
|
Loading…
Reference in a new issue