/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ let ProjectPanel = { // TODO: Expand function to save toggle state. toggleSidebar: function() { document.querySelector("#project-listing-panel").setAttribute("sidebar-displayed", true); document.querySelector("#project-listing-splitter").setAttribute("sidebar-displayed", true); }, showPopup: function() { let deferred = promise.defer(); let panelNode = document.querySelector("#project-panel"); let panelVboxNode = document.querySelector("#project-panel > #project-panel-box"); let anchorNode = document.querySelector("#project-panel-button > .panel-button-anchor"); window.setTimeout(() => { // Open the popup only when the projects are added. // Not doing it in the next tick can cause mis-calculations // of the size of the panel. function onPopupShown() { panelNode.removeEventListener("popupshown", onPopupShown); deferred.resolve(); } panelNode.addEventListener("popupshown", onPopupShown); panelNode.openPopup(anchorNode); panelVboxNode.scrollTop = 0; }, 0); return deferred.promise; } };