|
31 | 31 | const TRACE = 5; |
32 | 32 |
|
33 | 33 | // Change to SILENT, QUIET, INFO, DEBUG, VERBOSE, or TRACE |
34 | | - const LOG_LEVEL_OVERRIDE = DEBUG; |
| 34 | + const LOG_LEVEL_OVERRIDE = null; |
35 | 35 |
|
36 | 36 | const LOG_LEVELS = { |
37 | 37 | default: QUIET, |
|
1606 | 1606 | const configKey = 'repositoryHeader'; |
1607 | 1607 | const repositoryHeader = document.querySelector(SELECTORS[configKey].id); |
1608 | 1608 |
|
1609 | | - if (!repositoryHeader) { |
1610 | | - // This is expected on pages that aren't repositories |
1611 | | - log(DEBUG, `Selector '${SELECTORS[configKey].id}' not found`); |
1612 | | - return; |
| 1609 | + if (repositoryHeader) { |
| 1610 | + log(INFO, `Selector '${SELECTORS[configKey].id}' found`); |
| 1611 | + } else { |
| 1612 | + log(INFO, `Selector '${SELECTORS[configKey].id}' not found; this is expected on the Issues tab or pages that aren't repositories`); |
1613 | 1613 | } |
1614 | 1614 |
|
1615 | 1615 | const topRepositoryHeaderElement = document.createElement('div'); |
|
1623 | 1623 | topRepositoryHeaderElement.style.setProperty('background-color', elementConfig.backgroundColor); |
1624 | 1624 | } |
1625 | 1625 |
|
1626 | | - if (repositoryHeader.hidden) { |
1627 | | - log(DEBUG, `Selector '${SELECTORS[configKey].id}' is hidden`); |
| 1626 | + const tempHeaderPresent = HEADER.querySelector(createId(TEMP_REPOSITORY_HEADER_FLAG)); |
| 1627 | + |
| 1628 | + if (!repositoryHeader || repositoryHeader.hidden) { |
| 1629 | + log(INFO, 'A repo tab other than Code is being loaded for the first time'); |
| 1630 | + |
| 1631 | + if (tempHeaderPresent) { |
| 1632 | + log(DEBUG, `Selector '${createId(TEMP_REPOSITORY_HEADER_FLAG)}' found; skipping header creation`); |
| 1633 | + return; |
| 1634 | + } |
| 1635 | + |
| 1636 | + log(DEBUG, `Selector '${SELECTORS[configKey].id}' is not present or hidden`); |
1628 | 1637 |
|
1629 | 1638 | if (!HEADER.querySelector(SELECTORS.pageTitle.separator)) { |
1630 | 1639 | log(DEBUG, `Selector '${SELECTORS.pageTitle.separator}' not found, not creating a repository header`); |
1631 | 1640 |
|
1632 | 1641 | return; |
1633 | 1642 | } |
1634 | 1643 |
|
1635 | | - // A repo tab other than Code is being loaded for the first time |
1636 | 1644 | const pageTitle = HEADER.querySelector(SELECTORS.pageTitle.topDiv); |
1637 | 1645 |
|
1638 | 1646 | if (!pageTitle) { |
|
1649 | 1657 |
|
1650 | 1658 | topRepositoryHeaderElement.appendChild(repositoryHeaderElement); |
1651 | 1659 | insertNewGlobalBar(topRepositoryHeaderElement); |
1652 | | - } else if (HEADER.querySelector(createId(TEMP_REPOSITORY_HEADER_FLAG))) { |
| 1660 | + } else if (tempHeaderPresent) { |
1653 | 1661 | log(DEBUG, `Selector '${createId(TEMP_REPOSITORY_HEADER_FLAG)}' found`); |
| 1662 | + log(INFO, 'The Code tab is being loaded from another tab which has a temporary header'); |
1654 | 1663 |
|
1655 | | - // The Code tab is being loaded from another tab which has a temporary header |
1656 | 1664 | const tempRepositoryHeader = HEADER.querySelector(createId(TEMP_REPOSITORY_HEADER_FLAG)); |
1657 | 1665 |
|
1658 | 1666 | NEW_ELEMENTS = NEW_ELEMENTS.filter(element => element !== tempRepositoryHeader); |
|
1664 | 1672 | DEBUG, |
1665 | 1673 | `'${SELECTORS[configKey].id}' is hidden and selector '${createId(TEMP_REPOSITORY_HEADER_FLAG)}' not found`, |
1666 | 1674 | ); |
| 1675 | + log(INFO, 'The Code tab being loaded for the first time'); |
1667 | 1676 |
|
1668 | | - // The Code tab being loaded for the first time |
1669 | 1677 | insertPermanentRepositoryHeader(topRepositoryHeaderElement, repositoryHeader); |
1670 | 1678 | } |
1671 | 1679 |
|
| 1680 | + HEADER_STYLE.textContent += ` |
| 1681 | + ${SELECTORS.repositoryHeader.nav} context-region |
| 1682 | + { |
| 1683 | + display: flex !important; |
| 1684 | + } |
| 1685 | +
|
| 1686 | + ${SELECTORS.repositoryHeader.nav} context-region context-region-crumb |
| 1687 | + { |
| 1688 | + display: flex !important; |
| 1689 | + align-items: center !important; |
| 1690 | + } |
| 1691 | +
|
| 1692 | + ${SELECTORS.repositoryHeader.nav} context-region-crumb:last-child context-region-divider |
| 1693 | + { |
| 1694 | + display: none !important; |
| 1695 | + } |
| 1696 | + `; |
| 1697 | + |
1672 | 1698 | updateRepositoryHeaderName(); |
1673 | 1699 |
|
1674 | 1700 | if (elementConfig.backgroundColor !== '') { |
|
1908 | 1934 | { |
1909 | 1935 | display: initial !important; |
1910 | 1936 | } |
1911 | | -
|
1912 | | - ${SELECTORS.repositoryHeader.nav} context-region |
1913 | | - { |
1914 | | - display: flex !important; |
1915 | | - } |
1916 | | -
|
1917 | | - ${SELECTORS.repositoryHeader.nav} context-region context-region-crumb |
1918 | | - { |
1919 | | - display: flex !important; |
1920 | | - align-items: center !important; |
1921 | | - } |
1922 | | -
|
1923 | | - ${SELECTORS.repositoryHeader.nav} context-region-crumb:last-child context-region-divider |
1924 | | - { |
1925 | | - display: none !important; |
1926 | | - } |
1927 | 1937 | `; |
1928 | 1938 |
|
1929 | 1939 | clonedPageTitle.querySelectorAll('svg.octicon-lock').forEach(svg => svg.remove()); |
|
1994 | 2004 | function insertNewGlobalBar(element) { |
1995 | 2005 | log(DEBUG, 'insertNewGlobalBar()'); |
1996 | 2006 |
|
1997 | | - const elementToInsertAfter = HEADER.querySelector(SELECTORS.header.globalBar); |
1998 | | - |
1999 | | - elementToInsertAfter.parentNode.insertBefore(element, elementToInsertAfter.nextSibling); |
| 2007 | + modifyThenObserve(() => { |
| 2008 | + const elementToInsertAfter = HEADER.querySelector(SELECTORS.header.globalBar); |
| 2009 | + elementToInsertAfter.parentNode.insertBefore(element, elementToInsertAfter.nextSibling); |
| 2010 | + }); |
2000 | 2011 | } |
2001 | 2012 |
|
2002 | 2013 | function createId(string) { |
|
0 commit comments