Conditionally display maps and app store tiles
This commit is contained in:
parent
7b3fe45880
commit
3246b44a86
5 changed files with 42 additions and 22 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -8,4 +8,5 @@ vendor/bundle
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Gemfile.lock
|
Gemfile.lock
|
||||||
usb-butter*
|
usb-butter*
|
||||||
simulated-usb-butter/appstore/*
|
simulated-usb-butter/appstore/*
|
||||||
|
simulated-usb-butter/osm-map-files/*
|
||||||
|
|
@ -222,6 +222,12 @@ h1.homepage-title {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Apply/Remove this class to conditionally
|
||||||
|
// display the card
|
||||||
|
.hidden-card {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.card-icon {
|
.card-icon {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,10 @@ const supported_extensions = ["apk", "deb", "dmg", "pdf", "exe", "jpg", "png", "
|
||||||
const usbRoot = "usb-butter/";
|
const usbRoot = "usb-butter/";
|
||||||
const inferredBaseURL = window.location.pathname.split("/" + usbRoot)[0] + "/";
|
const inferredBaseURL = window.location.pathname.split("/" + usbRoot)[0] + "/";
|
||||||
|
|
||||||
|
// Don't display these in the dirlisting; they get first-class treatment
|
||||||
|
// on the homepage.
|
||||||
|
const foldersToHide = ["appstore", "osm-map-files"];
|
||||||
|
|
||||||
const getFolderDivHTML = (directory_name, number_of_items, href) => {
|
const getFolderDivHTML = (directory_name, number_of_items, href) => {
|
||||||
return `
|
return `
|
||||||
<a class="filerow" href="${href}">
|
<a class="filerow" href="${href}">
|
||||||
|
|
@ -91,7 +95,7 @@ function extractDirectoryListing(doc) {
|
||||||
|
|
||||||
// Determine if it's a file or folder based on the class of the row or type
|
// Determine if it's a file or folder based on the class of the row or type
|
||||||
if (type === 'Directory') {
|
if (type === 'Directory') {
|
||||||
if (name !== '..') {
|
if (name !== '..' && !foldersToHide.includes(name)) {
|
||||||
folders.push({
|
folders.push({
|
||||||
name: name.replace('/', ''), // Remove the trailing slash
|
name: name.replace('/', ''), // Remove the trailing slash
|
||||||
lastModified: lastModified,
|
lastModified: lastModified,
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,9 @@ MicroModal.init({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Slick Slider [https://kenwheeler.github.io/slick/]
|
// Slick Slider [https://kenwheeler.github.io/slick/]
|
||||||
$(document).ready(function(){
|
$(document).ready(function () {
|
||||||
let prevButton = '<span class="slick-prev icon-chevron-thin-left"><i class="icono-arrow-right"></i></span>';
|
let prevButton = '<span class="slick-prev icon-chevron-thin-left"><i class="icono-arrow-right"></i></span>';
|
||||||
let nextButton = '<span class="slick-next icon-chevron-thin-right"><i class="icono-arrow-left"></i></span>';
|
let nextButton = '<span class="slick-next icon-chevron-thin-right"><i class="icono-arrow-left"></i></span>';
|
||||||
$('.screens-slider').slick({
|
$('.screens-slider').slick({
|
||||||
prevArrow: prevButton,
|
prevArrow: prevButton,
|
||||||
nextArrow: nextButton,
|
nextArrow: nextButton,
|
||||||
|
|
@ -35,18 +35,27 @@ if (btnModal) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// If #usb-butter exists and a request to thishost.tld/usb-butter returns status 200
|
function renderPlaceholders() {
|
||||||
// change display of #usb-butter to inherit
|
const usbButter = document.querySelector('#usb-butter');
|
||||||
const usbButter = document.querySelector('#usb-butter');
|
const appstoreCard = document.querySelector('#appstore-card');
|
||||||
const usbButterPlaceholder = document.querySelector('#usb-butter-placeholder');
|
const mapsCard = document.querySelector('#maps-card');
|
||||||
if (usbButter && usbButterPlaceholder) {
|
const conditionalCards = [appstoreCard, usbButter, mapsCard];
|
||||||
fetch(usbButter.dataset.url)
|
for (let card of conditionalCards) {
|
||||||
.then(response => {
|
fetch(card.dataset.url)
|
||||||
console.log(response);
|
.then(response => {
|
||||||
if (response.status === 200) {
|
if (response.status === 200) {
|
||||||
usbButter.style.display = 'flex';
|
card.classList.remove("hidden-card");
|
||||||
usbButterPlaceholder.style.display = 'none';
|
if (card.dataset.placeholderId) {
|
||||||
|
const placeholder = document.querySelector(`#${card.dataset.placeholderId}`);
|
||||||
|
if (placeholder) {
|
||||||
|
placeholder.classList.add("hidden-card");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
);
|
||||||
);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
renderPlaceholders();
|
||||||
|
|
@ -15,8 +15,8 @@ layout: default
|
||||||
<div id="usb-butter-placeholder" class="card">
|
<div id="usb-butter-placeholder" class="card">
|
||||||
{% t explore_missing %}
|
{% t explore_missing %}
|
||||||
</div>
|
</div>
|
||||||
<a href="{{ site.usb_butter_url }}" id="usb-butter" style="display: none;" data-url="{{ site.usb_butter_url }}"
|
<a href="{{ site.usb_butter_url }}" id="usb-butter" data-url="{{ site.usb_butter_url }}" data-placeholder-id="usb-butter-placeholder"
|
||||||
class="card">
|
class="card hidden-card">
|
||||||
<img src="{{ site.baseurl }}/assets/images/explore-icon.svg" alt="Explore Icon" class="card-icon">
|
<img src="{{ site.baseurl }}/assets/images/explore-icon.svg" alt="Explore Icon" class="card-icon">
|
||||||
{% t explore %}
|
{% t explore %}
|
||||||
</a>
|
</a>
|
||||||
|
|
@ -24,11 +24,11 @@ layout: default
|
||||||
<img src="{{ site.baseurl }}/assets/images/message-icon.svg" alt="Message Icon" class="card-icon">
|
<img src="{{ site.baseurl }}/assets/images/message-icon.svg" alt="Message Icon" class="card-icon">
|
||||||
{% t message_board %}
|
{% t message_board %}
|
||||||
</a>
|
</a>
|
||||||
<a href="{{ site.baseurl }}/apps" class="card">
|
<a href="{{ site.usb_butter_url}}/appstore/" id="appstore-card" class="card hidden-card" data-url="{{ site.usb_butter_url}}/appstore/">
|
||||||
<img src="{{ site.baseurl }}/assets/images/appstore-icon.svg" alt="App Store Icon" class="card-icon">
|
<img src="{{ site.baseurl }}/assets/images/appstore-icon.svg" alt="App Store Icon" class="card-icon">
|
||||||
{% t app_store %}
|
{% t app_store %}
|
||||||
</a>
|
</a>
|
||||||
<a href="{{ site.baseurl }}/maps" class="card">
|
<a href="{{ site.baseurl }}/maps" id="maps-card" class="card hidden-card" data-url="{{ site.usb_butter_url}}/osm-map-files/">
|
||||||
<img src="{{ site.baseurl }}/assets/images/maps-icon.svg" alt="Maps Icon" class="card-icon">
|
<img src="{{ site.baseurl }}/assets/images/maps-icon.svg" alt="Maps Icon" class="card-icon">
|
||||||
{% t offline_maps %}
|
{% t offline_maps %}
|
||||||
</a>
|
</a>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue