diff --git a/lib/zin/wg/dropmenu/v1.php b/lib/zin/wg/dropmenu/v1.php index 752dbcc9d3..dec581d56c 100644 --- a/lib/zin/wg/dropmenu/v1.php +++ b/lib/zin/wg/dropmenu/v1.php @@ -48,7 +48,7 @@ class dropmenu extends wg */ protected function build(): wg { - list($url, $text, $objectID, $cache, $tab, $module, $method, $objectID, $extra, $id) = $this->prop(array('url', 'text', 'objectID', 'cache', 'tab', 'module', 'method', 'objectID', 'extra', 'id')); + list($url, $text, $objectID, $cache, $tab, $module, $method, $objectID, $extra, $id, $data) = $this->prop(array('url', 'text', 'objectID', 'cache', 'tab', 'module', 'method', 'objectID', 'extra', 'id', 'data')); $app = data('app'); @@ -72,6 +72,8 @@ class dropmenu extends wg return zui::dropmenu ( set('_id', $id), + set('_id', $id ? $id : 'dropmenu'), + set('data', $data), set('data-fetcher', $url), set(array('fetcher' => $url, 'text' => $text, 'defaultValue' => $objectID, 'cache' => $cache)), set($this->getRestProps()) diff --git a/module/repo/css/common.ui.css b/module/repo/css/common.ui.css index 3ab5dd241d..ec19191eac 100644 --- a/module/repo/css/common.ui.css +++ b/module/repo/css/common.ui.css @@ -44,4 +44,6 @@ #monacoTabsContainer {background: #efefef;} .monaco-dropmenu{background: #efefef; height: 35px; line-height: 35px;} #fileTabs > .btn {background: #efefef; border: none; --tw-ring-shadow: none;} -#fileTabs > .btn-right {padding-right: 40px;} \ No newline at end of file +#fileTabs > .btn-right {padding-right: 40px;} +#repoBranchDropMenu > .dropmenu-btn {background: inherit; --tw-ring-color: none; color: inherit;} +#repoBranchDropMenu > .dropmenu-btn > .icon-angle-right {display: none;} \ No newline at end of file diff --git a/module/repo/ui/browse.html.php b/module/repo/ui/browse.html.php index d5c58f2bfc..76427024e9 100644 --- a/module/repo/ui/browse.html.php +++ b/module/repo/ui/browse.html.php @@ -15,15 +15,16 @@ namespace zin; dropMenu(set::module('repo')); /* Prepare repo select data. */ -$menus = array(); -$selected = ''; +$branchMenus = array(); +$tagMenus = array(); +$selected = ''; foreach($branches as $branchName) { $selected = ($branchName == $branchID and $branchOrTag == 'branch') ? $branchName : $selected; $base64BranchID = helper::safe64Encode(base64_encode($branchName)); $branchLink = $this->createLink('repo', 'browse', "repoID=$repoID&branchID=$base64BranchID&objectID=$objectID"); - $menus[] = array('text' => $branchName, 'value' => $branchName, 'url' => $branchLink); + $branchMenus[] = array('text' => $branchName, 'id' => $branchName, 'keys' => zget(common::convert2Pinyin(array($branchName), $branchName), ''), 'url' => $branchLink); } foreach($tags as $tagName) { @@ -31,9 +32,12 @@ foreach($tags as $tagName) $base64TagID = helper::safe64Encode(base64_encode($tagName)); $tagLink = $this->createLink('repo', 'browse', "repoID=$repoID&branchID=$base64TagID&objectID=$objectID&path=&revision=HEAD&refresh=0&branchOrTag=tag"); - $menus[] = array('text' => $tagName, 'value' => $tagName, 'url' => $tagLink); + $tagMenus[] = array('text' => $tagName, 'id' => $tagName, 'keys' => zget(common::convert2Pinyin(array($tagName), $tagName), ''), 'url' => $tagLink); } +$tabs = array(array('name' => 'branch', 'text' => $lang->repo->branch), array('name' => 'tag', 'text' => $lang->repo->tag)); +$menuData = array('branch' => $branchMenus, 'tag' => $tagMenus); + /* Prepare breadcrumb navigation data. */ $base64BranchID = helper::safe64Encode(base64_encode($branchID)); $breadcrumbItems = array(); @@ -63,15 +67,21 @@ if($fileName) $breadcrumbItems[] = h::span($fileName); featureBar( formGroup ( - set::width('200px'), set::class('repo-select'), set::required(true), - select + dropmenu ( - set::id('repo-select'), - set::items($menus), - set::value($selected) - ) + setID('repoBranchDropMenu'), + set::objectID($selected), + set::text($selected), + set::data(array('data' => $menuData, 'tabs' => $tabs)), + ), + // select + // ( + // set::id('repo-select'), + // set::items($menus), + // set::value($selected) + // ) ), ...$breadcrumbItems );