Повторная инициализация виджета

Avatar
  • обновлен
  • Отвечен

Есть необходимость повторно инициализировать виджет в процессе работы нашего WEB приложения, по нескольким причинам:


1. Наша система работает без обновления страниц. Есть модуль Авторизации на котором используем виджет «с ушком», но после успешного входа хотелось бы ушко скрыть и перехватить управление на свой интерфейс. Использовать стили можно, но не вариант по причинам, описанным ниже.


2. Используем SSO для перекрестной авторизации. При построении токена есть такой параметр как срок действия (expires). Наша система может оставаться включенной у клиента сутками, т.е. угадать какой нужен срок действия токена сложно, кому час, а кому неделя. В любом случае генерировать SSO токены с большим сроком действия не правильно. 
- Правильно их периодически обновлять и отправлять клиенту. Но для использования нового токена на клиенте надо заново инициализировать виджет. 
- Или подскажите название свойства, в котором надо хранить свежий токен.


3. Оператор в чате не всегда присутствует. Но когда он on-line надо на клиенте показать кнопку ЧАТ без перегрузки страницы. Реализовать на клиенте периодическую проверку просто, только вот как переинициализировать виджет, когда оператор появился on-line?
Или может есть встроенный метод, которым можно проверять/включат/выключать чат.


PS
Дополнительный вопрос по SSO авторизации. После успешной авторизации на странице профиля клиента есть специальный раздел:
 

Image 10938


Какой параметр и в каком формате надо передать виджету, чтобы заполнить поле Project? Там вроде ссылка должна быть?

Как Вы оцениваете обслуживание, которое получили?

Оценка удовлетворенности от Voo 7 лет назад

Добавьте комментарий о качестве обслуживания (необязательно):

Прикрепленные ответы
Avatar
Vladimir Mullagaliyev co-founder
  • Ответ
  • Отвечен

Здравствуйте,

Причины и цели понятны.


Вот как вариант кусочек кода, который мы давали другим клиентам. Из него, думаем, Вы сомжете понять как лучше поступить.

<script language="javascript">
function openWidget(forum_id){
   _ues['forum'] = forum_id; 
   UE.Dialog.preloaded = false;
   UE.Dialog.socket = null;
   UE.Widget.init(_ues);
   UE.Popin.show();
}
</script>
<a href="#" onclick="openWidget('1')">open 1</a>


Обратите внимание, в Вашем вариант наверно правильнее изначально вообще не показывать виджет (само ушко, скрыть настройками виджета). Далее, когда нудно показать пользователю дергать отпределенный метод. В нем же генерить SSO, добавлять и показывать.


Дополнительный вопрос по SSO авторизации. После успешной авторизации на странице профиля клиента есть специальный раздел:


Никак, сейчас вообще уберем эту колонку. Она просто осталась исторически, когда пользователь был один на всех проектах. Сейчас пользователи в проектах различаются.

Avatar
Sergey Stukov co-founder

Чат сам каждые 60 секунд проверяет наличие операторов и покажет или скроет ушко в зависимости он наличия агентов в онлайн.


SSO токен можете обновить в глобальной переменной 

_ues.params.sso_token


Avatar
Voo

Спасибо за подсказку. С виджетом вроде ок, запускается с новым токеном.

А как быть с чатом? Его, не перегружая страницу, можно переинициализировать на новый токен?

Avatar
Vladimir Mullagaliyev co-founder
  • Ответ
  • Отвечен

Здравствуйте,

Причины и цели понятны.


Вот как вариант кусочек кода, который мы давали другим клиентам. Из него, думаем, Вы сомжете понять как лучше поступить.

<script language="javascript">
function openWidget(forum_id){
   _ues['forum'] = forum_id; 
   UE.Dialog.preloaded = false;
   UE.Dialog.socket = null;
   UE.Widget.init(_ues);
   UE.Popin.show();
}
</script>
<a href="#" onclick="openWidget('1')">open 1</a>


Обратите внимание, в Вашем вариант наверно правильнее изначально вообще не показывать виджет (само ушко, скрыть настройками виджета). Далее, когда нудно показать пользователю дергать отпределенный метод. В нем же генерить SSO, добавлять и показывать.


Дополнительный вопрос по SSO авторизации. После успешной авторизации на странице профиля клиента есть специальный раздел:


Никак, сейчас вообще уберем эту колонку. Она просто осталась исторически, когда пользователь был один на всех проектах. Сейчас пользователи в проектах различаются.