From deacd0dfc195bca41af631114804d29937337cd8 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 17 Jan 2024 02:11:31 +0900 Subject: . --- services/app/templates/_page.html.twig | 23 ++++++++++ services/app/templates/admin_answer_edit.html.twig | 44 ++++++++++++++++++ services/app/templates/admin_answer_list.html.twig | 41 +++++++++++++++++ services/app/templates/admin_overview.html.twig | 13 ++++++ services/app/templates/admin_quiz_edit.html.twig | 11 +++++ services/app/templates/admin_quiz_list.html.twig | 21 +++++++++ services/app/templates/admin_quiz_new.html.twig | 8 ++++ .../app/templates/admin_testcase_edit.html.twig | 22 +++++++++ .../app/templates/admin_testcase_list.html.twig | 18 ++++++++ .../app/templates/admin_testcase_new.html.twig | 12 +++++ services/app/templates/admin_user_edit.html.twig | 8 ++++ services/app/templates/admin_user_list.html.twig | 14 ++++++ services/app/templates/answer_list.html.twig | 45 ++++++++++++++++++ services/app/templates/answer_new.html.twig | 12 +++++ services/app/templates/answer_view.html.twig | 38 ++++++++++++++++ services/app/templates/form/_form.html.twig | 24 ++++++++++ services/app/templates/form/_form_item.html.twig | 20 ++++++++ .../templates/form/_form_item_checkbox.html.twig | 21 +++++++++ .../templates/form/_form_item_textarea.html.twig | 20 ++++++++ services/app/templates/login.html.twig | 5 ++ services/app/templates/quiz_list.html.twig | 9 ++++ services/app/templates/quiz_view.html.twig | 53 ++++++++++++++++++++++ 22 files changed, 482 insertions(+) create mode 100644 services/app/templates/_page.html.twig create mode 100644 services/app/templates/admin_answer_edit.html.twig create mode 100644 services/app/templates/admin_answer_list.html.twig create mode 100644 services/app/templates/admin_overview.html.twig create mode 100644 services/app/templates/admin_quiz_edit.html.twig create mode 100644 services/app/templates/admin_quiz_list.html.twig create mode 100644 services/app/templates/admin_quiz_new.html.twig create mode 100644 services/app/templates/admin_testcase_edit.html.twig create mode 100644 services/app/templates/admin_testcase_list.html.twig create mode 100644 services/app/templates/admin_testcase_new.html.twig create mode 100644 services/app/templates/admin_user_edit.html.twig create mode 100644 services/app/templates/admin_user_list.html.twig create mode 100644 services/app/templates/answer_list.html.twig create mode 100644 services/app/templates/answer_new.html.twig create mode 100644 services/app/templates/answer_view.html.twig create mode 100644 services/app/templates/form/_form.html.twig create mode 100644 services/app/templates/form/_form_item.html.twig create mode 100644 services/app/templates/form/_form_item_checkbox.html.twig create mode 100644 services/app/templates/form/_form_item_textarea.html.twig create mode 100644 services/app/templates/login.html.twig create mode 100644 services/app/templates/quiz_list.html.twig create mode 100644 services/app/templates/quiz_view.html.twig (limited to 'services/app/templates') diff --git a/services/app/templates/_page.html.twig b/services/app/templates/_page.html.twig new file mode 100644 index 0000000..d2072ea --- /dev/null +++ b/services/app/templates/_page.html.twig @@ -0,0 +1,23 @@ + + + + + {{ page_title }} | {{ site_name }} + + + + +
+ +
+
+

{{ page_title }}

+ {% block content %}{% endblock %} +
+ + + diff --git a/services/app/templates/admin_answer_edit.html.twig b/services/app/templates/admin_answer_edit.html.twig new file mode 100644 index 0000000..31d007c --- /dev/null +++ b/services/app/templates/admin_answer_edit.html.twig @@ -0,0 +1,44 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です +

+

{{ quiz.title }}

+

+ {{ quiz.description }} +

+

回答 #{{ answer.answer_number }}

+

+ {{ answer.author_name }} が {{ answer.submitted_at|date('Y-m-d H:i:s', 'Asia/Tokyo') }} に投稿 +

+

コード

+

+ {{ answer.code_size }} byte +

+
{{ answer.code }}
+

実行結果

+
+ ステータス: {{ answer.execution_status.label() }} +
+ + + +
+
+ {% for ex in testcase_executions %} +

テストケース {{ loop.index }}

+
+ ステータス: {{ ex.status.label() }} +
+
+ + + +
+

標準出力

+
{{ ex.stdout }}
+

標準エラー出力

+
{{ ex.stderr }}
+ {% endfor %} +{% endblock %} diff --git a/services/app/templates/admin_answer_list.html.twig b/services/app/templates/admin_answer_list.html.twig new file mode 100644 index 0000000..68f0089 --- /dev/null +++ b/services/app/templates/admin_answer_list.html.twig @@ -0,0 +1,41 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です。通常の回答一覧はこちらを参照してください +

+

{{ quiz.title }}

+

+ {{ quiz.description }} +

+

回答一覧

+
+ + + +
+ + + + + + + + + + + + + {% for answer in answers %} + + + + + + + + + {% endfor %} + +
ランクID作者サイズ投稿日時ステータス
{{ loop.index }}#{{ answer.answer_number }}{{ answer.author_name }}{% if answer.author_is_admin %} (staff){% endif %}{{ answer.code_size }} byte{{ answer.submitted_at|date('Y-m-d H:i:s', 'Asia/Tokyo') }}{{ answer.execution_status.value }}
+{% endblock %} diff --git a/services/app/templates/admin_overview.html.twig b/services/app/templates/admin_overview.html.twig new file mode 100644 index 0000000..2103616 --- /dev/null +++ b/services/app/templates/admin_overview.html.twig @@ -0,0 +1,13 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です +

+
+ ユーザ一覧 +
+
+ 問題一覧 +
+{% endblock %} diff --git a/services/app/templates/admin_quiz_edit.html.twig b/services/app/templates/admin_quiz_edit.html.twig new file mode 100644 index 0000000..114de02 --- /dev/null +++ b/services/app/templates/admin_quiz_edit.html.twig @@ -0,0 +1,11 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です。通常の問題はこちらを参照してください +

+ {{ include('form/_form.html.twig') }} +

+ テストケースを追加・削除・編集する +

+{% endblock %} diff --git a/services/app/templates/admin_quiz_list.html.twig b/services/app/templates/admin_quiz_list.html.twig new file mode 100644 index 0000000..4db6961 --- /dev/null +++ b/services/app/templates/admin_quiz_list.html.twig @@ -0,0 +1,21 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です。通常の問題一覧はこちらを参照してください +

+ +

+ 問題を作成する +

+{% endblock %} diff --git a/services/app/templates/admin_quiz_new.html.twig b/services/app/templates/admin_quiz_new.html.twig new file mode 100644 index 0000000..9da6a14 --- /dev/null +++ b/services/app/templates/admin_quiz_new.html.twig @@ -0,0 +1,8 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です +

+ {{ include('form/_form.html.twig') }} +{% endblock %} diff --git a/services/app/templates/admin_testcase_edit.html.twig b/services/app/templates/admin_testcase_edit.html.twig new file mode 100644 index 0000000..e86d61b --- /dev/null +++ b/services/app/templates/admin_testcase_edit.html.twig @@ -0,0 +1,22 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です +

+ {{ include('form/_form.html.twig') }} +

+ 既存のテストケースを編集すると、この問題に対してすでに提出されている回答に対してもテストが再度実行されます。 + その実行が終わるまで回答のステータスは Pending 状態になり、ランキング等にも出現しなくなります。 +

+ +
+ + + +
+

+ 既存のテストケースを削除すると、この問題に対してすでに提出されている回答のステータスは他のテストケースを基にして再計算されます。 + 再計算が終わるまで回答のステータスは Pending 状態になり、ランキング等にも出現しなくなります。 +

+{% endblock %} diff --git a/services/app/templates/admin_testcase_list.html.twig b/services/app/templates/admin_testcase_list.html.twig new file mode 100644 index 0000000..a146406 --- /dev/null +++ b/services/app/templates/admin_testcase_list.html.twig @@ -0,0 +1,18 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です +

+

{{ quiz.title }}

+

+ {{ quiz.description }} +

+

テストケース一覧

+ + テストケースを追加する +{% endblock %} diff --git a/services/app/templates/admin_testcase_new.html.twig b/services/app/templates/admin_testcase_new.html.twig new file mode 100644 index 0000000..38243a9 --- /dev/null +++ b/services/app/templates/admin_testcase_new.html.twig @@ -0,0 +1,12 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です +

+ {{ include('form/_form.html.twig') }} +

+ テストケースを追加すると、この問題に対してすでに提出されている回答に対してもテストが実行されます。 + その実行が終わるまで回答のステータスは Pending 状態になり、ランキング等にも出現しなくなります。 +

+{% endblock %} diff --git a/services/app/templates/admin_user_edit.html.twig b/services/app/templates/admin_user_edit.html.twig new file mode 100644 index 0000000..9da6a14 --- /dev/null +++ b/services/app/templates/admin_user_edit.html.twig @@ -0,0 +1,8 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です +

+ {{ include('form/_form.html.twig') }} +{% endblock %} diff --git a/services/app/templates/admin_user_list.html.twig b/services/app/templates/admin_user_list.html.twig new file mode 100644 index 0000000..5d477a9 --- /dev/null +++ b/services/app/templates/admin_user_list.html.twig @@ -0,0 +1,14 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

+ このページは管理画面です +

+ +{% endblock %} diff --git a/services/app/templates/answer_list.html.twig b/services/app/templates/answer_list.html.twig new file mode 100644 index 0000000..410ab20 --- /dev/null +++ b/services/app/templates/answer_list.html.twig @@ -0,0 +1,45 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

{{ quiz.title }}

+

+ {{ quiz.description }} +

+

回答一覧

+ {% if answers|length == 0 %} +

+ まだ回答がありません +

+ {% else %} + + + + + + + + + + + + + {% for answer in answers %} + + + + + + + + + {% endfor %} + +
ランクID作者サイズ投稿日時ステータス
+ {% if is_ranking_hidden %} + ? + {% else %} + {{ loop.index }} + {% endif %} + #{{ answer.answer_number }}{{ answer.author_name }}{% if answer.author_is_admin %} (staff){% endif %}{{ answer.code_size }} byte{{ answer.submitted_at|date('Y-m-d H:i:s', 'Asia/Tokyo') }}{{ answer.execution_status.label() }}
+ {% endif %} +{% endblock %} diff --git a/services/app/templates/answer_new.html.twig b/services/app/templates/answer_new.html.twig new file mode 100644 index 0000000..9dbf96e --- /dev/null +++ b/services/app/templates/answer_new.html.twig @@ -0,0 +1,12 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

{{ quiz.title }}

+

+ {{ quiz.description }} +

+

実装例

+
{{ quiz.example_code }}
+

回答

+ {{ include('form/_form.html.twig') }} +{% endblock %} diff --git a/services/app/templates/answer_view.html.twig b/services/app/templates/answer_view.html.twig new file mode 100644 index 0000000..a76e161 --- /dev/null +++ b/services/app/templates/answer_view.html.twig @@ -0,0 +1,38 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

{{ quiz.title }}

+

+ {{ quiz.description }} +

+

回答 #{{ answer.answer_number }}

+

+ {{ answer.author_name }} が {{ answer.submitted_at|date('Y-m-d H:i:s', 'Asia/Tokyo') }} に投稿 +

+

コード

+

+ {{ answer.code_size }} byte +

+
{{ answer.code }}
+

実行結果

+
+ ステータス: {{ answer.execution_status.label() }} + {% if answer.execution_status.showLoadingIndicator() %} +
Loading...
+ {% endif %} +
+ {% for ex in testcase_executions %} +

テストケース {{ loop.index }}

+
+ ステータス: {{ ex.status.label() }} + {% if ex.status.showLoadingIndicator() %} +
Loading...
+ {% endif %} +
+

標準出力

+
{{ ex.stdout }}
+

標準エラー出力

+
{{ ex.stderr }}
+ {% endfor %} + +{% endblock %} diff --git a/services/app/templates/form/_form.html.twig b/services/app/templates/form/_form.html.twig new file mode 100644 index 0000000..b6a9d1d --- /dev/null +++ b/services/app/templates/form/_form.html.twig @@ -0,0 +1,24 @@ +
+ {% if form.errors.general %} +
+ {{ form.errors.general }} +
+ {% endif %} + + {% for item in form.items %} + {% if item.type == 'checkbox' %} + {{ include('form/_form_item_checkbox.html.twig') }} + {% elseif item.type == 'textarea' %} + {{ include('form/_form_item_textarea.html.twig') }} + {% else %} + {{ include('form/_form_item.html.twig') }} + {% endif %} + {% endfor %} + +
+ +
+ + + +
diff --git a/services/app/templates/form/_form_item.html.twig b/services/app/templates/form/_form_item.html.twig new file mode 100644 index 0000000..6e6a36b --- /dev/null +++ b/services/app/templates/form/_form_item.html.twig @@ -0,0 +1,20 @@ +{% set value = form.state[item.name] %} +{% set error = form.errors[item.name] %} +{% set classes = 'form-control' %} +{% if error %} + {% set classes = classes ~ ' is-invalid' %} +{% endif %} +{% set required = item.isRequired ? ' required' : '' %} +{% set disabled = item.isDisabled ? ' disabled' : '' %} +{% set extra = item.extra ? item.extra : '' %} +
+ {% if item.label %} + + {% endif %} + + + + {% if error %} +
{{ error }}
+ {% endif %} +
diff --git a/services/app/templates/form/_form_item_checkbox.html.twig b/services/app/templates/form/_form_item_checkbox.html.twig new file mode 100644 index 0000000..e51cc0c --- /dev/null +++ b/services/app/templates/form/_form_item_checkbox.html.twig @@ -0,0 +1,21 @@ +{% set value = form.state[item.name] %} +{% set error = form.errors[item.name] %} +{% set classes = 'form-check-input' %} +{% if error %} + {% set classes = classes ~ ' is-invalid' %} +{% endif %} +{% set required = item.isRequired ? ' required' : '' %} +{% set disabled = item.isDisabled ? ' disabled' : '' %} +{% set extra = item.extra ? item.extra : '' %} +{% set extra = extra ~ (value == 'on' ? ' checked' : '') %} +
+ + + {% if item.label %} + + {% endif %} + + {% if error %} +
{{ error }}
+ {% endif %} +
diff --git a/services/app/templates/form/_form_item_textarea.html.twig b/services/app/templates/form/_form_item_textarea.html.twig new file mode 100644 index 0000000..bf5cc8c --- /dev/null +++ b/services/app/templates/form/_form_item_textarea.html.twig @@ -0,0 +1,20 @@ +{% set value = form.state[item.name] %} +{% set error = form.errors[item.name] %} +{% set classes = 'form-control' %} +{% if error %} + {% set classes = classes ~ ' is-invalid' %} +{% endif %} +{% set required = item.isRequired ? ' required' : '' %} +{% set disabled = item.isDisabled ? ' disabled' : '' %} +{% set extra = item.extra ? item.extra : '' %} +
+ {% if item.label %} + + {% endif %} + + + + {% if error %} +
{{ error }}
+ {% endif %} +
diff --git a/services/app/templates/login.html.twig b/services/app/templates/login.html.twig new file mode 100644 index 0000000..e21b32f --- /dev/null +++ b/services/app/templates/login.html.twig @@ -0,0 +1,5 @@ +{% extends '_page.html.twig' %} + +{% block content %} + {{ include('form/_form.html.twig') }} +{% endblock %} diff --git a/services/app/templates/quiz_list.html.twig b/services/app/templates/quiz_list.html.twig new file mode 100644 index 0000000..2aa4f98 --- /dev/null +++ b/services/app/templates/quiz_list.html.twig @@ -0,0 +1,9 @@ +{% extends '_page.html.twig' %} + +{% block content %} + +{% endblock %} diff --git a/services/app/templates/quiz_view.html.twig b/services/app/templates/quiz_view.html.twig new file mode 100644 index 0000000..87c83ce --- /dev/null +++ b/services/app/templates/quiz_view.html.twig @@ -0,0 +1,53 @@ +{% extends '_page.html.twig' %} + +{% block content %} +

{{ quiz.title }}

+

+ {{ quiz.description }} +

+

実装例

+
{{ quiz.example_code }}
+ {% if is_open %} +

+ 回答する +

+ {% endif %} +

ランキング

+ {% if is_ranking_hidden %} + 回答が締め切られるまで、ランキングは表示されません + {% elseif ranking|length == 0 %} +

+ まだ正解した回答がありません +

+ {% else %} + + + + + + + + + + + + {% for answer in ranking %} + + + + + + + + {% endfor %} + +
ランクID作者サイズ投稿日時
{{ loop.index }}#{{ answer.answer_number }}{{ answer.author_name }}{% if answer.author_is_admin %} (staff){% endif %}{{ answer.code_size }} byte{{ answer.submitted_at|date('Y-m-d H:i:s', 'Asia/Tokyo') }}
+
+ + +
+ {% endif %} +

+ すべての回答を見る +

+{% endblock %} -- cgit v1.2.3-70-g09d2