CodersCommunity / forum.pasja-informatyki.local

Środowisko deweloperskie forum
https://forum.pasja-informatyki.pl
25 stars 7 forks source link

Zbędne pogrubienie wypowiedzi za wspominką w komentarzu #269

Closed awaluk closed 3 years ago

awaluk commented 3 years ago

W #110 zostało dodane kiedyś automatyczne wstawianie nicka osoby na której komentarz się odpowiada, jeśli za danym komentarzem są inne. Nick ten jest wstawiany pogrubiony. Z początku działało to tak, że nick był pogrubiony, a jak się zaczynało pisać treść za nim to była już normalnym tekstem. Od pewnego czasu coś się popsuło i cała dalsza wypowiedź za nickiem pisana jest pogrubieniem. Nie wiem czy czasem na końcu nie była wstawiana jeszcze spacja, teraz jakby jej nie było, może to przez to. Niby nic wielkiego, ale powoduje to tyle, że niektórzy tego pogrubienia nie poprawiają i później cała wypowiedź jest niepotrzebnie pogrubiona.

Jeśli się da to proponuję poprawić tak, aby pisało się dalej bez pogrubienia. Jeśli to problem to może po prostu wyłączmy pogrubienie.

awaluk commented 3 years ago

Z tego co sprawdziłem - opisany problem występuje na Chrome 91, na Firefoxie 89 z kolei pisanie rozpoczyna się od nowej linii (tak też chyba nie było?) i bez pogrubienia.

wizarddos commented 3 years ago

Z tego co też zauważyłem i sprawdziłem pogrubienie uruchamia się po naciśnięciu na pole albo po usunięciu przecinka. Bez tych działań pisze się tak jak to zostało opisane czyli od nowej linii

awaluk commented 3 years ago

O Firefoxie mowa? Na Chrome za każdym razem jest pogrubienie, tj. tylko klikam "skomentuj", otwiera mi się pole na pisanie komentarz w którym zaczynam pisać i od razu tekst jest pogrubiony.

wizarddos commented 3 years ago

Tak, o Firefoxie mówię. Poza tym po kilku testach wydaje mi się że może być coś jeszcze na rzeczy z ckeditorem ale na razie nie wiem co

ScriptyChris commented 3 years ago

Na moje oko winna jest ta metoda moveToPosition używana w tym miejscu.

CKEditor po otwarciu okienka edytora wstawia <p> i w nim normalnie pisze się treść posta. Natomiast ficzer adnotacji wstawia w to <p> (z dodatkowym <br>) element <strong>, w którym wpisuje adnotację. Tworzy się więc:

<p>
  <strong>@adnotacjaUsera,</strong>
  <br>
</p>

Do wspomnianej metody moveToPosition jako pierwszy parametr przekazywany jest element <p> i jako drugi parametr (pozycję umieszczenia kursora) podany jest początek końca tegoż </p>, ale mimo to kursor wstawiany jest przed </strong> - co, moim zdaniem, w ogóle nie ma sensu (z punktu widzenia CKEditora), bo to nie <strong> jest kontekstem dla tej metody, tylko <p>. Próbowałem zamienić CKEDITOR.POSITION_BEFORE_END na CKEDITOR.POSITION_AFTER_END (żeby wstawiło kursor nawet za </p>), ale to nie zmienia efektu działania tej metody.

Po pierwszej próbie debugowania nie znalazłem dokładnej przyczyny ani tym bardziej rozwiązania problemu. Spróbuję debugować sam CKEditor, choć to nie jest łatwe, bo jego kod jest zminifikowany - trzeba się wspomagać ich pełnym kodem źródłowym na GitHub.