diff --git a/app/templates/app/base_dashboard.html b/app/templates/app/base_dashboard.html index b8281931e7b8fae10fe76dd0477fee586206fcb2..c74bd589eb745d75b89cb9f1560428d76b24e4fb 100644 --- a/app/templates/app/base_dashboard.html +++ b/app/templates/app/base_dashboard.html @@ -24,6 +24,7 @@ <!-- Custom styles for this page --> <link href="{% static 'vendor/datatables/dataTables.bootstrap4.min.css' %}" rel="stylesheet"> {% block stylesheets %}{% endblock %} + {% block scripts %}{% endblock %} </head> <body id="page-top" style="font-family: 'Poppins', sans-serif;"> diff --git a/app/templates/unggah.html b/app/templates/unggah.html index 5f9a0c1da2c7b2303e9c869fe6704d35bb22e4d7..b6668bb76ef6c9b73303b640bff5fb20d1168478 100644 --- a/app/templates/unggah.html +++ b/app/templates/unggah.html @@ -5,6 +5,10 @@ <title>Unggah Materi | Digipus</title> {% endblock %} +{% block scripts %} +<script src="{% static 'js/upload-preview.js' %}"></script> +{% endblock %} + {% block content %} <div class="container"> <div class="col-20"> @@ -36,6 +40,17 @@ {% if field.help_text %} <p class="help">{{ field.help_text|safe }}</p> {% endif %} + {% if field.name == 'cover' %} + <div hidden id="frame_cover_parent" class="my-3"> + <div class="mb-2">Preview Cover:</div> + <img id="frame_cover" class="constraint-frame" alt="Cover Preview" /> + </div> + {% elif field.name == 'content' %} + <div hidden id="frame_content_parent" class="my-3"> + <div class="mb-2">Preview Content:</div> + <embed id="frame_content" width="550px" height="550px" /> + </div> + {% endif %} </div> </div> {% endfor %} diff --git a/staticfiles/css/button.css b/staticfiles/css/button.css index 90a8a87a089ed75ec7f3eda8a752f03fdf10b3e6..8ea2c9fe4fff979bcd96c0dedb3921ae5c782594 100755 --- a/staticfiles/css/button.css +++ b/staticfiles/css/button.css @@ -117,4 +117,9 @@ .margin-content { margin: 0; padding: 0; +} + +.constraint-frame { + max-width: 550px; + max-height: 550px; } \ No newline at end of file diff --git a/staticfiles/js/upload-preview.js b/staticfiles/js/upload-preview.js new file mode 100644 index 0000000000000000000000000000000000000000..c424f70d2de26b0c31676d1e0435928f92ef20c7 --- /dev/null +++ b/staticfiles/js/upload-preview.js @@ -0,0 +1,22 @@ +window.onload = () => { + document.querySelector('input[name="cover"]').setAttribute("onchange", "preview('frame_cover')"); + document.querySelector('input[name="content"]').setAttribute("onchange", "preview('frame_content')"); +} + +const preview = (elementClass) => { + let frame = document.getElementById(elementClass); + let frameParent = document.getElementById(`${elementClass}_parent`); + + // Embed elements need to be recreated on source change + if (frame.nodeName.toLowerCase() === 'embed') { + frameParent.removeChild(frame); + frameParent.insertAdjacentHTML( + 'beforeend', + '<embed id="frame_content" width="550px" height="550px" />' + ); + frame = document.getElementById(elementClass); + } + + frame.src = URL.createObjectURL(event.target.files[0]); + frameParent.removeAttribute('hidden'); +} \ No newline at end of file