// # 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 . // # // # 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.is(':visible') || $target.length === 0) { $target.hide(); $elem.html($elem.data('toggleOn')) } else { $target.show(); $elem.html($elem.data('toggleOff')) } 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(''); $('.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(''); $('.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); }