fontawesome5;interfont;local frontend resources;languages
This commit is contained in:
		
							parent
							
								
									621771c391
								
							
						
					
					
						commit
						0400e85f89
					
				| 
						 | 
				
			
			@ -1,4 +1,8 @@
 | 
			
		|||
.env
 | 
			
		||||
static/css/font-awesome.min.css
 | 
			
		||||
static/js/bootstrap.bundle.min.js
 | 
			
		||||
static/js/jquery.min.js
 | 
			
		||||
static/fonts
 | 
			
		||||
 | 
			
		||||
# Byte-compiled / optimized / DLL files
 | 
			
		||||
__pycache__/
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								Dockerfile
								
								
								
								
							
							
						
						
									
										17
									
								
								Dockerfile
								
								
								
								
							| 
						 | 
				
			
			@ -5,6 +5,11 @@ WORKDIR /app
 | 
			
		|||
ENV PYTHONDONTWRITEBYTECODE 1
 | 
			
		||||
ENV PYTHONUNBUFFERED 1
 | 
			
		||||
 | 
			
		||||
# https://github.com/twbs/bootstrap/issues/30553 don't upgrade jquery to 3.5.0 yet
 | 
			
		||||
ENV JQUERY_VERSION=3.4.1
 | 
			
		||||
ENV BOOTSTRAP_VERSION=4.4.1
 | 
			
		||||
ENV INTER_VERSION=3.13
 | 
			
		||||
 | 
			
		||||
# install required packages
 | 
			
		||||
RUN apk add --no-cache postgresql-dev gcc python3-dev musl-dev gettext postgresql-client nginx supervisor
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -21,6 +26,18 @@ RUN addgroup -S portier && adduser -S portier -G portier
 | 
			
		|||
 | 
			
		||||
# add code
 | 
			
		||||
ADD --chown=portier:portier . /app
 | 
			
		||||
 | 
			
		||||
# add static external libraries for frontend
 | 
			
		||||
ADD --chown=portier:portier http://code.jquery.com/jquery-${JQUERY_VERSION}.min.js /app/static/js/jquery.min.js
 | 
			
		||||
ADD --chown=portier:portier https://stackpath.bootstrapcdn.com/bootstrap/${BOOTSTRAP_VERSION}/js/bootstrap.bundle.min.js /app/static/js/bootstrap.bundle.min.js
 | 
			
		||||
RUN mkdir -p /tmp/inter /app/static/fonts \
 | 
			
		||||
    && cd /tmp/inter && wget https://github.com/rsms/inter/releases/download/v${INTER_VERSION}/Inter-${INTER_VERSION}.zip \
 | 
			
		||||
    && unzip Inter-${INTER_VERSION}.zip  && mv /tmp/inter/Inter\ Web/* /app/static/fonts/ \
 | 
			
		||||
    && cd - \
 | 
			
		||||
    && rm -rf /tmp/inter \
 | 
			
		||||
    && chown -R portier:portier /app/static/fonts/
 | 
			
		||||
 | 
			
		||||
# collect static files and compile localized strings
 | 
			
		||||
RUN ./manage.py collectstatic --noinput --link
 | 
			
		||||
RUN ./manage.py compilemessages
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
 | 
			
		||||
$primary: rgb(17, 114, 26);
 | 
			
		||||
$font-family-sans-serif: Inter,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
 | 
			
		||||
$enable-shadows: true;
 | 
			
		||||
$enable-responsive-font-sizes: true;
 | 
			
		||||
$enable-rounded: false;
 | 
			
		||||
| 
						 | 
				
			
			@ -8,7 +8,7 @@ msgid ""
 | 
			
		|||
msgstr ""
 | 
			
		||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2020-05-01 12:17+0000\n"
 | 
			
		||||
"POT-Creation-Date: 2020-05-01 17:01+0000\n"
 | 
			
		||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
			
		||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
			
		||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
			
		||||
| 
						 | 
				
			
			@ -18,6 +18,14 @@ msgstr ""
 | 
			
		|||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
			
		||||
 | 
			
		||||
#: portier/settings.py:139
 | 
			
		||||
msgid "German"
 | 
			
		||||
msgstr "Deutsch"
 | 
			
		||||
 | 
			
		||||
#: portier/settings.py:140
 | 
			
		||||
msgid "English"
 | 
			
		||||
msgstr "Englisch"
 | 
			
		||||
 | 
			
		||||
#: restream/models.py:11
 | 
			
		||||
msgid "restreamconfig_stream_help"
 | 
			
		||||
msgstr ""
 | 
			
		||||
| 
						 | 
				
			
			@ -49,19 +57,20 @@ msgstr ""
 | 
			
		|||
#: restream/templates/restream/restreamconfig_confirm_delete.html:6
 | 
			
		||||
#: rtmp/templates/rtmp/stream_confirm_delete.html:6
 | 
			
		||||
msgid "confirm_delete_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Löschen bestätigen"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_confirm_delete.html:12
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "are_you_sure_you_want_to_delete_\"%(restreamconfig_config_name)s\"?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Bist du sicher, dass du \"%(restreamconfig_config_name)s\" löschen willst?"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_confirm_delete.html:15
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:20
 | 
			
		||||
#: rtmp/templates/rtmp/stream_confirm_delete.html:18
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:20
 | 
			
		||||
msgid "delete"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Löschen"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:12
 | 
			
		||||
msgid "restreamconfig_configuration_details_header"
 | 
			
		||||
| 
						 | 
				
			
			@ -70,26 +79,26 @@ msgstr ""
 | 
			
		|||
#: restream/templates/restream/restreamconfig_detail.html:17
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:17
 | 
			
		||||
msgid "change"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Ändern"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:28
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:18
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:28
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:18
 | 
			
		||||
msgid "name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Name"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:30
 | 
			
		||||
msgid "stream"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stream"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:35
 | 
			
		||||
msgid "configured_target_url"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Konfigurierte Ziel-URL"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_form.html:5
 | 
			
		||||
msgid "create_new_restreamconfig_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Neue Restream Konfiguration erstellen"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_form.html:14
 | 
			
		||||
#: restream/templates/restream/restreamconfig_update_form.html:14
 | 
			
		||||
| 
						 | 
				
			
			@ -98,7 +107,7 @@ msgstr ""
 | 
			
		|||
#: templates/registration/password_change_form.html:13
 | 
			
		||||
#: templates/registration/password_reset_form.html:13
 | 
			
		||||
msgid "submit"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Abschicken"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_form.html:21
 | 
			
		||||
msgid "create_new_restreamconfig_configuration_text_html"
 | 
			
		||||
| 
						 | 
				
			
			@ -106,30 +115,30 @@ msgstr ""
 | 
			
		|||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:8
 | 
			
		||||
msgid "restreamconfig_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Restream Konfiguration"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:12
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:12
 | 
			
		||||
msgid "create"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Erstellen"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:19
 | 
			
		||||
msgid "active"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Aktiv"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:20
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:20
 | 
			
		||||
msgid "actions"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Aktionen"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:38
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:38
 | 
			
		||||
msgid "details"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Details"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_update_form.html:5
 | 
			
		||||
msgid "update_restreamconfig_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Restream Konfiguration anpassen"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_update_form.html:21
 | 
			
		||||
msgid "update_restreamconfig_configuration_text_html"
 | 
			
		||||
| 
						 | 
				
			
			@ -137,80 +146,82 @@ msgstr ""
 | 
			
		|||
 | 
			
		||||
#: rtmp/models.py:13
 | 
			
		||||
msgid "rtmp_application_name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "RTMP Application Name"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:16
 | 
			
		||||
msgid "application_verbose_name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Application"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:17
 | 
			
		||||
msgid "application_verbose_name_plural"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Applications"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:20
 | 
			
		||||
msgid "aplication_class_name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Application"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:27
 | 
			
		||||
msgid "stream_application_help"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Unter welcher RTMP Application gilt diese Stream ID"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:28
 | 
			
		||||
msgid "stream_stream_help"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "RTMP Stream ID"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:29
 | 
			
		||||
msgid "stream_name_help"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Name für diesen Stream"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:68
 | 
			
		||||
msgid "stream_class_name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stream"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_confirm_delete.html:13
 | 
			
		||||
msgid "deleting_stream_configuration_will_also_delete_all_depending_confgurations_warning"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Achtung! Beim Löschen dieser Stream Konfiguration werden auch alle "
 | 
			
		||||
"abhängigen Konfigurationen gelöscht."
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_confirm_delete.html:15
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "are_you_sure_you_want_to_delete_\"%(stream_config_name)s\"?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Willst du wirklich \"%(stream_config_name)s\" löschen?"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_confirm_delete.html:25
 | 
			
		||||
msgid "deleting_configurations_list_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Diese Konfigurationen werden gelöscht"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:12
 | 
			
		||||
msgid "stream_configuration_details_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stream Konfiguration Details"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:30
 | 
			
		||||
msgid "application"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Application"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:33
 | 
			
		||||
msgid "stream_configuration_do_not_share_warning"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Achtung! Gebe diese Stream ID niemals weiter."
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:36
 | 
			
		||||
msgid "how_to_configure_your_encoder_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Wie du deinen Encoder konfigurierst"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:38
 | 
			
		||||
msgid "set_this_stream_server_in_encoder"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stelle diesen Stream Server in deinem Encoder ein"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:40
 | 
			
		||||
msgid "set_this_stream_id_in_encoder"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stelle diese Stream ID in deinem Encoder ein"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:48
 | 
			
		||||
msgid "you_may_need_to_use_this_full_url_instead"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Vielleicht musst du diese volle URL verwenden"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_form.html:5
 | 
			
		||||
msgid "create_new_stream_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Neue Stream Konfiguration erstellen"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_form.html:21
 | 
			
		||||
msgid "create_new_stream_configuration_text_html"
 | 
			
		||||
| 
						 | 
				
			
			@ -218,63 +229,60 @@ msgstr ""
 | 
			
		|||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:8
 | 
			
		||||
msgid "stream_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stream Konfiguration"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:19
 | 
			
		||||
msgid "publishing"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgid "receiving"
 | 
			
		||||
msgstr "Empfängt"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_update_form.html:5
 | 
			
		||||
msgid "update_stream_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stream Konfiguration anpassen"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_update_form.html:21
 | 
			
		||||
msgid "update_stream_configuration_text_html"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:36
 | 
			
		||||
msgid "navbar_configuration"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgid "navbar_streaming"
 | 
			
		||||
msgstr "Streaming"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:39
 | 
			
		||||
msgid "navbar_configuration_streaming_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgid "navbar_configuration_streams"
 | 
			
		||||
msgstr "Streams"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:40
 | 
			
		||||
msgid "navbar_configuration_streams"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:41
 | 
			
		||||
msgid "navbar_configuration_restreams"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Restreams"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:43
 | 
			
		||||
msgid "navbar_configuration_account_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:44
 | 
			
		||||
msgid "navbar_configuration_password_change"
 | 
			
		||||
msgstr ""
 | 
			
		||||
#: templates/base.html:47
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "hello_%(username)s"
 | 
			
		||||
msgstr "Hallo, %(username)s!"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:50
 | 
			
		||||
msgid "navbar_logout"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgid "navbar_account_password_change"
 | 
			
		||||
msgstr "Passwort ändern"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:52
 | 
			
		||||
#: templates/base.html:51
 | 
			
		||||
msgid "navbar_account_logout"
 | 
			
		||||
msgstr "Abmelden"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:55
 | 
			
		||||
msgid "navbar_login"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Anmelden"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/login.html:5 templates/registration/login.html:13
 | 
			
		||||
msgid "login"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Anmelden"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/login.html:18
 | 
			
		||||
msgid "forgot_password_q"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Passwort vergessen?"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/password_change_done.html:5
 | 
			
		||||
msgid "password_change_successful"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Passwort erfolgreich geändert"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/password_change_done.html:6
 | 
			
		||||
msgid "password_change_successful_text"
 | 
			
		||||
| 
						 | 
				
			
			@ -282,11 +290,11 @@ msgstr ""
 | 
			
		|||
 | 
			
		||||
#: templates/registration/password_change_done.html:7
 | 
			
		||||
msgid "take_me_to_safety"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Bring mich in Sicherheit!"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/password_change_form.html:5
 | 
			
		||||
msgid "change_password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Passwort ändern"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/password_change_form.html:20
 | 
			
		||||
msgid "change_password_text_html"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@ msgid ""
 | 
			
		|||
msgstr ""
 | 
			
		||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2020-05-01 12:17+0000\n"
 | 
			
		||||
"POT-Creation-Date: 2020-05-01 17:01+0000\n"
 | 
			
		||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
			
		||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
			
		||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
			
		||||
| 
						 | 
				
			
			@ -18,6 +18,14 @@ msgstr ""
 | 
			
		|||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
			
		||||
 | 
			
		||||
#: portier/settings.py:139
 | 
			
		||||
msgid "German"
 | 
			
		||||
msgstr "German"
 | 
			
		||||
 | 
			
		||||
#: portier/settings.py:140
 | 
			
		||||
msgid "English"
 | 
			
		||||
msgstr "English"
 | 
			
		||||
 | 
			
		||||
#: restream/models.py:11
 | 
			
		||||
msgid "restreamconfig_stream_help"
 | 
			
		||||
msgstr ""
 | 
			
		||||
| 
						 | 
				
			
			@ -36,60 +44,60 @@ msgstr ""
 | 
			
		|||
 | 
			
		||||
#: restream/models.py:17
 | 
			
		||||
msgid "restreamconfig_verbose_name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Restream configuration"
 | 
			
		||||
 | 
			
		||||
#: restream/models.py:18
 | 
			
		||||
msgid "restreamconfig_verbose_name_plural"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Restream configurations"
 | 
			
		||||
 | 
			
		||||
#: restream/models.py:21
 | 
			
		||||
msgid "restreamconfig_class_name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Restream configuration"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_confirm_delete.html:6
 | 
			
		||||
#: rtmp/templates/rtmp/stream_confirm_delete.html:6
 | 
			
		||||
msgid "confirm_delete_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Confirm deletion"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_confirm_delete.html:12
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "are_you_sure_you_want_to_delete_\"%(restreamconfig_config_name)s\"?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Are you sure you want to delete \"%(restreamconfig_config_name)s\"?"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_confirm_delete.html:15
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:20
 | 
			
		||||
#: rtmp/templates/rtmp/stream_confirm_delete.html:18
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:20
 | 
			
		||||
msgid "delete"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Delete"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:12
 | 
			
		||||
msgid "restreamconfig_configuration_details_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Restream configuration details"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:17
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:17
 | 
			
		||||
msgid "change"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Change"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:28
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:18
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:28
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:18
 | 
			
		||||
msgid "name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Name"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:30
 | 
			
		||||
msgid "stream"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stream"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_detail.html:35
 | 
			
		||||
msgid "configured_target_url"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Configured target URL"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_form.html:5
 | 
			
		||||
msgid "create_new_restreamconfig_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Create new restream configuration"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_form.html:14
 | 
			
		||||
#: restream/templates/restream/restreamconfig_update_form.html:14
 | 
			
		||||
| 
						 | 
				
			
			@ -98,7 +106,7 @@ msgstr ""
 | 
			
		|||
#: templates/registration/password_change_form.html:13
 | 
			
		||||
#: templates/registration/password_reset_form.html:13
 | 
			
		||||
msgid "submit"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Submit"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_form.html:21
 | 
			
		||||
msgid "create_new_restreamconfig_configuration_text_html"
 | 
			
		||||
| 
						 | 
				
			
			@ -106,30 +114,30 @@ msgstr ""
 | 
			
		|||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:8
 | 
			
		||||
msgid "restreamconfig_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Restream configuration"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:12
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:12
 | 
			
		||||
msgid "create"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Create"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:19
 | 
			
		||||
msgid "active"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Active"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:20
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:20
 | 
			
		||||
msgid "actions"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Actions"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_list.html:38
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:38
 | 
			
		||||
msgid "details"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Details"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_update_form.html:5
 | 
			
		||||
msgid "update_restreamconfig_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Update restream configuration"
 | 
			
		||||
 | 
			
		||||
#: restream/templates/restream/restreamconfig_update_form.html:21
 | 
			
		||||
msgid "update_restreamconfig_configuration_text_html"
 | 
			
		||||
| 
						 | 
				
			
			@ -137,80 +145,82 @@ msgstr ""
 | 
			
		|||
 | 
			
		||||
#: rtmp/models.py:13
 | 
			
		||||
msgid "rtmp_application_name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "RTMP application name"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:16
 | 
			
		||||
msgid "application_verbose_name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "RTMP application"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:17
 | 
			
		||||
msgid "application_verbose_name_plural"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "RTMP applications"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:20
 | 
			
		||||
msgid "aplication_class_name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Application"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:27
 | 
			
		||||
msgid "stream_application_help"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Application which the stream is assigned to"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:28
 | 
			
		||||
msgid "stream_stream_help"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stream ID for this stream"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:29
 | 
			
		||||
msgid "stream_name_help"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Name for this stream"
 | 
			
		||||
 | 
			
		||||
#: rtmp/models.py:68
 | 
			
		||||
msgid "stream_class_name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stream"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_confirm_delete.html:13
 | 
			
		||||
msgid "deleting_stream_configuration_will_also_delete_all_depending_confgurations_warning"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Attention! Deleting this stream configuration will also delete all depending "
 | 
			
		||||
"configurations."
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_confirm_delete.html:15
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "are_you_sure_you_want_to_delete_\"%(stream_config_name)s\"?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Are you sure you want to delete \"%(stream_config_name)s\"?"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_confirm_delete.html:25
 | 
			
		||||
msgid "deleting_configurations_list_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "List of deleted configurations"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:12
 | 
			
		||||
msgid "stream_configuration_details_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stream configuration details"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:30
 | 
			
		||||
msgid "application"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Application"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:33
 | 
			
		||||
msgid "stream_configuration_do_not_share_warning"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Attention! Do not share this stream ID with anyone."
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:36
 | 
			
		||||
msgid "how_to_configure_your_encoder_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "How to configure your encoder"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:38
 | 
			
		||||
msgid "set_this_stream_server_in_encoder"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Set this stream server in your encoder"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:40
 | 
			
		||||
msgid "set_this_stream_id_in_encoder"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Set this stream ID in your encoder"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_detail.html:48
 | 
			
		||||
msgid "you_may_need_to_use_this_full_url_instead"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "You may need to use this full URL instead"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_form.html:5
 | 
			
		||||
msgid "create_new_stream_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Create new stream configuration"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_form.html:21
 | 
			
		||||
msgid "create_new_stream_configuration_text_html"
 | 
			
		||||
| 
						 | 
				
			
			@ -218,63 +228,60 @@ msgstr ""
 | 
			
		|||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:8
 | 
			
		||||
msgid "stream_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Stream configuration"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_list.html:19
 | 
			
		||||
msgid "publishing"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgid "receiving"
 | 
			
		||||
msgstr "Receiving"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_update_form.html:5
 | 
			
		||||
msgid "update_stream_configuration_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Change stream configuration"
 | 
			
		||||
 | 
			
		||||
#: rtmp/templates/rtmp/stream_update_form.html:21
 | 
			
		||||
msgid "update_stream_configuration_text_html"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:36
 | 
			
		||||
msgid "navbar_configuration"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgid "navbar_streaming"
 | 
			
		||||
msgstr "Streaming"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:39
 | 
			
		||||
msgid "navbar_configuration_streaming_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgid "navbar_configuration_streams"
 | 
			
		||||
msgstr "Streams"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:40
 | 
			
		||||
msgid "navbar_configuration_streams"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:41
 | 
			
		||||
msgid "navbar_configuration_restreams"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Restreams"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:43
 | 
			
		||||
msgid "navbar_configuration_account_header"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:44
 | 
			
		||||
msgid "navbar_configuration_password_change"
 | 
			
		||||
msgstr ""
 | 
			
		||||
#: templates/base.html:47
 | 
			
		||||
#, python-format
 | 
			
		||||
msgid "hello_%(username)s"
 | 
			
		||||
msgstr "Hello, %(username)s!"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:50
 | 
			
		||||
msgid "navbar_logout"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgid "navbar_account_password_change"
 | 
			
		||||
msgstr "Change password"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:52
 | 
			
		||||
#: templates/base.html:51
 | 
			
		||||
msgid "navbar_account_logout"
 | 
			
		||||
msgstr "Logout"
 | 
			
		||||
 | 
			
		||||
#: templates/base.html:55
 | 
			
		||||
msgid "navbar_login"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Login"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/login.html:5 templates/registration/login.html:13
 | 
			
		||||
msgid "login"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Login"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/login.html:18
 | 
			
		||||
msgid "forgot_password_q"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Did you forget your password?"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/password_change_done.html:5
 | 
			
		||||
msgid "password_change_successful"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Password change was successful"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/password_change_done.html:6
 | 
			
		||||
msgid "password_change_successful_text"
 | 
			
		||||
| 
						 | 
				
			
			@ -282,11 +289,11 @@ msgstr ""
 | 
			
		|||
 | 
			
		||||
#: templates/registration/password_change_done.html:7
 | 
			
		||||
msgid "take_me_to_safety"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Help! Take me back to safety!"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/password_change_form.html:5
 | 
			
		||||
msgid "change_password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Change password"
 | 
			
		||||
 | 
			
		||||
#: templates/registration/password_change_form.html:20
 | 
			
		||||
msgid "change_password_text_html"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,7 @@ https://docs.djangoproject.com/en/3.0/ref/settings/
 | 
			
		|||
"""
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
from django.utils.translation import gettext_lazy as _
 | 
			
		||||
 | 
			
		||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 | 
			
		||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
			
		||||
| 
						 | 
				
			
			@ -42,7 +43,7 @@ INSTALLED_APPS = [
 | 
			
		|||
    'guardian',
 | 
			
		||||
    'django_registration',
 | 
			
		||||
    'bootstrap4',
 | 
			
		||||
    'fa',
 | 
			
		||||
    'fontawesome_5',
 | 
			
		||||
    'core.apps.CoreConfig',
 | 
			
		||||
    'portal.apps.PortalConfig',
 | 
			
		||||
    'rtmp.apps.RtmpConfig',
 | 
			
		||||
| 
						 | 
				
			
			@ -53,6 +54,7 @@ INSTALLED_APPS = [
 | 
			
		|||
MIDDLEWARE = [
 | 
			
		||||
    'django.middleware.security.SecurityMiddleware',
 | 
			
		||||
    'django.contrib.sessions.middleware.SessionMiddleware',
 | 
			
		||||
    'django.middleware.locale.LocaleMiddleware',
 | 
			
		||||
    'django.middleware.common.CommonMiddleware',
 | 
			
		||||
    'django.middleware.csrf.CsrfViewMiddleware',
 | 
			
		||||
    'django.contrib.auth.middleware.AuthenticationMiddleware',
 | 
			
		||||
| 
						 | 
				
			
			@ -133,6 +135,16 @@ USE_I18N = True
 | 
			
		|||
USE_L10N = True
 | 
			
		||||
USE_TZ = True
 | 
			
		||||
 | 
			
		||||
LANGUAGES = [
 | 
			
		||||
  ('de', _('German')),
 | 
			
		||||
  ('en', _('English')),
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
LOCALE_PATHS = (
 | 
			
		||||
    os.path.join(BASE_DIR, 'locale'),
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Static files (CSS, JavaScript, Images)
 | 
			
		||||
# https://docs.djangoproject.com/en/3.0/howto/static-files/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,6 +19,7 @@ from django.urls import include, path
 | 
			
		|||
urlpatterns = [
 | 
			
		||||
    path('accounts/', include('django_registration.backends.activation.urls')),
 | 
			
		||||
    path('accounts/', include('django.contrib.auth.urls')),
 | 
			
		||||
    path('i18n/', include('django.conf.urls.i18n')),
 | 
			
		||||
    path('admin/', admin.site.urls),
 | 
			
		||||
    path('rtmp/', include('rtmp.urls')),
 | 
			
		||||
    path('restream/', include('restream.urls')),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@ django>=3.0
 | 
			
		|||
django-registration>=3.1
 | 
			
		||||
django-bootstrap4
 | 
			
		||||
django-guardian
 | 
			
		||||
django-fa
 | 
			
		||||
django-fontawesome-5
 | 
			
		||||
celery>=4.4
 | 
			
		||||
gunicorn>=20
 | 
			
		||||
psycopg2-binary
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
{% extends 'base.html' %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
{% load bootstrap4 %}
 | 
			
		||||
{% load font_awesome %}
 | 
			
		||||
{% load fontawesome_5 %}
 | 
			
		||||
{% block 'content' %}
 | 
			
		||||
<h6>{% trans "confirm_delete_header" %}</h6>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
| 
						 | 
				
			
			@ -12,7 +12,7 @@
 | 
			
		|||
      <p>{% blocktrans with restreamconfig_config_name=object.name %}are_you_sure_you_want_to_delete_"{{ restreamconfig_config_name }}"?{% endblocktrans %}</p>
 | 
			
		||||
      {% buttons %}
 | 
			
		||||
        <button type="submit" class="btn btn-danger" value="login">
 | 
			
		||||
          {% fa 'trash' %} {% trans "delete" %}
 | 
			
		||||
          {% fa5_icon 'trash' %} {% trans "delete" %}
 | 
			
		||||
        </button>
 | 
			
		||||
      {% endbuttons %}
 | 
			
		||||
      <input type="hidden" name="next" value="{{ next }}">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
{% extends 'base.html' %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
{% load bootstrap4 %}
 | 
			
		||||
{% load font_awesome %}
 | 
			
		||||
{% load fontawesome_5 %}
 | 
			
		||||
{% load guardian_tags %}
 | 
			
		||||
 | 
			
		||||
{% get_obj_perms user for object as "obj_perms" %}
 | 
			
		||||
| 
						 | 
				
			
			@ -14,10 +14,10 @@
 | 
			
		|||
  {% get_obj_perms user for object as "obj_perms" %}
 | 
			
		||||
  <div class="col-auto">
 | 
			
		||||
  {% if "change_restreamconfig" in obj_perms %}
 | 
			
		||||
  <a href="{% url 'restream:restreamconfig_change' pk=object.pk %}" type="button" class="btn btn-primary">{% fa 'pencil' %} {% trans 'change' %}</a>
 | 
			
		||||
  <a href="{% url 'restream:restreamconfig_change' pk=object.pk %}" type="button" class="btn btn-sm btn-outline-primary">{% fa5_icon 'edit' %} {% trans 'change' %}</a>
 | 
			
		||||
  {% endif %}
 | 
			
		||||
  {% if "delete_restreamconfig" in obj_perms %}
 | 
			
		||||
  <a href="{% url 'restream:restreamconfig_delete' pk=object.pk %}" type="button" class="btn btn-danger">{% fa 'trash' %} {% trans 'delete' %}</a>
 | 
			
		||||
  <a href="{% url 'restream:restreamconfig_delete' pk=object.pk %}" type="button" class="btn btn-sm btn-outline-danger">{% fa5_icon 'trash' %} {% trans 'delete' %}</a>
 | 
			
		||||
  {% endif %}
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,19 +1,26 @@
 | 
			
		|||
{% extends 'base.html' %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
{% load bootstrap4 %}
 | 
			
		||||
{% load font_awesome %}
 | 
			
		||||
{% load fontawesome_5 %}
 | 
			
		||||
{% load guardian_tags %}
 | 
			
		||||
 | 
			
		||||
{% block 'content' %}
 | 
			
		||||
<h6>{% trans "restreamconfig_configuration_header" %}</h6>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
<div class="btn-toolbar mb-4" role="toolbar">
 | 
			
		||||
  <div class="btn-group" role="group">
 | 
			
		||||
    <a href="{% url 'restream:restreamconfig_create' %}" type="button" class="btn btn-sm btn-outline-success">{% fa 'plus' %} {% trans "create" %}</a>
 | 
			
		||||
 | 
			
		||||
<div class="row justify-content-between">
 | 
			
		||||
  <div class="col">
 | 
			
		||||
    <h6>{% trans "restreamconfig_configuration_header" %}</h6>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="col-auto">
 | 
			
		||||
    <div class="btn-toolbar" role="toolbar">
 | 
			
		||||
      <div class="btn-group" role="group">
 | 
			
		||||
        <a href="{% url 'restream:restreamconfig_create' %}" type="button" class="btn btn-sm btn-outline-primary">{% fa5_icon 'plus' %} {% trans "create" %}</a>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
<table class="table">
 | 
			
		||||
  <thead class="thead-dark">
 | 
			
		||||
  <thead class="thead-light">
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th scope="col">{% trans "name" %}</th>
 | 
			
		||||
      <th scope="col">{% trans "active" %}</th>
 | 
			
		||||
| 
						 | 
				
			
			@ -28,16 +35,16 @@
 | 
			
		|||
      <th scope="row">{{ object.name }}</th>
 | 
			
		||||
      <td>
 | 
			
		||||
        {% if object.active %}
 | 
			
		||||
          <span class="text-success">{% fa 'check-circle' %}</span>
 | 
			
		||||
          <span class="text-success">{% fa5_icon 'check-circle' %}</span>
 | 
			
		||||
        {% else %}
 | 
			
		||||
          <span class="text-danger">{% fa 'times-circle' %}</span>
 | 
			
		||||
          <span class="text-danger">{% fa5_icon 'times-circle' %}</span>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
      </td>
 | 
			
		||||
      <td align="right">
 | 
			
		||||
        <div class="btn-group" role="group">
 | 
			
		||||
        <a href="{% url 'restream:restreamconfig_detail' pk=object.pk %}" type="button" class="btn btn-sm btn-primary">{% trans "details" %}</a>
 | 
			
		||||
        <a href="{% url 'restream:restreamconfig_detail' pk=object.pk %}" type="button" class="btn btn-sm btn-outline-primary">{% trans "details" %}</a>
 | 
			
		||||
        {% if "delete_restreamconfig" in obj_perms %}
 | 
			
		||||
        <a href="{% url 'restream:restreamconfig_delete' pk=object.pk %}" type="button" class="btn btn-sm btn-danger">{% fa 'trash' %}</a>
 | 
			
		||||
        <a href="{% url 'restream:restreamconfig_delete' pk=object.pk %}" type="button" class="btn btn-sm btn-outline-danger">{% fa5_icon 'trash' %}</a>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
        </div>
 | 
			
		||||
      </td>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
{% extends 'base.html' %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
{% load bootstrap4 %}
 | 
			
		||||
{% load font_awesome %}
 | 
			
		||||
{% load fontawesome_5 %}
 | 
			
		||||
{% block 'content' %}
 | 
			
		||||
<h6>{% trans "confirm_delete_header" %}</h6>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +15,7 @@
 | 
			
		|||
      <p>{% blocktrans with stream_config_name=object.name %}are_you_sure_you_want_to_delete_"{{ stream_config_name }}"?{% endblocktrans %}</p>
 | 
			
		||||
      {% buttons %}
 | 
			
		||||
        <button type="submit" class="btn btn-danger" value="login">
 | 
			
		||||
          {% fa 'trash' %} {% trans "delete" %}
 | 
			
		||||
          {% fa5_icon 'trash' %} {% trans "delete" %}
 | 
			
		||||
        </button>
 | 
			
		||||
      {% endbuttons %}
 | 
			
		||||
      <input type="hidden" name="next" value="{{ next }}">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
{% extends 'base.html' %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
{% load bootstrap4 %}
 | 
			
		||||
{% load font_awesome %}
 | 
			
		||||
{% load fontawesome_5 %}
 | 
			
		||||
{% load guardian_tags %}
 | 
			
		||||
 | 
			
		||||
{% get_obj_perms user for object as "obj_perms" %}
 | 
			
		||||
| 
						 | 
				
			
			@ -13,12 +13,12 @@
 | 
			
		|||
  </div>
 | 
			
		||||
  {% get_obj_perms user for object as "obj_perms" %}
 | 
			
		||||
  <div class="col-auto">
 | 
			
		||||
  {% if "change_stream" in obj_perms %}
 | 
			
		||||
  <a href="{% url 'rtmp:stream_change' pk=object.pk %}" type="button" class="btn btn-primary">{% fa 'pencil' %} {% trans 'change' %}</a>
 | 
			
		||||
  {% endif %}
 | 
			
		||||
  {% if "delete_stream" in obj_perms %}
 | 
			
		||||
  <a href="{% url 'rtmp:stream_delete' pk=object.pk %}" type="button" class="btn btn-danger">{% fa 'trash' %} {% trans 'delete' %}</a>
 | 
			
		||||
  {% endif %}
 | 
			
		||||
    {% if "change_stream" in obj_perms %}
 | 
			
		||||
    <a href="{% url 'rtmp:stream_change' pk=object.pk %}" type="button" class="btn btn-sm btn-outline-primary">{% fa5_icon 'edit' %} {% trans 'change' %}</a>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
    {% if "delete_stream" in obj_perms %}
 | 
			
		||||
    <a href="{% url 'rtmp:stream_delete' pk=object.pk %}" type="button" class="btn btn-sm btn-outline-danger">{% fa5_icon 'trash' %} {% trans 'delete' %}</a>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,22 +1,28 @@
 | 
			
		|||
{% extends 'base.html' %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
{% load bootstrap4 %}
 | 
			
		||||
{% load font_awesome %}
 | 
			
		||||
{% load fontawesome_5 %}
 | 
			
		||||
{% load guardian_tags %}
 | 
			
		||||
 | 
			
		||||
{% block 'content' %}
 | 
			
		||||
<h6>{% trans "stream_configuration_header" %}</h6>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
<div class="btn-toolbar mb-4" role="toolbar">
 | 
			
		||||
  <div class="btn-group" role="group">
 | 
			
		||||
    <a href="{% url 'rtmp:stream_create' %}" type="button" class="btn btn-sm btn-outline-success">{% fa 'plus' %} {% trans "create" %}</a>
 | 
			
		||||
<div class="row justify-content-between">
 | 
			
		||||
  <div class="col">
 | 
			
		||||
    <h6>{% trans "stream_configuration_header" %}</h6>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="col-auto">
 | 
			
		||||
    <div class="btn-toolbar" role="toolbar">
 | 
			
		||||
      <div class="btn-group" role="group">
 | 
			
		||||
        <a href="{% url 'rtmp:stream_create' %}" type="button" class="btn btn-sm btn-outline-primary">{% fa5_icon 'plus' %} {% trans "create" %}</a>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
<table class="table">
 | 
			
		||||
  <thead class="thead-dark">
 | 
			
		||||
  <thead class="thead-light">
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th scope="col">{% trans "name" %}</th>
 | 
			
		||||
      <th scope="col">{% trans "publishing" %}</th>
 | 
			
		||||
      <th scope="col">{% trans "receiving" %}</th>
 | 
			
		||||
      <th scope="col" class="text-right">{% trans "actions" %}</th>
 | 
			
		||||
    </tr>
 | 
			
		||||
  </thead>
 | 
			
		||||
| 
						 | 
				
			
			@ -28,16 +34,16 @@
 | 
			
		|||
      <th scope="ro">{{ object.name }}</th>
 | 
			
		||||
      <td>
 | 
			
		||||
        {% if object.publish_counter > 0 %}
 | 
			
		||||
          <span class="text-success">{% fa 'check-circle' %}</span>
 | 
			
		||||
          <span class="text-success">{% fa5_icon 'check-circle' %}</span>
 | 
			
		||||
        {% else %}
 | 
			
		||||
          <span class="text-danger">{% fa 'times-circle' %}</span>
 | 
			
		||||
          <span class="text-danger">{% fa5_icon 'times-circle' %}</span>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
      </td>
 | 
			
		||||
      <td align="right">
 | 
			
		||||
        <div class="btn-group" role="group">
 | 
			
		||||
        <a href="{% url 'rtmp:stream_detail' pk=object.pk %}" type="button" class="btn btn-sm btn-primary">{% trans "details" %}</a>
 | 
			
		||||
        <a href="{% url 'rtmp:stream_detail' pk=object.pk %}" type="button" class="btn btn-sm btn-outline-primary ">{% trans "details" %}</a>
 | 
			
		||||
        {% if "delete_stream" in obj_perms %}
 | 
			
		||||
        <a href="{% url 'rtmp:stream_delete' pk=object.pk %}" type="button" class="btn btn-sm btn-danger">{% fa 'trash' %}</a>
 | 
			
		||||
        <a href="{% url 'rtmp:stream_delete' pk=object.pk %}" type="button" class="btn btn-sm btn-outline-danger">{% fa5_icon 'trash' %}</a>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
        </div>
 | 
			
		||||
      </td>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
{% load static %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
{% load bootstrap4 %}
 | 
			
		||||
{% load font_awesome %}
 | 
			
		||||
{% load fontawesome_5 %}
 | 
			
		||||
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
| 
						 | 
				
			
			@ -11,9 +11,12 @@
 | 
			
		|||
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 | 
			
		||||
 | 
			
		||||
    <title>{% block 'title' %}portier{% endblock %}</title>
 | 
			
		||||
    {% bootstrap_css %}
 | 
			
		||||
    {% fa_css %}
 | 
			
		||||
    {% bootstrap_javascript jquery='full' %}
 | 
			
		||||
    <link rel="stylesheet" href="{% static 'fonts/inter.css' %}"></link>
 | 
			
		||||
    <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}"></link>
 | 
			
		||||
    <link rel="stylesheet" href="{% static 'css/font-awesome.min.css' %}"></link>
 | 
			
		||||
    {% fontawesome_5_static %}
 | 
			
		||||
    <script src="{% static 'js/jquery.min.js' %}"></script>
 | 
			
		||||
    <script src="{% static 'js/bootstrap.bundle.min.js' %}"></script>
 | 
			
		||||
  </head>
 | 
			
		||||
 | 
			
		||||
  <body>
 | 
			
		||||
| 
						 | 
				
			
			@ -32,25 +35,46 @@
 | 
			
		|||
          <ul class="navbar-nav">
 | 
			
		||||
          {% if user.is_authenticated %}
 | 
			
		||||
            <li class="nav-item dropdown">
 | 
			
		||||
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
 | 
			
		||||
                {% trans "navbar_configuration" %}
 | 
			
		||||
              <a class="nav-link dropdown-toggle" href="#" id="navbarStreamingDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
 | 
			
		||||
                {% trans "navbar_streaming" %}
 | 
			
		||||
              </a>
 | 
			
		||||
              <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
 | 
			
		||||
                <h6 class="dropdown-header">{% trans "navbar_configuration_streaming_header" %}</h6>
 | 
			
		||||
                <a class="dropdown-item" href="{% url 'rtmp:stream_list' %}">{% trans "navbar_configuration_streams" %}</a>
 | 
			
		||||
                <a class="dropdown-item" href="{% url 'restream:restreamconfig_list' %}">{% trans "navbar_configuration_restreams" %}</a>
 | 
			
		||||
                <div class="dropdown-divider"></div>
 | 
			
		||||
                <h6 class="dropdown-header">{% trans "navbar_configuration_account_header" %}</h6>
 | 
			
		||||
                <a class="dropdown-item" href="{% url 'password_change' %}">{% trans "navbar_configuration_password_change" %}</a>
 | 
			
		||||
              <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarStreamingDropdown">
 | 
			
		||||
                <a class="dropdown-item{% if not perms.rtmp.add_stream %} disabled{% endif %}" href="{% url 'rtmp:stream_list' %}">{% trans "navbar_configuration_streams" %}</a>
 | 
			
		||||
                <a class="dropdown-item{% if not perms.restream.add_restreamconfig %} disabled{% endif %}" href="{% url 'restream:restreamconfig_list' %}">{% trans "navbar_configuration_restreams" %}</a>
 | 
			
		||||
              </div>
 | 
			
		||||
            </li>
 | 
			
		||||
          {% endif %}
 | 
			
		||||
            <li class="nav-item">
 | 
			
		||||
          {% if user.is_authenticated %}
 | 
			
		||||
              <a class="nav-link logout" href="{% url 'logout' %}?next={% url 'index' %}">{% trans "navbar_logout" %}</a>
 | 
			
		||||
            <li class="nav-item dropdown border-left">
 | 
			
		||||
              <a class="nav-link dropdown-toggle" href="#" id="navbarAccountDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
 | 
			
		||||
                {% blocktrans with username=user.get_username %}hello_{{ username }}{% endblocktrans %}
 | 
			
		||||
              </a>
 | 
			
		||||
              <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarAccountDropdown">
 | 
			
		||||
                <a class="dropdown-item" href="{% url 'password_change' %}">{% trans "navbar_account_password_change" %}</a>
 | 
			
		||||
                <a class="dropdown-item" href="{% url 'logout' %}?next={% url 'index' %}">{% trans "navbar_account_logout" %}</a>
 | 
			
		||||
            </li>
 | 
			
		||||
          {% else %}
 | 
			
		||||
            <li class="nav-item">
 | 
			
		||||
              <a class="nav-link login" href="{% url 'login' %}?next={% url 'index' %}">{% trans "navbar_login" %}</a>
 | 
			
		||||
            </li>
 | 
			
		||||
          {% endif %}
 | 
			
		||||
            <li class="nav-item dropdown border-left">
 | 
			
		||||
              <a class="nav-link dropdown-toggle" id="languageSelectDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
 | 
			
		||||
                {% fa5_icon 'language' %}
 | 
			
		||||
              </a>
 | 
			
		||||
              <div class="dropdown-menu dropdown-menu-right" aria-labelledby="languageSelectDropdown">
 | 
			
		||||
                {% get_current_language as LANGUAGE_CODE %}
 | 
			
		||||
                {% get_available_languages as LANGUAGES %}
 | 
			
		||||
                {% get_language_info_list for LANGUAGES as languages %}
 | 
			
		||||
                {% for language in languages %}
 | 
			
		||||
                <a class="dropdown-item{% if language.code == LANGUAGE_CODE %} font-weight-bold{% endif %}" onclick="$('#languageSelectInput').val('{{ language.code }}'); $('#languageSelectForm').submit()">{{ language.name_local}} ({{ language.code }})</a>
 | 
			
		||||
                {% endfor %}
 | 
			
		||||
              </div>
 | 
			
		||||
              <form action="{% url 'set_language' %}" method="post" id="languageSelectForm">
 | 
			
		||||
                {% csrf_token %}
 | 
			
		||||
                <input name="next" type="hidden" value="{{ redirect_to }}">
 | 
			
		||||
                <input name="language" type="hidden" value="" id="languageSelectInput">
 | 
			
		||||
              </form>
 | 
			
		||||
            </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
        </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -62,6 +86,7 @@
 | 
			
		|||
    </main>
 | 
			
		||||
    <footer class="text-muted">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
 | 
			
		||||
      </div>
 | 
			
		||||
    </footer>
 | 
			
		||||
  </body>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
{% load bootstrap4 %}
 | 
			
		||||
{% block 'content' %}
 | 
			
		||||
<h6>{% trans "login" %}</h6>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
<div class="row">
 | 
			
		||||
  <div class="col-sm border-right">
 | 
			
		||||
    <form method="post">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
{% load bootstrap4 %}
 | 
			
		||||
{% block 'content' %}
 | 
			
		||||
<h6>{% trans "password_change_successful" %}</h6>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
<p>{% trans "password_change_successful_text" %}</p>
 | 
			
		||||
<a class="btn btn-primary btn-lg" href="{% url 'index' %}">{% trans "take_me_to_safety" %}</a>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
{% load bootstrap4 %}
 | 
			
		||||
{% block 'content' %}
 | 
			
		||||
<h6>{% trans "change_password" %}</h6>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
<div class="row">
 | 
			
		||||
  <div class="col-sm border-right">
 | 
			
		||||
    <form method="post">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
{% load bootstrap4 %}
 | 
			
		||||
{% block 'content' %}
 | 
			
		||||
<h6>{% trans "reset_password"}</h6>
 | 
			
		||||
<hr class="my-4">
 | 
			
		||||
<div class="row">
 | 
			
		||||
  <div class="col-sm border-right">
 | 
			
		||||
    <form method="post">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue