[프로젝트] 생성된 호감에 대해 수정, 삭제 쿨타임 만들기

조히고닝·2023년 4월 28일
0

인스타 그램 계정을 입력하여 호감정보를 등록하는 프로젝트를 진행중이다.

기존에는 권한만 있으면 등록했던 호감정보를 수정, 삭제가 가능했지만 쿨타임을 적용해서
마지막 수정시각으로부터 세시간이 지나지 않으면 경고 메시지를 띄우도록 수정하였다.

public long getDurationAfterModified(){
        this.durationAfterModified=Duration.between(this.getModifyDate(), LocalDateTime.now());
        return durationAfterModified.toSeconds();
    }

Duration 클래스를 이용하여 마지막 수정 시각과 현 시각까지의 시간 차이를 구하고 세시간이 경과하지 않았으면 수정, 삭제 메서드가 동작하지 않도록 구현하였다.

<div class="badge badge-primary">
                                    <span th:if="${likeablePerson.getDurationAfterModified() < 60}"
                                          th:text="${likeablePerson.getDurationAfterModified()} + '초 전'"></span>
                                    <span th:if="${likeablePerson.getDurationAfterModified() >= 60 and likeablePerson.getDurationAfterModified() < 3600}"
                                          th:text="${likeablePerson.getDurationAfterModified() div 60} + '분 전'"></span>
                                    <span th:if="${likeablePerson.getDurationAfterModified() >= 3600}"
                                          th:text="${likeablePerson.getDurationAfterModified() div 3600} + '시간 전'"></span>

타임리프 조건문을 이용, 호감 상태를 등록한 시간을 초로 받아서 60이하면 초, 60~3600은 분 3600 이상은 시간 단위로 표시하게 레이아웃을 변경하였다.

이후 쿨타임 적용중에는 classappend로

<a th:href="@{|modify/${likeablePerson.id}|}" class="btn btn-sm btn-outline"
                                   th:classappend="${likeablePerson.getDurationAfterModified() <= 10800} ? 'opacity-50 cursor-not-allowed' : ''">
                                    <i class="fa-solid fa-pen-to-square"></i>
                                    &nbsp;
                                    호감사유 변경
                                </a>

투명도를 적용해서 비활성화된 버튼임을 나타냈다.

업로드중..

언제부터 수정이나 삭제가 가능한지 표시하게 수정.

TODO// 이제 클라이언트의 현재 시각을 얻어와서 클라이언트의 현재 시각이 수정 가능 시각을 지나면 display를 꺼줘야겠다.

0개의 댓글