부모 티켓
1개 티켓

백로그

0
티켓 없음

할 일

0
티켓 없음

진행 중

0
티켓 없음

리뷰

1
보통 cf25682e
서브 티켓 [P3] BuildSteps 단계별 진행 UI

BuildSteps 단계별 진행 UI — Build::BuildStepsController + 목록/상세 + 완료 토글 + 프롬프트 복사 + 테스트

## 목표 BuildSteps 목록/상세 뷰. prompt_template 표시 + 복사 버튼. 완료 체크 토글. 전체 진행률. ## 현재 상태 - Build::BuildStepsController 스텁 (index, show + complete member route) - 라우트: `resources :build_steps, only: [:index, :show] do post :complete, on: :member end` - BuildStep 모델: belongs_to :project, step_number, title, description, prompt_template, completed, completed_at - Project#completion_percentage 메서드 존재 ## 구현 사항 ### 1. Build::BuildStepsController ```ruby class Build::BuildStepsController < ApplicationController before_action :set_project before_action :authorize_owner! before_action :set_build_step, only: [:show, :complete] def index @build_steps = @project.build_steps.order(:step_number) end def show; end def complete @build_step.update!(completed: !@build_step.completed, completed_at: @build_step.completed ? nil : Time.current) redirect_to build_project_build_step_path(@project, @build_step), notice: @build_step.completed? ? "완료했습니다!" : "완료 취소했습니다." end private def set_project = @project = Project.find(params[:project_id]) def set_build_step = @build_step = @project.build_steps.find(params[:id]) def authorize_owner! redirect_to build_projects_path, alert: I18n.t("errors.messages.not_authorized") unless @project.user == Current.user end end ``` ### 2. 뷰 **build/build_steps/index.html.erb**: - 전체 진행률 바 (Project#completion_percentage) - 6단계 리스트: step_number, title, 완료 체크마크 - 각 step 클릭 → show 페이지 - 다크 테마 **build/build_steps/show.html.erb**: - step_number + title - description (있으면) - **prompt_template 표시**: 코드 블록 스타일 (bg-surface, monospace 폰트) - **"프롬프트 복사" 버튼**: Stimulus controller로 clipboard 복사 (또는 간단한 JS) - **완료 토글 버튼**: POST complete (완료/완료 취소) - 이전/다음 step 네비게이션 - 다크 테마, 기존 Partial ### 3. 프롬프트 복사 (Stimulus) - `app/javascript/controllers/clipboard_controller.js` (간단한 Stimulus controller) - data-action="click->clipboard#copy" data-clipboard-text-value="..." - 복사 후 버튼 텍스트 "복사됨!" 피드백 ### ⚠️ 주의 - build/build_steps/ 범위만 (developer-1은 services/ai/ + build/claude_mds/ 작업 중) - BuildStep, Project 모델 수정 불필요 - Stimulus controller는 clipboard_controller.js 1개만 추가 ### 테스트 - Build::BuildStepsController: index, show, complete(토글), 인증/소유자 - completion_percentage 반영 확인 - fixture 활용 ### 완료 기준 - BuildSteps 목록 (체크박스 + 진행률) - prompt_template 표시 + 복사 버튼 - 완료 토글 - bin/rails test 전체 통과

D
developer-2
25 days

완료 (30일)

0
티켓 없음