{% extends "Admin.html" %} {% from "Macros.html" import json_input, modal, player_count %} {% block titlearea %}

{% translate %}Session{% endtranslate %} {{ sname }}

{% translate %}Admin chat{% endtranslate %} {% if has_digest %} {% translate %}Digest{% endtranslate %} {% endif %} {% if has_pipelines %} {% translate %}Pipelines{% endtranslate %} {% endif %}
{% endblock titlearea %} {% block head %} {% endblock %} {% block main %}
{% translate %}Associated room{% endtranslate %}
{% if session.room is none %}

{% translate %}This session is not associated with a room.{% endtranslate %}

{% else %}

{% translate %}This session is associated with a room.{% endtranslate %}

{{ session.room }}

{% endif %}
{% translate %}Session properties{% endtranslate %}
{% if not deployment.PUBLIC_DEMO %}
{% translate %}Description{% endtranslate %}
{% if session.description %}

{{ session.description }}

{% else %}

{% translate %}None{% endtranslate %}

{% endif %}
{% endif %} {% if session.config %}
{% translate %}Config{% endtranslate %}

{{ session.config }}

{% endif %}
{% translate %}Apps{% endtranslate %}

{{ " → ".join(session.apps) }}

{% if not deployment.PUBLIC_DEMO %}

{% endif %}

{% translate %}New session{% endtranslate %}

{% translate %}Players{% endtranslate %}

{% translate %}Total{% endtranslate %}

{% translate %}Started{% endtranslate %}

{% translate %}Dropouts{% endtranslate %}

{% translate %}Player URLs{% endtranslate %}

{% translate %}The sessionwide URL is{% endtranslate %}:

{% if len(info) > 0 %}

{% endif %}
{% translate %}Session status{% endtranslate %}

{% if session.active %} {% translate %}Session is marked as active.{% endtranslate %} {% else %} {% translate %}Session is marked as inactive.{% endtranslate %} {% endif %}

{% if session._uproot_initialized %} {% translate %}Session is initialized.{% endtranslate %} {% else %} {% translate %}Session is not initialized.{% endtranslate %} {% endif %}

{% if session._uproot_testing %} {% translate %}Testing elements are displayed for all participants.{% endtranslate %} {% else %} {% translate %} Testing elements are disabled except for admins.{% endtranslate %} {% endif %}

{% if session._uproot_simulate %}

{% translate %}Simulating responses.{% endtranslate %}

{% endif %}
{% translate %}Settings{% endtranslate %}
{% if session.settings %}

{% translate %}Custom settings applied via session.settings.{% endtranslate %}

{% else %}

{% translate %}No custom entries in session.settings.{% endtranslate %}

{% endif %}

{% if not session._uproot_initialized %}

{% endif %}

{% translate %}Player monitor{% endtranslate %}

{% call modal(_, "manage", title=_("Manage players"), action_text=_("Save changes"), action_handler="actuallyManage()") %} {{ player_count(_) }}

{% translate %}If the next page is not shown, it will be skipped.{% endtranslate %}

{% translate %}If the previous page was not shown, this will return to the current page.{% endtranslate %}

{% translate %}This terminates the study for the selected player(s).{% endtranslate %}

{% translate %}This will run all dropout handlers registered with watch_for_dropout().{% endtranslate %} {% translate %}This may run new_player for players who have not started yet.{% endtranslate %}
{% endcall %} {% call modal(_, "insert", title=_("Insert fields"), action_text=_("Insert fields"), action_handler="actuallyInsert()") %} {{ player_count(_) }}

{% translate %}Please enter a valid JSON object. For example, this inserts the fields foo (an integer) and bar (a list):{% endtranslate %}
{ "foo": -42, "bar": [10, 20, 30] }

{% translate %}Inserting fields is not considered good practice. Use this feature only when testing or in emergencies. Manual field insertions are irrevocably recorded as such in the database.{% endtranslate %}

{% endcall %} {% call modal(_, "adminmessage_send", title=_("Send message"), action_text=_("Send message"), action_handler="actuallyAdminmessageSend()") %} {{ player_count(_) }}
{% endcall %} {% call modal(_, "redirect", title=_("Redirect to URL"), action_text=_("Redirect players"), action_handler="actuallyRedirect()") %} {{ player_count(_) }}
{% translate %}URL must start with http:// or https://{% endtranslate %}
{% endcall %} {% call modal(_, "group", title=_("Group players"), action_text=_("Apply grouping"), action_handler="actuallyGroup()") %} {{ player_count(_) }}
{% translate %}Number of selected players must be divisible by group size.{% endtranslate %}

{% endcall %} {% call modal(_, "adjust_timeout", title=_("Adjust timeout"), action_text=_("Apply"), action_handler="actuallyAdjustTimeout()") %} {{ player_count(_) }}
{% translate %}Use negative values to reduce the timeout.{% endtranslate %}
{% endcall %} {% call modal(_, "settings", title=_("Change settings"), action_text=_("Save settings"), action_handler="saveSettings()") %} {{ json_input(_, "settings-input", _("Settings"), value=session.settings | tojson(indent=2), help_text=_("Input is evaluated as a JavaScript expression. You can use comments, calculations, variables, etc. The result must be JSON-serializable.")) }} {% endcall %} {% endblock main %} {% block late %} {% endblock late %}