Skip to content

Commit

Permalink
added non profit page
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinpapst committed Mar 29, 2024
1 parent c0bdd47 commit 8fa4db0
Show file tree
Hide file tree
Showing 10 changed files with 315 additions and 23 deletions.
40 changes: 39 additions & 1 deletion _data/de/translation.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
made-with-love: Erstellt von
made-with-love: Entwickelt von
developed-at: Entwickelt bei
access-demo: Demo aufrufen
docu-alert-english: Der Inhalt ist nur auf Englisch verfügbar
Expand Down Expand Up @@ -408,3 +408,41 @@ landing_oss:
version_choose: Welches Kimai ist das richtige für Sie?
version_onpremise: Ich kümmere mich um die Software, Sie kümmern sich um den Betrieb, Updates und die Sicherheit ihrer Server. Und wenn Sie es nicht selbst tun wollen, können Sie jederzeit auf Unterstützung zurückgreifen.
version_cloud: Sofort einsatzbereit, Sie überlassen mir Hosting und Updates und haben dadurch mehr Zeit für Ihr Kerngeschäft. Sorgen Sie dafür, dass Ihr Team mit einer modernen Zeiterfassungslösung für die Zukunft gerüstet ist.
non-profit:
name: "Non-Profits"
title: "Zeiterfassung für Non-Profit Organisationen"
pricing:
short_monthly: "Pro Benutzer & Monat"
short_annual: "Pro Benutzer & Jahr"
plans:
max_users: "Max. %user% Benutzer"
timetracking: "Projekt-Zeiterfassung"
billable_hours: "Abrechenbare- und nicht-abrechenbare Stunden"
translation: "Branchenspezifische Übersetzungen"
invoices: "Rechnungen"
all_from_plan: "Alle Funktionen aus '%plan%'"
email_support: "Persönlicher E-Mail Support"
saml: "Single Sign-On mit SAML"
tls_included: "Kostenloses SSL Zertifikat"
priority_features: "Priorisierte Anfragen"
expense_tracking: "Ausgaben Aufzeichnung"
absences: "Feiertage, Urlaub, Krankmeldung"
annual_payment: "Jahrestarif: weniger Buchhaltung 🎉"
ip_whitelist: "Zugriffsbeschränkung via IP"
daily_backups: "Tägliche Backups zum Download"
rest_api: "REST API"
github_support: "Community Forum"
custom_domain: "Eigene Domain inkl. SSL"
automatic_upgrades: "Automatische Updates"
server_maintenance: "Server Wartung"
automatic_backups: "Automatische Backups"
backup_frequency: "Backup Häufigkeit"
audit_logs: "Revisions-Aufzeichnung (Audit-Logs)"
custom_fields: "Eigene Felder"
task_management: "Aufgabenplanung"
custom_css: "Eigene CSS Regeln"
invoice_documents: "Eigene Rechnungsvorlagen"
export: "Datenexport"
expense: "Ausgaben Erfassung (Reisekosten, Spesen etc.)"
ip_restriction: "Zugriffsbeschränkung via IP"
work_contract: "Arbeitszeitkonten (Urlaub, Feiertage, Krankheit)"
40 changes: 39 additions & 1 deletion _data/en/translation.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
made-with-love: Made by
made-with-love: Developed by
developed-at: Developed at
access-demo: Access demo
docu-alert-english: Content is only available in English
Expand Down Expand Up @@ -408,3 +408,41 @@ landing_oss:
version_choose: Which Kimai is right for you?
version_onpremise: I take care of the software, you take care about the hosting, updates and security. And if you don't want to do it yourself, there is always support available at your fingertips.
version_cloud: Get up and running in seconds, leave the hosting and update to me, you take care of your core business. Make sure your team is ready for the future, with a modern time tracking solution.
non-profit:
name: "Non-Profits"
title: "Time-Tracking for Non-Profit Organizations"
pricing:
short_monthly: "Per user & month"
short_annual: "Per user & year"
plans:
max_users: "Max. %user% users"
timetracking: "Project Time Tracking"
billable_hours: "Billable and Non-Billable Hours"
translation: "Industry-Specific Translations"
invoices: "Invoices"
all_from_plan: "All Features from '%plan%'"
email_support: "Personal Email Support"
saml: "Single Sign-On with SAML"
tls_included: "Free SSL Certificate"
priority_features: "Prioritized Feature Requests"
expense_tracking: "Expense Tracking"
absences: "Public Holidays, Vacation, Sick Leave"
annual_payment: "Annual Plan: Simpler Accounting 🎉"
ip_whitelist: "IP Access Restriction"
daily_backups: "Daily Backups for Download"
rest_api: "REST API"
github_support: "Community Forum"
custom_domain: "Custom Domain with SSL"
automatic_upgrades: "Automatic Updates"
server_maintenance: "Server Maintenance"
automatic_backups: "Automatic Backups"
backup_frequency: "Backup Frequency"
audit_logs: "Audit Logging"
custom_fields: "Custom Fields"
task_management: "Task Management"
custom_css: "Custom CSS Rules"
invoice_documents: "Custom Invoice Templates"
export: "Data Export"
expense: "Expense Tracking (Travel Expenses, Allowances etc.)"
ip_restriction: "IP Access Restriction"
work_contract: "Work Time Accounts (Vacation, Public Holidays, Sick Leave)"
1 change: 1 addition & 0 deletions _data/icons.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nonprofit: 'bx bxs-gift'
48 changes: 48 additions & 0 deletions _data/plans/nonprofit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
id: nonprofit
name: Non-Profit
visible: false
metered: false
annual: true
price: 99
highlight: false
features:
max_customers: unlimited
max_projects: unlimited
max_activities: unlimited
rest_api: true
tls_included: true
automatic_upgrades: true
server_maintenance: true
github_support: true
email_support: true
backup_frequency: weekly
priority_features: false
invoices: true
invoice_documents: 1
audit_logs: true
export: true
expense: true
custom_fields: true
task_management: true
custom_css: true
ip_restriction: true
custom_domain: true
translation: true
saml: true
export_templates: true
work_contract: true
kiosk: true
max_users: unlimited
teaser:
all_from_plan: { '%plan%': Standard, class: font-weight-bold }
work_contract: { }
absences: { }
expense_tracking: { }
custom_fields: { }
task_management: { }
daily_backups: { }
'': { }
saml: { }
custom_domain: { }
ip_whitelist: { }
annual_payment: { }
44 changes: 23 additions & 21 deletions _includes/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
{% if is_light %}
{% assign is_dark = false %}
{% endif %}
{% assign englishOrGerman = 'en' %}
{% if page.lang == 'de' %}
{% assign englishOrGerman = 'de' %}
{% endif %}
<footer class="footer {% if is_dark %}bg-dark {% endif %}pt-5 pb-4"{% if is_dark %} data-bs-theme="dark"{% endif %}>
<div class="container pt-1 pt-md-3 pt-lg-4 pt-xl-5">
<div class="row">
Expand Down Expand Up @@ -59,73 +63,71 @@
<div class="col-md-7 offset-xl-1">
<div id="footer-links" class="row">
{% assign columnLength = 4 %}
{% if page.lang == 'de' or page.lang == 'en' %}
{% assign columnLength = 3 %}
{% endif %}
<div class="col-12 col-md-6 col-lg-{{ columnLength }}">
<h6 class="fs-lg mb-1 mb-md-3">
<h6 class="fs-lg mb-1 mb-md-2">
<span class="d-none d-md-block">Kimai</span>
<a href="#tools" class="d-block text-dark dropdown-toggle d-md-none py-2" data-bs-toggle="collapse">Kimai</a>
</h6>
<div id="tools" class="collapse d-md-block" data-bs-parent="#footer-links">
<ul class="nav flex-column">
<li class="nav-item mb-1">
<li class="nav-item">
{% include link-translated-menu.html item="about" language=page.lang class="nav-link fs-sm fw-medium px-0 py-1" %}
</li>
<li class="nav-item mb-1">
<li class="nav-item">
{% include link-translated-menu.html item="download" language=page.lang class="nav-link fs-sm fw-medium px-0 py-1" %}
</li>
<li class="nav-item mb-1">
<li class="nav-item">
{% include link-translated-menu.html item="features" language=page.lang class="nav-link fs-sm fw-medium px-0 py-1" %}
</li>
<li class="nav-item mb-1">
<li class="nav-item">
{% include link-translated-menu.html item="support" language=page.lang class="nav-link fs-sm fw-medium px-0 py-1" %}
</li>
</ul>
</div>
</div>
{% assign openSourcePageLang = 'en' %}
{% if page.lang == 'de' %}
{% assign openSourcePageLang = 'de' %}
{% endif %}
<div class="col-12 col-md-6 col-lg-{{ columnLength }}">
<h6 class="fs-lg mb-1 mb-md-3">
<span class="d-none d-md-block">Open-Source</span>
<a href="#tools" class="d-block text-dark dropdown-toggle d-md-none py-2" data-bs-toggle="collapse">Open-Source</a>
<h6 class="fs-lg mb-1 mb-md-2">
<span class="d-none d-md-block">Kimai {% if page.lang == 'de' %}für{% else %}for{% endif %}</span>
<a href="#landing-kimai-for" class="d-block text-dark dropdown-toggle d-md-none py-2" data-bs-toggle="collapse">Kimai for</a>
</h6>
<div id="landing-oss" class="collapse d-md-block" data-bs-parent="#footer-links">
<div id="landing-kimai-for" class="collapse d-md-block" data-bs-parent="#footer-links">
<ul class="nav flex-column">
{% assign lps = site.opensource | where: "lang", openSourcePageLang %}
<li class="nav-item">
{% include link-translated-menu.html item="non-profit" language=englishOrGerman class="nav-link fs-sm fw-medium px-0 py-1" %}
</li>
{% assign lps = site.opensource | where: "lang", englishOrGerman %}
{% for lp in lps %}
<li class="nav-item mb-1">
<li class="nav-item">
<a href="{{ lp.url }}" class="nav-link fs-sm fw-medium px-0 py-1">{{ lp.keyword }}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
<div class="col-12 col-md-6 col-lg-{{ columnLength }}">
<h6 class="fs-lg mb-1 mb-md-3">
<h6 class="fs-lg mb-1 mb-md-2">
<span class="d-none d-md-block">{{ site.data[page.lang].translation.comparison.footer-title }}</span>
<a href="#footer-cmp" class="d-block text-dark dropdown-toggle d-md-none py-2" data-bs-toggle="collapse">{{ site.data[page.lang].translation.comparison.footer-title }}</a>
</h6>
<div id="footer-cmp" class="collapse d-md-block" data-bs-parent="#footer-links">
<ul class="nav flex-column">
<li class="nav-item mb-1">
<li class="nav-item">
{% include link-translated-menu.html item="alternatives" language=page.lang class="nav-link fs-sm fw-medium px-0 py-1" %}
</li>
{% assign tools = site.alternative | where: "lang", "en" | where: "feature", true | sort: "name" %}
{% for tool in tools %}
<li class="nav-item mb-1">
<li class="nav-item">
<a href="{{ tool.url }}" class="nav-link fs-sm fw-medium px-0 py-1" title="Compare Kimai to {{ tool.name }}">{{ tool.name }}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
{% comment %}
<div class="d-none d-lg-block col-lg-3 text-end">
<img src="/images/kimai_logo.png" style="max-height:148px" alt="Kimai">
</div>
{% endcomment %}
</div>
</div>
</div>
Expand Down
64 changes: 64 additions & 0 deletions _includes/pages/non-profit.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{% if page.lang == 'de' %}

Heute sage ich Danke an die vielen NGOs und NPOs:

- Gemeinnützige- und Wohltätigkeitsorganisationen
- Öffentliche und freie Schulen, Universitäten, Volkshochschulen
- Behörden und Organisationen mit Sicherheitsaufgaben, Rettungsdienste, Katastrophenschutz, Feuerwehr, THW
- Naturschutz-, Sport und alle anderen Vereine, die das miteinander gestalten und Fähigkeiten vermitteln
- Soziale Dienste und kirchliche Träger, Altenpflege- und Jugendeinrichtungen
- &hellip; und noch so viele andere, die ich hier vergessen habe aufzuzählen

Ihr gebt Eure Zeit, verschenkt kleine und große Wunder und bereichert das Leben von so vielen: Danke, dass Ihr da seid!

Spätestens wenn eine Organisation größer wird, mehr Spendeneinnahmen verzeichnet oder Personal einstellt, wird es wichtig die Arbeitszeiten der Mitarbeiter zu erfassen und auszuwerten.
Arbeitsabläufe sollten analysiert und mögliche Effizienzsteigerungen früh erkannt werden.
Nicht nur um mehr Zeit und Geld für den eigentlichen Zweck freizumachen, sondern auch um nachvollziehbare Rechenschaftsberichte abgeben zu können.

Ich möchte Euch unterstützen und biete daher einen unschlagbar günstigen und jährlich abgerechneten Non-Profit-Tarif an:

{% else %}

Today I want to say thank you to the many NGOs and NPOs:

- Non-profit and charitable organisations
- Public and independent schools, universities, adult education centres
- Authorities and organisations with security tasks, rescue services, civil protection, fire brigade
- Nature conservation, sports and all other community-building and skills-development organisations
- Social services and church organisations, elderly care and youth facilities
- &hellip; and so many others that I have forgotten to mention here

You give your time, work small and big miracles and enrich the lives of so many: Thank you for being there!

As an organisation grows, receives more donations or employs more staff, it becomes important to record and analyse the working hours of employees.
Workflows should be analysed and potential efficiency improvements should be identified at an early stage.
This is not only to free up time and money for the real work, but also to be able to submit transparent accountability reports.

I want to support you and therefore offer an unbeatable and annually billed non-profit rate:

{% endif %}

<div class="table-responsive-lg w-xl-50 w-md-75 w-100">
<div class="row flex-nowrap pb-4">
<div class="col">
{% include pricing-card.html id="nonprofit" %}
</div>
</div>
</div>

{% if page.lang == 'de' %}

Wenn Du einen gemeinnützigen Verein bzw. eine Organisation repräsentierst, dann registriere Dich mit einer offiziellen E-Mail-Adresse des Vereins und verfasse eine kurze Support-Nachricht. Der Tarif wird nach manueller Prüfung freigeschaltet.

Es wäre toll, wenn ich Euer Logo und den Namen als Referenz auf [www.kimai.cloud](https://www.kimai.cloud) und [www.kimai.org](https://www.kimai.org) nutzen dürfte.

{% else %}

If you represent a non-profit association or organisation, please register with an official e-mail address of the organisation and write a support message. The plan will be activated after a manual approval.

It would be great if I could use your logo and name as a reference on [www.kimai.cloud](https://www.kimai.cloud) and [www.kimai.org](https://www.kimai.org).

{% endif %}

{% include cta-begin-journey.html %}

39 changes: 39 additions & 0 deletions _includes/pricing-card.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{% if include.id %}
{% assign plan = site.data.plans[include.id] %}

<div class="card h-100 border-0 shadow-sm p-xxl-3" style="min-width: 18rem;">
<div class="card-body">
<div class="d-flex align-items-center pb-2 pb-md-3 mb-4">
<div class="flex-shrink-0 rounded-3">
<i class="{{ site.data.icons[include.id] }} display-4"></i>
</div>
<div class="ps-4">
<h3 class="fs-lg fw-normal text-body mb-2">{{ plan.name }}</h3>
<h4 class="h3 lh-1 mb-0">
{% assign pricing = plan.price | divided_by: 100.0 | round: 2 %}
{{ pricing | replace: '.', '.<span class="fs-5">' }}</span>
<span class="text-body fs-sm fw-normal">/ {{ site.data[page.lang].translation.pricing.short_monthly }}</span>
</h4>
</div>
</div>
<ul class="list-unstyled fs-sm pb-md-3 mb-3">
{% for teaser in plan.teaser %}
{% if teaser[0] != "" %}
<li class="d-flex mb-2">
{% assign key = teaser[0] %}
<i class="bx bx-check fs-xl text-primary me-1"></i>
{% assign text = site.data[page.lang].translation.plans[key] %}
{% for replacer in teaser[1] %}
{% assign text = text | replace: replacer[0], replacer[1] %}
{% endfor %}
{{ text }}
</li>
{% endif %}
{% endfor %}
</ul>
</div>
<div class="card-footer border-0 pt-0 pb-4">
{% include link-cloud-start.html classes="btn btn-outline-primary w-100" %}
</div>
</div>
{% endif %}
43 changes: 43 additions & 0 deletions _layouts/landing.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
layout: base
---
{% assign pagetitle = page.title %}
{% if site.data[page.lang].translation[page.slug].title != nil %}
{% assign pagetitle = site.data[page.lang].translation[page.slug].title %}
{% elsif site.data[page.lang].translation[page.slug].name != nil %}
{% assign pagetitle = site.data[page.lang].translation[page.slug].name %}
{% endif %}
{% assign subtitle = nil %}
{% if page.subtitle != nil %}
{% assign subtitle = page.subtitle %}
{% endif %}
{% if site.data[page.lang].translation[page.slug].subtitle != nil %}
{% assign subtitle = site.data[page.lang].translation[page.slug].subtitle %}
{% endif %}

<main class="page-wrapper">
{% include header-navigation.html %}

<section class="container py-5 my-1 my-md-4 my-lg-5">
<div class="row">
<div class="col-lg-12 mb-4 mb-lg-0">
<div class="pe-lg-4 me-lg-3 pe-xl-0 me-xl-0">
<div class="m-auto w-50 text-center mb-4 pb-4">
<p class="small">{{ site.data[page.lang].translation.slogan }}</p>
<h2 class="h1 mb-4">{{ pagetitle }} ✨</h2>
{% if subtitle != nil %}
<p class="mb-4">{{ subtitle }}</p>
{% endif %}
</div>
<div class="mb-0">
{{ content }}
</div>
</div>
</div>
</div>
</section>

</main>

{% include footer.html %}

Loading

0 comments on commit 8fa4db0

Please sign in to comment.