mirror of https://github.com/zulip/zulip.git
urls: Move URLs that don't belong on self-hosted servers to corporate URLs.
Use absolute URLs for these links in files which will be served to self-hosted servers.
This commit is contained in:
parent
f1a1868de8
commit
e54ded49c4
|
@ -2,7 +2,7 @@ from typing import Any
|
||||||
|
|
||||||
from django.conf.urls import include
|
from django.conf.urls import include
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import RedirectView, TemplateView
|
||||||
|
|
||||||
from corporate.views.billing_page import billing_home, update_plan
|
from corporate.views.billing_page import billing_home, update_plan
|
||||||
from corporate.views.event_status import event_status, event_status_page
|
from corporate.views.event_status import event_status, event_status_page
|
||||||
|
@ -14,6 +14,14 @@ from corporate.views.support import support_request
|
||||||
from corporate.views.upgrade import initial_upgrade, sponsorship, upgrade
|
from corporate.views.upgrade import initial_upgrade, sponsorship, upgrade
|
||||||
from corporate.views.webhook import stripe_webhook
|
from corporate.views.webhook import stripe_webhook
|
||||||
from zerver.lib.rest import rest_path
|
from zerver.lib.rest import rest_path
|
||||||
|
from zerver.views.portico import (
|
||||||
|
app_download_link_redirect,
|
||||||
|
apps_view,
|
||||||
|
hello_view,
|
||||||
|
landing_view,
|
||||||
|
plans_view,
|
||||||
|
team_view,
|
||||||
|
)
|
||||||
|
|
||||||
i18n_urlpatterns: Any = [
|
i18n_urlpatterns: Any = [
|
||||||
# Zephyr/MIT
|
# Zephyr/MIT
|
||||||
|
@ -40,6 +48,66 @@ v1_api_and_json_patterns = [
|
||||||
rest_path("billing/event/status", GET=event_status),
|
rest_path("billing/event/status", GET=event_status),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
landing_page_urls = [
|
||||||
|
# Landing page, features pages, signup form, etc.
|
||||||
|
path("hello/", hello_view),
|
||||||
|
path("new-user/", RedirectView.as_view(url="/hello", permanent=True)),
|
||||||
|
path("features/", landing_view, {"template_name": "zerver/features.html"}),
|
||||||
|
path("plans/", plans_view, name="plans"),
|
||||||
|
path("apps/", apps_view),
|
||||||
|
path("apps/download/<platform>", app_download_link_redirect),
|
||||||
|
path("apps/<platform>", apps_view),
|
||||||
|
path(
|
||||||
|
"developer-community/", RedirectView.as_view(url="/development-community/", permanent=True)
|
||||||
|
),
|
||||||
|
path(
|
||||||
|
"development-community/",
|
||||||
|
landing_view,
|
||||||
|
{"template_name": "zerver/development-community.html"},
|
||||||
|
),
|
||||||
|
path("attribution/", landing_view, {"template_name": "zerver/attribution.html"}),
|
||||||
|
path("team/", team_view),
|
||||||
|
path("history/", landing_view, {"template_name": "zerver/history.html"}),
|
||||||
|
path("why-zulip/", landing_view, {"template_name": "zerver/why-zulip.html"}),
|
||||||
|
path("self-hosting/", landing_view, {"template_name": "zerver/self-hosting.html"}),
|
||||||
|
path("security/", landing_view, {"template_name": "zerver/security.html"}),
|
||||||
|
# /for pages
|
||||||
|
path("use-cases/", landing_view, {"template_name": "zerver/use-cases.html"}),
|
||||||
|
path("for/education/", landing_view, {"template_name": "zerver/for-education.html"}),
|
||||||
|
path("for/events/", landing_view, {"template_name": "zerver/for-events.html"}),
|
||||||
|
path("for/open-source/", landing_view, {"template_name": "zerver/for-open-source.html"}),
|
||||||
|
path("for/research/", landing_view, {"template_name": "zerver/for-research.html"}),
|
||||||
|
path("for/business/", landing_view, {"template_name": "zerver/for-business.html"}),
|
||||||
|
path("for/companies/", RedirectView.as_view(url="/for/business/", permanent=True)),
|
||||||
|
path(
|
||||||
|
"for/communities/",
|
||||||
|
landing_view,
|
||||||
|
{"template_name": "zerver/for-communities.html"},
|
||||||
|
),
|
||||||
|
# We merged this into /for/communities.
|
||||||
|
path(
|
||||||
|
"for/working-groups-and-communities/",
|
||||||
|
RedirectView.as_view(url="/for/communities/", permanent=True),
|
||||||
|
),
|
||||||
|
# case-studies
|
||||||
|
path("case-studies/idrift/", landing_view, {"template_name": "zerver/idrift-case-study.html"}),
|
||||||
|
path("case-studies/tum/", landing_view, {"template_name": "zerver/tum-case-study.html"}),
|
||||||
|
path("case-studies/ucsd/", landing_view, {"template_name": "zerver/ucsd-case-study.html"}),
|
||||||
|
path("case-studies/rust/", landing_view, {"template_name": "zerver/rust-case-study.html"}),
|
||||||
|
path("case-studies/lean/", landing_view, {"template_name": "zerver/lean-case-study.html"}),
|
||||||
|
path(
|
||||||
|
"case-studies/asciidoctor/",
|
||||||
|
landing_view,
|
||||||
|
{"template_name": "zerver/asciidoctor-case-study.html"},
|
||||||
|
),
|
||||||
|
path(
|
||||||
|
"case-studies/recurse-center/",
|
||||||
|
landing_view,
|
||||||
|
{"template_name": "zerver/recurse-center-case-study.html"},
|
||||||
|
),
|
||||||
|
]
|
||||||
|
i18n_urlpatterns += landing_page_urls
|
||||||
|
|
||||||
# Make a copy of i18n_urlpatterns so that they appear without prefix for English
|
# Make a copy of i18n_urlpatterns so that they appear without prefix for English
|
||||||
urlpatterns = list(i18n_urlpatterns)
|
urlpatterns = list(i18n_urlpatterns)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
* Zulip is [100% open-source software][zulip-github], with no "open core" catch.
|
* Zulip is [100% open-source software][zulip-github], with no "open core" catch.
|
||||||
When you self-host Zulip, you get the same software as [Zulip Cloud
|
When you self-host Zulip, you get the same software as [Zulip Cloud
|
||||||
Standard](/plans/) customers.
|
Standard](https://zulip.com/plans/) customers.
|
||||||
|
|
||||||
* Retain full control over your data and simplify compliance by self-hosting
|
* Retain full control over your data and simplify compliance by self-hosting
|
||||||
Zulip behind your firewall.
|
Zulip behind your firewall.
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
overhead. [Sign up](/new/) with just a few clicks.
|
overhead. [Sign up](/new/) with just a few clicks.
|
||||||
* Always updated to the latest version of Zulip.
|
* Always updated to the latest version of Zulip.
|
||||||
* Anyone can [start with Zulip Cloud Free](/new/). [Free or heavily
|
* Anyone can [start with Zulip Cloud Free](/new/). [Free or heavily
|
||||||
discounted Zulip Cloud Standard](/plans/) pricing is available for
|
discounted Zulip Cloud Standard](https://zulip.com/plans/) pricing is available for
|
||||||
most non-business uses.
|
most non-business uses.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
You can start by reading about how [Zulip’s](/hello/) unique
|
You can start by reading about how [Zulip’s](/hello/) unique
|
||||||
topic-based threading [combines the best of email and
|
topic-based threading [combines the best of email and
|
||||||
chat](/why-zulip/) to make [remote work](/for/business/) productive
|
chat](/why-zulip/) to make [remote work](https://zulip.com/for/business/) productive
|
||||||
and delightful.
|
and delightful.
|
||||||
|
|
||||||
We also highly recommend trying Zulip for yourself! You can:
|
We also highly recommend trying Zulip for yourself! You can:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Setting up Zulip for a class
|
# Setting up Zulip for a class
|
||||||
|
|
||||||
Welcome to Zulip! This page will guide you through setting everything
|
Welcome to Zulip! This page will guide you through setting everything
|
||||||
up for [teaching with Zulip](/for/education/). If you are using Zulip
|
up for [teaching with Zulip](https://zulip.com/for/education/). If you are using Zulip
|
||||||
for a different purpose, we recommend checking out the [Setting up
|
for a different purpose, we recommend checking out the [Setting up
|
||||||
your organization][setting-up] guide instead.
|
your organization][setting-up] guide instead.
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ us know!
|
||||||
|
|
||||||
## Trying out Zulip
|
## Trying out Zulip
|
||||||
|
|
||||||
You can start by reading about [Zulip for Education](/for/education/),
|
You can start by reading about [Zulip for Education](https://zulip.com/for/education/),
|
||||||
and how Zulip can become the communication hub for your class. Zulip
|
and how Zulip can become the communication hub for your class. Zulip
|
||||||
is the only [modern team chat app](/features/) that is
|
is the only [modern team chat app](/features/) that is
|
||||||
[ideal](/why-zulip/) for both live and asynchronous
|
[ideal](/why-zulip/) for both live and asynchronous
|
||||||
|
@ -53,7 +53,7 @@ ensure you can always move from our hosting to yours (and back).
|
||||||
* Always updated to the latest version of Zulip.
|
* Always updated to the latest version of Zulip.
|
||||||
* Anyone can [start with Zulip Cloud Free](/new/), which works well for a typical class.
|
* Anyone can [start with Zulip Cloud Free](/new/), which works well for a typical class.
|
||||||
* For large classes and departments, we offer [special Zulip for
|
* For large classes and departments, we offer [special Zulip for
|
||||||
Education pricing](/for/education/#feature-pricing), with the same
|
Education pricing](https://zulip.com/for/education/#feature-pricing), with the same
|
||||||
features as Zulip Cloud Standard. You can always get started with
|
features as Zulip Cloud Standard. You can always get started with
|
||||||
Zulip Cloud Free, and upgrade down the line if needed.
|
Zulip Cloud Free, and upgrade down the line if needed.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Using Zulip for a class
|
# Using Zulip for a class
|
||||||
|
|
||||||
Welcome to Zulip! This pages offers some tips for [using Zulip for a
|
Welcome to Zulip! This pages offers some tips for [using Zulip for a
|
||||||
class](/for/education). If this is your first time using Zulip, we
|
class](https://zulip.com/for/education). If this is your first time using Zulip, we
|
||||||
recommend checking out [Getting started with
|
recommend checking out [Getting started with
|
||||||
Zulip](/help/getting-started-with-zulip) to get oriented.
|
Zulip](/help/getting-started-with-zulip) to get oriented.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Zulip Cloud billing
|
# Zulip Cloud billing
|
||||||
|
|
||||||
This page answers some frequently asked questions about [Zulip Cloud plans and
|
This page answers some frequently asked questions about [Zulip Cloud plans and
|
||||||
pricing](/plans). If you have any other questions, please don't hesitate to
|
pricing](https://zulip.com/plans). If you have any other questions, please don't hesitate to
|
||||||
reach out at sales@zulip.com.
|
reach out at sales@zulip.com.
|
||||||
|
|
||||||
## Differences between Zulip Cloud plans
|
## Differences between Zulip Cloud plans
|
||||||
|
|
|
@ -20,19 +20,19 @@
|
||||||
<div class="dropdown-label first">Product<i class="fa fa-chevron-down"></i></div>
|
<div class="dropdown-label first">Product<i class="fa fa-chevron-down"></i></div>
|
||||||
<ul class="dropdown-list product-options">
|
<ul class="dropdown-list product-options">
|
||||||
<li>
|
<li>
|
||||||
<a href="/hello">Home</a>
|
<a href="https://zulip.com">Home</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/why-zulip">Why Zulip</a>
|
<a href="https://zulip.com/why-zulip">Why Zulip</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/features/">Features</a>
|
<a href="https://zulip.com/features/">Features</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/self-hosting/">Self-hosting</a>
|
<a href="https://zulip.com/self-hosting/">Self-hosting</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/security/">Security</a>
|
<a href="https://zulip.com/security/">Security</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/integrations/">Integrations</a>
|
<a href="/integrations/">Integrations</a>
|
||||||
|
@ -48,52 +48,52 @@
|
||||||
<div class="dropdown-column">
|
<div class="dropdown-column">
|
||||||
<li class="nav-header">Use cases</li>
|
<li class="nav-header">Use cases</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/for/business/">Business</a>
|
<a href="https://zulip.com/for/business/">Business</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/for/education/">Education</a>
|
<a href="https://zulip.com/for/education/">Education</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/for/research/">Research</a>
|
<a href="https://zulip.com/for/research/">Research</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/for/events/">Events and conferences</a>
|
<a href="https://zulip.com/for/events/">Events and conferences</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/for/open-source/">Open source projects</a>
|
<a href="https://zulip.com/for/open-source/">Open source projects</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/for/communities/">Communities</a>
|
<a href="https://zulip.com/for/communities/">Communities</a>
|
||||||
</li>
|
</li>
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown-column">
|
<div class="dropdown-column">
|
||||||
<li class="nav-header">Customer stories</li>
|
<li class="nav-header">Customer stories</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/idrift/">iDrift AS company</a>
|
<a href="https://zulip.com/case-studies/idrift/">iDrift AS company</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/tum/">Technical University of Munich</a>
|
<a href="https://zulip.com/case-studies/tum/">Technical University of Munich</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/ucsd/">University of California San Diego</a>
|
<a href="https://zulip.com/case-studies/ucsd/">University of California San Diego</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/lean/">Lean theorem prover community</a>
|
<a href="https://zulip.com/case-studies/lean/">Lean theorem prover community</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/asciidoctor/">Asciidoctor open-source community</a>
|
<a href="https://zulip.com/case-studies/asciidoctor/">Asciidoctor open-source community</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/rust/">Rust language community</a>
|
<a href="https://zulip.com/case-studies/rust/">Rust language community</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/recurse-center/">Recurse Center</a>
|
<a href="https://zulip.com/case-studies/recurse-center/">Recurse Center</a>
|
||||||
</li>
|
</li>
|
||||||
</div>
|
</div>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<li data-on-page="plans">
|
<li data-on-page="plans">
|
||||||
<a href="/plans/">Pricing</a>
|
<a href="https://zulip.com/plans/">Pricing</a>
|
||||||
</li>
|
</li>
|
||||||
<div class="dropdown nav-dropdown">
|
<div class="dropdown nav-dropdown">
|
||||||
<div class="dropdown-label">Resources<i class="fa fa-chevron-down"></i></div>
|
<div class="dropdown-label">Resources<i class="fa fa-chevron-down"></i></div>
|
||||||
|
@ -107,7 +107,7 @@
|
||||||
<a href="/help">Help center</a>
|
<a href="/help">Help center</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/development-community/" target=”_blank”>
|
<a href="https://zulip.com/development-community/" target=”_blank”>
|
||||||
Community chat
|
Community chat
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -77,14 +77,6 @@ from zerver.views.message_flags import (
|
||||||
)
|
)
|
||||||
from zerver.views.message_send import render_message_backend, send_message_backend, zcommand_backend
|
from zerver.views.message_send import render_message_backend, send_message_backend, zcommand_backend
|
||||||
from zerver.views.muting import mute_user, unmute_user, update_muted_topic
|
from zerver.views.muting import mute_user, unmute_user, update_muted_topic
|
||||||
from zerver.views.portico import (
|
|
||||||
app_download_link_redirect,
|
|
||||||
apps_view,
|
|
||||||
hello_view,
|
|
||||||
landing_view,
|
|
||||||
plans_view,
|
|
||||||
team_view,
|
|
||||||
)
|
|
||||||
from zerver.views.presence import (
|
from zerver.views.presence import (
|
||||||
get_presence_backend,
|
get_presence_backend,
|
||||||
get_statuses_for_realm,
|
get_statuses_for_realm,
|
||||||
|
@ -621,61 +613,6 @@ i18n_urls = [
|
||||||
path("integrations/doc-html/<integration_name>", integration_doc),
|
path("integrations/doc-html/<integration_name>", integration_doc),
|
||||||
path("integrations/", integrations_view),
|
path("integrations/", integrations_view),
|
||||||
path("integrations/<path:path>", integrations_view),
|
path("integrations/<path:path>", integrations_view),
|
||||||
# Landing page, features pages, signup form, etc.
|
|
||||||
path("hello/", hello_view),
|
|
||||||
path("new-user/", RedirectView.as_view(url="/hello", permanent=True)),
|
|
||||||
path("features/", landing_view, {"template_name": "zerver/features.html"}),
|
|
||||||
path("plans/", plans_view, name="plans"),
|
|
||||||
path("apps/", apps_view),
|
|
||||||
path("apps/download/<platform>", app_download_link_redirect),
|
|
||||||
path("apps/<platform>", apps_view),
|
|
||||||
path(
|
|
||||||
"development-community/",
|
|
||||||
landing_view,
|
|
||||||
{"template_name": "zerver/development-community.html"},
|
|
||||||
),
|
|
||||||
# Renamed to have a cleared URL.
|
|
||||||
path(
|
|
||||||
"developer-community/", RedirectView.as_view(url="/development-community/", permanent=True)
|
|
||||||
),
|
|
||||||
path("attribution/", landing_view, {"template_name": "zerver/attribution.html"}),
|
|
||||||
path("team/", team_view),
|
|
||||||
path("history/", landing_view, {"template_name": "zerver/history.html"}),
|
|
||||||
path("why-zulip/", landing_view, {"template_name": "zerver/why-zulip.html"}),
|
|
||||||
path("for/education/", landing_view, {"template_name": "zerver/for-education.html"}),
|
|
||||||
path("for/events/", landing_view, {"template_name": "zerver/for-events.html"}),
|
|
||||||
path("for/open-source/", landing_view, {"template_name": "zerver/for-open-source.html"}),
|
|
||||||
path("for/research/", landing_view, {"template_name": "zerver/for-research.html"}),
|
|
||||||
path("for/business/", landing_view, {"template_name": "zerver/for-business.html"}),
|
|
||||||
path("for/companies/", RedirectView.as_view(url="/for/business/", permanent=True)),
|
|
||||||
path("case-studies/idrift/", landing_view, {"template_name": "zerver/idrift-case-study.html"}),
|
|
||||||
path("case-studies/tum/", landing_view, {"template_name": "zerver/tum-case-study.html"}),
|
|
||||||
path("case-studies/ucsd/", landing_view, {"template_name": "zerver/ucsd-case-study.html"}),
|
|
||||||
path("case-studies/rust/", landing_view, {"template_name": "zerver/rust-case-study.html"}),
|
|
||||||
path("case-studies/lean/", landing_view, {"template_name": "zerver/lean-case-study.html"}),
|
|
||||||
path(
|
|
||||||
"case-studies/asciidoctor/",
|
|
||||||
landing_view,
|
|
||||||
{"template_name": "zerver/asciidoctor-case-study.html"},
|
|
||||||
),
|
|
||||||
path(
|
|
||||||
"case-studies/recurse-center/",
|
|
||||||
landing_view,
|
|
||||||
{"template_name": "zerver/recurse-center-case-study.html"},
|
|
||||||
),
|
|
||||||
path(
|
|
||||||
"for/communities/",
|
|
||||||
landing_view,
|
|
||||||
{"template_name": "zerver/for-communities.html"},
|
|
||||||
),
|
|
||||||
# We merged this into /for/communities.
|
|
||||||
path(
|
|
||||||
"for/working-groups-and-communities/",
|
|
||||||
RedirectView.as_view(url="/for/communities/", permanent=True),
|
|
||||||
),
|
|
||||||
path("use-cases/", landing_view, {"template_name": "zerver/use-cases.html"}),
|
|
||||||
path("self-hosting/", landing_view, {"template_name": "zerver/self-hosting.html"}),
|
|
||||||
path("security/", landing_view, {"template_name": "zerver/security.html"}),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# Make a copy of i18n_urls so that they appear without prefix for english
|
# Make a copy of i18n_urls so that they appear without prefix for english
|
||||||
|
|
Loading…
Reference in New Issue