mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-18 21:02:41 +01:00
Remove old ObjectBox tab cruft
Summary: Ref T10628. Cleans up remaining weird, unused tab behaviors in ObjectBoxView to simplify ObjectBox. Test Plan: Toggled tabs in Files. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10628 Differential Revision: https://secure.phabricator.com/D16208
This commit is contained in:
parent
65980ac683
commit
2c43d055b1
5 changed files with 37 additions and 147 deletions
|
@ -518,9 +518,9 @@ return array(
|
||||||
'rsrc/js/core/phtize.js' => 'd254d646',
|
'rsrc/js/core/phtize.js' => 'd254d646',
|
||||||
'rsrc/js/phui/behavior-phui-dropdown-menu.js' => '1aa4c968',
|
'rsrc/js/phui/behavior-phui-dropdown-menu.js' => '1aa4c968',
|
||||||
'rsrc/js/phui/behavior-phui-file-upload.js' => 'b003d4fb',
|
'rsrc/js/phui/behavior-phui-file-upload.js' => 'b003d4fb',
|
||||||
'rsrc/js/phui/behavior-phui-object-box-tabs.js' => '2bfa2836',
|
|
||||||
'rsrc/js/phui/behavior-phui-profile-menu.js' => '12884df9',
|
'rsrc/js/phui/behavior-phui-profile-menu.js' => '12884df9',
|
||||||
'rsrc/js/phui/behavior-phui-submenu.js' => 'a6f7a73b',
|
'rsrc/js/phui/behavior-phui-submenu.js' => 'a6f7a73b',
|
||||||
|
'rsrc/js/phui/behavior-phui-tab-group.js' => '0a0b10e9',
|
||||||
'rsrc/js/phuix/PHUIXActionListView.js' => 'b5c256b8',
|
'rsrc/js/phuix/PHUIXActionListView.js' => 'b5c256b8',
|
||||||
'rsrc/js/phuix/PHUIXActionView.js' => '8cf6d262',
|
'rsrc/js/phuix/PHUIXActionView.js' => '8cf6d262',
|
||||||
'rsrc/js/phuix/PHUIXAutocomplete.js' => '9196fb06',
|
'rsrc/js/phuix/PHUIXAutocomplete.js' => '9196fb06',
|
||||||
|
@ -673,9 +673,9 @@ return array(
|
||||||
'javelin-behavior-phui-dropdown-menu' => '1aa4c968',
|
'javelin-behavior-phui-dropdown-menu' => '1aa4c968',
|
||||||
'javelin-behavior-phui-file-upload' => 'b003d4fb',
|
'javelin-behavior-phui-file-upload' => 'b003d4fb',
|
||||||
'javelin-behavior-phui-hovercards' => 'bcaccd64',
|
'javelin-behavior-phui-hovercards' => 'bcaccd64',
|
||||||
'javelin-behavior-phui-object-box-tabs' => '2bfa2836',
|
|
||||||
'javelin-behavior-phui-profile-menu' => '12884df9',
|
'javelin-behavior-phui-profile-menu' => '12884df9',
|
||||||
'javelin-behavior-phui-submenu' => 'a6f7a73b',
|
'javelin-behavior-phui-submenu' => 'a6f7a73b',
|
||||||
|
'javelin-behavior-phui-tab-group' => '0a0b10e9',
|
||||||
'javelin-behavior-policy-control' => 'd0c516d5',
|
'javelin-behavior-policy-control' => 'd0c516d5',
|
||||||
'javelin-behavior-policy-rule-editor' => '5e9f347c',
|
'javelin-behavior-policy-rule-editor' => '5e9f347c',
|
||||||
'javelin-behavior-project-boards' => '14a1faae',
|
'javelin-behavior-project-boards' => '14a1faae',
|
||||||
|
@ -977,6 +977,11 @@ return array(
|
||||||
'javelin-stratcom',
|
'javelin-stratcom',
|
||||||
'javelin-vector',
|
'javelin-vector',
|
||||||
),
|
),
|
||||||
|
'0a0b10e9' => array(
|
||||||
|
'javelin-behavior',
|
||||||
|
'javelin-stratcom',
|
||||||
|
'javelin-dom',
|
||||||
|
),
|
||||||
'0a3f3021' => array(
|
'0a3f3021' => array(
|
||||||
'javelin-behavior',
|
'javelin-behavior',
|
||||||
'javelin-stratcom',
|
'javelin-stratcom',
|
||||||
|
@ -1107,11 +1112,6 @@ return array(
|
||||||
'javelin-install',
|
'javelin-install',
|
||||||
'javelin-util',
|
'javelin-util',
|
||||||
),
|
),
|
||||||
'2bfa2836' => array(
|
|
||||||
'javelin-behavior',
|
|
||||||
'javelin-stratcom',
|
|
||||||
'javelin-dom',
|
|
||||||
),
|
|
||||||
'2c426492' => array(
|
'2c426492' => array(
|
||||||
'javelin-behavior',
|
'javelin-behavior',
|
||||||
'javelin-dom',
|
'javelin-dom',
|
||||||
|
|
|
@ -25,11 +25,7 @@ final class PHUIObjectBoxView extends AphrontTagView {
|
||||||
private $showHideContent;
|
private $showHideContent;
|
||||||
private $showHideOpen;
|
private $showHideOpen;
|
||||||
|
|
||||||
private $tabs = array();
|
|
||||||
private $tabMap = null;
|
|
||||||
private $tabLists = array();
|
|
||||||
private $propertyLists = array();
|
private $propertyLists = array();
|
||||||
private $propertyList = null;
|
|
||||||
|
|
||||||
const COLOR_RED = 'red';
|
const COLOR_RED = 'red';
|
||||||
const COLOR_BLUE = 'blue';
|
const COLOR_BLUE = 'blue';
|
||||||
|
@ -40,48 +36,8 @@ final class PHUIObjectBoxView extends AphrontTagView {
|
||||||
const BLUE_PROPERTY = 'phui-box-blue-property';
|
const BLUE_PROPERTY = 'phui-box-blue-property';
|
||||||
const GREY = 'phui-box-grey';
|
const GREY = 'phui-box-grey';
|
||||||
|
|
||||||
public function addPropertyList(
|
public function addPropertyList(PHUIPropertyListView $property_list) {
|
||||||
PHUIPropertyListView $property_list,
|
$this->propertyLists[] = $property_list;
|
||||||
$tab = null) {
|
|
||||||
|
|
||||||
if (!($tab instanceof PHUIListItemView) &&
|
|
||||||
($tab !== null)) {
|
|
||||||
assert_stringlike($tab);
|
|
||||||
$tab = id(new PHUIListItemView())->setName($tab);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($tab) {
|
|
||||||
if ($tab->getKey()) {
|
|
||||||
$key = $tab->getKey();
|
|
||||||
} else {
|
|
||||||
$key = 'tab.default.'.spl_object_hash($tab);
|
|
||||||
$tab->setKey($key);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$key = 'tab.default';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($tab) {
|
|
||||||
if (empty($this->tabs[$key])) {
|
|
||||||
$tab->addSigil('phui-object-box-tab');
|
|
||||||
$tab->setMetadata(
|
|
||||||
array(
|
|
||||||
'tabKey' => $key,
|
|
||||||
));
|
|
||||||
|
|
||||||
if (!$tab->getHref()) {
|
|
||||||
$tab->setHref('#');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$tab->getType()) {
|
|
||||||
$tab->setType(PHUIListItemView::TYPE_LINK);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->tabs[$key] = $tab;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->propertyLists[$key][] = $property_list;
|
|
||||||
|
|
||||||
$action_list = $property_list->getActionList();
|
$action_list = $property_list->getActionList();
|
||||||
if ($action_list) {
|
if ($action_list) {
|
||||||
|
@ -190,68 +146,6 @@ final class PHUIObjectBoxView extends AphrontTagView {
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function willRender() {
|
|
||||||
$tab_lists = array();
|
|
||||||
$property_lists = array();
|
|
||||||
$tab_map = array();
|
|
||||||
|
|
||||||
$default_key = 'tab.default';
|
|
||||||
|
|
||||||
// Find the selected tab, or select the first tab if none are selected.
|
|
||||||
if ($this->tabs) {
|
|
||||||
$selected_tab = null;
|
|
||||||
foreach ($this->tabs as $key => $tab) {
|
|
||||||
if ($tab->getSelected()) {
|
|
||||||
$selected_tab = $key;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($selected_tab === null) {
|
|
||||||
head($this->tabs)->setSelected(true);
|
|
||||||
$selected_tab = head_key($this->tabs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($this->propertyLists as $key => $list) {
|
|
||||||
$group = new PHUIPropertyGroupView();
|
|
||||||
$i = 0;
|
|
||||||
foreach ($list as $item) {
|
|
||||||
$group->addPropertyList($item);
|
|
||||||
if ($i > 0 || $this->tabGroups) {
|
|
||||||
$item->addClass('phui-property-list-section-noninitial');
|
|
||||||
}
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->tabs && $key != $default_key) {
|
|
||||||
$tab_id = celerity_generate_unique_node_id();
|
|
||||||
$tab_map[$key] = $tab_id;
|
|
||||||
|
|
||||||
if ($key === $selected_tab) {
|
|
||||||
$style = null;
|
|
||||||
} else {
|
|
||||||
$style = 'display: none';
|
|
||||||
}
|
|
||||||
|
|
||||||
$tab_lists[] = phutil_tag(
|
|
||||||
'div',
|
|
||||||
array(
|
|
||||||
'style' => $style,
|
|
||||||
'id' => $tab_id,
|
|
||||||
),
|
|
||||||
$group);
|
|
||||||
} else {
|
|
||||||
if ($this->tabs) {
|
|
||||||
$group->addClass('phui-property-group-noninitial');
|
|
||||||
}
|
|
||||||
$property_lists[] = $group;
|
|
||||||
}
|
|
||||||
$this->propertyList = $property_lists;
|
|
||||||
$this->tabMap = $tab_map;
|
|
||||||
$this->tabLists = $tab_lists;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getTagAttributes() {
|
protected function getTagAttributes() {
|
||||||
$classes = array();
|
$classes = array();
|
||||||
$classes[] = 'phui-box';
|
$classes[] = 'phui-box';
|
||||||
|
@ -275,19 +169,8 @@ final class PHUIObjectBoxView extends AphrontTagView {
|
||||||
$classes[] = $this->background;
|
$classes[] = $this->background;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sigil = null;
|
|
||||||
$metadata = null;
|
|
||||||
if ($this->tabs) {
|
|
||||||
$sigil = 'phui-object-box';
|
|
||||||
$metadata = array(
|
|
||||||
'tabMap' => $this->tabMap,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'class' => implode(' ', $classes),
|
'class' => implode(' ', $classes),
|
||||||
'sigil' => $sigil,
|
|
||||||
'meta' => $metadata,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,15 +276,22 @@ final class PHUIObjectBoxView extends AphrontTagView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$tabs = null;
|
if ($this->propertyLists) {
|
||||||
if ($this->tabs) {
|
$lists = new PHUIPropertyGroupView();
|
||||||
$tabs = id(new PHUIListView())
|
|
||||||
->setType(PHUIListView::NAVBAR_LIST);
|
$ii = 0;
|
||||||
foreach ($this->tabs as $tab) {
|
foreach ($this->propertyLists as $list) {
|
||||||
$tabs->addMenuItem($tab);
|
if ($ii > 0 || $this->tabGroups) {
|
||||||
|
$list->addClass('phui-property-list-section-noninitial');
|
||||||
}
|
}
|
||||||
Javelin::initBehavior('phui-object-box-tabs');
|
|
||||||
|
$lists->addPropertyList($list);
|
||||||
|
$ii++;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$lists = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$content = array(
|
$content = array(
|
||||||
($this->showHideOpen == false ? $this->anchor : null),
|
($this->showHideOpen == false ? $this->anchor : null),
|
||||||
|
@ -412,11 +302,9 @@ final class PHUIObjectBoxView extends AphrontTagView {
|
||||||
$exception_errors,
|
$exception_errors,
|
||||||
$this->form,
|
$this->form,
|
||||||
$this->tabGroups,
|
$this->tabGroups,
|
||||||
$tabs,
|
|
||||||
$this->tabLists,
|
|
||||||
$showhide,
|
$showhide,
|
||||||
($this->showHideOpen == true ? $this->anchor : null),
|
($this->showHideOpen == true ? $this->anchor : null),
|
||||||
$this->propertyList,
|
$lists,
|
||||||
$this->table,
|
$this->table,
|
||||||
$this->renderChildren(),
|
$this->renderChildren(),
|
||||||
);
|
);
|
||||||
|
|
|
@ -66,7 +66,7 @@ final class PHUITabGroupView extends AphrontTagView {
|
||||||
$tab_map = mpull($this->tabs, 'getContentID', 'getKey');
|
$tab_map = mpull($this->tabs, 'getContentID', 'getKey');
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'sigil' => 'phui-object-box',
|
'sigil' => 'phui-tab-group-view',
|
||||||
'meta' => array(
|
'meta' => array(
|
||||||
'tabMap' => $tab_map,
|
'tabMap' => $tab_map,
|
||||||
),
|
),
|
||||||
|
@ -74,7 +74,7 @@ final class PHUITabGroupView extends AphrontTagView {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getTagContent() {
|
protected function getTagContent() {
|
||||||
Javelin::initBehavior('phui-object-box-tabs');
|
Javelin::initBehavior('phui-tab-group');
|
||||||
|
|
||||||
$tabs = id(new PHUIListView())
|
$tabs = id(new PHUIListView())
|
||||||
->setType(PHUIListView::NAVBAR_LIST);
|
->setType(PHUIListView::NAVBAR_LIST);
|
||||||
|
|
|
@ -64,7 +64,7 @@ final class PHUITabView extends AphrontTagView {
|
||||||
->setKey($this->getKey())
|
->setKey($this->getKey())
|
||||||
->setType(PHUIListItemView::TYPE_LINK)
|
->setType(PHUIListItemView::TYPE_LINK)
|
||||||
->setHref('#')
|
->setHref('#')
|
||||||
->addSigil('phui-object-box-tab')
|
->addSigil('phui-tab-view')
|
||||||
->setMetadata(
|
->setMetadata(
|
||||||
array(
|
array(
|
||||||
'tabKey' => $this->getKey(),
|
'tabKey' => $this->getKey(),
|
||||||
|
|
|
@ -1,23 +1,25 @@
|
||||||
/**
|
/**
|
||||||
* @provides javelin-behavior-phui-object-box-tabs
|
* @provides javelin-behavior-phui-tab-group
|
||||||
* @requires javelin-behavior
|
* @requires javelin-behavior
|
||||||
* javelin-stratcom
|
* javelin-stratcom
|
||||||
* javelin-dom
|
* javelin-dom
|
||||||
*/
|
*/
|
||||||
|
|
||||||
JX.behavior('phui-object-box-tabs', function() {
|
JX.behavior('phui-tab-group', function() {
|
||||||
|
|
||||||
JX.Stratcom.listen(
|
JX.Stratcom.listen(
|
||||||
'click',
|
'click',
|
||||||
'phui-object-box-tab',
|
'phui-tab-view',
|
||||||
function (e) {
|
function (e) {
|
||||||
e.kill();
|
e.kill();
|
||||||
var key = e.getNodeData('phui-object-box-tab').tabKey;
|
|
||||||
var map = e.getNodeData('phui-object-box').tabMap;
|
|
||||||
var tab = e.getNode('phui-object-box-tab');
|
|
||||||
|
|
||||||
var box = e.getNode('phui-object-box');
|
var map = e.getNodeData('phui-tab-group-view').tabMap;
|
||||||
var tabs = JX.DOM.scry(box, 'li', 'phui-object-box-tab');
|
var key = e.getNodeData('phui-tab-view').tabKey;
|
||||||
|
|
||||||
|
var group = e.getNode('phui-tab-group-view');
|
||||||
|
var tab = e.getNode('phui-tab-view');
|
||||||
|
var tabs = JX.DOM.scry(group, 'li', 'phui-tab-view');
|
||||||
|
|
||||||
for (var ii = 0; ii < tabs.length; ii++) {
|
for (var ii = 0; ii < tabs.length; ii++) {
|
||||||
JX.DOM.alterClass(
|
JX.DOM.alterClass(
|
||||||
tabs[ii],
|
tabs[ii],
|
Loading…
Reference in a new issue