From 822dd083744f275fce2c3d6041de9ead19691f71 Mon Sep 17 00:00:00 2001 From: Pedro Ferreira Date: Tue, 17 Feb 2015 22:59:22 +0100 Subject: [PATCH] VC/Vidyo: Fixed dummy plugin, added custom service button --- vc_dummy/indico_vc_dummy/plugin.py | 12 ++++++++++++ .../templates/manage_event_create_room.html | 17 +++++++++++++++++ vc_vidyo/indico_vc_vidyo/forms.py | 5 +---- vc_vidyo/indico_vc_vidyo/plugin.py | 4 +++- .../indico_vc_vidyo/static/css/vc_vidyo.scss | 8 ++++++++ .../static/images/vidyo_logo_notext.png | Bin 0 -> 5174 bytes .../templates/create_button.html | 6 ++++++ 7 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 vc_dummy/indico_vc_dummy/templates/manage_event_create_room.html create mode 100644 vc_vidyo/indico_vc_vidyo/static/images/vidyo_logo_notext.png create mode 100644 vc_vidyo/indico_vc_vidyo/templates/create_button.html diff --git a/vc_dummy/indico_vc_dummy/plugin.py b/vc_dummy/indico_vc_dummy/plugin.py index 1b90df9..f6326b5 100644 --- a/vc_dummy/indico_vc_dummy/plugin.py +++ b/vc_dummy/indico_vc_dummy/plugin.py @@ -16,8 +16,19 @@ from __future__ import unicode_literals +from wtforms.fields.core import BooleanField + from indico.core.plugins import IndicoPlugin from indico.modules.vc import VCPluginMixin +from indico.modules.vc.plugins import VCRoomFormBase +from indico.util.i18n import _ +from indico.web.forms.widgets import SwitchWidget + + +class VCRoomForm(VCRoomFormBase): + show_phone_numbers = BooleanField(_('What is your favorite color?'), + widget=SwitchWidget(), + description=_("Yes. It doesn't make any sense.")) class DummyPlugin(VCPluginMixin, IndicoPlugin): @@ -26,6 +37,7 @@ class DummyPlugin(VCPluginMixin, IndicoPlugin): Dummy Video conferencing plugin """ configurable = True + vc_room_form = VCRoomForm @property def logo_url(self): diff --git a/vc_dummy/indico_vc_dummy/templates/manage_event_create_room.html b/vc_dummy/indico_vc_dummy/templates/manage_event_create_room.html new file mode 100644 index 0000000..94e6e39 --- /dev/null +++ b/vc_dummy/indico_vc_dummy/templates/manage_event_create_room.html @@ -0,0 +1,17 @@ +{% extends 'admin/base.html' %} +{% from 'forms/form_widget.html' import form_header, form_footer, form_rows %} + +{% block title %} + Dummy Plugin +{% endblock %} +{% block subtitle %}{{ plugin.title }}{% endblock %} +{%- block content %} + {{ form_header(id='vc-room-form') }} + + {{ form_rows(form) }} + + {% call form_footer() %} + + {% trans %}Cancel{% endtrans %} + {% endcall %} +{%- endblock %} diff --git a/vc_vidyo/indico_vc_vidyo/forms.py b/vc_vidyo/indico_vc_vidyo/forms.py index af7a30d..b78f5d8 100644 --- a/vc_vidyo/indico_vc_vidyo/forms.py +++ b/vc_vidyo/indico_vc_vidyo/forms.py @@ -19,7 +19,7 @@ from __future__ import unicode_literals import re from wtforms.fields.core import BooleanField, SelectField -from wtforms.fields.simple import StringField, TextAreaField +from wtforms.fields.simple import TextAreaField from wtforms.validators import DataRequired, Length, Regexp, Optional, ValidationError from indico.modules.vc.models import VCRoom @@ -30,7 +30,6 @@ from indico.web.forms.fields import PrincipalField, IndicoPasswordField, IndicoR from indico.web.forms.widgets import SwitchWidget, JinjaWidget -ROOM_NAME_RE = re.compile(r'[\w\-]+') PIN_RE = re.compile(r'^\d+$') ERROR_MSG_PIN = _("The PIN must be a number") @@ -43,8 +42,6 @@ class VCRoomForm(VCRoomFormBase): conditional_fields = {'contribution', 'session'} skip_fields = advanced_fields | conditional_fields - name = StringField(_('Name'), [DataRequired(), Length(min=3, max=60), Regexp(ROOM_NAME_RE)], - description=_('The name of the room')) description = TextAreaField(_('Description'), [DataRequired()], description=_('The description of the room')) linking = IndicoRadioField(_("Link to"), [DataRequired()], diff --git a/vc_vidyo/indico_vc_vidyo/plugin.py b/vc_vidyo/indico_vc_vidyo/plugin.py index a74f9ee..d4fe586 100644 --- a/vc_vidyo/indico_vc_vidyo/plugin.py +++ b/vc_vidyo/indico_vc_vidyo/plugin.py @@ -17,17 +17,19 @@ from __future__ import unicode_literals import re +from flask import render_template + from wtforms.fields import IntegerField, TextAreaField from wtforms.fields.html5 import URLField, EmailField from wtforms.fields.simple import StringField from wtforms.validators import NumberRange, DataRequired from indico.core.config import Config -from indico.util.user import retrieve_principals from indico.modules.vc import VCPluginSettingsFormBase, VCPluginMixin from indico.modules.vc.views import WPVCManageEvent from indico.core.plugins import IndicoPlugin, url_for_plugin, IndicoPluginBlueprint from indico.util.i18n import _ +from indico.web.flask.templating import get_overridable_template_name from indico.web.forms.fields import EmailListField, IndicoPasswordField from indico.web.forms.widgets import CKEditorWidget from indico_vc_vidyo.forms import VCRoomForm diff --git a/vc_vidyo/indico_vc_vidyo/static/css/vc_vidyo.scss b/vc_vidyo/indico_vc_vidyo/static/css/vc_vidyo.scss index c838a9b..2271465 100644 --- a/vc_vidyo/indico_vc_vidyo/static/css/vc_vidyo.scss +++ b/vc_vidyo/indico_vc_vidyo/static/css/vc_vidyo.scss @@ -48,3 +48,11 @@ $dropdown-transition: $dropdown-transition-step ease-out; } } } + +.i-button.js-create-room { + line-height: 2em; + img { + vertical-align: middle; + width: 2em; + } +} \ No newline at end of file diff --git a/vc_vidyo/indico_vc_vidyo/static/images/vidyo_logo_notext.png b/vc_vidyo/indico_vc_vidyo/static/images/vidyo_logo_notext.png new file mode 100644 index 0000000000000000000000000000000000000000..dded422ba5615b22a42c3d7ea491ddb9430eaef5 GIT binary patch literal 5174 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 literal 0 HcmV?d00001 diff --git a/vc_vidyo/indico_vc_vidyo/templates/create_button.html b/vc_vidyo/indico_vc_vidyo/templates/create_button.html new file mode 100644 index 0000000..5a7c56e --- /dev/null +++ b/vc_vidyo/indico_vc_vidyo/templates/create_button.html @@ -0,0 +1,6 @@ + + + {%trans%}Add new Vidyo Room{%endtrans%} + \ No newline at end of file