82 lines
4.6 KiB
Plaintext
82 lines
4.6 KiB
Plaintext
<div class="flex flex-col h-full text-white overflow-y-auto">
|
|
<div class="flex flex-col flex-1 divide-y divide-base-border">
|
|
<%= form_with url: schedule_edit_update_schedules_path, method: :post, class: 'flex flex-col h-full' do %>
|
|
<%= hidden_field_tag :controller_id, params[:id] %>
|
|
<div class="divide-y divide-base-border">
|
|
<div class="flex justify-between p-4">
|
|
<div class="text-2xl font-bold leading-10"><%= @controller.name %> 컨트롤러</div>
|
|
<%= submit_tag "업데이트", class: "btn bg-primary" %>
|
|
</div>
|
|
<ul class="divide-y divide-base-border whitespace-nowrap h-full relative">
|
|
<% if @schedule.present? %>
|
|
<% @schedule.each do |s| %>
|
|
<li class="flex justify-between items-stretch px-4 py-2 space-x-4 h-full relative">
|
|
<div class="flex items-center space-x-4 basis-3/5 h-full">
|
|
<!-- 시간 -->
|
|
<div class="flex flex-col lg:flex-row h-full items-center space-x-0 space-y-2 lg:space-x-4 lg:space-y-0">
|
|
<div class="text-white text-left w-full lg:w-auto">시간</div>
|
|
<div class="text-xl flex items-center space-x-1 w-full h-full">
|
|
<%= select_tag "schedule[#{s.id}][hour]",
|
|
options_for_select((0..23).map { |h| [h.to_s.rjust(2, '0'), h] }, s.hour),
|
|
class: "select-style text-white min-w-[60px]" %>
|
|
<div>:</div>
|
|
<%= number_field_tag "schedule[#{s.id}][minute]",
|
|
s.minute, min: 0, max: 59, step: 1, inputmode: "decimal",
|
|
class: "input-style min-w-[60px]" %>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 온도 -->
|
|
<div class="flex flex-col lg:flex-row h-full items-center space-x-0 space-y-2 lg:space-x-4 lg:space-y-0">
|
|
<div class="text-white text-left w-full lg:w-auto">온도 (°C)</div>
|
|
<div class="text-xl flex items-center">
|
|
<%= number_field_tag "schedule[#{s.id}][temperature]", s.temperature, min: -99, max: 99, step: "0.1", inputmode: "decimal", class: "input-style min-w-[68px] h-full" %>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex items-center space-x-4 basis-2/5 justify-end h-full">
|
|
<!-- 사용 여부 -->
|
|
<div class="flex flex-col lg:flex-row items-center space-x-0 space-y-2 lg:space-x-4 lg:space-y-0 h-full">
|
|
<div class="text-white">ON/OFF</div>
|
|
<label class="relative inline-flex items-center cursor-pointer h-full">
|
|
<%= check_box_tag "schedule[#{s.id}][is_active]", "1", s.is_active == true || s.is_active == 1, class: "sr-only peer" %>
|
|
<div class="toggle_style"></div>
|
|
<div class="toggle_btn"></div>
|
|
</label>
|
|
</div>
|
|
|
|
<!-- 삭제 -->
|
|
<div class="flex flex-col lg:flex-row items-center space-x-0 space-y-2 lg:space-x-4 lg:space-y-0 h-full relative">
|
|
<div class="text-white"> </div>
|
|
<%= link_to schedule_path(s),
|
|
data: { turbo_method: :delete, turbo_confirm: "정말 삭제하시겠습니까?" },
|
|
class: "btn bg-danger text-sm flex items-center px-2 py-0 my-1.5 lg:px-4 lg:py-1.5 lg:my-0" do %>
|
|
<div class="hidden lg:block">삭제</div>
|
|
<div class="block lg:hidden"><i class="fa-solid fa-xmark"></i></div>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<% end %>
|
|
<% else %>
|
|
<li class="text-center p-4 w-full">저장된 스케줄이 없습니다.</li>
|
|
<% end %>
|
|
</ul>
|
|
</div>
|
|
<% end %>
|
|
<div class="flex p-4 space-x-4">
|
|
<%= button_to "초기화", reset_schedule_path(params[:id]),
|
|
method: :post,
|
|
data: { turbo_confirm: "정말 초기화하시겠습니까? 모든 스케줄 데이터가 삭제됩니다." },
|
|
class: "btn bg-danger" %>
|
|
<%= button_to "추가하기", open_modals_path(type: "add_schedule", id: params[:id]),
|
|
class: "btn bg-default-slate",
|
|
data: {
|
|
turbo_method: :post,
|
|
turbo_frame: "modals"
|
|
} %>
|
|
</div>
|
|
</div>
|
|
</div>
|