Страница 1 из 1

История оповещений

СообщениеДобавлено: Пт апр 25, 2014 10:44 am
BOPOH89
Добрый день!
Планируем использовать программу у себя на предприятии.
Главным критерием было то, что история переписки хранится на сервере и даже если сотрудник очистил историю, ее все равно можно просмотреть на сервере.
Но есть один вопрос, как я понял история оповещений хранится только локально на клиентах, как ее можно ханить на сервере?

Re: История оповещений

СообщениеДобавлено: Пт апр 25, 2014 11:05 am
Алексей Пикуров
Здравствуйте. История оповещений (как и история в конференциях, приватах и на доске объявлений) хранится на сервере в обязательном порядке, но в данный момент ещё нет инструмента для её просмотра на сервере.

Re: История оповещений

СообщениеДобавлено: Пт апр 25, 2014 11:11 am
Алексей Пикуров
P.S. Если есть такая необходимость прямо сейчас, можно сохранять её серверным скриптом в текстовый файл, на сервере. Это не так удобно, как удалённый просмотр в браузере через WEB-интерфейс, однако, лучше, чем ничего.

Re: История оповещений

СообщениеДобавлено: Пт апр 25, 2014 11:37 am
BOPOH89
Да, нужно сейчас, подскажите как именно это сделать?

Re: История оповещений

СообщениеДобавлено: Пт апр 25, 2014 11:54 am
Алексей Пикуров
Я напишу скрипт и выложу в этот топик. Оповещение будет сохраняться в текстовый файл.

Re: История оповещений

СообщениеДобавлено: Пт апр 25, 2014 12:02 pm
BOPOH89
Алексей Пикуров писал(а):Я напишу скрипт и выложу в этот топик. Оповещение будет сохраняться в текстовый файл.

Спасибо за поддержку и отличную программу.

Re: История оповещений

СообщениеДобавлено: Пт апр 25, 2014 8:39 pm
Алексей Пикуров
Скрипт реализован, но для этого пришлось немного доработать сервер, в версии 5.2 не было обработчика нужного события на сервере. В 5.3 будет работать, сможете подставить скрипт вот так:
broadcastlogscript.png

При создании оповещения будет писаться протокол в лог-файл:
broadcastslog.png

Собственно, текст скрипта:
Код: Выделить всё
function OnCreateBroadcast(iCID, iUIN: integer; sUsersList: string; 
                           dtActualTo: double; bMustRead,
                           bReadNotify: boolean; sMsg: string): boolean;
var
  s, sName: string;
begin
  sName := mGetNickFromUIN(iUIN);

  s := 'Who: ' + inttostr(iUIN) + ' (' + sName + '), ' +
       'To: ' + sUsersList + ' must read: ';
       
    if bMustRead then s := s + 'yes' else s := s + 'no';
 
  s := s + ', read notify: ';
 
    if bReadNotify then s := s + 'yes' else s := s + 'no';
   
  s := s + ', actual to: "' +
       DateTimeToStr(dtActualTo, 'dd.mm.yyyy hh:nn') + '", ' +
       'message: "' + sMsg + '"';   
       
  Protocol(s, mGetServerFolder('LOGS') + 'broadcasts.log', true);

  result := true;
end;

begin

end.

Содержимое лога (пример):
Код: Выделить всё
[25.04.2014 20:39:35] Who: 6 (Алексей Пикуров), To: 3, must read: yes, read notify: yes, actual to: "25.04.2014 23:59", message: "L$Привет, как дела? Это тестовое оповещение!"

Re: История оповещений

СообщениеДобавлено: Пт апр 25, 2014 8:47 pm
Алексей Пикуров
P.S. Добавлена информация в список "Что сделано в новой версии".

Re: История оповещений

СообщениеДобавлено: Сб апр 26, 2014 9:36 am
BOPOH89
Благодарю!
А когда можно будет скачать новую версию?

Re: История оповещений

СообщениеДобавлено: Сб апр 26, 2014 12:51 pm
Алексей Пикуров
Я думаю, в мае уже выйдет, мы сейчас тестируем аудио и видеосвязь, уже почти готово.
Всё, что сделано в готовящейся версии, описываем в теме "Что уже сделано в готовящейся версии MyChat?"

Re: История оповещений

СообщениеДобавлено: Ср май 28, 2014 12:38 pm
BOPOH89
Добрый день!
С обработчиком событий что-то не так.
Сам скрипт работает и записывает оповещение в лог.
Но при этом у пользователя оповещение не отображается. ( Как бы не приходит).
Как только выключаешь обработчик - все налаживается.

Re: История оповещений

СообщениеДобавлено: Ср май 28, 2014 2:02 pm
Алексей Пикуров
Я проверю и отпишу здесь.

Re: История оповещений

СообщениеДобавлено: Вс июн 01, 2014 6:17 pm
Алексей Пикуров
Окей, всё оказалось просто.

В тексте скрипта нужно написать в конце функции: result := true;
Иначе, считается, что функция удаляет оповещение и оно не попадает в базу данных (функция возвращает false). Я поправил свой пост выше с текстом скрипта.

Re: История оповещений

СообщениеДобавлено: Пн июн 02, 2014 8:37 am
BOPOH89
Спасибо!