Add tree.js back and run only if not treeview
This commit is contained in:
parent
46f44fab20
commit
efabd07cc5
2 changed files with 84 additions and 0 deletions
|
@ -54,6 +54,7 @@ import ShortcutsBlob from './shortcuts_blob';
|
|||
import SigninTabsMemoizer from './signin_tabs_memoizer';
|
||||
import Star from './star';
|
||||
import Todos from './todos';
|
||||
import TreeView from './tree';
|
||||
import UsagePing from './usage_ping';
|
||||
import UsernameValidator from './username_validator';
|
||||
import VersionCheckImage from './version_check_image';
|
||||
|
@ -68,6 +69,7 @@ import initNotes from './init_notes';
|
|||
import initLegacyFilters from './init_legacy_filters';
|
||||
import initIssuableSidebar from './init_issuable_sidebar';
|
||||
import GpgBadges from './gpg_badges';
|
||||
import FeatureHelper from './helpers/feature_helper';
|
||||
|
||||
(function() {
|
||||
var Dispatcher;
|
||||
|
@ -323,6 +325,11 @@ import GpgBadges from './gpg_badges';
|
|||
case 'projects:show':
|
||||
shortcut_handler = new ShortcutsNavigation();
|
||||
new NotificationsForm();
|
||||
|
||||
if (FeatureHelper.isNewRepo()) break;
|
||||
|
||||
if ($('#tree-slider').length) new TreeView();
|
||||
if ($('#blob-viewer').length) new BlobViewer();
|
||||
break;
|
||||
case 'projects:edit':
|
||||
setupProjectEdit();
|
||||
|
@ -376,9 +383,22 @@ import GpgBadges from './gpg_badges';
|
|||
case 'admin:groups:edit':
|
||||
new GroupAvatar();
|
||||
break;
|
||||
case 'projects:tree:show':
|
||||
shortcut_handler = new ShortcutsNavigation();
|
||||
|
||||
if (FeatureHelper.isNewRepo()) break;
|
||||
|
||||
new TreeView();
|
||||
new BlobViewer();
|
||||
break;
|
||||
case 'projects:find_file:show':
|
||||
shortcut_handler = true;
|
||||
break;
|
||||
case 'projects:blob:show':
|
||||
if (FeatureHelper.isNewRepo()) break;
|
||||
new BlobViewer();
|
||||
initBlob();
|
||||
break;
|
||||
case 'projects:blame:show':
|
||||
initBlob();
|
||||
break;
|
||||
|
|
64
app/assets/javascripts/tree.js
Normal file
64
app/assets/javascripts/tree.js
Normal file
|
@ -0,0 +1,64 @@
|
|||
/* eslint-disable func-names, space-before-function-paren, wrap-iife, max-len, quotes, consistent-return, no-var, one-var, one-var-declaration-per-line, no-else-return, prefer-arrow-callback, class-methods-use-this */
|
||||
|
||||
export default class TreeView {
|
||||
constructor() {
|
||||
this.initKeyNav();
|
||||
// Code browser tree slider
|
||||
// Make the entire tree-item row clickable, but not if clicking another link (like a commit message)
|
||||
$(".tree-content-holder .tree-item").on('click', function(e) {
|
||||
var $clickedEl, path;
|
||||
$clickedEl = $(e.target);
|
||||
path = $('.tree-item-file-name a', this).attr('href');
|
||||
if (!$clickedEl.is('a') && !$clickedEl.is('.str-truncated')) {
|
||||
if (e.metaKey || e.which === 2) {
|
||||
e.preventDefault();
|
||||
return window.open(path, '_blank');
|
||||
} else {
|
||||
return gl.utils.visitUrl(path);
|
||||
}
|
||||
}
|
||||
});
|
||||
// Show the "Loading commit data" for only the first element
|
||||
$('span.log_loading:first').removeClass('hide');
|
||||
}
|
||||
|
||||
initKeyNav() {
|
||||
var li, liSelected;
|
||||
li = $("tr.tree-item");
|
||||
liSelected = null;
|
||||
return $('body').keydown(function(e) {
|
||||
var next, path;
|
||||
if ($("input:focus").length > 0 && (e.which === 38 || e.which === 40)) {
|
||||
return false;
|
||||
}
|
||||
if (e.which === 40) {
|
||||
if (liSelected) {
|
||||
next = liSelected.next();
|
||||
if (next.length > 0) {
|
||||
liSelected.removeClass("selected");
|
||||
liSelected = next.addClass("selected");
|
||||
}
|
||||
} else {
|
||||
liSelected = li.eq(0).addClass("selected");
|
||||
}
|
||||
return $(liSelected).focus();
|
||||
} else if (e.which === 38) {
|
||||
if (liSelected) {
|
||||
next = liSelected.prev();
|
||||
if (next.length > 0) {
|
||||
liSelected.removeClass("selected");
|
||||
liSelected = next.addClass("selected");
|
||||
}
|
||||
} else {
|
||||
liSelected = li.last().addClass("selected");
|
||||
}
|
||||
return $(liSelected).focus();
|
||||
} else if (e.which === 13) {
|
||||
path = $('.tree-item.selected .tree-item-file-name a').attr('href');
|
||||
if (path) {
|
||||
return gl.utils.visitUrl(path);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue