diff options
Diffstat (limited to 'app/templates/upload.html')
-rw-r--r-- | app/templates/upload.html | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/app/templates/upload.html b/app/templates/upload.html new file mode 100644 index 0000000..8683be0 --- /dev/null +++ b/app/templates/upload.html @@ -0,0 +1,80 @@ +{% macro render_fields(field, extra_field) %} + <p> + <label>{{ field.label }}</label> + {{ field|safe }} + + {% if extra_field %} + {{extra_field(**kwargs)|safe}} + {% endif %} + + {% if field.errors or extra_field.errors %} + <span class="error"> + {% for error in field.errors %}{{ error }}{% endfor %} + {% for error in extra_field.errors %}{{ error }}{% endfor %} + </span> + {% endif %} + </p> +{% endmacro %} + +{% macro render_field(field) %} + {{ render_fields(field, None) }} +{% endmacro %} + +{% extends "layout.html" %} +{% block body %} + <h3>neue Klausur hochladen</h3> + + <div id="upload"> + <form method="POST" enctype="multipart/form-data" + action="{{url_for('upload', study=study, module=module)}}"> + {{ form.csrf_token }} + + {{ render_field(form.exam) }} + {{ render_fields(form.module, form.module_new, placeholder='Modulname') }} + {{ render_field(form.year) }} + + <p> + <input type="submit" value="Hochladen" /> + </p> + </form> + + <div id="module-index"></div> + </div> + + <script type="text/javascript"> + $(document).ready(function() { + var elem = $('#module_new'); + var module = $('#module'); + + var update_modules = function() { + var text = module.find("option:selected").text(); + $.get('/{{study}}/modules/' + text, function(data) { + $('#module-index').replaceWith($(data).find('#module-index')); + }); + }; + + update_modules(); + + if(module.val() != 'new') + elem.hide(); + + module.change(function(){ + var current = $(this); + var value = current.val(); + var text = current.find("option:selected").text(); + + if(value == 'new') { + $('#module-index').fadeOut('fast', function() { elem.fadeIn(); }); + } else { + elem.fadeOut('fast', function() { + if(value != '') + update_modules(); + else + $('#module-index').fadeOut('fast'); + }); + + } + }); + }); + </script> +{% endblock %} |