pfaffman
(Jay Pfaffman)
5월 11, 2020, 5:12오후
1
칸반은 new-topic URL과 호환되지 않는 것 같습니다.
https://mysite.com/new-topic?title=this%20is%20a%20test&body=this%20too&category=staff&tags=todo
은 정상적으로 작동하지만
https://mysite.com/new-topic?title=this%20is%20a%20test&body=this%20too&category=kanban&tags=todo
은 작성기를 열지 않습니다.
1개의 좋아요
Stephen
(Stephen)
5월 11, 2020, 5:39오후
2
kanban이라는 이름의 카테고리가 호환되지 않는다는 뜻인가요?
1개의 좋아요
pfaffman
(Jay Pfaffman)
5월 11, 2020, 6:09오후
3
저희는 실제로 "projects"라고 부르고 있어서, "kanban"이라는 이름에 특별한 의미가 있는 것은 아닙니다. 첫 번째 URL은 제목, 텍스트, 태그, 카테고리가 선택된 상태로 작성기를 열지만, 두 번째 URL은 작성기를 열지 않습니다. 우회책으로는 카테고리를 설정하는 것이 아니라 변경만 하면 되는 URL을 사용하는 것입니다.
또 다른 문제는 제가 이를 수행하는 테마 컴포넌트를 만들었다는 점입니다:
.discourse-kanban-container .discourse-kanban-list {
width: calc((1110px - (4*4px))/5)
}
테마 컴포넌트에서 원하는 열 수를 설정할 수 있는 기능은 저 외에도 많은 사람에게 유용할 것 같습니다. PR을 제출할 목록에 추가해 두었지만, PR을 수락하는 것만큼 빠르게 직접 처리해 주실 수도 있겠죠.
1개의 좋아요
pfaffman
(Jay Pfaffman)
5월 11, 2020, 11:56오후
4
이것은 새로 설치된 사이트입니다.
“issues” 카테고리를 추가했습니다. “tags” 모드로 설정했습니다:
그런데 이렇게 표시됩니다:
david
(David Taylor)
5월 12, 2020, 8:46오전
5
콘솔에 JavaScript 오류가 있나요? (답은 네일 것 같습니다)
1개의 좋아요
pfaffman
(Jay Pfaffman)
5월 12, 2020, 4:28오후
6
아! 네. 죄송합니다.
Uncaught TypeError: Cannot read property 'slugFor' of undefined
아직 확인 중이며, 곧 이 게시물에 더 많은 정보를 업데이트하겠습니다.
아이디어: 태그가 정의되지 않았을 것 같습니다. 하지만 모든 태그를 하나의 태그 그룹으로 만들어도 여전히 같은 오류가 발생합니다.
3개의 좋아요
pfaffman
(Jay Pfaffman)
5월 12, 2020, 11:44오후
7
그리고 나서 카테고리 모드에서 작동할 수도 있겠다는 생각이 들었지만, 여전히
Uncaught TypeError: Cannot read property 'slugFor' of undefined
에러가 거의 모든 상황에서 발생하고 있습니다.
1개의 좋아요
@pfaffman , 혹시 해결하셨나요? 2.5.0.beta4로 업데이트한 후부터 저도 같은 문제가 발생하고 있습니다.
1개의 좋아요
pfaffman
(Jay Pfaffman)
5월 16, 2020, 6:35오후
9
아직은요. 한동안 다른 모드에서 작동하는 것 같았지만, 그 새로운 사이트에서는 아직 제대로 작동하지 않고 있어요. 이제 다른 쪽을 업그레이드하는 것에 대해 걱정되고 있어요…
하지만 이걸 사용하는 사람이 꽤 많은 것 같으니, 지금까지 다른 사용자들도 문제를 보고했을 것 같은데…
1개의 좋아요
Jay님, 감사합니다!
조금 더 조사해 보았습니다. 문제는 이 줄에 있습니다:
import {default as computed, observes} from "ember-addons/ember-computed-decorators";
export default Ember.Service.extend({
router: Ember.inject.service(),
hrefForCategory(category) {
let destinationURL = "/latest";
if (category) {
const slug = Discourse.Category.slugFor(category);
destinationURL = `/c/${slug}/l/latest`;
}
return destinationURL;
},
updateCurrentDiscoveryModel(model) {
if (model) {
this.set("discoveryParams", model.params);
this.set("discoveryTopTags", model.get("topic_list.top_tags"));
}
어떤 이유로인지, 특정 상황에서 slugFor가 아무것도 반환하지 않는 것 같습니다. 2.5.0.beta4와 함께 릴리스된 slugFor 메서드에 변경 사항이 있었는데, 이것이 관련이 있을 수 있습니다:
committed 03:13PM - 06 Apr 20 UTC
Hashtags will include last two levels only (ex: "parent:child").
불행히도, 아키텍처에 대한 제 이해도가 매우 낮아 그 이상은 말씀드리기 어렵습니다. 하지만 slugFor 메서드를 우회하면 칸반 보드가 다시 정상적으로 작동하기 때문에, 이 문제가 그와 관련이 있을 것으로 추정합니다.
2개의 좋아요
pfaffman
(Jay Pfaffman)
5월 17, 2020, 1:04오후
11
훌륭한 작업입니다! GitHub 이슈에 댓글을 남겼습니다.
2 앞에 "depth ="가 있는 것 같습니다. 두 번째 변경 사항을 보면 "depth = 3"이라고 되어 있는 것을 확인할 수 있습니다.
개발 환경이 설정되어 있지 않다면, 컨테이너 내부에서 해당 파일을 로컬로 편집한 다음 아래 명령을 실행해 볼 수 있습니다.
sv restart unicorn
(재시작과 unicorn의 순서를 가끔 잊곤 합니다.)
이렇게 하면 해결될 것입니다. 내일 누군가가 제 GitHub 댓글을 보고 곧 수정될 것이라 추측합니다.
오늘 내 책상에 갈 수 있다면 직접 확인해 보고 PR을 제출해 보겠습니다.
수정: 음, 생각만큼 간단하지 않은 것 같습니다. 아니면, 적어도 제가 시도한 긴급 수정이 작동하지 않는 것 같습니다.
수정 2: 네, 제 변경 사항이 잘못된 것 같지만, slugFor가 왜 실패하는지 이해가 되지 않습니다.
수정 3: 음, 제가 한 일은 표시해 주신 줄을 다음과 같이 변경한 것입니다:
const slug = category.slug;
default_modes가 todo:tags:today,todo,waiting,idea,done으로 설정된 경우에는 작동하는 것 같습니다.
4개의 좋아요
jerry0
(Jerry)
5월 19, 2020, 10:55오전
12
Discourse 최신 버전(2.5.0.beta4)으로 업데이트한 후 오늘 이 문제를 겪었습니다.
에러 로그에는 TypeError: Cannot read property ‘slugFor’ of undefined 가 표시됩니다.
@pfaffman 님의 수정 방법을 시도해 볼 예정입니다. (편집: 효과가 있었습니다!)
3개의 좋아요
downey
(Michael Downey)
5월 19, 2020, 5:42오후
13
최근에 또 다른 오류가 발생하고 있습니다. Kanban 보드에 활성화했던 하위 카테고리가 이제 카테고리 목록을 렌더링하지 않고, 위의 게시물에 있는 이미지에서 보시는 것처럼 카테고리 및 하위 카테고리 드롭다운이 포함된 행만 렌더링됩니다. 다음 오류가 생성됩니다:
메시지 (2건 보고됨)
TypeError: Discourse.Category is undefined
Url: https://discourse.example.org/theme-javascripts/f32bb95e4546f7b589d94cac68824c840c3744fd.js?__ws=discourse.example.org
Line: 469
Column: 20
Window Location: https://discourse.example.org/c/categoryname/subcategoryname/44/l/latest?board=default
백트레이스
hrefForCategory@https://discourse.example.org/theme-javascripts/f32bb95e4546f7b589d94cac68824c840c3744fd.js?__ws=discourse.example.org:469:20
href@https://discourse.example.org/theme-javascripts/f32bb95e4546f7b589d94cac68824c840c3744fd.js?__ws=discourse.example.org:385:32
d/<@https://discourse.example.org/assets/application-d69ccaa9a8d21fd7f40b18692a4d5240d02c1a5a4bbf6f25b44bafdf1dbd8e2f.js:1:38925
nt</t.get@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:202038
Ke@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:199024
Z</t.compute@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:114737
$</e.prototype.value@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:113727
U</t.flush@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:430769
@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:424675
o</t.evaluate@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:415589
Fe</t.evaluateSyscall@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:449837
Fe</t.evaluateInner@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:449423
Fe</t.evaluateOuter@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:449332
pt</e.next@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:475087
dt</e.prototype.next@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:476136
e/this.render@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:143407
H@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:188637
Jt</t._renderRoots@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:146752
Jt</t._renderRootsTransaction@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:147058
Jt</t._renderRoot@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:146446
Jt</t._appendDefinition@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:145571
Jt</t.appendOutletView@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:145292
f</t.invoke@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:490268
f</t.flush@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:489266
p</t.flush@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:491273
t</t._end@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:496669
t</t.end@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:493225
t</t._run@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:497197
t</t._join@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:496982
t</t.join@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:493933
f@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:360451
e.bind/<@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:360675
e@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:30015
l/</t<@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:30339
3개의 좋아요
pfaffman
(Jay Pfaffman)
5월 20, 2020, 8:38오후
14
방금 지원 사이트를 업그레이드했는데 이 문제도 발생했습니다. 따라서 설정 문제로는 보이지 않아요.
여기 포크를 만들었습니다: GitHub - literatecomputing/discourse-kanban-theme: A Discourse theme component providing basic kanban-board functionality · GitHub .
제 (아마도 단순한) 수정 사항은 여기에 있습니다:
import {default as computed, observes} from "ember-addons/ember-computed-decorators";
export default Ember.Service.extend({
router: Ember.inject.service(),
hrefForCategory(category) {
let destinationURL = "/latest";
if (category) {
console.log (category.slug);
// const slug = Discourse.Category.slugFor(category);
const slug = category.slug;
destinationURL = `/c/${slug}/l/latest`;
}
return destinationURL;
},
updateCurrentDiscoveryModel(model) {
if (model) {
this.set("discoveryParams", model.params);
this.set("discoveryTopTags", model.get("topic_list.top_tags"));
}
또한, 해당 숫자에 맞춰 카んばん 열의 너비를 조정할 수 있는 “열 수” 테마 설정도 추가했습니다. 제가 더 똑똑했다면 default modes 설정을 split해서 거기서 가져왔을 텐데, 아마도 두 값을 다르게 유지해야 하는 이유가 있을 것 같습니다.
@david , PR을 제출해야 할까요? 제 단순한 수정안보다 더 나은 해결책이 있을까요?
4개의 좋아요
Kanban을 사용하는 몇 개의 소규모 Discourse 인스턴스에서 동일한 문제가 발생한다는 것을 보고할 수 있습니다.
Uncaught TypeError: Cannot read property 'slugFor' of undefined
@david 님, @pfaffman 님의 PR을 통해 이 문제를 수정해 주시면 좋겠습니다.
2개의 좋아요
david
(David Taylor)
5월 22, 2020, 3:42오후
16
조사에 시간이 걸려서 죄송합니다!
pfaffman:
여기 제(아마도 단순한) 수정안이 있습니다
수정안은 좋습니다만, 하위 카테고리가 아닌 최상위 카테고리에서만 작동할 것 같습니다. 이렇게 하면 해결될 것입니다:
committed 03:31PM - 22 May 20 UTC
좋습니다. 여기 병합했습니다:
committed 03:41PM - 22 May 20 UTC
Co-authored-by: Jay Pfaffman <pfaffman@gmail.com>
이 설정은 전역 설정으로 두는 것이 적절하다고 생각합니다. 카테고리별로 설정해야 할 필요성은 낮아 보이거든요.
6개의 좋아요