From dc4008a210a962a4ba4f3c502ad9417cf17a57f1 Mon Sep 17 00:00:00 2001
From: James Taylor <user234683@users.noreply.github.com>
Date: Sat, 17 Aug 2019 23:13:39 -0700
Subject: Add settings page

---
 youtube/templates/settings.html | 64 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 youtube/templates/settings.html

(limited to 'youtube')

diff --git a/youtube/templates/settings.html b/youtube/templates/settings.html
new file mode 100644
index 0000000..bac3ef9
--- /dev/null
+++ b/youtube/templates/settings.html
@@ -0,0 +1,64 @@
+{% set page_title = 'Settings' %}
+{% extends "base.html" %}
+{% import "common_elements.html" as common_elements %}
+{% block style %}
+    .settings-form {
+        margin: auto;
+        padding: 10px;
+        display: inline-block;
+        background-color: #dadada;
+    }
+        .settings-list{
+            list-style: none;
+            padding: 0px;
+        }
+            .setting-item{
+                margin-bottom: 10px;
+                background-color: #eeeeee;
+                padding: 5px;
+            }
+                .setting-item label{
+                    display: inline-block;
+                    width: 250px;
+                }
+
+{% endblock style %}
+
+{% block main %}
+    <form method="POST" class="settings-form">
+        <ul class="settings-list">
+            {% for setting_name, setting_info, value in settings %}
+                {% if not setting_info.get('hidden', false) %}
+                    <li class="setting-item">
+                        {% if 'label' is in(setting_info) %}
+                            <label for="{{ 'setting_' + setting_name }}">{{ setting_info['label'] }}</label>
+                        {% else %}
+                            <label for="{{ 'setting_' + setting_name }}">{{ setting_name.replace('_', ' ')|capitalize }}</label>
+                        {% endif %}
+
+                        {% if setting_info['type'].__name__ == 'bool' %}
+                            <input type="checkbox" id="{{ 'setting_' + setting_name }}" name="{{ setting_name }}" {{ 'checked' if value else '' }}>
+                        {% elif setting_info['type'].__name__ == 'int' %}
+                            {% if 'options' is in(setting_info) %}
+                                <select id="{{ 'setting_' + setting_name }}" name="{{ setting_name }}">
+                                    {% for option in setting_info['options'] %}
+                                        <option value="{{ option[0] }}" {{ 'selected' if option[0] == value else '' }}>{{ option[1] }}</option>
+                                    {% endfor %}
+                                </select>
+                            {% else %}
+                                <input type="number" id="{{ 'setting_' + setting_name }}" name="{{ setting_name }}" value="{{ value }}" step="1">
+                            {% endif %}
+                        {% elif setting_info['type'].__name__ == 'float' %}
+
+                        {% elif setting_info['type'].__name__ == 'str' %}
+                            <input type="text" id="{{ 'setting_' + setting_name }}" name="{{ setting_name }}" value="{{ value }}">
+                        {% else %}
+                            <span>Error: Unknown setting type: setting_info['type'].__name__</span>
+                        {% endif %}
+                    </li>
+                {% endif %}
+            {% endfor %}
+        </ul>
+        <input type="submit" value="Save settings">
+    </form>
+{% endblock main %}
-- 
cgit v1.2.3