40 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
= form_with model: @offline, url: "/public/#{@contest.friendly_id}/offline/#{@offline.generate_token_for(:token)}" do |form|
 | 
						|
  = form.hidden_field :completed
 | 
						|
  h3 = t("offlines.form.start_message")
 | 
						|
  h1 id="display-time" style="font-size: 80px;"
 | 
						|
  javascript:
 | 
						|
    const startTime = #{@offline.start_time.to_i};
 | 
						|
    function updateTime() {
 | 
						|
      const displayTimeEl = document.getElementById('display-time');
 | 
						|
      const s = Math.floor((Date.now() - 1000 * startTime) / 1000);
 | 
						|
      let ss = s % 60;
 | 
						|
      let mm = Math.floor(s / 60) % 60;
 | 
						|
      let hh = Math.floor(s / 3600);
 | 
						|
      displayTimeEl.innerHTML = `${hh < 10 ? `0${hh}` : hh}:${mm < 10 ? `0${mm}` : mm}:${ss < 10 ? `0${ss}` : ss}`;
 | 
						|
      setTimeout(updateTime, 1000);
 | 
						|
    }
 | 
						|
    setTimeout(updateTime, 5);
 | 
						|
  .row.mt-5.mb-3
 | 
						|
    .col
 | 
						|
      .form-text.mb-1
 | 
						|
        = t("offlines.form.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" |