Files
website/dist/legal/tos/index.html
2025-09-29 11:24:54 +02:00

328 lines
15 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<!-- CSS -->
<link rel="stylesheet" href="https://static.janishutz.com/css/slider.css">
<link rel="stylesheet" href="/css/style.css">
<!-- SEO -->
<title>Terms of Service | janishutz.com</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<meta name="keywords" content="tos" />
<meta name="description" content="Terms of service for janishutz.com and related services" />
<meta name="og:type" content="website" />
<meta name="og:url" content="https://janishutz.com/legal/tos" />
<meta name="og:locale" content="en_GB" />
<meta name="theme-color" content="#152b5c">
<style>
.info {
font-weight: normal;
}
</style>
</head>
<body>
<nav><script>
// Themeing
let loadedTheme = localStorage.getItem( 'theme' ) ?? 'auto';
var theme = loadedTheme;
let loadTheme = () => {
loadedTheme = localStorage.getItem( 'theme' ) ?? 'auto';
if ( loadedTheme === 'auto' ) {
if ( window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {
theme = 'dark_mode';
} else {
theme = 'light_mode';
}
}
if ( theme === 'dark_mode' ) {
document.documentElement.classList.remove( 'light' );
document.documentElement.classList.add( 'dark' );
} else {
document.documentElement.classList.add( 'light' );
document.documentElement.classList.remove( 'dark' );
theme === 'light_mode';
}
}
loadTheme();
setTimeout( () => {
document.querySelector( 'body' ).classList.add( 'loaded' );
}, 500 );
function changeTheme () {
theme = document.getElementById( 'theme-select' ).value;
localStorage.setItem( 'theme', theme );
loadTheme();
}
</script>
<div class="nav-placeholder"></div>
<div class="nav-top-bar">
<a href="/" class="logo-wrapper">
<img src="https://static.janishutz.com/logo.jpg" alt="janishutz.com logo" class="logo">
</a>
<!-- <img src="https://static.janishutz.com/logo.jpg" alt="janishutz.com logo" class="logo"> -->
<div class="nav-toggle" onclick="openMenu( 'toggle' )">
<span class="line" id="line1"></span>
<span class="line" id="line2"></span>
<span class="line" id="line3"></span>
</div>
</div>
<div class="nav-menu">
<div class="nav-link-wrapper">
<a class="nav-link-header" href="/projects">
<span class="material-symbols-outlined nav-icon">lightbulb</span>
<div>Projects</div>
</a>
<div class="nav-link-dropdown">
<a href="/projects">View all</a>
<a href="/projects/storagemanager">StorageManager</a>
<a href="/projects/qrscanner">QR & Barcode Insight</a>
<a href="/projects/libreevent">libreǝvent</a>
<a href="/projects/musicplayer">MusicPlayer</a>
<a href="https://conductorcalc.com" target="_blank">ConductorCalc</a>
</div>
</div>
<div class="nav-link-wrapper">
<a class="nav-link-header" href="/services">
<span class="material-symbols-outlined nav-icon">build</span>
<div>Services</div>
</a>
<div class="nav-link-dropdown">
<a href="https://store.janishutz.com">Store</a>
<a href="https://account.janishutz.com">Account</a>
<a href="https://development.janishutz.com">Custom Websites</a>
</div>
</div>
<a href="/" class="logo-wrapper">
<img src="https://static.janishutz.com/logo.jpg" alt="janishutz.com logo" class="logo">
</a>
<div class="nav-link-wrapper">
<a class="nav-link-header" href="/about">
<span class="material-symbols-outlined nav-icon">info</span>
<div>About</div>
</a>
<div class="nav-link-dropdown">
<a href="/about">About janishutz.com</a>
<a href="/about/aboutme">About Janis Hutz</a>
<a href="https://blog.janishutz.com" target="_blank">Blog</a>
<a href="/legal">Legal</a>
</div>
</div>
<div class="nav-link-wrapper">
<a class="nav-link-header" href="/support">
<span class="material-symbols-outlined nav-icon">support_agent</span>
<div>Support</div>
</a>
<div class="nav-link-dropdown">
<a href="https://support.janishutz.com" target="_blank">Support Hub</a>
<a href="https://support.janishutz.com/knowledgebase.php" target="_blank">Knowledgebase</a>
<a href="/support/old">Old websites</a>
</div>
</div>
</div>
<script>
const toggle = document.getElementsByClassName( 'nav-toggle' )[ 0 ];
const menu = document.getElementsByClassName( 'nav-menu' )[ 0 ];
const bar = document.getElementsByClassName( 'nav-top-bar' )[ 0 ];
function openMenu( action ) {
if ( action === 'toggle' ) {
if ( menu.classList.contains( 'active' ) ) {
openMenu( 'close' );
} else {
openMenu( 'open' );
}
} else if ( action === 'close' ) {
menu.classList.remove( 'active' );
toggle.classList.remove( 'active' );
document.body.classList.remove( 'no-scroll' );
} else if ( action === 'open' ) {
document.body.classList.add( 'no-scroll' );
toggle.classList.add( 'active' );
menu.classList.add( 'active' );
bar.classList.remove( 'slide-up' );
menu.classList.remove( 'slide-up' );
}
}
let oldScroll = 0;
document.addEventListener( 'scroll', () => {
if ( oldScroll < window.scrollY && window.innerHeight * 0.2 < window.scrollY ) {
bar.classList.add( 'slide-up' );
menu.classList.add( 'slide-up' );
} else if ( oldScroll > window.scrollY ) {
bar.classList.remove( 'slide-up' );
menu.classList.remove( 'slide-up' );
}
oldScroll = window.scrollY;
} );
// TODO: Hide menu on when scrolling down
</script>
</nav>
<div class="content">
<h1 class="title">Terms of Service</h1>
<a href="/legal" class="back">&leftarrow; Back to legal hub</a>
<ol style="width: 100%">
<b><li>
Using content of my websites
<p class="info">In general, you are not allowed to use any of the content of my websites, except explicitly stated otherwise (like on my blog).</p>
</li></b>
<b><li>
Definitions
<p class="info">
<ul style="font-weight: normal;">
<li><b>Perpetual Licence:</b> A licence which will allow you to use the software <i>for as long as you wish</i>, and it is compatible with your chosen Operating System. What it does <i><b>not</b></i> mean:
<ul>
<li>You are not guaranteed to have access to online services</li>
<li>You are not guaranteed to be able to use subscription-based online services indefinitely</li>
<li>You do not get updates to the software indefinitely</li>
<li>Some new features might require purchasing a new version of the software</li>
<li>You do not get support for the software indefinitely. Support past a specified point in time might be available for a fee</li>
</ul>
</li>
<li><b>Subscription:</b> A licence which grants you <i>temporary</i> access to a software, during the time-frame in which you pay for it. What it does <i><b>not</b></i> mean:
<ul>
<li>You will be able to keep using the software after cancellation and expiry of your subscription</li>
<li>Support is not guaranteed to be included</li>
</ul>
</li>
<li><b>End of Life (EOL):</b> The point from which on the software will not receive any further updates.</li>
</ul>
</p>
</li></b>
<b><li>
Software Licences
<p class="info">
<ul style="font-weight: normal;">
<li>All Software Licences granted to you when purchasing one off of my store are granted to you and you only, except explicitly stated otherwise.</li>
<li>You are not allowed to share a licence with other people outside the allowed limit stated for each software. There are measures in place to prevent this.</li>
<li>Licences to my software are usually granted to you as <i>perpetual licences</i>, meaning you will have access to this software indefinitely, even if I choose to end support for it.</li>
<li>Software that has reached EOL will be updated one last time, which will remove the DRM, allowing you to use it even without an account</li>
</ul>
</p>
</li></b>
<b><li>
Document Licenses
<p class="info">
<ul style="font-weight: normal;">
<li>All Document Licences granted to you when purchasing one off of my store are granted to you and you only, except explicitly stated otherwise.</li>
<li>You are not allowed to share a licence with other people. There are measures in place to prevent this.</li>
<li>Licences to my PDFs are usually granted to you as <i>perpetual licences</i>, meaning you will have access to these Documents indefinitely, even if I choose to end support for it.</li>
<li>Documents I choose to drop from the store will be emailed to you upon reaching that status, so you keep your access to them.</li>
<li>All documents may only be viewed with the provided viewer in the browser, or in the future with any other Software provided and explicitly authorized by me.</li>
<li>There is no guarantee that the documents will be available at all times, as downtimes in the systems may occur, which are outside my control.</li>
</ul>
</p>
</li></b>
<b><li>
Accountability
<p class="info">
I am in no way accountable for any damage that is incurred from using my software. I am not accountable for any loss of data that occurs by using any of my software, not even if you store data on the cloud. I keep regular, automated backups of all data to ensure that catastrophic data loss is not possible.
I thoroughly test my software to ensure that there is no risk of data loss. All data that could possibly be lost is data that is stored by my software.
</p>
</li></b>
<b><li>
Returns
<p class="info">
Returns are handled according to my <a href="/legal/returns">Return Policy</a> to which you agree when agreeing to these terms
</p>
</li></b>
<b><li>
Privacy
<p class="info">When agreeing to these terms, you also agree to my <a href="/legal/privacy" target="_blank">Privacy Policy</a>, which states that some data on your interaction might be collected, but will never be tied to your identity. All other data you provide willingly is for obvious reasons tied to your identity.</p>
</li></b>
</ol>
<p>Any violation of the above terms above may lead to a termination of your account or your licence being revoked. </p>
<i>Last updated 2024-05-20</i>
</div>
<footer><div class="footer-container">
<img src="https://static.janishutz.com/logo.jpg" alt="janishutz.com logo" class="logo">
<div class="footer-text-container">
<div class="footer-category">
<h3>Projects</h3>
<a href="/projects">View all</a>
<a href="/projects/storagemanager">StorageManager</a>
<a href="/projects/qrscanner">QR & Barcode Insight</a>
<a href="/projects/libreevent">libreǝvent</a>
<a href="/projects/musicplayer">MusicPlayer</a>
<a href="/projects/biogascontrollerapp">BiogasControllerApp</a>
</div>
<div class="footer-category">
<h3>Info</h3>
<a href="/about">About janishutz.com</a>
<a href="/about/aboutme">About Janis Hutz</a>
<div class="theme-selector">
<span class="material-symbols-outlined" id="theme-switcher-icon">light_mode</span>
<select id="theme-select" onchange="changeTheme()">
<option value="auto">Auto</option>
<option value="light_mode">Light</option>
<option value="dark_mode">Dark</option>
</select>
</div>
</div>
<div class="footer-category">
<h3>Support</h3>
<a href="https://support.janishutz.com">Get support</a>
<a href="https://support.janishutz.com/knowledgebase.php">Knowledgebase</a>
<a href="/support/support-status">Support status</a>
</div>
<div class="footer-category">
<h3>Legal</h3>
<a href="/legal/privacy">Privacy Policy</a>
<a href="/legal/tos">Terms of Service</a>
<a href="/legal/returns">Return policy</a>
<a href="/support/support-status">Support Status</a>
<div onclick="showAnalytics()" style="cursor: pointer;">Analytics</div>
</div>
<div class="analytics-notice" id="analytics">
<h2>Analytics</h2>
<p>This website uses privacy preserving product analytics allowing me to analyze aggregated statistics for this website. All data collected will not allow me to uniquely identify you. <br><a href="/legal/privacy">Privacy Policy</a></p>
<!-- Matomo stuff -->
<div id="matomo-opt-out">
Loading...
</div>
<script src="https://analytics.janishutz.com/index.php?module=CoreAdminHome&action=optOutJS&divId=matomo-opt-out&language=auto&fontColor=000000&fontSize=12px&fontFamily=monospace&showIntro=1"></script>
<!-- Matomo Image Tracker-->
<img referrerpolicy="no-referrer-when-downgrade" src="https://analytics.janishutz.com/matomo.php?idsite=2&amp;rec=1" style="border:0" alt="" />
<!-- End Matomo -->
<button class="analytics-button" onclick="closeAnalytics()"><span class="material-symbols-outlined">close</span></button>
<div class="small-symbol" onclick="showAnalytics()" title="Change your analytics preferences"><span class="material-symbols-outlined">Analytics</span></div>
</div>
</div>
<script>
function closeAnalytics () {
document.getElementById( 'analytics' ).classList.remove( 'show' );
localStorage.setItem( 'analytics-dismissed', 'true' );
}
function showAnalytics () {
document.getElementById( 'analytics' ).classList.add( 'show' );
}
if ( !localStorage.getItem( 'analytics-dismissed' ) ) {
document.getElementById( 'analytics' ).classList.add( 'show' );
}
// Show which theme is loaded
document.getElementById( 'theme-select' ).value = loadedTheme;
</script>
</div>
</footer>
</body>
</html>