Migration complete
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
"addon_id": "XF",
|
||||
"version_id": 2031070,
|
||||
"version_string": "2.3.10",
|
||||
"hash": "6c1abed7c6649f4edfb78769cf293f73"
|
||||
"hash": "bbe8ebb41f6606f1f41782ba1aaa5509"
|
||||
},
|
||||
"public/account_alerts_popup.html": {
|
||||
"addon_id": "XF",
|
||||
@@ -39,7 +39,7 @@
|
||||
"addon_id": "XF",
|
||||
"version_id": 2031070,
|
||||
"version_string": "2.3.10",
|
||||
"hash": "3944286126e45dbc6af560fd1618744e"
|
||||
"hash": "e96c4ea665df26ce03dd38cd21ebc565"
|
||||
},
|
||||
"public/member_tooltip.html": {
|
||||
"addon_id": "XF",
|
||||
@@ -69,12 +69,12 @@
|
||||
"addon_id": "",
|
||||
"version_id": 0,
|
||||
"version_string": "",
|
||||
"hash": "211bbfb5f0c06de1d7c6a662d8580604"
|
||||
"hash": "2de55abb39dab7c9db82172f3b33a2b3"
|
||||
},
|
||||
"public/topbar_actions.html": {
|
||||
"addon_id": "RomhackPlaza/Master",
|
||||
"version_id": 1000000,
|
||||
"version_string": "1.0.0",
|
||||
"hash": "c69a27c5c117caf5625183e0e627c89d"
|
||||
"hash": "ee896c17cf565f9351ec2bfd2da1b7c1"
|
||||
}
|
||||
}
|
||||
@@ -133,76 +133,19 @@
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="offCanvasMenu offCanvasMenu--nav js-headerOffCanvasMenu" data-menu="menu" aria-hidden="true" data-ocm-builder="navigation">
|
||||
<div class="offCanvasMenu-backdrop" data-menu-close="true"></div>
|
||||
<div class="offCanvasMenu-content">
|
||||
<div class="offCanvasMenu-header">
|
||||
{{ phrase('menu') }}
|
||||
<a class="offCanvasMenu-closer" data-menu-close="true" role="button" tabindex="0" aria-label="{{ phrase('close')|for_attr }}"></a>
|
||||
</div>
|
||||
<xf:if is="$xf.visitor.user_id">
|
||||
<div class="p-offCanvasAccountLink">
|
||||
<div class="offCanvasMenu-linkHolder">
|
||||
<a href="{{ link('account') }}" class="offCanvasMenu-link">
|
||||
<xf:avatar user="$xf.visitor" size="xxs" href="" />
|
||||
{$xf.visitor.username}
|
||||
</a>
|
||||
</div>
|
||||
<hr class="offCanvasMenu-separator" />
|
||||
</div>
|
||||
<xf:else />
|
||||
<div class="p-offCanvasRegisterLink">
|
||||
<div class="offCanvasMenu-linkHolder">
|
||||
<a href="{{ link('login') }}" class="offCanvasMenu-link" data-xf-click="overlay" data-menu-close="true">
|
||||
{{ phrase('log_in') }}
|
||||
</a>
|
||||
</div>
|
||||
<hr class="offCanvasMenu-separator" />
|
||||
<xf:if is="$xf.options.registrationSetup.enabled">
|
||||
<div class="offCanvasMenu-linkHolder">
|
||||
<a href="{{ link('register') }}" class="offCanvasMenu-link" data-xf-click="overlay" data-menu-close="true">
|
||||
{{ phrase('register') }}
|
||||
</a>
|
||||
</div>
|
||||
<hr class="offCanvasMenu-separator" />
|
||||
</xf:if>
|
||||
</div>
|
||||
</xf:if>
|
||||
<div class="js-offCanvasNavTarget"></div>
|
||||
<div class="offCanvasMenu-installBanner js-installPromptContainer" style="display: none;" data-xf-init="install-prompt">
|
||||
<div class="offCanvasMenu-installBanner-header">{{ phrase('install_app') }}</div>
|
||||
<xf:button class="js-installPromptButton">{{ phrase('install') }}</xf:button>
|
||||
<template class="js-installTemplateIOS">
|
||||
<div class="js-installTemplateContent">
|
||||
<div class="overlay-title">{{ phrase('how_to_install_app_on_ios') }}</div>
|
||||
<div class="block-body">
|
||||
<div class="block-row">
|
||||
<p>
|
||||
{{ phrase('follow_along_with_video_below_to_see_how_to_install_our_site_as_web_app') }}
|
||||
</p>
|
||||
<p style="text-align: center">
|
||||
<video src="{{ base_url(property('publicPwaInstallVideoUrl')) }}"
|
||||
width="280" height="480" autoplay loop muted playsinline></video>
|
||||
</p>
|
||||
<p>
|
||||
<small><strong>{{ phrase('note:') }}</strong> {{ phrase('this_feature_currently_may_not_be_available_in_some_browsers') }}</small>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<main id="main-wrapper">
|
||||
<header id="topbar">
|
||||
<button class="$mobile-toggle">
|
||||
<i data-lucide="menu"></i>
|
||||
</button>
|
||||
|
||||
<form class="$search-bar" action="{$xf.options.homePageUrl}/database">
|
||||
<input type="text" name="s" placeholder="Search..." />
|
||||
<form id="rhpzSearchForm" class="$search-bar" action="{{ link('search/2147483647') }}" method="get">
|
||||
<select class="$search-scope-select" id="rhpzSearchScope" name="rhpz_scope">
|
||||
<option value="forum" selected>Forum</option>
|
||||
<option value="entries">Entries</option>
|
||||
<option value="news">News</option>
|
||||
</select>
|
||||
<input type="text" id="rhpzSearchInput" name="s" placeholder="Search..." />
|
||||
<button type="submit" class="$search-button">
|
||||
<i data-lucide="search" size="18" color="var(--text2)"></i>
|
||||
</button>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,4 +9,75 @@
|
||||
if (pending.length === 0) return;
|
||||
lucide.createIcons();
|
||||
};
|
||||
</script>
|
||||
(function () {
|
||||
var APP_URL = "{{ $xf.options.homePageUrl }}";
|
||||
|
||||
var form = document.getElementById('rhpzSearchForm');
|
||||
var select = document.getElementById('rhpzSearchScope');
|
||||
var input = document.getElementById('rhpzSearchInput');
|
||||
|
||||
var scopes = {
|
||||
forum: { action: "{{ link('search/2147483647/') }}", param: 'q', extra: { o: 'relevance' } },
|
||||
entries: { action: APP_URL + '/database', param: 's' },
|
||||
news: { action: APP_URL + '/news', param: 's' }
|
||||
};
|
||||
|
||||
form.addEventListener('submit', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var term = input.value.trim();
|
||||
if (!term) return;
|
||||
|
||||
var cfg = scopes[select.value];
|
||||
var params = new URLSearchParams(Object.assign({}, { [cfg.param]: term }, cfg.extra || {}));
|
||||
|
||||
window.location = cfg.action + '?' + params.toString();
|
||||
});
|
||||
})();
|
||||
(function () {
|
||||
const menuToggle = document.querySelector('.\\$mobile-toggle');
|
||||
const menu = document.getElementById('menu');
|
||||
const app = document.getElementById('app');
|
||||
const content = document.getElementById('content');
|
||||
|
||||
if (!menuToggle || !menu) return;
|
||||
|
||||
menuToggle.addEventListener('click', (e) => {
|
||||
e.stopPropagation();
|
||||
menu.classList.toggle('mobile-open');
|
||||
app.classList.toggle('menu-open');
|
||||
});
|
||||
|
||||
const menuItems = menu.querySelectorAll('.\\$menu-item');
|
||||
menuItems.forEach(item => {
|
||||
item.addEventListener('click', () => {
|
||||
menu.classList.remove('mobile-open');
|
||||
app.classList.remove('menu-open');
|
||||
});
|
||||
});
|
||||
|
||||
document.addEventListener('click', (e) => {
|
||||
const isClickInsideMenu = menu.contains(e.target);
|
||||
const isClickOnToggle = menuToggle.contains(e.target);
|
||||
|
||||
if (!isClickInsideMenu && !isClickOnToggle && menu.classList.contains('mobile-open')) {
|
||||
menu.classList.remove('mobile-open');
|
||||
app.classList.remove('menu-open');
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Escape' && menu.classList.contains('mobile-open')) {
|
||||
menu.classList.remove('mobile-open');
|
||||
app.classList.remove('menu-open');
|
||||
}
|
||||
});
|
||||
|
||||
window.addEventListener('resize', () => {
|
||||
if (window.innerWidth > 768) {
|
||||
menu.classList.remove('mobile-open');
|
||||
app.classList.remove('menu-open');
|
||||
}
|
||||
});
|
||||
})()
|
||||
</script>
|
||||
@@ -4,10 +4,10 @@
|
||||
<div class="$topbar-actions">
|
||||
<xf:if is="$xf.visitor.is_admin">
|
||||
<xf:set var="$topbarAdminSeparator" value="true" />
|
||||
<a href="{{ base_url('admin.php') }}" class="$btn">
|
||||
<a href="{{ base_url('admin.php') }}" class="$btn topbar-admin-btn">
|
||||
<i data-lucide="landmark" size="18"></i>
|
||||
</a>
|
||||
<a href="{{ $xf.options.homePageUrl }}/manage" class="$btn">
|
||||
<a href="{{ $xf.options.homePageUrl }}/manage" class="$btn topbar-admin-btn">
|
||||
<i data-lucide="shield-cog" size="18"></i>
|
||||
</a>
|
||||
</xf:if>
|
||||
@@ -16,19 +16,73 @@
|
||||
</xf:if>
|
||||
<xf:if is="$xf.visitor.is_moderator">
|
||||
<xf:set var="$topbarModSeparator" value="true" />
|
||||
<a href="{{ $xf.options.homePageUrl }}/modcp" class="$btn">
|
||||
<a href="{{ $xf.options.homePageUrl }}/modcp" class="$btn $topbar-mod-btn">
|
||||
<i data-lucide="siren" size="18"></i>
|
||||
</a>
|
||||
<a href="{{ link('approval-queue') }}" class="$btn">
|
||||
<a href="{{ link('approval-queue') }}" class="$btn $topbar-mod-btn">
|
||||
<i data-lucide="message-circle-check" size="18"></i>
|
||||
</a>
|
||||
<a href="{{ link('reports') }}" class="$btn badgeContainer badgeContainer--visible {{ ($xf.session.reportCounts.total && ($xf.session.reportCounts.lastBuilt > $xf.session.reportLastRead) OR $xf.session.reportCounts.assigned) ? ' badgeContainer--highlighted' : '' }}" data-badge="{{ $xf.session.reportCounts.assigned ? $xf.session.reportCounts.assigned|number . ' / ' . $xf.session.reportCounts.total|number : $xf.session.reportCounts.total|number }}">
|
||||
<a href="{{ link('reports') }}" class="$btn $topbar-mod-btn badgeContainer badgeContainer--visible {{ ($xf.session.reportCounts.total && ($xf.session.reportCounts.lastBuilt > $xf.session.reportLastRead) OR $xf.session.reportCounts.assigned) ? ' badgeContainer--highlighted' : '' }}" data-badge="{{ $xf.session.reportCounts.assigned ? $xf.session.reportCounts.assigned|number . ' / ' . $xf.session.reportCounts.total|number : $xf.session.reportCounts.total|number }}">
|
||||
<i data-lucide="triangle-alert" size="18"></i>
|
||||
</a>
|
||||
</xf:if>
|
||||
<xf:if is="$topbarModSeparator == true">
|
||||
<div class="$vertical-separator"></div>
|
||||
</xf:if>
|
||||
|
||||
<div class="$topbar-more-container" style="position: relative;">
|
||||
<xf:if is="$xf.visitor.is_moderator || $xf.visitor.is_admin">
|
||||
<button id="rhpzMoreBtn" class="$btn topbar-btn-more" title="More actions">
|
||||
<i data-lucide="more-vertical" size="18"></i>
|
||||
</button>
|
||||
<div id="rhpzMoreMenu" class="$topbar-more-menu" style="display: none;">
|
||||
<xf:if is="$xf.visitor.is_admin">
|
||||
<a href="{{ base_url('admin.php') }}" class="$topbar-more-item" title="Admin">
|
||||
<i data-lucide="landmark" size="16"></i>
|
||||
<span>Admin</span>
|
||||
</a>
|
||||
<a href="{{ $xf.options.homePageUrl }}/manage" class="$topbar-more-item" title="Manage">
|
||||
<i data-lucide="shield-cog" size="16"></i>
|
||||
<span>Manage</span>
|
||||
</a>
|
||||
</xf:if>
|
||||
|
||||
<xf:if is="$xf.visitor.is_moderator">
|
||||
<a href="{{ $xf.options.homePageUrl }}/modcp" class="$topbar-more-item" title="Moderation">
|
||||
<i data-lucide="siren" size="16"></i>
|
||||
<span>Mod CP</span>
|
||||
</a>
|
||||
<a href="{{ link('approval-queue') }}" class="$topbar-more-item" title="Approvals">
|
||||
<i data-lucide="message-circle-check" size="16"></i>
|
||||
<span>Approval Queue</span>
|
||||
</a>
|
||||
<a href="{{ link('reports') }}" class="$topbar-more-item" title="Reports">
|
||||
<i data-lucide="triangle-alert" size="16"></i>
|
||||
<span>Reports</span>
|
||||
</a>
|
||||
</xf:if>
|
||||
</div>
|
||||
</xf:if>
|
||||
</div>
|
||||
<script>
|
||||
(function () {
|
||||
var btn = document.getElementById('rhpzMoreBtn');
|
||||
var menu = document.getElementById('rhpzMoreMenu');
|
||||
if (!btn || !menu) return;
|
||||
|
||||
btn.addEventListener('click', function (e) {
|
||||
e.stopPropagation();
|
||||
menu.style.display = (menu.style.display === 'none') ? 'block' : 'none';
|
||||
});
|
||||
|
||||
document.addEventListener('click', function (e) {
|
||||
if (menu.style.display === 'block' && !menu.contains(e.target) && e.target !== btn) {
|
||||
menu.style.display = 'none';
|
||||
}
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
<xf:if is="$xf.visitor.canCreateEntry()">
|
||||
<a href="{{ $xf.options.homePageUrl }}/submit" class="$btn">
|
||||
<i data-lucide="hard-drive-upload" size="18"></i>
|
||||
|
||||
Reference in New Issue
Block a user