48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
= form_with model: puzzle, url: url, method: method do |form|
 | 
						|
  .row.mb-3
 | 
						|
    .col.alert.alert-warning
 | 
						|
      = t("puzzles.form.fake_data_recommendation")
 | 
						|
  .row.mb-3
 | 
						|
    .col
 | 
						|
      = image_tag(puzzle.image, class: "img-fluid", style: "max-height: 256px") if puzzle.image.attached?
 | 
						|
  .row.mb-3
 | 
						|
    .col
 | 
						|
      .form-floating
 | 
						|
        = form.text_field :name, autocomplete: "off", class: "form-control"
 | 
						|
        = form.label :name, class: "required"
 | 
						|
  .row.mb-3
 | 
						|
    .col
 | 
						|
      .form-floating
 | 
						|
        = form.text_field :brand, autocomplete: "off", class: "form-control"
 | 
						|
        = form.label :brand, class: "required"
 | 
						|
  .row.mb-3
 | 
						|
    .col
 | 
						|
      .form-floating
 | 
						|
        = form.number_field :pieces, autocomplete: "off", class: "form-control"
 | 
						|
        = form.label :pieces, class: "required"
 | 
						|
  .row.mb-3
 | 
						|
    .col
 | 
						|
      .form-text.mb-1
 | 
						|
        = t("puzzles.image_select")
 | 
						|
      = form.file_field :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
 | 
						|
      - if method == :patch
 | 
						|
        = link_to t("helpers.buttons.delete"), contest_puzzle_path(contest, puzzle), data: { turbo_method: :delete }, class: "btn btn-danger me-2"
 | 
						|
      = form.submit submit_text, class: "btn btn-primary" |