barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

четверг, 22 марта 2012 г.

gRaphaël piechart: баг, связанный с игнорированием настройки "colors" при наличии единственного сектора

Ещё один баг gRaphaël piechart: если чарт содержит только один сектор, занимающий все 360 градусов, то библиотека игнорирует настройку colors, делая круг синего цвета. Покопавшись в исходниках (g.pie-min.js) я дейтсвительно нашел, что заливка устаналивается в 2 разных местах (видимо, для случая цельного круга и нескольких секторов). И если в случае с несколькими секторами используется выражение:
o.colors&&o.colors[y]||c.colors[y]||"#666"
, которое пытается найти цвет в конфигурации, а затем - в цветах по-умолчанию, то для цельного круга видим:
fill:c.colors[0]
, т.е. сразу берется цвет по-умолчанию. Исправление этого фрагмента на:
fill:o.colors&&o.colors[0]||c.colors[0]
решает проблему.
UP: посмотрел github проекта, соответствующее issue висит уже 2 года:  https://github.com/DmitryBaranovskiy/g.raphael/issues/24. 
Исправленная мной версия кода тут: https://raw.github.com/barbitoff/g.raphael/master/g.pie.js (не минимизированный файл) и тут: https://raw.github.com/barbitoff/g.raphael/master/min/g.pie-min.js (минимизированный).

Комментариев нет:

Отправить комментарий