Rhidian
(Rhidian Bramley)
6월 20, 2021, 5:19오전
1
우선순위: 낮음
플랫폼: Discourse 모바일 iOS (다른 플랫폼에서는 테스트되지 않음). Discourse 메타 및 try.Discourse.org에서 재현됨
설명: 프롬프트가 표시될 때 새 주제 초안을 저장하세요. 초안 열기 버튼이 작동하지 않습니다.
재현 단계:
Discourse 홈 페이지로 이동합니다.
제목 줄에 ‘Testing Drafts’를 입력하고, 작성 영역에 ‘Testing’을 입력합니다. 카테고리를 지정하지 않은 상태로 둡니다.
취소(모바일 Discourse의 쓰레기통 아이콘)를 클릭합니다. 나중에 초안을 저장하시겠습니까?라는 메시지가 표시되면 해당 옵션을 클릭합니다.
초안 열기를 클릭합니다. 아무 일도 일어나지 않습니다.
초안 폴더를 확인합니다 - 저장된 초안이 없습니다.
결과: 이로 인해 일시적으로 새 주제를 생성할 수 없었습니다.
우회 방법: 비활성 상태인 + 초안 열기 버튼을 여러 번 클릭하면 결국 모바일 앱에서 Discourse 사이트가 충돌하여 도메인 선택 화면으로 돌아갑니다. Discourse로 돌아가면 + 초안 열기가 초기화되어 다시 + 새 주제로 돌아갑니다.
5개의 좋아요
제목이 이 검증을 통과하기에 너무 짧습니다
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/models/composer.js#L1184
하지만 왜 코드가 reject 대신 resolve를 사용하고, 그 후에 에러를 catch하는지 궁금합니다.
에러를 여기서 잡을 수 있을 것 같습니다.
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/controllers/composer.js#L1244
대략 다음과 같은 방식입니다.
this._saveDraftPromise = model.saveDraft().then(() => {
this._lastDraftSaved = Date.now();
...
}, error => {
// 여기서 에러 처리
}).finally(() => {
this._saveDraftPromise = null;
});
@eviltrout 의견 있으신가요?
7개의 좋아요
이 저장 코드는 불행히도 우리 시스템에서 가장 오래된 코드 중 하나이며, 종종 가장 취약한 부분이기도 합니다. 수년에 걸쳐 많은 기능이 이 코드 위에 쌓여 왔고, 성공하거나 실패할 수 있는 초안 저장과 같은 일부 기능은 자체적인 커스텀 기능이 필요하여 코드를 더욱 복잡하게 만들고 있습니다.
저장 코드의 직관이 아마도 맞을 것 같지만, 모든 테스트가 어떻게 실행되는지 확인하지 않고는 제가 확인해 드리기 어렵습니다. 향후 시간이 되시면 PR을 올려 주시면 좋겠습니다.
5개의 좋아요
Rhidian의 아래 단계에 따라 MacOS Chrome에서 Discourse meta에서 이 버그를 재현할 수 있었습니다:
Rhidian:
재현 단계:
Discourse 홈 페이지로 이동합니다.
제목 줄에 ‘Testing Drafts’를 입력합니다. 작성기 본문에 ‘Testing’을 입력합니다. 카테고리를 지정하지 않은 상태로 둡니다.
취소(Cancel)를 클릭합니다(Discourse 모바일의 쓰레기통 아이콘). 나중에 저장할 초안을 저장할지 묻는 메시지가 표시됩니다 - 해당 옵션을 클릭합니다.
새 주제(New Topic) 버튼이 + 열린 초안(Open Draft)으로 변경됩니다.
열린 초안(Open Draft)을 클릭합니다. 아무런 반응이 없습니다.
초안(Drafts) 폴더를 확인합니다 - 저장된 초안이 없습니다.
2개의 좋아요
nbianca
(Bianca)
8월 3, 2021, 2:57오후
11
안녕하세요,
버그를 보고해 주셔서 감사합니다. 해당 문제는 최신 버전의 Discourse에서 수정되었습니다. 문제는 짧은 초안을 저장할 수 있도록 제안하는 기능이, 저장되지 않아야 하는 상황에서도 작동하고 있었던 것이었습니다.
4개의 좋아요
nbianca
(Bianca)
에 닫힘
8월 7, 2021, 8:00오전
12
이 주제는 3일 후 자동으로 닫혔습니다. 새로운 답변은 더 이상 허용되지 않습니다.