These are chat archives for synrc/n2o

24th
Jun 2016
rusjava8
@rusjava8
Jun 24 2016 13:04

Всем привет!
@m-2k Пример с Хабра:

dtl{ file = "login",

  app=n2o_sample,
  bindings=[
            {title,title()},
            {body,body()}
            ]}.

Здесь login — это имя шаблона: /priv/static/template/index.html;
title и body — именованные включения в HTML шаблоне {{title}} и {{body}};
title() и body() — функции, результат которых будет подставлен в HTML шаблон.

Вопрос, а где указанно что логин это индекс?

Andy
@m-2k
Jun 24 2016 13:20
Научись уже пользоваться разметкой ну
Хотя ты с телефона походу :smile:
rusjava8
@rusjava8
Jun 24 2016 13:21
Да где про неё прочитать то хоть
Andy
@m-2k
Jun 24 2016 13:23
Про markdown?
В инете
Я не понял вопроса
rusjava8
@rusjava8
Jun 24 2016 13:23
А понял, спасибо
Andy
@m-2k
Jun 24 2016 13:23
Перефразируй
Логин это логин.хтмл
rusjava8
@rusjava8
Jun 24 2016 13:25
routes.erl строка route(<<>>) -> login; устанавливает по умолчанию страницу?
Andy
@m-2k
Jun 24 2016 13:25
Я наверн ошибся
Устанавливает страницу для url == /
rusjava8
@rusjava8
Jun 24 2016 13:25
да, правильно?
Andy
@m-2k
Jun 24 2016 13:26
Для любого юзай _
Ты читал про эрланг ваще?
rusjava8
@rusjava8
Jun 24 2016 13:27
Да
я знаю что такое _
Andy
@m-2k
Jun 24 2016 13:27
В роут функцию попадает и матчится ровно то что в неё передается. Посмотри что передается и ответь сам себе
rusjava8
@rusjava8
Jun 24 2016 13:35
Понял, просто уточнил, спасибо
This message was deleted
This message was deleted
Andy
@m-2k
Jun 24 2016 13:40
сообщения можно изменять
rusjava8
@rusjava8
Jun 24 2016 13:41
Сразу да, потом пункт #Edit# неактивный
rusjava8
@rusjava8
Jun 24 2016 14:49
route(<<"index",_/binary>>) -> index; route(<<"static/spa/index",_/binary>>) -> index;
В чем отличия?
Andy
@m-2k
Jun 24 2016 14:52
А ты как думаешь
Второе для SPA примера
Разве один из вариантов входит во множество второго? Зачем ты задаешь такие вопросы? Почему розовый не синий?
rusjava8
@rusjava8
Jun 24 2016 14:59
Потому что у меня по умолчанию если урл 192.168.1.21:8000 без параметров то выдает файл index из папки static/spa, а после комментирования строки route(<<"static/spa/index",_/binary>>) -> index; выдает index из priv/templates/
Andy
@m-2k
Jun 24 2016 15:15
Its magick! :-)
Exclusive street magick
rusjava8
@rusjava8
Jun 24 2016 15:15
Ок
Andy
@m-2k
Jun 24 2016 15:16
Скажу словами Макса - в примере все работает без мистики
Just remove spa dir
And rewrite route file for uself
rusjava8
@rusjava8
Jun 24 2016 15:19
Удалить самоё лёгкое что можно сделать, но надо знать для начала все связи файлов в папке с кодом что бы мусора не оставить.
Andy
@m-2k
Jun 24 2016 15:21
Мусора не будет
Review состоит из сотни строк кода. Ты в нем заблудиться боишься?
rusjava8
@rusjava8
Jun 24 2016 15:21
параметра то нет в урле, похоже на приоритет выбора одного из двух index файлов, а где он прописан не вижу
Andy
@m-2k
Jun 24 2016 15:22
Use file-like search, luke
rusjava8
@rusjava8
Jun 24 2016 15:24
для меня review не структурирован и не достаточно документирован, но это лично для меня, по этому и переспрашиваю что бы не начинать всё с начала после редактирования
Andy
@m-2k
Jun 24 2016 15:27
Сожалею. Но у меня нет времени быть твоей мамкой. Уверен если ты будешь сдерживать себя хотя бы на 10 минут прежде чем задать каждый вопрос сюда, у тебя появится больше опыта и уверенности.
rusjava8
@rusjava8
Jun 24 2016 15:27
и меньше времени
Я прислушаюсь к совету, спасибо.
Andy
@m-2k
Jun 24 2016 15:30
Я много раз начинал с чистого примера копируя туда код, поскольку не мог локализовать проблему. Но это было так давно... поэтому чем раньше ты начнёшь тем раньше яблоки в саду поспеют.
И да тебе придется читать исходники. Это будет лучшим подспорьем чем читать документацию. Код на эрланге читается так же легко как и документация, но дает полностью исчерпывающую информацию. Profit!
rusjava8
@rusjava8
Jun 24 2016 16:39
This message was deleted
rusjava8
@rusjava8
Jun 24 2016 17:20
А почему может не работать прописанное в routes.erl route(<<"index3",_/binary>>) -> doc; и с шаблоном index3 и без него?
Куда имя нового шаблона ещё прописывать нужно?
Andy
@m-2k
Jun 24 2016 18:04
В dtl
Index3 в твоем случае это url
Переутомился?
rusjava8
@rusjava8
Jun 24 2016 18:05
Да
Andy
@m-2k
Jun 24 2016 18:05
Тогда повторю еще раз
Смотри на функцию которая вызывает route/1
И на Module:main/0, и на cowboy:compile_route
/thread
rusjava8
@rusjava8
Jun 24 2016 18:09
Ок, разбираюсь
rusjava8
@rusjava8
Jun 24 2016 19:15

Создал страницу index3.erl

-module(index3).
-compile(export_all).
-include_lib("kvs/include/entry.hrl").
-include_lib("nitro/include/nitro.hrl").
-include_lib("n2o/include/wf.hrl").

main() -> #dtl{file="index3",app=review}.

Создал одноимённый шаблон index3.html

Use file-like search ни к чему не привёл...
В каталоге deps решение?
rusjava8
@rusjava8
Jun 24 2016 19:27
Ладно начну с ./mad app "newSite"
rusjava8
@rusjava8
Jun 24 2016 20:06
В новосозданном проекте всё работает как надо, вопрос с добавлением новой страницы в приложение закрыт.
rusjava8
@rusjava8
Jun 24 2016 21:28
Порт c 8000 на 80 нужно менять только в sys.config ? Ещё в sample.erl указан
Andy
@m-2k
Jun 24 2016 21:30
Еще в js если у тебя dynamic pages приложение
В шаблоне где Script тег
Там инициализация ws соединения
rusjava8
@rusjava8
Jun 24 2016 21:31
Ага я понял
Динамик это страницы которые в каталоге темплейтс считаются?
Andy
@m-2k
Jun 24 2016 21:32
Это когда не spa
Хотя не, мы ж делали фикс
Смотри sys.config
websocket_port вроде
rusjava8
@rusjava8
Jun 24 2016 21:36
ну вот в sys.config и в sample.erl я порт сменил, но перестал чат работать который по умолчанию идёт в приложении
может хром просто глючит...
Andy
@m-2k
Jun 24 2016 21:38
Что в js у тебя
rusjava8
@rusjava8
Jun 24 2016 21:39
<script>var transition = {pid: 'g2gCZ2QADW5vbm9kZUBub2hvc3QAAAEZAAAAAABoA2IAAAW6YgAMReZiAAIqPw==', port:'8001'}</script>
ну это я обратно вернул
Andy
@m-2k
Jun 24 2016 21:40
wf:script(["var transition = {pid: '", wf:pickle(Pid), "', ", "port:'", wf:to_list(wf:config(n2o,websocket_port,wf:config(n2o,port,8000))),"'}"]),
Нах ты мне js из браузера шлешь
В шаблоне что
rusjava8
@rusjava8
Jun 24 2016 21:42
This message was deleted
Andy
@m-2k
Jun 24 2016 21:42
А шо ты в sample.erl поменял?
rusjava8
@rusjava8
Jun 24 2016 21:43
порт только
Andy
@m-2k
Jun 24 2016 21:43
У тебя localhost?
rusjava8
@rusjava8
Jun 24 2016 21:43
нет удалёнка
выделенный
Andy
@m-2k
Jun 24 2016 21:43
Nginx есть?
rusjava8
@rusjava8
Jun 24 2016 21:44
нет
там только VM и n2o
Andy
@m-2k
Jun 24 2016 21:44
Кароч пиши сюда что поменял и что не работает
Телепатов нет
rusjava8
@rusjava8
Jun 24 2016 21:48
Создал новое приложение ./mad app "newSite"
Порт по умолчанию 8001
Сменил порт в sys.config на 8000
Страница открывается, но не работает чат который идёт по умолчанию
Пробовал менять порт в sample.erl , ситуация такая же...
Такое ощущение что данные из браузера не отсылаются
Andy
@m-2k
Jun 24 2016 21:49
Код постить это для слабаков?
rusjava8
@rusjava8
Jun 24 2016 21:50
Да какой код, я только порт сменил, sys.config ?
Andy
@m-2k
Jun 24 2016 21:51
application:set_env(n2o,websocket_port,8000); сделай в консоли и Cmd+R в браузере
Ты проблему нихера понять не можешь, я за тебя гадать не собираюсь
Браузер в консоли что пишет
Как ты вообще баги фиксаешь
Методом тыка?
rusjava8
@rusjava8
Jun 24 2016 21:52
я их не делал просто
Andy
@m-2k
Jun 24 2016 21:53
Мне это не интересно
Я написал решение, но ты вместо того чтобы написать что все заработало пишешь опять про своё горе
Код dtl шаблона сюда пришли где Script
rusjava8
@rusjava8
Jun 24 2016 21:54
да нет горя, я просто не понимаю почему просто смена порта создает не понятные проблемы
Andy
@m-2k
Jun 24 2016 21:55
Потому что ты вообще ничего не понимаешь а просто тыкаешь все наобум
Как в повести Стругацких
rusjava8
@rusjava8
Jun 24 2016 21:55
<html>
<head>
<link href="/static/synrc.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{{title}}</title>
</head>
<body>
{{body}}
<script>{{script}}</script>
    <script src='/n2o/protocols/bert.js'></script>
    <script src='/n2o/protocols/client.js'></script>
    <script src='/n2o/protocols/nitrogen.js'></script>
    <script src='/n2o/validation.js'></script>
    <script src='/n2o/bullet.js'></script>
    <script src='/n2o/utf8.js'></script>
    <script src='/n2o/template.js'></script>
    <script src='/n2o/n2o.js'></script>
<script>protos = [ $bert, $client ]; N2O_start();</script>
</body>
</html>
Я ничего не менял, кроме порта
Andy
@m-2k
Jun 24 2016 21:56
Отлично. Теперь в консоли wf:config(port).
И wf:config(websocket _port).
Ты ребутал ковбой после смены порта?
rusjava8
@rusjava8
Jun 24 2016 21:58
убивал процесс n2o
Andy
@m-2k
Jun 24 2016 21:59
Что в выводе
rusjava8
@rusjava8
Jun 24 2016 22:00
Да ругается консоль, что нет такой функции, сейчас...
Andy
@m-2k
Jun 24 2016 22:01
Пробел убери
rusjava8
@rusjava8
Jun 24 2016 22:18
Разобрался
Это хром глючит, в других браузерах работает как и работало после смены порта
Порт для http и ws одинаковый должен быть или разный?
Andy
@m-2k
Jun 24 2016 22:20
Что значит глючит
rusjava8
@rusjava8
Jun 24 2016 22:21
Глючит (не работает, перестал работать) чат в хроме, не знаю может кэш почистить надо, проверил в сафари и яндекс всё работает
Чистка кэша браузера помогла, теперь работает и в хроме. Спасибо.
rusjava8
@rusjava8
Jun 24 2016 22:50
Ответ: порт для http и ws - разный
Первый указывается в sys.config второй в sample.erl
rusjava8
@rusjava8
Jun 24 2016 23:02
Так?