diff --git a/source/config/templates/config/stream_list.html b/source/config/templates/config/stream_list.html
index 3b2dba3..feb90b7 100644
--- a/source/config/templates/config/stream_list.html
+++ b/source/config/templates/config/stream_list.html
@@ -5,6 +5,12 @@
{% load fontawesome_5 %}
{% load guardian_tags %}
+{% block 'sidenav' %}
+ {% with 'stream' as section %}
+ {{ block.super }}
+ {% endwith %}
+{% endblock %}
+
{% block 'content' %}
diff --git a/source/locale/de/LC_MESSAGES/django.po b/source/locale/de/LC_MESSAGES/django.po
index 438d50a..6647b8c 100644
--- a/source/locale/de/LC_MESSAGES/django.po
+++ b/source/locale/de/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: portier 0.6.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-01 22:10+0000\n"
+"POT-Creation-Date: 2024-02-25 20:42+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Jan Koppe
\n"
"Language-Team: German \n"
@@ -17,39 +17,49 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: portier/settings.py:139
+#: portier/settings.py:141
msgid "German"
msgstr "Deutsch"
-#: portier/settings.py:140
+#: portier/settings.py:142
msgid "English"
msgstr "Englisch"
-#: restream/models.py:11
+#: restream/models.py:16
msgid "restreamconfig_stream_help"
msgstr "Stream der als Quelle für die Weiterleitung verwendet wird"
-#: restream/models.py:12
+#: restream/models.py:17
msgid "restreamconfig_target_help"
-msgstr "Ziel URL an die der Stream weitergeleitet wird, inklusive Schema (z.B. rtmp://)"
+msgstr ""
+"Ziel URL an die der Stream weitergeleitet wird, inklusive Schema (z.B. "
+"rtmp://)"
-#: restream/models.py:13
+#: restream/models.py:18
msgid "restreamconfig_name_help"
msgstr "Name für diese Restream Konfiguration"
-#: restream/models.py:14
+#: restream/models.py:19
msgid "restreamconfig_activate_help"
msgstr "Nur aktive Konfigurationen werden bei eingehenden Streams ausgeführt"
-#: restream/models.py:17
+#: restream/models.py:20
+#, fuzzy
+#| msgid "restreamconfig_target_help"
+msgid "restreamconfig_format_help"
+msgstr ""
+"Ziel URL an die der Stream weitergeleitet wird, inklusive Schema (z.B. "
+"rtmp://)"
+
+#: restream/models.py:23
msgid "restreamconfig_verbose_name"
msgstr "Restream Konfiguration"
-#: restream/models.py:18
+#: restream/models.py:24
msgid "restreamconfig_verbose_name_plural"
msgstr "Restream Konfigurationen"
-#: restream/models.py:21
+#: restream/models.py:27
msgid "restreamconfig_class_name"
msgstr "Restream Konfiguration"
@@ -81,9 +91,9 @@ msgid "change"
msgstr "Ändern"
#: restream/templates/restream/restreamconfig_detail.html:28
-#: restream/templates/restream/restreamconfig_list.html:25
+#: restream/templates/restream/restreamconfig_list.html:33
#: rtmp/templates/rtmp/stream_detail.html:28
-#: rtmp/templates/rtmp/stream_list.html:24
+#: rtmp/templates/rtmp/stream_list.html:33
msgid "name"
msgstr "Name"
@@ -92,7 +102,7 @@ msgid "stream"
msgstr "Stream"
#: restream/templates/restream/restreamconfig_detail.html:32
-#: restream/templates/restream/restreamconfig_list.html:26
+#: restream/templates/restream/restreamconfig_list.html:34
msgid "active"
msgstr "Aktiv"
@@ -133,17 +143,22 @@ msgid "restreamconfig_configuration_header"
msgstr "Restream Konfiguration"
#: restream/templates/restream/restreamconfig_list.html:16
-#: rtmp/templates/rtmp/stream_list.html:15
+#: rtmp/templates/rtmp/stream_list.html:16
msgid "create"
msgstr "Erstellen"
-#: restream/templates/restream/restreamconfig_list.html:27
+#: restream/templates/restream/restreamconfig_list.html:26
#: rtmp/templates/rtmp/stream_list.html:26
+msgid "loading..."
+msgstr ""
+
+#: restream/templates/restream/restreamconfig_list.html:35
+#: rtmp/templates/rtmp/stream_list.html:35
msgid "actions"
msgstr "Aktionen"
-#: restream/templates/restream/restreamconfig_list.html:44
-#: rtmp/templates/rtmp/stream_list.html:43
+#: restream/templates/restream/restreamconfig_list.html:52
+#: rtmp/templates/rtmp/stream_list.html:46
msgid "details"
msgstr "Details"
@@ -234,11 +249,11 @@ msgstr ""
msgid "create_new_stream_configuration_header"
msgstr "Neue Stream Konfiguration erstellen"
-#: rtmp/templates/rtmp/stream_list.html:10
+#: rtmp/templates/rtmp/stream_list.html:11
msgid "stream_configuration_header"
msgstr "Stream Konfiguration"
-#: rtmp/templates/rtmp/stream_list.html:25
+#: rtmp/templates/rtmp/stream_list.html:34
msgid "receiving"
msgstr "Empfange"
@@ -246,35 +261,47 @@ msgstr "Empfange"
msgid "update_stream_configuration_header"
msgstr "Stream Konfiguration anpassen"
-#: templates/base.html:40
-msgid "navbar_streaming"
-msgstr "Streaming"
-
-#: templates/base.html:43
-msgid "navbar_configuration_streams"
-msgstr "Streams"
-
-#: templates/base.html:44
-msgid "navbar_configuration_restreams"
-msgstr "Restreams"
-
-#: templates/base.html:51
+#: templates/base.html:39
#, python-format
msgid "hello_%(username)s"
msgstr "Hallo, %(username)s!"
-#: templates/base.html:54
+#: templates/base.html:42
msgid "navbar_account_password_change"
msgstr "Passwort ändern"
-#: templates/base.html:55
+#: templates/base.html:43
msgid "navbar_account_logout"
msgstr "Abmelden"
-#: templates/base.html:59
+#: templates/base.html:47
msgid "navbar_login"
msgstr "Anmelden"
+#: templates/base.html:80
+msgid "navbar_configuration_pull"
+msgstr "Pull"
+
+#: templates/base.html:83
+msgid "navbar_configuration_stream"
+msgstr "Stream"
+
+#: templates/base.html:86
+msgid "navbar_configuration_restream"
+msgstr "Restream"
+
+#: templates/base.html:89
+msgid "navbar_configuration_publish"
+msgstr "Publish"
+
+#: templates/base.html:92
+msgid "navbar_configuration_record"
+msgstr "Record"
+
+#: templates/base.html:95
+msgid "navbar_configuration_switch"
+msgstr "Switch"
+
#: templates/registration/login.html:5 templates/registration/login.html:14
msgid "login"
msgstr "Anmelden"
@@ -307,3 +334,6 @@ msgstr ""
"Du hast dein Passwort vergessen? Kein Problem. Gib hier die E-mail Adresse "
"deines Nutzerkonto an, und wir schicken dir einen Link zu mit dem du ein "
"neues Passwort setzen kannst."
+
+#~ msgid "navbar_streaming"
+#~ msgstr "Streaming"
diff --git a/source/locale/en/LC_MESSAGES/django.po b/source/locale/en/LC_MESSAGES/django.po
index ff70da8..bca342d 100644
--- a/source/locale/en/LC_MESSAGES/django.po
+++ b/source/locale/en/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: portier 0.6.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-01 22:10+0000\n"
+"POT-Creation-Date: 2024-02-25 20:42+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Jan Koppe \n"
"Language-Team: english \n"
@@ -17,39 +17,49 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: portier/settings.py:139
+#: portier/settings.py:141
msgid "German"
msgstr "German"
-#: portier/settings.py:140
+#: portier/settings.py:142
msgid "English"
msgstr "English"
-#: restream/models.py:11
+#: restream/models.py:16
msgid "restreamconfig_stream_help"
msgstr "Stream that's being used as source for the restreaming"
-#: restream/models.py:12
+#: restream/models.py:17
msgid "restreamconfig_target_help"
-msgstr "Target url that the stream is being restreamed to, including schema (e.g. rtmp://)"
+msgstr ""
+"Target url that the stream is being restreamed to, including schema (e.g. "
+"rtmp://)"
-#: restream/models.py:13
+#: restream/models.py:18
msgid "restreamconfig_name_help"
msgstr "Name for this restream configuration"
-#: restream/models.py:14
+#: restream/models.py:19
msgid "restreamconfig_activate_help"
msgstr "Only active configurations will be executed for incoming streams"
-#: restream/models.py:17
+#: restream/models.py:20
+#, fuzzy
+#| msgid "restreamconfig_target_help"
+msgid "restreamconfig_format_help"
+msgstr ""
+"Target url that the stream is being restreamed to, including schema (e.g. "
+"rtmp://)"
+
+#: restream/models.py:23
msgid "restreamconfig_verbose_name"
msgstr "Restream configuration"
-#: restream/models.py:18
+#: restream/models.py:24
msgid "restreamconfig_verbose_name_plural"
msgstr "Restream configurations"
-#: restream/models.py:21
+#: restream/models.py:27
msgid "restreamconfig_class_name"
msgstr "Restream configuration"
@@ -80,9 +90,9 @@ msgid "change"
msgstr "Change"
#: restream/templates/restream/restreamconfig_detail.html:28
-#: restream/templates/restream/restreamconfig_list.html:25
+#: restream/templates/restream/restreamconfig_list.html:33
#: rtmp/templates/rtmp/stream_detail.html:28
-#: rtmp/templates/rtmp/stream_list.html:24
+#: rtmp/templates/rtmp/stream_list.html:33
msgid "name"
msgstr "Name"
@@ -91,7 +101,7 @@ msgid "stream"
msgstr "Stream"
#: restream/templates/restream/restreamconfig_detail.html:32
-#: restream/templates/restream/restreamconfig_list.html:26
+#: restream/templates/restream/restreamconfig_list.html:34
msgid "active"
msgstr "Active"
@@ -131,17 +141,22 @@ msgid "restreamconfig_configuration_header"
msgstr "Restream configuration"
#: restream/templates/restream/restreamconfig_list.html:16
-#: rtmp/templates/rtmp/stream_list.html:15
+#: rtmp/templates/rtmp/stream_list.html:16
msgid "create"
msgstr "Create"
-#: restream/templates/restream/restreamconfig_list.html:27
+#: restream/templates/restream/restreamconfig_list.html:26
#: rtmp/templates/rtmp/stream_list.html:26
+msgid "loading..."
+msgstr ""
+
+#: restream/templates/restream/restreamconfig_list.html:35
+#: rtmp/templates/rtmp/stream_list.html:35
msgid "actions"
msgstr "Actions"
-#: restream/templates/restream/restreamconfig_list.html:44
-#: rtmp/templates/rtmp/stream_list.html:43
+#: restream/templates/restream/restreamconfig_list.html:52
+#: rtmp/templates/rtmp/stream_list.html:46
msgid "details"
msgstr "Details"
@@ -232,11 +247,11 @@ msgstr ""
msgid "create_new_stream_configuration_header"
msgstr "Create new stream configuration"
-#: rtmp/templates/rtmp/stream_list.html:10
+#: rtmp/templates/rtmp/stream_list.html:11
msgid "stream_configuration_header"
msgstr "Stream configuration"
-#: rtmp/templates/rtmp/stream_list.html:25
+#: rtmp/templates/rtmp/stream_list.html:34
msgid "receiving"
msgstr "Receiving"
@@ -244,35 +259,47 @@ msgstr "Receiving"
msgid "update_stream_configuration_header"
msgstr "Change stream configuration"
-#: templates/base.html:40
-msgid "navbar_streaming"
-msgstr "Streaming"
-
-#: templates/base.html:43
-msgid "navbar_configuration_streams"
-msgstr "Streams"
-
-#: templates/base.html:44
-msgid "navbar_configuration_restreams"
-msgstr "Restreams"
-
-#: templates/base.html:51
+#: templates/base.html:39
#, python-format
msgid "hello_%(username)s"
msgstr "Hello, %(username)s!"
-#: templates/base.html:54
+#: templates/base.html:42
msgid "navbar_account_password_change"
msgstr "Change password"
-#: templates/base.html:55
+#: templates/base.html:43
msgid "navbar_account_logout"
msgstr "Logout"
-#: templates/base.html:59
+#: templates/base.html:47
msgid "navbar_login"
msgstr "Login"
+#: templates/base.html:80
+msgid "navbar_configuration_pull"
+msgstr "Pull"
+
+#: templates/base.html:83
+msgid "navbar_configuration_stream"
+msgstr "Stream"
+
+#: templates/base.html:86
+msgid "navbar_configuration_restream"
+msgstr "Restream"
+
+#: templates/base.html:89
+msgid "navbar_configuration_publish"
+msgstr "Publish"
+
+#: templates/base.html:92
+msgid "navbar_configuration_record"
+msgstr "Record"
+
+#: templates/base.html:95
+msgid "navbar_configuration_switch"
+msgstr "Switch"
+
#: templates/registration/login.html:5 templates/registration/login.html:14
msgid "login"
msgstr "Login"
@@ -305,3 +332,6 @@ msgstr ""
"Did you forget your password? No worries. Enter the e-mail address of your "
"user account here. We will send an e-mail with a link to you, which you can "
"use to reset the password."
+
+#~ msgid "navbar_streaming"
+#~ msgstr "Streaming"
diff --git a/source/rtmp/migrations/0006_alter_application_options_alter_application_name_and_more.py b/source/rtmp/migrations/0006_alter_application_options_alter_application_name_and_more.py
new file mode 100644
index 0000000..4ca45e8
--- /dev/null
+++ b/source/rtmp/migrations/0006_alter_application_options_alter_application_name_and_more.py
@@ -0,0 +1,49 @@
+# Generated by Django 5.0.2 on 2024-02-25 13:49
+
+import django.db.models.deletion
+import uuid
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("rtmp", "0005_auto_20200531_0951"),
+ ]
+
+ operations = [
+ migrations.AlterModelOptions(
+ name="application",
+ options={
+ "verbose_name": "application_verbose_name",
+ "verbose_name_plural": "application_verbose_name_plural",
+ },
+ ),
+ migrations.AlterField(
+ model_name="application",
+ name="name",
+ field=models.CharField(
+ help_text="rtmp_application_name", max_length=100, unique=True
+ ),
+ ),
+ migrations.AlterField(
+ model_name="stream",
+ name="application",
+ field=models.ForeignKey(
+ help_text="stream_application_help",
+ on_delete=django.db.models.deletion.CASCADE,
+ to="rtmp.application",
+ ),
+ ),
+ migrations.AlterField(
+ model_name="stream",
+ name="name",
+ field=models.CharField(help_text="stream_name_help", max_length=100),
+ ),
+ migrations.AlterField(
+ model_name="stream",
+ name="stream",
+ field=models.UUIDField(
+ default=uuid.uuid4, help_text="stream_stream_help", unique=True
+ ),
+ ),
+ ]
diff --git a/source/rtmp/migrations/0007_alter_application_options_alter_application_name_and_more.py b/source/rtmp/migrations/0007_alter_application_options_alter_application_name_and_more.py
new file mode 100644
index 0000000..76bc7b5
--- /dev/null
+++ b/source/rtmp/migrations/0007_alter_application_options_alter_application_name_and_more.py
@@ -0,0 +1,39 @@
+# Generated by Django 5.0.2 on 2024-02-25 20:26
+
+import django.db.models.deletion
+import uuid
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('rtmp', '0006_alter_application_options_alter_application_name_and_more'),
+ ]
+
+ operations = [
+ migrations.AlterModelOptions(
+ name='application',
+ options={'verbose_name': 'RTMP application', 'verbose_name_plural': 'RTMP applications'},
+ ),
+ migrations.AlterField(
+ model_name='application',
+ name='name',
+ field=models.CharField(help_text='RTMP application name', max_length=100, unique=True),
+ ),
+ migrations.AlterField(
+ model_name='stream',
+ name='application',
+ field=models.ForeignKey(help_text='Application which the stream is assigned to', on_delete=django.db.models.deletion.CASCADE, to='rtmp.application'),
+ ),
+ migrations.AlterField(
+ model_name='stream',
+ name='name',
+ field=models.CharField(help_text='Name for this stream', max_length=100),
+ ),
+ migrations.AlterField(
+ model_name='stream',
+ name='stream',
+ field=models.UUIDField(default=uuid.uuid4, help_text='Stream ID for this stream', unique=True),
+ ),
+ ]
diff --git a/source/templates/base.html b/source/templates/base.html
index be3985f..ced650f 100644
--- a/source/templates/base.html
+++ b/source/templates/base.html
@@ -82,8 +82,42 @@
- {% block 'content' %}
- {% endblock %}
+ {% if user.is_authenticated %}
+ {% block 'sidenav' %}
+
+
+
+ {% endblock %}
+ {% endif %}
+ {% block 'content' %}
+ {% endblock %}
+ {% if user.is_authenticated %}
+
+
+ {% endif %}