Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Странный баг в wf:update()? #53

Closed
radetsky opened this issue Jan 8, 2014 · 4 comments
Closed

Странный баг в wf:update()? #53

radetsky opened this issue Jan 8, 2014 · 4 comments

Comments

@radetsky
Copy link

radetsky commented Jan 8, 2014

Джентельмены,

У меня есть странный баг в javascript. Воспроизводится у меня следующим образом.

try
error_logger:info_msg("[~s] SMS view camp #pn", [U#smsuser.email, CampId]),
CampTable = get_camp_table(store_pgsql:pgsql_client(), CampId),
Sms = store_pgsql:read_camp_messages(CampId, CampTable),
Table = smsviewer:table_view(Sms),
Modal = modal(Table),
wf:update(modal_camps, Modal),
wf:wire("$('#modal_camps').modal('show');")
catch
throw:{error, Reason} -> wf:error("pn",[Reason]), wf:wire(wf:f("alert('~s');",[Reason]))
% _:Reason -> wf:error("pn",[Reason]), wf:wire(wf:f("alert('Ошибка при выполнении запроса.');"))
end

Пояснения к коду.
CampTable = название временной таблицы в БД. Sms - массив СМС с типом #sms.
Table = сгенерированная записями n2o таблица. Modal - сгенерированное n2o-записями модальное окно для Twitter Bootstrap.

В результате wf:update() происходит Syntax error в Google Chrome с диагностикой ILLEGAL TOKEN и div #modal_camps остается не изменненным.

ВНИМАНИЕ! Только если в тексте СМС встречается какая-то херня. Какая именно, я еще не определил. И именно в тексте, а не в других полях. Если #td{body = Sm#sms.readable } закомментировать, то все работает ОК. Readable = text в БД = binary() в erlang. В большинстве случаев этого эффекта нет. Но в последнем случае текст равен ->

pearlsms=> select id,readable from camp_messages_161_20140107_1722 order by id limit 3;
id | readable
--------+---------------------------------------------------------------------
193850 | Вы можете автоматически подставлять в сообщения данные из списков.
193851 | Например, Имя. Вместо необходимого параметра используйте следующие
193852 | модификаторы: +
|
(3 rows)

Подозреваю дело в переводе строки в сообщении 193852, но это я проверю в течение дня.
Но не могли бы Вы и со своей стороны проверить работу wf:update()? Спасибо.

@5HT
Copy link
Member

5HT commented Jan 8, 2014

С большой вероятностью проблема в переводе строки. Нужно эскейпить wf:update(wf:js_escape(What)).

@radetsky
Copy link
Author

radetsky commented Jan 8, 2014

Добавил re:replace(Sm#sms.readable,"\n","<br>"). Вроде работает.
Но отсюда возникает вопрос: чем лучше всего сделать преобразование строки с обычными односимвольными амперсантами, кавычками и прочими радостями в html entities и обратно ?

@radetsky
Copy link
Author

radetsky commented Jan 8, 2014

Ой, а у меня в почте код wf:update(wf:js_escape(What)) не прописался. Сейчас исправим regexp на указанный хинт. Спасибо за ответ сразу на два вопроса.

@radetsky
Copy link
Author

radetsky commented Jan 8, 2014

Вчитался в wf_convert.erl , спасибо - это оно!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants