Commit 28114b1a3ae531de4a427bcd1c07f26993aad962
1 parent
85fd085c
Exists in
master
and in
3 other branches
Criando a tela de configuração do servidor Jitsi
Showing
8 changed files
with
166 additions
and
8 deletions
Show diff stats
amadeus/templates/base.html
... | ... | @@ -176,6 +176,7 @@ |
176 | 176 | <li><a href="{% url 'mailsender:update' %}">{% trans 'Mail Sender' %}</a></li> |
177 | 177 | <li><a href="{% url 'security:update' %}">{% trans 'Security' %}</a></li> |
178 | 178 | <li><a href="{% url 'themes:manage' %}">{% trans 'Theme' %}</a></li> |
179 | + <li><a href="{% url 'webconferences:settings' %}">{% trans 'Conference Settings' %}</a></li> | |
179 | 180 | </ul> |
180 | 181 | </div> |
181 | 182 | </div> | ... | ... |
webconference/forms.py
... | ... | @@ -6,7 +6,7 @@ import datetime |
6 | 6 | |
7 | 7 | from subjects.models import Tag |
8 | 8 | |
9 | -from .models import Webconference | |
9 | +from .models import Webconference, ConferenceSettings | |
10 | 10 | |
11 | 11 | class WebconferenceForm(forms.ModelForm): |
12 | 12 | subject = None |
... | ... | @@ -104,3 +104,19 @@ class WebconferenceForm(forms.ModelForm): |
104 | 104 | self.instance.tags.add(new_tag) |
105 | 105 | |
106 | 106 | return self.instance |
107 | + | |
108 | + | |
109 | + | |
110 | +class SettingsForm(forms.ModelForm): | |
111 | + | |
112 | + class Meta: | |
113 | + model = ConferenceSettings | |
114 | + fields = ['domain'] | |
115 | + | |
116 | + labels = { | |
117 | + 'domain': _('Domain'), | |
118 | + } | |
119 | + | |
120 | + help_texts = { | |
121 | + 'domain': _('The domain of the jitsi server, e.g. meet.jit.si'), | |
122 | + } | ... | ... |
... | ... | @@ -0,0 +1,26 @@ |
1 | +# -*- coding: utf-8 -*- | |
2 | +# Generated by Django 1.10.4 on 2017-03-22 19:31 | |
3 | +from __future__ import unicode_literals | |
4 | + | |
5 | +from django.db import migrations, models | |
6 | + | |
7 | + | |
8 | +class Migration(migrations.Migration): | |
9 | + | |
10 | + dependencies = [ | |
11 | + ('webconference', '0001_initial'), | |
12 | + ] | |
13 | + | |
14 | + operations = [ | |
15 | + migrations.CreateModel( | |
16 | + name='ConferenceSettings', | |
17 | + fields=[ | |
18 | + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | |
19 | + ('domain', models.CharField(max_length=100, verbose_name='Domain')), | |
20 | + ], | |
21 | + options={ | |
22 | + 'verbose_name': 'Conference Setting', | |
23 | + 'verbose_name_plural': 'Conferences Setting', | |
24 | + }, | |
25 | + ), | |
26 | + ] | ... | ... |
webconference/models.py
... | ... | @@ -30,3 +30,13 @@ class Webconference(Resource): |
30 | 30 | |
31 | 31 | def delete_message(self): |
32 | 32 | return _('Are you sure you want delete the web conference') |
33 | + | |
34 | +class ConferenceSettings(models.Model): | |
35 | + domain = models.CharField(_("Domain"), max_length = 100, blank=False, null = False) | |
36 | + | |
37 | + class Meta: | |
38 | + verbose_name = _("Conference Setting") | |
39 | + verbose_name_plural = _("Conferences Setting") | |
40 | + | |
41 | + def __str__(self): | |
42 | + return self.domain | ... | ... |
... | ... | @@ -0,0 +1,51 @@ |
1 | +{% extends 'base.html' %} | |
2 | + | |
3 | +{% load static i18n %} | |
4 | +{% load widget_tweaks %} | |
5 | +{% load django_bootstrap_breadcrumbs %} | |
6 | + | |
7 | +{% block breadcrumbs %} | |
8 | + {{ block.super }} | |
9 | + {% trans 'Settings: Conference' as bread %} | |
10 | + {% breadcrumb bread 'webconferences:settings' %} | |
11 | +{% endblock %} | |
12 | + | |
13 | +{% block content %} | |
14 | + <div class="card"> | |
15 | + <div class="card-content"> | |
16 | + <div class="card-body"> | |
17 | + <form method="post" action="" enctype="multipart/form-data"> | |
18 | + {% csrf_token %} | |
19 | + {% for field in form %} | |
20 | + <div class="form-group{% if form.has_error %} has-error {% endif %}"> | |
21 | + <label for="{{ field.auto_id }}">{{ field.label }} <span>*</span></label> | |
22 | + {% render_field field class='form-control' %} | |
23 | + | |
24 | + <span id="helpBlock" class="help-block">{{ field.help_text }}</span> | |
25 | + | |
26 | + {% if field.errors %} | |
27 | + <div class="alert alert-danger alert-dismissible" role="alert"> | |
28 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
29 | + <span aria-hidden="true">×</span> | |
30 | + </button> | |
31 | + <ul> | |
32 | + {% for error in field.errors %} | |
33 | + <li>{{ error }}</li> | |
34 | + {% endfor %} | |
35 | + </ul> | |
36 | + </div> | |
37 | + {% endif %} | |
38 | + </div> | |
39 | + {% endfor %} | |
40 | + <div class="col-md-12 col-lg-12 col-sm-12 col-xs-12"> | |
41 | + <div class="text-center"> | |
42 | + <input type="submit" value="{% trans 'Save' %}" class="btn btn-raised btn-success" /> | |
43 | + </div> | |
44 | + </div> | |
45 | + </form> | |
46 | + </div> | |
47 | + </div> | |
48 | + </div> | |
49 | + <br clear="all" /> | |
50 | + <br clear="all" /> | |
51 | +{% endblock %} | ... | ... |
webconference/templates/webconference/jitsi.html
... | ... | @@ -27,15 +27,13 @@ |
27 | 27 | |
28 | 28 | <script> |
29 | 29 | // code to start jitsi api |
30 | - var domain = "meet.jit.si"; // domain that jitsi will itself connect | |
30 | + var domain = "{{domain}}"; // domain that jitsi will itself connect | |
31 | 31 | var room = "{{name_room}}"; // name of the room to be created |
32 | 32 | var width = $("body").width(); // width of the window to be created |
33 | 33 | var height = $("body").height(); // height of the window to be created |
34 | 34 | var html = document.getElementById("jitsi"); |
35 | - var configOverwrite = {disableSimulcast: false}; | |
36 | - var interfaceConfigOverwrite = {filmStripOnly: false}; | |
37 | - var jwt = "Amadeus_Token"; | |
38 | - var api = new JitsiMeetExternalAPI(domain, room, width, height,html,configOverwrite, interfaceConfigOverwrite, false, jwt); | |
35 | + var api = new JitsiMeetExternalAPI(domain, room, width, height,html); | |
36 | + // window.onload = initpage; | |
39 | 37 | window.onload = initpage; |
40 | 38 | function initpage(){ |
41 | 39 | api.executeCommand('displayName', '{{user}}'); |
... | ... | @@ -59,6 +57,28 @@ |
59 | 57 | }); |
60 | 58 | }); |
61 | 59 | } |
60 | + // callfunction(); | |
61 | + var callCount = 1; | |
62 | + var repeater = setInterval(function () { | |
63 | + console.log(callCount); | |
64 | + if (callCount < 10) { | |
65 | + | |
66 | + var doc = document.getElementById('jitsiConferenceFrame0').document; | |
67 | + // var iframe = document.getElementById('jitsiConferenceFrame0'); | |
68 | + // var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document; | |
69 | + | |
70 | + // var ls = doc.getElementById('toolbar_button_link'); | |
71 | + console.log(doc); | |
72 | + // $("#jitsiConferenceFrame0").contents().find("#toolbar_button_link").remove(); | |
73 | + // $("a#toolbar_button_link.button.icon-link").remove(); | |
74 | + // console.log($("#toolbar_contact_list").remove()); | |
75 | + // $("#toolbar_button_link").remove(); //utilizandos para retirar o botão de compartilhar do jitsi | |
76 | + callCount += 1; | |
77 | + console.log("aqui"); | |
78 | + } else { | |
79 | + clearInterval(repeater); | |
80 | + } | |
81 | + }, 1000); | |
62 | 82 | |
63 | 83 | // api.executeCommands({displayName: ['Jailson']}); |
64 | 84 | </script> | ... | ... |
webconference/urls.py
... | ... | @@ -12,4 +12,5 @@ urlpatterns = [ |
12 | 12 | url(r'^view/(?P<slug>[\w_-]+)/$', views.InsideView.as_view(), name = 'view'), |
13 | 13 | url(r'^conference/(?P<slug>[\w_-]+)/$',views.Conference.as_view(), name = 'conference'), |
14 | 14 | url(r'^saiu/$',views.saiu, name = 'saiu'), |
15 | + url(r'^settings/$', views.ConferenceSettings.as_view(), name = 'settings'), | |
15 | 16 | ] | ... | ... |
webconference/views.py
... | ... | @@ -15,9 +15,10 @@ from log.mixins import LogMixin |
15 | 15 | from topics.models import Topic |
16 | 16 | |
17 | 17 | from pendencies.forms import PendenciesForm |
18 | +from braces import views as braces_mixins | |
18 | 19 | |
19 | -from .forms import WebconferenceForm | |
20 | -from .models import Webconference | |
20 | +from .forms import WebconferenceForm, SettingsForm | |
21 | +from .models import Webconference, ConferenceSettings as Settings | |
21 | 22 | |
22 | 23 | class NewWindowView(LoginRequiredMixin, |
23 | 24 | # '''LogMixin,''' |
... | ... | @@ -78,6 +79,11 @@ class Conference(LoginRequiredMixin,generic.TemplateView): |
78 | 79 | context = super(Conference, self).get_context_data(**kwargs) |
79 | 80 | context['name_room'] = kwargs.get('slug') |
80 | 81 | context['user_image'] = 'http://localhost:8000'+str(self.request.user.image.url) |
82 | + try: | |
83 | + context['domain'] = Settings.objects.last().domain | |
84 | + except AttributeError: | |
85 | + context['domain'] = 'meet.jit.si' | |
86 | + | |
81 | 87 | return context |
82 | 88 | |
83 | 89 | def saiu(request): |
... | ... | @@ -428,3 +434,30 @@ generic.DeleteView): |
428 | 434 | # super(DeleteView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) |
429 | 435 | |
430 | 436 | return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) |
437 | + | |
438 | +class ConferenceSettings(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequiredMixin, generic.UpdateView): | |
439 | + login_url = reverse_lazy("users:login") | |
440 | + redirect_field_name = 'next' | |
441 | + | |
442 | + template_name = 'webconference/config.html' | |
443 | + model = Settings | |
444 | + form_class = SettingsForm | |
445 | + success_url = reverse_lazy("subjects:home") | |
446 | + | |
447 | + def get_object(self, queryset = None): | |
448 | + return Settings.objects.last() | |
449 | + | |
450 | + def form_valid(self, form): | |
451 | + form.save() | |
452 | + | |
453 | + messages.success(self.request, _("Conference settings updated successfully!")) | |
454 | + | |
455 | + return super(ConferenceSettings, self).form_valid(form) | |
456 | + | |
457 | + def get_context_data(self, **kwargs): | |
458 | + context = super(ConferenceSettings, self).get_context_data(**kwargs) | |
459 | + | |
460 | + context['title'] = _('Conference Settings') | |
461 | + # context['settings_menu_active'] = "settings_menu_active" | |
462 | + | |
463 | + return context | ... | ... |