##// END OF EJS Templates
configs: synced ce/ee configs
configs: synced ce/ee configs

File last commit:

r4543:624997f0 default
r5540:bf8e8ca3 default
Show More
menus.js
119 lines | 4.0 KiB | application/javascript | JavascriptLexer
// # Copyright (C) 2010-2020 RhodeCode GmbH
// #
// # This program is free software: you can redistribute it and/or modify
// # it under the terms of the GNU Affero General Public License, version 3
// # (only), as published by the Free Software Foundation.
// #
// # This program is distributed in the hope that it will be useful,
// # but WITHOUT ANY WARRANTY; without even the implied warranty of
// # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// # GNU General Public License for more details.
// #
// # You should have received a copy of the GNU Affero General Public License
// # along with this program. If not, see <http://www.gnu.org/licenses/>.
// #
// # This program is dual-licensed. If you wish to learn more about the
// # RhodeCode Enterprise Edition, including its added features, Support services,
// # and proprietary license terms, please see https://rhodecode.com/licenses/
/**
* QUICK REPO MENU, used on repositories to show shortcuts to files, history
* etc.
*/
var quick_repo_menu = function() {
var hide_quick_repo_menus = function() {
$('.menu_items_container').hide();
$('.active_quick_repo').removeClass('active_quick_repo');
};
$('.quick_repo_menu').hover(function() {
hide_quick_repo_menus();
if (!$(this).hasClass('active_quick_repo')) {
$('.menu_items_container', this).removeClass("hidden").show();
$(this).addClass('active_quick_repo');
}
}, function() {
hide_quick_repo_menus();
});
};
window.toggleElement = function (elem, target) {
var $elem = $(elem);
var $target = $(target);
if (target !== undefined) {
var show = $target.is(':visible') || $target.length === 0;
} else {
var show = $elem.hasClass('toggle-off')
}
if (show) {
$target.hide();
$elem.html($elem.data('toggleOn'))
$elem.addClass('toggle-on')
$elem.removeClass('toggle-off')
} else {
$target.show();
$elem.html($elem.data('toggleOff'))
$elem.addClass('toggle-off')
$elem.removeClass('toggle-on')
}
return false
}
var marginExpVal = '300' // needs a sync with `.right-sidebar.right-sidebar-expanded` value
var marginColVal = '40' // needs a sync with `.right-sidebar.right-sidebar-collapsed` value
var marginExpanded = {'margin': '0 {0}px 0 0'.format(marginExpVal)};
var marginCollapsed = {'margin': '0 {0}px 0 0'.format(marginColVal)};
var updateStickyHeader = function () {
if (window.updateSticky !== undefined) {
// potentially our comments change the active window size, so we
// notify sticky elements
updateSticky()
}
}
var expandSidebar = function () {
var $sideBar = $('.right-sidebar');
$('.outerwrapper').css(marginExpanded);
$('.sidebar-toggle a').html('<i class="icon-right" style="margin-right: -10px"></i><i class="icon-right"></i>');
$('.right-sidebar-collapsed-state').hide();
$('.right-sidebar-expanded-state').show();
$('.branding').addClass('display-none');
$sideBar.addClass('right-sidebar-expanded')
$sideBar.removeClass('right-sidebar-collapsed')
}
var collapseSidebar = function () {
var $sideBar = $('.right-sidebar');
$('.outerwrapper').css(marginCollapsed);
$('.sidebar-toggle a').html('<i class="icon-left" style="margin-right: -10px"></i><i class="icon-left"></i>');
$('.right-sidebar-collapsed-state').show();
$('.right-sidebar-expanded-state').hide();
$('.branding').removeClass('display-none');
$sideBar.removeClass('right-sidebar-expanded')
$sideBar.addClass('right-sidebar-collapsed')
}
window.toggleSidebar = function () {
var $sideBar = $('.right-sidebar');
if ($sideBar.hasClass('right-sidebar-expanded')) {
// expanded -> collapsed transition
collapseSidebar();
var sidebarState = 'collapsed';
} else {
// collapsed -> expanded
expandSidebar();
var sidebarState = 'expanded';
}
// update our other sticky header in same context
updateStickyHeader();
storeUserSessionAttr('rc_user_session_attr.sidebarState', sidebarState);
}