You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

179 lines
6.1 KiB

{% extends "base.html" %}
{% load compress humanize static hc_extras %}
{% block title %}Zulip Integration for {{ site_name }}{% endblock %}
{% block content %}
<div class="row">
<div class="col-sm-12">
<h1>Zulip</h1>
<p>
<a href="https://zulipchat.com/">Zulip</a> is an open-source group chat app
with an email threading model. If you use or plan on using Zulip,
you can can integrate it
with your {{ site_name }} account in few simple steps.
</p>
<h2>Setup Guide</h2>
<div class="row ai-step">
<div class="col-sm-6">
<span class="step-no"></span>
<p>
Log into your Zulip account,
click on the <strong>gear icon</strong> in the upper right corner,
and select <strong>Settings</strong>.
</p>
</div>
<div class="col-sm-6">
<img
class="ai-guide-screenshot"
alt="Screenshot"
src="{% static 'img/integrations/setup_zulip_1.png' %}">
</div>
</div>
<div class="row ai-step">
<div class="col-sm-6">
<span class="step-no"></span>
<p>
Got to <strong>Your bots › Add a new bot </strong> and fill
out the fields.
</p>
<p>
For <strong>Bot Type</strong>,
select "Incoming webhook". You can choose your own preferred values
for bot's name and email.
</p>
<p>
For the profile picture, feel free to use the {{ site_name }} logo:
</p>
<p>
<img src="{% static 'img/logo.png'%}" alt="{{ site_name }} logo">
</p>
<p>
After you have filled out the values,
click on <strong>Create Bot</strong>.
</p>
</div>
<div class="col-sm-6">
<img
class="ai-guide-screenshot"
alt="Screenshot"
src="{% static 'img/integrations/setup_zulip_2.png' %}">
</div>
</div>
<div class="row ai-step">
<div class="col-sm-6">
<span class="step-no"></span>
<p>
Download the bot's <code>zuliprc</code> file by clicking on the
<strong>cyan download icon</strong>, and upload it in the form below.
Also specify the stream or the private user you want {{ site_name }}
to post notifications to.
</p>
<p>
Save the integration and you are done!
</p>
</div>
<div class="col-sm-6">
<img
class="ai-guide-screenshot"
alt="Screenshot"
src="{% static 'img/integrations/setup_zulip_3.png' %}">
</div>
</div>
<h2>Integration Settings</h2>
<form method="post" class="form-horizontal">
{% csrf_token %}
<input type="hidden" name="api_key" id="zulip-api-key">
<input type="hidden" name="bot_email" id="zulip-bot-email">
<input type="hidden" name="site" id="zulip-site">
<div class="form-group">
<label for="zuliprc" class="col-sm-2 control-label">The zuliprc File</label>
<div class="col-sm-4">
<input id="zuliprc" type="file">
<div id="zuliprc-help" class="help-block">
{% if form.api_key.errors or form.bot_email.errors or form.site.errors %}
Invalid file format.
{% endif %}
</div>
</div>
</div>
<div id="z-mtype-group" class="form-group {{ form.mtype.css_classes }}">
<label class="col-sm-2 control-label">Post To</label>
<div class="col-sm-4">
<label class="radio-container">
<input
type="radio"
name="mtype"
value="stream"
{% if form.mtype.value != "private" %} checked {% endif %}>
<span class="radiomark"></span>
Stream
</label>
<label class="radio-container">
<input
type="radio"
name="mtype"
value="private"
{% if form.mtype.value == "private" %} checked {% endif %}>
<span class="radiomark"></span>
Private user
</label>
</div>
</div>
<div class="form-group {{ form.to.css_classes }}">
<label id="z-to-label" for="z-to" class="col-sm-2 control-label">
{% if form.mtype.value == "private" %}
User's Email
{% else %}
Stream Name
{% endif %}
</label>
<div class="col-sm-4">
<input
id="z-to"
type="text"
class="form-control"
name="to"
value="{{ form.to.value|default:"" }}">
<div id="z-to-help" class="help-block">
{% if form.to.errors %}
{{ form.to.errors|join:"" }}
{% else %}
Example: "{% if form.mtype.value == "private" %}[email protected]{% else %}general{% endif%}"
{% endif %}
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button
id="save-integration"
type="submit"
disabled
class="btn btn-primary">Save Integration</button>
</div>
</div>
</form>
</div>
</div>
{% endblock %}
{% block scripts %}
{% compress js %}
<script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script>
<script src="{% static 'js/add_zulip.js' %}"></script>
{% endcompress %}
{% endblock %}