commit dc91b69c0bff0818b6dae3c2af097bc2fdafbe69 Author: gmariano Date: Sat Apr 4 08:11:09 2020 +0200 VC/Zoom: Initial Commit diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..fc6d642 --- /dev/null +++ b/.gitignore @@ -0,0 +1,84 @@ +.vscode/ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +venv/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/build/ +docs/source/generated/ + +# pytest +.pytest_cache/ + +# PyBuilder +target/ + +# Editor files +#mac +.DS_Store +*~ + +#vim +*.swp +*.swo + +#pycharm +.idea/* + + +#Ipython Notebook +.ipynb_checkpoints + + +webpack-build-config.json \ No newline at end of file diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..facfb9e --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,6 @@ +graft indico_vc_zoom/static +graft indico_vc_zoom/migrations +graft indico_vc_zoom/templates +graft indico_vc_zoom/translations + +global-exclude *.pyc __pycache__ .keep diff --git a/README.md b/README.md new file mode 100644 index 0000000..4b220a0 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +Indico Plugin for Zoom based on Vidyo plugin. + +To obtain Api key and api secret, please visit [https://marketplace.zoom.us/docs/guides/auth/jwt](https://marketplace.zoom.us/docs/guides/auth/jwt) + +Not ready for production. + +Developed by Giovanni Mariano @ ENEA Frascati diff --git a/indico_vc_zoom/__init__.py b/indico_vc_zoom/__init__.py new file mode 100644 index 0000000..22dd971 --- /dev/null +++ b/indico_vc_zoom/__init__.py @@ -0,0 +1,12 @@ +from __future__ import unicode_literals + +from indico.core import signals +from indico.util.i18n import make_bound_gettext + + +_ = make_bound_gettext('vc_zoom') + + +@signals.import_tasks.connect +def _import_tasks(sender, **kwargs): + import indico_vc_zoom.task diff --git a/indico_vc_zoom/api/__init__.py b/indico_vc_zoom/api/__init__.py new file mode 100644 index 0000000..bba1dbe --- /dev/null +++ b/indico_vc_zoom/api/__init__.py @@ -0,0 +1,7 @@ + + + +from .client import ZoomIndicoClient, APIException, RoomNotFoundAPIException, ZoomClient + + +__all__ = ['ZoomIndicoClient', 'APIException', 'RoomNotFoundAPIException', 'ZoomClient'] diff --git a/indico_vc_zoom/api/client.py b/indico_vc_zoom/api/client.py new file mode 100644 index 0000000..b9ad131 --- /dev/null +++ b/indico_vc_zoom/api/client.py @@ -0,0 +1,487 @@ +from __future__ import absolute_import, unicode_literals +from requests import Session +from requests.auth import HTTPBasicAuth + +import contextlib +import json +import requests +import time +import jwt + + +class ApiClient(object): + """Simple wrapper for REST API requests""" + + def __init__(self, base_uri=None, timeout=15, **kwargs): + """Setup a new API Client + + :param base_uri: The base URI to the API + :param timeout: The timeout to use for requests + :param kwargs: Any other attributes. These will be added as + attributes to the ApiClient object. + """ + self.base_uri = base_uri + self.timeout = timeout + for k, v in kwargs.items(): + setattr(self, k, v) + + @property + def timeout(self): + """The timeout""" + return self._timeout + + @timeout.setter + def timeout(self, value): + """The default timeout""" + if value is not None: + try: + value = int(value) + except ValueError: + raise ValueError("timeout value must be an integer") + self._timeout = value + + @property + def base_uri(self): + """The base_uri""" + return self._base_uri + + @base_uri.setter + def base_uri(self, value): + """The default base_uri""" + if value and value.endswith("/"): + value = value[:-1] + self._base_uri = value + + def url_for(self, endpoint): + """Get the URL for the given endpoint + + :param endpoint: The endpoint + :return: The full URL for the endpoint + """ + if not endpoint.startswith("/"): + endpoint = "/{}".format(endpoint) + if endpoint.endswith("/"): + endpoint = endpoint[:-1] + return self.base_uri + endpoint + + def get_request(self, endpoint, params=None, headers=None): + """Helper function for GET requests + + :param endpoint: The endpoint + :param params: The URL parameters + :param headers: request headers + :return: The :class:``requests.Response`` object for this request + """ + if headers is None: + headers = {"Content-Type": "application/json", "Authorization": "Bearer {}".format(self.config.get("token"))} + return requests.get( + self.url_for(endpoint), params=params, headers=headers, timeout=self.timeout + ) + + def post_request( + self, endpoint, params=None, data=None, headers=None, cookies=None + ): + """Helper function for POST requests + + :param endpoint: The endpoint + :param params: The URL parameters + :param data: The data (either as a dict or dumped JSON string) to + include with the POST + :param headers: request headers + :param cookies: request cookies + :return: The :class:``requests.Response`` object for this request + """ + if data and not is_str_type(data): + data = json.dumps(data) + if headers is None: + headers = {"Content-Type": "application/json", "Authorization": "Bearer {}".format(self.config.get("token"))} + return requests.post( + self.url_for(endpoint), + params=params, + data=data, + headers=headers, + cookies=cookies, + timeout=self.timeout, + ) + + def patch_request( + self, endpoint, params=None, data=None, headers=None, cookies=None + ): + """Helper function for PATCH requests + + :param endpoint: The endpoint + :param params: The URL parameters + :param data: The data (either as a dict or dumped JSON string) to + include with the PATCH + :param headers: request headers + :param cookies: request cookies + :return: The :class:``requests.Response`` object for this request + """ + if data and not is_str_type(data): + data = json.dumps(data) + if headers is None: + headers = {"Content-Type": "application/json", "Authorization": "Bearer {}".format(self.config.get("token"))} + return requests.patch( + self.url_for(endpoint), + params=params, + data=data, + headers=headers, + cookies=cookies, + timeout=self.timeout, + ) + + def delete_request( + self, endpoint, params=None, data=None, headers=None, cookies=None + ): + """Helper function for DELETE requests + + :param endpoint: The endpoint + :param params: The URL parameters + :param data: The data (either as a dict or dumped JSON string) to + include with the DELETE + :param headers: request headers + :param cookies: request cookies + :return: The :class:``requests.Response`` object for this request + """ + if data and not is_str_type(data): + data = json.dumps(data) + if headers is None: + headers = {"Content-Type": "application/json", "Authorization": "Bearer {}".format(self.config.get("token"))} + return requests.delete( + self.url_for(endpoint), + params=params, + data=data, + headers=headers, + cookies=cookies, + timeout=self.timeout, + ) + + def put_request(self, endpoint, params=None, data=None, headers=None, cookies=None): + """Helper function for PUT requests + + :param endpoint: The endpoint + :param params: The URL paramaters + :param data: The data (either as a dict or dumped JSON string) to + include with the PUT + :param headers: request headers + :param cookies: request cookies + :return: The :class:``requests.Response`` object for this request + """ + if data and not is_str_type(data): + data = json.dumps(data) + if headers is None: + headers = {"Content-Type": "application/json", "Authorization": "Bearer {}".format(self.config.get("token"))} + return requests.put( + self.url_for(endpoint), + params=params, + data=data, + headers=headers, + cookies=cookies, + timeout=self.timeout, + ) + + +@contextlib.contextmanager +def ignored(*exceptions): + """Simple context manager to ignore expected Exceptions + + :param \*exceptions: The exceptions to safely ignore + """ + try: + yield + except exceptions: + pass + + +def is_str_type(val): + """Check whether the input is of a string type. + + We use this method to ensure python 2-3 capatibility. + + :param val: The value to check wither it is a string + :return: In python2 it will return ``True`` if :attr:`val` is either an + instance of str or unicode. In python3 it will return ``True`` if + it is an instance of str + """ + with ignored(NameError): + return isinstance(val, basestring) + return isinstance(val, str) + + +def require_keys(d, keys, allow_none=True): + """Require that the object have the given keys + + :param d: The dict the check + :param keys: The keys to check :attr:`obj` for. This can either be a single + string, or an iterable of strings + + :param allow_none: Whether ``None`` values are allowed + :raises: + :ValueError: If any of the keys are missing from the obj + """ + if is_str_type(keys): + keys = [keys] + for k in keys: + if k not in d: + raise ValueError("'{}' must be set".format(k)) + if not allow_none and d[k] is None: + raise ValueError("'{}' cannot be None".format(k)) + return True + + +def date_to_str_gmt(d): + """Convert date and datetime objects to a string + + Note, this does not do any timezone conversion. + + :param d: The :class:`datetime.date` or :class:`datetime.datetime` to + convert to a string + :returns: The string representation of the date + """ + return d.strftime("%Y-%m-%dT%H:%M:%SZ") + +def date_to_str_local(d): + """Convert date and datetime objects to a string + + Note, this does not do any timezone conversion. + + :param d: The :class:`datetime.date` or :class:`datetime.datetime` to + convert to a string + :returns: The string representation of the date + """ + return d.strftime("%Y-%m-%dT%H:%M:%S") + + +def generate_jwt(key, secret): + header = {"alg": "HS256", "typ": "JWT"} + + payload = {"iss": key, "exp": int(time.time() + 3600)} + + token = jwt.encode(payload, secret, algorithm="HS256", headers=header) + return token.decode("utf-8") + + + + + +class APIException(Exception): + pass + + +class RoomNotFoundAPIException(APIException): + pass + + + + + +class BaseComponent(ApiClient): + """A base component""" + + def __init__(self, base_uri=None, config=None, timeout=15, **kwargs): + """Setup a base component + + :param base_uri: The base URI to the API + :param config: The config details + :param timeout: The timeout to use for requests + :param kwargs: Any other attributes. These will be added as + attributes to the ApiClient object. + """ + super(BaseComponent, self).__init__( + base_uri=base_uri, timeout=timeout, config=config, **kwargs + ) + + def post_request( + self, endpoint, params=None, data=None, headers=None, cookies=None + ): + """Helper function for POST requests + + Since the Zoom.us API only uses POST requests and each post request + must include all of the config data, this method ensures that all + of that data is there + + :param endpoint: The endpoint + :param params: The URL parameters + :param data: The data (either as a dict or dumped JSON string) to + include with the POST + :param headers: request headers + :param cookies: request cookies + :return: The :class:``requests.Response`` object for this request + """ + params = params or {} + if headers is None: + headers = {"Content-Type": "application/json", "Authorization": "Bearer {}".format(self.config.get("token"))} + return super(BaseComponent, self).post_request( + endpoint, params=params, data=data, headers=headers, cookies=cookies + ) + +class MeetingComponent(BaseComponent): + def list(self, **kwargs): + require_keys(kwargs, "user_id") + return self.get_request( + "/users/{}/meetings".format(kwargs.get("user_id")), params=kwargs + ) + + def create(self, **kwargs): + require_keys(kwargs, "user_id") + if kwargs.get("start_time"): + if kwargs.get("timezone"): + kwargs["start_time"] = date_to_str_local(kwargs["start_time"]) + else: + kwargs["start_time"] = date_to_str_gmt(kwargs["start_time"]) + return self.post_request( + "/users/{}/meetings".format(kwargs.get("user_id")), params=kwargs['user_id'], data={x: kwargs[x] for x in kwargs.keys() if x not in ['user_id']} + ) + + def get(self, **kwargs): + require_keys(kwargs, "id") + return self.get_request("/meetings/{}".format(kwargs.get("id")), params=kwargs) + + def update(self, **kwargs): + require_keys(kwargs, "id") + if kwargs.get("start_time"): + if kwargs.get("timezone"): + kwargs["start_time"] = date_to_str_local(kwargs["start_time"]) + else: + kwargs["start_time"] = date_to_str_gmt(kwargs["start_time"]) + return self.patch_request( + "/meetings/{}".format(kwargs.get("id")), params=kwargs + ) + + def delete(self, **kwargs): + require_keys(kwargs, "id") + return self.delete_request( + "/meetings/{}".format(kwargs.get("id")), params=kwargs + ) + + def get_invitation(self, **kwargs): + require_keys(kwargs, "id") + return self.get_request("/meetings/{}/invitation".format(kwargs.get("id")), params=kwargs) + + +class UserComponent(BaseComponent): + def list(self, **kwargs): + return self.get_request("/users", params=kwargs) + + def create(self, **kwargs): + return self.post_request("/users", params=kwargs) + + def update(self, **kwargs): + require_keys(kwargs, "id") + return self.patch_request("/users/{}".format(kwargs.get("id")), params=kwargs) + + def delete(self, **kwargs): + require_keys(kwargs, "id") + return self.delete_request("/users/{}".format(kwargs.get("id")), params=kwargs) + + def get(self, **kwargs): + require_keys(kwargs, "id") + return self.get_request("/users/{}".format(kwargs.get("id")), params=kwargs) + + + +class ZoomClient(ApiClient): + """Zoom.us REST API Python Client""" + + """Base URL for Zoom API""" + + def __init__( + self, api_key, api_secret, data_type="json", timeout=15 + ): + """Create a new Zoom client + + :param api_key: The Zooom.us API key + :param api_secret: The Zoom.us API secret + :param data_type: The expected return data type. Either 'json' or 'xml' + :param timeout: The time out to use for API requests + """ + + BASE_URI = "https://api.zoom.us/v2" + self.components = {"user": UserComponent, + "meeting": MeetingComponent} + + super(ZoomClient, self).__init__(base_uri=BASE_URI, timeout=timeout) + + # Setup the config details + self.config = { + "api_key": api_key, + "api_secret": api_secret, + "data_type": data_type, + "token": generate_jwt(api_key, api_secret), + } + + # Instantiate the components + for key in self.components.keys(): + self.components[key] = self.components[key]( + base_uri=BASE_URI, config=self.config + ) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + return + + def refresh_token(self): + self.config["token"] = ( + generate_jwt(self.config["api_key"], self.config["api_secret"]), + ) + + @property + def api_key(self): + """The Zoom.us api_key""" + return self.config.get("api_key") + + @api_key.setter + def api_key(self, value): + """Set the api_key""" + self.config["api_key"] = value + self.refresh_token() + + @property + def api_secret(self): + """The Zoom.us api_secret""" + return self.config.get("api_secret") + + @api_secret.setter + def api_secret(self, value): + """Set the api_secret""" + self.config["api_secret"] = value + self.refresh_token() + + @property + def meeting(self): + """Get the meeting component""" + return self.components.get("meeting") + + @property + def user(self): + """Get the user component""" + return self.components.get("user") + + + +class ZoomIndicoClient(object): + def __init__(self, settings): + api_key=settings.get('api_key') + api_secret=settings.get('api_secret') + self.client=ZoomClient(api_key, api_secret) + + def create_meeting(self, **kwargs): + return json.loads(self.client.meeting.create(**kwargs).content) + + + def get_meeting(self, zoom_id): + return json.loads(self.client.meeting.get(id=zoom_id).content) + + + def get_meeting_invitation(self, zoom_id): + return json.loads(self.client.meeting.get_invitation(id=zoom_id).content) + + def delete_meeting(self, zoom_id): + self.client.meeting.delete(id=zoom_id) + + def check_user_meeting_time(self, userID, start_dt, end_dt): + pass + + diff --git a/indico_vc_zoom/blueprint.py b/indico_vc_zoom/blueprint.py new file mode 100644 index 0000000..e29b2d6 --- /dev/null +++ b/indico_vc_zoom/blueprint.py @@ -0,0 +1,16 @@ + + +from __future__ import unicode_literals + +from indico.core.plugins import IndicoPluginBlueprint + +from indico_vc_zoom.controllers import RHZoomRoomOwner + + +blueprint = IndicoPluginBlueprint('vc_zoom', 'indico_vc_zoom') + +# Room management +# using any(zoom) instead of defaults since the event vc room locator +# includes the service and normalization skips values provided in 'defaults' +blueprint.add_url_rule('/event//manage/videoconference///room-owner', + 'set_room_owner', RHZoomRoomOwner, methods=('POST',)) diff --git a/indico_vc_zoom/cli.py b/indico_vc_zoom/cli.py new file mode 100644 index 0000000..c5f57c2 --- /dev/null +++ b/indico_vc_zoom/cli.py @@ -0,0 +1,35 @@ + + +from __future__ import unicode_literals + +import click +from terminaltables import AsciiTable + +from indico.cli.core import cli_group +from indico.modules.vc.models.vc_rooms import VCRoom, VCRoomStatus + + +@cli_group(name='zoom') +def cli(): + """Manage the Zoom plugin.""" + + +@cli.command() +@click.option('--status', type=click.Choice(['deleted', 'created'])) +def rooms(status=None): + """Lists all Zoom rooms""" + + room_query = VCRoom.find(type='zoom') + table_data = [['ID', 'Name', 'Status', 'Zoom ID', 'Meeting']] + + if status: + room_query = room_query.filter(VCRoom.status == VCRoomStatus.get(status)) + + for room in room_query: + table_data.append([unicode(room.id), room.name, room.status.name, + unicode(room.data['zoom_id']), unicode(room.zoom_meeting.meeting)]) + + table = AsciiTable(table_data) + for col in (0, 3, 4): + table.justify_columns[col] = 'right' + print table.table diff --git a/indico_vc_zoom/client/index.js b/indico_vc_zoom/client/index.js new file mode 100644 index 0000000..361049b --- /dev/null +++ b/indico_vc_zoom/client/index.js @@ -0,0 +1,34 @@ +// This file is part of the Indico plugins. +// Copyright (C) 2002 - 2019 CERN +// +// The Indico plugins are free software; you can redistribute +// them and/or modify them under the terms of the MIT License; +// see the LICENSE file for more details. + +$(function() { + $('.vc-toolbar').dropdown({ + positioning: { + level1: {my: 'right top', at: 'right bottom', offset: '0px 0px'}, + }, + }); + + $('.vc-toolbar .action-make-owner').click(function() { + const $this = $(this); + + $.ajax({ + url: $this.data('href'), + method: 'POST', + complete: IndicoUI.Dialogs.Util.progress(), + }) + .done(function(result) { + if (handleAjaxError(result)) { + return; + } else { + location.reload(); + } + }) + .fail(function(error) { + handleAjaxError(error); + }); + }); +}); diff --git a/indico_vc_zoom/controllers.py b/indico_vc_zoom/controllers.py new file mode 100644 index 0000000..5b46443 --- /dev/null +++ b/indico_vc_zoom/controllers.py @@ -0,0 +1,26 @@ + + +from __future__ import unicode_literals + +from flask import flash, jsonify, session + +from indico.core.db import db +from indico.modules.vc.controllers import RHVCSystemEventBase +from indico.modules.vc.exceptions import VCRoomError +from indico.util.i18n import _ + + +class RHZoomRoomOwner(RHVCSystemEventBase): + def _process(self): + result = {} + self.vc_room.zoom_meeting.owned_by_user = session.user + try: + self.plugin.update_room(self.vc_room, self.event) + except VCRoomError as err: + result['error'] = {'message': err.message} + result['success'] = False + db.session.rollback() + else: + flash(_("You are now the owner of the room '{room.name}'".format(room=self.vc_room)), 'success') + result['success'] = True + return jsonify(result) diff --git a/indico_vc_zoom/forms.py b/indico_vc_zoom/forms.py new file mode 100644 index 0000000..0b6e195 --- /dev/null +++ b/indico_vc_zoom/forms.py @@ -0,0 +1,67 @@ + + +from __future__ import unicode_literals +from flask import session + +from wtforms.fields.core import BooleanField +from wtforms.fields.simple import TextAreaField, HiddenField +from wtforms.validators import DataRequired, Length, Optional, Regexp, ValidationError + +from indico.modules.vc.forms import VCRoomAttachFormBase, VCRoomFormBase +from indico.web.forms.base import generated_data +from indico.web.forms.fields import IndicoPasswordField, PrincipalField +from indico.web.forms.widgets import SwitchWidget + +from indico_vc_zoom import _ +from indico_vc_zoom.util import iter_user_identities, retrieve_principal + + +PIN_VALIDATORS = [Optional(), Length(min=3, max=10), Regexp(r'^\d+$', message=_("The PIN must be a number"))] + + +class ZoomAdvancedFormMixin(object): + # Advanced options (per event) + + show_autojoin = BooleanField(_('Show Auto-join URL'), + widget=SwitchWidget(), + description=_("Show the auto-join URL on the event page")) + show_phone_numbers = BooleanField(_('Show Phone Access numbers'), + widget=SwitchWidget(), + description=_("Show a link to the list of phone access numbers")) + + +class VCRoomAttachForm(VCRoomAttachFormBase, ZoomAdvancedFormMixin): + pass + + +class VCRoomForm(VCRoomFormBase, ZoomAdvancedFormMixin): + """Contains all information concerning a Zoom booking""" + + advanced_fields = {'show_autojoin', 'show_phone_numbers'} | VCRoomFormBase.advanced_fields + skip_fields = advanced_fields | VCRoomFormBase.conditional_fields + + description = TextAreaField(_('Description'), [DataRequired()], description=_('The description of the room')) + #owner_user = PrincipalField(_('Owner'), [DataRequired()], description=_('The owner of the room')) + #owner_user = HiddenField(default=session.user) + #moderation_pin = IndicoPasswordField(_('Moderation PIN'), PIN_VALIDATORS, toggle=True, + # description=_('Used to moderate the VC Room. Only digits allowed.')) + #room_pin = IndicoPasswordField(_('Room PIN'), PIN_VALIDATORS, toggle=True, + # description=_('Used to protect the access to the VC Room (leave blank for open ' + # 'access). Only digits allowed.')) + + + def __init__(self, *args, **kwargs): + defaults = kwargs['obj'] + if defaults.owner_user is None and defaults.owner is not None: + defaults.owner_user = retrieve_principal(defaults.owner) + super(VCRoomForm, self).__init__(*args, **kwargs) + + #@generated_data + #def owner(self): + # return self.owner_user.data.default + + def validate_owner_user(self, field): + if not field.data: + raise ValidationError(_("Unable to find this user in Indico.")) + #if not next(iter_user_identities(field.data), None): + # raise ValidationError(_("This user does not have a suitable account to use Zoom.")) diff --git a/indico_vc_zoom/http_api.py b/indico_vc_zoom/http_api.py new file mode 100644 index 0000000..7c53d69 --- /dev/null +++ b/indico_vc_zoom/http_api.py @@ -0,0 +1,51 @@ + + +from flask import request + +from indico.modules.vc.models.vc_rooms import VCRoom, VCRoomStatus +from indico.web.http_api.hooks.base import HTTPAPIHook + + +class DeleteVCRoomAPI(HTTPAPIHook): + PREFIX = 'api' + TYPES = ('deletevcroom',) + RE = r'zoom' + GUEST_ALLOWED = False + VALID_FORMATS = ('json',) + COMMIT = True + HTTP_POST = True + + def _has_access(self, user): + from indico_vc_zoom.plugin import ZoomPlugin + return user in ZoomPlugin.settings.acls.get('managers') + + def _getParams(self): + super(DeleteVCRoomAPI, self)._getParams() + self._room_ids = map(int, request.form.getlist('rid')) + + def api_deletevcroom(self, user): + from indico_vc_zoom.plugin import ZoomPlugin + from indico_vc_zoom.api import APIException + + success = [] + failed = [] + not_in_db = [] + + for rid in self._room_ids: + room = VCRoom.query.filter(VCRoom.type == 'zoom', + VCRoom.status == VCRoomStatus.created, + VCRoom.data.contains({'zoom_id': str(rid)})).first() + if not room: + not_in_db.append(rid) + continue + try: + room.plugin.delete_meeting(room, None) + except APIException: + failed.append(rid) + ZoomPlugin.logger.exception('Could not delete VC room %s', room) + else: + room.status = VCRoomStatus.deleted + success.append(rid) + ZoomPlugin.logger.info('%s deleted', room) + + return {'success': success, 'failed': failed, 'missing': not_in_db} diff --git a/indico_vc_zoom/migrations/20200312_1030_b79318836818_crea_tabella.py b/indico_vc_zoom/migrations/20200312_1030_b79318836818_crea_tabella.py new file mode 100644 index 0000000..c865a47 --- /dev/null +++ b/indico_vc_zoom/migrations/20200312_1030_b79318836818_crea_tabella.py @@ -0,0 +1,52 @@ +"""crea tabella + +Revision ID: b79318836818 +Revises: +Create Date: 2020-03-12 10:30:09.256157 +""" + +import sqlalchemy as sa +from alembic import op + +from sqlalchemy.sql.ddl import CreateSchema, DropSchema + + +# revision identifiers, used by Alembic. +revision = 'b79318836818' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + op.execute(CreateSchema('plugin_vc_zoom')) + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('zoom_extensions', + sa.Column('vc_room_id', sa.Integer(), nullable=False), + sa.Column('url_zoom', sa.Text(), nullable=False), + sa.ForeignKeyConstraint(['vc_room_id'], [u'events.vc_rooms.id'], name=op.f('fk_zoom_extensions_vc_room_id_vc_rooms')), + sa.PrimaryKeyConstraint('vc_room_id', name=op.f('pk_zoom_extensions')), + schema='plugin_vc_zoom' + ) + op.create_index(op.f('ix_zoom_extensions_url_zoom'), 'zoom_extensions', ['url_zoom'], unique=False, schema='plugin_vc_zoom') + op.create_table('zoom_licenses', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('license_id', sa.Text(), nullable=False), + sa.Column('license_name', sa.Text(), nullable=False), + sa.PrimaryKeyConstraint('id', name=op.f('pk_zoom_licenses')), + schema='plugin_vc_zoom' + ) + op.create_index(op.f('ix_uq_zoom_licenses_license_id'), 'zoom_licenses', ['license_id'], unique=True, schema='plugin_vc_zoom') + op.create_index(op.f('ix_zoom_licenses_license_name'), 'zoom_licenses', ['license_name'], unique=False, schema='plugin_vc_zoom') + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index(op.f('ix_zoom_licenses_license_name'), table_name='zoom_licenses', schema='plugin_vc_zoom') + op.drop_index(op.f('ix_uq_zoom_licenses_license_id'), table_name='zoom_licenses', schema='plugin_vc_zoom') + op.drop_table('zoom_licenses', schema='plugin_vc_zoom') + op.drop_index(op.f('ix_zoom_extensions_url_zoom'), table_name='zoom_extensions', schema='plugin_vc_zoom') + op.drop_table('zoom_extensions', schema='plugin_vc_zoom') + # ### end Alembic commands ### + op.execute(DropSchema('plugin_vc_zoom')) diff --git a/indico_vc_zoom/migrations/20200403_1957_d86e85a383c1_create_table.py b/indico_vc_zoom/migrations/20200403_1957_d86e85a383c1_create_table.py new file mode 100644 index 0000000..399511d --- /dev/null +++ b/indico_vc_zoom/migrations/20200403_1957_d86e85a383c1_create_table.py @@ -0,0 +1,66 @@ +"""create table + +Revision ID: d86e85a383c1 +Revises: b79318836818 +Create Date: 2020-04-03 19:57:35.771416 +""" + +import sqlalchemy as sa +from alembic import op + + + +# revision identifiers, used by Alembic. +revision = 'd86e85a383c1' +down_revision = 'b79318836818' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('zoom_meetings', + sa.Column('vc_room_id', sa.Integer(), nullable=False), + sa.Column('meeting', sa.BigInteger(), nullable=True), + sa.Column('url_zoom', sa.Text(), nullable=False), + sa.Column('owned_by_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['owned_by_id'], [u'users.users.id'], name=op.f('fk_zoom_meetings_owned_by_id_users')), + sa.ForeignKeyConstraint(['vc_room_id'], [u'events.vc_rooms.id'], name=op.f('fk_zoom_meetings_vc_room_id_vc_rooms')), + sa.PrimaryKeyConstraint('vc_room_id', name=op.f('pk_zoom_meetings')), + schema='plugin_vc_zoom' + ) + op.create_index(op.f('ix_zoom_meetings_meeting'), 'zoom_meetings', ['meeting'], unique=False, schema='plugin_vc_zoom') + op.create_index(op.f('ix_zoom_meetings_owned_by_id'), 'zoom_meetings', ['owned_by_id'], unique=False, schema='plugin_vc_zoom') + op.create_index(op.f('ix_zoom_meetings_url_zoom'), 'zoom_meetings', ['url_zoom'], unique=False, schema='plugin_vc_zoom') + op.drop_index('ix_zoom_extensions_url_zoom', table_name='zoom_extensions', schema='plugin_vc_zoom') + op.drop_table('zoom_extensions', schema='plugin_vc_zoom') + op.drop_index('ix_uq_zoom_licenses_license_id', table_name='zoom_licenses', schema='plugin_vc_zoom') + op.drop_index('ix_zoom_licenses_license_name', table_name='zoom_licenses', schema='plugin_vc_zoom') + op.drop_table('zoom_licenses', schema='plugin_vc_zoom') + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('zoom_licenses', + sa.Column('id', sa.INTEGER(), server_default=sa.text(u"nextval('plugin_vc_zoom.zoom_licenses_id_seq'::regclass)"), autoincrement=True, nullable=False), + sa.Column('license_id', sa.TEXT(), autoincrement=False, nullable=False), + sa.Column('license_name', sa.TEXT(), autoincrement=False, nullable=False), + sa.PrimaryKeyConstraint('id', name=u'pk_zoom_licenses'), + schema='plugin_vc_zoom' + ) + op.create_index('ix_zoom_licenses_license_name', 'zoom_licenses', ['license_name'], unique=False, schema='plugin_vc_zoom') + op.create_index('ix_uq_zoom_licenses_license_id', 'zoom_licenses', ['license_id'], unique=True, schema='plugin_vc_zoom') + op.create_table('zoom_extensions', + sa.Column('vc_room_id', sa.INTEGER(), autoincrement=False, nullable=False), + sa.Column('url_zoom', sa.TEXT(), autoincrement=False, nullable=False), + sa.ForeignKeyConstraint(['vc_room_id'], [u'events.vc_rooms.id'], name=u'fk_zoom_extensions_vc_room_id_vc_rooms'), + sa.PrimaryKeyConstraint('vc_room_id', name=u'pk_zoom_extensions'), + schema='plugin_vc_zoom' + ) + op.create_index('ix_zoom_extensions_url_zoom', 'zoom_extensions', ['url_zoom'], unique=False, schema='plugin_vc_zoom') + op.drop_index(op.f('ix_zoom_meetings_url_zoom'), table_name='zoom_meetings', schema='plugin_vc_zoom') + op.drop_index(op.f('ix_zoom_meetings_owned_by_id'), table_name='zoom_meetings', schema='plugin_vc_zoom') + op.drop_index(op.f('ix_zoom_meetings_meeting'), table_name='zoom_meetings', schema='plugin_vc_zoom') + op.drop_table('zoom_meetings', schema='plugin_vc_zoom') + # ### end Alembic commands ### diff --git a/indico_vc_zoom/migrations/20200405_1539_d54585a383v1_create_table.py b/indico_vc_zoom/migrations/20200405_1539_d54585a383v1_create_table.py new file mode 100644 index 0000000..15afd8f --- /dev/null +++ b/indico_vc_zoom/migrations/20200405_1539_d54585a383v1_create_table.py @@ -0,0 +1,46 @@ +"""create table + +Revision ID: d54585a383v1 +Revises: b79318836818 +Create Date: 2020-04-05 15:39:35.771416 +""" + +import sqlalchemy as sa +from alembic import op + +from sqlalchemy.sql.ddl import CreateSchema, DropSchema + +# revision identifiers, used by Alembic. +revision = 'd54585a383v1' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.execute(CreateSchema('plugin_vc_zoom')) + op.create_table('zoom_meetings', + sa.Column('vc_room_id', sa.Integer(), nullable=False), + sa.Column('meeting', sa.BigInteger(), nullable=True), + sa.Column('url_zoom', sa.Text(), nullable=False), + sa.Column('owned_by_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['owned_by_id'], [u'users.users.id'], name=op.f('fk_zoom_meetings_owned_by_id_users')), + sa.ForeignKeyConstraint(['vc_room_id'], [u'events.vc_rooms.id'], name=op.f('fk_zoom_meetings_vc_room_id_vc_rooms')), + sa.PrimaryKeyConstraint('vc_room_id', name=op.f('pk_zoom_meetings')), + schema='plugin_vc_zoom' + ) + op.create_index(op.f('ix_zoom_meetings_meeting'), 'zoom_meetings', ['meeting'], unique=False, schema='plugin_vc_zoom') + op.create_index(op.f('ix_zoom_meetings_owned_by_id'), 'zoom_meetings', ['owned_by_id'], unique=False, schema='plugin_vc_zoom') + op.create_index(op.f('ix_zoom_meetings_url_zoom'), 'zoom_meetings', ['url_zoom'], unique=False, schema='plugin_vc_zoom') + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index(op.f('ix_zoom_meetings_url_zoom'), table_name='zoom_meetings', schema='plugin_vc_zoom') + op.drop_index(op.f('ix_zoom_meetings_owned_by_id'), table_name='zoom_meetings', schema='plugin_vc_zoom') + op.drop_index(op.f('ix_zoom_meetings_meeting'), table_name='zoom_meetings', schema='plugin_vc_zoom') + op.drop_table('zoom_meetings', schema='plugin_vc_zoom') + op.execute(DropSchema('plugin_vc_zoom')) + # ### end Alembic commands ### diff --git a/indico_vc_zoom/models/__init__.py b/indico_vc_zoom/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/indico_vc_zoom/models/zoom_meetings.py b/indico_vc_zoom/models/zoom_meetings.py new file mode 100644 index 0000000..040d0e0 --- /dev/null +++ b/indico_vc_zoom/models/zoom_meetings.py @@ -0,0 +1,75 @@ + + +from __future__ import unicode_literals + +import urllib + +from sqlalchemy.event import listens_for +from sqlalchemy.orm.attributes import flag_modified + +from indico.core.db.sqlalchemy import db +from indico.util.string import return_ascii + + +class ZoomMeeting(db.Model): + __tablename__ = 'zoom_meetings' + __table_args__ = {'schema': 'plugin_vc_zoom'} + + #: ID of the videoconference room + vc_room_id = db.Column( + db.Integer, + db.ForeignKey('events.vc_rooms.id'), + primary_key=True + ) + meeting = db.Column( + db.BigInteger, + index=True + ) + url_zoom = db.Column( + db.Text, + index=True, + nullable=False + ) + owned_by_id = db.Column( + db.Integer, + db.ForeignKey('users.users.id'), + index=True, + nullable=False + ) + vc_room = db.relationship( + 'VCRoom', + lazy=False, + backref=db.backref( + 'zoom_meeting', + cascade='all, delete-orphan', + uselist=False, + lazy=False + ) + ) + + #: The user who owns the Zoom room + owned_by_user = db.relationship( + 'User', + lazy=True, + backref=db.backref( + 'vc_rooms_zoom', + lazy='dynamic' + ) + ) + + @property + def join_url(self): + from indico_vc_zoom.plugin import ZoomPlugin + url = self.vc_room.data['url'] + return url + + @return_ascii + def __repr__(self): + return ''.format(self.vc_room, self.meeting, self.owned_by_user) + + +@listens_for(ZoomMeeting.owned_by_user, 'set') +def _owned_by_user_set(target, user, *unused): + if target.vc_room and user.as_principal != tuple(target.vc_room.data['owner']): + target.vc_room.data['owner'] = user.as_principal + flag_modified(target.vc_room, 'data') diff --git a/indico_vc_zoom/plugin.py b/indico_vc_zoom/plugin.py new file mode 100644 index 0000000..0b30f4e --- /dev/null +++ b/indico_vc_zoom/plugin.py @@ -0,0 +1,260 @@ + + +from __future__ import unicode_literals + +from flask import session +from flask_pluginengine import current_plugin +from sqlalchemy.orm.attributes import flag_modified +from wtforms.fields.core import BooleanField +from wtforms.fields import IntegerField, TextAreaField +from wtforms.fields.html5 import EmailField, URLField +from wtforms.fields.simple import StringField, BooleanField + +from indico.web.forms.widgets import SwitchWidget + +from indico.web.flask.templating import get_template_module +from wtforms.validators import DataRequired, NumberRange +from indico.core.notifications import make_email, send_email +from indico.core.plugins import get_plugin_template_module +from indico.core import signals +from indico.core.auth import multipass +from indico.core.config import config +from indico.core.plugins import IndicoPlugin, url_for_plugin +from indico.modules.events.views import WPSimpleEventDisplay +from indico.modules.vc import VCPluginMixin, VCPluginSettingsFormBase +from indico.modules.vc.exceptions import VCRoomError, VCRoomNotFoundError +from indico.modules.vc.views import WPVCEventPage, WPVCManageEvent +from indico.web.forms.fields import IndicoPasswordField +from indico.web.forms.widgets import CKEditorWidget +from indico.web.http_api.hooks.base import HTTPAPIHook +from indico.modules.vc.notifications import _send + +from indico_vc_zoom import _ +from indico_vc_zoom.api import ZoomIndicoClient, APIException, RoomNotFoundAPIException +from indico_vc_zoom.blueprint import blueprint +from indico_vc_zoom.cli import cli +from indico_vc_zoom.forms import VCRoomAttachForm, VCRoomForm +from indico_vc_zoom.http_api import DeleteVCRoomAPI +from indico_vc_zoom.models.zoom_meetings import ZoomMeeting +from indico_vc_zoom.util import iter_extensions, iter_user_identities, retrieve_principal, update_room_from_obj + + +class PluginSettingsForm(VCPluginSettingsFormBase): + support_email = EmailField(_('Zoom email support')) + + api_key = StringField(_('API KEY'), [DataRequired()]) + + api_secret = StringField(_('API SECRET'), [DataRequired()]) + + auto_mute = BooleanField(_('Auto mute'), + widget=SwitchWidget(_('On'), _('Off')), + description=_('The Zoom clients will join the VC room muted by default ')) + + host_video = BooleanField(_('Host Video'), + widget=SwitchWidget(_('On'), _('Off')), + description=_('Start video when the host joins the meeting.')) + + participant_video = BooleanField(_('Participant Video'), + widget=SwitchWidget(_('On'), _('Off')), + description=_('Start video when participants join the meeting. ')) + + join_before_host = BooleanField(_('Join Before Host'), + widget=SwitchWidget(_('On'), _('Off')), + description=_('Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.')) + + #indico_room_prefix = IntegerField(_('Indico tenant prefix'), [NumberRange(min=0)], + # description=_('The tenant prefix for Indico rooms created on this server')) + #room_group_name = StringField(_("Public rooms' group name"), [DataRequired()], + # description=_('Group name for public videoconference rooms created by Indico')) + num_days_old = IntegerField(_('VC room age threshold'), [NumberRange(min=1), DataRequired()], + description=_('Number of days after an Indico event when a videoconference room is ' + 'considered old')) + max_rooms_warning = IntegerField(_('Max. num. VC rooms before warning'), [NumberRange(min=1), DataRequired()], + description=_('Maximum number of rooms until a warning is sent to the managers')) + zoom_phone_link = URLField(_('ZoomVoice phone number'), + description=_('Link to the list of ZoomVoice phone numbers')) + + creation_email_footer = TextAreaField(_('Creation email footer'), widget=CKEditorWidget(), + description=_('Footer to append to emails sent upon creation of a VC room')) + + +class ZoomPlugin(VCPluginMixin, IndicoPlugin): + """Zoom + + Videoconferencing with Zoom + """ + configurable = True + settings_form = PluginSettingsForm + vc_room_form = VCRoomForm + vc_room_attach_form = VCRoomAttachForm + friendly_name = 'Zoom' + + def init(self): + super(ZoomPlugin, self).init() + self.connect(signals.plugin.cli, self._extend_indico_cli) + self.inject_bundle('main.js', WPSimpleEventDisplay) + self.inject_bundle('main.js', WPVCEventPage) + self.inject_bundle('main.js', WPVCManageEvent) + HTTPAPIHook.register(DeleteVCRoomAPI) + + @property + def default_settings(self): + return dict(VCPluginMixin.default_settings, **{ + 'support_email': config.SUPPORT_EMAIL, + 'api_key': '', + 'api_secret': '', + #'indico_room_prefix': 10, + 'auto_mute':True, + 'host_video':False, + 'participant_video':True, + 'join_before_host':True, + #'room_group_name': 'Indico', + # we skip identity providers in the default list if they don't support get_identity. + # these providers (local accounts, oauth) are unlikely be the correct ones to integrate + # with the zoom infrastructure. + 'num_days_old': 5, + 'max_rooms_warning': 5000, + 'zoom_phone_link': None, + 'creation_email_footer': None + }) + + @property + def logo_url(self): + return url_for_plugin(self.name + '.static', filename='images/zoom_logo.png') + + @property + def icon_url(self): + return url_for_plugin(self.name + '.static', filename='images/zoom_logo.png') + + def _extend_indico_cli(self, sender, **kwargs): + return cli + + def update_data_association(self, event, vc_room, event_vc_room, data): + super(ZoomPlugin, self).update_data_association(event, vc_room, event_vc_room, data) + + event_vc_room.data.update({key: data.pop(key) for key in [ + 'show_autojoin', + 'show_phone_numbers' + ]}) + + flag_modified(event_vc_room, 'data') + + def update_data_vc_room(self, vc_room, data): + super(ZoomPlugin, self).update_data_vc_room(vc_room, data) + + for key in ['description', 'owner', 'auto_mute', 'host_video', 'participant_video', 'join_before_host']: + if key in data: + vc_room.data[key] = data.pop(key) + + flag_modified(vc_room, 'data') + + def create_room(self, vc_room, event): + """Create a new Zoom room for an event, given a VC room. + + In order to create the Zoom room, the function will try to do so with + all the available identities of the user based on the authenticators + defined in Zoom plugin's settings, in that order. + + :param vc_room: VCRoom -- The VC room from which to create the Zoom + room + :param event: Event -- The event to the Zoom room will be attached + """ + client = ZoomIndicoClient(self.settings) + #owner = retrieve_principal(vc_room.data['owner']) + owner= session.user + user_id=owner.email + topic=vc_room.name + time_zone=event.timezone + start=event.start_dt_local + end=event.end_dt + topic=vc_room.data['description'] + type_meeting=2 + host_video=self.settings.get('host_video') + participant_video=self.settings.get('participant_video') + join_before_host=self.settings.get('join_before_host') + mute_upon_entry=self.settings.get('auto_mute') + + + meeting_obj = client.create_meeting(user_id=user_id, + type=type_meeting, + start_time=start, + topic=topic, + timezone=time_zone, + host_video=host_video, + participant_video=participant_video, + join_before_host=join_before_host, + mute_upon_entry=mute_upon_entry) + + if not meeting_obj: + raise VCRoomNotFoundError(_("Could not find newly created room in Zoom")) + vc_room.data.update({ + 'zoom_id': unicode(meeting_obj['id']), + 'url': meeting_obj['join_url'], + 'start_url':meeting_obj['start_url'] + }) + + flag_modified(vc_room, 'data') + vc_room.zoom_meeting = ZoomMeeting(vc_room_id=vc_room.id, meeting=meeting_obj['id'], + owned_by_user=owner, url_zoom=meeting_obj['join_url']) + self.notify_owner_start_url(vc_room) + + + def update_room(self, vc_room, event): + pass + + def refresh_room(self, vc_room, event): + pass + + def delete_room(self, vc_room, event): + client = ZoomIndicoClient(self.settings) + zoom_id = vc_room.data['zoom_id'] + client.delete_meeting(zoom_id) + + + def get_meeting(self, vc_room): + client = ZoomIndicoClient(self.settings) + return client.get_meeting(vc_room.data['zoom_id']) + + def get_blueprints(self): + return blueprint + + def get_vc_room_form_defaults(self, event): + defaults = super(ZoomPlugin, self).get_vc_room_form_defaults(event) + defaults.update({ + 'show_autojoin': True, + 'show_phone_numbers': True, + 'owner_user': session.user + }) + + return defaults + + def get_vc_room_attach_form_defaults(self, event): + defaults = super(ZoomPlugin, self).get_vc_room_attach_form_defaults(event) + defaults.update({ + 'show_autojoin': True, + 'show_phone_numbers': True + }) + return defaults + + def can_manage_vc_room(self, user, room): + return user == room.zoom_meeting.owned_by_user or super(ZoomPlugin, self).can_manage_vc_room(user, room) + + def _merge_users(self, target, source, **kwargs): + super(ZoomPlugin, self)._merge_users(target, source, **kwargs) + for ext in ZoomMeeting.find(owned_by_user=source): + ext.owned_by_user = target + flag_modified(ext.vc_room, 'data') + + def get_notification_cc_list(self, action, vc_room, event): + return {vc_room.zoom_meeting.owned_by_user.email} + + + def notify_owner_start_url(self, vc_room): + user = vc_room.zoom_meeting.owned_by_user + to_list = {user.email} + + template_module = get_template_module('vc_zoom:emails/notify_start_url.html', plugin=ZoomPlugin.instance, vc_room=vc_room, event=None, + vc_room_event=None, user=user) + + email = make_email(to_list, template=template_module, html=True) + send_email(email, None, 'Zoom') diff --git a/indico_vc_zoom/static/images/zoom_logo.png b/indico_vc_zoom/static/images/zoom_logo.png new file mode 100644 index 0000000..c8347b4 Binary files /dev/null and b/indico_vc_zoom/static/images/zoom_logo.png differ diff --git a/indico_vc_zoom/task.py b/indico_vc_zoom/task.py new file mode 100644 index 0000000..402099a --- /dev/null +++ b/indico_vc_zoom/task.py @@ -0,0 +1,70 @@ + + +from __future__ import unicode_literals + +from datetime import timedelta + +from celery.schedules import crontab + +from indico.core.celery import celery +from indico.core.db import db +from indico.core.plugins import get_plugin_template_module +from indico.modules.events import Event +from indico.modules.vc.models.vc_rooms import VCRoom, VCRoomEventAssociation, VCRoomStatus +from indico.modules.vc.notifications import _send +from indico.util.date_time import now_utc +from indico.util.struct.iterables import committing_iterator + +from indico_vc_zoom.api import APIException, RoomNotFoundAPIException + + +def find_old_zoom_rooms(max_room_event_age): + """Finds all Zoom rooms that are: + - linked to no events + - linked only to events whose start date precedes today - max_room_event_age days + """ + recently_used = (db.session.query(VCRoom.id) + .filter(VCRoom.type == 'zoom', + Event.end_dt > (now_utc() - timedelta(days=max_room_event_age))) + .join(VCRoom.events) + .join(VCRoomEventAssociation.event) + .group_by(VCRoom.id)) + + # non-deleted rooms with no recent associations + return VCRoom.find_all(VCRoom.status != VCRoomStatus.deleted, ~VCRoom.id.in_(recently_used)) + + +def notify_owner(plugin, vc_room): + """Notifies about the deletion of a Zoom room from the Zoom server.""" + user = vc_room.zoom_meeting.owned_by_user + tpl = get_plugin_template_module('emails/remote_deleted.html', plugin=plugin, vc_room=vc_room, event=None, + vc_room_event=None, user=user) + _send('delete', user, plugin, None, vc_room, tpl) + + +@celery.periodic_task(run_every=crontab(minute='0', hour='3', day_of_week='monday'), plugin='vc_zoom') +def zoom_cleanup(dry_run=False): + from indico_vc_zoom.plugin import ZoomPlugin + max_room_event_age = ZoomPlugin.settings.get('num_days_old') + + ZoomPlugin.logger.info('Deleting Zoom rooms that are not used or linked to events all older than %d days', + max_room_event_age) + candidate_rooms = find_old_zoom_rooms(max_room_event_age) + ZoomPlugin.logger.info('%d rooms found', len(candidate_rooms)) + + if dry_run: + for vc_room in candidate_rooms: + ZoomPlugin.logger.info('Would delete Zoom room %s from server', vc_room) + return + + for vc_room in committing_iterator(candidate_rooms, n=20): + try: + ZoomPlugin.instance.delete_room(vc_room, None) + ZoomPlugin.logger.info('Room %s deleted from Zoom server', vc_room) + notify_owner(ZoomPlugin.instance, vc_room) + vc_room.status = VCRoomStatus.deleted + except RoomNotFoundAPIException: + ZoomPlugin.logger.warning('Room %s had been already deleted from the Zoom server', vc_room) + vc_room.status = VCRoomStatus.deleted + except APIException: + ZoomPlugin.logger.exception('Impossible to delete Zoom room %s', vc_room) diff --git a/indico_vc_zoom/templates/buttons.html b/indico_vc_zoom/templates/buttons.html new file mode 100644 index 0000000..3f0c1d9 --- /dev/null +++ b/indico_vc_zoom/templates/buttons.html @@ -0,0 +1,6 @@ +{% macro render_join_button(vc_room, extra_classes="") %} + + {% trans %}Join{% endtrans %} + +{% endmacro %} diff --git a/indico_vc_zoom/templates/emails/created.html b/indico_vc_zoom/templates/emails/created.html new file mode 100644 index 0000000..6d4118d --- /dev/null +++ b/indico_vc_zoom/templates/emails/created.html @@ -0,0 +1,16 @@ +{% extends 'vc/emails/created.html' %} + +{% block plugin_specific_info %} +
  • + Zoom URL: + {{ vc_room.zoom_meeting.join_url }} +
  • + +{% endblock %} + +{% block custom_footer %} + {% if plugin.settings.get('creation_email_footer') %} +
    + {{ plugin.settings.get('creation_email_footer') | sanitize_html }} + {% endif %} +{% endblock %} diff --git a/indico_vc_zoom/templates/emails/deleted.html b/indico_vc_zoom/templates/emails/deleted.html new file mode 100644 index 0000000..a67c1f1 --- /dev/null +++ b/indico_vc_zoom/templates/emails/deleted.html @@ -0,0 +1 @@ +{% extends 'vc/emails/deleted.html' %} diff --git a/indico_vc_zoom/templates/emails/notify_start_url.html b/indico_vc_zoom/templates/emails/notify_start_url.html new file mode 100644 index 0000000..ee45670 --- /dev/null +++ b/indico_vc_zoom/templates/emails/notify_start_url.html @@ -0,0 +1,18 @@ +{% extends 'emails/base.html' %} + +{% block subject -%} + [DON'T SHARE] Zoom Host URL - {{ vc_room.name }} +{%- endblock %} + +{% block header -%} + +
  • + HOST Zoom URL: + {{ vc_room.data.start_url }} +
  • + +Please don't share this link. + +{% block custom_footer %}{% endblock %} + +{%- endblock %} diff --git a/indico_vc_zoom/templates/emails/remote_deleted.html b/indico_vc_zoom/templates/emails/remote_deleted.html new file mode 100644 index 0000000..1c0c580 --- /dev/null +++ b/indico_vc_zoom/templates/emails/remote_deleted.html @@ -0,0 +1,16 @@ +{% extends 'emails/base.html' %} + +{% block subject -%} + [{{ plugin.friendly_name }}] Room deleted from server: {{ vc_room.name }} +{%- endblock %} + +{% block header -%} +

    + The Zoom room "{{ vc_room.name }}" has been deleted from the Zoom server since it has not been used by any recent event. +

    +

    + You won't be able to attach it to any future events. If you need to do so, please create a new room. +

    +{% block custom_footer %}{% endblock %} + +{%- endblock %} diff --git a/indico_vc_zoom/templates/event_buttons.html b/indico_vc_zoom/templates/event_buttons.html new file mode 100644 index 0000000..c30f4cc --- /dev/null +++ b/indico_vc_zoom/templates/event_buttons.html @@ -0,0 +1,6 @@ +{% extends 'vc/event_buttons.html' %} +{% from 'vc_zoom:buttons.html' import render_join_button %} + +{% block buttons %} + {{ render_join_button(vc_room, "i-button-small event-service-right-button join-button") }} +{% endblock %} diff --git a/indico_vc_zoom/templates/info_box.html b/indico_vc_zoom/templates/info_box.html new file mode 100644 index 0000000..4dbf5d3 --- /dev/null +++ b/indico_vc_zoom/templates/info_box.html @@ -0,0 +1,37 @@ +{% from '_clipboard_input.html' import clipboard_input %} +{% set owner = vc_room.zoom_meeting.owned_by_user %} +{% set phone_link = settings.get('zoom_phone_link') %} +
    +
    {% trans %}Name{% endtrans %}
    +
    {{ vc_room.name }}
    +
    {% trans %}Meeting Topic{% endtrans %}
    +
    {{ vc_room.data.description }}
    + {% if vc_room.zoom_meeting %} +
    {% trans %}Meeting ID{% endtrans %}
    +
    {{ vc_room.zoom_meeting.meeting }}
    + {% endif %} + {% if owner %} +
    {% trans %}Owner{% endtrans %}
    +
    {{ owner.full_name }}
    + {% endif %} + {% if event_vc_room.data.show_pin and vc_room.data.room_pin %} +
    {% trans %}Room PIN{% endtrans %}
    +
    {{ vc_room.data.room_pin }}
    + {% endif %} + {% if event_vc_room.data.show_autojoin %} +
    {% trans %}Zoom URL{% endtrans %}
    +
    + {{ clipboard_input(vc_room.zoom_meeting.join_url, name="vc-room-url-%s"|format(event_vc_room.id)) }} +
    + {% endif %} + {% if event_vc_room.data.show_phone_numbers and phone_link %} +
    + {% trans %}Useful links{% endtrans %} +
    +
    + + {% trans %}Phone numbers{% endtrans %} + +
    + {% endif %} +
    diff --git a/indico_vc_zoom/templates/manage_event_info_box.html b/indico_vc_zoom/templates/manage_event_info_box.html new file mode 100644 index 0000000..5068f4c --- /dev/null +++ b/indico_vc_zoom/templates/manage_event_info_box.html @@ -0,0 +1,55 @@ +{% from '_password.html' import password %} +{% from '_clipboard_input.html' import clipboard_input %} +{% set owner = vc_room.zoom_meeting.owned_by_user %} +{% set phone_link = settings.get('zoom_phone_link') %} +
    +
    {% trans %}Meeting Topic{% endtrans %}
    +
    {{ vc_room.data.description }}
    +
    {% trans %}Meeting ID{% endtrans %}
    +
    {{ vc_room.zoom_meeting.meeting }}
    +
    {% trans %}Owner{% endtrans %}
    +
    + {% if owner %} + {{ owner.full_name }} + {% else %} + {{ vc_room.data.owner_account }} (deleted) + {% endif %} +
    +
    {% trans %}Linked to{% endtrans %}
    +
    + {% set obj = event_vc_room.link_object %} + {% if obj is none %} + (missing {{ event_vc_room.link_type.name }}) + {% elif event_vc_room.link_type.name == 'event' %} + {% trans %}the whole event{% endtrans %} + {% elif event_vc_room.link_type.name == 'contribution' %} + {% trans %}Contribution{% endtrans %}: {{ obj.title }} + {% elif event_vc_room.link_type.name == 'block' %} + {% trans %}Session{% endtrans %}: {{ obj.full_title }} + {% endif %} +
    + {% if vc_room.data.room_pin %} +
    {% trans %}Room PIN{% endtrans %}
    +
    + {{ password('vc-room-pin-%s'|format(event_vc_room.id), value=vc_room.data.room_pin, toggle=True, + readonly=true) }} +
    + {% endif %} + {% if vc_room.data.moderation_pin %} +
    {% trans %}Moderation PIN{% endtrans %}
    +
    + {{ password('vc-moderation-pin-%s'|format(event_vc_room.id), value=vc_room.data.moderation_pin, + toggle=True, readonly=true) }} +
    + {% endif %} +
    {% trans %}Zoom URL{% endtrans %}
    +
    + {{ clipboard_input(vc_room.zoom_meeting.join_url, name="vc-room-url") }} +
    +
    {% trans %}Created on{% endtrans %}
    +
    {{ vc_room.created_dt | format_datetime(timezone=event.tzinfo) }}
    + {% if vc_room.modified_dt %} +
    {% trans %}Modified on{% endtrans %}
    +
    {{ vc_room.modified_dt | format_datetime(timezone=event.tzinfo) }}
    + {% endif %} +
    diff --git a/indico_vc_zoom/templates/management_buttons.html b/indico_vc_zoom/templates/management_buttons.html new file mode 100644 index 0000000..93b9f5c --- /dev/null +++ b/indico_vc_zoom/templates/management_buttons.html @@ -0,0 +1,6 @@ +{% extends 'vc/management_buttons.html' %} +{% from 'vc_zoom:buttons.html' import render_join_button %} + +{% block buttons %} + {{ render_join_button(vc_room, extra_classes="icon-play") }} +{% endblock %} diff --git a/indico_vc_zoom/templates/vc_room_timetable_buttons.html b/indico_vc_zoom/templates/vc_room_timetable_buttons.html new file mode 100644 index 0000000..8b70551 --- /dev/null +++ b/indico_vc_zoom/templates/vc_room_timetable_buttons.html @@ -0,0 +1,7 @@ +{% extends 'vc/vc_room_timetable_buttons.html' %} +{% from 'vc_zoom:buttons.html' import render_join_button %} +{% set vc_room = event_vc_room.vc_room %} + +{% block buttons %} + {{ render_join_button(vc_room, "i-button-small event-service-right-button join-button") }} +{% endblock %} diff --git a/indico_vc_zoom/translations/fr_FR/LC_MESSAGES/messages-js.po b/indico_vc_zoom/translations/fr_FR/LC_MESSAGES/messages-js.po new file mode 100644 index 0000000..fe16c6c --- /dev/null +++ b/indico_vc_zoom/translations/fr_FR/LC_MESSAGES/messages-js.po @@ -0,0 +1,23 @@ +# Translations template for PROJECT. +# Copyright (C) 2015 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# Thomas Baron , 2015 +msgid "" +msgstr "" +"Project-Id-Version: Indico\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2015-03-11 16:21+0100\n" +"PO-Revision-Date: 2015-03-12 12:52+0000\n" +"Last-Translator: Thomas Baron \n" +"Language-Team: French (France) (http://www.transifex.com/projects/p/indico/language/fr_FR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" +"Language: fr_FR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Indico" +msgstr "Indico" diff --git a/indico_vc_zoom/translations/fr_FR/LC_MESSAGES/messages.po b/indico_vc_zoom/translations/fr_FR/LC_MESSAGES/messages.po new file mode 100644 index 0000000..652e3e6 --- /dev/null +++ b/indico_vc_zoom/translations/fr_FR/LC_MESSAGES/messages.po @@ -0,0 +1,289 @@ +# Translations template for PROJECT. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# Thomas Baron , 2015,2017 +msgid "" +msgstr "" +"Project-Id-Version: Indico\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2017-10-18 11:55+0200\n" +"PO-Revision-Date: 2017-10-30 11:04+0000\n" +"Last-Translator: Thomas Baron \n" +"Language-Team: French (France) (http://www.transifex.com/indico/indico/language/fr_FR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.5.1\n" +"Language: fr_FR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: indico_vc_zoom/controllers.py:38 +msgid "You are now the owner of the room '{room.name}'" +msgstr "Vous ĂȘtes maintenant responsable de la salle '{room.name}'" + +#: indico_vc_zoom/forms.py:32 +msgid "The PIN must be a number" +msgstr "Le code confidentiel doit ĂȘtre un nombre entier" + +#: indico_vc_zoom/forms.py:37 +msgid "Show PIN" +msgstr "Afficher le code confidentiel" + +#: indico_vc_zoom/forms.py:39 +msgid "Show the VC Room PIN on the event page (insecure!)" +msgstr "Afficher le code confidentiel de la salle Vidyo sur la page de l'Ă©vĂ©nement (peu sĂ»r!)" + +#: indico_vc_zoom/forms.py:40 +msgid "Show Auto-join URL" +msgstr "Afficher l'URL de connexion" + +#: indico_vc_zoom/forms.py:42 +msgid "Show the auto-join URL on the event page" +msgstr "Afficher l'URL de connexion sur la page de l'Ă©vĂ©nement" + +#: indico_vc_zoom/forms.py:43 +msgid "Show Phone Access numbers" +msgstr "Afficher les numĂ©ros d'accĂšs tĂ©lĂ©phonique" + +#: indico_vc_zoom/forms.py:45 +msgid "Show a link to the list of phone access numbers" +msgstr "Afficher un lien vers la liste des numĂ©ros d'accĂšs tĂ©lĂ©phonique" + +#: indico_vc_zoom/forms.py:58 indico_vc_zoom/templates/info_box.html:7 +#: indico_vc_zoom/templates/manage_event_info_box.html:6 +msgid "Description" +msgstr "Description" + +#: indico_vc_zoom/forms.py:58 +msgid "The description of the room" +msgstr "La description de la salle" + +#: indico_vc_zoom/forms.py:59 indico_vc_zoom/templates/info_box.html:14 +#: indico_vc_zoom/templates/manage_event_info_box.html:10 +msgid "Owner" +msgstr "Responsable" + +#: indico_vc_zoom/forms.py:59 +msgid "The owner of the room" +msgstr "Le responsable de la salle" + +#: indico_vc_zoom/forms.py:60 +#: indico_vc_zoom/templates/manage_event_info_box.html:39 +msgid "Moderation PIN" +msgstr "Code confidentiel de modĂ©ration" + +#: indico_vc_zoom/forms.py:61 +msgid "Used to moderate the VC Room. Only digits allowed." +msgstr "UtilisĂ© pour modĂ©rer la salle de VC. Seuls les chiffres sont autorisĂ©s." + +#: indico_vc_zoom/forms.py:62 indico_vc_zoom/templates/info_box.html:18 +#: indico_vc_zoom/templates/manage_event_info_box.html:32 +msgid "Room PIN" +msgstr "Code confidentiel de la salle" + +#: indico_vc_zoom/forms.py:63 +msgid "" +"Used to protect the access to the VC Room (leave blank for open access). " +"Only digits allowed." +msgstr "UtilisĂ© pour protĂ©ger l'accĂšs Ă  la salle de VC (laisser vide pour un accĂšs ouvert). Seuls les chiffres sont autorisĂ©s." + +#: indico_vc_zoom/forms.py:65 +msgid "Auto mute" +msgstr "Coupure automatique des pĂ©riphĂ©riques d'entrĂ©e" + +#: indico_vc_zoom/forms.py:66 +msgid "On" +msgstr "ActivĂ©" + +#: indico_vc_zoom/forms.py:66 +msgid "Off" +msgstr "DĂ©sactivĂ©" + +#: indico_vc_zoom/forms.py:67 +msgid "" +"The VidyoDesktop clients will join the VC room muted by default (audio and " +"video)" +msgstr "Les clients VidyoDesktop rejoindront la salle Vidyo avec le micro et la camĂ©ra coupĂ©s par dĂ©faut" + +#: indico_vc_zoom/forms.py:82 +msgid "Unable to find this user in Indico." +msgstr "Impossible de trouver cet utilisateur dans Indico." + +#: indico_vc_zoom/forms.py:84 +msgid "This user does not have a suitable account to use Vidyo." +msgstr "Cet utilisateur n'a pas de compte qui lui permet d'utiliser Vidyo." + +#: indico_vc_zoom/plugin.py:49 +msgid "Vidyo email support" +msgstr "Adresse Ă©lectronique de l'assistance Vidyo" + +#: indico_vc_zoom/plugin.py:50 +msgid "Username" +msgstr "Identifiant" + +#: indico_vc_zoom/plugin.py:50 +msgid "Indico username for Vidyo" +msgstr "Identifiant Indico pour Vidyo" + +#: indico_vc_zoom/plugin.py:51 +msgid "Password" +msgstr "Mot de passe" + +#: indico_vc_zoom/plugin.py:52 +msgid "Indico password for Vidyo" +msgstr "Mot de passe utilisateur pour Vidyo" + +#: indico_vc_zoom/plugin.py:53 +msgid "Admin API WSDL URL" +msgstr "URL WSDL pour l'API admin" + +#: indico_vc_zoom/plugin.py:54 +msgid "User API WSDL URL" +msgstr "URL WSDL pour l'API utilisateur" + +#: indico_vc_zoom/plugin.py:55 +msgid "Indico tenant prefix" +msgstr "PrĂ©fixe de tenant pour Indico" + +#: indico_vc_zoom/plugin.py:56 +msgid "The tenant prefix for Indico rooms created on this server" +msgstr "Le prĂ©fixe de tenant pour les salles Vidyo créées sur ce serveur Indico" + +#: indico_vc_zoom/plugin.py:57 +msgid "Public rooms' group name" +msgstr "Nom du groupe Vidyo pour les salles Vidyo" + +#: indico_vc_zoom/plugin.py:58 +msgid "Group name for public videoconference rooms created by Indico" +msgstr "Nom du groupe pour les salles publiques de visioconfĂ©rence créées par Indico" + +#: indico_vc_zoom/plugin.py:59 +msgid "Authenticators" +msgstr "Services d'authentification" + +#: indico_vc_zoom/plugin.py:60 +msgid "Identity providers to convert Indico users to Vidyo accounts" +msgstr "Fournisseurs d'identitĂ© pour convertir des utilisateurs Indico en comptes Vidyo" + +#: indico_vc_zoom/plugin.py:61 +msgid "VC room age threshold" +msgstr "Limite d'Ăąge pour les salles Vidyo" + +#: indico_vc_zoom/plugin.py:62 +msgid "" +"Number of days after an Indico event when a videoconference room is " +"considered old" +msgstr "Nombre de jours Ă  partir de la fin d'un Ă©vĂ©nement dans Indico aprĂšs lesquels une salle de visioconfĂ©rence est considĂ©rĂ©e comme agĂ©e" + +#: indico_vc_zoom/plugin.py:64 +msgid "Max. num. VC rooms before warning" +msgstr "Nombre maximum de salles Vidyo avant un message d'alerte" + +#: indico_vc_zoom/plugin.py:65 +msgid "Maximum number of rooms until a warning is sent to the managers" +msgstr "Nombre maximum de salles Vidyo créées sur ce serveur avant qu'un message d'alerte soit envoyĂ© aux administrateurs" + +#: indico_vc_zoom/plugin.py:66 +msgid "VidyoVoice phone number" +msgstr "NumĂ©ros de tĂ©lĂ©phone VidyoVoice" + +#: indico_vc_zoom/plugin.py:67 +msgid "Link to the list of VidyoVoice phone numbers" +msgstr "Lien vers la liste des numĂ©ros de tĂ©lĂ©phones VidyoVoice" + +#: indico_vc_zoom/plugin.py:68 +msgid "Client Chooser URL" +msgstr "URL de sĂ©lection du client" + +#: indico_vc_zoom/plugin.py:69 +msgid "" +"URL for client chooser interface. The room key will be passed as a 'url' GET" +" query argument" +msgstr "L'URL pour l'interface de sĂ©lection du client. Le code de la salle sera passĂ© comme argument de requĂȘte GET." + +#: indico_vc_zoom/plugin.py:71 +msgid "Creation email footer" +msgstr "Pied de page du courriel de crĂ©ation" + +#: indico_vc_zoom/plugin.py:72 +msgid "Footer to append to emails sent upon creation of a VC room" +msgstr "Pied de page ajoutĂ© au courriel envoyĂ© Ă  la crĂ©ation d'une nouvelle salle Vidyo" + +#: indico_vc_zoom/plugin.py:162 indico_vc_zoom/plugin.py:202 +#: indico_vc_zoom/plugin.py:240 indico_vc_zoom/plugin.py:269 +msgid "No valid Vidyo account found for this user" +msgstr "Pas de compte Vidyo valide pour cet utilisateur" + +#: indico_vc_zoom/plugin.py:198 indico_vc_zoom/plugin.py:263 +msgid "Room name already in use" +msgstr "Ce nom de salle est dĂ©jĂ  utilisĂ©" + +#: indico_vc_zoom/plugin.py:213 +msgid "Could not find newly created room in Vidyo" +msgstr "Impossible de trouver la nouvelle salle dans Vidyo" + +#: indico_vc_zoom/plugin.py:232 indico_vc_zoom/plugin.py:259 +#: indico_vc_zoom/plugin.py:288 +msgid "This room has been deleted from Vidyo" +msgstr "Cette salle a Ă©tĂ© supprimĂ©e de Vidyo" + +#: indico_vc_zoom/templates/buttons.html:7 +#, python-format +msgid "You will be the owner of this Vidyo room, replacing %(name)s." +msgstr "Vous deviendrez le responsable de cette salle Vidyo, Ă  la place de %(name)s." + +#: indico_vc_zoom/templates/buttons.html:9 +msgid "Make me owner" +msgstr "Nommez moi responsable" + +#: indico_vc_zoom/templates/buttons.html:19 +msgid "Join" +msgstr "Rejoindre" + +#: indico_vc_zoom/templates/info_box.html:5 +msgid "Name" +msgstr "Nom" + +#: indico_vc_zoom/templates/info_box.html:10 +#: indico_vc_zoom/templates/manage_event_info_box.html:8 +msgid "Extension" +msgstr "Extension" + +#: indico_vc_zoom/templates/info_box.html:22 +#: indico_vc_zoom/templates/manage_event_info_box.html:45 +msgid "Auto-join URL" +msgstr "URL pour connexion Ă  la salle" + +#: indico_vc_zoom/templates/info_box.html:29 +msgid "Useful links" +msgstr "Liens utiles" + +#: indico_vc_zoom/templates/info_box.html:33 +msgid "Phone numbers" +msgstr "NumĂ©ros de tĂ©lĂ©phone" + +#: indico_vc_zoom/templates/manage_event_info_box.html:18 +msgid "Linked to" +msgstr "attachĂ©e Ă " + +#: indico_vc_zoom/templates/manage_event_info_box.html:24 +msgid "the whole event" +msgstr "l'Ă©vĂ©nement entier" + +#: indico_vc_zoom/templates/manage_event_info_box.html:26 +msgid "Contribution" +msgstr "La contribution" + +#: indico_vc_zoom/templates/manage_event_info_box.html:28 +msgid "Session" +msgstr "La session" + +#: indico_vc_zoom/templates/manage_event_info_box.html:49 +msgid "Created on" +msgstr "Créée le " + +#: indico_vc_zoom/templates/manage_event_info_box.html:52 +msgid "Modified on" +msgstr "ModifiĂ©e le " diff --git a/indico_vc_zoom/util.py b/indico_vc_zoom/util.py new file mode 100644 index 0000000..a527786 --- /dev/null +++ b/indico_vc_zoom/util.py @@ -0,0 +1,90 @@ + + +from __future__ import unicode_literals + +import re + +from flask_multipass import IdentityRetrievalFailed + +from indico.core.auth import multipass +from indico.core.db import db +from indico.modules.auth import Identity +from indico.modules.users import User + + +authenticators_re = re.compile(r'\s*,\s*') + + +def iter_user_identities(user): + """Iterates over all existing user identities that can be used with Zoom""" + from indico_vc_zoom.plugin import ZoomPlugin + providers = authenticators_re.split(ZoomPlugin.settings.get('authenticators')) + done = set() + for provider in providers: + for _, identifier in user.iter_identifiers(check_providers=True, providers={provider}): + if identifier in done: + continue + done.add(identifier) + yield identifier + + +def get_user_from_identifier(settings, identifier): + """Get an actual User object from an identifier""" + providers = list(auth.strip() for auth in settings.get('authenticators').split(',')) + identities = Identity.find_all(Identity.provider.in_(providers), Identity.identifier == identifier) + if identities: + return sorted(identities, key=lambda x: providers.index(x.provider))[0].user + for provider in providers: + try: + identity_info = multipass.get_identity(provider, identifier) + except IdentityRetrievalFailed: + continue + if identity_info is None: + continue + if not identity_info.provider.settings.get('trusted_email'): + continue + emails = {email.lower() for email in identity_info.data.getlist('email') if email} + if not emails: + continue + user = User.find_first(~User.is_deleted, User.all_emails.in_(list(emails))) + if user: + return user + + +def iter_extensions(prefix, event_id): + """Return extension (prefix + event_id) with an optional suffix which is + incremented step by step in case of collision + """ + extension = '{prefix}{event_id}'.format(prefix=prefix, event_id=event_id) + yield extension + suffix = 1 + while True: + yield '{extension}{suffix}'.format(extension=extension, suffix=suffix) + suffix += 1 + + +def update_room_from_obj(settings, vc_room, room_obj): + """Updates a VCRoom DB object using a SOAP room object returned by the API""" + vc_room.name = room_obj.name + if room_obj.ownerName != vc_room.data['owner_identity']: + owner = get_user_from_identifier(settings, room_obj.ownerName) or User.get_system_user() + vc_room.zoom_meeting.owned_by_user = owner + + vc_room.data.update({ + 'description': room_obj.description, + 'zoom_id': unicode(room_obj.roomID), + 'url': room_obj.RoomMode.roomURL, + 'owner_identity': room_obj.ownerName, + 'room_pin': room_obj.RoomMode.roomPIN if room_obj.RoomMode.hasPIN else "", + 'moderation_pin': room_obj.RoomMode.moderatorPIN if room_obj.RoomMode.hasModeratorPIN else "", + }) + vc_room.zoom_meeting.extension = int(room_obj.extension) + + +def retrieve_principal(principal): + from indico.modules.users import User + type_, id_ = principal + if type_ in {'Avatar', 'User'}: + return User.get(int(id_)) + else: + raise ValueError('Unexpected type: {}'.format(type_)) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..7472b25 --- /dev/null +++ b/setup.py @@ -0,0 +1,29 @@ +from __future__ import unicode_literals + +from setuptools import find_packages, setup + + +setup( + name='indico-plugin-vc-zoom', + version='0.2-dev', + description='Zoom video-conferencing plugin for Indico', + url='', + license='MIT', + author='Giovanni Mariano - ENEA', + author_email='giovanni.mariano@enea.it', + packages=find_packages(), + zip_safe=False, + include_package_data=True, + install_requires=[ + 'indico>=2', + 'requests', + 'PyJWT' + ], + classifiers=[ + 'Environment :: Plugins', + 'Environment :: Web Environment', + 'License :: OSI Approved :: MIT License', + 'Programming Language :: Python :: 2.7' + ], + entry_points={'indico.plugins': {'vc_zoom = indico_vc_zoom.plugin:ZoomPlugin'}} +) diff --git a/tests/task_test.py b/tests/task_test.py new file mode 100644 index 0000000..43714fa --- /dev/null +++ b/tests/task_test.py @@ -0,0 +1,24 @@ + +from datetime import datetime + +import pytest +from pytz import utc + +from indico.modules.vc.models.vc_rooms import VCRoom, VCRoomEventAssociation, VCRoomStatus + +from indico_vc_zoom.models.zoom_meetings import ZoomMeeting + + +@pytest.fixture +def create_dummy_room(db, dummy_user): + """Returns a callable which lets you create dummy Zoom room occurrences""" + pass + + +def test_room_cleanup(create_event, create_dummy_room, freeze_time, db): + """Test that 'old' Zoom rooms are correctly detected""" + freeze_time(datetime(2015, 2, 1)) + + pass + + assert {r.id for r in find_old_zoom_rooms(180)} == {2, 3, 5} diff --git a/url_map.json b/url_map.json new file mode 100644 index 0000000..65fb589 --- /dev/null +++ b/url_map.json @@ -0,0 +1,30163 @@ +{ + "rules": { + "abstracts.abstracts_csv_export": { + "endpoint": "abstracts.abstracts_csv_export", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/abstracts.csv", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.abstracts_json_export": { + "endpoint": "abstracts.abstracts_json_export", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/abstracts.json", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.abstracts_pdf_export": { + "endpoint": "abstracts.abstracts_pdf_export", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/abstracts.pdf", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.abstracts_xlsx_export": { + "endpoint": "abstracts.abstracts_xlsx_export", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/abstracts.xlsx", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.call_for_abstracts": { + "endpoint": "abstracts.call_for_abstracts", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.close_abstracts_call": { + "endpoint": "abstracts.close_abstracts_call", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/close", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.comment_abstract": { + "endpoint": "abstracts.comment_abstract", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/comment", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/comment", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.create_reviewing_question": { + "endpoint": "abstracts.create_reviewing_question", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/questions/create", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.customize_abstract_list": { + "endpoint": "abstracts.customize_abstract_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/list/customize", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.delete_abstract_comment": { + "endpoint": "abstracts.delete_abstract_comment", + "rules": [ + { + "args": [ + "abstract_id", + "comment_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter", + "comment_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/comments/", + "isDynamic": false + }, + { + "data": "comment_id", + "isDynamic": true + } + ] + }, + { + "args": [ + "abstract_id", + "comment_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter", + "comment_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/comments/", + "isDynamic": false + }, + { + "data": "comment_id", + "isDynamic": true + } + ] + } + ] + }, + "abstracts.delete_reviewing_question": { + "endpoint": "abstracts.delete_reviewing_question", + "rules": [ + { + "args": [ + "confId", + "question_id" + ], + "converters": { + "question_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/questions/", + "isDynamic": false + }, + { + "data": "question_id", + "isDynamic": true + } + ] + } + ] + }, + "abstracts.display_abstract": { + "endpoint": "abstracts.display_abstract", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.display_abstract_pdf_export": { + "endpoint": "abstracts.display_abstract_pdf_export", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/abstract.pdf", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/abstract.pdf", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.display_abstracts_csv_export": { + "endpoint": "abstracts.display_abstracts_csv_export", + "rules": [ + { + "args": [ + "confId", + "track_id" + ], + "converters": { + "track_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/reviewing/", + "isDynamic": false + }, + { + "data": "track_id", + "isDynamic": true + }, + { + "data": "/abstracts.csv", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.display_abstracts_pdf_export": { + "endpoint": "abstracts.display_abstracts_pdf_export", + "rules": [ + { + "args": [ + "confId", + "track_id" + ], + "converters": { + "track_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/reviewing/", + "isDynamic": false + }, + { + "data": "track_id", + "isDynamic": true + }, + { + "data": "/abstracts.pdf", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.display_abstracts_xlsx_export": { + "endpoint": "abstracts.display_abstracts_xlsx_export", + "rules": [ + { + "args": [ + "confId", + "track_id" + ], + "converters": { + "track_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/reviewing/", + "isDynamic": false + }, + { + "data": "track_id", + "isDynamic": true + }, + { + "data": "/abstracts.xlsx", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.display_customize_abstract_list": { + "endpoint": "abstracts.display_customize_abstract_list", + "rules": [ + { + "args": [ + "confId", + "track_id" + ], + "converters": { + "track_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/reviewing/", + "isDynamic": false + }, + { + "data": "track_id", + "isDynamic": true + }, + { + "data": "/customize", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.display_download_attachments": { + "endpoint": "abstracts.display_download_attachments", + "rules": [ + { + "args": [ + "confId", + "track_id" + ], + "converters": { + "track_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/reviewing/", + "isDynamic": false + }, + { + "data": "track_id", + "isDynamic": true + }, + { + "data": "/attachments", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.display_reviewable_track_abstracts": { + "endpoint": "abstracts.display_reviewable_track_abstracts", + "rules": [ + { + "args": [ + "confId", + "track_id" + ], + "converters": { + "track_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/reviewing/", + "isDynamic": false + }, + { + "data": "track_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.display_reviewable_tracks": { + "endpoint": "abstracts.display_reviewable_tracks", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/reviewing", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.download_attachment": { + "endpoint": "abstracts.download_attachment", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "file_id", + "filename", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "file_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "file_id", + "filename", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "file_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "abstracts.download_attachments": { + "endpoint": "abstracts.download_attachments", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/attachments", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.edit_abstract": { + "endpoint": "abstracts.edit_abstract", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.edit_abstract_comment": { + "endpoint": "abstracts.edit_abstract_comment", + "rules": [ + { + "args": [ + "abstract_id", + "comment_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter", + "comment_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/comments/", + "isDynamic": false + }, + { + "data": "comment_id", + "isDynamic": true + } + ] + }, + { + "args": [ + "abstract_id", + "comment_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter", + "comment_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/comments/", + "isDynamic": false + }, + { + "data": "comment_id", + "isDynamic": true + } + ] + } + ] + }, + "abstracts.edit_review": { + "endpoint": "abstracts.edit_review", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management", + "review_id" + ], + "converters": { + "abstract_id": "IntegerConverter", + "review_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/reviews/", + "isDynamic": false + }, + { + "data": "review_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management", + "review_id" + ], + "converters": { + "abstract_id": "IntegerConverter", + "review_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/reviews/", + "isDynamic": false + }, + { + "data": "review_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.edit_review_tracks": { + "endpoint": "abstracts.edit_review_tracks", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/reviewing-tracks", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/reviewing-tracks", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.edit_reviewing_question": { + "endpoint": "abstracts.edit_reviewing_question", + "rules": [ + { + "args": [ + "confId", + "question_id" + ], + "converters": { + "question_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/questions/", + "isDynamic": false + }, + { + "data": "question_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.email_tpl_add": { + "endpoint": "abstracts.email_tpl_add", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/email-templates/add", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.email_tpl_delete": { + "endpoint": "abstracts.email_tpl_delete", + "rules": [ + { + "args": [ + "confId", + "email_tpl_id" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/email-templates/", + "isDynamic": false + }, + { + "data": "email_tpl_id", + "isDynamic": true + } + ] + } + ] + }, + "abstracts.email_tpl_list": { + "endpoint": "abstracts.email_tpl_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/email-templates", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.email_tpl_rest": { + "endpoint": "abstracts.email_tpl_rest", + "rules": [ + { + "args": [ + "confId", + "email_tpl_id" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/email-templates/", + "isDynamic": false + }, + { + "data": "email_tpl_id", + "isDynamic": true + } + ] + } + ] + }, + "abstracts.email_tpl_rule_edit": { + "endpoint": "abstracts.email_tpl_rule_edit", + "rules": [ + { + "args": [ + "confId", + "email_tpl_id" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/email-templates/", + "isDynamic": false + }, + { + "data": "email_tpl_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.email_tpl_sort": { + "endpoint": "abstracts.email_tpl_sort", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/email-templates/sort", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.email_tpl_text_edit": { + "endpoint": "abstracts.email_tpl_text_edit", + "rules": [ + { + "args": [ + "confId", + "email_tpl_id" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/email-templates/", + "isDynamic": false + }, + { + "data": "email_tpl_id", + "isDynamic": true + }, + { + "data": "/edit-text", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.export_boa": { + "endpoint": "abstracts.export_boa", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/book-of-abstracts.pdf", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.export_boa_tex": { + "endpoint": "abstracts.export_boa_tex", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/book-of-abstracts.zip", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.generate_static_url": { + "endpoint": "abstracts.generate_static_url", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/list/static-url", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.judge_abstract": { + "endpoint": "abstracts.judge_abstract", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/judge", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/judge", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.manage_abstract_list": { + "endpoint": "abstracts.manage_abstract_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/list", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.manage_abstract_pdf_export": { + "endpoint": "abstracts.manage_abstract_pdf_export", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/abstract-reviews.pdf", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/abstract-reviews.pdf", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.manage_boa": { + "endpoint": "abstracts.manage_boa", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/boa", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.manage_create_abstract": { + "endpoint": "abstracts.manage_create_abstract", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/create", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.manage_delete_abstracts": { + "endpoint": "abstracts.manage_delete_abstracts", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/delete", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.manage_judge_abstracts": { + "endpoint": "abstracts.manage_judge_abstracts", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/judge", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.manage_reviewing_questions": { + "endpoint": "abstracts.manage_reviewing_questions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/questions", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.manage_reviewing_roles": { + "endpoint": "abstracts.manage_reviewing_roles", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/teams", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.manage_reviewing_settings": { + "endpoint": "abstracts.manage_reviewing_settings", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/review-settings", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.manage_submission_settings": { + "endpoint": "abstracts.manage_submission_settings", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/settings", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.management": { + "endpoint": "abstracts.management", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.my_abstracts_pdf": { + "endpoint": "abstracts.my_abstracts_pdf", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/mine.pdf", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.notification_log": { + "endpoint": "abstracts.notification_log", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/notifications", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/notifications", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.open_abstracts_call": { + "endpoint": "abstracts.open_abstracts_call", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/open", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.other_abstracts": { + "endpoint": "abstracts.other_abstracts", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/other-list", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.person_list": { + "endpoint": "abstracts.person_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/person-list", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.reset_abstract_state": { + "endpoint": "abstracts.reset_abstract_state", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/reset", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/reset", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.review_abstract": { + "endpoint": "abstracts.review_abstract", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management", + "track_id" + ], + "converters": { + "abstract_id": "IntegerConverter", + "track_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/review/track/", + "isDynamic": false + }, + { + "data": "track_id", + "isDynamic": true + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management", + "track_id" + ], + "converters": { + "abstract_id": "IntegerConverter", + "track_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/review/track/", + "isDynamic": false + }, + { + "data": "track_id", + "isDynamic": true + } + ] + } + ] + }, + "abstracts.schedule_abstracts_call": { + "endpoint": "abstracts.schedule_abstracts_call", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/schedule", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.sort_reviewing_questions": { + "endpoint": "abstracts.sort_reviewing_questions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/questions/sort", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.submit": { + "endpoint": "abstracts.submit", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/submit", + "isDynamic": false + } + ] + } + ] + }, + "abstracts.submit_invited_abstract": { + "endpoint": "abstracts.submit_invited_abstract", + "rules": [ + { + "args": [ + "confId", + "uuid" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/submit/", + "isDynamic": false + }, + { + "data": "uuid", + "isDynamic": true + } + ] + } + ] + }, + "abstracts.withdraw_abstract": { + "endpoint": "abstracts.withdraw_abstract", + "rules": [ + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/withdraw", + "isDynamic": false + } + ] + }, + { + "args": [ + "abstract_id", + "confId", + "management" + ], + "converters": { + "abstract_id": "IntegerConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/abstracts/", + "isDynamic": false + }, + { + "data": "abstract_id", + "isDynamic": true + }, + { + "data": "/withdraw", + "isDynamic": false + } + ] + } + ] + }, + "agreements.agreement_form": { + "endpoint": "agreements.agreement_form", + "rules": [ + { + "args": [ + "confId", + "id", + "uuid" + ], + "converters": { + "id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/agreement/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + }, + { + "data": "-", + "isDynamic": false + }, + { + "data": "uuid", + "isDynamic": true + } + ] + } + ] + }, + "agreements.download_file": { + "endpoint": "agreements.download_file", + "rules": [ + { + "args": [ + "confId", + "definition", + "filename", + "id" + ], + "converters": { + "id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/agreements/", + "isDynamic": false + }, + { + "data": "definition", + "isDynamic": true + }, + { + "data": "/download/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "agreements.event_agreements": { + "endpoint": "agreements.event_agreements", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/agreements", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "agreements.event_agreements_details": { + "endpoint": "agreements.event_agreements_details", + "rules": [ + { + "args": [ + "confId", + "definition" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/agreements/", + "isDynamic": false + }, + { + "data": "definition", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "agreements.event_agreements_details_remind": { + "endpoint": "agreements.event_agreements_details_remind", + "rules": [ + { + "args": [ + "confId", + "definition" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/agreements/", + "isDynamic": false + }, + { + "data": "definition", + "isDynamic": true + }, + { + "data": "/remind", + "isDynamic": false + } + ] + } + ] + }, + "agreements.event_agreements_details_remind_all": { + "endpoint": "agreements.event_agreements_details_remind_all", + "rules": [ + { + "args": [ + "confId", + "definition" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/agreements/", + "isDynamic": false + }, + { + "data": "definition", + "isDynamic": true + }, + { + "data": "/remind-all", + "isDynamic": false + } + ] + } + ] + }, + "agreements.event_agreements_details_send": { + "endpoint": "agreements.event_agreements_details_send", + "rules": [ + { + "args": [ + "confId", + "definition" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/agreements/", + "isDynamic": false + }, + { + "data": "definition", + "isDynamic": true + }, + { + "data": "/send", + "isDynamic": false + } + ] + } + ] + }, + "agreements.event_agreements_details_send_all": { + "endpoint": "agreements.event_agreements_details_send_all", + "rules": [ + { + "args": [ + "confId", + "definition" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/agreements/", + "isDynamic": false + }, + { + "data": "definition", + "isDynamic": true + }, + { + "data": "/send-all", + "isDynamic": false + } + ] + } + ] + }, + "agreements.event_agreements_details_submit_answer": { + "endpoint": "agreements.event_agreements_details_submit_answer", + "rules": [ + { + "args": [ + "confId", + "definition", + "id" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/agreements/", + "isDynamic": false + }, + { + "data": "definition", + "isDynamic": true + }, + { + "data": "/submit/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + } + ] + }, + { + "args": [ + "confId", + "definition" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/agreements/", + "isDynamic": false + }, + { + "data": "definition", + "isDynamic": true + }, + { + "data": "/submit", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "agreements.toggle_notifications": { + "endpoint": "agreements.toggle_notifications", + "rules": [ + { + "args": [ + "confId", + "definition" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/agreements/", + "isDynamic": false + }, + { + "data": "definition", + "isDynamic": true + }, + { + "data": "/toggle-notifications", + "isDynamic": false + } + ] + } + ] + }, + "announcement.manage": { + "endpoint": "announcement.manage", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/announcement", + "isDynamic": false + } + ] + } + ] + }, + "api.admin_keys": { + "endpoint": "api.admin_keys", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/api/keys", + "isDynamic": false + } + ] + } + ] + }, + "api.admin_settings": { + "endpoint": "api.admin_settings", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/api", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "api.build_urls": { + "endpoint": "api.build_urls", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/api/build-urls", + "isDynamic": false + } + ] + } + ] + }, + "api.httpapi": { + "endpoint": "api.httpapi", + "rules": [ + { + "args": [ + "path", + "prefix" + ], + "converters": { + "path": "PathConverter" + }, + "defaults": { + "prefix": "export" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/export/", + "isDynamic": false + }, + { + "data": "path", + "isDynamic": true + } + ] + }, + { + "args": [ + "path", + "prefix" + ], + "converters": { + "path": "PathConverter" + }, + "defaults": { + "prefix": "api" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/api/", + "isDynamic": false + }, + { + "data": "path", + "isDynamic": true + } + ] + }, + { + "args": [ + "prefix" + ], + "converters": { + "prefix": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "prefix", + "isDynamic": true + } + ] + } + ] + }, + "api.jsonrpc": { + "endpoint": "api.jsonrpc", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/services/json-rpc", + "isDynamic": false + } + ] + } + ] + }, + "api.key_block": { + "endpoint": "api.key_block", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/api/block", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/api/block", + "isDynamic": false + } + ] + } + ] + }, + "api.key_create": { + "endpoint": "api.key_create", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/api/create", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/api/create", + "isDynamic": false + } + ] + } + ] + }, + "api.key_delete": { + "endpoint": "api.key_delete", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/api/delete", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/api/delete", + "isDynamic": false + } + ] + } + ] + }, + "api.key_toggle_persistent": { + "endpoint": "api.key_toggle_persistent", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/api/persistent", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/api/persistent", + "isDynamic": false + } + ] + } + ] + }, + "api.user_profile": { + "endpoint": "api.user_profile", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/api", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/api", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "assets.css": { + "endpoint": "assets.css", + "rules": [ + { + "args": [ + "filename" + ], + "converters": { + "filename": "PathConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/css/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "assets.custom": { + "endpoint": "assets.custom", + "rules": [ + { + "args": [ + "filename", + "folder" + ], + "converters": { + "filename": "PathConverter" + }, + "defaults": { + "folder": "files" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/static/custom/files/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + }, + { + "args": [ + "filename", + "folder" + ], + "converters": { + "filename": "PathConverter", + "folder": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/static/custom/", + "isDynamic": false + }, + { + "data": "folder", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "assets.dist": { + "endpoint": "assets.dist", + "rules": [ + { + "args": [ + "filename" + ], + "converters": { + "filename": "PathConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/dist/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "assets.favicon": { + "endpoint": "assets.favicon", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/favicon.ico", + "isDynamic": false + } + ] + } + ] + }, + "assets.folder_file": { + "endpoint": "assets.folder_file", + "rules": [ + { + "args": [ + "fileext", + "filename", + "folder", + "version" + ], + "converters": { + "filename": "PathConverter", + "folder": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "folder", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + }, + { + "data": "__v", + "isDynamic": false + }, + { + "data": "version", + "isDynamic": true + }, + { + "data": ".", + "isDynamic": false + }, + { + "data": "fileext", + "isDynamic": true + } + ] + }, + { + "args": [ + "fileext", + "filename", + "folder" + ], + "converters": { + "filename": "PathConverter", + "folder": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "folder", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + }, + { + "data": ".", + "isDynamic": false + }, + { + "data": "fileext", + "isDynamic": true + } + ] + } + ] + }, + "assets.fonts": { + "endpoint": "assets.fonts", + "rules": [ + { + "args": [ + "filename" + ], + "converters": { + "filename": "PathConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/fonts/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "assets.i18n_locale": { + "endpoint": "assets.i18n_locale", + "rules": [ + { + "args": [ + "locale_name" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/assets/i18n/", + "isDynamic": false + }, + { + "data": "locale_name", + "isDynamic": true + }, + { + "data": ".js", + "isDynamic": false + } + ] + } + ] + }, + "assets.i18n_locale_react": { + "endpoint": "assets.i18n_locale_react", + "rules": [ + { + "args": [ + "locale_name" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/assets/i18n/", + "isDynamic": false + }, + { + "data": "locale_name", + "isDynamic": true + }, + { + "data": "-react.js", + "isDynamic": false + } + ] + } + ] + }, + "assets.image": { + "endpoint": "assets.image", + "rules": [ + { + "args": [ + "filename" + ], + "converters": { + "filename": "PathConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/images/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "assets.js_vars_global": { + "endpoint": "assets.js_vars_global", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/assets/js-vars/global.js", + "isDynamic": false + } + ] + } + ] + }, + "assets.js_vars_user": { + "endpoint": "assets.js_vars_user", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/assets/js-vars/user.js", + "isDynamic": false + } + ] + } + ] + }, + "assets.plugin_file": { + "endpoint": "assets.plugin_file", + "rules": [ + { + "args": [ + "fileext", + "filename", + "plugin", + "version" + ], + "converters": { + "filename": "PathConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/static/plugins/", + "isDynamic": false + }, + { + "data": "plugin", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + }, + { + "data": "__v", + "isDynamic": false + }, + { + "data": "version", + "isDynamic": true + }, + { + "data": ".", + "isDynamic": false + }, + { + "data": "fileext", + "isDynamic": true + } + ] + }, + { + "args": [ + "fileext", + "filename", + "plugin" + ], + "converters": { + "filename": "PathConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/static/plugins/", + "isDynamic": false + }, + { + "data": "plugin", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + }, + { + "data": ".", + "isDynamic": false + }, + { + "data": "fileext", + "isDynamic": true + } + ] + } + ] + }, + "assets.root": { + "endpoint": "assets.root", + "rules": [ + { + "args": [ + "filename" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "attachments.add_link": { + "endpoint": "attachments.add_link", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments/add/link", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "object_type" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments/add/link", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type", + "session_id" + ], + "converters": { + "confId": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments/add/link", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type" + ], + "converters": { + "confId": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/attachments/add/link", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/attachments/add/link", + "isDynamic": false + } + ] + } + ] + }, + "attachments.create_folder": { + "endpoint": "attachments.create_folder", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments/create-folder", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "object_type" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments/create-folder", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type", + "session_id" + ], + "converters": { + "confId": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments/create-folder", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type" + ], + "converters": { + "confId": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/attachments/create-folder", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/attachments/create-folder", + "isDynamic": false + } + ] + } + ] + }, + "attachments.delete_attachment": { + "endpoint": "attachments.delete_attachment", + "rules": [ + { + "args": [ + "attachment_id", + "confId", + "contrib_id", + "folder_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "attachment_id": "IntegerConverter", + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "attachment_id", + "confId", + "contrib_id", + "folder_id", + "object_type" + ], + "converters": { + "attachment_id": "IntegerConverter", + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "attachment_id", + "confId", + "folder_id", + "object_type", + "session_id" + ], + "converters": { + "attachment_id": "IntegerConverter", + "confId": "IntegerConverter", + "folder_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "attachment_id", + "confId", + "folder_id", + "object_type" + ], + "converters": { + "attachment_id": "IntegerConverter", + "confId": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "attachment_id", + "category_id", + "folder_id", + "object_type" + ], + "converters": { + "attachment_id": "IntegerConverter", + "category_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "attachments.delete_folder": { + "endpoint": "attachments.delete_folder", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "folder_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "folder_id", + "object_type" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "folder_id", + "object_type", + "session_id" + ], + "converters": { + "confId": "IntegerConverter", + "folder_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "folder_id", + "object_type" + ], + "converters": { + "confId": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "folder_id", + "object_type" + ], + "converters": { + "category_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "attachments.download": { + "endpoint": "attachments.download", + "rules": [ + { + "args": [ + "attachment_id", + "confId", + "contrib_id", + "filename", + "folder_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "attachment_id": "IntegerConverter", + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + }, + { + "args": [ + "attachment_id", + "confId", + "contrib_id", + "filename", + "folder_id", + "object_type" + ], + "converters": { + "attachment_id": "IntegerConverter", + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + }, + { + "args": [ + "attachment_id", + "confId", + "filename", + "folder_id", + "object_type", + "session_id" + ], + "converters": { + "attachment_id": "IntegerConverter", + "folder_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + }, + { + "args": [ + "attachment_id", + "confId", + "filename", + "folder_id", + "object_type" + ], + "converters": { + "attachment_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + }, + { + "args": [ + "attachment_id", + "category_id", + "filename", + "folder_id", + "object_type" + ], + "converters": { + "attachment_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "attachments.edit_folder": { + "endpoint": "attachments.edit_folder", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "folder_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "folder_id", + "object_type" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "folder_id", + "object_type", + "session_id" + ], + "converters": { + "confId": "IntegerConverter", + "folder_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "folder_id", + "object_type" + ], + "converters": { + "confId": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "folder_id", + "object_type" + ], + "converters": { + "category_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "attachments.list_folder": { + "endpoint": "attachments.list_folder", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "folder_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "folder_id", + "object_type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "folder_id", + "object_type", + "session_id" + ], + "converters": { + "folder_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "folder_id", + "object_type" + ], + "converters": { + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "attachments.management": { + "endpoint": "attachments.management", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "object_type" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type", + "session_id" + ], + "converters": { + "confId": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type" + ], + "converters": { + "confId": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/attachments", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/attachments", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "attachments.management_info_column": { + "endpoint": "attachments.management_info_column", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments/info-column", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "object_type" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments/info-column", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type", + "session_id" + ], + "converters": { + "confId": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments/info-column", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type" + ], + "converters": { + "confId": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/attachments/info-column", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/attachments/info-column", + "isDynamic": false + } + ] + } + ] + }, + "attachments.modify_attachment": { + "endpoint": "attachments.modify_attachment", + "rules": [ + { + "args": [ + "attachment_id", + "confId", + "contrib_id", + "folder_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "attachment_id": "IntegerConverter", + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "attachment_id", + "confId", + "contrib_id", + "folder_id", + "object_type" + ], + "converters": { + "attachment_id": "IntegerConverter", + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "attachment_id", + "confId", + "folder_id", + "object_type", + "session_id" + ], + "converters": { + "attachment_id": "IntegerConverter", + "confId": "IntegerConverter", + "folder_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "attachment_id", + "confId", + "folder_id", + "object_type" + ], + "converters": { + "attachment_id": "IntegerConverter", + "confId": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "attachment_id", + "category_id", + "folder_id", + "object_type" + ], + "converters": { + "attachment_id": "IntegerConverter", + "category_id": "IntegerConverter", + "folder_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/attachments/", + "isDynamic": false + }, + { + "data": "folder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "attachment_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "attachments.package": { + "endpoint": "attachments.package", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/attachments/package", + "isDynamic": false + } + ] + } + ] + }, + "attachments.package_management": { + "endpoint": "attachments.package_management", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/attachments/package", + "isDynamic": false + } + ] + } + ] + }, + "attachments.upload": { + "endpoint": "attachments.upload", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/attachments/add/files", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "object_type" + ], + "converters": { + "confId": "IntegerConverter", + "contrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/attachments/add/files", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type", + "session_id" + ], + "converters": { + "confId": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/attachments/add/files", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type" + ], + "converters": { + "confId": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/attachments/add/files", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/attachments/add/files", + "isDynamic": false + } + ] + } + ] + }, + "auth.accounts": { + "endpoint": "auth.accounts", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/accounts", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/accounts", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "auth.admin_impersonate": { + "endpoint": "auth.admin_impersonate", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/users/impersonate", + "isDynamic": false + } + ] + } + ] + }, + "auth.link_account": { + "endpoint": "auth.link_account", + "rules": [ + { + "args": [ + "provider" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/login/", + "isDynamic": false + }, + { + "data": "provider", + "isDynamic": true + }, + { + "data": "/link-account", + "isDynamic": false + } + ] + } + ] + }, + "auth.login": { + "endpoint": "auth.login", + "rules": [ + { + "args": [ + "provider" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/login/", + "isDynamic": false + }, + { + "data": "provider", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/login", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "auth.login_form": { + "endpoint": "auth.login_form", + "rules": [ + { + "args": [ + "provider" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/login/", + "isDynamic": false + }, + { + "data": "provider", + "isDynamic": true + }, + { + "data": "/form", + "isDynamic": false + } + ] + } + ] + }, + "auth.logout": { + "endpoint": "auth.logout", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/logout", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "auth.register": { + "endpoint": "auth.register", + "rules": [ + { + "args": [ + "provider" + ], + "converters": {}, + "defaults": { + "provider": null + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/register", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "provider" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/register/", + "isDynamic": false + }, + { + "data": "provider", + "isDynamic": true + } + ] + } + ] + }, + "auth.remove_account": { + "endpoint": "auth.remove_account", + "rules": [ + { + "args": [ + "identity", + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/accounts/", + "isDynamic": false + }, + { + "data": "identity", + "isDynamic": true + }, + { + "data": "/remove", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "identity" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/accounts/", + "isDynamic": false + }, + { + "data": "identity", + "isDynamic": true + }, + { + "data": "/remove", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "auth.resetpass": { + "endpoint": "auth.resetpass", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/reset-password", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "bootstrap.index": { + "endpoint": "bootstrap.index", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/bootstrap", + "isDynamic": false + } + ] + } + ] + }, + "categories._redirect": { + "endpoint": "categories._redirect", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/categ/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + } + ] + }, + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/c/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + } + ] + } + ] + }, + "categories._redirect_event_creation": { + "endpoint": "categories._redirect_event_creation", + "rules": [ + { + "args": [ + "category_id", + "event_type" + ], + "converters": { + "category_id": "IntegerConverter", + "event_type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/create/event/", + "isDynamic": false + }, + { + "data": "event_type", + "isDynamic": true + } + ] + } + ] + }, + "categories.calendar": { + "endpoint": "categories.calendar", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/calendar", + "isDynamic": false + } + ] + } + ] + }, + "categories.category_xml_info": { + "endpoint": "categories.category_xml_info", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/xmlGateway.py/getCategoryInfo", + "isDynamic": false + } + ] + } + ] + }, + "categories.create_subcategory": { + "endpoint": "categories.create_subcategory", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/subcategories/create", + "isDynamic": false + } + ] + } + ] + }, + "categories.delete": { + "endpoint": "categories.delete", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/delete", + "isDynamic": false + } + ] + } + ] + }, + "categories.delete_events": { + "endpoint": "categories.delete_events", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/events/delete", + "isDynamic": false + } + ] + } + ] + }, + "categories.delete_subcategories": { + "endpoint": "categories.delete_subcategories", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/subcategories/delete", + "isDynamic": false + } + ] + } + ] + }, + "categories.display": { + "endpoint": "categories.display", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": {}, + "defaults": { + "category_id": 0 + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "categories.display_icon": { + "endpoint": "categories.display_icon", + "rules": [ + { + "args": [ + "category_id", + "slug" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/icon-", + "isDynamic": false + }, + { + "data": "slug", + "isDynamic": true + }, + { + "data": ".png", + "isDynamic": false + } + ] + } + ] + }, + "categories.display_logo": { + "endpoint": "categories.display_logo", + "rules": [ + { + "args": [ + "category_id", + "slug" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/logo-", + "isDynamic": false + }, + { + "data": "slug", + "isDynamic": true + }, + { + "data": ".png", + "isDynamic": false + } + ] + } + ] + }, + "categories.event_list": { + "endpoint": "categories.event_list", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/event-list", + "isDynamic": false + } + ] + } + ] + }, + "categories.export_atom": { + "endpoint": "categories.export_atom", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/events.atom", + "isDynamic": false + } + ] + } + ] + }, + "categories.export_ical": { + "endpoint": "categories.export_ical", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/events.ics", + "isDynamic": false + } + ] + } + ] + }, + "categories.export_rss": { + "endpoint": "categories.export_rss", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/events.rss", + "isDynamic": false + } + ] + } + ] + }, + "categories.info": { + "endpoint": "categories.info", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/info", + "isDynamic": false + } + ] + } + ] + }, + "categories.info_from": { + "endpoint": "categories.info_from", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/info-from", + "isDynamic": false + } + ] + } + ] + }, + "categories.manage_content": { + "endpoint": "categories.manage_content", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "categories.manage_icon": { + "endpoint": "categories.manage_icon", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/icon", + "isDynamic": false + } + ] + } + ] + }, + "categories.manage_logo": { + "endpoint": "categories.manage_logo", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/logo", + "isDynamic": false + } + ] + } + ] + }, + "categories.manage_protection": { + "endpoint": "categories.manage_protection", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/protection", + "isDynamic": false + } + ] + } + ] + }, + "categories.manage_settings": { + "endpoint": "categories.manage_settings", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/settings", + "isDynamic": false + } + ] + } + ] + }, + "categories.manage_upcoming": { + "endpoint": "categories.manage_upcoming", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/upcoming-events", + "isDynamic": false + } + ] + } + ] + }, + "categories.move": { + "endpoint": "categories.move", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/move", + "isDynamic": false + } + ] + } + ] + }, + "categories.move_events": { + "endpoint": "categories.move_events", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/events/move", + "isDynamic": false + } + ] + } + ] + }, + "categories.move_subcategories": { + "endpoint": "categories.move_subcategories", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/subcategories/move", + "isDynamic": false + } + ] + } + ] + }, + "categories.overview": { + "endpoint": "categories.overview", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/overview", + "isDynamic": false + } + ] + } + ] + }, + "categories.search": { + "endpoint": "categories.search", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/search", + "isDynamic": false + } + ] + } + ] + }, + "categories.show_future_events": { + "endpoint": "categories.show_future_events", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/show-future-events", + "isDynamic": false + } + ] + } + ] + }, + "categories.show_past_events": { + "endpoint": "categories.show_past_events", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/show-past-events", + "isDynamic": false + } + ] + } + ] + }, + "categories.sort_subcategories": { + "endpoint": "categories.sort_subcategories", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/subcategories/sort", + "isDynamic": false + } + ] + } + ] + }, + "categories.split_category": { + "endpoint": "categories.split_category", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/events/split", + "isDynamic": false + } + ] + } + ] + }, + "categories.statistics": { + "endpoint": "categories.statistics", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/statistics", + "isDynamic": false + } + ] + } + ] + }, + "categories.subcat_info": { + "endpoint": "categories.subcat_info", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/subcat-info", + "isDynamic": false + } + ] + } + ] + }, + "categories.upcoming_event": { + "endpoint": "categories.upcoming_event", + "rules": [ + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/upcoming", + "isDynamic": false + } + ] + } + ] + }, + "celery.index": { + "endpoint": "celery.index", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/tasks", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "cephalopod.index": { + "endpoint": "cephalopod.index", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/community-hub", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "cephalopod.sync": { + "endpoint": "cephalopod.sync", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/community-hub/sync", + "isDynamic": false + } + ] + } + ] + }, + "cephalopod.system-info": { + "endpoint": "cephalopod.system-info", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/system-info", + "isDynamic": false + } + ] + } + ] + }, + "contributions.acl": { + "endpoint": "contributions.acl", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/acl", + "isDynamic": false + } + ] + } + ] + }, + "contributions.acl_message": { + "endpoint": "contributions.acl_message", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/acl-message", + "isDynamic": false + } + ] + } + ] + }, + "contributions.author_list": { + "endpoint": "contributions.author_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/authors", + "isDynamic": false + } + ] + } + ] + }, + "contributions.clone_contribution": { + "endpoint": "contributions.clone_contribution", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/clone", + "isDynamic": false + } + ] + } + ] + }, + "contributions.contribution_list": { + "endpoint": "contributions.contribution_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "contributions.contribution_list_pdf": { + "endpoint": "contributions.contribution_list_pdf", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/contributions.pdf", + "isDynamic": false + } + ] + } + ] + }, + "contributions.contribution_list_static_url": { + "endpoint": "contributions.contribution_list_static_url", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/static-url", + "isDynamic": false + } + ] + } + ] + }, + "contributions.contributions_csv_export": { + "endpoint": "contributions.contributions_csv_export", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/contributions.csv", + "isDynamic": false + } + ] + } + ] + }, + "contributions.contributions_excel_export": { + "endpoint": "contributions.contributions_excel_export", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/contributions.xlsx", + "isDynamic": false + } + ] + } + ] + }, + "contributions.contributions_import": { + "endpoint": "contributions.contributions_import", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/import", + "isDynamic": false + } + ] + } + ] + }, + "contributions.contributions_pdf_export": { + "endpoint": "contributions.contributions_pdf_export", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/contributions.pdf", + "isDynamic": false + } + ] + } + ] + }, + "contributions.contributions_tex_export": { + "endpoint": "contributions.contributions_tex_export", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/contributions.zip", + "isDynamic": false + } + ] + } + ] + }, + "contributions.contributions_tex_export_book": { + "endpoint": "contributions.contributions_tex_export_book", + "rules": [ + { + "args": [ + "confId", + "uuid" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/tex-export/", + "isDynamic": false + }, + { + "data": "uuid", + "isDynamic": true + } + ] + } + ] + }, + "contributions.contributions_tex_export_dialog": { + "endpoint": "contributions.contributions_tex_export_dialog", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/tex-export-dialog", + "isDynamic": false + } + ] + } + ] + }, + "contributions.create_contrib_reference_rest": { + "endpoint": "contributions.create_contrib_reference_rest", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/references", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "contributions.create_field": { + "endpoint": "contributions.create_field", + "rules": [ + { + "args": [ + "confId", + "field_type" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/fields/create/", + "isDynamic": false + }, + { + "data": "field_type", + "isDynamic": true + } + ] + } + ] + }, + "contributions.create_subcontrib_reference_rest": { + "endpoint": "contributions.create_subcontrib_reference_rest", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "subcontrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/references", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "contributions.create_subcontrib_rest": { + "endpoint": "contributions.create_subcontrib_rest", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "contributions.create_type": { + "endpoint": "contributions.create_type", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/types/create", + "isDynamic": false + } + ] + } + ] + }, + "contributions.customize_contrib_list": { + "endpoint": "contributions.customize_contrib_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/customize", + "isDynamic": false + } + ] + } + ] + }, + "contributions.customize_contribution_list": { + "endpoint": "contributions.customize_contribution_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/customize", + "isDynamic": false + } + ] + } + ] + }, + "contributions.delete_field": { + "endpoint": "contributions.delete_field", + "rules": [ + { + "args": [ + "confId", + "contrib_field_id" + ], + "converters": { + "contrib_field_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/fields/", + "isDynamic": false + }, + { + "data": "contrib_field_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "contributions.delete_type": { + "endpoint": "contributions.delete_type", + "rules": [ + { + "args": [ + "confId", + "contrib_type_id" + ], + "converters": { + "contrib_type_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/types/", + "isDynamic": false + }, + { + "data": "contrib_type_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "contributions.display_author": { + "endpoint": "contributions.display_author", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "person_id" + ], + "converters": { + "contrib_id": "IntegerConverter", + "person_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/author/", + "isDynamic": false + }, + { + "data": "person_id", + "isDynamic": true + } + ] + } + ] + }, + "contributions.display_contribution": { + "endpoint": "contributions.display_contribution", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "contributions.display_subcontribution": { + "endpoint": "contributions.display_subcontribution", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "subcontrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + } + ] + } + ] + }, + "contributions.export_ics": { + "endpoint": "contributions.export_ics", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/contribution.ics", + "isDynamic": false + } + ] + } + ] + }, + "contributions.export_pdf": { + "endpoint": "contributions.export_pdf", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/contribution.pdf", + "isDynamic": false + } + ] + } + ] + }, + "contributions.generate_static_url": { + "endpoint": "contributions.generate_static_url", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/static-url", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_contrib_protection": { + "endpoint": "contributions.manage_contrib_protection", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/protection", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_contrib_rest": { + "endpoint": "contributions.manage_contrib_rest", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + } + ] + } + ] + }, + "contributions.manage_contributions": { + "endpoint": "contributions.manage_contributions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_create_contrib": { + "endpoint": "contributions.manage_create_contrib", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/create", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_create_subcontrib": { + "endpoint": "contributions.manage_create_subcontrib", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/create", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_default_duration": { + "endpoint": "contributions.manage_default_duration", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/duration", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_delete_contribs": { + "endpoint": "contributions.manage_delete_contribs", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/delete", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_delete_subcontribs": { + "endpoint": "contributions.manage_delete_subcontribs", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/delete", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_description_field": { + "endpoint": "contributions.manage_description_field", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/fields/description", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_duration": { + "endpoint": "contributions.manage_duration", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/duration", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_edit_subcontrib": { + "endpoint": "contributions.manage_edit_subcontrib", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "subcontrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_field": { + "endpoint": "contributions.manage_field", + "rules": [ + { + "args": [ + "confId", + "contrib_field_id" + ], + "converters": { + "contrib_field_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/fields/", + "isDynamic": false + }, + { + "data": "contrib_field_id", + "isDynamic": true + } + ] + } + ] + }, + "contributions.manage_fields": { + "endpoint": "contributions.manage_fields", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/fields", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_publication": { + "endpoint": "contributions.manage_publication", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/published", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_start_date": { + "endpoint": "contributions.manage_start_date", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/start-date", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_subcontrib_rest": { + "endpoint": "contributions.manage_subcontrib_rest", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "subcontrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + } + ] + } + ] + }, + "contributions.manage_subcontributions": { + "endpoint": "contributions.manage_subcontributions", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_type": { + "endpoint": "contributions.manage_type", + "rules": [ + { + "args": [ + "confId", + "contrib_type_id" + ], + "converters": { + "contrib_type_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/types/", + "isDynamic": false + }, + { + "data": "contrib_type_id", + "isDynamic": true + } + ] + } + ] + }, + "contributions.manage_types": { + "endpoint": "contributions.manage_types", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/types", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "contributions.manage_update_contrib": { + "endpoint": "contributions.manage_update_contrib", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "contributions.material_package": { + "endpoint": "contributions.material_package", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/material-package", + "isDynamic": false + } + ] + } + ] + }, + "contributions.my_contributions": { + "endpoint": "contributions.my_contributions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/mine", + "isDynamic": false + } + ] + } + ] + }, + "contributions.person_list": { + "endpoint": "contributions.person_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/person-list", + "isDynamic": false + } + ] + } + ] + }, + "contributions.sort_fields": { + "endpoint": "contributions.sort_fields", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/fields/sort", + "isDynamic": false + } + ] + } + ] + }, + "contributions.sort_subcontributions": { + "endpoint": "contributions.sort_subcontributions", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/sort", + "isDynamic": false + } + ] + } + ] + }, + "contributions.speaker_list": { + "endpoint": "contributions.speaker_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/speakers", + "isDynamic": false + } + ] + } + ] + }, + "core.admin_dashboard": { + "endpoint": "core.admin_dashboard", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "core.change_lang": { + "endpoint": "core.change_lang", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/change-language", + "isDynamic": false + } + ] + } + ] + }, + "core.change_tz": { + "endpoint": "core.change_tz", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/change-timezone", + "isDynamic": false + } + ] + } + ] + }, + "core.contact": { + "endpoint": "core.contact", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/contact", + "isDynamic": false + } + ] + } + ] + }, + "core.ping": { + "endpoint": "core.ping", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/ping", + "isDynamic": false + } + ] + } + ] + }, + "core.principals": { + "endpoint": "core.principals", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/api/principals", + "isDynamic": false + } + ] + } + ] + }, + "core.report_error_api": { + "endpoint": "core.report_error_api", + "rules": [ + { + "args": [ + "error_id" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/report-error/api/", + "isDynamic": false + }, + { + "data": "error_id", + "isDynamic": true + } + ] + } + ] + }, + "core.reset_signature_tokens": { + "endpoint": "core.reset_signature_tokens", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/api/reset-signature-tokens", + "isDynamic": false + } + ] + } + ] + }, + "core.settings": { + "endpoint": "core.settings", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/settings", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "core.sign_url": { + "endpoint": "core.sign_url", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/api/sign-url", + "isDynamic": false + } + ] + } + ] + }, + "core.version_check": { + "endpoint": "core.version_check", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/version-check", + "isDynamic": false + } + ] + } + ] + }, + "designer.add_template": { + "endpoint": "designer.add_template", + "rules": [ + { + "args": [ + "confId", + "object_type" + ], + "converters": { + "confId": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/designer/add", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/designer/add", + "isDynamic": false + } + ] + } + ] + }, + "designer.backside_template_list": { + "endpoint": "designer.backside_template_list", + "rules": [ + { + "args": [ + "confId", + "object_type", + "template_id" + ], + "converters": { + "confId": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/backsides", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type", + "template_id" + ], + "converters": { + "category_id": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/backsides", + "isDynamic": false + } + ] + } + ] + }, + "designer.clone_template": { + "endpoint": "designer.clone_template", + "rules": [ + { + "args": [ + "confId", + "object_type", + "template_id" + ], + "converters": { + "confId": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/clone", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type", + "template_id" + ], + "converters": { + "category_id": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/clone", + "isDynamic": false + } + ] + } + ] + }, + "designer.delete_template": { + "endpoint": "designer.delete_template", + "rules": [ + { + "args": [ + "confId", + "object_type", + "template_id" + ], + "converters": { + "confId": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type", + "template_id" + ], + "converters": { + "category_id": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "designer.download_image": { + "endpoint": "designer.download_image", + "rules": [ + { + "args": [ + "confId", + "filename", + "image_id", + "object_type", + "template_id" + ], + "converters": { + "confId": "IntegerConverter", + "image_id": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/images/", + "isDynamic": false + }, + { + "data": "image_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + }, + { + "args": [ + "category_id", + "filename", + "image_id", + "object_type", + "template_id" + ], + "converters": { + "category_id": "IntegerConverter", + "image_id": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/images/", + "isDynamic": false + }, + { + "data": "image_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "designer.edit_template": { + "endpoint": "designer.edit_template", + "rules": [ + { + "args": [ + "confId", + "object_type", + "template_id" + ], + "converters": { + "confId": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type", + "template_id" + ], + "converters": { + "category_id": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "designer.get_template_data": { + "endpoint": "designer.get_template_data", + "rules": [ + { + "args": [ + "confId", + "object_type", + "template_id" + ], + "converters": { + "confId": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/data", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type", + "template_id" + ], + "converters": { + "category_id": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/data", + "isDynamic": false + } + ] + } + ] + }, + "designer.template_list": { + "endpoint": "designer.template_list", + "rules": [ + { + "args": [ + "confId", + "object_type" + ], + "converters": { + "confId": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/designer", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/designer", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "designer.toggle_category_default": { + "endpoint": "designer.toggle_category_default", + "rules": [ + { + "args": [ + "category_id", + "template_id" + ], + "converters": { + "category_id": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/toggle-default", + "isDynamic": false + } + ] + } + ] + }, + "designer.upload_image": { + "endpoint": "designer.upload_image", + "rules": [ + { + "args": [ + "confId", + "object_type", + "template_id" + ], + "converters": { + "confId": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/images", + "isDynamic": false + } + ] + }, + { + "args": [ + "category_id", + "object_type", + "template_id" + ], + "converters": { + "category_id": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": { + "object_type": "category" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/category/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + }, + { + "data": "/manage/designer/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/images", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.api_confirm_changes": { + "endpoint": "event_editing.api_confirm_changes", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "revision_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/confirm", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.api_create_comment": { + "endpoint": "event_editing.api_create_comment", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "revision_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/comments", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.api_create_editable": { + "endpoint": "event_editing.api_create_editable", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + } + ] + } + ] + }, + "event_editing.api_create_submitter_revision": { + "endpoint": "event_editing.api_create_submitter_revision", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "revision_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/new", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.api_create_tag": { + "endpoint": "event_editing.api_create_tag", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/editing/api/tags", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.api_edit_comment": { + "endpoint": "event_editing.api_edit_comment", + "rules": [ + { + "args": [ + "comment_id", + "confId", + "contrib_id", + "revision_id", + "type" + ], + "converters": { + "comment_id": "IntegerConverter", + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/comments/", + "isDynamic": false + }, + { + "data": "comment_id", + "isDynamic": true + } + ] + } + ] + }, + "event_editing.api_edit_tag": { + "endpoint": "event_editing.api_edit_tag", + "rules": [ + { + "args": [ + "confId", + "tag_id" + ], + "converters": { + "tag_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/editing/api/tag/", + "isDynamic": false + }, + { + "data": "tag_id", + "isDynamic": true + } + ] + } + ] + }, + "event_editing.api_editable": { + "endpoint": "event_editing.api_editable", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + } + ] + } + ] + }, + "event_editing.api_file_types": { + "endpoint": "event_editing.api_file_types", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/editing/api/file-types", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.api_replace_revision": { + "endpoint": "event_editing.api_replace_revision", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "revision_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/replace", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.api_review_editable": { + "endpoint": "event_editing.api_review_editable", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "revision_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/review", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.api_tags": { + "endpoint": "event_editing.api_tags", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/editing/api/tags", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.api_undo_review": { + "endpoint": "event_editing.api_undo_review", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "revision_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/review", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.api_upload": { + "endpoint": "event_editing.api_upload", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/upload", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.dashboard": { + "endpoint": "event_editing.dashboard", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/editing", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.download_file": { + "endpoint": "event_editing.download_file", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "file_id", + "filename", + "revision_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "file_id": "IntegerConverter", + "revision_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "file_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "event_editing.editable": { + "endpoint": "event_editing.editable", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + } + ] + } + ] + }, + "event_editing.manage_tags": { + "endpoint": "event_editing.manage_tags", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/editing/tags", + "isDynamic": false + } + ] + } + ] + }, + "event_editing.revision_files_export": { + "endpoint": "event_editing.revision_files_export", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "revision_id", + "type" + ], + "converters": { + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/editing/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/files.zip", + "isDynamic": false + } + ] + } + ] + }, + "event_features.index": { + "endpoint": "event_features.index", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/features", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_features.switch": { + "endpoint": "event_features.switch", + "rules": [ + { + "args": [ + "confId", + "feature" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/features/", + "isDynamic": false + }, + { + "data": "feature", + "isDynamic": true + } + ] + } + ] + }, + "event_images.image_display": { + "endpoint": "event_images.image_display", + "rules": [ + { + "args": [ + "confId", + "filename", + "image_id" + ], + "converters": { + "image_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/images/", + "isDynamic": false + }, + { + "data": "image_id", + "isDynamic": true + }, + { + "data": "-", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "event_images.logo_display": { + "endpoint": "event_images.logo_display", + "rules": [ + { + "args": [ + "confId", + "slug" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/logo-", + "isDynamic": false + }, + { + "data": "slug", + "isDynamic": true + }, + { + "data": ".png", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.css_display": { + "endpoint": "event_layout.css_display", + "rules": [ + { + "args": [ + "confId", + "slug" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "slug", + "isDynamic": true + }, + { + "data": ".css", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.css_preview": { + "endpoint": "event_layout.css_preview", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/theme/preview", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.css_save_theme": { + "endpoint": "event_layout.css_save_theme", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/theme/save", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.delete_css": { + "endpoint": "event_layout.delete_css", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/css", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.delete_logo": { + "endpoint": "event_layout.delete_logo", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/logo", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.image_delete": { + "endpoint": "event_layout.image_delete", + "rules": [ + { + "args": [ + "confId", + "filename", + "image_id" + ], + "converters": { + "image_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/images/", + "isDynamic": false + }, + { + "data": "image_id", + "isDynamic": true + }, + { + "data": "-", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "event_layout.images": { + "endpoint": "event_layout.images", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/images", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.images_upload": { + "endpoint": "event_layout.images_upload", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/images/upload", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.index": { + "endpoint": "event_layout.index", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.menu": { + "endpoint": "event_layout.menu", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/menu", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.menu_add_entry": { + "endpoint": "event_layout.menu_add_entry", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/menu/add", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.menu_delete_entry": { + "endpoint": "event_layout.menu_delete_entry", + "rules": [ + { + "args": [ + "confId", + "menu_entry_id" + ], + "converters": { + "menu_entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/menu/", + "isDynamic": false + }, + { + "data": "menu_entry_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.menu_entry_edit": { + "endpoint": "event_layout.menu_entry_edit", + "rules": [ + { + "args": [ + "confId", + "menu_entry_id" + ], + "converters": { + "menu_entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/menu/", + "isDynamic": false + }, + { + "data": "menu_entry_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.menu_entry_position": { + "endpoint": "event_layout.menu_entry_position", + "rules": [ + { + "args": [ + "confId", + "menu_entry_id" + ], + "converters": { + "menu_entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/menu/", + "isDynamic": false + }, + { + "data": "menu_entry_id", + "isDynamic": true + }, + { + "data": "/position", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.menu_entry_toggle_default": { + "endpoint": "event_layout.menu_entry_toggle_default", + "rules": [ + { + "args": [ + "confId", + "menu_entry_id" + ], + "converters": { + "menu_entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/menu/", + "isDynamic": false + }, + { + "data": "menu_entry_id", + "isDynamic": true + }, + { + "data": "/toggle-default", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.menu_entry_toggle_enabled": { + "endpoint": "event_layout.menu_entry_toggle_enabled", + "rules": [ + { + "args": [ + "confId", + "menu_entry_id" + ], + "converters": { + "menu_entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/menu/", + "isDynamic": false + }, + { + "data": "menu_entry_id", + "isDynamic": true + }, + { + "data": "/toggle-enabled", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.menu_toggle_custom": { + "endpoint": "event_layout.menu_toggle_custom", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/menu/toggle-customize", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.timetable_theme_form": { + "endpoint": "event_layout.timetable_theme_form", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/timetable-theme-form", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.upload_css": { + "endpoint": "event_layout.upload_css", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/css", + "isDynamic": false + } + ] + } + ] + }, + "event_layout.upload_logo": { + "endpoint": "event_layout.upload_logo", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/layout/logo", + "isDynamic": false + } + ] + } + ] + }, + "event_logs.index": { + "endpoint": "event_logs.index", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/logs", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_logs.logs": { + "endpoint": "event_logs.logs", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/logs/api/logs", + "isDynamic": false + } + ] + } + ] + }, + "event_management.acl": { + "endpoint": "event_management.acl", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/protection/acl", + "isDynamic": false + } + ] + } + ] + }, + "event_management.acl_message": { + "endpoint": "event_management.acl_message", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/protection/acl-message", + "isDynamic": false + } + ] + } + ] + }, + "event_management.api_principals": { + "endpoint": "event_management.api_principals", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/api/principals", + "isDynamic": false + } + ] + } + ] + }, + "event_management.assign_program_codes_contributions": { + "endpoint": "event_management.assign_program_codes_contributions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/program-codes/assign/contributions", + "isDynamic": false + } + ] + } + ] + }, + "event_management.assign_program_codes_session_blocks": { + "endpoint": "event_management.assign_program_codes_session_blocks", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/program-codes/assign/session-blocks", + "isDynamic": false + } + ] + } + ] + }, + "event_management.assign_program_codes_sessions": { + "endpoint": "event_management.assign_program_codes_sessions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/program-codes/assign/sessions", + "isDynamic": false + } + ] + } + ] + }, + "event_management.assign_program_codes_subcontributions": { + "endpoint": "event_management.assign_program_codes_subcontributions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/program-codes/assign/subcontributions", + "isDynamic": false + } + ] + } + ] + }, + "event_management.change_type": { + "endpoint": "event_management.change_type", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/change-type", + "isDynamic": false + } + ] + } + ] + }, + "event_management.clone": { + "endpoint": "event_management.clone", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/clone", + "isDynamic": false + } + ] + } + ] + }, + "event_management.clone_preview": { + "endpoint": "event_management.clone_preview", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/clone/preview", + "isDynamic": false + } + ] + } + ] + }, + "event_management.delete": { + "endpoint": "event_management.delete", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/delete", + "isDynamic": false + } + ] + } + ] + }, + "event_management.edit_classification": { + "endpoint": "event_management.edit_classification", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/settings/classification", + "isDynamic": false + } + ] + } + ] + }, + "event_management.edit_contact_info": { + "endpoint": "event_management.edit_contact_info", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/settings/contact-info", + "isDynamic": false + } + ] + } + ] + }, + "event_management.edit_data": { + "endpoint": "event_management.edit_data", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/settings/data", + "isDynamic": false + } + ] + } + ] + }, + "event_management.edit_dates": { + "endpoint": "event_management.edit_dates", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/settings/dates", + "isDynamic": false + } + ] + } + ] + }, + "event_management.edit_location": { + "endpoint": "event_management.edit_location", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/settings/location", + "isDynamic": false + } + ] + } + ] + }, + "event_management.edit_persons": { + "endpoint": "event_management.edit_persons", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/settings/persons", + "isDynamic": false + } + ] + } + ] + }, + "event_management.lock": { + "endpoint": "event_management.lock", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/lock", + "isDynamic": false + } + ] + } + ] + }, + "event_management.move": { + "endpoint": "event_management.move", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/move", + "isDynamic": false + } + ] + } + ] + }, + "event_management.permissions_dialog": { + "endpoint": "event_management.permissions_dialog", + "rules": [ + { + "args": [ + "type" + ], + "converters": { + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/permissions-dialog/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + } + ] + } + ] + }, + "event_management.poster_settings": { + "endpoint": "event_management.poster_settings", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/print-poster/settings", + "isDynamic": false + } + ] + } + ] + }, + "event_management.print_poster": { + "endpoint": "event_management.print_poster", + "rules": [ + { + "args": [ + "confId", + "template_id", + "uuid" + ], + "converters": { + "template_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/print-poster/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "uuid", + "isDynamic": true + } + ] + } + ] + }, + "event_management.program_code_templates": { + "endpoint": "event_management.program_code_templates", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/program-codes/templates", + "isDynamic": false + } + ] + } + ] + }, + "event_management.program_codes": { + "endpoint": "event_management.program_codes", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/program-codes", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_management.protection": { + "endpoint": "event_management.protection", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/protection", + "isDynamic": false + } + ] + } + ] + }, + "event_management.settings": { + "endpoint": "event_management.settings", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_management.show_non_inheriting": { + "endpoint": "event_management.show_non_inheriting", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "object_type" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/show-non-inheriting", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/show-non-inheriting", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type" + ], + "converters": {}, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/show-non-inheriting", + "isDynamic": false + } + ] + } + ] + }, + "event_management.unlock": { + "endpoint": "event_management.unlock", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/unlock", + "isDynamic": false + } + ] + } + ] + }, + "event_notes.compile": { + "endpoint": "event_notes.compile", + "rules": [ + { + "args": [ + "confId", + "object_type" + ], + "converters": {}, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/note/compile", + "isDynamic": false + } + ] + } + ] + }, + "event_notes.delete": { + "endpoint": "event_notes.delete", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/note/delete", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "object_type" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/note/delete", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/note/delete", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type" + ], + "converters": {}, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/note/delete", + "isDynamic": false + } + ] + } + ] + }, + "event_notes.edit": { + "endpoint": "event_notes.edit", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/note/edit", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "object_type" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/note/edit", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/note/edit", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type" + ], + "converters": {}, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/note/edit", + "isDynamic": false + } + ] + } + ] + }, + "event_notes.view": { + "endpoint": "event_notes.view", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "object_type", + "subcontrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter", + "subcontrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "subcontribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/subcontributions/", + "isDynamic": false + }, + { + "data": "subcontrib_id", + "isDynamic": true + }, + { + "data": "/note", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "contrib_id", + "object_type" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": { + "object_type": "contribution" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/note", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": { + "object_type": "session" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/note", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "object_type" + ], + "converters": {}, + "defaults": { + "object_type": "event" + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/note", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_pages.page_display": { + "endpoint": "event_pages.page_display", + "rules": [ + { + "args": [ + "confId", + "page_id", + "slug" + ], + "converters": { + "page_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/page/", + "isDynamic": false + }, + { + "data": "page_id", + "isDynamic": true + }, + { + "data": "-", + "isDynamic": false + }, + { + "data": "slug", + "isDynamic": true + } + ] + }, + { + "args": [ + "confId", + "page_id" + ], + "converters": { + "page_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/page/", + "isDynamic": false + }, + { + "data": "page_id", + "isDynamic": true + } + ] + } + ] + }, + "event_participation.manage": { + "endpoint": "event_participation.manage", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/participants", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.add_field": { + "endpoint": "event_registration.add_field", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/fields", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.add_section": { + "endpoint": "event_registration.add_section", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.add_text": { + "endpoint": "event_registration.add_text", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/text", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.api_registrant": { + "endpoint": "event_registration.api_registrant", + "rules": [ + { + "args": [ + "event_id", + "registrant_id" + ], + "converters": { + "event_id": "IntegerConverter", + "registrant_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/api/events/", + "isDynamic": false + }, + { + "data": "event_id", + "isDynamic": true + }, + { + "data": "/registrants/", + "isDynamic": false + }, + { + "data": "registrant_id", + "isDynamic": true + } + ] + } + ] + }, + "event_registration.api_registrants": { + "endpoint": "event_registration.api_registrants", + "rules": [ + { + "args": [ + "event_id" + ], + "converters": { + "event_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/api/events/", + "isDynamic": false + }, + { + "data": "event_id", + "isDynamic": true + }, + { + "data": "/registrants", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.approve_registration": { + "endpoint": "event_registration.approve_registration", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "registration_id" + ], + "converters": { + "reg_form_id": "IntegerConverter", + "registration_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "registration_id", + "isDynamic": true + }, + { + "data": "/approve", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.check_email": { + "endpoint": "event_registration.check_email", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/check-email", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.close_regform": { + "endpoint": "event_registration.close_regform", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/close", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.create_multiple_registrations": { + "endpoint": "event_registration.create_multiple_registrations", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/create-multiple", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.create_regform": { + "endpoint": "event_registration.create_regform", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/create", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.create_registration": { + "endpoint": "event_registration.create_registration", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/create", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.customize_reglist": { + "endpoint": "event_registration.customize_reglist", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/customize", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.decline_invitation": { + "endpoint": "event_registration.decline_invitation", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/decline-invitation", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.delete_invitation": { + "endpoint": "event_registration.delete_invitation", + "rules": [ + { + "args": [ + "confId", + "invitation_id", + "reg_form_id" + ], + "converters": { + "invitation_id": "IntegerConverter", + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/invitations/", + "isDynamic": false + }, + { + "data": "invitation_id", + "isDynamic": true + } + ] + } + ] + }, + "event_registration.delete_regform": { + "endpoint": "event_registration.delete_regform", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.delete_registrations": { + "endpoint": "event_registration.delete_registrations", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/delete", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.display_regform": { + "endpoint": "event_registration.display_regform", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.display_regform_list": { + "endpoint": "event_registration.display_regform_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/registrations", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.edit_regform": { + "endpoint": "event_registration.edit_regform", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.edit_registration": { + "endpoint": "event_registration.edit_registration", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "registration_id" + ], + "converters": { + "reg_form_id": "IntegerConverter", + "registration_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "registration_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.edit_registration_display": { + "endpoint": "event_registration.edit_registration_display", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.email_registrants": { + "endpoint": "event_registration.email_registrants", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/email", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.email_registrants_preview": { + "endpoint": "event_registration.email_registrants_preview", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/email-preview", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.generate_static_url": { + "endpoint": "event_registration.generate_static_url", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/static-url", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.invitations": { + "endpoint": "event_registration.invitations", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/invitations", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.invite": { + "endpoint": "event_registration.invite", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/invitations/invite", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.manage_regform": { + "endpoint": "event_registration.manage_regform", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.manage_regform_display": { + "endpoint": "event_registration.manage_regform_display", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/display", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.manage_regform_list": { + "endpoint": "event_registration.manage_regform_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.manage_regforms_display": { + "endpoint": "event_registration.manage_regforms_display", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/display", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.manage_registration_managers": { + "endpoint": "event_registration.manage_registration_managers", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/managers", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.manage_reglist": { + "endpoint": "event_registration.manage_reglist", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.manager_decline_invitation": { + "endpoint": "event_registration.manager_decline_invitation", + "rules": [ + { + "args": [ + "confId", + "invitation_id", + "reg_form_id" + ], + "converters": { + "invitation_id": "IntegerConverter", + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/invitations/", + "isDynamic": false + }, + { + "data": "invitation_id", + "isDynamic": true + }, + { + "data": "/decline", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.modify_field": { + "endpoint": "event_registration.modify_field", + "rules": [ + { + "args": [ + "confId", + "field_id", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/fields/", + "isDynamic": false + }, + { + "data": "field_id", + "isDynamic": true + } + ] + } + ] + }, + "event_registration.modify_regform": { + "endpoint": "event_registration.modify_regform", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.modify_section": { + "endpoint": "event_registration.modify_section", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + } + ] + } + ] + }, + "event_registration.modify_text": { + "endpoint": "event_registration.modify_text", + "rules": [ + { + "args": [ + "confId", + "field_id", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/text/", + "isDynamic": false + }, + { + "data": "field_id", + "isDynamic": true + } + ] + } + ] + }, + "event_registration.move_field": { + "endpoint": "event_registration.move_field", + "rules": [ + { + "args": [ + "confId", + "field_id", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/fields/", + "isDynamic": false + }, + { + "data": "field_id", + "isDynamic": true + }, + { + "data": "/move", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.move_section": { + "endpoint": "event_registration.move_section", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/move", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.move_text": { + "endpoint": "event_registration.move_text", + "rules": [ + { + "args": [ + "confId", + "field_id", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/text/", + "isDynamic": false + }, + { + "data": "field_id", + "isDynamic": true + }, + { + "data": "/move", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.open_regform": { + "endpoint": "event_registration.open_regform", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/open", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.participant_list": { + "endpoint": "event_registration.participant_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/registrations/participants", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.regform_stats": { + "endpoint": "event_registration.regform_stats", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/stats", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registration_check_in": { + "endpoint": "event_registration.registration_check_in", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "registration_id" + ], + "converters": { + "reg_form_id": "IntegerConverter", + "registration_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "registration_id", + "isDynamic": true + }, + { + "data": "/check-in", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registration_details": { + "endpoint": "event_registration.registration_details", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "registration_id" + ], + "converters": { + "reg_form_id": "IntegerConverter", + "registration_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "registration_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registration_file": { + "endpoint": "event_registration.registration_file", + "rules": [ + { + "args": [ + "confId", + "field_data_id", + "filename", + "reg_form_id", + "registration_id" + ], + "converters": { + "field_data_id": "IntegerConverter", + "reg_form_id": "IntegerConverter", + "registration_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "registration_id", + "isDynamic": true + }, + { + "data": "/file/", + "isDynamic": false + }, + { + "data": "field_data_id", + "isDynamic": true + }, + { + "data": "-", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "event_registration.registrations_attachments_export": { + "endpoint": "event_registration.registrations_attachments_export", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/attachments", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registrations_check_in": { + "endpoint": "event_registration.registrations_check_in", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/check-in", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registrations_config_badges": { + "endpoint": "event_registration.registrations_config_badges", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/badges/config", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registrations_config_tickets": { + "endpoint": "event_registration.registrations_config_tickets", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/tickets/config", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registrations_csv_export": { + "endpoint": "event_registration.registrations_csv_export", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/registrations.csv", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registrations_excel_export": { + "endpoint": "event_registration.registrations_excel_export", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/registrations.xlsx", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registrations_import": { + "endpoint": "event_registration.registrations_import", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/import", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registrations_modify_status": { + "endpoint": "event_registration.registrations_modify_status", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/modify-status", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registrations_pdf_export_book": { + "endpoint": "event_registration.registrations_pdf_export_book", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/book.pdf", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registrations_pdf_export_table": { + "endpoint": "event_registration.registrations_pdf_export_table", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/table.pdf", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.registrations_print_badges": { + "endpoint": "event_registration.registrations_print_badges", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "template_id", + "uuid" + ], + "converters": { + "reg_form_id": "IntegerConverter", + "template_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/badges/print/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "uuid", + "isDynamic": true + } + ] + } + ] + }, + "event_registration.reject_registration": { + "endpoint": "event_registration.reject_registration", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "registration_id" + ], + "converters": { + "reg_form_id": "IntegerConverter", + "registration_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "registration_id", + "isDynamic": true + }, + { + "data": "/reject", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.schedule_regform": { + "endpoint": "event_registration.schedule_regform", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/schedule", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.ticket_download": { + "endpoint": "event_registration.ticket_download", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/ticket.pdf", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.tickets": { + "endpoint": "event_registration.tickets", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/tickets", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.tickets_qrcode": { + "endpoint": "event_registration.tickets_qrcode", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/tickets/qrcode", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.tickets_qrcode_image": { + "endpoint": "event_registration.tickets_qrcode_image", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/tickets/qrcode.png", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.toggle_field": { + "endpoint": "event_registration.toggle_field", + "rules": [ + { + "args": [ + "confId", + "field_id", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/fields/", + "isDynamic": false + }, + { + "data": "field_id", + "isDynamic": true + }, + { + "data": "/toggle", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.toggle_registration_payment": { + "endpoint": "event_registration.toggle_registration_payment", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "registration_id" + ], + "converters": { + "reg_form_id": "IntegerConverter", + "registration_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "registration_id", + "isDynamic": true + }, + { + "data": "/toggle-payment", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.toggle_section": { + "endpoint": "event_registration.toggle_section", + "rules": [ + { + "args": [ + "confId", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/toggle", + "isDynamic": false + } + ] + } + ] + }, + "event_registration.toggle_text": { + "endpoint": "event_registration.toggle_text", + "rules": [ + { + "args": [ + "confId", + "field_id", + "reg_form_id", + "section_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/registration/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/form/sections/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/text/", + "isDynamic": false + }, + { + "data": "field_id", + "isDynamic": true + }, + { + "data": "/toggle", + "isDynamic": false + } + ] + } + ] + }, + "event_reminders.add": { + "endpoint": "event_reminders.add", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/reminders/add", + "isDynamic": false + } + ] + } + ] + }, + "event_reminders.delete": { + "endpoint": "event_reminders.delete", + "rules": [ + { + "args": [ + "confId", + "reminder_id" + ], + "converters": { + "reminder_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/reminders/", + "isDynamic": false + }, + { + "data": "reminder_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "event_reminders.edit": { + "endpoint": "event_reminders.edit", + "rules": [ + { + "args": [ + "confId", + "reminder_id" + ], + "converters": { + "reminder_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/reminders/", + "isDynamic": false + }, + { + "data": "reminder_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_reminders.list": { + "endpoint": "event_reminders.list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/reminders", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_reminders.preview": { + "endpoint": "event_reminders.preview", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/reminders/preview", + "isDynamic": false + } + ] + } + ] + }, + "event_roles.add_members": { + "endpoint": "event_roles.add_members", + "rules": [ + { + "args": [ + "confId", + "role_id" + ], + "converters": { + "role_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/roles/", + "isDynamic": false + }, + { + "data": "role_id", + "isDynamic": true + }, + { + "data": "/members", + "isDynamic": false + } + ] + } + ] + }, + "event_roles.add_role": { + "endpoint": "event_roles.add_role", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/roles/create", + "isDynamic": false + } + ] + } + ] + }, + "event_roles.delete_role": { + "endpoint": "event_roles.delete_role", + "rules": [ + { + "args": [ + "confId", + "role_id" + ], + "converters": { + "role_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/roles/", + "isDynamic": false + }, + { + "data": "role_id", + "isDynamic": true + } + ] + } + ] + }, + "event_roles.edit_role": { + "endpoint": "event_roles.edit_role", + "rules": [ + { + "args": [ + "confId", + "role_id" + ], + "converters": { + "role_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/roles/", + "isDynamic": false + }, + { + "data": "role_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "event_roles.manage": { + "endpoint": "event_roles.manage", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/roles", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "event_roles.remove_member": { + "endpoint": "event_roles.remove_member", + "rules": [ + { + "args": [ + "confId", + "role_id", + "user_id" + ], + "converters": { + "role_id": "IntegerConverter", + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/roles/", + "isDynamic": false + }, + { + "data": "role_id", + "isDynamic": true + }, + { + "data": "/members/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + } + ] + } + ] + }, + "events.create": { + "endpoint": "events.create", + "rules": [ + { + "args": [ + "event_type" + ], + "converters": { + "event_type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/create/", + "isDynamic": false + }, + { + "data": "event_type", + "isDynamic": true + } + ] + } + ] + }, + "events.create_reference_type": { + "endpoint": "events.create_reference_type", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/external-id-types/create", + "isDynamic": false + } + ] + } + ] + }, + "events.delete_reference_type": { + "endpoint": "events.delete_reference_type", + "rules": [ + { + "args": [ + "reference_type_id" + ], + "converters": { + "reference_type_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/external-id-types/", + "isDynamic": false + }, + { + "data": "reference_type_id", + "isDynamic": true + } + ] + } + ] + }, + "events.display": { + "endpoint": "events.display", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "events.display_other": { + "endpoint": "events.display_other", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/other-view", + "isDynamic": false + } + ] + } + ] + }, + "events.display_overview": { + "endpoint": "events.display_overview", + "rules": [ + { + "args": [ + "confId", + "force_overview" + ], + "converters": {}, + "defaults": { + "force_overview": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/overview", + "isDynamic": false + } + ] + } + ] + }, + "events.export_event_ical": { + "endpoint": "events.export_event_ical", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/event.ics", + "isDynamic": false + } + ] + } + ] + }, + "events.key_access": { + "endpoint": "events.key_access", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/key-access", + "isDynamic": false + } + ] + } + ] + }, + "events.marcxml": { + "endpoint": "events.marcxml", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/event.marc.xml", + "isDynamic": false + } + ] + } + ] + }, + "events.reference_types": { + "endpoint": "events.reference_types", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/external-id-types", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "events.shorturl": { + "endpoint": "events.shorturl", + "rules": [ + { + "args": [ + "confId", + "shorturl_namespace" + ], + "converters": { + "confId": "PathConverter" + }, + "defaults": { + "shorturl_namespace": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/e/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + } + ] + } + ] + }, + "events.update_reference_type": { + "endpoint": "events.update_reference_type", + "rules": [ + { + "args": [ + "reference_type_id" + ], + "converters": { + "reference_type_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/external-id-types/", + "isDynamic": false + }, + { + "data": "reference_type_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "files.delete_file": { + "endpoint": "files.delete_file", + "rules": [ + { + "args": [ + "uuid" + ], + "converters": { + "uuid": "UUIDConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/files/", + "isDynamic": false + }, + { + "data": "uuid", + "isDynamic": true + } + ] + } + ] + }, + "files.file_info": { + "endpoint": "files.file_info", + "rules": [ + { + "args": [ + "uuid" + ], + "converters": { + "uuid": "UUIDConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/files/", + "isDynamic": false + }, + { + "data": "uuid", + "isDynamic": true + } + ] + } + ] + }, + "groups.group_add": { + "endpoint": "groups.group_add", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/groups/indico/new", + "isDynamic": false + } + ] + } + ] + }, + "groups.group_delete": { + "endpoint": "groups.group_delete", + "rules": [ + { + "args": [ + "group_id", + "provider" + ], + "converters": { + "group_id": "IntegerConverter", + "provider": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/groups/", + "isDynamic": false + }, + { + "data": "provider", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "group_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "groups.group_delete_member": { + "endpoint": "groups.group_delete_member", + "rules": [ + { + "args": [ + "group_id", + "provider", + "user_id" + ], + "converters": { + "group_id": "IntegerConverter", + "provider": "AnyConverter", + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/groups/", + "isDynamic": false + }, + { + "data": "provider", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "group_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + } + ] + } + ] + }, + "groups.group_details": { + "endpoint": "groups.group_details", + "rules": [ + { + "args": [ + "group_id", + "provider" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/groups/", + "isDynamic": false + }, + { + "data": "provider", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "group_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "groups.group_edit": { + "endpoint": "groups.group_edit", + "rules": [ + { + "args": [ + "group_id", + "provider" + ], + "converters": { + "group_id": "IntegerConverter", + "provider": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/groups/", + "isDynamic": false + }, + { + "data": "provider", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "group_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "groups.group_members": { + "endpoint": "groups.group_members", + "rules": [ + { + "args": [ + "group_id", + "provider" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/groups/", + "isDynamic": false + }, + { + "data": "provider", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "group_id", + "isDynamic": true + }, + { + "data": "/members", + "isDynamic": false + } + ] + } + ] + }, + "groups.group_search": { + "endpoint": "groups.group_search", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/groups/api/search", + "isDynamic": false + } + ] + } + ] + }, + "groups.groups": { + "endpoint": "groups.groups", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/groups", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "legal.display_privacy": { + "endpoint": "legal.display_privacy", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/privacy", + "isDynamic": false + } + ] + } + ] + }, + "legal.display_tos": { + "endpoint": "legal.display_tos", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/tos", + "isDynamic": false + } + ] + } + ] + }, + "legal.manage": { + "endpoint": "legal.manage", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/legal", + "isDynamic": false + } + ] + } + ] + }, + "networks.create_group": { + "endpoint": "networks.create_group", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/networks/create", + "isDynamic": false + } + ] + } + ] + }, + "networks.delete_group": { + "endpoint": "networks.delete_group", + "rules": [ + { + "args": [ + "network_group_id" + ], + "converters": { + "network_group_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/networks/", + "isDynamic": false + }, + { + "data": "network_group_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "networks.edit_group": { + "endpoint": "networks.edit_group", + "rules": [ + { + "args": [ + "network_group_id" + ], + "converters": { + "network_group_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/networks/", + "isDynamic": false + }, + { + "data": "network_group_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "networks.manage": { + "endpoint": "networks.manage", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/networks", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "news.create_news": { + "endpoint": "news.create_news", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/news/create", + "isDynamic": false + } + ] + } + ] + }, + "news.delete_news": { + "endpoint": "news.delete_news", + "rules": [ + { + "args": [ + "news_id" + ], + "converters": { + "news_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/news/", + "isDynamic": false + }, + { + "data": "news_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "news.display": { + "endpoint": "news.display", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/news", + "isDynamic": false + } + ] + } + ] + }, + "news.edit_news": { + "endpoint": "news.edit_news", + "rules": [ + { + "args": [ + "news_id" + ], + "converters": { + "news_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/news/", + "isDynamic": false + }, + { + "data": "news_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "news.manage": { + "endpoint": "news.manage", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/news", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "news.settings": { + "endpoint": "news.settings", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/news/settings", + "isDynamic": false + } + ] + } + ] + }, + "oauth.app_delete": { + "endpoint": "oauth.app_delete", + "rules": [ + { + "args": [ + "id" + ], + "converters": { + "id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/apps/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "oauth.app_details": { + "endpoint": "oauth.app_details", + "rules": [ + { + "args": [ + "id" + ], + "converters": { + "id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/apps/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "oauth.app_new": { + "endpoint": "oauth.app_new", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/apps/new", + "isDynamic": false + } + ] + } + ] + }, + "oauth.app_reset": { + "endpoint": "oauth.app_reset", + "rules": [ + { + "args": [ + "id" + ], + "converters": { + "id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/apps/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + }, + { + "data": "/reset", + "isDynamic": false + } + ] + } + ] + }, + "oauth.app_revoke": { + "endpoint": "oauth.app_revoke", + "rules": [ + { + "args": [ + "id" + ], + "converters": { + "id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/apps/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + }, + { + "data": "/revoke", + "isDynamic": false + } + ] + } + ] + }, + "oauth.apps": { + "endpoint": "oauth.apps", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/apps", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "oauth.oauth_authorize": { + "endpoint": "oauth.oauth_authorize", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/oauth/authorize", + "isDynamic": false + } + ] + } + ] + }, + "oauth.oauth_errors": { + "endpoint": "oauth.oauth_errors", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/oauth/errors", + "isDynamic": false + } + ] + } + ] + }, + "oauth.oauth_token": { + "endpoint": "oauth.oauth_token", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/oauth/token", + "isDynamic": false + } + ] + } + ] + }, + "oauth.user_profile": { + "endpoint": "oauth.user_profile", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/applications", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/applications", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "oauth.user_token_revoke": { + "endpoint": "oauth.user_token_revoke", + "rules": [ + { + "args": [ + "id", + "user_id" + ], + "converters": { + "id": "IntegerConverter", + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/applications/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + }, + { + "data": "/revoke", + "isDynamic": false + } + ] + }, + { + "args": [ + "id" + ], + "converters": { + "id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/applications/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + }, + { + "data": "/revoke", + "isDynamic": false + } + ] + } + ] + }, + "papers.api_delete_comment": { + "endpoint": "papers.api_delete_comment", + "rules": [ + { + "args": [ + "comment_id", + "confId", + "contrib_id", + "revision_id" + ], + "converters": { + "comment_id": "IntegerConverter", + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/api/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/revision/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/comment/", + "isDynamic": false + }, + { + "data": "comment_id", + "isDynamic": true + } + ] + } + ] + }, + "papers.api_judge_paper": { + "endpoint": "papers.api_judge_paper", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/api/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/judge", + "isDynamic": false + } + ] + } + ] + }, + "papers.api_paper_details": { + "endpoint": "papers.api_paper_details", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/api/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + } + ] + } + ] + }, + "papers.api_reset_paper_state": { + "endpoint": "papers.api_reset_paper_state", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/api/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + } + ] + } + ] + }, + "papers.api_submit_comment": { + "endpoint": "papers.api_submit_comment", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/api/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/comment", + "isDynamic": false + } + ] + } + ] + }, + "papers.api_submit_revision": { + "endpoint": "papers.api_submit_revision", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/api/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/paper/submit", + "isDynamic": false + } + ] + } + ] + }, + "papers.assign_papers": { + "endpoint": "papers.assign_papers", + "rules": [ + { + "args": [ + "confId", + "management", + "role" + ], + "converters": { + "role": "AnyConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/assignment-list/assign/", + "isDynamic": false + }, + { + "data": "role", + "isDynamic": true + } + ] + }, + { + "args": [ + "confId", + "management", + "role" + ], + "converters": { + "role": "AnyConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/judging/assign/", + "isDynamic": false + }, + { + "data": "role", + "isDynamic": true + } + ] + } + ] + }, + "papers.call_for_papers": { + "endpoint": "papers.call_for_papers", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "papers.close_cfp": { + "endpoint": "papers.close_cfp", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/close", + "isDynamic": false + } + ] + } + ] + }, + "papers.contact_staff": { + "endpoint": "papers.contact_staff", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/teams/contact", + "isDynamic": false + } + ] + } + ] + }, + "papers.create_reviewing_question": { + "endpoint": "papers.create_reviewing_question", + "rules": [ + { + "args": [ + "confId", + "review_type" + ], + "converters": { + "review_type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/questions/", + "isDynamic": false + }, + { + "data": "review_type", + "isDynamic": true + }, + { + "data": "/create", + "isDynamic": false + } + ] + } + ] + }, + "papers.customize_paper_list": { + "endpoint": "papers.customize_paper_list", + "rules": [ + { + "args": [ + "confId", + "management" + ], + "converters": {}, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/assignment-list/customize", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "management" + ], + "converters": {}, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/judging/customize", + "isDynamic": false + } + ] + } + ] + }, + "papers.delete_comment": { + "endpoint": "papers.delete_comment", + "rules": [ + { + "args": [ + "comment_id", + "confId", + "contrib_id", + "revision_id" + ], + "converters": { + "comment_id": "IntegerConverter", + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/revision/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/comment/", + "isDynamic": false + }, + { + "data": "comment_id", + "isDynamic": true + } + ] + } + ] + }, + "papers.delete_reviewing_question": { + "endpoint": "papers.delete_reviewing_question", + "rules": [ + { + "args": [ + "confId", + "question_id", + "review_type" + ], + "converters": { + "question_id": "IntegerConverter", + "review_type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/questions/", + "isDynamic": false + }, + { + "data": "review_type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "question_id", + "isDynamic": true + } + ] + } + ] + }, + "papers.delete_template": { + "endpoint": "papers.delete_template", + "rules": [ + { + "args": [ + "confId", + "filename", + "template_id" + ], + "converters": { + "template_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/templates/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "-", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "papers.download_file": { + "endpoint": "papers.download_file", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "file_id", + "filename" + ], + "converters": { + "contrib_id": "IntegerConverter", + "file_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/files/", + "isDynamic": false + }, + { + "data": "file_id", + "isDynamic": true + }, + { + "data": "-", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "papers.download_papers": { + "endpoint": "papers.download_papers", + "rules": [ + { + "args": [ + "confId", + "management" + ], + "converters": {}, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/assignment-list/download", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "management" + ], + "converters": {}, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/judging/download", + "isDynamic": false + } + ] + } + ] + }, + "papers.download_template": { + "endpoint": "papers.download_template", + "rules": [ + { + "args": [ + "confId", + "filename", + "template_id" + ], + "converters": { + "template_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/templates/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "-", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "papers.edit_comment": { + "endpoint": "papers.edit_comment", + "rules": [ + { + "args": [ + "comment_id", + "confId", + "contrib_id", + "revision_id" + ], + "converters": { + "comment_id": "IntegerConverter", + "contrib_id": "IntegerConverter", + "revision_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/revision/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/comment/", + "isDynamic": false + }, + { + "data": "comment_id", + "isDynamic": true + } + ] + } + ] + }, + "papers.edit_review": { + "endpoint": "papers.edit_review", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "review_id", + "revision_id" + ], + "converters": { + "contrib_id": "IntegerConverter", + "review_id": "IntegerConverter", + "revision_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/revision/", + "isDynamic": false + }, + { + "data": "revision_id", + "isDynamic": true + }, + { + "data": "/review/", + "isDynamic": false + }, + { + "data": "review_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "papers.edit_reviewing_question": { + "endpoint": "papers.edit_reviewing_question", + "rules": [ + { + "args": [ + "confId", + "question_id", + "review_type" + ], + "converters": { + "question_id": "IntegerConverter", + "review_type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/questions/", + "isDynamic": false + }, + { + "data": "review_type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "question_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "papers.edit_template": { + "endpoint": "papers.edit_template", + "rules": [ + { + "args": [ + "confId", + "filename", + "template_id" + ], + "converters": { + "template_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/templates/", + "isDynamic": false + }, + { + "data": "template_id", + "isDynamic": true + }, + { + "data": "-", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "papers.judge_paper": { + "endpoint": "papers.judge_paper", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/judgment", + "isDynamic": false + } + ] + } + ] + }, + "papers.judge_papers": { + "endpoint": "papers.judge_papers", + "rules": [ + { + "args": [ + "confId", + "management" + ], + "converters": {}, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/assignment-list/judge", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "management" + ], + "converters": {}, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/judging/judge", + "isDynamic": false + } + ] + } + ] + }, + "papers.manage_competences": { + "endpoint": "papers.manage_competences", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/teams/competences", + "isDynamic": false + } + ] + } + ] + }, + "papers.manage_deadline": { + "endpoint": "papers.manage_deadline", + "rules": [ + { + "args": [ + "confId", + "role" + ], + "converters": { + "role": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/deadlines/", + "isDynamic": false + }, + { + "data": "role", + "isDynamic": true + } + ] + } + ] + }, + "papers.manage_reviewing_questions": { + "endpoint": "papers.manage_reviewing_questions", + "rules": [ + { + "args": [ + "confId", + "review_type" + ], + "converters": { + "review_type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/questions/", + "isDynamic": false + }, + { + "data": "review_type", + "isDynamic": true + } + ] + } + ] + }, + "papers.manage_reviewing_settings": { + "endpoint": "papers.manage_reviewing_settings", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/settings", + "isDynamic": false + } + ] + } + ] + }, + "papers.manage_teams": { + "endpoint": "papers.manage_teams", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/teams", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "papers.manage_templates": { + "endpoint": "papers.manage_templates", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/templates", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "papers.management": { + "endpoint": "papers.management", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "papers.new_paper_timeline": { + "endpoint": "papers.new_paper_timeline", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/new", + "isDynamic": false + } + ] + } + ] + }, + "papers.open_cfp": { + "endpoint": "papers.open_cfp", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/open", + "isDynamic": false + } + ] + } + ] + }, + "papers.paper_timeline": { + "endpoint": "papers.paper_timeline", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "papers.papers_list": { + "endpoint": "papers.papers_list", + "rules": [ + { + "args": [ + "confId", + "management" + ], + "converters": {}, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/assignment-list", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "management" + ], + "converters": {}, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/judging", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "papers.reset_paper_state": { + "endpoint": "papers.reset_paper_state", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/judgment", + "isDynamic": false + } + ] + } + ] + }, + "papers.reviewing_area": { + "endpoint": "papers.reviewing_area", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/reviewing", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "papers.schedule_cfp": { + "endpoint": "papers.schedule_cfp", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/schedule", + "isDynamic": false + } + ] + } + ] + }, + "papers.select_contribution": { + "endpoint": "papers.select_contribution", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/select-contribution", + "isDynamic": false + } + ] + } + ] + }, + "papers.sort_reviewing_questions": { + "endpoint": "papers.sort_reviewing_questions", + "rules": [ + { + "args": [ + "confId", + "review_type" + ], + "converters": { + "review_type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/questions/", + "isDynamic": false + }, + { + "data": "review_type", + "isDynamic": true + }, + { + "data": "/sort", + "isDynamic": false + } + ] + } + ] + }, + "papers.submit_comment": { + "endpoint": "papers.submit_comment", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/comment", + "isDynamic": false + } + ] + } + ] + }, + "papers.submit_review": { + "endpoint": "papers.submit_review", + "rules": [ + { + "args": [ + "confId", + "contrib_id", + "review_type" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/review/type/", + "isDynamic": false + }, + { + "data": "review_type", + "isDynamic": true + } + ] + } + ] + }, + "papers.submit_revision": { + "endpoint": "papers.submit_revision", + "rules": [ + { + "args": [ + "confId", + "contrib_id" + ], + "converters": { + "contrib_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/contributions/", + "isDynamic": false + }, + { + "data": "contrib_id", + "isDynamic": true + }, + { + "data": "/paper/submit", + "isDynamic": false + } + ] + } + ] + }, + "papers.switch": { + "endpoint": "papers.switch", + "rules": [ + { + "args": [ + "confId", + "reviewing_type" + ], + "converters": { + "reviewing_type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/enable/", + "isDynamic": false + }, + { + "data": "reviewing_type", + "isDynamic": true + } + ] + } + ] + }, + "papers.unassign_papers": { + "endpoint": "papers.unassign_papers", + "rules": [ + { + "args": [ + "confId", + "management", + "role" + ], + "converters": { + "role": "AnyConverter" + }, + "defaults": { + "management": true + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/assignment-list/unassign/", + "isDynamic": false + }, + { + "data": "role", + "isDynamic": true + } + ] + }, + { + "args": [ + "confId", + "management", + "role" + ], + "converters": { + "role": "AnyConverter" + }, + "defaults": { + "management": false + }, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/papers/judging/unassign/", + "isDynamic": false + }, + { + "data": "role", + "isDynamic": true + } + ] + } + ] + }, + "papers.upload_template": { + "endpoint": "papers.upload_template", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/papers/templates/add", + "isDynamic": false + } + ] + } + ] + }, + "payment.admin_plugin_settings": { + "endpoint": "payment.admin_plugin_settings", + "rules": [ + { + "args": [ + "plugin" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/payment/", + "isDynamic": false + }, + { + "data": "plugin", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "payment.admin_settings": { + "endpoint": "payment.admin_settings", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/payment", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "payment.event_payment": { + "endpoint": "payment.event_payment", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/checkout", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "payment.event_payment_conditions": { + "endpoint": "payment.event_payment_conditions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/payment/conditions", + "isDynamic": false + } + ] + } + ] + }, + "payment.event_payment_form": { + "endpoint": "payment.event_payment_form", + "rules": [ + { + "args": [ + "confId", + "reg_form_id" + ], + "converters": { + "reg_form_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/registrations/", + "isDynamic": false + }, + { + "data": "reg_form_id", + "isDynamic": true + }, + { + "data": "/checkout/form", + "isDynamic": false + } + ] + } + ] + }, + "payment.event_plugin_edit": { + "endpoint": "payment.event_plugin_edit", + "rules": [ + { + "args": [ + "confId", + "method" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/payments/method/", + "isDynamic": false + }, + { + "data": "method", + "isDynamic": true + } + ] + } + ] + }, + "payment.event_settings": { + "endpoint": "payment.event_settings", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/payments", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "payment.event_settings_edit": { + "endpoint": "payment.event_settings_edit", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/payments/settings", + "isDynamic": false + } + ] + } + ] + }, + "persons.edit_person": { + "endpoint": "persons.edit_person", + "rules": [ + { + "args": [ + "confId", + "person_id" + ], + "converters": { + "person_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/persons/", + "isDynamic": false + }, + { + "data": "person_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "persons.email_event_persons": { + "endpoint": "persons.email_event_persons", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/persons/email", + "isDynamic": false + } + ] + } + ] + }, + "persons.grant_modification_rights": { + "endpoint": "persons.grant_modification_rights", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/persons/grant-modification", + "isDynamic": false + } + ] + } + ] + }, + "persons.grant_submission_rights": { + "endpoint": "persons.grant_submission_rights", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/persons/grant-submission", + "isDynamic": false + } + ] + } + ] + }, + "persons.person_list": { + "endpoint": "persons.person_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/persons", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "persons.revoke_submission_rights": { + "endpoint": "persons.revoke_submission_rights", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/persons/revoke-submission", + "isDynamic": false + } + ] + } + ] + }, + "plugin_vc_zoom.set_room_owner": { + "endpoint": "plugin_vc_zoom.set_room_owner", + "rules": [ + { + "args": [ + "confId", + "event_vc_room_id", + "service" + ], + "converters": { + "event_vc_room_id": "IntegerConverter", + "service": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/videoconference/", + "isDynamic": false + }, + { + "data": "service", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "event_vc_room_id", + "isDynamic": true + }, + { + "data": "/room-owner", + "isDynamic": false + } + ] + } + ] + }, + "plugin_vc_zoom.static": { + "endpoint": "plugin_vc_zoom.static", + "rules": [ + { + "args": [ + "filename" + ], + "converters": { + "filename": "PathConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/static/plugins/vc_zoom/", + "isDynamic": false + }, + { + "data": "filename", + "isDynamic": true + } + ] + } + ] + }, + "plugins.details": { + "endpoint": "plugins.details", + "rules": [ + { + "args": [ + "plugin" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/plugins/", + "isDynamic": false + }, + { + "data": "plugin", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "plugins.index": { + "endpoint": "plugins.index", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/plugins", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "rb.404": { + "endpoint": "rb.404", + "rules": [ + { + "args": [ + "path" + ], + "converters": { + "path": "PathConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/", + "isDynamic": false + }, + { + "data": "path", + "isDynamic": true + } + ] + } + ] + }, + "rb.active_bookings": { + "endpoint": "rb.active_bookings", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/bookings/active", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_attributes": { + "endpoint": "rb.admin_attributes", + "rules": [ + { + "args": [ + "attribute_id" + ], + "converters": { + "attribute_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/attributes/", + "isDynamic": false + }, + { + "data": "attribute_id", + "isDynamic": true + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/attributes", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_equipment_types": { + "endpoint": "rb.admin_equipment_types", + "rules": [ + { + "args": [ + "equipment_type_id" + ], + "converters": { + "equipment_type_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/equipment-types/", + "isDynamic": false + }, + { + "data": "equipment_type_id", + "isDynamic": true + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/equipment-types", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_features": { + "endpoint": "rb.admin_features", + "rules": [ + { + "args": [ + "feature_id" + ], + "converters": { + "feature_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/features/", + "isDynamic": false + }, + { + "data": "feature_id", + "isDynamic": true + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/features", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_locations": { + "endpoint": "rb.admin_locations", + "rules": [ + { + "args": [ + "location_id" + ], + "converters": { + "location_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/locations/", + "isDynamic": false + }, + { + "data": "location_id", + "isDynamic": true + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/locations", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_map_areas": { + "endpoint": "rb.admin_map_areas", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/map-areas", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_room": { + "endpoint": "rb.admin_room", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.admin_room_attributes": { + "endpoint": "rb.admin_room_attributes", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/attributes", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_room_availability": { + "endpoint": "rb.admin_room_availability", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/availability", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_room_equipment": { + "endpoint": "rb.admin_room_equipment", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/equipment", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_room_photo": { + "endpoint": "rb.admin_room_photo", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/photo", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_rooms": { + "endpoint": "rb.admin_rooms", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/rooms", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_settings": { + "endpoint": "rb.admin_settings", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/settings", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_update_room_attributes": { + "endpoint": "rb.admin_update_room_attributes", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/attributes", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_update_room_availability": { + "endpoint": "rb.admin_update_room_availability", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/availability", + "isDynamic": false + } + ] + } + ] + }, + "rb.admin_update_room_equipment": { + "endpoint": "rb.admin_update_room_equipment", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/admin/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/equipment", + "isDynamic": false + } + ] + } + ] + }, + "rb.blocking": { + "endpoint": "rb.blocking", + "rules": [ + { + "args": [ + "blocking_id" + ], + "converters": { + "blocking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/blockings/", + "isDynamic": false + }, + { + "data": "blocking_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.blocking_actions": { + "endpoint": "rb.blocking_actions", + "rules": [ + { + "args": [ + "action", + "blocking_id", + "room_id" + ], + "converters": { + "action": "AnyConverter", + "blocking_id": "IntegerConverter", + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/blockings/", + "isDynamic": false + }, + { + "data": "blocking_id", + "isDynamic": true + }, + { + "data": "/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "action", + "isDynamic": true + } + ] + } + ] + }, + "rb.blocking_link": { + "endpoint": "rb.blocking_link", + "rules": [ + { + "args": [ + "blocking_id" + ], + "converters": { + "blocking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/blocking/", + "isDynamic": false + }, + { + "data": "blocking_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.blockings": { + "endpoint": "rb.blockings", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/blockings", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "rb.booking_details": { + "endpoint": "rb.booking_details", + "rules": [ + { + "args": [ + "booking_id" + ], + "converters": { + "booking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/bookings/", + "isDynamic": false + }, + { + "data": "booking_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.booking_edit_calendars": { + "endpoint": "rb.booking_edit_calendars", + "rules": [ + { + "args": [ + "booking_id" + ], + "converters": { + "booking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/bookings/", + "isDynamic": false + }, + { + "data": "booking_id", + "isDynamic": true + }, + { + "data": "/edit/calendars", + "isDynamic": false + } + ] + } + ] + }, + "rb.booking_link": { + "endpoint": "rb.booking_link", + "rules": [ + { + "args": [ + "booking_id" + ], + "converters": { + "booking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/booking/", + "isDynamic": false + }, + { + "data": "booking_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.booking_occurrence_state_actions": { + "endpoint": "rb.booking_occurrence_state_actions", + "rules": [ + { + "args": [ + "action", + "booking_id", + "date" + ], + "converters": { + "action": "AnyConverter", + "booking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/bookings/", + "isDynamic": false + }, + { + "data": "booking_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "date", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "action", + "isDynamic": true + } + ] + } + ] + }, + "rb.booking_state_actions": { + "endpoint": "rb.booking_state_actions", + "rules": [ + { + "args": [ + "action", + "booking_id" + ], + "converters": { + "action": "AnyConverter", + "booking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/bookings/", + "isDynamic": false + }, + { + "data": "booking_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "action", + "isDynamic": true + } + ] + } + ] + }, + "rb.calendar": { + "endpoint": "rb.calendar", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/calendar", + "isDynamic": false + } + ] + } + ] + }, + "rb.check_room_available": { + "endpoint": "rb.check_room_available", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/availability/simple", + "isDynamic": false + } + ] + } + ] + }, + "rb.config": { + "endpoint": "rb.config", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/config", + "isDynamic": false + } + ] + } + ] + }, + "rb.create_blocking": { + "endpoint": "rb.create_blocking", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/blockings", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "rb.create_booking": { + "endpoint": "rb.create_booking", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/booking/create", + "isDynamic": false + } + ] + } + ] + }, + "rb.delete_blocking": { + "endpoint": "rb.delete_blocking", + "rules": [ + { + "args": [ + "blocking_id" + ], + "converters": { + "blocking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/blockings/", + "isDynamic": false + }, + { + "data": "blocking_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.delete_booking": { + "endpoint": "rb.delete_booking", + "rules": [ + { + "args": [ + "booking_id" + ], + "converters": { + "booking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/bookings/", + "isDynamic": false + }, + { + "data": "booking_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.equipment_types": { + "endpoint": "rb.equipment_types", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/equipment", + "isDynamic": false + } + ] + } + ] + }, + "rb.event_booking_list": { + "endpoint": "rb.event_booking_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/rooms", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "rb.event_linkable_contributions": { + "endpoint": "rb.event_linkable_contributions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/rooms/linking/contributions", + "isDynamic": false + } + ] + } + ] + }, + "rb.event_linkable_session_blocks": { + "endpoint": "rb.event_linkable_session_blocks", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/rooms/linking/session-blocks", + "isDynamic": false + } + ] + } + ] + }, + "rb.events": { + "endpoint": "rb.events", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/events", + "isDynamic": false + } + ] + } + ] + }, + "rb.export_bookings": { + "endpoint": "rb.export_bookings", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/bookings/export", + "isDynamic": false + } + ] + } + ] + }, + "rb.export_bookings_file": { + "endpoint": "rb.export_bookings_file", + "rules": [ + { + "args": [ + "format" + ], + "converters": { + "format": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/bookings/export/bookings.", + "isDynamic": false + }, + { + "data": "format", + "isDynamic": true + } + ] + } + ] + }, + "rb.favorite_rooms": { + "endpoint": "rb.favorite_rooms", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/user/favorite-rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/user/favorite-rooms", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "rb.linked_object_data": { + "endpoint": "rb.linked_object_data", + "rules": [ + { + "args": [ + "id", + "type" + ], + "converters": { + "id": "IntegerConverter", + "type": "AnyConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/link-info/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + } + ] + } + ] + }, + "rb.locations": { + "endpoint": "rb.locations", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/locations", + "isDynamic": false + } + ] + } + ] + }, + "rb.map_areas": { + "endpoint": "rb.map_areas", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/map-areas", + "isDynamic": false + } + ] + } + ] + }, + "rb.my_bookings": { + "endpoint": "rb.my_bookings", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/bookings/mine", + "isDynamic": false + } + ] + } + ] + }, + "rb.my_bookings_link": { + "endpoint": "rb.my_bookings_link", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/my-bookings", + "isDynamic": false + } + ] + } + ] + }, + "rb.permission_types": { + "endpoint": "rb.permission_types", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/permission-types", + "isDynamic": false + } + ] + } + ] + }, + "rb.room": { + "endpoint": "rb.room", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.room_attributes": { + "endpoint": "rb.room_attributes", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/attributes", + "isDynamic": false + } + ] + } + ] + }, + "rb.room_availability": { + "endpoint": "rb.room_availability", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/availability", + "isDynamic": false + } + ] + } + ] + }, + "rb.room_link": { + "endpoint": "rb.room_link", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/room/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.room_permissions": { + "endpoint": "rb.room_permissions", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/permissions", + "isDynamic": false + } + ] + } + ] + }, + "rb.room_photo": { + "endpoint": "rb.room_photo", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": ".jpg", + "isDynamic": false + } + ] + } + ] + }, + "rb.room_stats": { + "endpoint": "rb.room_stats", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/stats", + "isDynamic": false + } + ] + } + ] + }, + "rb.roombooking": { + "endpoint": "rb.roombooking", + "rules": [ + { + "args": [ + "path" + ], + "converters": { + "path": "PathConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/", + "isDynamic": false + }, + { + "data": "path", + "isDynamic": true + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "rb.rooms": { + "endpoint": "rb.rooms", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/rooms", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "rb.rooms_permissions": { + "endpoint": "rb.rooms_permissions", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/rooms/permissions", + "isDynamic": false + } + ] + } + ] + }, + "rb.search_rooms": { + "endpoint": "rb.search_rooms", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/rooms/search", + "isDynamic": false + } + ] + } + ] + }, + "rb.sprite": { + "endpoint": "rb.sprite", + "rules": [ + { + "args": [ + "version" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/rooms-sprite-", + "isDynamic": false + }, + { + "data": "version", + "isDynamic": true + }, + { + "data": ".jpg", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/rooms-sprite.jpg", + "isDynamic": false + } + ] + } + ] + }, + "rb.stats": { + "endpoint": "rb.stats", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/stats", + "isDynamic": false + } + ] + } + ] + }, + "rb.suggestions": { + "endpoint": "rb.suggestions", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/suggestions", + "isDynamic": false + } + ] + } + ] + }, + "rb.timeline": { + "endpoint": "rb.timeline", + "rules": [ + { + "args": [ + "room_id" + ], + "converters": { + "room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/rooms/", + "isDynamic": false + }, + { + "data": "room_id", + "isDynamic": true + }, + { + "data": "/timeline", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/timeline", + "isDynamic": false + } + ] + } + ] + }, + "rb.update_blocking": { + "endpoint": "rb.update_blocking", + "rules": [ + { + "args": [ + "blocking_id" + ], + "converters": { + "blocking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/blockings/", + "isDynamic": false + }, + { + "data": "blocking_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.update_booking": { + "endpoint": "rb.update_booking", + "rules": [ + { + "args": [ + "booking_id" + ], + "converters": { + "booking_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/bookings/", + "isDynamic": false + }, + { + "data": "booking_id", + "isDynamic": true + } + ] + } + ] + }, + "rb.user_info": { + "endpoint": "rb.user_info", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/rooms/api/user", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "requests.event_requests": { + "endpoint": "requests.event_requests", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/requests", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "requests.event_requests_details": { + "endpoint": "requests.event_requests_details", + "rules": [ + { + "args": [ + "confId", + "type" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/requests/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "requests.event_requests_process": { + "endpoint": "requests.event_requests_process", + "rules": [ + { + "args": [ + "confId", + "type" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/requests/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/process", + "isDynamic": false + } + ] + } + ] + }, + "requests.event_requests_withdraw": { + "endpoint": "requests.event_requests_withdraw", + "rules": [ + { + "args": [ + "confId", + "type" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/requests/", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + }, + { + "data": "/withdraw", + "isDynamic": false + } + ] + } + ] + }, + "sessions.acl": { + "endpoint": "sessions.acl", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/acl", + "isDynamic": false + } + ] + } + ] + }, + "sessions.acl_message": { + "endpoint": "sessions.acl_message", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/acl-message", + "isDynamic": false + } + ] + } + ] + }, + "sessions.create_session": { + "endpoint": "sessions.create_session", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/create", + "isDynamic": false + } + ] + } + ] + }, + "sessions.create_type": { + "endpoint": "sessions.create_type", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/types/create", + "isDynamic": false + } + ] + } + ] + }, + "sessions.delete_sessions": { + "endpoint": "sessions.delete_sessions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/delete", + "isDynamic": false + } + ] + } + ] + }, + "sessions.delete_type": { + "endpoint": "sessions.delete_type", + "rules": [ + { + "args": [ + "confId", + "session_type_id" + ], + "converters": { + "session_type_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/types/", + "isDynamic": false + }, + { + "data": "session_type_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "sessions.display_session": { + "endpoint": "sessions.display_session", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "sessions.export_csv": { + "endpoint": "sessions.export_csv", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/sessions.csv", + "isDynamic": false + } + ] + } + ] + }, + "sessions.export_excel": { + "endpoint": "sessions.export_excel", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/sessions.xlsx", + "isDynamic": false + } + ] + } + ] + }, + "sessions.export_ics": { + "endpoint": "sessions.export_ics", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/session.ics", + "isDynamic": false + } + ] + } + ] + }, + "sessions.export_pdf": { + "endpoint": "sessions.export_pdf", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/sessions.pdf", + "isDynamic": false + } + ] + } + ] + }, + "sessions.export_session_timetable": { + "endpoint": "sessions.export_session_timetable", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/session-timetable.pdf", + "isDynamic": false + } + ] + } + ] + }, + "sessions.manage_session_block": { + "endpoint": "sessions.manage_session_block", + "rules": [ + { + "args": [ + "block_id", + "confId", + "session_id" + ], + "converters": { + "block_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/blocks/", + "isDynamic": false + }, + { + "data": "block_id", + "isDynamic": true + } + ] + } + ] + }, + "sessions.manage_type": { + "endpoint": "sessions.manage_type", + "rules": [ + { + "args": [ + "confId", + "session_type_id" + ], + "converters": { + "session_type_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/types/", + "isDynamic": false + }, + { + "data": "session_type_id", + "isDynamic": true + } + ] + } + ] + }, + "sessions.manage_types": { + "endpoint": "sessions.manage_types", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/types", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "sessions.modify_session": { + "endpoint": "sessions.modify_session", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/modify", + "isDynamic": false + } + ] + } + ] + }, + "sessions.my_sessions": { + "endpoint": "sessions.my_sessions", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/sessions/mine", + "isDynamic": false + } + ] + } + ] + }, + "sessions.person_list": { + "endpoint": "sessions.person_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/person-list", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "sessions.session_blocks": { + "endpoint": "sessions.session_blocks", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/blocks", + "isDynamic": false + } + ] + } + ] + }, + "sessions.session_list": { + "endpoint": "sessions.session_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "sessions.session_protection": { + "endpoint": "sessions.session_protection", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/protection", + "isDynamic": false + } + ] + } + ] + }, + "sessions.session_rest": { + "endpoint": "sessions.session_rest", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/sessions/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + } + ] + } + ] + }, + "static_site.build": { + "endpoint": "static_site.build", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/offline-copy/build", + "isDynamic": false + } + ] + } + ] + }, + "static_site.download": { + "endpoint": "static_site.download", + "rules": [ + { + "args": [ + "confId", + "id" + ], + "converters": { + "id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/offline-copy/", + "isDynamic": false + }, + { + "data": "id", + "isDynamic": true + }, + { + "data": ".zip", + "isDynamic": false + } + ] + } + ] + }, + "static_site.list": { + "endpoint": "static_site.list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/offline-copy", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "surveys.add_question": { + "endpoint": "surveys.add_question", + "rules": [ + { + "args": [ + "confId", + "section_id", + "survey_id", + "type" + ], + "converters": { + "section_id": "IntegerConverter", + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/question/add-", + "isDynamic": false + }, + { + "data": "type", + "isDynamic": true + } + ] + } + ] + }, + "surveys.add_section": { + "endpoint": "surveys.add_section", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/add-section", + "isDynamic": false + } + ] + } + ] + }, + "surveys.add_text": { + "endpoint": "surveys.add_text", + "rules": [ + { + "args": [ + "confId", + "section_id", + "survey_id" + ], + "converters": { + "section_id": "IntegerConverter", + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/text/add", + "isDynamic": false + } + ] + } + ] + }, + "surveys.close_survey": { + "endpoint": "surveys.close_survey", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/close", + "isDynamic": false + } + ] + } + ] + }, + "surveys.create": { + "endpoint": "surveys.create", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/create", + "isDynamic": false + } + ] + } + ] + }, + "surveys.delete_question": { + "endpoint": "surveys.delete_question", + "rules": [ + { + "args": [ + "confId", + "question_id", + "section_id", + "survey_id" + ], + "converters": { + "question_id": "IntegerConverter", + "section_id": "IntegerConverter", + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/question/", + "isDynamic": false + }, + { + "data": "question_id", + "isDynamic": true + } + ] + } + ] + }, + "surveys.delete_section": { + "endpoint": "surveys.delete_section", + "rules": [ + { + "args": [ + "confId", + "section_id", + "survey_id" + ], + "converters": { + "section_id": "IntegerConverter", + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "surveys.delete_submissions": { + "endpoint": "surveys.delete_submissions", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/submissions", + "isDynamic": false + } + ] + } + ] + }, + "surveys.delete_survey": { + "endpoint": "surveys.delete_survey", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "surveys.delete_text": { + "endpoint": "surveys.delete_text", + "rules": [ + { + "args": [ + "confId", + "section_id", + "survey_id", + "text_id" + ], + "converters": { + "section_id": "IntegerConverter", + "survey_id": "IntegerConverter", + "text_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/text/", + "isDynamic": false + }, + { + "data": "text_id", + "isDynamic": true + } + ] + } + ] + }, + "surveys.display_save_answers": { + "endpoint": "surveys.display_save_answers", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/save", + "isDynamic": false + } + ] + } + ] + }, + "surveys.display_submission": { + "endpoint": "surveys.display_submission", + "rules": [ + { + "args": [ + "confId", + "submission_id", + "survey_id" + ], + "converters": { + "submission_id": "IntegerConverter", + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/submission/", + "isDynamic": false + }, + { + "data": "submission_id", + "isDynamic": true + } + ] + } + ] + }, + "surveys.display_survey_form": { + "endpoint": "surveys.display_survey_form", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + } + ] + } + ] + }, + "surveys.display_survey_list": { + "endpoint": "surveys.display_survey_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/surveys", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "surveys.edit_question": { + "endpoint": "surveys.edit_question", + "rules": [ + { + "args": [ + "confId", + "question_id", + "section_id", + "survey_id" + ], + "converters": { + "question_id": "IntegerConverter", + "section_id": "IntegerConverter", + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/question/", + "isDynamic": false + }, + { + "data": "question_id", + "isDynamic": true + } + ] + } + ] + }, + "surveys.edit_section": { + "endpoint": "surveys.edit_section", + "rules": [ + { + "args": [ + "confId", + "section_id", + "survey_id" + ], + "converters": { + "section_id": "IntegerConverter", + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "surveys.edit_survey": { + "endpoint": "surveys.edit_survey", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + } + ] + } + ] + }, + "surveys.edit_text": { + "endpoint": "surveys.edit_text", + "rules": [ + { + "args": [ + "confId", + "section_id", + "survey_id", + "text_id" + ], + "converters": { + "section_id": "IntegerConverter", + "survey_id": "IntegerConverter", + "text_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/", + "isDynamic": false + }, + { + "data": "section_id", + "isDynamic": true + }, + { + "data": "/text/", + "isDynamic": false + }, + { + "data": "text_id", + "isDynamic": true + } + ] + } + ] + }, + "surveys.export_questionnaire": { + "endpoint": "surveys.export_questionnaire", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/survey.json", + "isDynamic": false + } + ] + } + ] + }, + "surveys.export_submissions_csv": { + "endpoint": "surveys.export_submissions_csv", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/submissions.csv", + "isDynamic": false + } + ] + } + ] + }, + "surveys.export_submissions_excel": { + "endpoint": "surveys.export_submissions_excel", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/submissions.xlsx", + "isDynamic": false + } + ] + } + ] + }, + "surveys.import_questionnaire": { + "endpoint": "surveys.import_questionnaire", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/import", + "isDynamic": false + } + ] + } + ] + }, + "surveys.manage_questionnaire": { + "endpoint": "surveys.manage_questionnaire", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "surveys.manage_survey": { + "endpoint": "surveys.manage_survey", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "surveys.manage_survey_list": { + "endpoint": "surveys.manage_survey_list", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "surveys.open_survey": { + "endpoint": "surveys.open_survey", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/open", + "isDynamic": false + } + ] + } + ] + }, + "surveys.schedule_survey": { + "endpoint": "surveys.schedule_survey", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/schedule", + "isDynamic": false + } + ] + } + ] + }, + "surveys.send_links": { + "endpoint": "surveys.send_links", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/send-links", + "isDynamic": false + } + ] + } + ] + }, + "surveys.sort_items": { + "endpoint": "surveys.sort_items", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/questionnaire/sort", + "isDynamic": false + } + ] + } + ] + }, + "surveys.survey_results": { + "endpoint": "surveys.survey_results", + "rules": [ + { + "args": [ + "confId", + "survey_id" + ], + "converters": { + "survey_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/surveys/", + "isDynamic": false + }, + { + "data": "survey_id", + "isDynamic": true + }, + { + "data": "/results", + "isDynamic": false + } + ] + } + ] + }, + "timetable.add_break": { + "endpoint": "timetable.add_break", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/add-break", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/add-break", + "isDynamic": false + } + ] + } + ] + }, + "timetable.add_contribution": { + "endpoint": "timetable.add_contribution", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/add-contribution", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/add-contribution", + "isDynamic": false + } + ] + } + ] + }, + "timetable.add_session": { + "endpoint": "timetable.add_session", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/add-session", + "isDynamic": false + } + ] + } + ] + }, + "timetable.add_session_block": { + "endpoint": "timetable.add_session_block", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/add-session-block", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/add-session-block", + "isDynamic": false + } + ] + } + ] + }, + "timetable.clone_contribution": { + "endpoint": "timetable.clone_contribution", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/clone-contribution", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/clone-contribution", + "isDynamic": false + } + ] + } + ] + }, + "timetable.delete_entry": { + "endpoint": "timetable.delete_entry", + "rules": [ + { + "args": [ + "confId", + "entry_id", + "session_id" + ], + "converters": { + "entry_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "entry_id" + ], + "converters": { + "entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/delete", + "isDynamic": false + } + ] + } + ] + }, + "timetable.edit_entry": { + "endpoint": "timetable.edit_entry", + "rules": [ + { + "args": [ + "confId", + "entry_id", + "session_id" + ], + "converters": { + "entry_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "entry_id" + ], + "converters": { + "entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/edit", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "timetable.edit_entry_datetime": { + "endpoint": "timetable.edit_entry_datetime", + "rules": [ + { + "args": [ + "confId", + "entry_id", + "session_id" + ], + "converters": { + "entry_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/edit/datetime", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "entry_id" + ], + "converters": { + "entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/edit/datetime", + "isDynamic": false + } + ] + } + ] + }, + "timetable.edit_entry_time": { + "endpoint": "timetable.edit_entry_time", + "rules": [ + { + "args": [ + "confId", + "entry_id", + "session_id" + ], + "converters": { + "entry_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/edit/time", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "entry_id" + ], + "converters": { + "entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/edit/time", + "isDynamic": false + } + ] + } + ] + }, + "timetable.entry_info": { + "endpoint": "timetable.entry_info", + "rules": [ + { + "args": [ + "confId", + "entry_id" + ], + "converters": { + "entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/timetable/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/info", + "isDynamic": false + } + ] + } + ] + }, + "timetable.entry_info_manage": { + "endpoint": "timetable.entry_info_manage", + "rules": [ + { + "args": [ + "confId", + "entry_id", + "session_id" + ], + "converters": { + "entry_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/info", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "entry_id" + ], + "converters": { + "entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/info", + "isDynamic": false + } + ] + } + ] + }, + "timetable.export_default_pdf": { + "endpoint": "timetable.export_default_pdf", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/timetable/timetable.pdf", + "isDynamic": false + } + ] + } + ] + }, + "timetable.export_pdf": { + "endpoint": "timetable.export_pdf", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/timetable/pdf", + "isDynamic": false + } + ] + } + ] + }, + "timetable.fit_session_block": { + "endpoint": "timetable.fit_session_block", + "rules": [ + { + "args": [ + "block_id", + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/block/", + "isDynamic": false + }, + { + "data": "block_id", + "isDynamic": true + }, + { + "data": "/fit", + "isDynamic": false + } + ] + }, + { + "args": [ + "block_id", + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/block/", + "isDynamic": false + }, + { + "data": "block_id", + "isDynamic": true + }, + { + "data": "/fit", + "isDynamic": false + } + ] + } + ] + }, + "timetable.legacy_break_rest": { + "endpoint": "timetable.legacy_break_rest", + "rules": [ + { + "args": [ + "break_id", + "confId" + ], + "converters": { + "break_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/break/", + "isDynamic": false + }, + { + "data": "break_id", + "isDynamic": true + } + ] + } + ] + }, + "timetable.manage_session": { + "endpoint": "timetable.manage_session", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "timetable.management": { + "endpoint": "timetable.management", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "timetable.move_entry": { + "endpoint": "timetable.move_entry", + "rules": [ + { + "args": [ + "confId", + "entry_id", + "session_id" + ], + "converters": { + "entry_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/move", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "entry_id" + ], + "converters": { + "entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/move", + "isDynamic": false + } + ] + } + ] + }, + "timetable.not_scheduled": { + "endpoint": "timetable.not_scheduled", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/not-scheduled", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/not-scheduled", + "isDynamic": false + } + ] + } + ] + }, + "timetable.reschedule": { + "endpoint": "timetable.reschedule", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/reschedule", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/reschedule", + "isDynamic": false + } + ] + } + ] + }, + "timetable.schedule": { + "endpoint": "timetable.schedule", + "rules": [ + { + "args": [ + "block_id", + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/block/", + "isDynamic": false + }, + { + "data": "block_id", + "isDynamic": true + }, + { + "data": "/schedule", + "isDynamic": false + } + ] + }, + { + "args": [ + "block_id", + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/block/", + "isDynamic": false + }, + { + "data": "block_id", + "isDynamic": true + }, + { + "data": "/schedule", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/schedule", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/schedule", + "isDynamic": false + } + ] + } + ] + }, + "timetable.session_rest": { + "endpoint": "timetable.session_rest", + "rules": [ + { + "args": [ + "confId", + "session_id" + ], + "converters": { + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "timetable.shift_entries": { + "endpoint": "timetable.shift_entries", + "rules": [ + { + "args": [ + "confId", + "entry_id", + "session_id" + ], + "converters": { + "entry_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/shift", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "entry_id" + ], + "converters": { + "entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/shift", + "isDynamic": false + } + ] + } + ] + }, + "timetable.swap_entries": { + "endpoint": "timetable.swap_entries", + "rules": [ + { + "args": [ + "confId", + "entry_id", + "session_id" + ], + "converters": { + "entry_id": "IntegerConverter", + "session_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/session/", + "isDynamic": false + }, + { + "data": "session_id", + "isDynamic": true + }, + { + "data": "/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/swap", + "isDynamic": false + } + ] + }, + { + "args": [ + "confId", + "entry_id" + ], + "converters": { + "entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/entry/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + }, + { + "data": "/swap", + "isDynamic": false + } + ] + } + ] + }, + "timetable.timetable": { + "endpoint": "timetable.timetable", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/timetable", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "timetable.timetable_rest": { + "endpoint": "timetable.timetable_rest", + "rules": [ + { + "args": [ + "confId", + "entry_id" + ], + "converters": { + "entry_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable/", + "isDynamic": false + }, + { + "data": "entry_id", + "isDynamic": true + } + ] + }, + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/timetable", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "tracks.create_track": { + "endpoint": "tracks.create_track", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/tracks/create", + "isDynamic": false + } + ] + } + ] + }, + "tracks.create_track_group": { + "endpoint": "tracks.create_track_group", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/track-groups/create", + "isDynamic": false + } + ] + } + ] + }, + "tracks.delete_track": { + "endpoint": "tracks.delete_track", + "rules": [ + { + "args": [ + "confId", + "track_id" + ], + "converters": { + "track_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/tracks/", + "isDynamic": false + }, + { + "data": "track_id", + "isDynamic": true + } + ] + } + ] + }, + "tracks.delete_track_group": { + "endpoint": "tracks.delete_track_group", + "rules": [ + { + "args": [ + "confId", + "track_group_id" + ], + "converters": { + "track_group_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/track-groups/", + "isDynamic": false + }, + { + "data": "track_group_id", + "isDynamic": true + } + ] + } + ] + }, + "tracks.edit_program": { + "endpoint": "tracks.edit_program", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/tracks/program", + "isDynamic": false + } + ] + } + ] + }, + "tracks.edit_track": { + "endpoint": "tracks.edit_track", + "rules": [ + { + "args": [ + "confId", + "track_id" + ], + "converters": { + "track_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/tracks/", + "isDynamic": false + }, + { + "data": "track_id", + "isDynamic": true + } + ] + } + ] + }, + "tracks.edit_track_group": { + "endpoint": "tracks.edit_track_group", + "rules": [ + { + "args": [ + "confId", + "track_group_id" + ], + "converters": { + "track_group_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/track-groups/", + "isDynamic": false + }, + { + "data": "track_group_id", + "isDynamic": true + } + ] + } + ] + }, + "tracks.manage": { + "endpoint": "tracks.manage", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/tracks", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "tracks.program": { + "endpoint": "tracks.program", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/program", + "isDynamic": false + } + ] + } + ] + }, + "tracks.program_pdf": { + "endpoint": "tracks.program_pdf", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/program.pdf", + "isDynamic": false + } + ] + } + ] + }, + "tracks.sort_tracks": { + "endpoint": "tracks.sort_tracks", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/tracks/sort", + "isDynamic": false + } + ] + } + ] + }, + "users.accept_registration_request": { + "endpoint": "users.accept_registration_request", + "rules": [ + { + "args": [ + "request_id" + ], + "converters": { + "request_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/users/registration-requests/", + "isDynamic": false + }, + { + "data": "request_id", + "isDynamic": true + }, + { + "data": "/accept", + "isDynamic": false + } + ] + } + ] + }, + "users.admins": { + "endpoint": "users.admins", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/admins", + "isDynamic": false + } + ] + } + ] + }, + "users.authenticated_user": { + "endpoint": "users.authenticated_user", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/api/user", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.export_dashboard_ics": { + "endpoint": "users.export_dashboard_ics", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/dashboard.ics", + "isDynamic": false + } + ] + } + ] + }, + "users.favorites_api": { + "endpoint": "users.favorites_api", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/api/favorites/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/api/favorites", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.registration_request_list": { + "endpoint": "users.registration_request_list", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/users/registration-requests", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.reject_registration_request": { + "endpoint": "users.reject_registration_request", + "rules": [ + { + "args": [ + "request_id" + ], + "converters": { + "request_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/users/registration-requests/", + "isDynamic": false + }, + { + "data": "request_id", + "isDynamic": true + }, + { + "data": "/reject", + "isDynamic": false + } + ] + } + ] + }, + "users.user_dashboard": { + "endpoint": "users.user_dashboard", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/dashboard", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/dashboard", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.user_emails": { + "endpoint": "users.user_emails", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/emails", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/emails", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.user_emails_delete": { + "endpoint": "users.user_emails_delete", + "rules": [ + { + "args": [ + "email", + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/emails/", + "isDynamic": false + }, + { + "data": "email", + "isDynamic": true + } + ] + }, + { + "args": [ + "email" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/emails/", + "isDynamic": false + }, + { + "data": "email", + "isDynamic": true + } + ] + } + ] + }, + "users.user_emails_set_primary": { + "endpoint": "users.user_emails_set_primary", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/emails/make-primary", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/emails/make-primary", + "isDynamic": false + } + ] + } + ] + }, + "users.user_emails_verify": { + "endpoint": "users.user_emails_verify", + "rules": [ + { + "args": [ + "token", + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/emails/verify/", + "isDynamic": false + }, + { + "data": "token", + "isDynamic": true + } + ] + }, + { + "args": [ + "token" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/emails/verify/", + "isDynamic": false + }, + { + "data": "token", + "isDynamic": true + } + ] + } + ] + }, + "users.user_favorites": { + "endpoint": "users.user_favorites", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/favorites", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/favorites", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.user_favorites_category_api": { + "endpoint": "users.user_favorites_category_api", + "rules": [ + { + "args": [ + "category_id", + "user_id" + ], + "converters": { + "category_id": "IntegerConverter", + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/favorites/categories/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + } + ] + }, + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/favorites/categories/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + } + ] + } + ] + }, + "users.user_favorites_user_remove": { + "endpoint": "users.user_favorites_user_remove", + "rules": [ + { + "args": [ + "fav_user_id", + "user_id" + ], + "converters": { + "fav_user_id": "IntegerConverter", + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/favorites/users/", + "isDynamic": false + }, + { + "data": "fav_user_id", + "isDynamic": true + } + ] + }, + { + "args": [ + "fav_user_id" + ], + "converters": { + "fav_user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/favorites/users/", + "isDynamic": false + }, + { + "data": "fav_user_id", + "isDynamic": true + } + ] + } + ] + }, + "users.user_favorites_users_add": { + "endpoint": "users.user_favorites_users_add", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/favorites/users", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/favorites/users", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.user_preferences": { + "endpoint": "users.user_preferences", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/preferences", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/preferences", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.user_profile": { + "endpoint": "users.user_profile", + "rules": [ + { + "args": [ + "user_id" + ], + "converters": { + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/profile", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + }, + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/profile", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.user_search": { + "endpoint": "users.user_search", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/search", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.user_search_info": { + "endpoint": "users.user_search_info", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/search/info", + "isDynamic": false + } + ] + } + ] + }, + "users.user_suggestions_remove": { + "endpoint": "users.user_suggestions_remove", + "rules": [ + { + "args": [ + "category_id", + "user_id" + ], + "converters": { + "category_id": "IntegerConverter", + "user_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/", + "isDynamic": false + }, + { + "data": "user_id", + "isDynamic": true + }, + { + "data": "/suggestions/categories/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + } + ] + }, + { + "args": [ + "category_id" + ], + "converters": { + "category_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/user/suggestions/categories/", + "isDynamic": false + }, + { + "data": "category_id", + "isDynamic": true + } + ] + } + ] + }, + "users.users_admin": { + "endpoint": "users.users_admin", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/users", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.users_admin_settings": { + "endpoint": "users.users_admin_settings", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/users/settings", + "isDynamic": false + } + ] + } + ] + }, + "users.users_create": { + "endpoint": "users.users_create", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/users/create", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.users_merge": { + "endpoint": "users.users_merge", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/users/merge", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "users.users_merge_check": { + "endpoint": "users.users_merge_check", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/admin/users/merge/check", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "vc.event_videoconference": { + "endpoint": "vc.event_videoconference", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/videoconference", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "vc.manage_vc_rooms": { + "endpoint": "vc.manage_vc_rooms", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/videoconference", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "vc.manage_vc_rooms_create": { + "endpoint": "vc.manage_vc_rooms_create", + "rules": [ + { + "args": [ + "confId", + "service" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/videoconference/", + "isDynamic": false + }, + { + "data": "service", + "isDynamic": true + }, + { + "data": "/create", + "isDynamic": false + } + ] + } + ] + }, + "vc.manage_vc_rooms_modify": { + "endpoint": "vc.manage_vc_rooms_modify", + "rules": [ + { + "args": [ + "confId", + "event_vc_room_id", + "service" + ], + "converters": { + "event_vc_room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/videoconference/", + "isDynamic": false + }, + { + "data": "service", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "event_vc_room_id", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "vc.manage_vc_rooms_refresh": { + "endpoint": "vc.manage_vc_rooms_refresh", + "rules": [ + { + "args": [ + "confId", + "event_vc_room_id", + "service" + ], + "converters": { + "event_vc_room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/videoconference/", + "isDynamic": false + }, + { + "data": "service", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "event_vc_room_id", + "isDynamic": true + }, + { + "data": "/refresh", + "isDynamic": false + } + ] + } + ] + }, + "vc.manage_vc_rooms_remove": { + "endpoint": "vc.manage_vc_rooms_remove", + "rules": [ + { + "args": [ + "confId", + "event_vc_room_id", + "service" + ], + "converters": { + "event_vc_room_id": "IntegerConverter" + }, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/videoconference/", + "isDynamic": false + }, + { + "data": "service", + "isDynamic": true + }, + { + "data": "/", + "isDynamic": false + }, + { + "data": "event_vc_room_id", + "isDynamic": true + }, + { + "data": "/remove", + "isDynamic": false + } + ] + } + ] + }, + "vc.manage_vc_rooms_search": { + "endpoint": "vc.manage_vc_rooms_search", + "rules": [ + { + "args": [ + "confId", + "service" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/videoconference/", + "isDynamic": false + }, + { + "data": "service", + "isDynamic": true + }, + { + "data": "/search", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "vc.manage_vc_rooms_search_form": { + "endpoint": "vc.manage_vc_rooms_search_form", + "rules": [ + { + "args": [ + "confId", + "service" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/videoconference/", + "isDynamic": false + }, + { + "data": "service", + "isDynamic": true + }, + { + "data": "/attach", + "isDynamic": false + }, + { + "data": "/", + "isDynamic": false + } + ] + } + ] + }, + "vc.manage_vc_rooms_select": { + "endpoint": "vc.manage_vc_rooms_select", + "rules": [ + { + "args": [ + "confId" + ], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/event/", + "isDynamic": false + }, + { + "data": "confId", + "isDynamic": true + }, + { + "data": "/manage/videoconference/select", + "isDynamic": false + } + ] + } + ] + }, + "vc.vc_room_list": { + "endpoint": "vc.vc_room_list", + "rules": [ + { + "args": [], + "converters": {}, + "defaults": {}, + "trace": [ + { + "data": "|", + "isDynamic": false + }, + { + "data": "/service/videoconference", + "isDynamic": false + } + ] + } + ] + } + }, + "version": "4d4825ff3312d57fbcb0dc6a5f6805ec" +} \ No newline at end of file diff --git a/webpack-bundles.json b/webpack-bundles.json new file mode 100644 index 0000000..5f28835 --- /dev/null +++ b/webpack-bundles.json @@ -0,0 +1,5 @@ +{ + "entry": { + "main": "./index.js" + } +}