Документация COREmanager

Прогресс

 

Прогресс — это механизм информирования пользователя при долгих операциях (отправки формы или групповой операции). Долгая операция делится на условные шаги, и сопровожлается комментариями.

Пример из orion:

Получение прогресса

Чтобы запустить механизм прогресса нужно к запросу добавить параметр progressid, значение параметра необходимо сгенирировать самому, оно должно быть уникальным для сессии, может состять из цифр и/или букв(идеально подойдет timestamp).

Для получения прогресса нужно позвать ф-цию progress.get c параметром elid равный отправленному progressid.

В ответ панель сформирует XML следующего вида:

XML:

<doc ...>
  <action>product.install</action>
  <start>1376013950</start>
  <last>1376013971</last>
  <now>1376013974</now>
  <steps>6</steps>
  <done>4</done>
  <comment>Выполняю кэширование доступных пакетов</comment>
  <tparams>
    ...
  </tparams>
</doc>

Для вычисления процентов надо использовать значения элементов steps (общее количество шагов) и done (количество выполненых шагов). Комментарий берется из элемента comment.

Элемент start содержит время начало операции, last — время завершения предыдущего шага, now — время текущего запроса.

 

В этой статье