- self.add_raw_data('expand_links_cache_task', self.task_info);

#rebuild-expand-links-cache-task.rebuild-widget
  h4
    = self.t('title')
    = ' '
    small(data-bind='visible: started, text: (current() / total() * 100 || 0).toFixed(2) + "%"')

  .progress
    .progress-bar(
      data-bind='style: { width: (current() / total() * 100).toFixed(4) + "%" }, visible: current() && total() && current() !== total()'
      style='display: none'
    )
    .progress-bar(
      data-bind='visible: current() && total() && current() === total()'
      style='display: none; width: 100%'
    )= self.t('complete')

  div
    button.btn.btn-secondary(
      data-on-click='admin.core.rebuild.blocks.expand_links_cache.start'
      data-bind='visible: !started()'
    )= self.t('start')

    button.btn.btn-danger(
      data-on-click='admin.core.rebuild.blocks.expand_links_cache.stop'
      data-bind='visible: started'
      style='display: none'
    )= self.t('stop')

- self.add_raw_data('expand_links_cache_task', self.task_info);

#rebuild-expand-links-cache-task.rebuild-widget
  h4
    = self.t('title')
    = ' '
    small(data-bind='visible: started, text: (current() / total() * 100 || 0).toFixed(2) + "%"')

  progress.progress(
    value=0
    max=100
    data-bind='value: (current() / total() * 100) || 0'
  )

  div
    button.btn.btn-secondary(
      data-on-click='admin.core.rebuild.blocks.expand_links_cache.start'
      data-bind='visible: !started()'
    )= self.t('start')

    button.btn.btn-danger(
      data-on-click='admin.core.rebuild.blocks.expand_links_cache.stop'
      data-bind='visible: started'
      style='display: none'
    )= self.t('stop')

Fix progress bars in admin interface
Fix progress bars in admin interface
