= form_with model: @offline, url: "/public/#{@contest.friendly_id}/offline/#{@offline.generate_token_for(:token)}" do |form| = form.hidden_field :completed .row.mb-3 .col .form-text.mb-1 = t("offlines.end_image_select") = form.file_field :end_image, accept: "image/*", class: "form-control" .form-text.error-message style="display: none;" id="image-error-message" = t("puzzles.form.file_too_big") javascript: function setMaxUploadSize() { const el = document.querySelector('input[type="file"]'); el.onchange = function() { if(this.files[0].size > 2 * 1024 * 1024) { document.getElementById('image-error-message').style.display = 'block'; this.value = ""; } else { document.getElementById('image-error-message').style.display = 'none'; } }; } setMaxUploadSize(); .row.mt-4 .col = form.submit t("helpers.buttons.end"), class: "btn btn-primary"