Błąd #8613
Zapis dokumentu bez zmian generuje zmiany
Status: | Zamknięty | Start date: | 17 Apr 2018 | |
---|---|---|---|---|
Priority: | Normalny | Due date: | ||
Assignee: | Mikołaj Szewczyk | % Done: | 100% | |
Category: | - | |||
Target version: | Release TBD |
Description
Po otwarciu dokumentu index.php?page=report&corpus=7&id=99883 do edycji treści (Content) w trybie Full i zapisie bez zmian generuje trzy zmiany w anotacjach (a załączniku).
Trzeba się przyjrzeć skąd te różnice, skoro nie ma żadnych zmian.
History
#1 Updated by Michał Marcińczuk over 5 years ago
- File Screenshot from 2018-04-17 15-30-13.png added
#2 Updated by Mikołaj Szewczyk over 5 years ago
- Status changed from Przypisany to Odpowiedź
- % Done changed from 0 to 100
Wydaje mi się, że ten mechanizm działa tak jak powinien. Cała zawartość dokumentu jest przetwarzana przez klasę HtmlParser, która tworzy nowe anotacje na podstawie tych już istniejących. Dzieje się to w tym miejscu:
a_document_save.php -> linia 185:
list($annotations_new, $wrong_annotations) = HtmlParser::readInlineAnnotationsWithOverlapping($report->content)
Zwracana jest tablica z nowymi anotacjami $annotations_new, w której znajdują się stare anotacje oraz te poprawione. W dokumencie z przykładu mamy następujące zmiany:
1. w (w ) - (remove begin/end whitespaces)
Usuwane są niepotrzebne biały znaki. To na pewno jest działanie zamierzone.
linia 244:
$changes[] = array("action"=>"remove_whitespaces", "data1"=>$anb, "data2"=>$an, 'annotation_type_name' => $type);
2. z 3 czarnych budynków, zaprojektowanych (z 3 czarnych budynków , zaprojektowanych)
Tutaj też została usunięta niepotrzebna spacja przed przecinkiem.
3. architekta Ludwiga Mies van der Rohe (architekta Ludwiga)
Ten przypadek jest mi najtrudniej wytłumaczyć. Tekst oryginalnej anotacji w tabeli reports_annotations_optimized to "architekta Ludwiga". Nie jestem pewien w jaki sposób inforex zgaduje, że anotacja powinna obejmować pełne nazwisko tej osoby.
Wszystkie te zmiany zachodzą gdzieś w metodzie HtmlParser::readInlineAnnotationsWithOverlapping($content).
#3 Updated by Michał Marcińczuk over 5 years ago
- Status changed from Odpowiedź to Zamknięty
#4 Updated by Michał Marcińczuk over 5 years ago
Faktycznie, błędy były w kolumnie text w tabeli reports_annotations_optimized. Prawdopodobnie w którymś momencie zostały zapisane w bazie błędne wartości text dla tych anotacji i teraz przy aktualizacji nie zgadza się.