19declare(strict_types=1);
37 $registry->
register(
'./assets/js/progress.min.js');
38 parent::registerResources($registry);
41 public function render(
Component $component, RendererInterface $default_renderer): string
43 if ($component instanceof
Bar) {
52 $template = $this->
getTemplate(
'tpl.progress_bar.html',
true,
true);
54 $template->setVariable(
'LABEL', $component->getLabel());
56 $template->setVariable(
'SUCCESS_GLYPH', $default_renderer->render(
57 $this->getUIFactory()->symbol()->glyph()->apply(),
60 $template->setVariable(
'FAILURE_GLYPH', $default_renderer->render(
61 $this->getUIFactory()->symbol()->glyph()->close(),
64 $async_url = $component->getAsyncUrl();
65 if (
null !== $async_url) {
66 $template->setVariable(
'ASYNC_URL', (
string) $async_url);
69 if (
null !== $component->getAsyncUrl()) {
71 static fn(
string $id):
string =>
"
72 const progressbar = il.UI.Progress.Bar.createAsync(
73 document.getElementById('$id'),
74 '{$component->getUpdateSignal()->getId()}',
75 {$component->getAsyncRefreshInterval()->getRefreshIntervalInMs()},
78 $(document).on('{$component->getResetSignal()}', () => progressBar.reset());
83 static fn(
string $id):
string =>
"
84 const progressBar = il.UI.Progress.Bar.create(
85 document.getElementById('$id'),
86 '{$component->getUpdateSignal()->getId()}',
89 $(document).on('{$component->getResetSignal()}', () => progressBar.reset());
98 $template->setVariable(
'ID',
$id);
100 return $template->get();
105 $template->
setVariable(
'MAX_VALUE', (
string) $max);
110 if (
null !== $value) {
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
renderProgressBar(Bar $component, RendererInterface $default_renderer)
maybeApplyProgressBarValue(Template $template, ?int $value=null)
applyProgressBarMaxValue(Template $template, int $max=Bar::MAX_VALUE)
render(Component $component, RendererInterface $default_renderer)
registerResources(ResourceRegistry $registry)
Announce resources this renderer requires.
Base class for all component renderers.
cannotHandleComponent(Component $component)
This method MUST be called by derived component renderers, if.
createId()
Get a fresh unique id.
bindJavaScript(JavaScriptBindable $component)
Bind the component to JavaScript.
getTemplate(string $name, bool $purge_unfilled_vars, bool $purge_unused_blocks)
Get template of component this renderer is made for.
A component is the most general form of an entity in the UI.
withAdditionalOnLoadCode(Closure $binder)
Add some onload-code to the component instead of replacing the existing one.
Registry for resources required by rendered output like Javascript or CSS.
register(string $name)
Add a dependency.
Interface to templating as it is used in the UI framework.
setVariable(string $name, $value)
Set a variable in the current block.
An entity that renders components to a string output.