var/cache/test/twig/b9/b9b4582eacfbc72d7051fb8cf06d567c.php line 41

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  14. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46 extends \Twig\Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'wrap' => [$this'block_wrap'],
  24.             'header' => [$this'block_header'],
  25.             'content' => [$this'block_content'],
  26.             'modals' => [$this'block_modals'],
  27.         ];
  28.     }
  29.     protected function doGetParent(array $context)
  30.     {
  31.         // line 1
  32.         return "@ProductsNotifications/base.html.twig";
  33.     }
  34.     protected function doDisplay(array $context, array $blocks = [])
  35.     {
  36.         $macros $this->macros;
  37.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  38.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  39.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  40.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  41.         // line 3
  42.         $this->extensions['App\Twig\Extension\DomExtension']->dom_title_($context"section""Messages");
  43.         // line 1
  44.         $this->parent $this->loadTemplate("@ProductsNotifications/base.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"1);
  45.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  46.         
  47.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  48.         
  49.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  50.     }
  51.     // line 5
  52.     public function block_wrap($context, array $blocks = [])
  53.     {
  54.         $macros $this->macros;
  55.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  56.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""wrap"));
  57.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  58.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""wrap"));
  59.         echo "content__area--uilib reports";
  60.         
  61.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  62.         
  63.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  64.     }
  65.     // line 7
  66.     public function block_header($context, array $blocks = [])
  67.     {
  68.         $macros $this->macros;
  69.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  70.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""header"));
  71.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  72.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""header"));
  73.         // line 8
  74.         echo "    ";
  75.         $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"8"205303346")->display(twig_array_merge(twig_array_merge($context, ["title" => twig_get_attribute($this->env$this->source,         // line 9
  76. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'9$this->source); })()), "title", [], "any"falsefalsefalse9), "back" => ["text" => "Back to Messages""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.main")]]), ['_args' => twig_to_array(["title" => twig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'9$this->source); })()), "title", [], "any"falsefalsefalse9), "back" => ["text" => "Back to Messages""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.main")]])]));
  77.         
  78.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  79.         
  80.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  81.     }
  82.     // line 27
  83.     public function block_content($context, array $blocks = [])
  84.     {
  85.         $macros $this->macros;
  86.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  87.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  88.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  89.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  90.         // line 28
  91.         echo "    ";
  92.         if ( !twig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'28$this->source); })()), "firstJob", [], "any"falsefalsefalse28)) {
  93.             // line 29
  94.             echo "        <div class=\"content__data reports__message pt-2\">
  95.             <div class=\"blockgroup\">
  96.                 <label class=\"blockgroup__label\">Message</label>
  97.                 <h2 class=\"h4\">";
  98.             // line 32
  99.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'32$this->source); })()), "title", [], "any"falsefalsefalse32), "html"nulltrue);
  100.             echo "</h2>
  101.             </div>
  102.         </div>
  103.     ";
  104.         } else {
  105.             // line 36
  106.             echo "
  107.         ";
  108.             // line 37
  109.             $context["stats"] = twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'37$this->source); })()), "firstJob", [], "any"falsefalsefalse37), "summarize", [], "any"falsefalsefalse37);
  110.             // line 38
  111.             echo "
  112.         <div class=\"content__data reports__message pt-2\">
  113.             ";
  114.             // line 40
  115.             $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"40"81890466")->display(twig_array_merge(twig_array_merge($context, ["items" => [=> ["text" => "Summary""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.report", ["message" => twig_get_attribute($this->env$this->source,             // line 45
  116. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'45$this->source); })()), "id", [], "any"falsefalsefalse45)]), "active" => (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,             // line 47
  117. (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'47$this->source); })()), "request", [], "any"falsefalsefalse47), "attributes", [], "any"falsefalsefalse47), "get", [=> "_route"], "method"falsefalsefalse47) === "app.notifications.dashboard.messages.report")], => ["text" => "Logs""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.logs", ["message" => twig_get_attribute($this->env$this->source,             // line 52
  118. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'52$this->source); })()), "id", [], "any"falsefalsefalse52)]), "active" => (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,             // line 54
  119. (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'54$this->source); })()), "request", [], "any"falsefalsefalse54), "attributes", [], "any"falsefalsefalse54), "get", [=> "_route"], "method"falsefalsefalse54) === "app.notifications.dashboard.messages.logs")], => ["text" => "Debugging""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.debugging", ["message" => twig_get_attribute($this->env$this->source,             // line 59
  120. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'59$this->source); })()), "id", [], "any"falsefalsefalse59)]), "active" => (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,             // line 61
  121. (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'61$this->source); })()), "request", [], "any"falsefalsefalse61), "attributes", [], "any"falsefalsefalse61), "get", [=> "_route"], "method"falsefalsefalse61) === "app.notifications.dashboard.messages.debugging")], => ["text" => "Details""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.details", ["message" => twig_get_attribute($this->env$this->source,             // line 66
  122. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'66$this->source); })()), "id", [], "any"falsefalsefalse66)]), "active" => (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,             // line 68
  123. (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'68$this->source); })()), "request", [], "any"falsefalsefalse68), "attributes", [], "any"falsefalsefalse68), "get", [=> "_route"], "method"falsefalsefalse68) === "app.notifications.dashboard.messages.details")]]]), ['_args' => twig_to_array(["items" => [=> ["text" => "Summary""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.report", ["message" => twig_get_attribute($this->env$this->source,             // line 45
  124. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'45$this->source); })()), "id", [], "any"falsefalsefalse45)]), "active" => (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,             // line 47
  125. (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'47$this->source); })()), "request", [], "any"falsefalsefalse47), "attributes", [], "any"falsefalsefalse47), "get", [=> "_route"], "method"falsefalsefalse47) === "app.notifications.dashboard.messages.report")], => ["text" => "Logs""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.logs", ["message" => twig_get_attribute($this->env$this->source,             // line 52
  126. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'52$this->source); })()), "id", [], "any"falsefalsefalse52)]), "active" => (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,             // line 54
  127. (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'54$this->source); })()), "request", [], "any"falsefalsefalse54), "attributes", [], "any"falsefalsefalse54), "get", [=> "_route"], "method"falsefalsefalse54) === "app.notifications.dashboard.messages.logs")], => ["text" => "Debugging""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.debugging", ["message" => twig_get_attribute($this->env$this->source,             // line 59
  128. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'59$this->source); })()), "id", [], "any"falsefalsefalse59)]), "active" => (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,             // line 61
  129. (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'61$this->source); })()), "request", [], "any"falsefalsefalse61), "attributes", [], "any"falsefalsefalse61), "get", [=> "_route"], "method"falsefalsefalse61) === "app.notifications.dashboard.messages.debugging")], => ["text" => "Details""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.details", ["message" => twig_get_attribute($this->env$this->source,             // line 66
  130. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'66$this->source); })()), "id", [], "any"falsefalsefalse66)]), "active" => (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,             // line 68
  131. (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'68$this->source); })()), "request", [], "any"falsefalsefalse68), "attributes", [], "any"falsefalsefalse68), "get", [=> "_route"], "method"falsefalsefalse68) === "app.notifications.dashboard.messages.details")]]])]));
  132.             // line 759
  133.             echo "        </div>
  134.     ";
  135.         }
  136.         
  137.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  138.         
  139.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  140.     }
  141.     // line 763
  142.     public function block_modals($context, array $blocks = [])
  143.     {
  144.         $macros $this->macros;
  145.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  146.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""modals"));
  147.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  148.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""modals"));
  149.         // line 764
  150.         echo "    ";
  151.         $this->displayParentBlock("modals"$context$blocks);
  152.         echo "
  153.     ";
  154.         // line 765
  155.         $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"765"1719583840")->display(twig_array_merge(twig_array_merge($context, ["attr" => ["id" => "modal__email_preview"]]), ['_args' => twig_to_array(["attr" => ["id" => "modal__email_preview"]])]));
  156.         // line 787
  157.         echo "    ";
  158.         $this->loadTemplate("@ui2022/schoolnow/modal--sidepanel.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"787)->display(twig_array_merge(twig_array_merge($context, ["attr" => ["id" => "sidepanel__filtered_logs"]]), ['_args' => twig_to_array(["attr" => ["id" => "sidepanel__filtered_logs"]])]));
  159.         // line 792
  160.         echo "    <script type=\"text/javascript\">
  161.         (function (window, document, \$, undefined) {
  162.             \$(function () {
  163.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  164.                     const pageHeight = \$(window).height();
  165.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  166.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  167.                 });
  168.             });
  169.         })(window, document, jQuery);
  170.     </script>
  171. ";
  172.         
  173.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  174.         
  175.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  176.     }
  177.     public function getTemplateName()
  178.     {
  179.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  180.     }
  181.     public function isTraitable()
  182.     {
  183.         return false;
  184.     }
  185.     public function getDebugInfo()
  186.     {
  187.         return array (  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  188.     }
  189.     public function getSourceContext()
  190.     {
  191.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  192. {% do dom_title_section('Messages') %}
  193. {% block wrap %}content__area--uilib reports{% endblock %}
  194. {% block header %}
  195.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  196.         title: message.title,
  197.         back: {
  198.             text: 'Back to Messages',
  199.             link: path('app.notifications.dashboard.messages.main'),
  200.         },
  201.     } %}
  202.         {% block actions %}
  203.             {% include '@ui2022/button--a.html.twig' with {
  204.                 text: 'Clone message',
  205.                 link: path('app.notifications.dashboard.messages.create', {
  206.                     clone: message.id,
  207.                 }),
  208.                 styles: 'gray',
  209.             } %}
  210.         {% endblock %}
  211.     {% endembed %}
  212. {% endblock %}
  213. {% block content %}
  214.     {% if not message.firstJob %}
  215.         <div class=\"content__data reports__message pt-2\">
  216.             <div class=\"blockgroup\">
  217.                 <label class=\"blockgroup__label\">Message</label>
  218.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  219.             </div>
  220.         </div>
  221.     {% else %}
  222.         {% set stats = message.firstJob.summarize %}
  223.         <div class=\"content__data reports__message pt-2\">
  224.             {% embed '@ui2022/tabs--static.html.twig' with {
  225.                 items: [
  226.                     {
  227.                         text: 'Summary',
  228.                         link: path('app.notifications.dashboard.messages.report', {
  229.                             message: message.id,
  230.                         }),
  231.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  232.                     },
  233.                     {
  234.                         text: 'Logs',
  235.                         link: path('app.notifications.dashboard.messages.logs', {
  236.                             message: message.id,
  237.                         }),
  238.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  239.                     },
  240.                     {
  241.                         text: 'Debugging',
  242.                         link: path('app.notifications.dashboard.messages.debugging', {
  243.                             message: message.id,
  244.                         }),
  245.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  246.                     },
  247.                     {
  248.                         text: 'Details',
  249.                         link: path('app.notifications.dashboard.messages.details', {
  250.                             message: message.id,
  251.                         }),
  252.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  253.                     },
  254.                 ],
  255.             } %}
  256.                 {% block tab %}
  257.                     {% include '@ui2022/subheader.html.twig' with {
  258.                         title: 'Summary',
  259.                         classes: 'mt-4 pt-4',
  260.                     } %}
  261.                     <div class=\"three-column-section\">
  262.                         <div class=\"three-column-inner-section\">
  263.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  264.                                 title: 'Sent',
  265.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  266.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  267.                                 label: 'Contacts',
  268.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  269.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  270.                                         message: message.id,
  271.                                         query: {
  272.                                             filter: 'all',
  273.                                             state: 'all',
  274.                                             sort: 'timestamp',
  275.                                             direction: 'DESC'
  276.                                         }
  277.                                     })
  278.                                     : null,
  279.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  280.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  281.                             } %}
  282.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  283.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  284.                                 title: message.sending ? 'Running' : 'Completed',
  285.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  286.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  287.                                 label: interval[1]|default(''),
  288.                             } %}
  289.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  290.                                 title: 'Errors',
  291.                                 subtitle: 'Message not delivered',
  292.                                 value: stats.all.failed|number_format,
  293.                                 label: 'Contacts',
  294.                                 link: (stats.all.failed > 0)
  295.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  296.                                         message: message.id,
  297.                                         query: {
  298.                                             filter: 'all',
  299.                                             state: 'failed',
  300.                                             sort: 'timestamp',
  301.                                             direction: 'DESC'
  302.                                         }
  303.                                     })
  304.                                     : null,
  305.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  306.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  307.                             } %}
  308.                         </div>
  309.                     </div>
  310.                     <div class=\"section__infostats mb-4\">
  311.                         <div class=\"card card__charts\">
  312.                             <div class=\"row row-10\">
  313.                                 <div class=\"col-12 col-md-6\">
  314.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  315.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  316.                                         {% include '@ui2022/chart--donut.html.twig' with {
  317.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  318.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  319.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  320.                                             }),
  321.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  322.                                             label: 'Total contacts',
  323.                                         } %}
  324.                                     </div>
  325.                                 </div>
  326.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  327.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  328.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  329.                                         <div class=\"targetlist\">
  330.                                             {% if message.lists|length %}
  331.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  332.                                                     title: 'Contact lists',
  333.                                                     icon: 'icon-contact-reachable',
  334.                                                     items: message.lists|map((list) => {
  335.                                                         text: list.name,
  336.                                                         link: path('app.notifications.dashboard.lists.view', {
  337.                                                             list: list.id,
  338.                                                         }),
  339.                                                     }),
  340.                                                 } %}
  341.                                             {% endif %}
  342.                                             {% if message.facebookSocialAccounts|length %}
  343.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  344.                                                     title: 'Facebook pages',
  345.                                                     icon: 'icon-facebook-fill',
  346.                                                     items: message.facebookSocialAccounts|map((social) => {
  347.                                                         text: social.name,
  348.                                                         target: '_blank',
  349.                                                         link: 'https://www.facebook.com/%s'|format(
  350.                                                             social.facebookPageId,
  351.                                                         ),
  352.                                                     }),
  353.                                                 } %}
  354.                                             {% endif %}
  355.                                             {% if message.twitterSocialAccounts|length %}
  356.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  357.                                                     title: 'Twitter profiles',
  358.                                                     icon: 'icon-twitter-fill',
  359.                                                     items: message.twitterSocialAccounts|map((social) => {
  360.                                                         text: social.name,
  361.                                                         target: '_blank',
  362.                                                         link: 'https://www.twitter.com/%s'|format(
  363.                                                             social.twitterUserName,
  364.                                                         ),
  365.                                                     }),
  366.                                                 } %}
  367.                                             {% endif %}
  368.                                             {% if message.instagramSocialAccounts|length %}
  369.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  370.                                                     title: 'Instagram accounts',
  371.                                                     icon: 'fab fa-instagram',
  372.                                                     items: message.instagramSocialAccounts|map((social) => {
  373.                                                         text: social.name,
  374.                                                         target: '_blank',
  375.                                                         link: 'https://www.instagram.com/%s'|format(
  376.                                                             social.name,
  377.                                                         ),
  378.                                                     }),
  379.                                                 } %}
  380.                                             {% endif %}
  381.                                             {% if message.websiteDepartments|length %}
  382.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  383.                                                     title: 'Website departments',
  384.                                                     icon: 'icon-website',
  385.                                                     items: message.websiteDepartments|map((department) => {
  386.                                                         text: department.name,
  387.                                                         target: '_blank',
  388.                                                         link: web_url_catchall(department, '/'),
  389.                                                     }),
  390.                                                 } %}
  391.                                             {% endif %}
  392.                                         </div>
  393.                                     </div>
  394.                                 {% endif %}
  395.                             </div>
  396.                         </div>
  397.                     </div>
  398.                     {% for channel in message.usedChannels(true) %}
  399.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  400.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  401.                                 icon: 'icon-activity-mail',
  402.                                 title: 'Email',
  403.                                 stats: [
  404.                                     {
  405.                                         label: 'Total sent',
  406.                                         value: message.firstJob.emailSucceeded|number_format,
  407.                                         link: (message.firstJob.emailSucceeded > 0)
  408.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  409.                                                 message: message.id,
  410.                                                 query: {
  411.                                                     filter: 'email',
  412.                                                     sort: 'timestamp',
  413.                                                     direction: 'DESC'
  414.                                                 }
  415.                                             })
  416.                                             : null,
  417.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  418.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  419.                                     },
  420.                                     {
  421.                                         label: 'Delivery verified',
  422.                                         value: message.firstJob.emailDelivered|number_format,
  423.                                         link: (message.firstJob.emailDelivered > 0)
  424.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  425.                                                 message: message.id,
  426.                                                 query: {
  427.                                                     filter: 'email',
  428.                                                     state: 'completed',
  429.                                                     sort: 'timestamp',
  430.                                                     direction: 'DESC'
  431.                                                 }
  432.                                             })
  433.                                             : null,
  434.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  435.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  436.                                     },
  437.                                     {
  438.                                         label: 'Bounces',
  439.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  440.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  441.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  442.                                                 message: message.id,
  443.                                                 query: {
  444.                                                     filter: 'email',
  445.                                                     state: 'failed',
  446.                                                     sort: 'timestamp',
  447.                                                     direction: 'DESC'
  448.                                                 }
  449.                                             })
  450.                                             : null,
  451.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  452.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  453.                                     },
  454.                                     {
  455.                                         label: 'Open rate',
  456.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  457.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  458.                                     },
  459.                                 ],
  460.                             } %}
  461.                                 {% block content %}
  462.                                     <table class=\"table-clear border-0 text-gray-dark\">
  463.                                         <tbody>
  464.                                             <tr>
  465.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  466.                                                 <td class=\"pb-3 pb-sm-2\">
  467.                                                     <span>{{ message.emailSubject }}</span>
  468.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  469.                                                 </td>
  470.                                             </tr>
  471.                                             <tr>
  472.                                                 <td class=\"text-semibold pr-3\">From:</td>
  473.                                                 <td>
  474.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  475.                                                 </td>
  476.                                             </tr>
  477.                                         </tbody>
  478.                                     </table>
  479.                                 {% endblock %}
  480.                             {% endembed %}
  481.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  482.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  483.                                 icon: 'icon-activity-text',
  484.                                 title: 'SMS',
  485.                                 stats: [
  486.                                     {
  487.                                         label: 'Total sent',
  488.                                         value: message.firstJob.smsSucceeded|number_format,
  489.                                         link: (message.firstJob.smsSucceeded > 0)
  490.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  491.                                                 message: message.id,
  492.                                                 query: {
  493.                                                     filter: 'sms',
  494.                                                     state: 'all',
  495.                                                     sort: 'timestamp',
  496.                                                     direction: 'DESC'
  497.                                                 }
  498.                                             })
  499.                                             : null,
  500.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  501.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  502.                                     },
  503.                                     {
  504.                                         label: 'Delivery verified',
  505.                                         value: message.firstJob.smsDelivered|number_format,
  506.                                         link: (message.firstJob.smsDelivered > 0)
  507.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  508.                                                 message: message.id,
  509.                                                 query: {
  510.                                                     filter: 'sms',
  511.                                                     state: 'completed',
  512.                                                     sort: 'timestamp',
  513.                                                     direction: 'DESC'
  514.                                                 }
  515.                                             })
  516.                                             : null,
  517.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  518.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  519.                                     },
  520.                                     {
  521.                                         label: 'Bounces',
  522.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  523.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  524.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  525.                                                 message: message.id,
  526.                                                 query: {
  527.                                                     filter: 'sms',
  528.                                                     state: 'failed',
  529.                                                     sort: 'timestamp',
  530.                                                     direction: 'DESC'
  531.                                                 }
  532.                                             })
  533.                                             : null,
  534.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  535.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  536.                                     },
  537.                                 ],
  538.                             } %}
  539.                                 {% block content %}
  540.                                     <table class=\"table-clear border-0 text-gray-dark\">
  541.                                         <tbody>
  542.                                             <tr>
  543.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  544.                                                 <td class=\"pb-3 pb-sm-2\">
  545.                                                     <span>{{ message.smsText }}</span>
  546.                                                     {% if message.smsUrl %}
  547.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  548.                                                     {% endif %}
  549.                                                 </td>
  550.                                             </tr>
  551.                                             <tr>
  552.                                                 <td class=\"text-semibold pr-3\">From:</td>
  553.                                                 <td>
  554.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  555.                                                 </td>
  556.                                             </tr>
  557.                                         </tbody>
  558.                                     </table>
  559.                                 {% endblock %}
  560.                             {% endembed %}
  561.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  562.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  563.                                 icon: 'icon-activity-voice',
  564.                                 title: 'Phone',
  565.                                 stats: [
  566.                                     {
  567.                                         label: 'Total sent',
  568.                                         value: message.firstJob.voiceSucceeded|number_format,
  569.                                         link: (message.firstJob.voiceSucceeded > 0)
  570.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  571.                                                 message: message.id,
  572.                                                 query: {
  573.                                                     filter: 'voice',
  574.                                                     state: 'all',
  575.                                                     sort: 'timestamp',
  576.                                                     direction: 'DESC'
  577.                                                 }
  578.                                             })
  579.                                             : null,
  580.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  581.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  582.                                     },
  583.                                     {
  584.                                         label: 'Delivery verified',
  585.                                         value: message.firstJob.voiceDelivered|number_format,
  586.                                         link: (message.firstJob.voiceDelivered > 0)
  587.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  588.                                                 message: message.id,
  589.                                                 query: {
  590.                                                     filter: 'voice',
  591.                                                     state: 'completed',
  592.                                                     sort: 'timestamp',
  593.                                                     direction: 'DESC'
  594.                                                 }
  595.                                             })
  596.                                             : null,
  597.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  598.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  599.                                     },
  600.                                     {
  601.                                         label: 'Bounces',
  602.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  603.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  604.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  605.                                                 message: message.id,
  606.                                                 query: {
  607.                                                     filter: 'voice',
  608.                                                     state: 'failed',
  609.                                                     sort: 'timestamp',
  610.                                                     direction: 'DESC'
  611.                                                 }
  612.                                             })
  613.                                             : null,
  614.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  615.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  616.                                     },
  617.                                     {
  618.                                         label: 'Answer rate',
  619.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  620.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  621.                                     },
  622.                                 ],
  623.                             } %}
  624.                                 {% block content %}
  625.                                     <table class=\"table-clear border-0 text-gray-dark\">
  626.                                         <tbody>
  627.                                             <tr>
  628.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  629.                                                 <td class=\"pb-3 pb-sm-2\">
  630.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  631.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  632.                                                         Your browser does not support the audio element.
  633.                                                     </audio>
  634.                                                 </td>
  635.                                             </tr>
  636.                                             <tr>
  637.                                                 <td class=\"text-semibold pr-3\">From:</td>
  638.                                                 <td>
  639.                                                     <span class=\"emailid\">
  640.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  641.                                                     </span>
  642.                                                 </td>
  643.                                             </tr>
  644.                                         </tbody>
  645.                                     </table>
  646.                                 {% endblock %}
  647.                             {% endembed %}
  648.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  649.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  650.                                 icon: 'icon-deviceapp',
  651.                                 title: 'Mobile app',
  652.                                 stats: [
  653.                                     {
  654.                                         label: 'Total sent',
  655.                                         value: message.firstJob.appSucceeded|number_format,
  656.                                         link: (message.firstJob.appSucceeded > 0)
  657.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  658.                                                 message: message.id,
  659.                                                 query: {
  660.                                                     filter: 'app',
  661.                                                     state: 'pending',
  662.                                                     sort: 'timestamp',
  663.                                                     direction: 'DESC'
  664.                                                 }
  665.                                             })
  666.                                             : null,
  667.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  668.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  669.                                     },
  670.                                     {
  671.                                         label: 'Delivery verified',
  672.                                         value: message.firstJob.appDelivered|number_format,
  673.                                     },
  674.                                     {
  675.                                         label: 'Bounces',
  676.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  677.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  678.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  679.                                                 message: message.id,
  680.                                                 query: {
  681.                                                     filter: 'app',
  682.                                                     state: 'failed',
  683.                                                     sort: 'timestamp',
  684.                                                     direction: 'DESC'
  685.                                                 }
  686.                                             })
  687.                                             : null,
  688.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  689.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  690.                                     },
  691.                                 ],
  692.                             } %}
  693.                                 {% block content %}
  694.                                     <table class=\"table-clear border-0 text-gray-dark\">
  695.                                         <tbody>
  696.                                             <tr>
  697.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  698.                                                 <td class=\"pb-3 pb-sm-2\">
  699.                                                     <span>{{ message.appTitle }}</span>
  700.                                                 </td>
  701.                                             </tr>
  702.                                         </tbody>
  703.                                     </table>
  704.                                 {% endblock %}
  705.                             {% endembed %}
  706.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  707.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  708.                                 icon: 'icon-facebook-fill',
  709.                                 title: 'Facebook',
  710.                                 stats: [
  711.                                     {
  712.                                         label: 'Total posts',
  713.                                         value: message.firstJob.facebookTotal|number_format,
  714.                                         link: (message.firstJob.facebookTotal > 0)
  715.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  716.                                                 message: message.id,
  717.                                                 query: {
  718.                                                     filter: 'facebook',
  719.                                                     state: 'all',
  720.                                                     sort: 'timestamp',
  721.                                                     direction: 'DESC'
  722.                                                 }
  723.                                             })
  724.                                             : null,
  725.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  726.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  727.                                     },
  728.                                     {
  729.                                         label: 'Successful posts',
  730.                                         value: message.firstJob.facebookSucceeded|number_format,
  731.                                         link: (message.firstJob.facebookSucceeded > 0)
  732.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  733.                                                 message: message.id,
  734.                                                 query: {
  735.                                                     filter: 'facebook',
  736.                                                     state: 'completed',
  737.                                                     sort: 'timestamp',
  738.                                                     direction: 'DESC'
  739.                                                 }
  740.                                             })
  741.                                             : null,
  742.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  743.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  744.                                     },
  745.                                     {
  746.                                         label: 'Errors',
  747.                                         value: message.firstJob.facebookFailed|number_format,
  748.                                         link: (message.firstJob.facebookFailed > 0)
  749.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  750.                                                 message: message.id,
  751.                                                 query: {
  752.                                                     filter: 'facebook',
  753.                                                     state: 'failed',
  754.                                                     sort: 'timestamp',
  755.                                                     direction: 'DESC'
  756.                                                 }
  757.                                             })
  758.                                             : null,
  759.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  760.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  761.                                     },
  762.                                 ],
  763.                             } %}{% endembed %}
  764.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  765.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  766.                                 icon: 'icon-twitter-fill',
  767.                                 title: 'Twitter',
  768.                                 stats: [
  769.                                     {
  770.                                         label: 'Total posts',
  771.                                         value: message.firstJob.twitterTotal|number_format,
  772.                                         link: (message.firstJob.twitterTotal > 0)
  773.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  774.                                                 message: message.id,
  775.                                                 query: {
  776.                                                     filter: 'twitter',
  777.                                                     state: 'all',
  778.                                                     sort: 'timestamp',
  779.                                                     direction: 'DESC'
  780.                                                 }
  781.                                             })
  782.                                             : null,
  783.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  784.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  785.                                     },
  786.                                     {
  787.                                         label: 'Successful posts',
  788.                                         value: message.firstJob.twitterSucceeded|number_format,
  789.                                         link: (message.firstJob.twitterSucceeded > 0)
  790.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  791.                                                 message: message.id,
  792.                                                 query: {
  793.                                                     filter: 'twitter',
  794.                                                     state: 'completed',
  795.                                                     sort: 'timestamp',
  796.                                                     direction: 'DESC'
  797.                                                 }
  798.                                             })
  799.                                             : null,
  800.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  801.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  802.                                     },
  803.                                     {
  804.                                         label: 'Errors',
  805.                                         value: message.firstJob.twitterFailed|number_format,
  806.                                         link: (message.firstJob.twitterFailed > 0)
  807.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  808.                                                 message: message.id,
  809.                                                 query: {
  810.                                                     filter: 'twitter',
  811.                                                     state: 'failed',
  812.                                                     sort: 'timestamp',
  813.                                                     direction: 'DESC'
  814.                                                 }
  815.                                             })
  816.                                             : null,
  817.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  818.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  819.                                     },
  820.                                 ],
  821.                             } %}{% endembed %}
  822.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  823.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  824.                                 icon: 'fab fa-instagram',
  825.                                 title: 'Instagram',
  826.                                 stats: [
  827.                                     {
  828.                                         label: 'Total posts',
  829.                                         value: message.firstJob.instagramTotal|number_format,
  830.                                         link: (message.firstJob.instagramTotal > 0)
  831.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  832.                                                 message: message.id,
  833.                                                 query: {
  834.                                                     filter: 'instagram',
  835.                                                     state: 'all',
  836.                                                     sort: 'timestamp',
  837.                                                     direction: 'DESC'
  838.                                                 }
  839.                                             })
  840.                                             : null,
  841.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  842.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  843.                                     },
  844.                                     {
  845.                                         label: 'Successful posts',
  846.                                         value: message.firstJob.instagramSucceeded|number_format,
  847.                                         link: (message.firstJob.instagramSucceeded > 0)
  848.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  849.                                                 message: message.id,
  850.                                                 query: {
  851.                                                     filter: 'instagram',
  852.                                                     state: 'completed',
  853.                                                     sort: 'timestamp',
  854.                                                     direction: 'DESC'
  855.                                                 }
  856.                                             })
  857.                                             : null,
  858.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  859.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  860.                                     },
  861.                                     {
  862.                                         label: 'Errors',
  863.                                         value: message.firstJob.instagramFailed|number_format,
  864.                                         link: (message.firstJob.instagramFailed > 0)
  865.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  866.                                                 message: message.id,
  867.                                                 query: {
  868.                                                     filter: 'instagram',
  869.                                                     state: 'failed',
  870.                                                     sort: 'timestamp',
  871.                                                     direction: 'DESC'
  872.                                                 }
  873.                                             })
  874.                                             : null,
  875.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  876.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  877.                                     },
  878.                                 ],
  879.                             } %}{% endembed %}
  880.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  881.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  882.                                 icon: 'icon-website',
  883.                                 title: 'Website',
  884.                                 stats: [
  885.                                     {
  886.                                         label: 'Total posts',
  887.                                         value: message.firstJob.websiteTotal|number_format,
  888.                                         link: (message.firstJob.websiteTotal > 0)
  889.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  890.                                                 message: message.id,
  891.                                                 query: {
  892.                                                     filter: 'website',
  893.                                                     state: 'all',
  894.                                                     sort: 'timestamp',
  895.                                                     direction: 'DESC'
  896.                                                 }
  897.                                             })
  898.                                             : null,
  899.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  900.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  901.                                     },
  902.                                     {
  903.                                         label: 'Successful posts',
  904.                                         value: message.firstJob.websiteSucceeded|number_format,
  905.                                         link: (message.firstJob.websiteSucceeded > 0)
  906.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  907.                                                 message: message.id,
  908.                                                 query: {
  909.                                                     filter: 'website',
  910.                                                     state: 'completed',
  911.                                                     sort: 'timestamp',
  912.                                                     direction: 'DESC'
  913.                                                 }
  914.                                             })
  915.                                             : null,
  916.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  917.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  918.                                     },
  919.                                     {
  920.                                         label: 'Errors',
  921.                                         value: message.firstJob.websiteFailed|number_format,
  922.                                         link: (message.firstJob.websiteFailed > 0)
  923.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  924.                                                 message: message.id,
  925.                                                 query: {
  926.                                                     filter: 'website',
  927.                                                     state: 'failed',
  928.                                                     sort: 'timestamp',
  929.                                                     direction: 'DESC'
  930.                                                 }
  931.                                             })
  932.                                             : null,
  933.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  934.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  935.                                     },
  936.                                 ],
  937.                             } %}{% endembed %}
  938.                         {% endif %}
  939.                     {% endfor %}
  940.                 {% endblock %}
  941.             {% endembed %}
  942.         </div>
  943.     {% endif %}
  944. {% endblock %}
  945. {% block modals %}
  946.     {{ parent() }}
  947.     {% embed '@ui2022/modal.html.twig' with {
  948.         attr: {
  949.             id: 'modal__email_preview',
  950.         },
  951.     } %}
  952.         {% block content %}
  953.             {% embed '@ui2022/modal__content.html.twig' with {
  954.                 title: 'Email Preview',
  955.             } %}
  956.                 {% block body %}
  957.                     <iframe
  958.                         id=\"preview-email-iframe\"
  959.                         loading=\"lazy\"
  960.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  961.                         frameborder=\"0\"
  962.                         style=\"width: 100%; height: 500px\"
  963.                     >
  964.                     </iframe>
  965.                 {% endblock %}
  966.             {% endembed %}
  967.         {% endblock %}
  968.     {% endembed %}
  969.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  970.         attr: {
  971.             id: 'sidepanel__filtered_logs',
  972.         },
  973.     } %}
  974.     <script type=\"text/javascript\">
  975.         (function (window, document, \$, undefined) {
  976.             \$(function () {
  977.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  978.                     const pageHeight = \$(window).height();
  979.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  980.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  981.                 });
  982.             });
  983.         })(window, document, jQuery);
  984.     </script>
  985. {% endblock %}
  986. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  987.     }
  988. }
  989. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  990. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___205303346 extends \Twig\Template
  991. {
  992.     private $source;
  993.     private $macros = [];
  994.     public function __construct(Environment $env)
  995.     {
  996.         parent::__construct($env);
  997.         $this->source $this->getSourceContext();
  998.         $this->blocks = [
  999.             'actions' => [$this'block_actions'],
  1000.         ];
  1001.     }
  1002.     protected function doGetParent(array $context)
  1003.     {
  1004.         // line 8
  1005.         return "@ui2022/schoolnow/header.html.twig";
  1006.     }
  1007.     protected function doDisplay(array $context, array $blocks = [])
  1008.     {
  1009.         $macros $this->macros;
  1010.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1011.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  1012.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1013.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  1014.         $this->parent $this->loadTemplate("@ui2022/schoolnow/header.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"8);
  1015.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  1016.         
  1017.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1018.         
  1019.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1020.     }
  1021.     // line 15
  1022.     public function block_actions($context, array $blocks = [])
  1023.     {
  1024.         $macros $this->macros;
  1025.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1026.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""actions"));
  1027.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1028.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""actions"));
  1029.         // line 16
  1030.         echo "            ";
  1031.         $this->loadTemplate("@ui2022/button--a.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"16)->display(twig_array_merge(twig_array_merge($context, ["text" => "Clone message""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.create", ["clone" => twig_get_attribute($this->env$this->source,         // line 19
  1032. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'19$this->source); })()), "id", [], "any"falsefalsefalse19)]), "styles" => "gray"]), ['_args' => twig_to_array(["text" => "Clone message""link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.create", ["clone" => twig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'19$this->source); })()), "id", [], "any"falsefalsefalse19)]), "styles" => "gray"])]));
  1033.         // line 23
  1034.         echo "        ";
  1035.         
  1036.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1037.         
  1038.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1039.     }
  1040.     public function getTemplateName()
  1041.     {
  1042.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  1043.     }
  1044.     public function isTraitable()
  1045.     {
  1046.         return false;
  1047.     }
  1048.     public function getDebugInfo()
  1049.     {
  1050.         return array (  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  1051.     }
  1052.     public function getSourceContext()
  1053.     {
  1054.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  1055. {% do dom_title_section('Messages') %}
  1056. {% block wrap %}content__area--uilib reports{% endblock %}
  1057. {% block header %}
  1058.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  1059.         title: message.title,
  1060.         back: {
  1061.             text: 'Back to Messages',
  1062.             link: path('app.notifications.dashboard.messages.main'),
  1063.         },
  1064.     } %}
  1065.         {% block actions %}
  1066.             {% include '@ui2022/button--a.html.twig' with {
  1067.                 text: 'Clone message',
  1068.                 link: path('app.notifications.dashboard.messages.create', {
  1069.                     clone: message.id,
  1070.                 }),
  1071.                 styles: 'gray',
  1072.             } %}
  1073.         {% endblock %}
  1074.     {% endembed %}
  1075. {% endblock %}
  1076. {% block content %}
  1077.     {% if not message.firstJob %}
  1078.         <div class=\"content__data reports__message pt-2\">
  1079.             <div class=\"blockgroup\">
  1080.                 <label class=\"blockgroup__label\">Message</label>
  1081.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  1082.             </div>
  1083.         </div>
  1084.     {% else %}
  1085.         {% set stats = message.firstJob.summarize %}
  1086.         <div class=\"content__data reports__message pt-2\">
  1087.             {% embed '@ui2022/tabs--static.html.twig' with {
  1088.                 items: [
  1089.                     {
  1090.                         text: 'Summary',
  1091.                         link: path('app.notifications.dashboard.messages.report', {
  1092.                             message: message.id,
  1093.                         }),
  1094.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  1095.                     },
  1096.                     {
  1097.                         text: 'Logs',
  1098.                         link: path('app.notifications.dashboard.messages.logs', {
  1099.                             message: message.id,
  1100.                         }),
  1101.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  1102.                     },
  1103.                     {
  1104.                         text: 'Debugging',
  1105.                         link: path('app.notifications.dashboard.messages.debugging', {
  1106.                             message: message.id,
  1107.                         }),
  1108.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  1109.                     },
  1110.                     {
  1111.                         text: 'Details',
  1112.                         link: path('app.notifications.dashboard.messages.details', {
  1113.                             message: message.id,
  1114.                         }),
  1115.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  1116.                     },
  1117.                 ],
  1118.             } %}
  1119.                 {% block tab %}
  1120.                     {% include '@ui2022/subheader.html.twig' with {
  1121.                         title: 'Summary',
  1122.                         classes: 'mt-4 pt-4',
  1123.                     } %}
  1124.                     <div class=\"three-column-section\">
  1125.                         <div class=\"three-column-inner-section\">
  1126.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  1127.                                 title: 'Sent',
  1128.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  1129.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  1130.                                 label: 'Contacts',
  1131.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  1132.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  1133.                                         message: message.id,
  1134.                                         query: {
  1135.                                             filter: 'all',
  1136.                                             state: 'all',
  1137.                                             sort: 'timestamp',
  1138.                                             direction: 'DESC'
  1139.                                         }
  1140.                                     })
  1141.                                     : null,
  1142.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  1143.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  1144.                             } %}
  1145.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  1146.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  1147.                                 title: message.sending ? 'Running' : 'Completed',
  1148.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  1149.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  1150.                                 label: interval[1]|default(''),
  1151.                             } %}
  1152.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  1153.                                 title: 'Errors',
  1154.                                 subtitle: 'Message not delivered',
  1155.                                 value: stats.all.failed|number_format,
  1156.                                 label: 'Contacts',
  1157.                                 link: (stats.all.failed > 0)
  1158.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  1159.                                         message: message.id,
  1160.                                         query: {
  1161.                                             filter: 'all',
  1162.                                             state: 'failed',
  1163.                                             sort: 'timestamp',
  1164.                                             direction: 'DESC'
  1165.                                         }
  1166.                                     })
  1167.                                     : null,
  1168.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  1169.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  1170.                             } %}
  1171.                         </div>
  1172.                     </div>
  1173.                     <div class=\"section__infostats mb-4\">
  1174.                         <div class=\"card card__charts\">
  1175.                             <div class=\"row row-10\">
  1176.                                 <div class=\"col-12 col-md-6\">
  1177.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  1178.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  1179.                                         {% include '@ui2022/chart--donut.html.twig' with {
  1180.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  1181.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  1182.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  1183.                                             }),
  1184.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  1185.                                             label: 'Total contacts',
  1186.                                         } %}
  1187.                                     </div>
  1188.                                 </div>
  1189.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  1190.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  1191.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  1192.                                         <div class=\"targetlist\">
  1193.                                             {% if message.lists|length %}
  1194.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  1195.                                                     title: 'Contact lists',
  1196.                                                     icon: 'icon-contact-reachable',
  1197.                                                     items: message.lists|map((list) => {
  1198.                                                         text: list.name,
  1199.                                                         link: path('app.notifications.dashboard.lists.view', {
  1200.                                                             list: list.id,
  1201.                                                         }),
  1202.                                                     }),
  1203.                                                 } %}
  1204.                                             {% endif %}
  1205.                                             {% if message.facebookSocialAccounts|length %}
  1206.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  1207.                                                     title: 'Facebook pages',
  1208.                                                     icon: 'icon-facebook-fill',
  1209.                                                     items: message.facebookSocialAccounts|map((social) => {
  1210.                                                         text: social.name,
  1211.                                                         target: '_blank',
  1212.                                                         link: 'https://www.facebook.com/%s'|format(
  1213.                                                             social.facebookPageId,
  1214.                                                         ),
  1215.                                                     }),
  1216.                                                 } %}
  1217.                                             {% endif %}
  1218.                                             {% if message.twitterSocialAccounts|length %}
  1219.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  1220.                                                     title: 'Twitter profiles',
  1221.                                                     icon: 'icon-twitter-fill',
  1222.                                                     items: message.twitterSocialAccounts|map((social) => {
  1223.                                                         text: social.name,
  1224.                                                         target: '_blank',
  1225.                                                         link: 'https://www.twitter.com/%s'|format(
  1226.                                                             social.twitterUserName,
  1227.                                                         ),
  1228.                                                     }),
  1229.                                                 } %}
  1230.                                             {% endif %}
  1231.                                             {% if message.instagramSocialAccounts|length %}
  1232.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  1233.                                                     title: 'Instagram accounts',
  1234.                                                     icon: 'fab fa-instagram',
  1235.                                                     items: message.instagramSocialAccounts|map((social) => {
  1236.                                                         text: social.name,
  1237.                                                         target: '_blank',
  1238.                                                         link: 'https://www.instagram.com/%s'|format(
  1239.                                                             social.name,
  1240.                                                         ),
  1241.                                                     }),
  1242.                                                 } %}
  1243.                                             {% endif %}
  1244.                                             {% if message.websiteDepartments|length %}
  1245.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  1246.                                                     title: 'Website departments',
  1247.                                                     icon: 'icon-website',
  1248.                                                     items: message.websiteDepartments|map((department) => {
  1249.                                                         text: department.name,
  1250.                                                         target: '_blank',
  1251.                                                         link: web_url_catchall(department, '/'),
  1252.                                                     }),
  1253.                                                 } %}
  1254.                                             {% endif %}
  1255.                                         </div>
  1256.                                     </div>
  1257.                                 {% endif %}
  1258.                             </div>
  1259.                         </div>
  1260.                     </div>
  1261.                     {% for channel in message.usedChannels(true) %}
  1262.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  1263.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  1264.                                 icon: 'icon-activity-mail',
  1265.                                 title: 'Email',
  1266.                                 stats: [
  1267.                                     {
  1268.                                         label: 'Total sent',
  1269.                                         value: message.firstJob.emailSucceeded|number_format,
  1270.                                         link: (message.firstJob.emailSucceeded > 0)
  1271.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1272.                                                 message: message.id,
  1273.                                                 query: {
  1274.                                                     filter: 'email',
  1275.                                                     sort: 'timestamp',
  1276.                                                     direction: 'DESC'
  1277.                                                 }
  1278.                                             })
  1279.                                             : null,
  1280.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  1281.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  1282.                                     },
  1283.                                     {
  1284.                                         label: 'Delivery verified',
  1285.                                         value: message.firstJob.emailDelivered|number_format,
  1286.                                         link: (message.firstJob.emailDelivered > 0)
  1287.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1288.                                                 message: message.id,
  1289.                                                 query: {
  1290.                                                     filter: 'email',
  1291.                                                     state: 'completed',
  1292.                                                     sort: 'timestamp',
  1293.                                                     direction: 'DESC'
  1294.                                                 }
  1295.                                             })
  1296.                                             : null,
  1297.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  1298.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  1299.                                     },
  1300.                                     {
  1301.                                         label: 'Bounces',
  1302.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  1303.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  1304.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1305.                                                 message: message.id,
  1306.                                                 query: {
  1307.                                                     filter: 'email',
  1308.                                                     state: 'failed',
  1309.                                                     sort: 'timestamp',
  1310.                                                     direction: 'DESC'
  1311.                                                 }
  1312.                                             })
  1313.                                             : null,
  1314.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  1315.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  1316.                                     },
  1317.                                     {
  1318.                                         label: 'Open rate',
  1319.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  1320.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  1321.                                     },
  1322.                                 ],
  1323.                             } %}
  1324.                                 {% block content %}
  1325.                                     <table class=\"table-clear border-0 text-gray-dark\">
  1326.                                         <tbody>
  1327.                                             <tr>
  1328.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  1329.                                                 <td class=\"pb-3 pb-sm-2\">
  1330.                                                     <span>{{ message.emailSubject }}</span>
  1331.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  1332.                                                 </td>
  1333.                                             </tr>
  1334.                                             <tr>
  1335.                                                 <td class=\"text-semibold pr-3\">From:</td>
  1336.                                                 <td>
  1337.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  1338.                                                 </td>
  1339.                                             </tr>
  1340.                                         </tbody>
  1341.                                     </table>
  1342.                                 {% endblock %}
  1343.                             {% endembed %}
  1344.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  1345.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  1346.                                 icon: 'icon-activity-text',
  1347.                                 title: 'SMS',
  1348.                                 stats: [
  1349.                                     {
  1350.                                         label: 'Total sent',
  1351.                                         value: message.firstJob.smsSucceeded|number_format,
  1352.                                         link: (message.firstJob.smsSucceeded > 0)
  1353.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1354.                                                 message: message.id,
  1355.                                                 query: {
  1356.                                                     filter: 'sms',
  1357.                                                     state: 'all',
  1358.                                                     sort: 'timestamp',
  1359.                                                     direction: 'DESC'
  1360.                                                 }
  1361.                                             })
  1362.                                             : null,
  1363.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  1364.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  1365.                                     },
  1366.                                     {
  1367.                                         label: 'Delivery verified',
  1368.                                         value: message.firstJob.smsDelivered|number_format,
  1369.                                         link: (message.firstJob.smsDelivered > 0)
  1370.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1371.                                                 message: message.id,
  1372.                                                 query: {
  1373.                                                     filter: 'sms',
  1374.                                                     state: 'completed',
  1375.                                                     sort: 'timestamp',
  1376.                                                     direction: 'DESC'
  1377.                                                 }
  1378.                                             })
  1379.                                             : null,
  1380.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  1381.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  1382.                                     },
  1383.                                     {
  1384.                                         label: 'Bounces',
  1385.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  1386.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  1387.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1388.                                                 message: message.id,
  1389.                                                 query: {
  1390.                                                     filter: 'sms',
  1391.                                                     state: 'failed',
  1392.                                                     sort: 'timestamp',
  1393.                                                     direction: 'DESC'
  1394.                                                 }
  1395.                                             })
  1396.                                             : null,
  1397.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  1398.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  1399.                                     },
  1400.                                 ],
  1401.                             } %}
  1402.                                 {% block content %}
  1403.                                     <table class=\"table-clear border-0 text-gray-dark\">
  1404.                                         <tbody>
  1405.                                             <tr>
  1406.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  1407.                                                 <td class=\"pb-3 pb-sm-2\">
  1408.                                                     <span>{{ message.smsText }}</span>
  1409.                                                     {% if message.smsUrl %}
  1410.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  1411.                                                     {% endif %}
  1412.                                                 </td>
  1413.                                             </tr>
  1414.                                             <tr>
  1415.                                                 <td class=\"text-semibold pr-3\">From:</td>
  1416.                                                 <td>
  1417.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  1418.                                                 </td>
  1419.                                             </tr>
  1420.                                         </tbody>
  1421.                                     </table>
  1422.                                 {% endblock %}
  1423.                             {% endembed %}
  1424.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  1425.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  1426.                                 icon: 'icon-activity-voice',
  1427.                                 title: 'Phone',
  1428.                                 stats: [
  1429.                                     {
  1430.                                         label: 'Total sent',
  1431.                                         value: message.firstJob.voiceSucceeded|number_format,
  1432.                                         link: (message.firstJob.voiceSucceeded > 0)
  1433.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1434.                                                 message: message.id,
  1435.                                                 query: {
  1436.                                                     filter: 'voice',
  1437.                                                     state: 'all',
  1438.                                                     sort: 'timestamp',
  1439.                                                     direction: 'DESC'
  1440.                                                 }
  1441.                                             })
  1442.                                             : null,
  1443.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  1444.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  1445.                                     },
  1446.                                     {
  1447.                                         label: 'Delivery verified',
  1448.                                         value: message.firstJob.voiceDelivered|number_format,
  1449.                                         link: (message.firstJob.voiceDelivered > 0)
  1450.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1451.                                                 message: message.id,
  1452.                                                 query: {
  1453.                                                     filter: 'voice',
  1454.                                                     state: 'completed',
  1455.                                                     sort: 'timestamp',
  1456.                                                     direction: 'DESC'
  1457.                                                 }
  1458.                                             })
  1459.                                             : null,
  1460.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  1461.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  1462.                                     },
  1463.                                     {
  1464.                                         label: 'Bounces',
  1465.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  1466.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  1467.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1468.                                                 message: message.id,
  1469.                                                 query: {
  1470.                                                     filter: 'voice',
  1471.                                                     state: 'failed',
  1472.                                                     sort: 'timestamp',
  1473.                                                     direction: 'DESC'
  1474.                                                 }
  1475.                                             })
  1476.                                             : null,
  1477.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  1478.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  1479.                                     },
  1480.                                     {
  1481.                                         label: 'Answer rate',
  1482.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  1483.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  1484.                                     },
  1485.                                 ],
  1486.                             } %}
  1487.                                 {% block content %}
  1488.                                     <table class=\"table-clear border-0 text-gray-dark\">
  1489.                                         <tbody>
  1490.                                             <tr>
  1491.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  1492.                                                 <td class=\"pb-3 pb-sm-2\">
  1493.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  1494.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  1495.                                                         Your browser does not support the audio element.
  1496.                                                     </audio>
  1497.                                                 </td>
  1498.                                             </tr>
  1499.                                             <tr>
  1500.                                                 <td class=\"text-semibold pr-3\">From:</td>
  1501.                                                 <td>
  1502.                                                     <span class=\"emailid\">
  1503.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  1504.                                                     </span>
  1505.                                                 </td>
  1506.                                             </tr>
  1507.                                         </tbody>
  1508.                                     </table>
  1509.                                 {% endblock %}
  1510.                             {% endembed %}
  1511.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  1512.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  1513.                                 icon: 'icon-deviceapp',
  1514.                                 title: 'Mobile app',
  1515.                                 stats: [
  1516.                                     {
  1517.                                         label: 'Total sent',
  1518.                                         value: message.firstJob.appSucceeded|number_format,
  1519.                                         link: (message.firstJob.appSucceeded > 0)
  1520.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1521.                                                 message: message.id,
  1522.                                                 query: {
  1523.                                                     filter: 'app',
  1524.                                                     state: 'pending',
  1525.                                                     sort: 'timestamp',
  1526.                                                     direction: 'DESC'
  1527.                                                 }
  1528.                                             })
  1529.                                             : null,
  1530.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  1531.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  1532.                                     },
  1533.                                     {
  1534.                                         label: 'Delivery verified',
  1535.                                         value: message.firstJob.appDelivered|number_format,
  1536.                                     },
  1537.                                     {
  1538.                                         label: 'Bounces',
  1539.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  1540.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  1541.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1542.                                                 message: message.id,
  1543.                                                 query: {
  1544.                                                     filter: 'app',
  1545.                                                     state: 'failed',
  1546.                                                     sort: 'timestamp',
  1547.                                                     direction: 'DESC'
  1548.                                                 }
  1549.                                             })
  1550.                                             : null,
  1551.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  1552.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  1553.                                     },
  1554.                                 ],
  1555.                             } %}
  1556.                                 {% block content %}
  1557.                                     <table class=\"table-clear border-0 text-gray-dark\">
  1558.                                         <tbody>
  1559.                                             <tr>
  1560.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  1561.                                                 <td class=\"pb-3 pb-sm-2\">
  1562.                                                     <span>{{ message.appTitle }}</span>
  1563.                                                 </td>
  1564.                                             </tr>
  1565.                                         </tbody>
  1566.                                     </table>
  1567.                                 {% endblock %}
  1568.                             {% endembed %}
  1569.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  1570.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  1571.                                 icon: 'icon-facebook-fill',
  1572.                                 title: 'Facebook',
  1573.                                 stats: [
  1574.                                     {
  1575.                                         label: 'Total posts',
  1576.                                         value: message.firstJob.facebookTotal|number_format,
  1577.                                         link: (message.firstJob.facebookTotal > 0)
  1578.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1579.                                                 message: message.id,
  1580.                                                 query: {
  1581.                                                     filter: 'facebook',
  1582.                                                     state: 'all',
  1583.                                                     sort: 'timestamp',
  1584.                                                     direction: 'DESC'
  1585.                                                 }
  1586.                                             })
  1587.                                             : null,
  1588.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  1589.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  1590.                                     },
  1591.                                     {
  1592.                                         label: 'Successful posts',
  1593.                                         value: message.firstJob.facebookSucceeded|number_format,
  1594.                                         link: (message.firstJob.facebookSucceeded > 0)
  1595.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1596.                                                 message: message.id,
  1597.                                                 query: {
  1598.                                                     filter: 'facebook',
  1599.                                                     state: 'completed',
  1600.                                                     sort: 'timestamp',
  1601.                                                     direction: 'DESC'
  1602.                                                 }
  1603.                                             })
  1604.                                             : null,
  1605.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  1606.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  1607.                                     },
  1608.                                     {
  1609.                                         label: 'Errors',
  1610.                                         value: message.firstJob.facebookFailed|number_format,
  1611.                                         link: (message.firstJob.facebookFailed > 0)
  1612.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1613.                                                 message: message.id,
  1614.                                                 query: {
  1615.                                                     filter: 'facebook',
  1616.                                                     state: 'failed',
  1617.                                                     sort: 'timestamp',
  1618.                                                     direction: 'DESC'
  1619.                                                 }
  1620.                                             })
  1621.                                             : null,
  1622.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  1623.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  1624.                                     },
  1625.                                 ],
  1626.                             } %}{% endembed %}
  1627.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  1628.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  1629.                                 icon: 'icon-twitter-fill',
  1630.                                 title: 'Twitter',
  1631.                                 stats: [
  1632.                                     {
  1633.                                         label: 'Total posts',
  1634.                                         value: message.firstJob.twitterTotal|number_format,
  1635.                                         link: (message.firstJob.twitterTotal > 0)
  1636.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1637.                                                 message: message.id,
  1638.                                                 query: {
  1639.                                                     filter: 'twitter',
  1640.                                                     state: 'all',
  1641.                                                     sort: 'timestamp',
  1642.                                                     direction: 'DESC'
  1643.                                                 }
  1644.                                             })
  1645.                                             : null,
  1646.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  1647.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  1648.                                     },
  1649.                                     {
  1650.                                         label: 'Successful posts',
  1651.                                         value: message.firstJob.twitterSucceeded|number_format,
  1652.                                         link: (message.firstJob.twitterSucceeded > 0)
  1653.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1654.                                                 message: message.id,
  1655.                                                 query: {
  1656.                                                     filter: 'twitter',
  1657.                                                     state: 'completed',
  1658.                                                     sort: 'timestamp',
  1659.                                                     direction: 'DESC'
  1660.                                                 }
  1661.                                             })
  1662.                                             : null,
  1663.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  1664.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  1665.                                     },
  1666.                                     {
  1667.                                         label: 'Errors',
  1668.                                         value: message.firstJob.twitterFailed|number_format,
  1669.                                         link: (message.firstJob.twitterFailed > 0)
  1670.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1671.                                                 message: message.id,
  1672.                                                 query: {
  1673.                                                     filter: 'twitter',
  1674.                                                     state: 'failed',
  1675.                                                     sort: 'timestamp',
  1676.                                                     direction: 'DESC'
  1677.                                                 }
  1678.                                             })
  1679.                                             : null,
  1680.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  1681.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  1682.                                     },
  1683.                                 ],
  1684.                             } %}{% endembed %}
  1685.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  1686.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  1687.                                 icon: 'fab fa-instagram',
  1688.                                 title: 'Instagram',
  1689.                                 stats: [
  1690.                                     {
  1691.                                         label: 'Total posts',
  1692.                                         value: message.firstJob.instagramTotal|number_format,
  1693.                                         link: (message.firstJob.instagramTotal > 0)
  1694.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1695.                                                 message: message.id,
  1696.                                                 query: {
  1697.                                                     filter: 'instagram',
  1698.                                                     state: 'all',
  1699.                                                     sort: 'timestamp',
  1700.                                                     direction: 'DESC'
  1701.                                                 }
  1702.                                             })
  1703.                                             : null,
  1704.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  1705.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  1706.                                     },
  1707.                                     {
  1708.                                         label: 'Successful posts',
  1709.                                         value: message.firstJob.instagramSucceeded|number_format,
  1710.                                         link: (message.firstJob.instagramSucceeded > 0)
  1711.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1712.                                                 message: message.id,
  1713.                                                 query: {
  1714.                                                     filter: 'instagram',
  1715.                                                     state: 'completed',
  1716.                                                     sort: 'timestamp',
  1717.                                                     direction: 'DESC'
  1718.                                                 }
  1719.                                             })
  1720.                                             : null,
  1721.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  1722.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  1723.                                     },
  1724.                                     {
  1725.                                         label: 'Errors',
  1726.                                         value: message.firstJob.instagramFailed|number_format,
  1727.                                         link: (message.firstJob.instagramFailed > 0)
  1728.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1729.                                                 message: message.id,
  1730.                                                 query: {
  1731.                                                     filter: 'instagram',
  1732.                                                     state: 'failed',
  1733.                                                     sort: 'timestamp',
  1734.                                                     direction: 'DESC'
  1735.                                                 }
  1736.                                             })
  1737.                                             : null,
  1738.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  1739.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  1740.                                     },
  1741.                                 ],
  1742.                             } %}{% endembed %}
  1743.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  1744.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  1745.                                 icon: 'icon-website',
  1746.                                 title: 'Website',
  1747.                                 stats: [
  1748.                                     {
  1749.                                         label: 'Total posts',
  1750.                                         value: message.firstJob.websiteTotal|number_format,
  1751.                                         link: (message.firstJob.websiteTotal > 0)
  1752.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1753.                                                 message: message.id,
  1754.                                                 query: {
  1755.                                                     filter: 'website',
  1756.                                                     state: 'all',
  1757.                                                     sort: 'timestamp',
  1758.                                                     direction: 'DESC'
  1759.                                                 }
  1760.                                             })
  1761.                                             : null,
  1762.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  1763.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  1764.                                     },
  1765.                                     {
  1766.                                         label: 'Successful posts',
  1767.                                         value: message.firstJob.websiteSucceeded|number_format,
  1768.                                         link: (message.firstJob.websiteSucceeded > 0)
  1769.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1770.                                                 message: message.id,
  1771.                                                 query: {
  1772.                                                     filter: 'website',
  1773.                                                     state: 'completed',
  1774.                                                     sort: 'timestamp',
  1775.                                                     direction: 'DESC'
  1776.                                                 }
  1777.                                             })
  1778.                                             : null,
  1779.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  1780.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  1781.                                     },
  1782.                                     {
  1783.                                         label: 'Errors',
  1784.                                         value: message.firstJob.websiteFailed|number_format,
  1785.                                         link: (message.firstJob.websiteFailed > 0)
  1786.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  1787.                                                 message: message.id,
  1788.                                                 query: {
  1789.                                                     filter: 'website',
  1790.                                                     state: 'failed',
  1791.                                                     sort: 'timestamp',
  1792.                                                     direction: 'DESC'
  1793.                                                 }
  1794.                                             })
  1795.                                             : null,
  1796.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  1797.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  1798.                                     },
  1799.                                 ],
  1800.                             } %}{% endembed %}
  1801.                         {% endif %}
  1802.                     {% endfor %}
  1803.                 {% endblock %}
  1804.             {% endembed %}
  1805.         </div>
  1806.     {% endif %}
  1807. {% endblock %}
  1808. {% block modals %}
  1809.     {{ parent() }}
  1810.     {% embed '@ui2022/modal.html.twig' with {
  1811.         attr: {
  1812.             id: 'modal__email_preview',
  1813.         },
  1814.     } %}
  1815.         {% block content %}
  1816.             {% embed '@ui2022/modal__content.html.twig' with {
  1817.                 title: 'Email Preview',
  1818.             } %}
  1819.                 {% block body %}
  1820.                     <iframe
  1821.                         id=\"preview-email-iframe\"
  1822.                         loading=\"lazy\"
  1823.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  1824.                         frameborder=\"0\"
  1825.                         style=\"width: 100%; height: 500px\"
  1826.                     >
  1827.                     </iframe>
  1828.                 {% endblock %}
  1829.             {% endembed %}
  1830.         {% endblock %}
  1831.     {% endembed %}
  1832.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  1833.         attr: {
  1834.             id: 'sidepanel__filtered_logs',
  1835.         },
  1836.     } %}
  1837.     <script type=\"text/javascript\">
  1838.         (function (window, document, \$, undefined) {
  1839.             \$(function () {
  1840.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  1841.                     const pageHeight = \$(window).height();
  1842.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  1843.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  1844.                 });
  1845.             });
  1846.         })(window, document, jQuery);
  1847.     </script>
  1848. {% endblock %}
  1849. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  1850.     }
  1851. }
  1852. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  1853. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___81890466 extends \Twig\Template
  1854. {
  1855.     private $source;
  1856.     private $macros = [];
  1857.     public function __construct(Environment $env)
  1858.     {
  1859.         parent::__construct($env);
  1860.         $this->source $this->getSourceContext();
  1861.         $this->blocks = [
  1862.             'tab' => [$this'block_tab'],
  1863.         ];
  1864.     }
  1865.     protected function doGetParent(array $context)
  1866.     {
  1867.         // line 40
  1868.         return "@ui2022/tabs--static.html.twig";
  1869.     }
  1870.     protected function doDisplay(array $context, array $blocks = [])
  1871.     {
  1872.         $macros $this->macros;
  1873.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1874.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  1875.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1876.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  1877.         $this->parent $this->loadTemplate("@ui2022/tabs--static.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"40);
  1878.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  1879.         
  1880.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1881.         
  1882.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1883.     }
  1884.     // line 72
  1885.     public function block_tab($context, array $blocks = [])
  1886.     {
  1887.         $macros $this->macros;
  1888.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1889.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""tab"));
  1890.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1891.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""tab"));
  1892.         // line 73
  1893.         echo "                    ";
  1894.         $this->loadTemplate("@ui2022/subheader.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"73)->display(twig_array_merge(twig_array_merge($context, ["title" => "Summary""classes" => "mt-4 pt-4"]), ['_args' => twig_to_array(["title" => "Summary""classes" => "mt-4 pt-4"])]));
  1895.         // line 77
  1896.         echo "                    <div class=\"three-column-section\">
  1897.                         <div class=\"three-column-inner-section\">
  1898.                             ";
  1899.         // line 79
  1900.         $this->loadTemplate("@ui2022/schoolnow/stat.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"79)->display(twig_array_merge(twig_array_merge($context, ["title" => "Sent""subtitle" => $this->extensions['Cms\CoreBundle\Service\Twig\DateTimeExtension']->ui_datetime(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 81
  1901. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'81$this->source); })()), "firstJob", [], "any"falsefalsefalse81), "firstActivityAt", [], "any"falsefalsefalse81)), "value" => (((twig_get_attribute($this->env$this->source,         // line 82
  1902. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'82$this->source); })()), "sending", [], "any"falsefalsefalse82) && (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'82$this->source); })()), "all", [], "any"falsefalsefalse82), "total", [], "any"falsefalsefalse82) > 0))) ? ((twig_round((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'82$this->source); })()), "all", [], "any"falsefalsefalse82), "succeeded", [], "any"falsefalsefalse82) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'82$this->source); })()), "all", [], "any"falsefalsefalse82), "failed", [], "any"falsefalsefalse82)) / twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'82$this->source); })()), "all", [], "any"falsefalsefalse82), "total", [], "any"falsefalsefalse82)) * 100), 0"ceil") . "%")) : (twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'82$this->source); })()), "all", [], "any"falsefalsefalse82), "total", [], "any"falsefalsefalse82)))), "label" => "Contacts""link" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 84
  1903. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'84$this->source); })()), "all", [], "any"falsefalsefalse84), "succeeded", [], "any"falsefalsefalse84) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'84$this->source); })()), "all", [], "any"falsefalsefalse84), "failed", [], "any"falsefalsefalse84)) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,         // line 86
  1904. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'86$this->source); })()), "id", [], "any"falsefalsefalse86), "query" => ["filter" => "all""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 95
  1905. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'95$this->source); })()), "all", [], "any"falsefalsefalse95), "succeeded", [], "any"falsefalsefalse95) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'95$this->source); })()), "all", [], "any"falsefalsefalse95), "failed", [], "any"falsefalsefalse95)) > 0)) ? ("sidepanel") : (null)), "dataTarget" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 96
  1906. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'96$this->source); })()), "all", [], "any"falsefalsefalse96), "succeeded", [], "any"falsefalsefalse96) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'96$this->source); })()), "all", [], "any"falsefalsefalse96), "failed", [], "any"falsefalsefalse96)) > 0)) ? ("#sidepanel__filtered_logs") : (null))]), ['_args' => twig_to_array(["title" => "Sent""subtitle" => $this->extensions['Cms\CoreBundle\Service\Twig\DateTimeExtension']->ui_datetime(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 81
  1907. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'81$this->source); })()), "firstJob", [], "any"falsefalsefalse81), "firstActivityAt", [], "any"falsefalsefalse81)), "value" => (((twig_get_attribute($this->env$this->source,         // line 82
  1908. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'82$this->source); })()), "sending", [], "any"falsefalsefalse82) && (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'82$this->source); })()), "all", [], "any"falsefalsefalse82), "total", [], "any"falsefalsefalse82) > 0))) ? ((twig_round((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'82$this->source); })()), "all", [], "any"falsefalsefalse82), "succeeded", [], "any"falsefalsefalse82) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'82$this->source); })()), "all", [], "any"falsefalsefalse82), "failed", [], "any"falsefalsefalse82)) / twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'82$this->source); })()), "all", [], "any"falsefalsefalse82), "total", [], "any"falsefalsefalse82)) * 100), 0"ceil") . "%")) : (twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'82$this->source); })()), "all", [], "any"falsefalsefalse82), "total", [], "any"falsefalsefalse82)))), "label" => "Contacts""link" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 84
  1909. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'84$this->source); })()), "all", [], "any"falsefalsefalse84), "succeeded", [], "any"falsefalsefalse84) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'84$this->source); })()), "all", [], "any"falsefalsefalse84), "failed", [], "any"falsefalsefalse84)) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,         // line 86
  1910. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'86$this->source); })()), "id", [], "any"falsefalsefalse86), "query" => ["filter" => "all""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 95
  1911. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'95$this->source); })()), "all", [], "any"falsefalsefalse95), "succeeded", [], "any"falsefalsefalse95) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'95$this->source); })()), "all", [], "any"falsefalsefalse95), "failed", [], "any"falsefalsefalse95)) > 0)) ? ("sidepanel") : (null)), "dataTarget" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 96
  1912. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'96$this->source); })()), "all", [], "any"falsefalsefalse96), "succeeded", [], "any"falsefalsefalse96) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'96$this->source); })()), "all", [], "any"falsefalsefalse96), "failed", [], "any"falsefalsefalse96)) > 0)) ? ("#sidepanel__filtered_logs") : (null))])]));
  1913.         // line 98
  1914.         echo "                            ";
  1915.         $context["interval"] = twig_split_filter($this->env$this->extensions['Cms\CoreBundle\Service\Twig\DateTimeExtension']->ui_relativeDate(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'98$this->source); })()), "firstJob", [], "any"falsefalsefalse98), "activityInterval", [], "any"falsefalsefalse98), true), " ");
  1916.         // line 99
  1917.         echo "                            ";
  1918.         $this->loadTemplate("@ui2022/schoolnow/stat.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"99)->display(twig_array_merge(twig_array_merge($context, ["title" => ((twig_get_attribute($this->env$this->source,         // line 100
  1919. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'100$this->source); })()), "sending", [], "any"falsefalsefalse100)) ? ("Running") : ("Completed")), "subtitle" => $this->extensions['Cms\CoreBundle\Service\Twig\DateTimeExtension']->ui_datetime(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 101
  1920. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'101$this->source); })()), "firstJob", [], "any"falsefalsefalse101), "lastActivityAt", [], "any"falsefalsefalse101)), "value" => ((twig_get_attribute($this->env$this->source,         // line 102
  1921. ($context["interval"] ?? null), 1, [], "array"truetruefalse102)) ? (twig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["interval"]) || array_key_exists("interval"$context) ? $context["interval"] : (function () { throw new RuntimeError('Variable "interval" does not exist.'102$this->source); })()), 0, [], "array"falsefalsefalse102))) : (twig_get_attribute($this->env$this->source, (isset($context["interval"]) || array_key_exists("interval"$context) ? $context["interval"] : (function () { throw new RuntimeError('Variable "interval" does not exist.'102$this->source); })()), 0, [], "array"falsefalsefalse102))), "label" => ((twig_get_attribute($this->env$this->source,         // line 103
  1922. ($context["interval"] ?? null), 1, [], "array"truetruefalse103)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["interval"] ?? null), 1, [], "array"falsefalsefalse103), "")) : (""))]), ['_args' => twig_to_array(["title" => ((twig_get_attribute($this->env$this->source,         // line 100
  1923. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'100$this->source); })()), "sending", [], "any"falsefalsefalse100)) ? ("Running") : ("Completed")), "subtitle" => $this->extensions['Cms\CoreBundle\Service\Twig\DateTimeExtension']->ui_datetime(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 101
  1924. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'101$this->source); })()), "firstJob", [], "any"falsefalsefalse101), "lastActivityAt", [], "any"falsefalsefalse101)), "value" => ((twig_get_attribute($this->env$this->source,         // line 102
  1925. ($context["interval"] ?? null), 1, [], "array"truetruefalse102)) ? (twig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["interval"]) || array_key_exists("interval"$context) ? $context["interval"] : (function () { throw new RuntimeError('Variable "interval" does not exist.'102$this->source); })()), 0, [], "array"falsefalsefalse102))) : (twig_get_attribute($this->env$this->source, (isset($context["interval"]) || array_key_exists("interval"$context) ? $context["interval"] : (function () { throw new RuntimeError('Variable "interval" does not exist.'102$this->source); })()), 0, [], "array"falsefalsefalse102))), "label" => ((twig_get_attribute($this->env$this->source,         // line 103
  1926. ($context["interval"] ?? null), 1, [], "array"truetruefalse103)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["interval"] ?? null), 1, [], "array"falsefalsefalse103), "")) : (""))])]));
  1927.         // line 105
  1928.         echo "                            ";
  1929.         $this->loadTemplate("@ui2022/schoolnow/stat.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"105)->display(twig_array_merge(twig_array_merge($context, ["title" => "Errors""subtitle" => "Message not delivered""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 108
  1930. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'108$this->source); })()), "all", [], "any"falsefalsefalse108), "failed", [], "any"falsefalsefalse108)), "label" => "Contacts""link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 110
  1931. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'110$this->source); })()), "all", [], "any"falsefalsefalse110), "failed", [], "any"falsefalsefalse110) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,         // line 112
  1932. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'112$this->source); })()), "id", [], "any"falsefalsefalse112), "query" => ["filter" => "all""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 121
  1933. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'121$this->source); })()), "all", [], "any"falsefalsefalse121), "failed", [], "any"falsefalsefalse121) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 122
  1934. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'122$this->source); })()), "all", [], "any"falsefalsefalse122), "failed", [], "any"falsefalsefalse122) > 0)) ? ("#sidepanel__filtered_logs") : (null))]), ['_args' => twig_to_array(["title" => "Errors""subtitle" => "Message not delivered""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 108
  1935. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'108$this->source); })()), "all", [], "any"falsefalsefalse108), "failed", [], "any"falsefalsefalse108)), "label" => "Contacts""link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 110
  1936. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'110$this->source); })()), "all", [], "any"falsefalsefalse110), "failed", [], "any"falsefalsefalse110) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,         // line 112
  1937. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'112$this->source); })()), "id", [], "any"falsefalsefalse112), "query" => ["filter" => "all""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 121
  1938. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'121$this->source); })()), "all", [], "any"falsefalsefalse121), "failed", [], "any"falsefalsefalse121) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,         // line 122
  1939. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'122$this->source); })()), "all", [], "any"falsefalsefalse122), "failed", [], "any"falsefalsefalse122) > 0)) ? ("#sidepanel__filtered_logs") : (null))])]));
  1940.         // line 124
  1941.         echo "                        </div>
  1942.                     </div>
  1943.                     <div class=\"section__infostats mb-4\">
  1944.                         <div class=\"card card__charts\">
  1945.                             <div class=\"row row-10\">
  1946.                                 <div class=\"col-12 col-md-6\">
  1947.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  1948.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  1949.                                         ";
  1950.         // line 132
  1951.         $this->loadTemplate("@ui2022/chart--donut.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"132)->display(twig_array_merge(twig_array_merge($context, ["legend" => twig_array_map($this->envtwig_array_filter($this->envtwig_get_attribute($this->env$this->source,         // line 133
  1952. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'133$this->source); })()), "message_channels", [], "any"falsefalsefalse133), function ($__v__$__k__) use ($context$macros) { $context["v"] = $__v__$context["k"] = $__k__; return (twig_get_attribute($this->env$this->source, (isset($context["v"]) || array_key_exists("v"$context) ? $context["v"] : (function () { throw new RuntimeError('Variable "v" does not exist.'133$this->source); })()), "total", [], "any"falsefalsefalse133) > 0); }), function ($__v__$__k__) use ($context$macros) { $context["v"] = $__v__$context["k"] = $__k__; return ["label" => $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_sprintf("app.notifications.stats.reporting.labels.%s",         // line 134
  1953. (isset($context["k"]) || array_key_exists("k"$context) ? $context["k"] : (function () { throw new RuntimeError('Variable "k" does not exist.'134$this->source); })()))), "color" => $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_sprintf("app.notifications.stats.reporting.colors.%s",         // line 135
  1954. (isset($context["k"]) || array_key_exists("k"$context) ? $context["k"] : (function () { throw new RuntimeError('Variable "k" does not exist.'135$this->source); })())), [], "styles""app")]; }), "dataset" => twig_array_map($this->envtwig_array_filter($this->envtwig_get_attribute($this->env$this->source,         // line 137
  1955. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'137$this->source); })()), "message_channels", [], "any"falsefalsefalse137), function ($__v__$__k__) use ($context$macros) { $context["v"] = $__v__$context["k"] = $__k__; return (twig_get_attribute($this->env$this->source, (isset($context["v"]) || array_key_exists("v"$context) ? $context["v"] : (function () { throw new RuntimeError('Variable "v" does not exist.'137$this->source); })()), "total", [], "any"falsefalsefalse137) > 0); }), function ($__v__) use ($context$macros) { $context["v"] = $__v__; return twig_get_attribute($this->env$this->source, (isset($context["v"]) || array_key_exists("v"$context) ? $context["v"] : (function () { throw new RuntimeError('Variable "v" does not exist.'137$this->source); })()), "total", [], "any"falsefalsefalse137); }), "label" => "Total contacts"]), ['_args' => twig_to_array(["legend" => twig_array_map($this->envtwig_array_filter($this->envtwig_get_attribute($this->env$this->source,         // line 133
  1956. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'133$this->source); })()), "message_channels", [], "any"falsefalsefalse133), function ($__v__$__k__) use ($context$macros) { $context["v"] = $__v__$context["k"] = $__k__; return (twig_get_attribute($this->env$this->source, (isset($context["v"]) || array_key_exists("v"$context) ? $context["v"] : (function () { throw new RuntimeError('Variable "v" does not exist.'133$this->source); })()), "total", [], "any"falsefalsefalse133) > 0); }), function ($__v__$__k__) use ($context$macros) { $context["v"] = $__v__$context["k"] = $__k__; return ["label" => $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_sprintf("app.notifications.stats.reporting.labels.%s",         // line 134
  1957. (isset($context["k"]) || array_key_exists("k"$context) ? $context["k"] : (function () { throw new RuntimeError('Variable "k" does not exist.'134$this->source); })()))), "color" => $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_sprintf("app.notifications.stats.reporting.colors.%s",         // line 135
  1958. (isset($context["k"]) || array_key_exists("k"$context) ? $context["k"] : (function () { throw new RuntimeError('Variable "k" does not exist.'135$this->source); })())), [], "styles""app")]; }), "dataset" => twig_array_map($this->envtwig_array_filter($this->envtwig_get_attribute($this->env$this->source,         // line 137
  1959. (isset($context["stats"]) || array_key_exists("stats"$context) ? $context["stats"] : (function () { throw new RuntimeError('Variable "stats" does not exist.'137$this->source); })()), "message_channels", [], "any"falsefalsefalse137), function ($__v__$__k__) use ($context$macros) { $context["v"] = $__v__$context["k"] = $__k__; return (twig_get_attribute($this->env$this->source, (isset($context["v"]) || array_key_exists("v"$context) ? $context["v"] : (function () { throw new RuntimeError('Variable "v" does not exist.'137$this->source); })()), "total", [], "any"falsefalsefalse137) > 0); }), function ($__v__) use ($context$macros) { $context["v"] = $__v__; return twig_get_attribute($this->env$this->source, (isset($context["v"]) || array_key_exists("v"$context) ? $context["v"] : (function () { throw new RuntimeError('Variable "v" does not exist.'137$this->source); })()), "total", [], "any"falsefalsefalse137); }), "label" => "Total contacts"])]));
  1960.         // line 140
  1961.         echo "                                    </div>
  1962.                                 </div>
  1963.                                 ";
  1964.         // line 142
  1965.         if ((twig_constant("DISCR", (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'142$this->source); })())) === twig_constant("Products\\NotificationsBundle\\Entity\\Notifications\\Message::DISCR"))) {
  1966.             // line 143
  1967.             echo "                                    <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  1968.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  1969.                                         <div class=\"targetlist\">
  1970.                                             ";
  1971.             // line 146
  1972.             if (twig_length_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'146$this->source); })()), "lists", [], "any"falsefalsefalse146))) {
  1973.                 // line 147
  1974.                 echo "                                                ";
  1975.                 $this->loadTemplate("@ui2022/targetlist__item.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"147)->display(twig_array_merge(twig_array_merge($context, ["title" => "Contact lists""icon" => "icon-contact-reachable""items" => twig_array_map($this->envtwig_get_attribute($this->env$this->source,                 // line 150
  1976. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'150$this->source); })()), "lists", [], "any"falsefalsefalse150), function ($__list__) use ($context$macros) { $context["list"] = $__list__; return ["text" => twig_get_attribute($this->env$this->source,                 // line 151
  1977. (isset($context["list"]) || array_key_exists("list"$context) ? $context["list"] : (function () { throw new RuntimeError('Variable "list" does not exist.'151$this->source); })()), "name", [], "any"falsefalsefalse151), "link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.lists.view", ["list" => twig_get_attribute($this->env$this->source,                 // line 153
  1978. (isset($context["list"]) || array_key_exists("list"$context) ? $context["list"] : (function () { throw new RuntimeError('Variable "list" does not exist.'153$this->source); })()), "id", [], "any"falsefalsefalse153)])]; })]), ['_args' => twig_to_array(["title" => "Contact lists""icon" => "icon-contact-reachable""items" => twig_array_map($this->envtwig_get_attribute($this->env$this->source,                 // line 150
  1979. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'150$this->source); })()), "lists", [], "any"falsefalsefalse150), function ($__list__) use ($context$macros) { $context["list"] = $__list__; return ["text" => twig_get_attribute($this->env$this->source,                 // line 151
  1980. (isset($context["list"]) || array_key_exists("list"$context) ? $context["list"] : (function () { throw new RuntimeError('Variable "list" does not exist.'151$this->source); })()), "name", [], "any"falsefalsefalse151), "link" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.lists.view", ["list" => twig_get_attribute($this->env$this->source,                 // line 153
  1981. (isset($context["list"]) || array_key_exists("list"$context) ? $context["list"] : (function () { throw new RuntimeError('Variable "list" does not exist.'153$this->source); })()), "id", [], "any"falsefalsefalse153)])]; })])]));
  1982.                 // line 157
  1983.                 echo "                                            ";
  1984.             }
  1985.             // line 158
  1986.             echo "                                            ";
  1987.             if (twig_length_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'158$this->source); })()), "facebookSocialAccounts", [], "any"falsefalsefalse158))) {
  1988.                 // line 159
  1989.                 echo "                                                ";
  1990.                 $this->loadTemplate("@ui2022/targetlist__item.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"159)->display(twig_array_merge(twig_array_merge($context, ["title" => "Facebook pages""icon" => "icon-facebook-fill""items" => twig_array_map($this->envtwig_get_attribute($this->env$this->source,                 // line 162
  1991. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'162$this->source); })()), "facebookSocialAccounts", [], "any"falsefalsefalse162), function ($__social__) use ($context$macros) { $context["social"] = $__social__; return ["text" => twig_get_attribute($this->env$this->source,                 // line 163
  1992. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'163$this->source); })()), "name", [], "any"falsefalsefalse163), "target" => "_blank""link" => twig_sprintf("https://www.facebook.com/%s"twig_get_attribute($this->env$this->source,                 // line 166
  1993. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'166$this->source); })()), "facebookPageId", [], "any"falsefalsefalse166))]; })]), ['_args' => twig_to_array(["title" => "Facebook pages""icon" => "icon-facebook-fill""items" => twig_array_map($this->envtwig_get_attribute($this->env$this->source,                 // line 162
  1994. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'162$this->source); })()), "facebookSocialAccounts", [], "any"falsefalsefalse162), function ($__social__) use ($context$macros) { $context["social"] = $__social__; return ["text" => twig_get_attribute($this->env$this->source,                 // line 163
  1995. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'163$this->source); })()), "name", [], "any"falsefalsefalse163), "target" => "_blank""link" => twig_sprintf("https://www.facebook.com/%s"twig_get_attribute($this->env$this->source,                 // line 166
  1996. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'166$this->source); })()), "facebookPageId", [], "any"falsefalsefalse166))]; })])]));
  1997.                 // line 170
  1998.                 echo "                                            ";
  1999.             }
  2000.             // line 171
  2001.             echo "                                            ";
  2002.             if (twig_length_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'171$this->source); })()), "twitterSocialAccounts", [], "any"falsefalsefalse171))) {
  2003.                 // line 172
  2004.                 echo "                                                ";
  2005.                 $this->loadTemplate("@ui2022/targetlist__item.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"172)->display(twig_array_merge(twig_array_merge($context, ["title" => "Twitter profiles""icon" => "icon-twitter-fill""items" => twig_array_map($this->envtwig_get_attribute($this->env$this->source,                 // line 175
  2006. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'175$this->source); })()), "twitterSocialAccounts", [], "any"falsefalsefalse175), function ($__social__) use ($context$macros) { $context["social"] = $__social__; return ["text" => twig_get_attribute($this->env$this->source,                 // line 176
  2007. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'176$this->source); })()), "name", [], "any"falsefalsefalse176), "target" => "_blank""link" => twig_sprintf("https://www.twitter.com/%s"twig_get_attribute($this->env$this->source,                 // line 179
  2008. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'179$this->source); })()), "twitterUserName", [], "any"falsefalsefalse179))]; })]), ['_args' => twig_to_array(["title" => "Twitter profiles""icon" => "icon-twitter-fill""items" => twig_array_map($this->envtwig_get_attribute($this->env$this->source,                 // line 175
  2009. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'175$this->source); })()), "twitterSocialAccounts", [], "any"falsefalsefalse175), function ($__social__) use ($context$macros) { $context["social"] = $__social__; return ["text" => twig_get_attribute($this->env$this->source,                 // line 176
  2010. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'176$this->source); })()), "name", [], "any"falsefalsefalse176), "target" => "_blank""link" => twig_sprintf("https://www.twitter.com/%s"twig_get_attribute($this->env$this->source,                 // line 179
  2011. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'179$this->source); })()), "twitterUserName", [], "any"falsefalsefalse179))]; })])]));
  2012.                 // line 183
  2013.                 echo "                                            ";
  2014.             }
  2015.             // line 184
  2016.             echo "                                            ";
  2017.             if (twig_length_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'184$this->source); })()), "instagramSocialAccounts", [], "any"falsefalsefalse184))) {
  2018.                 // line 185
  2019.                 echo "                                                ";
  2020.                 $this->loadTemplate("@ui2022/targetlist__item.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"185)->display(twig_array_merge(twig_array_merge($context, ["title" => "Instagram accounts""icon" => "fab fa-instagram""items" => twig_array_map($this->envtwig_get_attribute($this->env$this->source,                 // line 188
  2021. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'188$this->source); })()), "instagramSocialAccounts", [], "any"falsefalsefalse188), function ($__social__) use ($context$macros) { $context["social"] = $__social__; return ["text" => twig_get_attribute($this->env$this->source,                 // line 189
  2022. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'189$this->source); })()), "name", [], "any"falsefalsefalse189), "target" => "_blank""link" => twig_sprintf("https://www.instagram.com/%s"twig_get_attribute($this->env$this->source,                 // line 192
  2023. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'192$this->source); })()), "name", [], "any"falsefalsefalse192))]; })]), ['_args' => twig_to_array(["title" => "Instagram accounts""icon" => "fab fa-instagram""items" => twig_array_map($this->envtwig_get_attribute($this->env$this->source,                 // line 188
  2024. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'188$this->source); })()), "instagramSocialAccounts", [], "any"falsefalsefalse188), function ($__social__) use ($context$macros) { $context["social"] = $__social__; return ["text" => twig_get_attribute($this->env$this->source,                 // line 189
  2025. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'189$this->source); })()), "name", [], "any"falsefalsefalse189), "target" => "_blank""link" => twig_sprintf("https://www.instagram.com/%s"twig_get_attribute($this->env$this->source,                 // line 192
  2026. (isset($context["social"]) || array_key_exists("social"$context) ? $context["social"] : (function () { throw new RuntimeError('Variable "social" does not exist.'192$this->source); })()), "name", [], "any"falsefalsefalse192))]; })])]));
  2027.                 // line 196
  2028.                 echo "                                            ";
  2029.             }
  2030.             // line 197
  2031.             echo "                                            ";
  2032.             if (twig_length_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'197$this->source); })()), "websiteDepartments", [], "any"falsefalsefalse197))) {
  2033.                 // line 198
  2034.                 echo "                                                ";
  2035.                 $this->loadTemplate("@ui2022/targetlist__item.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"198)->display(twig_array_merge(twig_array_merge($context, ["title" => "Website departments""icon" => "icon-website""items" => twig_array_map($this->envtwig_get_attribute($this->env$this->source,                 // line 201
  2036. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'201$this->source); })()), "websiteDepartments", [], "any"falsefalsefalse201), function ($__department__) use ($context$macros) { $context["department"] = $__department__; return ["text" => twig_get_attribute($this->env$this->source,                 // line 202
  2037. (isset($context["department"]) || array_key_exists("department"$context) ? $context["department"] : (function () { throw new RuntimeError('Variable "department" does not exist.'202$this->source); })()), "name", [], "any"falsefalsefalse202), "target" => "_blank""link" => $this->env->getFunction('web_url_catchall')->getCallable()(                // line 204
  2038. (isset($context["department"]) || array_key_exists("department"$context) ? $context["department"] : (function () { throw new RuntimeError('Variable "department" does not exist.'204$this->source); })()), "/")]; })]), ['_args' => twig_to_array(["title" => "Website departments""icon" => "icon-website""items" => twig_array_map($this->envtwig_get_attribute($this->env$this->source,                 // line 201
  2039. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'201$this->source); })()), "websiteDepartments", [], "any"falsefalsefalse201), function ($__department__) use ($context$macros) { $context["department"] = $__department__; return ["text" => twig_get_attribute($this->env$this->source,                 // line 202
  2040. (isset($context["department"]) || array_key_exists("department"$context) ? $context["department"] : (function () { throw new RuntimeError('Variable "department" does not exist.'202$this->source); })()), "name", [], "any"falsefalsefalse202), "target" => "_blank""link" => $this->env->getFunction('web_url_catchall')->getCallable()(                // line 204
  2041. (isset($context["department"]) || array_key_exists("department"$context) ? $context["department"] : (function () { throw new RuntimeError('Variable "department" does not exist.'204$this->source); })()), "/")]; })])]));
  2042.                 // line 207
  2043.                 echo "                                            ";
  2044.             }
  2045.             // line 208
  2046.             echo "                                        </div>
  2047.                                     </div>
  2048.                                 ";
  2049.         }
  2050.         // line 211
  2051.         echo "                            </div>
  2052.                         </div>
  2053.                     </div>
  2054.                     ";
  2055.         // line 215
  2056.         $context['_parent'] = $context;
  2057.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'215$this->source); })()), "usedChannels", [=> true], "method"falsefalsefalse215));
  2058.         $context['loop'] = [
  2059.           'parent' => $context['_parent'],
  2060.           'index0' => 0,
  2061.           'index'  => 1,
  2062.           'first'  => true,
  2063.         ];
  2064.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  2065.             $length count($context['_seq']);
  2066.             $context['loop']['revindex0'] = $length 1;
  2067.             $context['loop']['revindex'] = $length;
  2068.             $context['loop']['length'] = $length;
  2069.             $context['loop']['last'] = === $length;
  2070.         }
  2071.         foreach ($context['_seq'] as $context["_key"] => $context["channel"]) {
  2072.             // line 216
  2073.             echo "                        ";
  2074.             if ((($context["channel"] == twig_constant("CHANNELS__EMAIL", (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'216$this->source); })()))) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'216$this->source); })()), "firstJob", [], "any"falsefalsefalse216), "emailTotal", [], "any"falsefalsefalse216))) {
  2075.                 // line 217
  2076.                 echo "                            ";
  2077.                 $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"217"1040482493")->display(twig_array_merge(twig_array_merge($context, ["icon" => "icon-activity-mail""title" => "Email""stats" => [=> ["label" => "Total sent""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 223
  2078. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'223$this->source); })()), "firstJob", [], "any"falsefalsefalse223), "emailSucceeded", [], "any"falsefalsefalse223)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 224
  2079. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'224$this->source); })()), "firstJob", [], "any"falsefalsefalse224), "emailSucceeded", [], "any"falsefalsefalse224) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 226
  2080. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'226$this->source); })()), "id", [], "any"falsefalsefalse226), "query" => ["filter" => "email""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 234
  2081. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'234$this->source); })()), "firstJob", [], "any"falsefalsefalse234), "emailSucceeded", [], "any"falsefalsefalse234) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 235
  2082. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'235$this->source); })()), "firstJob", [], "any"falsefalsefalse235), "emailSucceeded", [], "any"falsefalsefalse235) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Delivery verified""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 239
  2083. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'239$this->source); })()), "firstJob", [], "any"falsefalsefalse239), "emailDelivered", [], "any"falsefalsefalse239)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 240
  2084. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'240$this->source); })()), "firstJob", [], "any"falsefalsefalse240), "emailDelivered", [], "any"falsefalsefalse240) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 242
  2085. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'242$this->source); })()), "id", [], "any"falsefalsefalse242), "query" => ["filter" => "email""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 251
  2086. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'251$this->source); })()), "firstJob", [], "any"falsefalsefalse251), "emailDelivered", [], "any"falsefalsefalse251) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 252
  2087. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'252$this->source); })()), "firstJob", [], "any"falsefalsefalse252), "emailDelivered", [], "any"falsefalsefalse252) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Bounces""value" => twig_number_format_filter($this->env, (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 256
  2088. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'256$this->source); })()), "firstJob", [], "any"falsefalsefalse256), "emailUndelivered", [], "any"falsefalsefalse256) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'256$this->source); })()), "firstJob", [], "any"falsefalsefalse256), "emailFailed", [], "any"falsefalsefalse256))), "link" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 257
  2089. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'257$this->source); })()), "firstJob", [], "any"falsefalsefalse257), "emailUndelivered", [], "any"falsefalsefalse257) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'257$this->source); })()), "firstJob", [], "any"falsefalsefalse257), "emailFailed", [], "any"falsefalsefalse257)) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 259
  2090. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'259$this->source); })()), "id", [], "any"falsefalsefalse259), "query" => ["filter" => "email""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 268
  2091. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'268$this->source); })()), "firstJob", [], "any"falsefalsefalse268), "emailUndelivered", [], "any"falsefalsefalse268) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'268$this->source); })()), "firstJob", [], "any"falsefalsefalse268), "emailFailed", [], "any"falsefalsefalse268)) > 0)) ? ("sidepanel") : (null)), "dataTarget" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 269
  2092. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'269$this->source); })()), "firstJob", [], "any"falsefalsefalse269), "emailUndelivered", [], "any"falsefalsefalse269) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'269$this->source); })()), "firstJob", [], "any"falsefalsefalse269), "emailFailed", [], "any"falsefalsefalse269)) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Open rate""value" => $this->extensions['App\Twig\Extension\MiscellaneousExtension']->percentage(((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 273
  2093. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'273$this->source); })()), "firstJob", [], "any"falsefalsefalse273), "emailSucceeded", [], "any"falsefalsefalse273)) ? ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'273$this->source); })()), "firstJob", [], "any"falsefalsefalse273), "emailOpened", [], "any"falsefalsefalse273) / twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'273$this->source); })()), "firstJob", [], "any"falsefalsefalse273), "emailSucceeded", [], "any"falsefalsefalse273))) : (0))), "progress" => ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 274
  2094. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'274$this->source); })()), "firstJob", [], "any"falsefalsefalse274), "emailSucceeded", [], "any"falsefalsefalse274)) ? ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'274$this->source); })()), "firstJob", [], "any"falsefalsefalse274), "emailOpened", [], "any"falsefalsefalse274) / twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'274$this->source); })()), "firstJob", [], "any"falsefalsefalse274), "emailSucceeded", [], "any"falsefalsefalse274))) : (0))]]]), ['_args' => twig_to_array(["icon" => "icon-activity-mail""title" => "Email""stats" => [=> ["label" => "Total sent""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 223
  2095. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'223$this->source); })()), "firstJob", [], "any"falsefalsefalse223), "emailSucceeded", [], "any"falsefalsefalse223)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 224
  2096. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'224$this->source); })()), "firstJob", [], "any"falsefalsefalse224), "emailSucceeded", [], "any"falsefalsefalse224) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 226
  2097. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'226$this->source); })()), "id", [], "any"falsefalsefalse226), "query" => ["filter" => "email""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 234
  2098. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'234$this->source); })()), "firstJob", [], "any"falsefalsefalse234), "emailSucceeded", [], "any"falsefalsefalse234) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 235
  2099. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'235$this->source); })()), "firstJob", [], "any"falsefalsefalse235), "emailSucceeded", [], "any"falsefalsefalse235) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Delivery verified""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 239
  2100. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'239$this->source); })()), "firstJob", [], "any"falsefalsefalse239), "emailDelivered", [], "any"falsefalsefalse239)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 240
  2101. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'240$this->source); })()), "firstJob", [], "any"falsefalsefalse240), "emailDelivered", [], "any"falsefalsefalse240) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 242
  2102. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'242$this->source); })()), "id", [], "any"falsefalsefalse242), "query" => ["filter" => "email""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 251
  2103. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'251$this->source); })()), "firstJob", [], "any"falsefalsefalse251), "emailDelivered", [], "any"falsefalsefalse251) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 252
  2104. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'252$this->source); })()), "firstJob", [], "any"falsefalsefalse252), "emailDelivered", [], "any"falsefalsefalse252) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Bounces""value" => twig_number_format_filter($this->env, (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 256
  2105. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'256$this->source); })()), "firstJob", [], "any"falsefalsefalse256), "emailUndelivered", [], "any"falsefalsefalse256) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'256$this->source); })()), "firstJob", [], "any"falsefalsefalse256), "emailFailed", [], "any"falsefalsefalse256))), "link" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 257
  2106. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'257$this->source); })()), "firstJob", [], "any"falsefalsefalse257), "emailUndelivered", [], "any"falsefalsefalse257) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'257$this->source); })()), "firstJob", [], "any"falsefalsefalse257), "emailFailed", [], "any"falsefalsefalse257)) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 259
  2107. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'259$this->source); })()), "id", [], "any"falsefalsefalse259), "query" => ["filter" => "email""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 268
  2108. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'268$this->source); })()), "firstJob", [], "any"falsefalsefalse268), "emailUndelivered", [], "any"falsefalsefalse268) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'268$this->source); })()), "firstJob", [], "any"falsefalsefalse268), "emailFailed", [], "any"falsefalsefalse268)) > 0)) ? ("sidepanel") : (null)), "dataTarget" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 269
  2109. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'269$this->source); })()), "firstJob", [], "any"falsefalsefalse269), "emailUndelivered", [], "any"falsefalsefalse269) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'269$this->source); })()), "firstJob", [], "any"falsefalsefalse269), "emailFailed", [], "any"falsefalsefalse269)) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Open rate""value" => $this->extensions['App\Twig\Extension\MiscellaneousExtension']->percentage(((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 273
  2110. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'273$this->source); })()), "firstJob", [], "any"falsefalsefalse273), "emailSucceeded", [], "any"falsefalsefalse273)) ? ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'273$this->source); })()), "firstJob", [], "any"falsefalsefalse273), "emailOpened", [], "any"falsefalsefalse273) / twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'273$this->source); })()), "firstJob", [], "any"falsefalsefalse273), "emailSucceeded", [], "any"falsefalsefalse273))) : (0))), "progress" => ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 274
  2111. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'274$this->source); })()), "firstJob", [], "any"falsefalsefalse274), "emailSucceeded", [], "any"falsefalsefalse274)) ? ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'274$this->source); })()), "firstJob", [], "any"falsefalsefalse274), "emailOpened", [], "any"falsefalsefalse274) / twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'274$this->source); })()), "firstJob", [], "any"falsefalsefalse274), "emailSucceeded", [], "any"falsefalsefalse274))) : (0))]]])]));
  2112.                 // line 298
  2113.                 echo "                        ";
  2114.             } elseif ((($context["channel"] == twig_constant("CHANNELS__SMS", (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'298$this->source); })()))) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'298$this->source); })()), "firstJob", [], "any"falsefalsefalse298), "smsTotal", [], "any"falsefalsefalse298))) {
  2115.                 // line 299
  2116.                 echo "                            ";
  2117.                 $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"299"1062131583")->display(twig_array_merge(twig_array_merge($context, ["icon" => "icon-activity-text""title" => "SMS""stats" => [=> ["label" => "Total sent""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 305
  2118. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'305$this->source); })()), "firstJob", [], "any"falsefalsefalse305), "smsSucceeded", [], "any"falsefalsefalse305)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 306
  2119. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'306$this->source); })()), "firstJob", [], "any"falsefalsefalse306), "smsSucceeded", [], "any"falsefalsefalse306) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 308
  2120. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'308$this->source); })()), "id", [], "any"falsefalsefalse308), "query" => ["filter" => "sms""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 317
  2121. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'317$this->source); })()), "firstJob", [], "any"falsefalsefalse317), "smsSucceeded", [], "any"falsefalsefalse317) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 318
  2122. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'318$this->source); })()), "firstJob", [], "any"falsefalsefalse318), "smsSucceeded", [], "any"falsefalsefalse318) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Delivery verified""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 322
  2123. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'322$this->source); })()), "firstJob", [], "any"falsefalsefalse322), "smsDelivered", [], "any"falsefalsefalse322)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 323
  2124. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'323$this->source); })()), "firstJob", [], "any"falsefalsefalse323), "smsDelivered", [], "any"falsefalsefalse323) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 325
  2125. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'325$this->source); })()), "id", [], "any"falsefalsefalse325), "query" => ["filter" => "sms""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 334
  2126. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'334$this->source); })()), "firstJob", [], "any"falsefalsefalse334), "smsDelivered", [], "any"falsefalsefalse334) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 335
  2127. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'335$this->source); })()), "firstJob", [], "any"falsefalsefalse335), "smsDelivered", [], "any"falsefalsefalse335) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Bounces""value" => twig_number_format_filter($this->env, (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 339
  2128. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'339$this->source); })()), "firstJob", [], "any"falsefalsefalse339), "smsUndelivered", [], "any"falsefalsefalse339) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'339$this->source); })()), "firstJob", [], "any"falsefalsefalse339), "smsFailed", [], "any"falsefalsefalse339))), "link" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 340
  2129. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'340$this->source); })()), "firstJob", [], "any"falsefalsefalse340), "smsUndelivered", [], "any"falsefalsefalse340) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'340$this->source); })()), "firstJob", [], "any"falsefalsefalse340), "smsFailed", [], "any"falsefalsefalse340)) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 342
  2130. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'342$this->source); })()), "id", [], "any"falsefalsefalse342), "query" => ["filter" => "sms""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 351
  2131. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'351$this->source); })()), "firstJob", [], "any"falsefalsefalse351), "smsUndelivered", [], "any"falsefalsefalse351) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'351$this->source); })()), "firstJob", [], "any"falsefalsefalse351), "smsFailed", [], "any"falsefalsefalse351)) > 0)) ? ("sidepanel") : (null)), "dataTarget" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 352
  2132. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'352$this->source); })()), "firstJob", [], "any"falsefalsefalse352), "smsUndelivered", [], "any"falsefalsefalse352) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'352$this->source); })()), "firstJob", [], "any"falsefalsefalse352), "smsFailed", [], "any"falsefalsefalse352)) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]]), ['_args' => twig_to_array(["icon" => "icon-activity-text""title" => "SMS""stats" => [=> ["label" => "Total sent""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 305
  2133. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'305$this->source); })()), "firstJob", [], "any"falsefalsefalse305), "smsSucceeded", [], "any"falsefalsefalse305)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 306
  2134. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'306$this->source); })()), "firstJob", [], "any"falsefalsefalse306), "smsSucceeded", [], "any"falsefalsefalse306) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 308
  2135. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'308$this->source); })()), "id", [], "any"falsefalsefalse308), "query" => ["filter" => "sms""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 317
  2136. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'317$this->source); })()), "firstJob", [], "any"falsefalsefalse317), "smsSucceeded", [], "any"falsefalsefalse317) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 318
  2137. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'318$this->source); })()), "firstJob", [], "any"falsefalsefalse318), "smsSucceeded", [], "any"falsefalsefalse318) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Delivery verified""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 322
  2138. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'322$this->source); })()), "firstJob", [], "any"falsefalsefalse322), "smsDelivered", [], "any"falsefalsefalse322)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 323
  2139. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'323$this->source); })()), "firstJob", [], "any"falsefalsefalse323), "smsDelivered", [], "any"falsefalsefalse323) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 325
  2140. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'325$this->source); })()), "id", [], "any"falsefalsefalse325), "query" => ["filter" => "sms""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 334
  2141. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'334$this->source); })()), "firstJob", [], "any"falsefalsefalse334), "smsDelivered", [], "any"falsefalsefalse334) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 335
  2142. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'335$this->source); })()), "firstJob", [], "any"falsefalsefalse335), "smsDelivered", [], "any"falsefalsefalse335) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Bounces""value" => twig_number_format_filter($this->env, (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 339
  2143. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'339$this->source); })()), "firstJob", [], "any"falsefalsefalse339), "smsUndelivered", [], "any"falsefalsefalse339) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'339$this->source); })()), "firstJob", [], "any"falsefalsefalse339), "smsFailed", [], "any"falsefalsefalse339))), "link" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 340
  2144. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'340$this->source); })()), "firstJob", [], "any"falsefalsefalse340), "smsUndelivered", [], "any"falsefalsefalse340) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'340$this->source); })()), "firstJob", [], "any"falsefalsefalse340), "smsFailed", [], "any"falsefalsefalse340)) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 342
  2145. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'342$this->source); })()), "id", [], "any"falsefalsefalse342), "query" => ["filter" => "sms""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 351
  2146. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'351$this->source); })()), "firstJob", [], "any"falsefalsefalse351), "smsUndelivered", [], "any"falsefalsefalse351) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'351$this->source); })()), "firstJob", [], "any"falsefalsefalse351), "smsFailed", [], "any"falsefalsefalse351)) > 0)) ? ("sidepanel") : (null)), "dataTarget" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 352
  2147. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'352$this->source); })()), "firstJob", [], "any"falsefalsefalse352), "smsUndelivered", [], "any"falsefalsefalse352) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'352$this->source); })()), "firstJob", [], "any"falsefalsefalse352), "smsFailed", [], "any"falsefalsefalse352)) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]])]));
  2148.                 // line 378
  2149.                 echo "                        ";
  2150.             } elseif ((($context["channel"] == twig_constant("CHANNELS__VOICE", (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'378$this->source); })()))) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'378$this->source); })()), "firstJob", [], "any"falsefalsefalse378), "voiceTotal", [], "any"falsefalsefalse378))) {
  2151.                 // line 379
  2152.                 echo "                            ";
  2153.                 $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"379"1222024576")->display(twig_array_merge(twig_array_merge($context, ["icon" => "icon-activity-voice""title" => "Phone""stats" => [=> ["label" => "Total sent""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 385
  2154. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'385$this->source); })()), "firstJob", [], "any"falsefalsefalse385), "voiceSucceeded", [], "any"falsefalsefalse385)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 386
  2155. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'386$this->source); })()), "firstJob", [], "any"falsefalsefalse386), "voiceSucceeded", [], "any"falsefalsefalse386) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 388
  2156. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'388$this->source); })()), "id", [], "any"falsefalsefalse388), "query" => ["filter" => "voice""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 397
  2157. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'397$this->source); })()), "firstJob", [], "any"falsefalsefalse397), "voiceSucceeded", [], "any"falsefalsefalse397) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 398
  2158. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'398$this->source); })()), "firstJob", [], "any"falsefalsefalse398), "voiceSucceeded", [], "any"falsefalsefalse398) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Delivery verified""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 402
  2159. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'402$this->source); })()), "firstJob", [], "any"falsefalsefalse402), "voiceDelivered", [], "any"falsefalsefalse402)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 403
  2160. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'403$this->source); })()), "firstJob", [], "any"falsefalsefalse403), "voiceDelivered", [], "any"falsefalsefalse403) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 405
  2161. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'405$this->source); })()), "id", [], "any"falsefalsefalse405), "query" => ["filter" => "voice""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 414
  2162. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'414$this->source); })()), "firstJob", [], "any"falsefalsefalse414), "voiceDelivered", [], "any"falsefalsefalse414) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 415
  2163. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'415$this->source); })()), "firstJob", [], "any"falsefalsefalse415), "voiceDelivered", [], "any"falsefalsefalse415) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Bounces""value" => twig_number_format_filter($this->env, (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 419
  2164. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'419$this->source); })()), "firstJob", [], "any"falsefalsefalse419), "voiceUndelivered", [], "any"falsefalsefalse419) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'419$this->source); })()), "firstJob", [], "any"falsefalsefalse419), "voiceFailed", [], "any"falsefalsefalse419))), "link" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 420
  2165. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'420$this->source); })()), "firstJob", [], "any"falsefalsefalse420), "voiceUndelivered", [], "any"falsefalsefalse420) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'420$this->source); })()), "firstJob", [], "any"falsefalsefalse420), "voiceFailed", [], "any"falsefalsefalse420)) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 422
  2166. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'422$this->source); })()), "id", [], "any"falsefalsefalse422), "query" => ["filter" => "voice""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 431
  2167. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'431$this->source); })()), "firstJob", [], "any"falsefalsefalse431), "voiceUndelivered", [], "any"falsefalsefalse431) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'431$this->source); })()), "firstJob", [], "any"falsefalsefalse431), "voiceFailed", [], "any"falsefalsefalse431)) > 0)) ? ("sidepanel") : (null)), "dataTarget" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 432
  2168. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'432$this->source); })()), "firstJob", [], "any"falsefalsefalse432), "voiceUndelivered", [], "any"falsefalsefalse432) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'432$this->source); })()), "firstJob", [], "any"falsefalsefalse432), "voiceFailed", [], "any"falsefalsefalse432)) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Answer rate""value" => $this->extensions['App\Twig\Extension\MiscellaneousExtension']->percentage(((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 436
  2169. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'436$this->source); })()), "firstJob", [], "any"falsefalsefalse436), "voiceSucceeded", [], "any"falsefalsefalse436)) ? ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'436$this->source); })()), "firstJob", [], "any"falsefalsefalse436), "voiceAnswered", [], "any"falsefalsefalse436) / twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'436$this->source); })()), "firstJob", [], "any"falsefalsefalse436), "voiceSucceeded", [], "any"falsefalsefalse436))) : (0))), "progress" => ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 437
  2170. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'437$this->source); })()), "firstJob", [], "any"falsefalsefalse437), "voiceSucceeded", [], "any"falsefalsefalse437)) ? ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'437$this->source); })()), "firstJob", [], "any"falsefalsefalse437), "voiceAnswered", [], "any"falsefalsefalse437) / twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'437$this->source); })()), "firstJob", [], "any"falsefalsefalse437), "voiceSucceeded", [], "any"falsefalsefalse437))) : (0))]]]), ['_args' => twig_to_array(["icon" => "icon-activity-voice""title" => "Phone""stats" => [=> ["label" => "Total sent""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 385
  2171. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'385$this->source); })()), "firstJob", [], "any"falsefalsefalse385), "voiceSucceeded", [], "any"falsefalsefalse385)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 386
  2172. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'386$this->source); })()), "firstJob", [], "any"falsefalsefalse386), "voiceSucceeded", [], "any"falsefalsefalse386) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 388
  2173. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'388$this->source); })()), "id", [], "any"falsefalsefalse388), "query" => ["filter" => "voice""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 397
  2174. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'397$this->source); })()), "firstJob", [], "any"falsefalsefalse397), "voiceSucceeded", [], "any"falsefalsefalse397) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 398
  2175. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'398$this->source); })()), "firstJob", [], "any"falsefalsefalse398), "voiceSucceeded", [], "any"falsefalsefalse398) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Delivery verified""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 402
  2176. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'402$this->source); })()), "firstJob", [], "any"falsefalsefalse402), "voiceDelivered", [], "any"falsefalsefalse402)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 403
  2177. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'403$this->source); })()), "firstJob", [], "any"falsefalsefalse403), "voiceDelivered", [], "any"falsefalsefalse403) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 405
  2178. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'405$this->source); })()), "id", [], "any"falsefalsefalse405), "query" => ["filter" => "voice""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 414
  2179. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'414$this->source); })()), "firstJob", [], "any"falsefalsefalse414), "voiceDelivered", [], "any"falsefalsefalse414) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 415
  2180. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'415$this->source); })()), "firstJob", [], "any"falsefalsefalse415), "voiceDelivered", [], "any"falsefalsefalse415) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Bounces""value" => twig_number_format_filter($this->env, (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 419
  2181. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'419$this->source); })()), "firstJob", [], "any"falsefalsefalse419), "voiceUndelivered", [], "any"falsefalsefalse419) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'419$this->source); })()), "firstJob", [], "any"falsefalsefalse419), "voiceFailed", [], "any"falsefalsefalse419))), "link" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 420
  2182. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'420$this->source); })()), "firstJob", [], "any"falsefalsefalse420), "voiceUndelivered", [], "any"falsefalsefalse420) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'420$this->source); })()), "firstJob", [], "any"falsefalsefalse420), "voiceFailed", [], "any"falsefalsefalse420)) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 422
  2183. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'422$this->source); })()), "id", [], "any"falsefalsefalse422), "query" => ["filter" => "voice""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 431
  2184. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'431$this->source); })()), "firstJob", [], "any"falsefalsefalse431), "voiceUndelivered", [], "any"falsefalsefalse431) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'431$this->source); })()), "firstJob", [], "any"falsefalsefalse431), "voiceFailed", [], "any"falsefalsefalse431)) > 0)) ? ("sidepanel") : (null)), "dataTarget" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 432
  2185. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'432$this->source); })()), "firstJob", [], "any"falsefalsefalse432), "voiceUndelivered", [], "any"falsefalsefalse432) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'432$this->source); })()), "firstJob", [], "any"falsefalsefalse432), "voiceFailed", [], "any"falsefalsefalse432)) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Answer rate""value" => $this->extensions['App\Twig\Extension\MiscellaneousExtension']->percentage(((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 436
  2186. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'436$this->source); })()), "firstJob", [], "any"falsefalsefalse436), "voiceSucceeded", [], "any"falsefalsefalse436)) ? ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'436$this->source); })()), "firstJob", [], "any"falsefalsefalse436), "voiceAnswered", [], "any"falsefalsefalse436) / twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'436$this->source); })()), "firstJob", [], "any"falsefalsefalse436), "voiceSucceeded", [], "any"falsefalsefalse436))) : (0))), "progress" => ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 437
  2187. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'437$this->source); })()), "firstJob", [], "any"falsefalsefalse437), "voiceSucceeded", [], "any"falsefalsefalse437)) ? ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'437$this->source); })()), "firstJob", [], "any"falsefalsefalse437), "voiceAnswered", [], "any"falsefalsefalse437) / twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'437$this->source); })()), "firstJob", [], "any"falsefalsefalse437), "voiceSucceeded", [], "any"falsefalsefalse437))) : (0))]]])]));
  2188.                 // line 465
  2189.                 echo "                        ";
  2190.             } elseif ((($context["channel"] == twig_constant("CHANNELS__APP", (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'465$this->source); })()))) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'465$this->source); })()), "firstJob", [], "any"falsefalsefalse465), "appTotal", [], "any"falsefalsefalse465))) {
  2191.                 // line 466
  2192.                 echo "                            ";
  2193.                 $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"466"2123896173")->display(twig_array_merge(twig_array_merge($context, ["icon" => "icon-deviceapp""title" => "Mobile app""stats" => [=> ["label" => "Total sent""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 472
  2194. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'472$this->source); })()), "firstJob", [], "any"falsefalsefalse472), "appSucceeded", [], "any"falsefalsefalse472)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 473
  2195. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'473$this->source); })()), "firstJob", [], "any"falsefalsefalse473), "appSucceeded", [], "any"falsefalsefalse473) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 475
  2196. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'475$this->source); })()), "id", [], "any"falsefalsefalse475), "query" => ["filter" => "app""state" => "pending""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 484
  2197. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'484$this->source); })()), "firstJob", [], "any"falsefalsefalse484), "appSucceeded", [], "any"falsefalsefalse484) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 485
  2198. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'485$this->source); })()), "firstJob", [], "any"falsefalsefalse485), "appSucceeded", [], "any"falsefalsefalse485) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Delivery verified""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 489
  2199. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'489$this->source); })()), "firstJob", [], "any"falsefalsefalse489), "appDelivered", [], "any"falsefalsefalse489))], => ["label" => "Bounces""value" => twig_number_format_filter($this->env, (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 493
  2200. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'493$this->source); })()), "firstJob", [], "any"falsefalsefalse493), "appUndelivered", [], "any"falsefalsefalse493) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'493$this->source); })()), "firstJob", [], "any"falsefalsefalse493), "appFailed", [], "any"falsefalsefalse493))), "link" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 494
  2201. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'494$this->source); })()), "firstJob", [], "any"falsefalsefalse494), "appUndelivered", [], "any"falsefalsefalse494) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'494$this->source); })()), "firstJob", [], "any"falsefalsefalse494), "appFailed", [], "any"falsefalsefalse494)) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 496
  2202. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'496$this->source); })()), "id", [], "any"falsefalsefalse496), "query" => ["filter" => "app""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 505
  2203. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'505$this->source); })()), "firstJob", [], "any"falsefalsefalse505), "appUndelivered", [], "any"falsefalsefalse505) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'505$this->source); })()), "firstJob", [], "any"falsefalsefalse505), "appFailed", [], "any"falsefalsefalse505)) > 0)) ? ("sidepanel") : (null)), "dataTarget" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 506
  2204. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'506$this->source); })()), "firstJob", [], "any"falsefalsefalse506), "appUndelivered", [], "any"falsefalsefalse506) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'506$this->source); })()), "firstJob", [], "any"falsefalsefalse506), "appFailed", [], "any"falsefalsefalse506)) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]]), ['_args' => twig_to_array(["icon" => "icon-deviceapp""title" => "Mobile app""stats" => [=> ["label" => "Total sent""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 472
  2205. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'472$this->source); })()), "firstJob", [], "any"falsefalsefalse472), "appSucceeded", [], "any"falsefalsefalse472)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 473
  2206. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'473$this->source); })()), "firstJob", [], "any"falsefalsefalse473), "appSucceeded", [], "any"falsefalsefalse473) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 475
  2207. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'475$this->source); })()), "id", [], "any"falsefalsefalse475), "query" => ["filter" => "app""state" => "pending""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 484
  2208. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'484$this->source); })()), "firstJob", [], "any"falsefalsefalse484), "appSucceeded", [], "any"falsefalsefalse484) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 485
  2209. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'485$this->source); })()), "firstJob", [], "any"falsefalsefalse485), "appSucceeded", [], "any"falsefalsefalse485) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Delivery verified""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 489
  2210. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'489$this->source); })()), "firstJob", [], "any"falsefalsefalse489), "appDelivered", [], "any"falsefalsefalse489))], => ["label" => "Bounces""value" => twig_number_format_filter($this->env, (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 493
  2211. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'493$this->source); })()), "firstJob", [], "any"falsefalsefalse493), "appUndelivered", [], "any"falsefalsefalse493) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'493$this->source); })()), "firstJob", [], "any"falsefalsefalse493), "appFailed", [], "any"falsefalsefalse493))), "link" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 494
  2212. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'494$this->source); })()), "firstJob", [], "any"falsefalsefalse494), "appUndelivered", [], "any"falsefalsefalse494) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'494$this->source); })()), "firstJob", [], "any"falsefalsefalse494), "appFailed", [], "any"falsefalsefalse494)) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 496
  2213. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'496$this->source); })()), "id", [], "any"falsefalsefalse496), "query" => ["filter" => "app""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 505
  2214. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'505$this->source); })()), "firstJob", [], "any"falsefalsefalse505), "appUndelivered", [], "any"falsefalsefalse505) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'505$this->source); })()), "firstJob", [], "any"falsefalsefalse505), "appFailed", [], "any"falsefalsefalse505)) > 0)) ? ("sidepanel") : (null)), "dataTarget" => ((((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 506
  2215. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'506$this->source); })()), "firstJob", [], "any"falsefalsefalse506), "appUndelivered", [], "any"falsefalsefalse506) + twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'506$this->source); })()), "firstJob", [], "any"falsefalsefalse506), "appFailed", [], "any"falsefalsefalse506)) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]])]));
  2216.                 // line 523
  2217.                 echo "                        ";
  2218.             } elseif ((($context["channel"] == twig_constant("CHANNELS__FACEBOOK", (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'523$this->source); })()))) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'523$this->source); })()), "firstJob", [], "any"falsefalsefalse523), "facebookTotal", [], "any"falsefalsefalse523))) {
  2219.                 // line 524
  2220.                 echo "                            ";
  2221.                 $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"524"1146006736")->display(twig_array_merge(twig_array_merge($context, ["icon" => "icon-facebook-fill""title" => "Facebook""stats" => [=> ["label" => "Total posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 530
  2222. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'530$this->source); })()), "firstJob", [], "any"falsefalsefalse530), "facebookTotal", [], "any"falsefalsefalse530)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 531
  2223. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'531$this->source); })()), "firstJob", [], "any"falsefalsefalse531), "facebookTotal", [], "any"falsefalsefalse531) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 533
  2224. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'533$this->source); })()), "id", [], "any"falsefalsefalse533), "query" => ["filter" => "facebook""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 542
  2225. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'542$this->source); })()), "firstJob", [], "any"falsefalsefalse542), "facebookTotal", [], "any"falsefalsefalse542) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 543
  2226. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'543$this->source); })()), "firstJob", [], "any"falsefalsefalse543), "facebookTotal", [], "any"falsefalsefalse543) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Successful posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 547
  2227. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'547$this->source); })()), "firstJob", [], "any"falsefalsefalse547), "facebookSucceeded", [], "any"falsefalsefalse547)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 548
  2228. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'548$this->source); })()), "firstJob", [], "any"falsefalsefalse548), "facebookSucceeded", [], "any"falsefalsefalse548) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 550
  2229. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'550$this->source); })()), "id", [], "any"falsefalsefalse550), "query" => ["filter" => "facebook""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 559
  2230. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'559$this->source); })()), "firstJob", [], "any"falsefalsefalse559), "facebookSucceeded", [], "any"falsefalsefalse559) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 560
  2231. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'560$this->source); })()), "firstJob", [], "any"falsefalsefalse560), "facebookSucceeded", [], "any"falsefalsefalse560) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Errors""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 564
  2232. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'564$this->source); })()), "firstJob", [], "any"falsefalsefalse564), "facebookFailed", [], "any"falsefalsefalse564)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 565
  2233. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'565$this->source); })()), "firstJob", [], "any"falsefalsefalse565), "facebookFailed", [], "any"falsefalsefalse565) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 567
  2234. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'567$this->source); })()), "id", [], "any"falsefalsefalse567), "query" => ["filter" => "facebook""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 576
  2235. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'576$this->source); })()), "firstJob", [], "any"falsefalsefalse576), "facebookFailed", [], "any"falsefalsefalse576) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 577
  2236. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'577$this->source); })()), "firstJob", [], "any"falsefalsefalse577), "facebookFailed", [], "any"falsefalsefalse577) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]]), ['_args' => twig_to_array(["icon" => "icon-facebook-fill""title" => "Facebook""stats" => [=> ["label" => "Total posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 530
  2237. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'530$this->source); })()), "firstJob", [], "any"falsefalsefalse530), "facebookTotal", [], "any"falsefalsefalse530)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 531
  2238. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'531$this->source); })()), "firstJob", [], "any"falsefalsefalse531), "facebookTotal", [], "any"falsefalsefalse531) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 533
  2239. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'533$this->source); })()), "id", [], "any"falsefalsefalse533), "query" => ["filter" => "facebook""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 542
  2240. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'542$this->source); })()), "firstJob", [], "any"falsefalsefalse542), "facebookTotal", [], "any"falsefalsefalse542) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 543
  2241. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'543$this->source); })()), "firstJob", [], "any"falsefalsefalse543), "facebookTotal", [], "any"falsefalsefalse543) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Successful posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 547
  2242. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'547$this->source); })()), "firstJob", [], "any"falsefalsefalse547), "facebookSucceeded", [], "any"falsefalsefalse547)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 548
  2243. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'548$this->source); })()), "firstJob", [], "any"falsefalsefalse548), "facebookSucceeded", [], "any"falsefalsefalse548) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 550
  2244. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'550$this->source); })()), "id", [], "any"falsefalsefalse550), "query" => ["filter" => "facebook""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 559
  2245. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'559$this->source); })()), "firstJob", [], "any"falsefalsefalse559), "facebookSucceeded", [], "any"falsefalsefalse559) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 560
  2246. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'560$this->source); })()), "firstJob", [], "any"falsefalsefalse560), "facebookSucceeded", [], "any"falsefalsefalse560) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Errors""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 564
  2247. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'564$this->source); })()), "firstJob", [], "any"falsefalsefalse564), "facebookFailed", [], "any"falsefalsefalse564)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 565
  2248. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'565$this->source); })()), "firstJob", [], "any"falsefalsefalse565), "facebookFailed", [], "any"falsefalsefalse565) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 567
  2249. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'567$this->source); })()), "id", [], "any"falsefalsefalse567), "query" => ["filter" => "facebook""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 576
  2250. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'576$this->source); })()), "firstJob", [], "any"falsefalsefalse576), "facebookFailed", [], "any"falsefalsefalse576) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 577
  2251. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'577$this->source); })()), "firstJob", [], "any"falsefalsefalse577), "facebookFailed", [], "any"falsefalsefalse577) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]])]));
  2252.                 // line 581
  2253.                 echo "                        ";
  2254.             } elseif ((($context["channel"] == twig_constant("CHANNELS__TWITTER", (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'581$this->source); })()))) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'581$this->source); })()), "firstJob", [], "any"falsefalsefalse581), "twitterTotal", [], "any"falsefalsefalse581))) {
  2255.                 // line 582
  2256.                 echo "                            ";
  2257.                 $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"582"799899813")->display(twig_array_merge(twig_array_merge($context, ["icon" => "icon-twitter-fill""title" => "Twitter""stats" => [=> ["label" => "Total posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 588
  2258. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'588$this->source); })()), "firstJob", [], "any"falsefalsefalse588), "twitterTotal", [], "any"falsefalsefalse588)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 589
  2259. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'589$this->source); })()), "firstJob", [], "any"falsefalsefalse589), "twitterTotal", [], "any"falsefalsefalse589) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 591
  2260. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'591$this->source); })()), "id", [], "any"falsefalsefalse591), "query" => ["filter" => "twitter""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 600
  2261. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'600$this->source); })()), "firstJob", [], "any"falsefalsefalse600), "twitterTotal", [], "any"falsefalsefalse600) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 601
  2262. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'601$this->source); })()), "firstJob", [], "any"falsefalsefalse601), "twitterTotal", [], "any"falsefalsefalse601) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Successful posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 605
  2263. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'605$this->source); })()), "firstJob", [], "any"falsefalsefalse605), "twitterSucceeded", [], "any"falsefalsefalse605)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 606
  2264. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'606$this->source); })()), "firstJob", [], "any"falsefalsefalse606), "twitterSucceeded", [], "any"falsefalsefalse606) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 608
  2265. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'608$this->source); })()), "id", [], "any"falsefalsefalse608), "query" => ["filter" => "twitter""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 617
  2266. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'617$this->source); })()), "firstJob", [], "any"falsefalsefalse617), "twitterSucceeded", [], "any"falsefalsefalse617) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 618
  2267. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'618$this->source); })()), "firstJob", [], "any"falsefalsefalse618), "twitterSucceeded", [], "any"falsefalsefalse618) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Errors""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 622
  2268. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'622$this->source); })()), "firstJob", [], "any"falsefalsefalse622), "twitterFailed", [], "any"falsefalsefalse622)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 623
  2269. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'623$this->source); })()), "firstJob", [], "any"falsefalsefalse623), "twitterFailed", [], "any"falsefalsefalse623) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 625
  2270. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'625$this->source); })()), "id", [], "any"falsefalsefalse625), "query" => ["filter" => "twitter""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 634
  2271. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'634$this->source); })()), "firstJob", [], "any"falsefalsefalse634), "twitterFailed", [], "any"falsefalsefalse634) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 635
  2272. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'635$this->source); })()), "firstJob", [], "any"falsefalsefalse635), "twitterFailed", [], "any"falsefalsefalse635) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]]), ['_args' => twig_to_array(["icon" => "icon-twitter-fill""title" => "Twitter""stats" => [=> ["label" => "Total posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 588
  2273. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'588$this->source); })()), "firstJob", [], "any"falsefalsefalse588), "twitterTotal", [], "any"falsefalsefalse588)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 589
  2274. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'589$this->source); })()), "firstJob", [], "any"falsefalsefalse589), "twitterTotal", [], "any"falsefalsefalse589) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 591
  2275. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'591$this->source); })()), "id", [], "any"falsefalsefalse591), "query" => ["filter" => "twitter""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 600
  2276. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'600$this->source); })()), "firstJob", [], "any"falsefalsefalse600), "twitterTotal", [], "any"falsefalsefalse600) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 601
  2277. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'601$this->source); })()), "firstJob", [], "any"falsefalsefalse601), "twitterTotal", [], "any"falsefalsefalse601) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Successful posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 605
  2278. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'605$this->source); })()), "firstJob", [], "any"falsefalsefalse605), "twitterSucceeded", [], "any"falsefalsefalse605)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 606
  2279. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'606$this->source); })()), "firstJob", [], "any"falsefalsefalse606), "twitterSucceeded", [], "any"falsefalsefalse606) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 608
  2280. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'608$this->source); })()), "id", [], "any"falsefalsefalse608), "query" => ["filter" => "twitter""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 617
  2281. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'617$this->source); })()), "firstJob", [], "any"falsefalsefalse617), "twitterSucceeded", [], "any"falsefalsefalse617) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 618
  2282. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'618$this->source); })()), "firstJob", [], "any"falsefalsefalse618), "twitterSucceeded", [], "any"falsefalsefalse618) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Errors""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 622
  2283. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'622$this->source); })()), "firstJob", [], "any"falsefalsefalse622), "twitterFailed", [], "any"falsefalsefalse622)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 623
  2284. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'623$this->source); })()), "firstJob", [], "any"falsefalsefalse623), "twitterFailed", [], "any"falsefalsefalse623) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 625
  2285. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'625$this->source); })()), "id", [], "any"falsefalsefalse625), "query" => ["filter" => "twitter""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 634
  2286. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'634$this->source); })()), "firstJob", [], "any"falsefalsefalse634), "twitterFailed", [], "any"falsefalsefalse634) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 635
  2287. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'635$this->source); })()), "firstJob", [], "any"falsefalsefalse635), "twitterFailed", [], "any"falsefalsefalse635) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]])]));
  2288.                 // line 639
  2289.                 echo "                        ";
  2290.             } elseif ((($context["channel"] == twig_constant("CHANNELS__INSTAGRAM", (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'639$this->source); })()))) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'639$this->source); })()), "firstJob", [], "any"falsefalsefalse639), "instagramTotal", [], "any"falsefalsefalse639))) {
  2291.                 // line 640
  2292.                 echo "                            ";
  2293.                 $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"640"34679198")->display(twig_array_merge(twig_array_merge($context, ["icon" => "fab fa-instagram""title" => "Instagram""stats" => [=> ["label" => "Total posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 646
  2294. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'646$this->source); })()), "firstJob", [], "any"falsefalsefalse646), "instagramTotal", [], "any"falsefalsefalse646)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 647
  2295. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'647$this->source); })()), "firstJob", [], "any"falsefalsefalse647), "instagramTotal", [], "any"falsefalsefalse647) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 649
  2296. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'649$this->source); })()), "id", [], "any"falsefalsefalse649), "query" => ["filter" => "instagram""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 658
  2297. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'658$this->source); })()), "firstJob", [], "any"falsefalsefalse658), "instagramTotal", [], "any"falsefalsefalse658) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 659
  2298. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'659$this->source); })()), "firstJob", [], "any"falsefalsefalse659), "instagramTotal", [], "any"falsefalsefalse659) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Successful posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 663
  2299. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'663$this->source); })()), "firstJob", [], "any"falsefalsefalse663), "instagramSucceeded", [], "any"falsefalsefalse663)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 664
  2300. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'664$this->source); })()), "firstJob", [], "any"falsefalsefalse664), "instagramSucceeded", [], "any"falsefalsefalse664) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 666
  2301. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'666$this->source); })()), "id", [], "any"falsefalsefalse666), "query" => ["filter" => "instagram""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 675
  2302. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'675$this->source); })()), "firstJob", [], "any"falsefalsefalse675), "instagramSucceeded", [], "any"falsefalsefalse675) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 676
  2303. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'676$this->source); })()), "firstJob", [], "any"falsefalsefalse676), "instagramSucceeded", [], "any"falsefalsefalse676) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Errors""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 680
  2304. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'680$this->source); })()), "firstJob", [], "any"falsefalsefalse680), "instagramFailed", [], "any"falsefalsefalse680)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 681
  2305. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'681$this->source); })()), "firstJob", [], "any"falsefalsefalse681), "instagramFailed", [], "any"falsefalsefalse681) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 683
  2306. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'683$this->source); })()), "id", [], "any"falsefalsefalse683), "query" => ["filter" => "instagram""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 692
  2307. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'692$this->source); })()), "firstJob", [], "any"falsefalsefalse692), "instagramFailed", [], "any"falsefalsefalse692) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 693
  2308. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'693$this->source); })()), "firstJob", [], "any"falsefalsefalse693), "instagramFailed", [], "any"falsefalsefalse693) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]]), ['_args' => twig_to_array(["icon" => "fab fa-instagram""title" => "Instagram""stats" => [=> ["label" => "Total posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 646
  2309. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'646$this->source); })()), "firstJob", [], "any"falsefalsefalse646), "instagramTotal", [], "any"falsefalsefalse646)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 647
  2310. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'647$this->source); })()), "firstJob", [], "any"falsefalsefalse647), "instagramTotal", [], "any"falsefalsefalse647) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 649
  2311. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'649$this->source); })()), "id", [], "any"falsefalsefalse649), "query" => ["filter" => "instagram""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 658
  2312. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'658$this->source); })()), "firstJob", [], "any"falsefalsefalse658), "instagramTotal", [], "any"falsefalsefalse658) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 659
  2313. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'659$this->source); })()), "firstJob", [], "any"falsefalsefalse659), "instagramTotal", [], "any"falsefalsefalse659) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Successful posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 663
  2314. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'663$this->source); })()), "firstJob", [], "any"falsefalsefalse663), "instagramSucceeded", [], "any"falsefalsefalse663)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 664
  2315. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'664$this->source); })()), "firstJob", [], "any"falsefalsefalse664), "instagramSucceeded", [], "any"falsefalsefalse664) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 666
  2316. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'666$this->source); })()), "id", [], "any"falsefalsefalse666), "query" => ["filter" => "instagram""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 675
  2317. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'675$this->source); })()), "firstJob", [], "any"falsefalsefalse675), "instagramSucceeded", [], "any"falsefalsefalse675) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 676
  2318. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'676$this->source); })()), "firstJob", [], "any"falsefalsefalse676), "instagramSucceeded", [], "any"falsefalsefalse676) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Errors""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 680
  2319. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'680$this->source); })()), "firstJob", [], "any"falsefalsefalse680), "instagramFailed", [], "any"falsefalsefalse680)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 681
  2320. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'681$this->source); })()), "firstJob", [], "any"falsefalsefalse681), "instagramFailed", [], "any"falsefalsefalse681) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 683
  2321. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'683$this->source); })()), "id", [], "any"falsefalsefalse683), "query" => ["filter" => "instagram""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 692
  2322. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'692$this->source); })()), "firstJob", [], "any"falsefalsefalse692), "instagramFailed", [], "any"falsefalsefalse692) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 693
  2323. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'693$this->source); })()), "firstJob", [], "any"falsefalsefalse693), "instagramFailed", [], "any"falsefalsefalse693) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]])]));
  2324.                 // line 697
  2325.                 echo "                        ";
  2326.             } elseif ((($context["channel"] == twig_constant("CHANNELS__WEBSITE", (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'697$this->source); })()))) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'697$this->source); })()), "firstJob", [], "any"falsefalsefalse697), "websiteTotal", [], "any"falsefalsefalse697))) {
  2327.                 // line 698
  2328.                 echo "                            ";
  2329.                 $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"698"855330866")->display(twig_array_merge(twig_array_merge($context, ["icon" => "icon-website""title" => "Website""stats" => [=> ["label" => "Total posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 704
  2330. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'704$this->source); })()), "firstJob", [], "any"falsefalsefalse704), "websiteTotal", [], "any"falsefalsefalse704)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 705
  2331. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'705$this->source); })()), "firstJob", [], "any"falsefalsefalse705), "websiteTotal", [], "any"falsefalsefalse705) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 707
  2332. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'707$this->source); })()), "id", [], "any"falsefalsefalse707), "query" => ["filter" => "website""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 716
  2333. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'716$this->source); })()), "firstJob", [], "any"falsefalsefalse716), "websiteTotal", [], "any"falsefalsefalse716) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 717
  2334. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'717$this->source); })()), "firstJob", [], "any"falsefalsefalse717), "websiteTotal", [], "any"falsefalsefalse717) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Successful posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 721
  2335. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'721$this->source); })()), "firstJob", [], "any"falsefalsefalse721), "websiteSucceeded", [], "any"falsefalsefalse721)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 722
  2336. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'722$this->source); })()), "firstJob", [], "any"falsefalsefalse722), "websiteSucceeded", [], "any"falsefalsefalse722) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 724
  2337. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'724$this->source); })()), "id", [], "any"falsefalsefalse724), "query" => ["filter" => "website""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 733
  2338. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'733$this->source); })()), "firstJob", [], "any"falsefalsefalse733), "websiteSucceeded", [], "any"falsefalsefalse733) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 734
  2339. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'734$this->source); })()), "firstJob", [], "any"falsefalsefalse734), "websiteSucceeded", [], "any"falsefalsefalse734) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Errors""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 738
  2340. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'738$this->source); })()), "firstJob", [], "any"falsefalsefalse738), "websiteFailed", [], "any"falsefalsefalse738)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 739
  2341. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'739$this->source); })()), "firstJob", [], "any"falsefalsefalse739), "websiteFailed", [], "any"falsefalsefalse739) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 741
  2342. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'741$this->source); })()), "id", [], "any"falsefalsefalse741), "query" => ["filter" => "website""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 750
  2343. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'750$this->source); })()), "firstJob", [], "any"falsefalsefalse750), "websiteFailed", [], "any"falsefalsefalse750) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 751
  2344. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'751$this->source); })()), "firstJob", [], "any"falsefalsefalse751), "websiteFailed", [], "any"falsefalsefalse751) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]]), ['_args' => twig_to_array(["icon" => "icon-website""title" => "Website""stats" => [=> ["label" => "Total posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 704
  2345. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'704$this->source); })()), "firstJob", [], "any"falsefalsefalse704), "websiteTotal", [], "any"falsefalsefalse704)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 705
  2346. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'705$this->source); })()), "firstJob", [], "any"falsefalsefalse705), "websiteTotal", [], "any"falsefalsefalse705) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 707
  2347. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'707$this->source); })()), "id", [], "any"falsefalsefalse707), "query" => ["filter" => "website""state" => "all""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 716
  2348. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'716$this->source); })()), "firstJob", [], "any"falsefalsefalse716), "websiteTotal", [], "any"falsefalsefalse716) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 717
  2349. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'717$this->source); })()), "firstJob", [], "any"falsefalsefalse717), "websiteTotal", [], "any"falsefalsefalse717) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Successful posts""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 721
  2350. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'721$this->source); })()), "firstJob", [], "any"falsefalsefalse721), "websiteSucceeded", [], "any"falsefalsefalse721)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 722
  2351. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'722$this->source); })()), "firstJob", [], "any"falsefalsefalse722), "websiteSucceeded", [], "any"falsefalsefalse722) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 724
  2352. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'724$this->source); })()), "id", [], "any"falsefalsefalse724), "query" => ["filter" => "website""state" => "completed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 733
  2353. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'733$this->source); })()), "firstJob", [], "any"falsefalsefalse733), "websiteSucceeded", [], "any"falsefalsefalse733) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 734
  2354. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'734$this->source); })()), "firstJob", [], "any"falsefalsefalse734), "websiteSucceeded", [], "any"falsefalsefalse734) > 0)) ? ("#sidepanel__filtered_logs") : (null))], => ["label" => "Errors""value" => twig_number_format_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 738
  2355. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'738$this->source); })()), "firstJob", [], "any"falsefalsefalse738), "websiteFailed", [], "any"falsefalsefalse738)), "link" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 739
  2356. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'739$this->source); })()), "firstJob", [], "any"falsefalsefalse739), "websiteFailed", [], "any"falsefalsefalse739) > 0)) ? ($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.filtered_logs", ["message" => twig_get_attribute($this->env$this->source,                 // line 741
  2357. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'741$this->source); })()), "id", [], "any"falsefalsefalse741), "query" => ["filter" => "website""state" => "failed""sort" => "timestamp""direction" => "DESC"]])) : (null)), "dataToggle" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 750
  2358. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'750$this->source); })()), "firstJob", [], "any"falsefalsefalse750), "websiteFailed", [], "any"falsefalsefalse750) > 0)) ? ("sidepanel") : (null)), "dataTarget" => (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source,                 // line 751
  2359. (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'751$this->source); })()), "firstJob", [], "any"falsefalsefalse751), "websiteFailed", [], "any"falsefalsefalse751) > 0)) ? ("#sidepanel__filtered_logs") : (null))]]])]));
  2360.                 // line 755
  2361.                 echo "                        ";
  2362.             }
  2363.             // line 756
  2364.             echo "                    ";
  2365.             ++$context['loop']['index0'];
  2366.             ++$context['loop']['index'];
  2367.             $context['loop']['first'] = false;
  2368.             if (isset($context['loop']['length'])) {
  2369.                 --$context['loop']['revindex0'];
  2370.                 --$context['loop']['revindex'];
  2371.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  2372.             }
  2373.         }
  2374.         $_parent $context['_parent'];
  2375.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['channel'], $context['_parent'], $context['loop']);
  2376.         $context array_intersect_key($context$_parent) + $_parent;
  2377.         // line 757
  2378.         echo "                ";
  2379.         
  2380.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  2381.         
  2382.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  2383.     }
  2384.     public function getTemplateName()
  2385.     {
  2386.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  2387.     }
  2388.     public function isTraitable()
  2389.     {
  2390.         return false;
  2391.     }
  2392.     public function getDebugInfo()
  2393.     {
  2394.         return array (  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  2395.     }
  2396.     public function getSourceContext()
  2397.     {
  2398.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  2399. {% do dom_title_section('Messages') %}
  2400. {% block wrap %}content__area--uilib reports{% endblock %}
  2401. {% block header %}
  2402.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  2403.         title: message.title,
  2404.         back: {
  2405.             text: 'Back to Messages',
  2406.             link: path('app.notifications.dashboard.messages.main'),
  2407.         },
  2408.     } %}
  2409.         {% block actions %}
  2410.             {% include '@ui2022/button--a.html.twig' with {
  2411.                 text: 'Clone message',
  2412.                 link: path('app.notifications.dashboard.messages.create', {
  2413.                     clone: message.id,
  2414.                 }),
  2415.                 styles: 'gray',
  2416.             } %}
  2417.         {% endblock %}
  2418.     {% endembed %}
  2419. {% endblock %}
  2420. {% block content %}
  2421.     {% if not message.firstJob %}
  2422.         <div class=\"content__data reports__message pt-2\">
  2423.             <div class=\"blockgroup\">
  2424.                 <label class=\"blockgroup__label\">Message</label>
  2425.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  2426.             </div>
  2427.         </div>
  2428.     {% else %}
  2429.         {% set stats = message.firstJob.summarize %}
  2430.         <div class=\"content__data reports__message pt-2\">
  2431.             {% embed '@ui2022/tabs--static.html.twig' with {
  2432.                 items: [
  2433.                     {
  2434.                         text: 'Summary',
  2435.                         link: path('app.notifications.dashboard.messages.report', {
  2436.                             message: message.id,
  2437.                         }),
  2438.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  2439.                     },
  2440.                     {
  2441.                         text: 'Logs',
  2442.                         link: path('app.notifications.dashboard.messages.logs', {
  2443.                             message: message.id,
  2444.                         }),
  2445.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  2446.                     },
  2447.                     {
  2448.                         text: 'Debugging',
  2449.                         link: path('app.notifications.dashboard.messages.debugging', {
  2450.                             message: message.id,
  2451.                         }),
  2452.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  2453.                     },
  2454.                     {
  2455.                         text: 'Details',
  2456.                         link: path('app.notifications.dashboard.messages.details', {
  2457.                             message: message.id,
  2458.                         }),
  2459.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  2460.                     },
  2461.                 ],
  2462.             } %}
  2463.                 {% block tab %}
  2464.                     {% include '@ui2022/subheader.html.twig' with {
  2465.                         title: 'Summary',
  2466.                         classes: 'mt-4 pt-4',
  2467.                     } %}
  2468.                     <div class=\"three-column-section\">
  2469.                         <div class=\"three-column-inner-section\">
  2470.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  2471.                                 title: 'Sent',
  2472.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  2473.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  2474.                                 label: 'Contacts',
  2475.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  2476.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  2477.                                         message: message.id,
  2478.                                         query: {
  2479.                                             filter: 'all',
  2480.                                             state: 'all',
  2481.                                             sort: 'timestamp',
  2482.                                             direction: 'DESC'
  2483.                                         }
  2484.                                     })
  2485.                                     : null,
  2486.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  2487.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  2488.                             } %}
  2489.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  2490.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  2491.                                 title: message.sending ? 'Running' : 'Completed',
  2492.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  2493.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  2494.                                 label: interval[1]|default(''),
  2495.                             } %}
  2496.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  2497.                                 title: 'Errors',
  2498.                                 subtitle: 'Message not delivered',
  2499.                                 value: stats.all.failed|number_format,
  2500.                                 label: 'Contacts',
  2501.                                 link: (stats.all.failed > 0)
  2502.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  2503.                                         message: message.id,
  2504.                                         query: {
  2505.                                             filter: 'all',
  2506.                                             state: 'failed',
  2507.                                             sort: 'timestamp',
  2508.                                             direction: 'DESC'
  2509.                                         }
  2510.                                     })
  2511.                                     : null,
  2512.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  2513.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  2514.                             } %}
  2515.                         </div>
  2516.                     </div>
  2517.                     <div class=\"section__infostats mb-4\">
  2518.                         <div class=\"card card__charts\">
  2519.                             <div class=\"row row-10\">
  2520.                                 <div class=\"col-12 col-md-6\">
  2521.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  2522.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  2523.                                         {% include '@ui2022/chart--donut.html.twig' with {
  2524.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  2525.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  2526.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  2527.                                             }),
  2528.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  2529.                                             label: 'Total contacts',
  2530.                                         } %}
  2531.                                     </div>
  2532.                                 </div>
  2533.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  2534.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  2535.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  2536.                                         <div class=\"targetlist\">
  2537.                                             {% if message.lists|length %}
  2538.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  2539.                                                     title: 'Contact lists',
  2540.                                                     icon: 'icon-contact-reachable',
  2541.                                                     items: message.lists|map((list) => {
  2542.                                                         text: list.name,
  2543.                                                         link: path('app.notifications.dashboard.lists.view', {
  2544.                                                             list: list.id,
  2545.                                                         }),
  2546.                                                     }),
  2547.                                                 } %}
  2548.                                             {% endif %}
  2549.                                             {% if message.facebookSocialAccounts|length %}
  2550.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  2551.                                                     title: 'Facebook pages',
  2552.                                                     icon: 'icon-facebook-fill',
  2553.                                                     items: message.facebookSocialAccounts|map((social) => {
  2554.                                                         text: social.name,
  2555.                                                         target: '_blank',
  2556.                                                         link: 'https://www.facebook.com/%s'|format(
  2557.                                                             social.facebookPageId,
  2558.                                                         ),
  2559.                                                     }),
  2560.                                                 } %}
  2561.                                             {% endif %}
  2562.                                             {% if message.twitterSocialAccounts|length %}
  2563.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  2564.                                                     title: 'Twitter profiles',
  2565.                                                     icon: 'icon-twitter-fill',
  2566.                                                     items: message.twitterSocialAccounts|map((social) => {
  2567.                                                         text: social.name,
  2568.                                                         target: '_blank',
  2569.                                                         link: 'https://www.twitter.com/%s'|format(
  2570.                                                             social.twitterUserName,
  2571.                                                         ),
  2572.                                                     }),
  2573.                                                 } %}
  2574.                                             {% endif %}
  2575.                                             {% if message.instagramSocialAccounts|length %}
  2576.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  2577.                                                     title: 'Instagram accounts',
  2578.                                                     icon: 'fab fa-instagram',
  2579.                                                     items: message.instagramSocialAccounts|map((social) => {
  2580.                                                         text: social.name,
  2581.                                                         target: '_blank',
  2582.                                                         link: 'https://www.instagram.com/%s'|format(
  2583.                                                             social.name,
  2584.                                                         ),
  2585.                                                     }),
  2586.                                                 } %}
  2587.                                             {% endif %}
  2588.                                             {% if message.websiteDepartments|length %}
  2589.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  2590.                                                     title: 'Website departments',
  2591.                                                     icon: 'icon-website',
  2592.                                                     items: message.websiteDepartments|map((department) => {
  2593.                                                         text: department.name,
  2594.                                                         target: '_blank',
  2595.                                                         link: web_url_catchall(department, '/'),
  2596.                                                     }),
  2597.                                                 } %}
  2598.                                             {% endif %}
  2599.                                         </div>
  2600.                                     </div>
  2601.                                 {% endif %}
  2602.                             </div>
  2603.                         </div>
  2604.                     </div>
  2605.                     {% for channel in message.usedChannels(true) %}
  2606.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  2607.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  2608.                                 icon: 'icon-activity-mail',
  2609.                                 title: 'Email',
  2610.                                 stats: [
  2611.                                     {
  2612.                                         label: 'Total sent',
  2613.                                         value: message.firstJob.emailSucceeded|number_format,
  2614.                                         link: (message.firstJob.emailSucceeded > 0)
  2615.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2616.                                                 message: message.id,
  2617.                                                 query: {
  2618.                                                     filter: 'email',
  2619.                                                     sort: 'timestamp',
  2620.                                                     direction: 'DESC'
  2621.                                                 }
  2622.                                             })
  2623.                                             : null,
  2624.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  2625.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  2626.                                     },
  2627.                                     {
  2628.                                         label: 'Delivery verified',
  2629.                                         value: message.firstJob.emailDelivered|number_format,
  2630.                                         link: (message.firstJob.emailDelivered > 0)
  2631.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2632.                                                 message: message.id,
  2633.                                                 query: {
  2634.                                                     filter: 'email',
  2635.                                                     state: 'completed',
  2636.                                                     sort: 'timestamp',
  2637.                                                     direction: 'DESC'
  2638.                                                 }
  2639.                                             })
  2640.                                             : null,
  2641.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  2642.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  2643.                                     },
  2644.                                     {
  2645.                                         label: 'Bounces',
  2646.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  2647.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  2648.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2649.                                                 message: message.id,
  2650.                                                 query: {
  2651.                                                     filter: 'email',
  2652.                                                     state: 'failed',
  2653.                                                     sort: 'timestamp',
  2654.                                                     direction: 'DESC'
  2655.                                                 }
  2656.                                             })
  2657.                                             : null,
  2658.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  2659.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  2660.                                     },
  2661.                                     {
  2662.                                         label: 'Open rate',
  2663.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  2664.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  2665.                                     },
  2666.                                 ],
  2667.                             } %}
  2668.                                 {% block content %}
  2669.                                     <table class=\"table-clear border-0 text-gray-dark\">
  2670.                                         <tbody>
  2671.                                             <tr>
  2672.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  2673.                                                 <td class=\"pb-3 pb-sm-2\">
  2674.                                                     <span>{{ message.emailSubject }}</span>
  2675.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  2676.                                                 </td>
  2677.                                             </tr>
  2678.                                             <tr>
  2679.                                                 <td class=\"text-semibold pr-3\">From:</td>
  2680.                                                 <td>
  2681.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  2682.                                                 </td>
  2683.                                             </tr>
  2684.                                         </tbody>
  2685.                                     </table>
  2686.                                 {% endblock %}
  2687.                             {% endembed %}
  2688.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  2689.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  2690.                                 icon: 'icon-activity-text',
  2691.                                 title: 'SMS',
  2692.                                 stats: [
  2693.                                     {
  2694.                                         label: 'Total sent',
  2695.                                         value: message.firstJob.smsSucceeded|number_format,
  2696.                                         link: (message.firstJob.smsSucceeded > 0)
  2697.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2698.                                                 message: message.id,
  2699.                                                 query: {
  2700.                                                     filter: 'sms',
  2701.                                                     state: 'all',
  2702.                                                     sort: 'timestamp',
  2703.                                                     direction: 'DESC'
  2704.                                                 }
  2705.                                             })
  2706.                                             : null,
  2707.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  2708.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  2709.                                     },
  2710.                                     {
  2711.                                         label: 'Delivery verified',
  2712.                                         value: message.firstJob.smsDelivered|number_format,
  2713.                                         link: (message.firstJob.smsDelivered > 0)
  2714.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2715.                                                 message: message.id,
  2716.                                                 query: {
  2717.                                                     filter: 'sms',
  2718.                                                     state: 'completed',
  2719.                                                     sort: 'timestamp',
  2720.                                                     direction: 'DESC'
  2721.                                                 }
  2722.                                             })
  2723.                                             : null,
  2724.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  2725.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  2726.                                     },
  2727.                                     {
  2728.                                         label: 'Bounces',
  2729.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  2730.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  2731.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2732.                                                 message: message.id,
  2733.                                                 query: {
  2734.                                                     filter: 'sms',
  2735.                                                     state: 'failed',
  2736.                                                     sort: 'timestamp',
  2737.                                                     direction: 'DESC'
  2738.                                                 }
  2739.                                             })
  2740.                                             : null,
  2741.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  2742.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  2743.                                     },
  2744.                                 ],
  2745.                             } %}
  2746.                                 {% block content %}
  2747.                                     <table class=\"table-clear border-0 text-gray-dark\">
  2748.                                         <tbody>
  2749.                                             <tr>
  2750.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  2751.                                                 <td class=\"pb-3 pb-sm-2\">
  2752.                                                     <span>{{ message.smsText }}</span>
  2753.                                                     {% if message.smsUrl %}
  2754.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  2755.                                                     {% endif %}
  2756.                                                 </td>
  2757.                                             </tr>
  2758.                                             <tr>
  2759.                                                 <td class=\"text-semibold pr-3\">From:</td>
  2760.                                                 <td>
  2761.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  2762.                                                 </td>
  2763.                                             </tr>
  2764.                                         </tbody>
  2765.                                     </table>
  2766.                                 {% endblock %}
  2767.                             {% endembed %}
  2768.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  2769.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  2770.                                 icon: 'icon-activity-voice',
  2771.                                 title: 'Phone',
  2772.                                 stats: [
  2773.                                     {
  2774.                                         label: 'Total sent',
  2775.                                         value: message.firstJob.voiceSucceeded|number_format,
  2776.                                         link: (message.firstJob.voiceSucceeded > 0)
  2777.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2778.                                                 message: message.id,
  2779.                                                 query: {
  2780.                                                     filter: 'voice',
  2781.                                                     state: 'all',
  2782.                                                     sort: 'timestamp',
  2783.                                                     direction: 'DESC'
  2784.                                                 }
  2785.                                             })
  2786.                                             : null,
  2787.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  2788.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  2789.                                     },
  2790.                                     {
  2791.                                         label: 'Delivery verified',
  2792.                                         value: message.firstJob.voiceDelivered|number_format,
  2793.                                         link: (message.firstJob.voiceDelivered > 0)
  2794.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2795.                                                 message: message.id,
  2796.                                                 query: {
  2797.                                                     filter: 'voice',
  2798.                                                     state: 'completed',
  2799.                                                     sort: 'timestamp',
  2800.                                                     direction: 'DESC'
  2801.                                                 }
  2802.                                             })
  2803.                                             : null,
  2804.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  2805.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  2806.                                     },
  2807.                                     {
  2808.                                         label: 'Bounces',
  2809.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  2810.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  2811.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2812.                                                 message: message.id,
  2813.                                                 query: {
  2814.                                                     filter: 'voice',
  2815.                                                     state: 'failed',
  2816.                                                     sort: 'timestamp',
  2817.                                                     direction: 'DESC'
  2818.                                                 }
  2819.                                             })
  2820.                                             : null,
  2821.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  2822.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  2823.                                     },
  2824.                                     {
  2825.                                         label: 'Answer rate',
  2826.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  2827.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  2828.                                     },
  2829.                                 ],
  2830.                             } %}
  2831.                                 {% block content %}
  2832.                                     <table class=\"table-clear border-0 text-gray-dark\">
  2833.                                         <tbody>
  2834.                                             <tr>
  2835.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  2836.                                                 <td class=\"pb-3 pb-sm-2\">
  2837.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  2838.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  2839.                                                         Your browser does not support the audio element.
  2840.                                                     </audio>
  2841.                                                 </td>
  2842.                                             </tr>
  2843.                                             <tr>
  2844.                                                 <td class=\"text-semibold pr-3\">From:</td>
  2845.                                                 <td>
  2846.                                                     <span class=\"emailid\">
  2847.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  2848.                                                     </span>
  2849.                                                 </td>
  2850.                                             </tr>
  2851.                                         </tbody>
  2852.                                     </table>
  2853.                                 {% endblock %}
  2854.                             {% endembed %}
  2855.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  2856.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  2857.                                 icon: 'icon-deviceapp',
  2858.                                 title: 'Mobile app',
  2859.                                 stats: [
  2860.                                     {
  2861.                                         label: 'Total sent',
  2862.                                         value: message.firstJob.appSucceeded|number_format,
  2863.                                         link: (message.firstJob.appSucceeded > 0)
  2864.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2865.                                                 message: message.id,
  2866.                                                 query: {
  2867.                                                     filter: 'app',
  2868.                                                     state: 'pending',
  2869.                                                     sort: 'timestamp',
  2870.                                                     direction: 'DESC'
  2871.                                                 }
  2872.                                             })
  2873.                                             : null,
  2874.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  2875.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  2876.                                     },
  2877.                                     {
  2878.                                         label: 'Delivery verified',
  2879.                                         value: message.firstJob.appDelivered|number_format,
  2880.                                     },
  2881.                                     {
  2882.                                         label: 'Bounces',
  2883.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  2884.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  2885.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2886.                                                 message: message.id,
  2887.                                                 query: {
  2888.                                                     filter: 'app',
  2889.                                                     state: 'failed',
  2890.                                                     sort: 'timestamp',
  2891.                                                     direction: 'DESC'
  2892.                                                 }
  2893.                                             })
  2894.                                             : null,
  2895.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  2896.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  2897.                                     },
  2898.                                 ],
  2899.                             } %}
  2900.                                 {% block content %}
  2901.                                     <table class=\"table-clear border-0 text-gray-dark\">
  2902.                                         <tbody>
  2903.                                             <tr>
  2904.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  2905.                                                 <td class=\"pb-3 pb-sm-2\">
  2906.                                                     <span>{{ message.appTitle }}</span>
  2907.                                                 </td>
  2908.                                             </tr>
  2909.                                         </tbody>
  2910.                                     </table>
  2911.                                 {% endblock %}
  2912.                             {% endembed %}
  2913.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  2914.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  2915.                                 icon: 'icon-facebook-fill',
  2916.                                 title: 'Facebook',
  2917.                                 stats: [
  2918.                                     {
  2919.                                         label: 'Total posts',
  2920.                                         value: message.firstJob.facebookTotal|number_format,
  2921.                                         link: (message.firstJob.facebookTotal > 0)
  2922.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2923.                                                 message: message.id,
  2924.                                                 query: {
  2925.                                                     filter: 'facebook',
  2926.                                                     state: 'all',
  2927.                                                     sort: 'timestamp',
  2928.                                                     direction: 'DESC'
  2929.                                                 }
  2930.                                             })
  2931.                                             : null,
  2932.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  2933.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  2934.                                     },
  2935.                                     {
  2936.                                         label: 'Successful posts',
  2937.                                         value: message.firstJob.facebookSucceeded|number_format,
  2938.                                         link: (message.firstJob.facebookSucceeded > 0)
  2939.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2940.                                                 message: message.id,
  2941.                                                 query: {
  2942.                                                     filter: 'facebook',
  2943.                                                     state: 'completed',
  2944.                                                     sort: 'timestamp',
  2945.                                                     direction: 'DESC'
  2946.                                                 }
  2947.                                             })
  2948.                                             : null,
  2949.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  2950.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  2951.                                     },
  2952.                                     {
  2953.                                         label: 'Errors',
  2954.                                         value: message.firstJob.facebookFailed|number_format,
  2955.                                         link: (message.firstJob.facebookFailed > 0)
  2956.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2957.                                                 message: message.id,
  2958.                                                 query: {
  2959.                                                     filter: 'facebook',
  2960.                                                     state: 'failed',
  2961.                                                     sort: 'timestamp',
  2962.                                                     direction: 'DESC'
  2963.                                                 }
  2964.                                             })
  2965.                                             : null,
  2966.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  2967.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  2968.                                     },
  2969.                                 ],
  2970.                             } %}{% endembed %}
  2971.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  2972.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  2973.                                 icon: 'icon-twitter-fill',
  2974.                                 title: 'Twitter',
  2975.                                 stats: [
  2976.                                     {
  2977.                                         label: 'Total posts',
  2978.                                         value: message.firstJob.twitterTotal|number_format,
  2979.                                         link: (message.firstJob.twitterTotal > 0)
  2980.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2981.                                                 message: message.id,
  2982.                                                 query: {
  2983.                                                     filter: 'twitter',
  2984.                                                     state: 'all',
  2985.                                                     sort: 'timestamp',
  2986.                                                     direction: 'DESC'
  2987.                                                 }
  2988.                                             })
  2989.                                             : null,
  2990.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  2991.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  2992.                                     },
  2993.                                     {
  2994.                                         label: 'Successful posts',
  2995.                                         value: message.firstJob.twitterSucceeded|number_format,
  2996.                                         link: (message.firstJob.twitterSucceeded > 0)
  2997.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  2998.                                                 message: message.id,
  2999.                                                 query: {
  3000.                                                     filter: 'twitter',
  3001.                                                     state: 'completed',
  3002.                                                     sort: 'timestamp',
  3003.                                                     direction: 'DESC'
  3004.                                                 }
  3005.                                             })
  3006.                                             : null,
  3007.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  3008.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  3009.                                     },
  3010.                                     {
  3011.                                         label: 'Errors',
  3012.                                         value: message.firstJob.twitterFailed|number_format,
  3013.                                         link: (message.firstJob.twitterFailed > 0)
  3014.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3015.                                                 message: message.id,
  3016.                                                 query: {
  3017.                                                     filter: 'twitter',
  3018.                                                     state: 'failed',
  3019.                                                     sort: 'timestamp',
  3020.                                                     direction: 'DESC'
  3021.                                                 }
  3022.                                             })
  3023.                                             : null,
  3024.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  3025.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  3026.                                     },
  3027.                                 ],
  3028.                             } %}{% endembed %}
  3029.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  3030.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  3031.                                 icon: 'fab fa-instagram',
  3032.                                 title: 'Instagram',
  3033.                                 stats: [
  3034.                                     {
  3035.                                         label: 'Total posts',
  3036.                                         value: message.firstJob.instagramTotal|number_format,
  3037.                                         link: (message.firstJob.instagramTotal > 0)
  3038.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3039.                                                 message: message.id,
  3040.                                                 query: {
  3041.                                                     filter: 'instagram',
  3042.                                                     state: 'all',
  3043.                                                     sort: 'timestamp',
  3044.                                                     direction: 'DESC'
  3045.                                                 }
  3046.                                             })
  3047.                                             : null,
  3048.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  3049.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  3050.                                     },
  3051.                                     {
  3052.                                         label: 'Successful posts',
  3053.                                         value: message.firstJob.instagramSucceeded|number_format,
  3054.                                         link: (message.firstJob.instagramSucceeded > 0)
  3055.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3056.                                                 message: message.id,
  3057.                                                 query: {
  3058.                                                     filter: 'instagram',
  3059.                                                     state: 'completed',
  3060.                                                     sort: 'timestamp',
  3061.                                                     direction: 'DESC'
  3062.                                                 }
  3063.                                             })
  3064.                                             : null,
  3065.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  3066.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  3067.                                     },
  3068.                                     {
  3069.                                         label: 'Errors',
  3070.                                         value: message.firstJob.instagramFailed|number_format,
  3071.                                         link: (message.firstJob.instagramFailed > 0)
  3072.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3073.                                                 message: message.id,
  3074.                                                 query: {
  3075.                                                     filter: 'instagram',
  3076.                                                     state: 'failed',
  3077.                                                     sort: 'timestamp',
  3078.                                                     direction: 'DESC'
  3079.                                                 }
  3080.                                             })
  3081.                                             : null,
  3082.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  3083.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  3084.                                     },
  3085.                                 ],
  3086.                             } %}{% endembed %}
  3087.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  3088.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  3089.                                 icon: 'icon-website',
  3090.                                 title: 'Website',
  3091.                                 stats: [
  3092.                                     {
  3093.                                         label: 'Total posts',
  3094.                                         value: message.firstJob.websiteTotal|number_format,
  3095.                                         link: (message.firstJob.websiteTotal > 0)
  3096.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3097.                                                 message: message.id,
  3098.                                                 query: {
  3099.                                                     filter: 'website',
  3100.                                                     state: 'all',
  3101.                                                     sort: 'timestamp',
  3102.                                                     direction: 'DESC'
  3103.                                                 }
  3104.                                             })
  3105.                                             : null,
  3106.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  3107.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  3108.                                     },
  3109.                                     {
  3110.                                         label: 'Successful posts',
  3111.                                         value: message.firstJob.websiteSucceeded|number_format,
  3112.                                         link: (message.firstJob.websiteSucceeded > 0)
  3113.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3114.                                                 message: message.id,
  3115.                                                 query: {
  3116.                                                     filter: 'website',
  3117.                                                     state: 'completed',
  3118.                                                     sort: 'timestamp',
  3119.                                                     direction: 'DESC'
  3120.                                                 }
  3121.                                             })
  3122.                                             : null,
  3123.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  3124.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  3125.                                     },
  3126.                                     {
  3127.                                         label: 'Errors',
  3128.                                         value: message.firstJob.websiteFailed|number_format,
  3129.                                         link: (message.firstJob.websiteFailed > 0)
  3130.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3131.                                                 message: message.id,
  3132.                                                 query: {
  3133.                                                     filter: 'website',
  3134.                                                     state: 'failed',
  3135.                                                     sort: 'timestamp',
  3136.                                                     direction: 'DESC'
  3137.                                                 }
  3138.                                             })
  3139.                                             : null,
  3140.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  3141.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  3142.                                     },
  3143.                                 ],
  3144.                             } %}{% endembed %}
  3145.                         {% endif %}
  3146.                     {% endfor %}
  3147.                 {% endblock %}
  3148.             {% endembed %}
  3149.         </div>
  3150.     {% endif %}
  3151. {% endblock %}
  3152. {% block modals %}
  3153.     {{ parent() }}
  3154.     {% embed '@ui2022/modal.html.twig' with {
  3155.         attr: {
  3156.             id: 'modal__email_preview',
  3157.         },
  3158.     } %}
  3159.         {% block content %}
  3160.             {% embed '@ui2022/modal__content.html.twig' with {
  3161.                 title: 'Email Preview',
  3162.             } %}
  3163.                 {% block body %}
  3164.                     <iframe
  3165.                         id=\"preview-email-iframe\"
  3166.                         loading=\"lazy\"
  3167.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  3168.                         frameborder=\"0\"
  3169.                         style=\"width: 100%; height: 500px\"
  3170.                     >
  3171.                     </iframe>
  3172.                 {% endblock %}
  3173.             {% endembed %}
  3174.         {% endblock %}
  3175.     {% endembed %}
  3176.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  3177.         attr: {
  3178.             id: 'sidepanel__filtered_logs',
  3179.         },
  3180.     } %}
  3181.     <script type=\"text/javascript\">
  3182.         (function (window, document, \$, undefined) {
  3183.             \$(function () {
  3184.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  3185.                     const pageHeight = \$(window).height();
  3186.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  3187.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  3188.                 });
  3189.             });
  3190.         })(window, document, jQuery);
  3191.     </script>
  3192. {% endblock %}
  3193. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  3194.     }
  3195. }
  3196. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  3197. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___1040482493 extends \Twig\Template
  3198. {
  3199.     private $source;
  3200.     private $macros = [];
  3201.     public function __construct(Environment $env)
  3202.     {
  3203.         parent::__construct($env);
  3204.         $this->source $this->getSourceContext();
  3205.         $this->blocks = [
  3206.             'content' => [$this'block_content'],
  3207.         ];
  3208.     }
  3209.     protected function doGetParent(array $context)
  3210.     {
  3211.         // line 217
  3212.         return "@ui2022/card__deliverymethods.html.twig";
  3213.     }
  3214.     protected function doDisplay(array $context, array $blocks = [])
  3215.     {
  3216.         $macros $this->macros;
  3217.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  3218.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  3219.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  3220.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  3221.         $this->parent $this->loadTemplate("@ui2022/card__deliverymethods.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"217);
  3222.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  3223.         
  3224.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  3225.         
  3226.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  3227.     }
  3228.     // line 278
  3229.     public function block_content($context, array $blocks = [])
  3230.     {
  3231.         $macros $this->macros;
  3232.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  3233.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  3234.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  3235.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  3236.         // line 279
  3237.         echo "                                    <table class=\"table-clear border-0 text-gray-dark\">
  3238.                                         <tbody>
  3239.                                             <tr>
  3240.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  3241.                                                 <td class=\"pb-3 pb-sm-2\">
  3242.                                                     <span>";
  3243.         // line 284
  3244.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'284$this->source); })()), "emailSubject", [], "any"falsefalsefalse284), "html"nulltrue);
  3245.         echo "</span>
  3246.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  3247.                                                 </td>
  3248.                                             </tr>
  3249.                                             <tr>
  3250.                                                 <td class=\"text-semibold pr-3\">From:</td>
  3251.                                                 <td>
  3252.                                                     <span class=\"emailid\">";
  3253.         // line 291
  3254.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'291$this->source); })()), "emailName", [], "any"falsefalsefalse291), "html"nulltrue);
  3255.         echo " &lt;";
  3256.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'291$this->source); })()), "emailFrom", [], "any"falsefalsefalse291), "html"nulltrue);
  3257.         echo "&gt;</span>
  3258.                                                 </td>
  3259.                                             </tr>
  3260.                                         </tbody>
  3261.                                     </table>
  3262.                                 ";
  3263.         
  3264.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  3265.         
  3266.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  3267.     }
  3268.     public function getTemplateName()
  3269.     {
  3270.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  3271.     }
  3272.     public function isTraitable()
  3273.     {
  3274.         return false;
  3275.     }
  3276.     public function getDebugInfo()
  3277.     {
  3278.         return array (  3368 => 291,  3358 => 284,  3351 => 279,  3341 => 278,  3318 => 217,  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  3279.     }
  3280.     public function getSourceContext()
  3281.     {
  3282.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  3283. {% do dom_title_section('Messages') %}
  3284. {% block wrap %}content__area--uilib reports{% endblock %}
  3285. {% block header %}
  3286.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  3287.         title: message.title,
  3288.         back: {
  3289.             text: 'Back to Messages',
  3290.             link: path('app.notifications.dashboard.messages.main'),
  3291.         },
  3292.     } %}
  3293.         {% block actions %}
  3294.             {% include '@ui2022/button--a.html.twig' with {
  3295.                 text: 'Clone message',
  3296.                 link: path('app.notifications.dashboard.messages.create', {
  3297.                     clone: message.id,
  3298.                 }),
  3299.                 styles: 'gray',
  3300.             } %}
  3301.         {% endblock %}
  3302.     {% endembed %}
  3303. {% endblock %}
  3304. {% block content %}
  3305.     {% if not message.firstJob %}
  3306.         <div class=\"content__data reports__message pt-2\">
  3307.             <div class=\"blockgroup\">
  3308.                 <label class=\"blockgroup__label\">Message</label>
  3309.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  3310.             </div>
  3311.         </div>
  3312.     {% else %}
  3313.         {% set stats = message.firstJob.summarize %}
  3314.         <div class=\"content__data reports__message pt-2\">
  3315.             {% embed '@ui2022/tabs--static.html.twig' with {
  3316.                 items: [
  3317.                     {
  3318.                         text: 'Summary',
  3319.                         link: path('app.notifications.dashboard.messages.report', {
  3320.                             message: message.id,
  3321.                         }),
  3322.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  3323.                     },
  3324.                     {
  3325.                         text: 'Logs',
  3326.                         link: path('app.notifications.dashboard.messages.logs', {
  3327.                             message: message.id,
  3328.                         }),
  3329.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  3330.                     },
  3331.                     {
  3332.                         text: 'Debugging',
  3333.                         link: path('app.notifications.dashboard.messages.debugging', {
  3334.                             message: message.id,
  3335.                         }),
  3336.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  3337.                     },
  3338.                     {
  3339.                         text: 'Details',
  3340.                         link: path('app.notifications.dashboard.messages.details', {
  3341.                             message: message.id,
  3342.                         }),
  3343.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  3344.                     },
  3345.                 ],
  3346.             } %}
  3347.                 {% block tab %}
  3348.                     {% include '@ui2022/subheader.html.twig' with {
  3349.                         title: 'Summary',
  3350.                         classes: 'mt-4 pt-4',
  3351.                     } %}
  3352.                     <div class=\"three-column-section\">
  3353.                         <div class=\"three-column-inner-section\">
  3354.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  3355.                                 title: 'Sent',
  3356.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  3357.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  3358.                                 label: 'Contacts',
  3359.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  3360.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  3361.                                         message: message.id,
  3362.                                         query: {
  3363.                                             filter: 'all',
  3364.                                             state: 'all',
  3365.                                             sort: 'timestamp',
  3366.                                             direction: 'DESC'
  3367.                                         }
  3368.                                     })
  3369.                                     : null,
  3370.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  3371.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  3372.                             } %}
  3373.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  3374.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  3375.                                 title: message.sending ? 'Running' : 'Completed',
  3376.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  3377.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  3378.                                 label: interval[1]|default(''),
  3379.                             } %}
  3380.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  3381.                                 title: 'Errors',
  3382.                                 subtitle: 'Message not delivered',
  3383.                                 value: stats.all.failed|number_format,
  3384.                                 label: 'Contacts',
  3385.                                 link: (stats.all.failed > 0)
  3386.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  3387.                                         message: message.id,
  3388.                                         query: {
  3389.                                             filter: 'all',
  3390.                                             state: 'failed',
  3391.                                             sort: 'timestamp',
  3392.                                             direction: 'DESC'
  3393.                                         }
  3394.                                     })
  3395.                                     : null,
  3396.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  3397.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  3398.                             } %}
  3399.                         </div>
  3400.                     </div>
  3401.                     <div class=\"section__infostats mb-4\">
  3402.                         <div class=\"card card__charts\">
  3403.                             <div class=\"row row-10\">
  3404.                                 <div class=\"col-12 col-md-6\">
  3405.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  3406.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  3407.                                         {% include '@ui2022/chart--donut.html.twig' with {
  3408.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  3409.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  3410.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  3411.                                             }),
  3412.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  3413.                                             label: 'Total contacts',
  3414.                                         } %}
  3415.                                     </div>
  3416.                                 </div>
  3417.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  3418.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  3419.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  3420.                                         <div class=\"targetlist\">
  3421.                                             {% if message.lists|length %}
  3422.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  3423.                                                     title: 'Contact lists',
  3424.                                                     icon: 'icon-contact-reachable',
  3425.                                                     items: message.lists|map((list) => {
  3426.                                                         text: list.name,
  3427.                                                         link: path('app.notifications.dashboard.lists.view', {
  3428.                                                             list: list.id,
  3429.                                                         }),
  3430.                                                     }),
  3431.                                                 } %}
  3432.                                             {% endif %}
  3433.                                             {% if message.facebookSocialAccounts|length %}
  3434.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  3435.                                                     title: 'Facebook pages',
  3436.                                                     icon: 'icon-facebook-fill',
  3437.                                                     items: message.facebookSocialAccounts|map((social) => {
  3438.                                                         text: social.name,
  3439.                                                         target: '_blank',
  3440.                                                         link: 'https://www.facebook.com/%s'|format(
  3441.                                                             social.facebookPageId,
  3442.                                                         ),
  3443.                                                     }),
  3444.                                                 } %}
  3445.                                             {% endif %}
  3446.                                             {% if message.twitterSocialAccounts|length %}
  3447.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  3448.                                                     title: 'Twitter profiles',
  3449.                                                     icon: 'icon-twitter-fill',
  3450.                                                     items: message.twitterSocialAccounts|map((social) => {
  3451.                                                         text: social.name,
  3452.                                                         target: '_blank',
  3453.                                                         link: 'https://www.twitter.com/%s'|format(
  3454.                                                             social.twitterUserName,
  3455.                                                         ),
  3456.                                                     }),
  3457.                                                 } %}
  3458.                                             {% endif %}
  3459.                                             {% if message.instagramSocialAccounts|length %}
  3460.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  3461.                                                     title: 'Instagram accounts',
  3462.                                                     icon: 'fab fa-instagram',
  3463.                                                     items: message.instagramSocialAccounts|map((social) => {
  3464.                                                         text: social.name,
  3465.                                                         target: '_blank',
  3466.                                                         link: 'https://www.instagram.com/%s'|format(
  3467.                                                             social.name,
  3468.                                                         ),
  3469.                                                     }),
  3470.                                                 } %}
  3471.                                             {% endif %}
  3472.                                             {% if message.websiteDepartments|length %}
  3473.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  3474.                                                     title: 'Website departments',
  3475.                                                     icon: 'icon-website',
  3476.                                                     items: message.websiteDepartments|map((department) => {
  3477.                                                         text: department.name,
  3478.                                                         target: '_blank',
  3479.                                                         link: web_url_catchall(department, '/'),
  3480.                                                     }),
  3481.                                                 } %}
  3482.                                             {% endif %}
  3483.                                         </div>
  3484.                                     </div>
  3485.                                 {% endif %}
  3486.                             </div>
  3487.                         </div>
  3488.                     </div>
  3489.                     {% for channel in message.usedChannels(true) %}
  3490.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  3491.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  3492.                                 icon: 'icon-activity-mail',
  3493.                                 title: 'Email',
  3494.                                 stats: [
  3495.                                     {
  3496.                                         label: 'Total sent',
  3497.                                         value: message.firstJob.emailSucceeded|number_format,
  3498.                                         link: (message.firstJob.emailSucceeded > 0)
  3499.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3500.                                                 message: message.id,
  3501.                                                 query: {
  3502.                                                     filter: 'email',
  3503.                                                     sort: 'timestamp',
  3504.                                                     direction: 'DESC'
  3505.                                                 }
  3506.                                             })
  3507.                                             : null,
  3508.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  3509.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  3510.                                     },
  3511.                                     {
  3512.                                         label: 'Delivery verified',
  3513.                                         value: message.firstJob.emailDelivered|number_format,
  3514.                                         link: (message.firstJob.emailDelivered > 0)
  3515.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3516.                                                 message: message.id,
  3517.                                                 query: {
  3518.                                                     filter: 'email',
  3519.                                                     state: 'completed',
  3520.                                                     sort: 'timestamp',
  3521.                                                     direction: 'DESC'
  3522.                                                 }
  3523.                                             })
  3524.                                             : null,
  3525.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  3526.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  3527.                                     },
  3528.                                     {
  3529.                                         label: 'Bounces',
  3530.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  3531.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  3532.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3533.                                                 message: message.id,
  3534.                                                 query: {
  3535.                                                     filter: 'email',
  3536.                                                     state: 'failed',
  3537.                                                     sort: 'timestamp',
  3538.                                                     direction: 'DESC'
  3539.                                                 }
  3540.                                             })
  3541.                                             : null,
  3542.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  3543.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  3544.                                     },
  3545.                                     {
  3546.                                         label: 'Open rate',
  3547.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  3548.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  3549.                                     },
  3550.                                 ],
  3551.                             } %}
  3552.                                 {% block content %}
  3553.                                     <table class=\"table-clear border-0 text-gray-dark\">
  3554.                                         <tbody>
  3555.                                             <tr>
  3556.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  3557.                                                 <td class=\"pb-3 pb-sm-2\">
  3558.                                                     <span>{{ message.emailSubject }}</span>
  3559.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  3560.                                                 </td>
  3561.                                             </tr>
  3562.                                             <tr>
  3563.                                                 <td class=\"text-semibold pr-3\">From:</td>
  3564.                                                 <td>
  3565.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  3566.                                                 </td>
  3567.                                             </tr>
  3568.                                         </tbody>
  3569.                                     </table>
  3570.                                 {% endblock %}
  3571.                             {% endembed %}
  3572.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  3573.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  3574.                                 icon: 'icon-activity-text',
  3575.                                 title: 'SMS',
  3576.                                 stats: [
  3577.                                     {
  3578.                                         label: 'Total sent',
  3579.                                         value: message.firstJob.smsSucceeded|number_format,
  3580.                                         link: (message.firstJob.smsSucceeded > 0)
  3581.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3582.                                                 message: message.id,
  3583.                                                 query: {
  3584.                                                     filter: 'sms',
  3585.                                                     state: 'all',
  3586.                                                     sort: 'timestamp',
  3587.                                                     direction: 'DESC'
  3588.                                                 }
  3589.                                             })
  3590.                                             : null,
  3591.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  3592.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  3593.                                     },
  3594.                                     {
  3595.                                         label: 'Delivery verified',
  3596.                                         value: message.firstJob.smsDelivered|number_format,
  3597.                                         link: (message.firstJob.smsDelivered > 0)
  3598.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3599.                                                 message: message.id,
  3600.                                                 query: {
  3601.                                                     filter: 'sms',
  3602.                                                     state: 'completed',
  3603.                                                     sort: 'timestamp',
  3604.                                                     direction: 'DESC'
  3605.                                                 }
  3606.                                             })
  3607.                                             : null,
  3608.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  3609.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  3610.                                     },
  3611.                                     {
  3612.                                         label: 'Bounces',
  3613.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  3614.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  3615.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3616.                                                 message: message.id,
  3617.                                                 query: {
  3618.                                                     filter: 'sms',
  3619.                                                     state: 'failed',
  3620.                                                     sort: 'timestamp',
  3621.                                                     direction: 'DESC'
  3622.                                                 }
  3623.                                             })
  3624.                                             : null,
  3625.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  3626.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  3627.                                     },
  3628.                                 ],
  3629.                             } %}
  3630.                                 {% block content %}
  3631.                                     <table class=\"table-clear border-0 text-gray-dark\">
  3632.                                         <tbody>
  3633.                                             <tr>
  3634.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  3635.                                                 <td class=\"pb-3 pb-sm-2\">
  3636.                                                     <span>{{ message.smsText }}</span>
  3637.                                                     {% if message.smsUrl %}
  3638.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  3639.                                                     {% endif %}
  3640.                                                 </td>
  3641.                                             </tr>
  3642.                                             <tr>
  3643.                                                 <td class=\"text-semibold pr-3\">From:</td>
  3644.                                                 <td>
  3645.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  3646.                                                 </td>
  3647.                                             </tr>
  3648.                                         </tbody>
  3649.                                     </table>
  3650.                                 {% endblock %}
  3651.                             {% endembed %}
  3652.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  3653.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  3654.                                 icon: 'icon-activity-voice',
  3655.                                 title: 'Phone',
  3656.                                 stats: [
  3657.                                     {
  3658.                                         label: 'Total sent',
  3659.                                         value: message.firstJob.voiceSucceeded|number_format,
  3660.                                         link: (message.firstJob.voiceSucceeded > 0)
  3661.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3662.                                                 message: message.id,
  3663.                                                 query: {
  3664.                                                     filter: 'voice',
  3665.                                                     state: 'all',
  3666.                                                     sort: 'timestamp',
  3667.                                                     direction: 'DESC'
  3668.                                                 }
  3669.                                             })
  3670.                                             : null,
  3671.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  3672.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  3673.                                     },
  3674.                                     {
  3675.                                         label: 'Delivery verified',
  3676.                                         value: message.firstJob.voiceDelivered|number_format,
  3677.                                         link: (message.firstJob.voiceDelivered > 0)
  3678.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3679.                                                 message: message.id,
  3680.                                                 query: {
  3681.                                                     filter: 'voice',
  3682.                                                     state: 'completed',
  3683.                                                     sort: 'timestamp',
  3684.                                                     direction: 'DESC'
  3685.                                                 }
  3686.                                             })
  3687.                                             : null,
  3688.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  3689.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  3690.                                     },
  3691.                                     {
  3692.                                         label: 'Bounces',
  3693.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  3694.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  3695.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3696.                                                 message: message.id,
  3697.                                                 query: {
  3698.                                                     filter: 'voice',
  3699.                                                     state: 'failed',
  3700.                                                     sort: 'timestamp',
  3701.                                                     direction: 'DESC'
  3702.                                                 }
  3703.                                             })
  3704.                                             : null,
  3705.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  3706.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  3707.                                     },
  3708.                                     {
  3709.                                         label: 'Answer rate',
  3710.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  3711.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  3712.                                     },
  3713.                                 ],
  3714.                             } %}
  3715.                                 {% block content %}
  3716.                                     <table class=\"table-clear border-0 text-gray-dark\">
  3717.                                         <tbody>
  3718.                                             <tr>
  3719.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  3720.                                                 <td class=\"pb-3 pb-sm-2\">
  3721.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  3722.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  3723.                                                         Your browser does not support the audio element.
  3724.                                                     </audio>
  3725.                                                 </td>
  3726.                                             </tr>
  3727.                                             <tr>
  3728.                                                 <td class=\"text-semibold pr-3\">From:</td>
  3729.                                                 <td>
  3730.                                                     <span class=\"emailid\">
  3731.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  3732.                                                     </span>
  3733.                                                 </td>
  3734.                                             </tr>
  3735.                                         </tbody>
  3736.                                     </table>
  3737.                                 {% endblock %}
  3738.                             {% endembed %}
  3739.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  3740.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  3741.                                 icon: 'icon-deviceapp',
  3742.                                 title: 'Mobile app',
  3743.                                 stats: [
  3744.                                     {
  3745.                                         label: 'Total sent',
  3746.                                         value: message.firstJob.appSucceeded|number_format,
  3747.                                         link: (message.firstJob.appSucceeded > 0)
  3748.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3749.                                                 message: message.id,
  3750.                                                 query: {
  3751.                                                     filter: 'app',
  3752.                                                     state: 'pending',
  3753.                                                     sort: 'timestamp',
  3754.                                                     direction: 'DESC'
  3755.                                                 }
  3756.                                             })
  3757.                                             : null,
  3758.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  3759.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  3760.                                     },
  3761.                                     {
  3762.                                         label: 'Delivery verified',
  3763.                                         value: message.firstJob.appDelivered|number_format,
  3764.                                     },
  3765.                                     {
  3766.                                         label: 'Bounces',
  3767.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  3768.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  3769.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3770.                                                 message: message.id,
  3771.                                                 query: {
  3772.                                                     filter: 'app',
  3773.                                                     state: 'failed',
  3774.                                                     sort: 'timestamp',
  3775.                                                     direction: 'DESC'
  3776.                                                 }
  3777.                                             })
  3778.                                             : null,
  3779.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  3780.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  3781.                                     },
  3782.                                 ],
  3783.                             } %}
  3784.                                 {% block content %}
  3785.                                     <table class=\"table-clear border-0 text-gray-dark\">
  3786.                                         <tbody>
  3787.                                             <tr>
  3788.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  3789.                                                 <td class=\"pb-3 pb-sm-2\">
  3790.                                                     <span>{{ message.appTitle }}</span>
  3791.                                                 </td>
  3792.                                             </tr>
  3793.                                         </tbody>
  3794.                                     </table>
  3795.                                 {% endblock %}
  3796.                             {% endembed %}
  3797.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  3798.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  3799.                                 icon: 'icon-facebook-fill',
  3800.                                 title: 'Facebook',
  3801.                                 stats: [
  3802.                                     {
  3803.                                         label: 'Total posts',
  3804.                                         value: message.firstJob.facebookTotal|number_format,
  3805.                                         link: (message.firstJob.facebookTotal > 0)
  3806.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3807.                                                 message: message.id,
  3808.                                                 query: {
  3809.                                                     filter: 'facebook',
  3810.                                                     state: 'all',
  3811.                                                     sort: 'timestamp',
  3812.                                                     direction: 'DESC'
  3813.                                                 }
  3814.                                             })
  3815.                                             : null,
  3816.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  3817.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  3818.                                     },
  3819.                                     {
  3820.                                         label: 'Successful posts',
  3821.                                         value: message.firstJob.facebookSucceeded|number_format,
  3822.                                         link: (message.firstJob.facebookSucceeded > 0)
  3823.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3824.                                                 message: message.id,
  3825.                                                 query: {
  3826.                                                     filter: 'facebook',
  3827.                                                     state: 'completed',
  3828.                                                     sort: 'timestamp',
  3829.                                                     direction: 'DESC'
  3830.                                                 }
  3831.                                             })
  3832.                                             : null,
  3833.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  3834.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  3835.                                     },
  3836.                                     {
  3837.                                         label: 'Errors',
  3838.                                         value: message.firstJob.facebookFailed|number_format,
  3839.                                         link: (message.firstJob.facebookFailed > 0)
  3840.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3841.                                                 message: message.id,
  3842.                                                 query: {
  3843.                                                     filter: 'facebook',
  3844.                                                     state: 'failed',
  3845.                                                     sort: 'timestamp',
  3846.                                                     direction: 'DESC'
  3847.                                                 }
  3848.                                             })
  3849.                                             : null,
  3850.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  3851.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  3852.                                     },
  3853.                                 ],
  3854.                             } %}{% endembed %}
  3855.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  3856.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  3857.                                 icon: 'icon-twitter-fill',
  3858.                                 title: 'Twitter',
  3859.                                 stats: [
  3860.                                     {
  3861.                                         label: 'Total posts',
  3862.                                         value: message.firstJob.twitterTotal|number_format,
  3863.                                         link: (message.firstJob.twitterTotal > 0)
  3864.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3865.                                                 message: message.id,
  3866.                                                 query: {
  3867.                                                     filter: 'twitter',
  3868.                                                     state: 'all',
  3869.                                                     sort: 'timestamp',
  3870.                                                     direction: 'DESC'
  3871.                                                 }
  3872.                                             })
  3873.                                             : null,
  3874.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  3875.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  3876.                                     },
  3877.                                     {
  3878.                                         label: 'Successful posts',
  3879.                                         value: message.firstJob.twitterSucceeded|number_format,
  3880.                                         link: (message.firstJob.twitterSucceeded > 0)
  3881.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3882.                                                 message: message.id,
  3883.                                                 query: {
  3884.                                                     filter: 'twitter',
  3885.                                                     state: 'completed',
  3886.                                                     sort: 'timestamp',
  3887.                                                     direction: 'DESC'
  3888.                                                 }
  3889.                                             })
  3890.                                             : null,
  3891.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  3892.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  3893.                                     },
  3894.                                     {
  3895.                                         label: 'Errors',
  3896.                                         value: message.firstJob.twitterFailed|number_format,
  3897.                                         link: (message.firstJob.twitterFailed > 0)
  3898.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3899.                                                 message: message.id,
  3900.                                                 query: {
  3901.                                                     filter: 'twitter',
  3902.                                                     state: 'failed',
  3903.                                                     sort: 'timestamp',
  3904.                                                     direction: 'DESC'
  3905.                                                 }
  3906.                                             })
  3907.                                             : null,
  3908.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  3909.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  3910.                                     },
  3911.                                 ],
  3912.                             } %}{% endembed %}
  3913.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  3914.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  3915.                                 icon: 'fab fa-instagram',
  3916.                                 title: 'Instagram',
  3917.                                 stats: [
  3918.                                     {
  3919.                                         label: 'Total posts',
  3920.                                         value: message.firstJob.instagramTotal|number_format,
  3921.                                         link: (message.firstJob.instagramTotal > 0)
  3922.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3923.                                                 message: message.id,
  3924.                                                 query: {
  3925.                                                     filter: 'instagram',
  3926.                                                     state: 'all',
  3927.                                                     sort: 'timestamp',
  3928.                                                     direction: 'DESC'
  3929.                                                 }
  3930.                                             })
  3931.                                             : null,
  3932.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  3933.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  3934.                                     },
  3935.                                     {
  3936.                                         label: 'Successful posts',
  3937.                                         value: message.firstJob.instagramSucceeded|number_format,
  3938.                                         link: (message.firstJob.instagramSucceeded > 0)
  3939.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3940.                                                 message: message.id,
  3941.                                                 query: {
  3942.                                                     filter: 'instagram',
  3943.                                                     state: 'completed',
  3944.                                                     sort: 'timestamp',
  3945.                                                     direction: 'DESC'
  3946.                                                 }
  3947.                                             })
  3948.                                             : null,
  3949.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  3950.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  3951.                                     },
  3952.                                     {
  3953.                                         label: 'Errors',
  3954.                                         value: message.firstJob.instagramFailed|number_format,
  3955.                                         link: (message.firstJob.instagramFailed > 0)
  3956.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3957.                                                 message: message.id,
  3958.                                                 query: {
  3959.                                                     filter: 'instagram',
  3960.                                                     state: 'failed',
  3961.                                                     sort: 'timestamp',
  3962.                                                     direction: 'DESC'
  3963.                                                 }
  3964.                                             })
  3965.                                             : null,
  3966.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  3967.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  3968.                                     },
  3969.                                 ],
  3970.                             } %}{% endembed %}
  3971.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  3972.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  3973.                                 icon: 'icon-website',
  3974.                                 title: 'Website',
  3975.                                 stats: [
  3976.                                     {
  3977.                                         label: 'Total posts',
  3978.                                         value: message.firstJob.websiteTotal|number_format,
  3979.                                         link: (message.firstJob.websiteTotal > 0)
  3980.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3981.                                                 message: message.id,
  3982.                                                 query: {
  3983.                                                     filter: 'website',
  3984.                                                     state: 'all',
  3985.                                                     sort: 'timestamp',
  3986.                                                     direction: 'DESC'
  3987.                                                 }
  3988.                                             })
  3989.                                             : null,
  3990.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  3991.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  3992.                                     },
  3993.                                     {
  3994.                                         label: 'Successful posts',
  3995.                                         value: message.firstJob.websiteSucceeded|number_format,
  3996.                                         link: (message.firstJob.websiteSucceeded > 0)
  3997.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  3998.                                                 message: message.id,
  3999.                                                 query: {
  4000.                                                     filter: 'website',
  4001.                                                     state: 'completed',
  4002.                                                     sort: 'timestamp',
  4003.                                                     direction: 'DESC'
  4004.                                                 }
  4005.                                             })
  4006.                                             : null,
  4007.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  4008.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  4009.                                     },
  4010.                                     {
  4011.                                         label: 'Errors',
  4012.                                         value: message.firstJob.websiteFailed|number_format,
  4013.                                         link: (message.firstJob.websiteFailed > 0)
  4014.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4015.                                                 message: message.id,
  4016.                                                 query: {
  4017.                                                     filter: 'website',
  4018.                                                     state: 'failed',
  4019.                                                     sort: 'timestamp',
  4020.                                                     direction: 'DESC'
  4021.                                                 }
  4022.                                             })
  4023.                                             : null,
  4024.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  4025.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  4026.                                     },
  4027.                                 ],
  4028.                             } %}{% endembed %}
  4029.                         {% endif %}
  4030.                     {% endfor %}
  4031.                 {% endblock %}
  4032.             {% endembed %}
  4033.         </div>
  4034.     {% endif %}
  4035. {% endblock %}
  4036. {% block modals %}
  4037.     {{ parent() }}
  4038.     {% embed '@ui2022/modal.html.twig' with {
  4039.         attr: {
  4040.             id: 'modal__email_preview',
  4041.         },
  4042.     } %}
  4043.         {% block content %}
  4044.             {% embed '@ui2022/modal__content.html.twig' with {
  4045.                 title: 'Email Preview',
  4046.             } %}
  4047.                 {% block body %}
  4048.                     <iframe
  4049.                         id=\"preview-email-iframe\"
  4050.                         loading=\"lazy\"
  4051.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  4052.                         frameborder=\"0\"
  4053.                         style=\"width: 100%; height: 500px\"
  4054.                     >
  4055.                     </iframe>
  4056.                 {% endblock %}
  4057.             {% endembed %}
  4058.         {% endblock %}
  4059.     {% endembed %}
  4060.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  4061.         attr: {
  4062.             id: 'sidepanel__filtered_logs',
  4063.         },
  4064.     } %}
  4065.     <script type=\"text/javascript\">
  4066.         (function (window, document, \$, undefined) {
  4067.             \$(function () {
  4068.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  4069.                     const pageHeight = \$(window).height();
  4070.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  4071.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  4072.                 });
  4073.             });
  4074.         })(window, document, jQuery);
  4075.     </script>
  4076. {% endblock %}
  4077. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  4078.     }
  4079. }
  4080. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  4081. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___1062131583 extends \Twig\Template
  4082. {
  4083.     private $source;
  4084.     private $macros = [];
  4085.     public function __construct(Environment $env)
  4086.     {
  4087.         parent::__construct($env);
  4088.         $this->source $this->getSourceContext();
  4089.         $this->blocks = [
  4090.             'content' => [$this'block_content'],
  4091.         ];
  4092.     }
  4093.     protected function doGetParent(array $context)
  4094.     {
  4095.         // line 299
  4096.         return "@ui2022/card__deliverymethods.html.twig";
  4097.     }
  4098.     protected function doDisplay(array $context, array $blocks = [])
  4099.     {
  4100.         $macros $this->macros;
  4101.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  4102.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  4103.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  4104.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  4105.         $this->parent $this->loadTemplate("@ui2022/card__deliverymethods.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"299);
  4106.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  4107.         
  4108.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  4109.         
  4110.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  4111.     }
  4112.     // line 356
  4113.     public function block_content($context, array $blocks = [])
  4114.     {
  4115.         $macros $this->macros;
  4116.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  4117.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  4118.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  4119.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  4120.         // line 357
  4121.         echo "                                    <table class=\"table-clear border-0 text-gray-dark\">
  4122.                                         <tbody>
  4123.                                             <tr>
  4124.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  4125.                                                 <td class=\"pb-3 pb-sm-2\">
  4126.                                                     <span>";
  4127.         // line 362
  4128.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'362$this->source); })()), "smsText", [], "any"falsefalsefalse362), "html"nulltrue);
  4129.         echo "</span>
  4130.                                                     ";
  4131.         // line 363
  4132.         if (twig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'363$this->source); })()), "smsUrl", [], "any"falsefalsefalse363)) {
  4133.             // line 364
  4134.             echo "                                                        <a class=\"text-body text-underline\" href=\"";
  4135.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'364$this->source); })()), "smsUrl", [], "any"falsefalsefalse364), "html"nulltrue);
  4136.             echo "\">";
  4137.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'364$this->source); })()), "smsUrl", [], "any"falsefalsefalse364), "html"nulltrue);
  4138.             echo "</a>
  4139.                                                     ";
  4140.         }
  4141.         // line 366
  4142.         echo "                                                </td>
  4143.                                             </tr>
  4144.                                             <tr>
  4145.                                                 <td class=\"text-semibold pr-3\">From:</td>
  4146.                                                 <td>
  4147.                                                     <span class=\"emailid\">";
  4148.         // line 371
  4149.         echo twig_escape_filter($this->env$this->extensions['App\Twig\Extension\PhoneNumberExtension']->phone_number_format(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["configs"]) || array_key_exists("configs"$context) ? $context["configs"] : (function () { throw new RuntimeError('Variable "configs" does not exist.'371$this->source); })()), "twilio", [], "any"falsefalsefalse371), "incomingPhoneNumber", [], "any"falsefalsefalse371)), "html"nulltrue);
  4150.         echo "</span>
  4151.                                                 </td>
  4152.                                             </tr>
  4153.                                         </tbody>
  4154.                                     </table>
  4155.                                 ";
  4156.         
  4157.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  4158.         
  4159.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  4160.     }
  4161.     public function getTemplateName()
  4162.     {
  4163.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  4164.     }
  4165.     public function isTraitable()
  4166.     {
  4167.         return false;
  4168.     }
  4169.     public function getDebugInfo()
  4170.     {
  4171.         return array (  4291 => 371,  4284 => 366,  4276 => 364,  4274 => 363,  4270 => 362,  4263 => 357,  4253 => 356,  4230 => 299,  3368 => 291,  3358 => 284,  3351 => 279,  3341 => 278,  3318 => 217,  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  4172.     }
  4173.     public function getSourceContext()
  4174.     {
  4175.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  4176. {% do dom_title_section('Messages') %}
  4177. {% block wrap %}content__area--uilib reports{% endblock %}
  4178. {% block header %}
  4179.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  4180.         title: message.title,
  4181.         back: {
  4182.             text: 'Back to Messages',
  4183.             link: path('app.notifications.dashboard.messages.main'),
  4184.         },
  4185.     } %}
  4186.         {% block actions %}
  4187.             {% include '@ui2022/button--a.html.twig' with {
  4188.                 text: 'Clone message',
  4189.                 link: path('app.notifications.dashboard.messages.create', {
  4190.                     clone: message.id,
  4191.                 }),
  4192.                 styles: 'gray',
  4193.             } %}
  4194.         {% endblock %}
  4195.     {% endembed %}
  4196. {% endblock %}
  4197. {% block content %}
  4198.     {% if not message.firstJob %}
  4199.         <div class=\"content__data reports__message pt-2\">
  4200.             <div class=\"blockgroup\">
  4201.                 <label class=\"blockgroup__label\">Message</label>
  4202.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  4203.             </div>
  4204.         </div>
  4205.     {% else %}
  4206.         {% set stats = message.firstJob.summarize %}
  4207.         <div class=\"content__data reports__message pt-2\">
  4208.             {% embed '@ui2022/tabs--static.html.twig' with {
  4209.                 items: [
  4210.                     {
  4211.                         text: 'Summary',
  4212.                         link: path('app.notifications.dashboard.messages.report', {
  4213.                             message: message.id,
  4214.                         }),
  4215.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  4216.                     },
  4217.                     {
  4218.                         text: 'Logs',
  4219.                         link: path('app.notifications.dashboard.messages.logs', {
  4220.                             message: message.id,
  4221.                         }),
  4222.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  4223.                     },
  4224.                     {
  4225.                         text: 'Debugging',
  4226.                         link: path('app.notifications.dashboard.messages.debugging', {
  4227.                             message: message.id,
  4228.                         }),
  4229.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  4230.                     },
  4231.                     {
  4232.                         text: 'Details',
  4233.                         link: path('app.notifications.dashboard.messages.details', {
  4234.                             message: message.id,
  4235.                         }),
  4236.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  4237.                     },
  4238.                 ],
  4239.             } %}
  4240.                 {% block tab %}
  4241.                     {% include '@ui2022/subheader.html.twig' with {
  4242.                         title: 'Summary',
  4243.                         classes: 'mt-4 pt-4',
  4244.                     } %}
  4245.                     <div class=\"three-column-section\">
  4246.                         <div class=\"three-column-inner-section\">
  4247.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  4248.                                 title: 'Sent',
  4249.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  4250.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  4251.                                 label: 'Contacts',
  4252.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  4253.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  4254.                                         message: message.id,
  4255.                                         query: {
  4256.                                             filter: 'all',
  4257.                                             state: 'all',
  4258.                                             sort: 'timestamp',
  4259.                                             direction: 'DESC'
  4260.                                         }
  4261.                                     })
  4262.                                     : null,
  4263.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  4264.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  4265.                             } %}
  4266.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  4267.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  4268.                                 title: message.sending ? 'Running' : 'Completed',
  4269.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  4270.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  4271.                                 label: interval[1]|default(''),
  4272.                             } %}
  4273.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  4274.                                 title: 'Errors',
  4275.                                 subtitle: 'Message not delivered',
  4276.                                 value: stats.all.failed|number_format,
  4277.                                 label: 'Contacts',
  4278.                                 link: (stats.all.failed > 0)
  4279.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  4280.                                         message: message.id,
  4281.                                         query: {
  4282.                                             filter: 'all',
  4283.                                             state: 'failed',
  4284.                                             sort: 'timestamp',
  4285.                                             direction: 'DESC'
  4286.                                         }
  4287.                                     })
  4288.                                     : null,
  4289.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  4290.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  4291.                             } %}
  4292.                         </div>
  4293.                     </div>
  4294.                     <div class=\"section__infostats mb-4\">
  4295.                         <div class=\"card card__charts\">
  4296.                             <div class=\"row row-10\">
  4297.                                 <div class=\"col-12 col-md-6\">
  4298.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  4299.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  4300.                                         {% include '@ui2022/chart--donut.html.twig' with {
  4301.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  4302.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  4303.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  4304.                                             }),
  4305.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  4306.                                             label: 'Total contacts',
  4307.                                         } %}
  4308.                                     </div>
  4309.                                 </div>
  4310.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  4311.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  4312.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  4313.                                         <div class=\"targetlist\">
  4314.                                             {% if message.lists|length %}
  4315.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  4316.                                                     title: 'Contact lists',
  4317.                                                     icon: 'icon-contact-reachable',
  4318.                                                     items: message.lists|map((list) => {
  4319.                                                         text: list.name,
  4320.                                                         link: path('app.notifications.dashboard.lists.view', {
  4321.                                                             list: list.id,
  4322.                                                         }),
  4323.                                                     }),
  4324.                                                 } %}
  4325.                                             {% endif %}
  4326.                                             {% if message.facebookSocialAccounts|length %}
  4327.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  4328.                                                     title: 'Facebook pages',
  4329.                                                     icon: 'icon-facebook-fill',
  4330.                                                     items: message.facebookSocialAccounts|map((social) => {
  4331.                                                         text: social.name,
  4332.                                                         target: '_blank',
  4333.                                                         link: 'https://www.facebook.com/%s'|format(
  4334.                                                             social.facebookPageId,
  4335.                                                         ),
  4336.                                                     }),
  4337.                                                 } %}
  4338.                                             {% endif %}
  4339.                                             {% if message.twitterSocialAccounts|length %}
  4340.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  4341.                                                     title: 'Twitter profiles',
  4342.                                                     icon: 'icon-twitter-fill',
  4343.                                                     items: message.twitterSocialAccounts|map((social) => {
  4344.                                                         text: social.name,
  4345.                                                         target: '_blank',
  4346.                                                         link: 'https://www.twitter.com/%s'|format(
  4347.                                                             social.twitterUserName,
  4348.                                                         ),
  4349.                                                     }),
  4350.                                                 } %}
  4351.                                             {% endif %}
  4352.                                             {% if message.instagramSocialAccounts|length %}
  4353.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  4354.                                                     title: 'Instagram accounts',
  4355.                                                     icon: 'fab fa-instagram',
  4356.                                                     items: message.instagramSocialAccounts|map((social) => {
  4357.                                                         text: social.name,
  4358.                                                         target: '_blank',
  4359.                                                         link: 'https://www.instagram.com/%s'|format(
  4360.                                                             social.name,
  4361.                                                         ),
  4362.                                                     }),
  4363.                                                 } %}
  4364.                                             {% endif %}
  4365.                                             {% if message.websiteDepartments|length %}
  4366.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  4367.                                                     title: 'Website departments',
  4368.                                                     icon: 'icon-website',
  4369.                                                     items: message.websiteDepartments|map((department) => {
  4370.                                                         text: department.name,
  4371.                                                         target: '_blank',
  4372.                                                         link: web_url_catchall(department, '/'),
  4373.                                                     }),
  4374.                                                 } %}
  4375.                                             {% endif %}
  4376.                                         </div>
  4377.                                     </div>
  4378.                                 {% endif %}
  4379.                             </div>
  4380.                         </div>
  4381.                     </div>
  4382.                     {% for channel in message.usedChannels(true) %}
  4383.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  4384.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  4385.                                 icon: 'icon-activity-mail',
  4386.                                 title: 'Email',
  4387.                                 stats: [
  4388.                                     {
  4389.                                         label: 'Total sent',
  4390.                                         value: message.firstJob.emailSucceeded|number_format,
  4391.                                         link: (message.firstJob.emailSucceeded > 0)
  4392.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4393.                                                 message: message.id,
  4394.                                                 query: {
  4395.                                                     filter: 'email',
  4396.                                                     sort: 'timestamp',
  4397.                                                     direction: 'DESC'
  4398.                                                 }
  4399.                                             })
  4400.                                             : null,
  4401.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  4402.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  4403.                                     },
  4404.                                     {
  4405.                                         label: 'Delivery verified',
  4406.                                         value: message.firstJob.emailDelivered|number_format,
  4407.                                         link: (message.firstJob.emailDelivered > 0)
  4408.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4409.                                                 message: message.id,
  4410.                                                 query: {
  4411.                                                     filter: 'email',
  4412.                                                     state: 'completed',
  4413.                                                     sort: 'timestamp',
  4414.                                                     direction: 'DESC'
  4415.                                                 }
  4416.                                             })
  4417.                                             : null,
  4418.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  4419.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  4420.                                     },
  4421.                                     {
  4422.                                         label: 'Bounces',
  4423.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  4424.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  4425.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4426.                                                 message: message.id,
  4427.                                                 query: {
  4428.                                                     filter: 'email',
  4429.                                                     state: 'failed',
  4430.                                                     sort: 'timestamp',
  4431.                                                     direction: 'DESC'
  4432.                                                 }
  4433.                                             })
  4434.                                             : null,
  4435.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  4436.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  4437.                                     },
  4438.                                     {
  4439.                                         label: 'Open rate',
  4440.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  4441.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  4442.                                     },
  4443.                                 ],
  4444.                             } %}
  4445.                                 {% block content %}
  4446.                                     <table class=\"table-clear border-0 text-gray-dark\">
  4447.                                         <tbody>
  4448.                                             <tr>
  4449.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  4450.                                                 <td class=\"pb-3 pb-sm-2\">
  4451.                                                     <span>{{ message.emailSubject }}</span>
  4452.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  4453.                                                 </td>
  4454.                                             </tr>
  4455.                                             <tr>
  4456.                                                 <td class=\"text-semibold pr-3\">From:</td>
  4457.                                                 <td>
  4458.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  4459.                                                 </td>
  4460.                                             </tr>
  4461.                                         </tbody>
  4462.                                     </table>
  4463.                                 {% endblock %}
  4464.                             {% endembed %}
  4465.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  4466.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  4467.                                 icon: 'icon-activity-text',
  4468.                                 title: 'SMS',
  4469.                                 stats: [
  4470.                                     {
  4471.                                         label: 'Total sent',
  4472.                                         value: message.firstJob.smsSucceeded|number_format,
  4473.                                         link: (message.firstJob.smsSucceeded > 0)
  4474.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4475.                                                 message: message.id,
  4476.                                                 query: {
  4477.                                                     filter: 'sms',
  4478.                                                     state: 'all',
  4479.                                                     sort: 'timestamp',
  4480.                                                     direction: 'DESC'
  4481.                                                 }
  4482.                                             })
  4483.                                             : null,
  4484.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  4485.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  4486.                                     },
  4487.                                     {
  4488.                                         label: 'Delivery verified',
  4489.                                         value: message.firstJob.smsDelivered|number_format,
  4490.                                         link: (message.firstJob.smsDelivered > 0)
  4491.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4492.                                                 message: message.id,
  4493.                                                 query: {
  4494.                                                     filter: 'sms',
  4495.                                                     state: 'completed',
  4496.                                                     sort: 'timestamp',
  4497.                                                     direction: 'DESC'
  4498.                                                 }
  4499.                                             })
  4500.                                             : null,
  4501.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  4502.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  4503.                                     },
  4504.                                     {
  4505.                                         label: 'Bounces',
  4506.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  4507.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  4508.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4509.                                                 message: message.id,
  4510.                                                 query: {
  4511.                                                     filter: 'sms',
  4512.                                                     state: 'failed',
  4513.                                                     sort: 'timestamp',
  4514.                                                     direction: 'DESC'
  4515.                                                 }
  4516.                                             })
  4517.                                             : null,
  4518.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  4519.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  4520.                                     },
  4521.                                 ],
  4522.                             } %}
  4523.                                 {% block content %}
  4524.                                     <table class=\"table-clear border-0 text-gray-dark\">
  4525.                                         <tbody>
  4526.                                             <tr>
  4527.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  4528.                                                 <td class=\"pb-3 pb-sm-2\">
  4529.                                                     <span>{{ message.smsText }}</span>
  4530.                                                     {% if message.smsUrl %}
  4531.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  4532.                                                     {% endif %}
  4533.                                                 </td>
  4534.                                             </tr>
  4535.                                             <tr>
  4536.                                                 <td class=\"text-semibold pr-3\">From:</td>
  4537.                                                 <td>
  4538.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  4539.                                                 </td>
  4540.                                             </tr>
  4541.                                         </tbody>
  4542.                                     </table>
  4543.                                 {% endblock %}
  4544.                             {% endembed %}
  4545.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  4546.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  4547.                                 icon: 'icon-activity-voice',
  4548.                                 title: 'Phone',
  4549.                                 stats: [
  4550.                                     {
  4551.                                         label: 'Total sent',
  4552.                                         value: message.firstJob.voiceSucceeded|number_format,
  4553.                                         link: (message.firstJob.voiceSucceeded > 0)
  4554.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4555.                                                 message: message.id,
  4556.                                                 query: {
  4557.                                                     filter: 'voice',
  4558.                                                     state: 'all',
  4559.                                                     sort: 'timestamp',
  4560.                                                     direction: 'DESC'
  4561.                                                 }
  4562.                                             })
  4563.                                             : null,
  4564.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  4565.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  4566.                                     },
  4567.                                     {
  4568.                                         label: 'Delivery verified',
  4569.                                         value: message.firstJob.voiceDelivered|number_format,
  4570.                                         link: (message.firstJob.voiceDelivered > 0)
  4571.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4572.                                                 message: message.id,
  4573.                                                 query: {
  4574.                                                     filter: 'voice',
  4575.                                                     state: 'completed',
  4576.                                                     sort: 'timestamp',
  4577.                                                     direction: 'DESC'
  4578.                                                 }
  4579.                                             })
  4580.                                             : null,
  4581.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  4582.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  4583.                                     },
  4584.                                     {
  4585.                                         label: 'Bounces',
  4586.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  4587.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  4588.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4589.                                                 message: message.id,
  4590.                                                 query: {
  4591.                                                     filter: 'voice',
  4592.                                                     state: 'failed',
  4593.                                                     sort: 'timestamp',
  4594.                                                     direction: 'DESC'
  4595.                                                 }
  4596.                                             })
  4597.                                             : null,
  4598.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  4599.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  4600.                                     },
  4601.                                     {
  4602.                                         label: 'Answer rate',
  4603.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  4604.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  4605.                                     },
  4606.                                 ],
  4607.                             } %}
  4608.                                 {% block content %}
  4609.                                     <table class=\"table-clear border-0 text-gray-dark\">
  4610.                                         <tbody>
  4611.                                             <tr>
  4612.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  4613.                                                 <td class=\"pb-3 pb-sm-2\">
  4614.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  4615.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  4616.                                                         Your browser does not support the audio element.
  4617.                                                     </audio>
  4618.                                                 </td>
  4619.                                             </tr>
  4620.                                             <tr>
  4621.                                                 <td class=\"text-semibold pr-3\">From:</td>
  4622.                                                 <td>
  4623.                                                     <span class=\"emailid\">
  4624.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  4625.                                                     </span>
  4626.                                                 </td>
  4627.                                             </tr>
  4628.                                         </tbody>
  4629.                                     </table>
  4630.                                 {% endblock %}
  4631.                             {% endembed %}
  4632.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  4633.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  4634.                                 icon: 'icon-deviceapp',
  4635.                                 title: 'Mobile app',
  4636.                                 stats: [
  4637.                                     {
  4638.                                         label: 'Total sent',
  4639.                                         value: message.firstJob.appSucceeded|number_format,
  4640.                                         link: (message.firstJob.appSucceeded > 0)
  4641.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4642.                                                 message: message.id,
  4643.                                                 query: {
  4644.                                                     filter: 'app',
  4645.                                                     state: 'pending',
  4646.                                                     sort: 'timestamp',
  4647.                                                     direction: 'DESC'
  4648.                                                 }
  4649.                                             })
  4650.                                             : null,
  4651.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  4652.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  4653.                                     },
  4654.                                     {
  4655.                                         label: 'Delivery verified',
  4656.                                         value: message.firstJob.appDelivered|number_format,
  4657.                                     },
  4658.                                     {
  4659.                                         label: 'Bounces',
  4660.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  4661.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  4662.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4663.                                                 message: message.id,
  4664.                                                 query: {
  4665.                                                     filter: 'app',
  4666.                                                     state: 'failed',
  4667.                                                     sort: 'timestamp',
  4668.                                                     direction: 'DESC'
  4669.                                                 }
  4670.                                             })
  4671.                                             : null,
  4672.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  4673.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  4674.                                     },
  4675.                                 ],
  4676.                             } %}
  4677.                                 {% block content %}
  4678.                                     <table class=\"table-clear border-0 text-gray-dark\">
  4679.                                         <tbody>
  4680.                                             <tr>
  4681.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  4682.                                                 <td class=\"pb-3 pb-sm-2\">
  4683.                                                     <span>{{ message.appTitle }}</span>
  4684.                                                 </td>
  4685.                                             </tr>
  4686.                                         </tbody>
  4687.                                     </table>
  4688.                                 {% endblock %}
  4689.                             {% endembed %}
  4690.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  4691.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  4692.                                 icon: 'icon-facebook-fill',
  4693.                                 title: 'Facebook',
  4694.                                 stats: [
  4695.                                     {
  4696.                                         label: 'Total posts',
  4697.                                         value: message.firstJob.facebookTotal|number_format,
  4698.                                         link: (message.firstJob.facebookTotal > 0)
  4699.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4700.                                                 message: message.id,
  4701.                                                 query: {
  4702.                                                     filter: 'facebook',
  4703.                                                     state: 'all',
  4704.                                                     sort: 'timestamp',
  4705.                                                     direction: 'DESC'
  4706.                                                 }
  4707.                                             })
  4708.                                             : null,
  4709.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  4710.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  4711.                                     },
  4712.                                     {
  4713.                                         label: 'Successful posts',
  4714.                                         value: message.firstJob.facebookSucceeded|number_format,
  4715.                                         link: (message.firstJob.facebookSucceeded > 0)
  4716.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4717.                                                 message: message.id,
  4718.                                                 query: {
  4719.                                                     filter: 'facebook',
  4720.                                                     state: 'completed',
  4721.                                                     sort: 'timestamp',
  4722.                                                     direction: 'DESC'
  4723.                                                 }
  4724.                                             })
  4725.                                             : null,
  4726.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  4727.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  4728.                                     },
  4729.                                     {
  4730.                                         label: 'Errors',
  4731.                                         value: message.firstJob.facebookFailed|number_format,
  4732.                                         link: (message.firstJob.facebookFailed > 0)
  4733.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4734.                                                 message: message.id,
  4735.                                                 query: {
  4736.                                                     filter: 'facebook',
  4737.                                                     state: 'failed',
  4738.                                                     sort: 'timestamp',
  4739.                                                     direction: 'DESC'
  4740.                                                 }
  4741.                                             })
  4742.                                             : null,
  4743.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  4744.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  4745.                                     },
  4746.                                 ],
  4747.                             } %}{% endembed %}
  4748.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  4749.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  4750.                                 icon: 'icon-twitter-fill',
  4751.                                 title: 'Twitter',
  4752.                                 stats: [
  4753.                                     {
  4754.                                         label: 'Total posts',
  4755.                                         value: message.firstJob.twitterTotal|number_format,
  4756.                                         link: (message.firstJob.twitterTotal > 0)
  4757.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4758.                                                 message: message.id,
  4759.                                                 query: {
  4760.                                                     filter: 'twitter',
  4761.                                                     state: 'all',
  4762.                                                     sort: 'timestamp',
  4763.                                                     direction: 'DESC'
  4764.                                                 }
  4765.                                             })
  4766.                                             : null,
  4767.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  4768.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  4769.                                     },
  4770.                                     {
  4771.                                         label: 'Successful posts',
  4772.                                         value: message.firstJob.twitterSucceeded|number_format,
  4773.                                         link: (message.firstJob.twitterSucceeded > 0)
  4774.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4775.                                                 message: message.id,
  4776.                                                 query: {
  4777.                                                     filter: 'twitter',
  4778.                                                     state: 'completed',
  4779.                                                     sort: 'timestamp',
  4780.                                                     direction: 'DESC'
  4781.                                                 }
  4782.                                             })
  4783.                                             : null,
  4784.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  4785.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  4786.                                     },
  4787.                                     {
  4788.                                         label: 'Errors',
  4789.                                         value: message.firstJob.twitterFailed|number_format,
  4790.                                         link: (message.firstJob.twitterFailed > 0)
  4791.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4792.                                                 message: message.id,
  4793.                                                 query: {
  4794.                                                     filter: 'twitter',
  4795.                                                     state: 'failed',
  4796.                                                     sort: 'timestamp',
  4797.                                                     direction: 'DESC'
  4798.                                                 }
  4799.                                             })
  4800.                                             : null,
  4801.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  4802.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  4803.                                     },
  4804.                                 ],
  4805.                             } %}{% endembed %}
  4806.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  4807.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  4808.                                 icon: 'fab fa-instagram',
  4809.                                 title: 'Instagram',
  4810.                                 stats: [
  4811.                                     {
  4812.                                         label: 'Total posts',
  4813.                                         value: message.firstJob.instagramTotal|number_format,
  4814.                                         link: (message.firstJob.instagramTotal > 0)
  4815.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4816.                                                 message: message.id,
  4817.                                                 query: {
  4818.                                                     filter: 'instagram',
  4819.                                                     state: 'all',
  4820.                                                     sort: 'timestamp',
  4821.                                                     direction: 'DESC'
  4822.                                                 }
  4823.                                             })
  4824.                                             : null,
  4825.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  4826.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  4827.                                     },
  4828.                                     {
  4829.                                         label: 'Successful posts',
  4830.                                         value: message.firstJob.instagramSucceeded|number_format,
  4831.                                         link: (message.firstJob.instagramSucceeded > 0)
  4832.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4833.                                                 message: message.id,
  4834.                                                 query: {
  4835.                                                     filter: 'instagram',
  4836.                                                     state: 'completed',
  4837.                                                     sort: 'timestamp',
  4838.                                                     direction: 'DESC'
  4839.                                                 }
  4840.                                             })
  4841.                                             : null,
  4842.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  4843.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  4844.                                     },
  4845.                                     {
  4846.                                         label: 'Errors',
  4847.                                         value: message.firstJob.instagramFailed|number_format,
  4848.                                         link: (message.firstJob.instagramFailed > 0)
  4849.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4850.                                                 message: message.id,
  4851.                                                 query: {
  4852.                                                     filter: 'instagram',
  4853.                                                     state: 'failed',
  4854.                                                     sort: 'timestamp',
  4855.                                                     direction: 'DESC'
  4856.                                                 }
  4857.                                             })
  4858.                                             : null,
  4859.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  4860.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  4861.                                     },
  4862.                                 ],
  4863.                             } %}{% endembed %}
  4864.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  4865.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  4866.                                 icon: 'icon-website',
  4867.                                 title: 'Website',
  4868.                                 stats: [
  4869.                                     {
  4870.                                         label: 'Total posts',
  4871.                                         value: message.firstJob.websiteTotal|number_format,
  4872.                                         link: (message.firstJob.websiteTotal > 0)
  4873.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4874.                                                 message: message.id,
  4875.                                                 query: {
  4876.                                                     filter: 'website',
  4877.                                                     state: 'all',
  4878.                                                     sort: 'timestamp',
  4879.                                                     direction: 'DESC'
  4880.                                                 }
  4881.                                             })
  4882.                                             : null,
  4883.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  4884.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  4885.                                     },
  4886.                                     {
  4887.                                         label: 'Successful posts',
  4888.                                         value: message.firstJob.websiteSucceeded|number_format,
  4889.                                         link: (message.firstJob.websiteSucceeded > 0)
  4890.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4891.                                                 message: message.id,
  4892.                                                 query: {
  4893.                                                     filter: 'website',
  4894.                                                     state: 'completed',
  4895.                                                     sort: 'timestamp',
  4896.                                                     direction: 'DESC'
  4897.                                                 }
  4898.                                             })
  4899.                                             : null,
  4900.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  4901.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  4902.                                     },
  4903.                                     {
  4904.                                         label: 'Errors',
  4905.                                         value: message.firstJob.websiteFailed|number_format,
  4906.                                         link: (message.firstJob.websiteFailed > 0)
  4907.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  4908.                                                 message: message.id,
  4909.                                                 query: {
  4910.                                                     filter: 'website',
  4911.                                                     state: 'failed',
  4912.                                                     sort: 'timestamp',
  4913.                                                     direction: 'DESC'
  4914.                                                 }
  4915.                                             })
  4916.                                             : null,
  4917.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  4918.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  4919.                                     },
  4920.                                 ],
  4921.                             } %}{% endembed %}
  4922.                         {% endif %}
  4923.                     {% endfor %}
  4924.                 {% endblock %}
  4925.             {% endembed %}
  4926.         </div>
  4927.     {% endif %}
  4928. {% endblock %}
  4929. {% block modals %}
  4930.     {{ parent() }}
  4931.     {% embed '@ui2022/modal.html.twig' with {
  4932.         attr: {
  4933.             id: 'modal__email_preview',
  4934.         },
  4935.     } %}
  4936.         {% block content %}
  4937.             {% embed '@ui2022/modal__content.html.twig' with {
  4938.                 title: 'Email Preview',
  4939.             } %}
  4940.                 {% block body %}
  4941.                     <iframe
  4942.                         id=\"preview-email-iframe\"
  4943.                         loading=\"lazy\"
  4944.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  4945.                         frameborder=\"0\"
  4946.                         style=\"width: 100%; height: 500px\"
  4947.                     >
  4948.                     </iframe>
  4949.                 {% endblock %}
  4950.             {% endembed %}
  4951.         {% endblock %}
  4952.     {% endembed %}
  4953.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  4954.         attr: {
  4955.             id: 'sidepanel__filtered_logs',
  4956.         },
  4957.     } %}
  4958.     <script type=\"text/javascript\">
  4959.         (function (window, document, \$, undefined) {
  4960.             \$(function () {
  4961.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  4962.                     const pageHeight = \$(window).height();
  4963.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  4964.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  4965.                 });
  4966.             });
  4967.         })(window, document, jQuery);
  4968.     </script>
  4969. {% endblock %}
  4970. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  4971.     }
  4972. }
  4973. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  4974. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___1222024576 extends \Twig\Template
  4975. {
  4976.     private $source;
  4977.     private $macros = [];
  4978.     public function __construct(Environment $env)
  4979.     {
  4980.         parent::__construct($env);
  4981.         $this->source $this->getSourceContext();
  4982.         $this->blocks = [
  4983.             'content' => [$this'block_content'],
  4984.         ];
  4985.     }
  4986.     protected function doGetParent(array $context)
  4987.     {
  4988.         // line 379
  4989.         return "@ui2022/card__deliverymethods.html.twig";
  4990.     }
  4991.     protected function doDisplay(array $context, array $blocks = [])
  4992.     {
  4993.         $macros $this->macros;
  4994.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  4995.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  4996.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  4997.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  4998.         $this->parent $this->loadTemplate("@ui2022/card__deliverymethods.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"379);
  4999.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  5000.         
  5001.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  5002.         
  5003.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  5004.     }
  5005.     // line 441
  5006.     public function block_content($context, array $blocks = [])
  5007.     {
  5008.         $macros $this->macros;
  5009.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  5010.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  5011.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  5012.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  5013.         // line 442
  5014.         echo "                                    <table class=\"table-clear border-0 text-gray-dark\">
  5015.                                         <tbody>
  5016.                                             <tr>
  5017.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  5018.                                                 <td class=\"pb-3 pb-sm-2\">
  5019.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  5020.                                                         <source src=\"";
  5021.         // line 448
  5022.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$this->extensions['App\Twig\Extension\BlobsExtension']->blobs(twig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'448$this->source); })()), "recording", [], "any"falsefalsefalse448)), "recordingUrl", [=> twig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'448$this->source); })()), "recording", [], "any"falsefalsefalse448)], "method"falsefalsefalse448), "html_attr");
  5023.         echo "\" type=\"audio/mpeg\" />
  5024.                                                         Your browser does not support the audio element.
  5025.                                                     </audio>
  5026.                                                 </td>
  5027.                                             </tr>
  5028.                                             <tr>
  5029.                                                 <td class=\"text-semibold pr-3\">From:</td>
  5030.                                                 <td>
  5031.                                                     <span class=\"emailid\">";
  5032.         // line 457
  5033.         echo twig_escape_filter($this->env$this->extensions['App\Twig\Extension\PhoneNumberExtension']->phone_number_format(((twig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'457$this->source); })()), "voiceCallerId", [], "any"falsefalsefalse457)) ? (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'457$this->source); })()), "voiceCallerId", [], "any"falsefalsefalse457), "phoneNumber", [], "any"falsefalsefalse457)) : (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["configs"]) || array_key_exists("configs"$context) ? $context["configs"] : (function () { throw new RuntimeError('Variable "configs" does not exist.'457$this->source); })()), "twilio", [], "any"falsefalsefalse457), "incomingPhoneNumber", [], "any"falsefalsefalse457)))), "html"nulltrue);
  5034.         // line 458
  5035.         echo "</span>
  5036.                                                 </td>
  5037.                                             </tr>
  5038.                                         </tbody>
  5039.                                     </table>
  5040.                                 ";
  5041.         
  5042.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  5043.         
  5044.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  5045.     }
  5046.     public function getTemplateName()
  5047.     {
  5048.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  5049.     }
  5050.     public function isTraitable()
  5051.     {
  5052.         return false;
  5053.     }
  5054.     public function getDebugInfo()
  5055.     {
  5056.         return array (  5205 => 458,  5203 => 457,  5192 => 448,  5184 => 442,  5174 => 441,  5151 => 379,  4291 => 371,  4284 => 366,  4276 => 364,  4274 => 363,  4270 => 362,  4263 => 357,  4253 => 356,  4230 => 299,  3368 => 291,  3358 => 284,  3351 => 279,  3341 => 278,  3318 => 217,  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  5057.     }
  5058.     public function getSourceContext()
  5059.     {
  5060.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  5061. {% do dom_title_section('Messages') %}
  5062. {% block wrap %}content__area--uilib reports{% endblock %}
  5063. {% block header %}
  5064.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  5065.         title: message.title,
  5066.         back: {
  5067.             text: 'Back to Messages',
  5068.             link: path('app.notifications.dashboard.messages.main'),
  5069.         },
  5070.     } %}
  5071.         {% block actions %}
  5072.             {% include '@ui2022/button--a.html.twig' with {
  5073.                 text: 'Clone message',
  5074.                 link: path('app.notifications.dashboard.messages.create', {
  5075.                     clone: message.id,
  5076.                 }),
  5077.                 styles: 'gray',
  5078.             } %}
  5079.         {% endblock %}
  5080.     {% endembed %}
  5081. {% endblock %}
  5082. {% block content %}
  5083.     {% if not message.firstJob %}
  5084.         <div class=\"content__data reports__message pt-2\">
  5085.             <div class=\"blockgroup\">
  5086.                 <label class=\"blockgroup__label\">Message</label>
  5087.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  5088.             </div>
  5089.         </div>
  5090.     {% else %}
  5091.         {% set stats = message.firstJob.summarize %}
  5092.         <div class=\"content__data reports__message pt-2\">
  5093.             {% embed '@ui2022/tabs--static.html.twig' with {
  5094.                 items: [
  5095.                     {
  5096.                         text: 'Summary',
  5097.                         link: path('app.notifications.dashboard.messages.report', {
  5098.                             message: message.id,
  5099.                         }),
  5100.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  5101.                     },
  5102.                     {
  5103.                         text: 'Logs',
  5104.                         link: path('app.notifications.dashboard.messages.logs', {
  5105.                             message: message.id,
  5106.                         }),
  5107.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  5108.                     },
  5109.                     {
  5110.                         text: 'Debugging',
  5111.                         link: path('app.notifications.dashboard.messages.debugging', {
  5112.                             message: message.id,
  5113.                         }),
  5114.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  5115.                     },
  5116.                     {
  5117.                         text: 'Details',
  5118.                         link: path('app.notifications.dashboard.messages.details', {
  5119.                             message: message.id,
  5120.                         }),
  5121.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  5122.                     },
  5123.                 ],
  5124.             } %}
  5125.                 {% block tab %}
  5126.                     {% include '@ui2022/subheader.html.twig' with {
  5127.                         title: 'Summary',
  5128.                         classes: 'mt-4 pt-4',
  5129.                     } %}
  5130.                     <div class=\"three-column-section\">
  5131.                         <div class=\"three-column-inner-section\">
  5132.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  5133.                                 title: 'Sent',
  5134.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  5135.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  5136.                                 label: 'Contacts',
  5137.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  5138.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  5139.                                         message: message.id,
  5140.                                         query: {
  5141.                                             filter: 'all',
  5142.                                             state: 'all',
  5143.                                             sort: 'timestamp',
  5144.                                             direction: 'DESC'
  5145.                                         }
  5146.                                     })
  5147.                                     : null,
  5148.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  5149.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  5150.                             } %}
  5151.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  5152.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  5153.                                 title: message.sending ? 'Running' : 'Completed',
  5154.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  5155.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  5156.                                 label: interval[1]|default(''),
  5157.                             } %}
  5158.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  5159.                                 title: 'Errors',
  5160.                                 subtitle: 'Message not delivered',
  5161.                                 value: stats.all.failed|number_format,
  5162.                                 label: 'Contacts',
  5163.                                 link: (stats.all.failed > 0)
  5164.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  5165.                                         message: message.id,
  5166.                                         query: {
  5167.                                             filter: 'all',
  5168.                                             state: 'failed',
  5169.                                             sort: 'timestamp',
  5170.                                             direction: 'DESC'
  5171.                                         }
  5172.                                     })
  5173.                                     : null,
  5174.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  5175.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  5176.                             } %}
  5177.                         </div>
  5178.                     </div>
  5179.                     <div class=\"section__infostats mb-4\">
  5180.                         <div class=\"card card__charts\">
  5181.                             <div class=\"row row-10\">
  5182.                                 <div class=\"col-12 col-md-6\">
  5183.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  5184.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  5185.                                         {% include '@ui2022/chart--donut.html.twig' with {
  5186.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  5187.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  5188.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  5189.                                             }),
  5190.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  5191.                                             label: 'Total contacts',
  5192.                                         } %}
  5193.                                     </div>
  5194.                                 </div>
  5195.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  5196.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  5197.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  5198.                                         <div class=\"targetlist\">
  5199.                                             {% if message.lists|length %}
  5200.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  5201.                                                     title: 'Contact lists',
  5202.                                                     icon: 'icon-contact-reachable',
  5203.                                                     items: message.lists|map((list) => {
  5204.                                                         text: list.name,
  5205.                                                         link: path('app.notifications.dashboard.lists.view', {
  5206.                                                             list: list.id,
  5207.                                                         }),
  5208.                                                     }),
  5209.                                                 } %}
  5210.                                             {% endif %}
  5211.                                             {% if message.facebookSocialAccounts|length %}
  5212.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  5213.                                                     title: 'Facebook pages',
  5214.                                                     icon: 'icon-facebook-fill',
  5215.                                                     items: message.facebookSocialAccounts|map((social) => {
  5216.                                                         text: social.name,
  5217.                                                         target: '_blank',
  5218.                                                         link: 'https://www.facebook.com/%s'|format(
  5219.                                                             social.facebookPageId,
  5220.                                                         ),
  5221.                                                     }),
  5222.                                                 } %}
  5223.                                             {% endif %}
  5224.                                             {% if message.twitterSocialAccounts|length %}
  5225.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  5226.                                                     title: 'Twitter profiles',
  5227.                                                     icon: 'icon-twitter-fill',
  5228.                                                     items: message.twitterSocialAccounts|map((social) => {
  5229.                                                         text: social.name,
  5230.                                                         target: '_blank',
  5231.                                                         link: 'https://www.twitter.com/%s'|format(
  5232.                                                             social.twitterUserName,
  5233.                                                         ),
  5234.                                                     }),
  5235.                                                 } %}
  5236.                                             {% endif %}
  5237.                                             {% if message.instagramSocialAccounts|length %}
  5238.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  5239.                                                     title: 'Instagram accounts',
  5240.                                                     icon: 'fab fa-instagram',
  5241.                                                     items: message.instagramSocialAccounts|map((social) => {
  5242.                                                         text: social.name,
  5243.                                                         target: '_blank',
  5244.                                                         link: 'https://www.instagram.com/%s'|format(
  5245.                                                             social.name,
  5246.                                                         ),
  5247.                                                     }),
  5248.                                                 } %}
  5249.                                             {% endif %}
  5250.                                             {% if message.websiteDepartments|length %}
  5251.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  5252.                                                     title: 'Website departments',
  5253.                                                     icon: 'icon-website',
  5254.                                                     items: message.websiteDepartments|map((department) => {
  5255.                                                         text: department.name,
  5256.                                                         target: '_blank',
  5257.                                                         link: web_url_catchall(department, '/'),
  5258.                                                     }),
  5259.                                                 } %}
  5260.                                             {% endif %}
  5261.                                         </div>
  5262.                                     </div>
  5263.                                 {% endif %}
  5264.                             </div>
  5265.                         </div>
  5266.                     </div>
  5267.                     {% for channel in message.usedChannels(true) %}
  5268.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  5269.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  5270.                                 icon: 'icon-activity-mail',
  5271.                                 title: 'Email',
  5272.                                 stats: [
  5273.                                     {
  5274.                                         label: 'Total sent',
  5275.                                         value: message.firstJob.emailSucceeded|number_format,
  5276.                                         link: (message.firstJob.emailSucceeded > 0)
  5277.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5278.                                                 message: message.id,
  5279.                                                 query: {
  5280.                                                     filter: 'email',
  5281.                                                     sort: 'timestamp',
  5282.                                                     direction: 'DESC'
  5283.                                                 }
  5284.                                             })
  5285.                                             : null,
  5286.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  5287.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  5288.                                     },
  5289.                                     {
  5290.                                         label: 'Delivery verified',
  5291.                                         value: message.firstJob.emailDelivered|number_format,
  5292.                                         link: (message.firstJob.emailDelivered > 0)
  5293.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5294.                                                 message: message.id,
  5295.                                                 query: {
  5296.                                                     filter: 'email',
  5297.                                                     state: 'completed',
  5298.                                                     sort: 'timestamp',
  5299.                                                     direction: 'DESC'
  5300.                                                 }
  5301.                                             })
  5302.                                             : null,
  5303.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  5304.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  5305.                                     },
  5306.                                     {
  5307.                                         label: 'Bounces',
  5308.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  5309.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  5310.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5311.                                                 message: message.id,
  5312.                                                 query: {
  5313.                                                     filter: 'email',
  5314.                                                     state: 'failed',
  5315.                                                     sort: 'timestamp',
  5316.                                                     direction: 'DESC'
  5317.                                                 }
  5318.                                             })
  5319.                                             : null,
  5320.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  5321.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  5322.                                     },
  5323.                                     {
  5324.                                         label: 'Open rate',
  5325.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  5326.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  5327.                                     },
  5328.                                 ],
  5329.                             } %}
  5330.                                 {% block content %}
  5331.                                     <table class=\"table-clear border-0 text-gray-dark\">
  5332.                                         <tbody>
  5333.                                             <tr>
  5334.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  5335.                                                 <td class=\"pb-3 pb-sm-2\">
  5336.                                                     <span>{{ message.emailSubject }}</span>
  5337.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  5338.                                                 </td>
  5339.                                             </tr>
  5340.                                             <tr>
  5341.                                                 <td class=\"text-semibold pr-3\">From:</td>
  5342.                                                 <td>
  5343.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  5344.                                                 </td>
  5345.                                             </tr>
  5346.                                         </tbody>
  5347.                                     </table>
  5348.                                 {% endblock %}
  5349.                             {% endembed %}
  5350.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  5351.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  5352.                                 icon: 'icon-activity-text',
  5353.                                 title: 'SMS',
  5354.                                 stats: [
  5355.                                     {
  5356.                                         label: 'Total sent',
  5357.                                         value: message.firstJob.smsSucceeded|number_format,
  5358.                                         link: (message.firstJob.smsSucceeded > 0)
  5359.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5360.                                                 message: message.id,
  5361.                                                 query: {
  5362.                                                     filter: 'sms',
  5363.                                                     state: 'all',
  5364.                                                     sort: 'timestamp',
  5365.                                                     direction: 'DESC'
  5366.                                                 }
  5367.                                             })
  5368.                                             : null,
  5369.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  5370.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  5371.                                     },
  5372.                                     {
  5373.                                         label: 'Delivery verified',
  5374.                                         value: message.firstJob.smsDelivered|number_format,
  5375.                                         link: (message.firstJob.smsDelivered > 0)
  5376.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5377.                                                 message: message.id,
  5378.                                                 query: {
  5379.                                                     filter: 'sms',
  5380.                                                     state: 'completed',
  5381.                                                     sort: 'timestamp',
  5382.                                                     direction: 'DESC'
  5383.                                                 }
  5384.                                             })
  5385.                                             : null,
  5386.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  5387.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  5388.                                     },
  5389.                                     {
  5390.                                         label: 'Bounces',
  5391.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  5392.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  5393.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5394.                                                 message: message.id,
  5395.                                                 query: {
  5396.                                                     filter: 'sms',
  5397.                                                     state: 'failed',
  5398.                                                     sort: 'timestamp',
  5399.                                                     direction: 'DESC'
  5400.                                                 }
  5401.                                             })
  5402.                                             : null,
  5403.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  5404.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  5405.                                     },
  5406.                                 ],
  5407.                             } %}
  5408.                                 {% block content %}
  5409.                                     <table class=\"table-clear border-0 text-gray-dark\">
  5410.                                         <tbody>
  5411.                                             <tr>
  5412.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  5413.                                                 <td class=\"pb-3 pb-sm-2\">
  5414.                                                     <span>{{ message.smsText }}</span>
  5415.                                                     {% if message.smsUrl %}
  5416.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  5417.                                                     {% endif %}
  5418.                                                 </td>
  5419.                                             </tr>
  5420.                                             <tr>
  5421.                                                 <td class=\"text-semibold pr-3\">From:</td>
  5422.                                                 <td>
  5423.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  5424.                                                 </td>
  5425.                                             </tr>
  5426.                                         </tbody>
  5427.                                     </table>
  5428.                                 {% endblock %}
  5429.                             {% endembed %}
  5430.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  5431.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  5432.                                 icon: 'icon-activity-voice',
  5433.                                 title: 'Phone',
  5434.                                 stats: [
  5435.                                     {
  5436.                                         label: 'Total sent',
  5437.                                         value: message.firstJob.voiceSucceeded|number_format,
  5438.                                         link: (message.firstJob.voiceSucceeded > 0)
  5439.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5440.                                                 message: message.id,
  5441.                                                 query: {
  5442.                                                     filter: 'voice',
  5443.                                                     state: 'all',
  5444.                                                     sort: 'timestamp',
  5445.                                                     direction: 'DESC'
  5446.                                                 }
  5447.                                             })
  5448.                                             : null,
  5449.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  5450.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  5451.                                     },
  5452.                                     {
  5453.                                         label: 'Delivery verified',
  5454.                                         value: message.firstJob.voiceDelivered|number_format,
  5455.                                         link: (message.firstJob.voiceDelivered > 0)
  5456.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5457.                                                 message: message.id,
  5458.                                                 query: {
  5459.                                                     filter: 'voice',
  5460.                                                     state: 'completed',
  5461.                                                     sort: 'timestamp',
  5462.                                                     direction: 'DESC'
  5463.                                                 }
  5464.                                             })
  5465.                                             : null,
  5466.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  5467.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  5468.                                     },
  5469.                                     {
  5470.                                         label: 'Bounces',
  5471.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  5472.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  5473.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5474.                                                 message: message.id,
  5475.                                                 query: {
  5476.                                                     filter: 'voice',
  5477.                                                     state: 'failed',
  5478.                                                     sort: 'timestamp',
  5479.                                                     direction: 'DESC'
  5480.                                                 }
  5481.                                             })
  5482.                                             : null,
  5483.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  5484.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  5485.                                     },
  5486.                                     {
  5487.                                         label: 'Answer rate',
  5488.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  5489.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  5490.                                     },
  5491.                                 ],
  5492.                             } %}
  5493.                                 {% block content %}
  5494.                                     <table class=\"table-clear border-0 text-gray-dark\">
  5495.                                         <tbody>
  5496.                                             <tr>
  5497.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  5498.                                                 <td class=\"pb-3 pb-sm-2\">
  5499.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  5500.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  5501.                                                         Your browser does not support the audio element.
  5502.                                                     </audio>
  5503.                                                 </td>
  5504.                                             </tr>
  5505.                                             <tr>
  5506.                                                 <td class=\"text-semibold pr-3\">From:</td>
  5507.                                                 <td>
  5508.                                                     <span class=\"emailid\">
  5509.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  5510.                                                     </span>
  5511.                                                 </td>
  5512.                                             </tr>
  5513.                                         </tbody>
  5514.                                     </table>
  5515.                                 {% endblock %}
  5516.                             {% endembed %}
  5517.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  5518.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  5519.                                 icon: 'icon-deviceapp',
  5520.                                 title: 'Mobile app',
  5521.                                 stats: [
  5522.                                     {
  5523.                                         label: 'Total sent',
  5524.                                         value: message.firstJob.appSucceeded|number_format,
  5525.                                         link: (message.firstJob.appSucceeded > 0)
  5526.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5527.                                                 message: message.id,
  5528.                                                 query: {
  5529.                                                     filter: 'app',
  5530.                                                     state: 'pending',
  5531.                                                     sort: 'timestamp',
  5532.                                                     direction: 'DESC'
  5533.                                                 }
  5534.                                             })
  5535.                                             : null,
  5536.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  5537.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  5538.                                     },
  5539.                                     {
  5540.                                         label: 'Delivery verified',
  5541.                                         value: message.firstJob.appDelivered|number_format,
  5542.                                     },
  5543.                                     {
  5544.                                         label: 'Bounces',
  5545.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  5546.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  5547.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5548.                                                 message: message.id,
  5549.                                                 query: {
  5550.                                                     filter: 'app',
  5551.                                                     state: 'failed',
  5552.                                                     sort: 'timestamp',
  5553.                                                     direction: 'DESC'
  5554.                                                 }
  5555.                                             })
  5556.                                             : null,
  5557.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  5558.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  5559.                                     },
  5560.                                 ],
  5561.                             } %}
  5562.                                 {% block content %}
  5563.                                     <table class=\"table-clear border-0 text-gray-dark\">
  5564.                                         <tbody>
  5565.                                             <tr>
  5566.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  5567.                                                 <td class=\"pb-3 pb-sm-2\">
  5568.                                                     <span>{{ message.appTitle }}</span>
  5569.                                                 </td>
  5570.                                             </tr>
  5571.                                         </tbody>
  5572.                                     </table>
  5573.                                 {% endblock %}
  5574.                             {% endembed %}
  5575.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  5576.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  5577.                                 icon: 'icon-facebook-fill',
  5578.                                 title: 'Facebook',
  5579.                                 stats: [
  5580.                                     {
  5581.                                         label: 'Total posts',
  5582.                                         value: message.firstJob.facebookTotal|number_format,
  5583.                                         link: (message.firstJob.facebookTotal > 0)
  5584.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5585.                                                 message: message.id,
  5586.                                                 query: {
  5587.                                                     filter: 'facebook',
  5588.                                                     state: 'all',
  5589.                                                     sort: 'timestamp',
  5590.                                                     direction: 'DESC'
  5591.                                                 }
  5592.                                             })
  5593.                                             : null,
  5594.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  5595.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  5596.                                     },
  5597.                                     {
  5598.                                         label: 'Successful posts',
  5599.                                         value: message.firstJob.facebookSucceeded|number_format,
  5600.                                         link: (message.firstJob.facebookSucceeded > 0)
  5601.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5602.                                                 message: message.id,
  5603.                                                 query: {
  5604.                                                     filter: 'facebook',
  5605.                                                     state: 'completed',
  5606.                                                     sort: 'timestamp',
  5607.                                                     direction: 'DESC'
  5608.                                                 }
  5609.                                             })
  5610.                                             : null,
  5611.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  5612.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  5613.                                     },
  5614.                                     {
  5615.                                         label: 'Errors',
  5616.                                         value: message.firstJob.facebookFailed|number_format,
  5617.                                         link: (message.firstJob.facebookFailed > 0)
  5618.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5619.                                                 message: message.id,
  5620.                                                 query: {
  5621.                                                     filter: 'facebook',
  5622.                                                     state: 'failed',
  5623.                                                     sort: 'timestamp',
  5624.                                                     direction: 'DESC'
  5625.                                                 }
  5626.                                             })
  5627.                                             : null,
  5628.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  5629.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  5630.                                     },
  5631.                                 ],
  5632.                             } %}{% endembed %}
  5633.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  5634.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  5635.                                 icon: 'icon-twitter-fill',
  5636.                                 title: 'Twitter',
  5637.                                 stats: [
  5638.                                     {
  5639.                                         label: 'Total posts',
  5640.                                         value: message.firstJob.twitterTotal|number_format,
  5641.                                         link: (message.firstJob.twitterTotal > 0)
  5642.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5643.                                                 message: message.id,
  5644.                                                 query: {
  5645.                                                     filter: 'twitter',
  5646.                                                     state: 'all',
  5647.                                                     sort: 'timestamp',
  5648.                                                     direction: 'DESC'
  5649.                                                 }
  5650.                                             })
  5651.                                             : null,
  5652.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  5653.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  5654.                                     },
  5655.                                     {
  5656.                                         label: 'Successful posts',
  5657.                                         value: message.firstJob.twitterSucceeded|number_format,
  5658.                                         link: (message.firstJob.twitterSucceeded > 0)
  5659.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5660.                                                 message: message.id,
  5661.                                                 query: {
  5662.                                                     filter: 'twitter',
  5663.                                                     state: 'completed',
  5664.                                                     sort: 'timestamp',
  5665.                                                     direction: 'DESC'
  5666.                                                 }
  5667.                                             })
  5668.                                             : null,
  5669.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  5670.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  5671.                                     },
  5672.                                     {
  5673.                                         label: 'Errors',
  5674.                                         value: message.firstJob.twitterFailed|number_format,
  5675.                                         link: (message.firstJob.twitterFailed > 0)
  5676.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5677.                                                 message: message.id,
  5678.                                                 query: {
  5679.                                                     filter: 'twitter',
  5680.                                                     state: 'failed',
  5681.                                                     sort: 'timestamp',
  5682.                                                     direction: 'DESC'
  5683.                                                 }
  5684.                                             })
  5685.                                             : null,
  5686.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  5687.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  5688.                                     },
  5689.                                 ],
  5690.                             } %}{% endembed %}
  5691.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  5692.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  5693.                                 icon: 'fab fa-instagram',
  5694.                                 title: 'Instagram',
  5695.                                 stats: [
  5696.                                     {
  5697.                                         label: 'Total posts',
  5698.                                         value: message.firstJob.instagramTotal|number_format,
  5699.                                         link: (message.firstJob.instagramTotal > 0)
  5700.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5701.                                                 message: message.id,
  5702.                                                 query: {
  5703.                                                     filter: 'instagram',
  5704.                                                     state: 'all',
  5705.                                                     sort: 'timestamp',
  5706.                                                     direction: 'DESC'
  5707.                                                 }
  5708.                                             })
  5709.                                             : null,
  5710.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  5711.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  5712.                                     },
  5713.                                     {
  5714.                                         label: 'Successful posts',
  5715.                                         value: message.firstJob.instagramSucceeded|number_format,
  5716.                                         link: (message.firstJob.instagramSucceeded > 0)
  5717.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5718.                                                 message: message.id,
  5719.                                                 query: {
  5720.                                                     filter: 'instagram',
  5721.                                                     state: 'completed',
  5722.                                                     sort: 'timestamp',
  5723.                                                     direction: 'DESC'
  5724.                                                 }
  5725.                                             })
  5726.                                             : null,
  5727.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  5728.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  5729.                                     },
  5730.                                     {
  5731.                                         label: 'Errors',
  5732.                                         value: message.firstJob.instagramFailed|number_format,
  5733.                                         link: (message.firstJob.instagramFailed > 0)
  5734.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5735.                                                 message: message.id,
  5736.                                                 query: {
  5737.                                                     filter: 'instagram',
  5738.                                                     state: 'failed',
  5739.                                                     sort: 'timestamp',
  5740.                                                     direction: 'DESC'
  5741.                                                 }
  5742.                                             })
  5743.                                             : null,
  5744.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  5745.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  5746.                                     },
  5747.                                 ],
  5748.                             } %}{% endembed %}
  5749.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  5750.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  5751.                                 icon: 'icon-website',
  5752.                                 title: 'Website',
  5753.                                 stats: [
  5754.                                     {
  5755.                                         label: 'Total posts',
  5756.                                         value: message.firstJob.websiteTotal|number_format,
  5757.                                         link: (message.firstJob.websiteTotal > 0)
  5758.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5759.                                                 message: message.id,
  5760.                                                 query: {
  5761.                                                     filter: 'website',
  5762.                                                     state: 'all',
  5763.                                                     sort: 'timestamp',
  5764.                                                     direction: 'DESC'
  5765.                                                 }
  5766.                                             })
  5767.                                             : null,
  5768.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  5769.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  5770.                                     },
  5771.                                     {
  5772.                                         label: 'Successful posts',
  5773.                                         value: message.firstJob.websiteSucceeded|number_format,
  5774.                                         link: (message.firstJob.websiteSucceeded > 0)
  5775.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5776.                                                 message: message.id,
  5777.                                                 query: {
  5778.                                                     filter: 'website',
  5779.                                                     state: 'completed',
  5780.                                                     sort: 'timestamp',
  5781.                                                     direction: 'DESC'
  5782.                                                 }
  5783.                                             })
  5784.                                             : null,
  5785.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  5786.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  5787.                                     },
  5788.                                     {
  5789.                                         label: 'Errors',
  5790.                                         value: message.firstJob.websiteFailed|number_format,
  5791.                                         link: (message.firstJob.websiteFailed > 0)
  5792.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  5793.                                                 message: message.id,
  5794.                                                 query: {
  5795.                                                     filter: 'website',
  5796.                                                     state: 'failed',
  5797.                                                     sort: 'timestamp',
  5798.                                                     direction: 'DESC'
  5799.                                                 }
  5800.                                             })
  5801.                                             : null,
  5802.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  5803.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  5804.                                     },
  5805.                                 ],
  5806.                             } %}{% endembed %}
  5807.                         {% endif %}
  5808.                     {% endfor %}
  5809.                 {% endblock %}
  5810.             {% endembed %}
  5811.         </div>
  5812.     {% endif %}
  5813. {% endblock %}
  5814. {% block modals %}
  5815.     {{ parent() }}
  5816.     {% embed '@ui2022/modal.html.twig' with {
  5817.         attr: {
  5818.             id: 'modal__email_preview',
  5819.         },
  5820.     } %}
  5821.         {% block content %}
  5822.             {% embed '@ui2022/modal__content.html.twig' with {
  5823.                 title: 'Email Preview',
  5824.             } %}
  5825.                 {% block body %}
  5826.                     <iframe
  5827.                         id=\"preview-email-iframe\"
  5828.                         loading=\"lazy\"
  5829.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  5830.                         frameborder=\"0\"
  5831.                         style=\"width: 100%; height: 500px\"
  5832.                     >
  5833.                     </iframe>
  5834.                 {% endblock %}
  5835.             {% endembed %}
  5836.         {% endblock %}
  5837.     {% endembed %}
  5838.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  5839.         attr: {
  5840.             id: 'sidepanel__filtered_logs',
  5841.         },
  5842.     } %}
  5843.     <script type=\"text/javascript\">
  5844.         (function (window, document, \$, undefined) {
  5845.             \$(function () {
  5846.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  5847.                     const pageHeight = \$(window).height();
  5848.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  5849.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  5850.                 });
  5851.             });
  5852.         })(window, document, jQuery);
  5853.     </script>
  5854. {% endblock %}
  5855. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  5856.     }
  5857. }
  5858. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  5859. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___2123896173 extends \Twig\Template
  5860. {
  5861.     private $source;
  5862.     private $macros = [];
  5863.     public function __construct(Environment $env)
  5864.     {
  5865.         parent::__construct($env);
  5866.         $this->source $this->getSourceContext();
  5867.         $this->blocks = [
  5868.             'content' => [$this'block_content'],
  5869.         ];
  5870.     }
  5871.     protected function doGetParent(array $context)
  5872.     {
  5873.         // line 466
  5874.         return "@ui2022/card__deliverymethods.html.twig";
  5875.     }
  5876.     protected function doDisplay(array $context, array $blocks = [])
  5877.     {
  5878.         $macros $this->macros;
  5879.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  5880.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  5881.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  5882.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  5883.         $this->parent $this->loadTemplate("@ui2022/card__deliverymethods.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"466);
  5884.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  5885.         
  5886.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  5887.         
  5888.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  5889.     }
  5890.     // line 510
  5891.     public function block_content($context, array $blocks = [])
  5892.     {
  5893.         $macros $this->macros;
  5894.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  5895.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  5896.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  5897.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  5898.         // line 511
  5899.         echo "                                    <table class=\"table-clear border-0 text-gray-dark\">
  5900.                                         <tbody>
  5901.                                             <tr>
  5902.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  5903.                                                 <td class=\"pb-3 pb-sm-2\">
  5904.                                                     <span>";
  5905.         // line 516
  5906.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'516$this->source); })()), "appTitle", [], "any"falsefalsefalse516), "html"nulltrue);
  5907.         echo "</span>
  5908.                                                 </td>
  5909.                                             </tr>
  5910.                                         </tbody>
  5911.                                     </table>
  5912.                                 ";
  5913.         
  5914.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  5915.         
  5916.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  5917.     }
  5918.     public function getTemplateName()
  5919.     {
  5920.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  5921.     }
  5922.     public function isTraitable()
  5923.     {
  5924.         return false;
  5925.     }
  5926.     public function getDebugInfo()
  5927.     {
  5928.         return array (  6104 => 516,  6097 => 511,  6087 => 510,  6064 => 466,  5205 => 458,  5203 => 457,  5192 => 448,  5184 => 442,  5174 => 441,  5151 => 379,  4291 => 371,  4284 => 366,  4276 => 364,  4274 => 363,  4270 => 362,  4263 => 357,  4253 => 356,  4230 => 299,  3368 => 291,  3358 => 284,  3351 => 279,  3341 => 278,  3318 => 217,  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  5929.     }
  5930.     public function getSourceContext()
  5931.     {
  5932.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  5933. {% do dom_title_section('Messages') %}
  5934. {% block wrap %}content__area--uilib reports{% endblock %}
  5935. {% block header %}
  5936.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  5937.         title: message.title,
  5938.         back: {
  5939.             text: 'Back to Messages',
  5940.             link: path('app.notifications.dashboard.messages.main'),
  5941.         },
  5942.     } %}
  5943.         {% block actions %}
  5944.             {% include '@ui2022/button--a.html.twig' with {
  5945.                 text: 'Clone message',
  5946.                 link: path('app.notifications.dashboard.messages.create', {
  5947.                     clone: message.id,
  5948.                 }),
  5949.                 styles: 'gray',
  5950.             } %}
  5951.         {% endblock %}
  5952.     {% endembed %}
  5953. {% endblock %}
  5954. {% block content %}
  5955.     {% if not message.firstJob %}
  5956.         <div class=\"content__data reports__message pt-2\">
  5957.             <div class=\"blockgroup\">
  5958.                 <label class=\"blockgroup__label\">Message</label>
  5959.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  5960.             </div>
  5961.         </div>
  5962.     {% else %}
  5963.         {% set stats = message.firstJob.summarize %}
  5964.         <div class=\"content__data reports__message pt-2\">
  5965.             {% embed '@ui2022/tabs--static.html.twig' with {
  5966.                 items: [
  5967.                     {
  5968.                         text: 'Summary',
  5969.                         link: path('app.notifications.dashboard.messages.report', {
  5970.                             message: message.id,
  5971.                         }),
  5972.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  5973.                     },
  5974.                     {
  5975.                         text: 'Logs',
  5976.                         link: path('app.notifications.dashboard.messages.logs', {
  5977.                             message: message.id,
  5978.                         }),
  5979.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  5980.                     },
  5981.                     {
  5982.                         text: 'Debugging',
  5983.                         link: path('app.notifications.dashboard.messages.debugging', {
  5984.                             message: message.id,
  5985.                         }),
  5986.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  5987.                     },
  5988.                     {
  5989.                         text: 'Details',
  5990.                         link: path('app.notifications.dashboard.messages.details', {
  5991.                             message: message.id,
  5992.                         }),
  5993.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  5994.                     },
  5995.                 ],
  5996.             } %}
  5997.                 {% block tab %}
  5998.                     {% include '@ui2022/subheader.html.twig' with {
  5999.                         title: 'Summary',
  6000.                         classes: 'mt-4 pt-4',
  6001.                     } %}
  6002.                     <div class=\"three-column-section\">
  6003.                         <div class=\"three-column-inner-section\">
  6004.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  6005.                                 title: 'Sent',
  6006.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  6007.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  6008.                                 label: 'Contacts',
  6009.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  6010.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  6011.                                         message: message.id,
  6012.                                         query: {
  6013.                                             filter: 'all',
  6014.                                             state: 'all',
  6015.                                             sort: 'timestamp',
  6016.                                             direction: 'DESC'
  6017.                                         }
  6018.                                     })
  6019.                                     : null,
  6020.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  6021.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  6022.                             } %}
  6023.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  6024.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  6025.                                 title: message.sending ? 'Running' : 'Completed',
  6026.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  6027.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  6028.                                 label: interval[1]|default(''),
  6029.                             } %}
  6030.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  6031.                                 title: 'Errors',
  6032.                                 subtitle: 'Message not delivered',
  6033.                                 value: stats.all.failed|number_format,
  6034.                                 label: 'Contacts',
  6035.                                 link: (stats.all.failed > 0)
  6036.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  6037.                                         message: message.id,
  6038.                                         query: {
  6039.                                             filter: 'all',
  6040.                                             state: 'failed',
  6041.                                             sort: 'timestamp',
  6042.                                             direction: 'DESC'
  6043.                                         }
  6044.                                     })
  6045.                                     : null,
  6046.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  6047.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  6048.                             } %}
  6049.                         </div>
  6050.                     </div>
  6051.                     <div class=\"section__infostats mb-4\">
  6052.                         <div class=\"card card__charts\">
  6053.                             <div class=\"row row-10\">
  6054.                                 <div class=\"col-12 col-md-6\">
  6055.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  6056.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  6057.                                         {% include '@ui2022/chart--donut.html.twig' with {
  6058.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  6059.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  6060.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  6061.                                             }),
  6062.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  6063.                                             label: 'Total contacts',
  6064.                                         } %}
  6065.                                     </div>
  6066.                                 </div>
  6067.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  6068.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  6069.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  6070.                                         <div class=\"targetlist\">
  6071.                                             {% if message.lists|length %}
  6072.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  6073.                                                     title: 'Contact lists',
  6074.                                                     icon: 'icon-contact-reachable',
  6075.                                                     items: message.lists|map((list) => {
  6076.                                                         text: list.name,
  6077.                                                         link: path('app.notifications.dashboard.lists.view', {
  6078.                                                             list: list.id,
  6079.                                                         }),
  6080.                                                     }),
  6081.                                                 } %}
  6082.                                             {% endif %}
  6083.                                             {% if message.facebookSocialAccounts|length %}
  6084.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  6085.                                                     title: 'Facebook pages',
  6086.                                                     icon: 'icon-facebook-fill',
  6087.                                                     items: message.facebookSocialAccounts|map((social) => {
  6088.                                                         text: social.name,
  6089.                                                         target: '_blank',
  6090.                                                         link: 'https://www.facebook.com/%s'|format(
  6091.                                                             social.facebookPageId,
  6092.                                                         ),
  6093.                                                     }),
  6094.                                                 } %}
  6095.                                             {% endif %}
  6096.                                             {% if message.twitterSocialAccounts|length %}
  6097.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  6098.                                                     title: 'Twitter profiles',
  6099.                                                     icon: 'icon-twitter-fill',
  6100.                                                     items: message.twitterSocialAccounts|map((social) => {
  6101.                                                         text: social.name,
  6102.                                                         target: '_blank',
  6103.                                                         link: 'https://www.twitter.com/%s'|format(
  6104.                                                             social.twitterUserName,
  6105.                                                         ),
  6106.                                                     }),
  6107.                                                 } %}
  6108.                                             {% endif %}
  6109.                                             {% if message.instagramSocialAccounts|length %}
  6110.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  6111.                                                     title: 'Instagram accounts',
  6112.                                                     icon: 'fab fa-instagram',
  6113.                                                     items: message.instagramSocialAccounts|map((social) => {
  6114.                                                         text: social.name,
  6115.                                                         target: '_blank',
  6116.                                                         link: 'https://www.instagram.com/%s'|format(
  6117.                                                             social.name,
  6118.                                                         ),
  6119.                                                     }),
  6120.                                                 } %}
  6121.                                             {% endif %}
  6122.                                             {% if message.websiteDepartments|length %}
  6123.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  6124.                                                     title: 'Website departments',
  6125.                                                     icon: 'icon-website',
  6126.                                                     items: message.websiteDepartments|map((department) => {
  6127.                                                         text: department.name,
  6128.                                                         target: '_blank',
  6129.                                                         link: web_url_catchall(department, '/'),
  6130.                                                     }),
  6131.                                                 } %}
  6132.                                             {% endif %}
  6133.                                         </div>
  6134.                                     </div>
  6135.                                 {% endif %}
  6136.                             </div>
  6137.                         </div>
  6138.                     </div>
  6139.                     {% for channel in message.usedChannels(true) %}
  6140.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  6141.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  6142.                                 icon: 'icon-activity-mail',
  6143.                                 title: 'Email',
  6144.                                 stats: [
  6145.                                     {
  6146.                                         label: 'Total sent',
  6147.                                         value: message.firstJob.emailSucceeded|number_format,
  6148.                                         link: (message.firstJob.emailSucceeded > 0)
  6149.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6150.                                                 message: message.id,
  6151.                                                 query: {
  6152.                                                     filter: 'email',
  6153.                                                     sort: 'timestamp',
  6154.                                                     direction: 'DESC'
  6155.                                                 }
  6156.                                             })
  6157.                                             : null,
  6158.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  6159.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  6160.                                     },
  6161.                                     {
  6162.                                         label: 'Delivery verified',
  6163.                                         value: message.firstJob.emailDelivered|number_format,
  6164.                                         link: (message.firstJob.emailDelivered > 0)
  6165.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6166.                                                 message: message.id,
  6167.                                                 query: {
  6168.                                                     filter: 'email',
  6169.                                                     state: 'completed',
  6170.                                                     sort: 'timestamp',
  6171.                                                     direction: 'DESC'
  6172.                                                 }
  6173.                                             })
  6174.                                             : null,
  6175.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  6176.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  6177.                                     },
  6178.                                     {
  6179.                                         label: 'Bounces',
  6180.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  6181.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  6182.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6183.                                                 message: message.id,
  6184.                                                 query: {
  6185.                                                     filter: 'email',
  6186.                                                     state: 'failed',
  6187.                                                     sort: 'timestamp',
  6188.                                                     direction: 'DESC'
  6189.                                                 }
  6190.                                             })
  6191.                                             : null,
  6192.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  6193.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  6194.                                     },
  6195.                                     {
  6196.                                         label: 'Open rate',
  6197.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  6198.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  6199.                                     },
  6200.                                 ],
  6201.                             } %}
  6202.                                 {% block content %}
  6203.                                     <table class=\"table-clear border-0 text-gray-dark\">
  6204.                                         <tbody>
  6205.                                             <tr>
  6206.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  6207.                                                 <td class=\"pb-3 pb-sm-2\">
  6208.                                                     <span>{{ message.emailSubject }}</span>
  6209.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  6210.                                                 </td>
  6211.                                             </tr>
  6212.                                             <tr>
  6213.                                                 <td class=\"text-semibold pr-3\">From:</td>
  6214.                                                 <td>
  6215.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  6216.                                                 </td>
  6217.                                             </tr>
  6218.                                         </tbody>
  6219.                                     </table>
  6220.                                 {% endblock %}
  6221.                             {% endembed %}
  6222.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  6223.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  6224.                                 icon: 'icon-activity-text',
  6225.                                 title: 'SMS',
  6226.                                 stats: [
  6227.                                     {
  6228.                                         label: 'Total sent',
  6229.                                         value: message.firstJob.smsSucceeded|number_format,
  6230.                                         link: (message.firstJob.smsSucceeded > 0)
  6231.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6232.                                                 message: message.id,
  6233.                                                 query: {
  6234.                                                     filter: 'sms',
  6235.                                                     state: 'all',
  6236.                                                     sort: 'timestamp',
  6237.                                                     direction: 'DESC'
  6238.                                                 }
  6239.                                             })
  6240.                                             : null,
  6241.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  6242.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  6243.                                     },
  6244.                                     {
  6245.                                         label: 'Delivery verified',
  6246.                                         value: message.firstJob.smsDelivered|number_format,
  6247.                                         link: (message.firstJob.smsDelivered > 0)
  6248.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6249.                                                 message: message.id,
  6250.                                                 query: {
  6251.                                                     filter: 'sms',
  6252.                                                     state: 'completed',
  6253.                                                     sort: 'timestamp',
  6254.                                                     direction: 'DESC'
  6255.                                                 }
  6256.                                             })
  6257.                                             : null,
  6258.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  6259.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  6260.                                     },
  6261.                                     {
  6262.                                         label: 'Bounces',
  6263.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  6264.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  6265.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6266.                                                 message: message.id,
  6267.                                                 query: {
  6268.                                                     filter: 'sms',
  6269.                                                     state: 'failed',
  6270.                                                     sort: 'timestamp',
  6271.                                                     direction: 'DESC'
  6272.                                                 }
  6273.                                             })
  6274.                                             : null,
  6275.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  6276.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  6277.                                     },
  6278.                                 ],
  6279.                             } %}
  6280.                                 {% block content %}
  6281.                                     <table class=\"table-clear border-0 text-gray-dark\">
  6282.                                         <tbody>
  6283.                                             <tr>
  6284.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  6285.                                                 <td class=\"pb-3 pb-sm-2\">
  6286.                                                     <span>{{ message.smsText }}</span>
  6287.                                                     {% if message.smsUrl %}
  6288.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  6289.                                                     {% endif %}
  6290.                                                 </td>
  6291.                                             </tr>
  6292.                                             <tr>
  6293.                                                 <td class=\"text-semibold pr-3\">From:</td>
  6294.                                                 <td>
  6295.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  6296.                                                 </td>
  6297.                                             </tr>
  6298.                                         </tbody>
  6299.                                     </table>
  6300.                                 {% endblock %}
  6301.                             {% endembed %}
  6302.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  6303.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  6304.                                 icon: 'icon-activity-voice',
  6305.                                 title: 'Phone',
  6306.                                 stats: [
  6307.                                     {
  6308.                                         label: 'Total sent',
  6309.                                         value: message.firstJob.voiceSucceeded|number_format,
  6310.                                         link: (message.firstJob.voiceSucceeded > 0)
  6311.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6312.                                                 message: message.id,
  6313.                                                 query: {
  6314.                                                     filter: 'voice',
  6315.                                                     state: 'all',
  6316.                                                     sort: 'timestamp',
  6317.                                                     direction: 'DESC'
  6318.                                                 }
  6319.                                             })
  6320.                                             : null,
  6321.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  6322.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  6323.                                     },
  6324.                                     {
  6325.                                         label: 'Delivery verified',
  6326.                                         value: message.firstJob.voiceDelivered|number_format,
  6327.                                         link: (message.firstJob.voiceDelivered > 0)
  6328.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6329.                                                 message: message.id,
  6330.                                                 query: {
  6331.                                                     filter: 'voice',
  6332.                                                     state: 'completed',
  6333.                                                     sort: 'timestamp',
  6334.                                                     direction: 'DESC'
  6335.                                                 }
  6336.                                             })
  6337.                                             : null,
  6338.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  6339.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  6340.                                     },
  6341.                                     {
  6342.                                         label: 'Bounces',
  6343.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  6344.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  6345.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6346.                                                 message: message.id,
  6347.                                                 query: {
  6348.                                                     filter: 'voice',
  6349.                                                     state: 'failed',
  6350.                                                     sort: 'timestamp',
  6351.                                                     direction: 'DESC'
  6352.                                                 }
  6353.                                             })
  6354.                                             : null,
  6355.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  6356.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  6357.                                     },
  6358.                                     {
  6359.                                         label: 'Answer rate',
  6360.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  6361.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  6362.                                     },
  6363.                                 ],
  6364.                             } %}
  6365.                                 {% block content %}
  6366.                                     <table class=\"table-clear border-0 text-gray-dark\">
  6367.                                         <tbody>
  6368.                                             <tr>
  6369.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  6370.                                                 <td class=\"pb-3 pb-sm-2\">
  6371.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  6372.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  6373.                                                         Your browser does not support the audio element.
  6374.                                                     </audio>
  6375.                                                 </td>
  6376.                                             </tr>
  6377.                                             <tr>
  6378.                                                 <td class=\"text-semibold pr-3\">From:</td>
  6379.                                                 <td>
  6380.                                                     <span class=\"emailid\">
  6381.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  6382.                                                     </span>
  6383.                                                 </td>
  6384.                                             </tr>
  6385.                                         </tbody>
  6386.                                     </table>
  6387.                                 {% endblock %}
  6388.                             {% endembed %}
  6389.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  6390.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  6391.                                 icon: 'icon-deviceapp',
  6392.                                 title: 'Mobile app',
  6393.                                 stats: [
  6394.                                     {
  6395.                                         label: 'Total sent',
  6396.                                         value: message.firstJob.appSucceeded|number_format,
  6397.                                         link: (message.firstJob.appSucceeded > 0)
  6398.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6399.                                                 message: message.id,
  6400.                                                 query: {
  6401.                                                     filter: 'app',
  6402.                                                     state: 'pending',
  6403.                                                     sort: 'timestamp',
  6404.                                                     direction: 'DESC'
  6405.                                                 }
  6406.                                             })
  6407.                                             : null,
  6408.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  6409.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  6410.                                     },
  6411.                                     {
  6412.                                         label: 'Delivery verified',
  6413.                                         value: message.firstJob.appDelivered|number_format,
  6414.                                     },
  6415.                                     {
  6416.                                         label: 'Bounces',
  6417.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  6418.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  6419.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6420.                                                 message: message.id,
  6421.                                                 query: {
  6422.                                                     filter: 'app',
  6423.                                                     state: 'failed',
  6424.                                                     sort: 'timestamp',
  6425.                                                     direction: 'DESC'
  6426.                                                 }
  6427.                                             })
  6428.                                             : null,
  6429.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  6430.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  6431.                                     },
  6432.                                 ],
  6433.                             } %}
  6434.                                 {% block content %}
  6435.                                     <table class=\"table-clear border-0 text-gray-dark\">
  6436.                                         <tbody>
  6437.                                             <tr>
  6438.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  6439.                                                 <td class=\"pb-3 pb-sm-2\">
  6440.                                                     <span>{{ message.appTitle }}</span>
  6441.                                                 </td>
  6442.                                             </tr>
  6443.                                         </tbody>
  6444.                                     </table>
  6445.                                 {% endblock %}
  6446.                             {% endembed %}
  6447.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  6448.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  6449.                                 icon: 'icon-facebook-fill',
  6450.                                 title: 'Facebook',
  6451.                                 stats: [
  6452.                                     {
  6453.                                         label: 'Total posts',
  6454.                                         value: message.firstJob.facebookTotal|number_format,
  6455.                                         link: (message.firstJob.facebookTotal > 0)
  6456.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6457.                                                 message: message.id,
  6458.                                                 query: {
  6459.                                                     filter: 'facebook',
  6460.                                                     state: 'all',
  6461.                                                     sort: 'timestamp',
  6462.                                                     direction: 'DESC'
  6463.                                                 }
  6464.                                             })
  6465.                                             : null,
  6466.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  6467.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  6468.                                     },
  6469.                                     {
  6470.                                         label: 'Successful posts',
  6471.                                         value: message.firstJob.facebookSucceeded|number_format,
  6472.                                         link: (message.firstJob.facebookSucceeded > 0)
  6473.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6474.                                                 message: message.id,
  6475.                                                 query: {
  6476.                                                     filter: 'facebook',
  6477.                                                     state: 'completed',
  6478.                                                     sort: 'timestamp',
  6479.                                                     direction: 'DESC'
  6480.                                                 }
  6481.                                             })
  6482.                                             : null,
  6483.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  6484.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  6485.                                     },
  6486.                                     {
  6487.                                         label: 'Errors',
  6488.                                         value: message.firstJob.facebookFailed|number_format,
  6489.                                         link: (message.firstJob.facebookFailed > 0)
  6490.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6491.                                                 message: message.id,
  6492.                                                 query: {
  6493.                                                     filter: 'facebook',
  6494.                                                     state: 'failed',
  6495.                                                     sort: 'timestamp',
  6496.                                                     direction: 'DESC'
  6497.                                                 }
  6498.                                             })
  6499.                                             : null,
  6500.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  6501.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  6502.                                     },
  6503.                                 ],
  6504.                             } %}{% endembed %}
  6505.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  6506.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  6507.                                 icon: 'icon-twitter-fill',
  6508.                                 title: 'Twitter',
  6509.                                 stats: [
  6510.                                     {
  6511.                                         label: 'Total posts',
  6512.                                         value: message.firstJob.twitterTotal|number_format,
  6513.                                         link: (message.firstJob.twitterTotal > 0)
  6514.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6515.                                                 message: message.id,
  6516.                                                 query: {
  6517.                                                     filter: 'twitter',
  6518.                                                     state: 'all',
  6519.                                                     sort: 'timestamp',
  6520.                                                     direction: 'DESC'
  6521.                                                 }
  6522.                                             })
  6523.                                             : null,
  6524.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  6525.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  6526.                                     },
  6527.                                     {
  6528.                                         label: 'Successful posts',
  6529.                                         value: message.firstJob.twitterSucceeded|number_format,
  6530.                                         link: (message.firstJob.twitterSucceeded > 0)
  6531.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6532.                                                 message: message.id,
  6533.                                                 query: {
  6534.                                                     filter: 'twitter',
  6535.                                                     state: 'completed',
  6536.                                                     sort: 'timestamp',
  6537.                                                     direction: 'DESC'
  6538.                                                 }
  6539.                                             })
  6540.                                             : null,
  6541.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  6542.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  6543.                                     },
  6544.                                     {
  6545.                                         label: 'Errors',
  6546.                                         value: message.firstJob.twitterFailed|number_format,
  6547.                                         link: (message.firstJob.twitterFailed > 0)
  6548.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6549.                                                 message: message.id,
  6550.                                                 query: {
  6551.                                                     filter: 'twitter',
  6552.                                                     state: 'failed',
  6553.                                                     sort: 'timestamp',
  6554.                                                     direction: 'DESC'
  6555.                                                 }
  6556.                                             })
  6557.                                             : null,
  6558.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  6559.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  6560.                                     },
  6561.                                 ],
  6562.                             } %}{% endembed %}
  6563.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  6564.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  6565.                                 icon: 'fab fa-instagram',
  6566.                                 title: 'Instagram',
  6567.                                 stats: [
  6568.                                     {
  6569.                                         label: 'Total posts',
  6570.                                         value: message.firstJob.instagramTotal|number_format,
  6571.                                         link: (message.firstJob.instagramTotal > 0)
  6572.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6573.                                                 message: message.id,
  6574.                                                 query: {
  6575.                                                     filter: 'instagram',
  6576.                                                     state: 'all',
  6577.                                                     sort: 'timestamp',
  6578.                                                     direction: 'DESC'
  6579.                                                 }
  6580.                                             })
  6581.                                             : null,
  6582.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  6583.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  6584.                                     },
  6585.                                     {
  6586.                                         label: 'Successful posts',
  6587.                                         value: message.firstJob.instagramSucceeded|number_format,
  6588.                                         link: (message.firstJob.instagramSucceeded > 0)
  6589.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6590.                                                 message: message.id,
  6591.                                                 query: {
  6592.                                                     filter: 'instagram',
  6593.                                                     state: 'completed',
  6594.                                                     sort: 'timestamp',
  6595.                                                     direction: 'DESC'
  6596.                                                 }
  6597.                                             })
  6598.                                             : null,
  6599.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  6600.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  6601.                                     },
  6602.                                     {
  6603.                                         label: 'Errors',
  6604.                                         value: message.firstJob.instagramFailed|number_format,
  6605.                                         link: (message.firstJob.instagramFailed > 0)
  6606.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6607.                                                 message: message.id,
  6608.                                                 query: {
  6609.                                                     filter: 'instagram',
  6610.                                                     state: 'failed',
  6611.                                                     sort: 'timestamp',
  6612.                                                     direction: 'DESC'
  6613.                                                 }
  6614.                                             })
  6615.                                             : null,
  6616.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  6617.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  6618.                                     },
  6619.                                 ],
  6620.                             } %}{% endembed %}
  6621.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  6622.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  6623.                                 icon: 'icon-website',
  6624.                                 title: 'Website',
  6625.                                 stats: [
  6626.                                     {
  6627.                                         label: 'Total posts',
  6628.                                         value: message.firstJob.websiteTotal|number_format,
  6629.                                         link: (message.firstJob.websiteTotal > 0)
  6630.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6631.                                                 message: message.id,
  6632.                                                 query: {
  6633.                                                     filter: 'website',
  6634.                                                     state: 'all',
  6635.                                                     sort: 'timestamp',
  6636.                                                     direction: 'DESC'
  6637.                                                 }
  6638.                                             })
  6639.                                             : null,
  6640.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  6641.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  6642.                                     },
  6643.                                     {
  6644.                                         label: 'Successful posts',
  6645.                                         value: message.firstJob.websiteSucceeded|number_format,
  6646.                                         link: (message.firstJob.websiteSucceeded > 0)
  6647.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6648.                                                 message: message.id,
  6649.                                                 query: {
  6650.                                                     filter: 'website',
  6651.                                                     state: 'completed',
  6652.                                                     sort: 'timestamp',
  6653.                                                     direction: 'DESC'
  6654.                                                 }
  6655.                                             })
  6656.                                             : null,
  6657.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  6658.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  6659.                                     },
  6660.                                     {
  6661.                                         label: 'Errors',
  6662.                                         value: message.firstJob.websiteFailed|number_format,
  6663.                                         link: (message.firstJob.websiteFailed > 0)
  6664.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6665.                                                 message: message.id,
  6666.                                                 query: {
  6667.                                                     filter: 'website',
  6668.                                                     state: 'failed',
  6669.                                                     sort: 'timestamp',
  6670.                                                     direction: 'DESC'
  6671.                                                 }
  6672.                                             })
  6673.                                             : null,
  6674.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  6675.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  6676.                                     },
  6677.                                 ],
  6678.                             } %}{% endembed %}
  6679.                         {% endif %}
  6680.                     {% endfor %}
  6681.                 {% endblock %}
  6682.             {% endembed %}
  6683.         </div>
  6684.     {% endif %}
  6685. {% endblock %}
  6686. {% block modals %}
  6687.     {{ parent() }}
  6688.     {% embed '@ui2022/modal.html.twig' with {
  6689.         attr: {
  6690.             id: 'modal__email_preview',
  6691.         },
  6692.     } %}
  6693.         {% block content %}
  6694.             {% embed '@ui2022/modal__content.html.twig' with {
  6695.                 title: 'Email Preview',
  6696.             } %}
  6697.                 {% block body %}
  6698.                     <iframe
  6699.                         id=\"preview-email-iframe\"
  6700.                         loading=\"lazy\"
  6701.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  6702.                         frameborder=\"0\"
  6703.                         style=\"width: 100%; height: 500px\"
  6704.                     >
  6705.                     </iframe>
  6706.                 {% endblock %}
  6707.             {% endembed %}
  6708.         {% endblock %}
  6709.     {% endembed %}
  6710.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  6711.         attr: {
  6712.             id: 'sidepanel__filtered_logs',
  6713.         },
  6714.     } %}
  6715.     <script type=\"text/javascript\">
  6716.         (function (window, document, \$, undefined) {
  6717.             \$(function () {
  6718.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  6719.                     const pageHeight = \$(window).height();
  6720.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  6721.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  6722.                 });
  6723.             });
  6724.         })(window, document, jQuery);
  6725.     </script>
  6726. {% endblock %}
  6727. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  6728.     }
  6729. }
  6730. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  6731. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___1146006736 extends \Twig\Template
  6732. {
  6733.     private $source;
  6734.     private $macros = [];
  6735.     public function __construct(Environment $env)
  6736.     {
  6737.         parent::__construct($env);
  6738.         $this->source $this->getSourceContext();
  6739.         $this->blocks = [
  6740.         ];
  6741.     }
  6742.     protected function doGetParent(array $context)
  6743.     {
  6744.         // line 524
  6745.         return "@ui2022/card__deliverymethods.html.twig";
  6746.     }
  6747.     protected function doDisplay(array $context, array $blocks = [])
  6748.     {
  6749.         $macros $this->macros;
  6750.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  6751.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  6752.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  6753.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  6754.         $this->parent $this->loadTemplate("@ui2022/card__deliverymethods.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"524);
  6755.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  6756.         
  6757.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  6758.         
  6759.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  6760.     }
  6761.     public function getTemplateName()
  6762.     {
  6763.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  6764.     }
  6765.     public function isTraitable()
  6766.     {
  6767.         return false;
  6768.     }
  6769.     public function getDebugInfo()
  6770.     {
  6771.         return array (  6963 => 524,  6104 => 516,  6097 => 511,  6087 => 510,  6064 => 466,  5205 => 458,  5203 => 457,  5192 => 448,  5184 => 442,  5174 => 441,  5151 => 379,  4291 => 371,  4284 => 366,  4276 => 364,  4274 => 363,  4270 => 362,  4263 => 357,  4253 => 356,  4230 => 299,  3368 => 291,  3358 => 284,  3351 => 279,  3341 => 278,  3318 => 217,  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  6772.     }
  6773.     public function getSourceContext()
  6774.     {
  6775.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  6776. {% do dom_title_section('Messages') %}
  6777. {% block wrap %}content__area--uilib reports{% endblock %}
  6778. {% block header %}
  6779.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  6780.         title: message.title,
  6781.         back: {
  6782.             text: 'Back to Messages',
  6783.             link: path('app.notifications.dashboard.messages.main'),
  6784.         },
  6785.     } %}
  6786.         {% block actions %}
  6787.             {% include '@ui2022/button--a.html.twig' with {
  6788.                 text: 'Clone message',
  6789.                 link: path('app.notifications.dashboard.messages.create', {
  6790.                     clone: message.id,
  6791.                 }),
  6792.                 styles: 'gray',
  6793.             } %}
  6794.         {% endblock %}
  6795.     {% endembed %}
  6796. {% endblock %}
  6797. {% block content %}
  6798.     {% if not message.firstJob %}
  6799.         <div class=\"content__data reports__message pt-2\">
  6800.             <div class=\"blockgroup\">
  6801.                 <label class=\"blockgroup__label\">Message</label>
  6802.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  6803.             </div>
  6804.         </div>
  6805.     {% else %}
  6806.         {% set stats = message.firstJob.summarize %}
  6807.         <div class=\"content__data reports__message pt-2\">
  6808.             {% embed '@ui2022/tabs--static.html.twig' with {
  6809.                 items: [
  6810.                     {
  6811.                         text: 'Summary',
  6812.                         link: path('app.notifications.dashboard.messages.report', {
  6813.                             message: message.id,
  6814.                         }),
  6815.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  6816.                     },
  6817.                     {
  6818.                         text: 'Logs',
  6819.                         link: path('app.notifications.dashboard.messages.logs', {
  6820.                             message: message.id,
  6821.                         }),
  6822.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  6823.                     },
  6824.                     {
  6825.                         text: 'Debugging',
  6826.                         link: path('app.notifications.dashboard.messages.debugging', {
  6827.                             message: message.id,
  6828.                         }),
  6829.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  6830.                     },
  6831.                     {
  6832.                         text: 'Details',
  6833.                         link: path('app.notifications.dashboard.messages.details', {
  6834.                             message: message.id,
  6835.                         }),
  6836.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  6837.                     },
  6838.                 ],
  6839.             } %}
  6840.                 {% block tab %}
  6841.                     {% include '@ui2022/subheader.html.twig' with {
  6842.                         title: 'Summary',
  6843.                         classes: 'mt-4 pt-4',
  6844.                     } %}
  6845.                     <div class=\"three-column-section\">
  6846.                         <div class=\"three-column-inner-section\">
  6847.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  6848.                                 title: 'Sent',
  6849.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  6850.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  6851.                                 label: 'Contacts',
  6852.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  6853.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  6854.                                         message: message.id,
  6855.                                         query: {
  6856.                                             filter: 'all',
  6857.                                             state: 'all',
  6858.                                             sort: 'timestamp',
  6859.                                             direction: 'DESC'
  6860.                                         }
  6861.                                     })
  6862.                                     : null,
  6863.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  6864.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  6865.                             } %}
  6866.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  6867.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  6868.                                 title: message.sending ? 'Running' : 'Completed',
  6869.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  6870.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  6871.                                 label: interval[1]|default(''),
  6872.                             } %}
  6873.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  6874.                                 title: 'Errors',
  6875.                                 subtitle: 'Message not delivered',
  6876.                                 value: stats.all.failed|number_format,
  6877.                                 label: 'Contacts',
  6878.                                 link: (stats.all.failed > 0)
  6879.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  6880.                                         message: message.id,
  6881.                                         query: {
  6882.                                             filter: 'all',
  6883.                                             state: 'failed',
  6884.                                             sort: 'timestamp',
  6885.                                             direction: 'DESC'
  6886.                                         }
  6887.                                     })
  6888.                                     : null,
  6889.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  6890.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  6891.                             } %}
  6892.                         </div>
  6893.                     </div>
  6894.                     <div class=\"section__infostats mb-4\">
  6895.                         <div class=\"card card__charts\">
  6896.                             <div class=\"row row-10\">
  6897.                                 <div class=\"col-12 col-md-6\">
  6898.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  6899.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  6900.                                         {% include '@ui2022/chart--donut.html.twig' with {
  6901.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  6902.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  6903.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  6904.                                             }),
  6905.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  6906.                                             label: 'Total contacts',
  6907.                                         } %}
  6908.                                     </div>
  6909.                                 </div>
  6910.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  6911.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  6912.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  6913.                                         <div class=\"targetlist\">
  6914.                                             {% if message.lists|length %}
  6915.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  6916.                                                     title: 'Contact lists',
  6917.                                                     icon: 'icon-contact-reachable',
  6918.                                                     items: message.lists|map((list) => {
  6919.                                                         text: list.name,
  6920.                                                         link: path('app.notifications.dashboard.lists.view', {
  6921.                                                             list: list.id,
  6922.                                                         }),
  6923.                                                     }),
  6924.                                                 } %}
  6925.                                             {% endif %}
  6926.                                             {% if message.facebookSocialAccounts|length %}
  6927.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  6928.                                                     title: 'Facebook pages',
  6929.                                                     icon: 'icon-facebook-fill',
  6930.                                                     items: message.facebookSocialAccounts|map((social) => {
  6931.                                                         text: social.name,
  6932.                                                         target: '_blank',
  6933.                                                         link: 'https://www.facebook.com/%s'|format(
  6934.                                                             social.facebookPageId,
  6935.                                                         ),
  6936.                                                     }),
  6937.                                                 } %}
  6938.                                             {% endif %}
  6939.                                             {% if message.twitterSocialAccounts|length %}
  6940.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  6941.                                                     title: 'Twitter profiles',
  6942.                                                     icon: 'icon-twitter-fill',
  6943.                                                     items: message.twitterSocialAccounts|map((social) => {
  6944.                                                         text: social.name,
  6945.                                                         target: '_blank',
  6946.                                                         link: 'https://www.twitter.com/%s'|format(
  6947.                                                             social.twitterUserName,
  6948.                                                         ),
  6949.                                                     }),
  6950.                                                 } %}
  6951.                                             {% endif %}
  6952.                                             {% if message.instagramSocialAccounts|length %}
  6953.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  6954.                                                     title: 'Instagram accounts',
  6955.                                                     icon: 'fab fa-instagram',
  6956.                                                     items: message.instagramSocialAccounts|map((social) => {
  6957.                                                         text: social.name,
  6958.                                                         target: '_blank',
  6959.                                                         link: 'https://www.instagram.com/%s'|format(
  6960.                                                             social.name,
  6961.                                                         ),
  6962.                                                     }),
  6963.                                                 } %}
  6964.                                             {% endif %}
  6965.                                             {% if message.websiteDepartments|length %}
  6966.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  6967.                                                     title: 'Website departments',
  6968.                                                     icon: 'icon-website',
  6969.                                                     items: message.websiteDepartments|map((department) => {
  6970.                                                         text: department.name,
  6971.                                                         target: '_blank',
  6972.                                                         link: web_url_catchall(department, '/'),
  6973.                                                     }),
  6974.                                                 } %}
  6975.                                             {% endif %}
  6976.                                         </div>
  6977.                                     </div>
  6978.                                 {% endif %}
  6979.                             </div>
  6980.                         </div>
  6981.                     </div>
  6982.                     {% for channel in message.usedChannels(true) %}
  6983.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  6984.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  6985.                                 icon: 'icon-activity-mail',
  6986.                                 title: 'Email',
  6987.                                 stats: [
  6988.                                     {
  6989.                                         label: 'Total sent',
  6990.                                         value: message.firstJob.emailSucceeded|number_format,
  6991.                                         link: (message.firstJob.emailSucceeded > 0)
  6992.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  6993.                                                 message: message.id,
  6994.                                                 query: {
  6995.                                                     filter: 'email',
  6996.                                                     sort: 'timestamp',
  6997.                                                     direction: 'DESC'
  6998.                                                 }
  6999.                                             })
  7000.                                             : null,
  7001.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  7002.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  7003.                                     },
  7004.                                     {
  7005.                                         label: 'Delivery verified',
  7006.                                         value: message.firstJob.emailDelivered|number_format,
  7007.                                         link: (message.firstJob.emailDelivered > 0)
  7008.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7009.                                                 message: message.id,
  7010.                                                 query: {
  7011.                                                     filter: 'email',
  7012.                                                     state: 'completed',
  7013.                                                     sort: 'timestamp',
  7014.                                                     direction: 'DESC'
  7015.                                                 }
  7016.                                             })
  7017.                                             : null,
  7018.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  7019.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  7020.                                     },
  7021.                                     {
  7022.                                         label: 'Bounces',
  7023.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  7024.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  7025.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7026.                                                 message: message.id,
  7027.                                                 query: {
  7028.                                                     filter: 'email',
  7029.                                                     state: 'failed',
  7030.                                                     sort: 'timestamp',
  7031.                                                     direction: 'DESC'
  7032.                                                 }
  7033.                                             })
  7034.                                             : null,
  7035.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  7036.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  7037.                                     },
  7038.                                     {
  7039.                                         label: 'Open rate',
  7040.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  7041.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  7042.                                     },
  7043.                                 ],
  7044.                             } %}
  7045.                                 {% block content %}
  7046.                                     <table class=\"table-clear border-0 text-gray-dark\">
  7047.                                         <tbody>
  7048.                                             <tr>
  7049.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  7050.                                                 <td class=\"pb-3 pb-sm-2\">
  7051.                                                     <span>{{ message.emailSubject }}</span>
  7052.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  7053.                                                 </td>
  7054.                                             </tr>
  7055.                                             <tr>
  7056.                                                 <td class=\"text-semibold pr-3\">From:</td>
  7057.                                                 <td>
  7058.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  7059.                                                 </td>
  7060.                                             </tr>
  7061.                                         </tbody>
  7062.                                     </table>
  7063.                                 {% endblock %}
  7064.                             {% endembed %}
  7065.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  7066.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  7067.                                 icon: 'icon-activity-text',
  7068.                                 title: 'SMS',
  7069.                                 stats: [
  7070.                                     {
  7071.                                         label: 'Total sent',
  7072.                                         value: message.firstJob.smsSucceeded|number_format,
  7073.                                         link: (message.firstJob.smsSucceeded > 0)
  7074.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7075.                                                 message: message.id,
  7076.                                                 query: {
  7077.                                                     filter: 'sms',
  7078.                                                     state: 'all',
  7079.                                                     sort: 'timestamp',
  7080.                                                     direction: 'DESC'
  7081.                                                 }
  7082.                                             })
  7083.                                             : null,
  7084.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  7085.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  7086.                                     },
  7087.                                     {
  7088.                                         label: 'Delivery verified',
  7089.                                         value: message.firstJob.smsDelivered|number_format,
  7090.                                         link: (message.firstJob.smsDelivered > 0)
  7091.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7092.                                                 message: message.id,
  7093.                                                 query: {
  7094.                                                     filter: 'sms',
  7095.                                                     state: 'completed',
  7096.                                                     sort: 'timestamp',
  7097.                                                     direction: 'DESC'
  7098.                                                 }
  7099.                                             })
  7100.                                             : null,
  7101.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  7102.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  7103.                                     },
  7104.                                     {
  7105.                                         label: 'Bounces',
  7106.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  7107.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  7108.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7109.                                                 message: message.id,
  7110.                                                 query: {
  7111.                                                     filter: 'sms',
  7112.                                                     state: 'failed',
  7113.                                                     sort: 'timestamp',
  7114.                                                     direction: 'DESC'
  7115.                                                 }
  7116.                                             })
  7117.                                             : null,
  7118.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  7119.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  7120.                                     },
  7121.                                 ],
  7122.                             } %}
  7123.                                 {% block content %}
  7124.                                     <table class=\"table-clear border-0 text-gray-dark\">
  7125.                                         <tbody>
  7126.                                             <tr>
  7127.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  7128.                                                 <td class=\"pb-3 pb-sm-2\">
  7129.                                                     <span>{{ message.smsText }}</span>
  7130.                                                     {% if message.smsUrl %}
  7131.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  7132.                                                     {% endif %}
  7133.                                                 </td>
  7134.                                             </tr>
  7135.                                             <tr>
  7136.                                                 <td class=\"text-semibold pr-3\">From:</td>
  7137.                                                 <td>
  7138.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  7139.                                                 </td>
  7140.                                             </tr>
  7141.                                         </tbody>
  7142.                                     </table>
  7143.                                 {% endblock %}
  7144.                             {% endembed %}
  7145.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  7146.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  7147.                                 icon: 'icon-activity-voice',
  7148.                                 title: 'Phone',
  7149.                                 stats: [
  7150.                                     {
  7151.                                         label: 'Total sent',
  7152.                                         value: message.firstJob.voiceSucceeded|number_format,
  7153.                                         link: (message.firstJob.voiceSucceeded > 0)
  7154.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7155.                                                 message: message.id,
  7156.                                                 query: {
  7157.                                                     filter: 'voice',
  7158.                                                     state: 'all',
  7159.                                                     sort: 'timestamp',
  7160.                                                     direction: 'DESC'
  7161.                                                 }
  7162.                                             })
  7163.                                             : null,
  7164.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  7165.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  7166.                                     },
  7167.                                     {
  7168.                                         label: 'Delivery verified',
  7169.                                         value: message.firstJob.voiceDelivered|number_format,
  7170.                                         link: (message.firstJob.voiceDelivered > 0)
  7171.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7172.                                                 message: message.id,
  7173.                                                 query: {
  7174.                                                     filter: 'voice',
  7175.                                                     state: 'completed',
  7176.                                                     sort: 'timestamp',
  7177.                                                     direction: 'DESC'
  7178.                                                 }
  7179.                                             })
  7180.                                             : null,
  7181.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  7182.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  7183.                                     },
  7184.                                     {
  7185.                                         label: 'Bounces',
  7186.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  7187.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  7188.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7189.                                                 message: message.id,
  7190.                                                 query: {
  7191.                                                     filter: 'voice',
  7192.                                                     state: 'failed',
  7193.                                                     sort: 'timestamp',
  7194.                                                     direction: 'DESC'
  7195.                                                 }
  7196.                                             })
  7197.                                             : null,
  7198.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  7199.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  7200.                                     },
  7201.                                     {
  7202.                                         label: 'Answer rate',
  7203.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  7204.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  7205.                                     },
  7206.                                 ],
  7207.                             } %}
  7208.                                 {% block content %}
  7209.                                     <table class=\"table-clear border-0 text-gray-dark\">
  7210.                                         <tbody>
  7211.                                             <tr>
  7212.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  7213.                                                 <td class=\"pb-3 pb-sm-2\">
  7214.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  7215.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  7216.                                                         Your browser does not support the audio element.
  7217.                                                     </audio>
  7218.                                                 </td>
  7219.                                             </tr>
  7220.                                             <tr>
  7221.                                                 <td class=\"text-semibold pr-3\">From:</td>
  7222.                                                 <td>
  7223.                                                     <span class=\"emailid\">
  7224.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  7225.                                                     </span>
  7226.                                                 </td>
  7227.                                             </tr>
  7228.                                         </tbody>
  7229.                                     </table>
  7230.                                 {% endblock %}
  7231.                             {% endembed %}
  7232.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  7233.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  7234.                                 icon: 'icon-deviceapp',
  7235.                                 title: 'Mobile app',
  7236.                                 stats: [
  7237.                                     {
  7238.                                         label: 'Total sent',
  7239.                                         value: message.firstJob.appSucceeded|number_format,
  7240.                                         link: (message.firstJob.appSucceeded > 0)
  7241.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7242.                                                 message: message.id,
  7243.                                                 query: {
  7244.                                                     filter: 'app',
  7245.                                                     state: 'pending',
  7246.                                                     sort: 'timestamp',
  7247.                                                     direction: 'DESC'
  7248.                                                 }
  7249.                                             })
  7250.                                             : null,
  7251.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  7252.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  7253.                                     },
  7254.                                     {
  7255.                                         label: 'Delivery verified',
  7256.                                         value: message.firstJob.appDelivered|number_format,
  7257.                                     },
  7258.                                     {
  7259.                                         label: 'Bounces',
  7260.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  7261.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  7262.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7263.                                                 message: message.id,
  7264.                                                 query: {
  7265.                                                     filter: 'app',
  7266.                                                     state: 'failed',
  7267.                                                     sort: 'timestamp',
  7268.                                                     direction: 'DESC'
  7269.                                                 }
  7270.                                             })
  7271.                                             : null,
  7272.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  7273.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  7274.                                     },
  7275.                                 ],
  7276.                             } %}
  7277.                                 {% block content %}
  7278.                                     <table class=\"table-clear border-0 text-gray-dark\">
  7279.                                         <tbody>
  7280.                                             <tr>
  7281.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  7282.                                                 <td class=\"pb-3 pb-sm-2\">
  7283.                                                     <span>{{ message.appTitle }}</span>
  7284.                                                 </td>
  7285.                                             </tr>
  7286.                                         </tbody>
  7287.                                     </table>
  7288.                                 {% endblock %}
  7289.                             {% endembed %}
  7290.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  7291.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  7292.                                 icon: 'icon-facebook-fill',
  7293.                                 title: 'Facebook',
  7294.                                 stats: [
  7295.                                     {
  7296.                                         label: 'Total posts',
  7297.                                         value: message.firstJob.facebookTotal|number_format,
  7298.                                         link: (message.firstJob.facebookTotal > 0)
  7299.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7300.                                                 message: message.id,
  7301.                                                 query: {
  7302.                                                     filter: 'facebook',
  7303.                                                     state: 'all',
  7304.                                                     sort: 'timestamp',
  7305.                                                     direction: 'DESC'
  7306.                                                 }
  7307.                                             })
  7308.                                             : null,
  7309.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  7310.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  7311.                                     },
  7312.                                     {
  7313.                                         label: 'Successful posts',
  7314.                                         value: message.firstJob.facebookSucceeded|number_format,
  7315.                                         link: (message.firstJob.facebookSucceeded > 0)
  7316.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7317.                                                 message: message.id,
  7318.                                                 query: {
  7319.                                                     filter: 'facebook',
  7320.                                                     state: 'completed',
  7321.                                                     sort: 'timestamp',
  7322.                                                     direction: 'DESC'
  7323.                                                 }
  7324.                                             })
  7325.                                             : null,
  7326.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  7327.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  7328.                                     },
  7329.                                     {
  7330.                                         label: 'Errors',
  7331.                                         value: message.firstJob.facebookFailed|number_format,
  7332.                                         link: (message.firstJob.facebookFailed > 0)
  7333.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7334.                                                 message: message.id,
  7335.                                                 query: {
  7336.                                                     filter: 'facebook',
  7337.                                                     state: 'failed',
  7338.                                                     sort: 'timestamp',
  7339.                                                     direction: 'DESC'
  7340.                                                 }
  7341.                                             })
  7342.                                             : null,
  7343.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  7344.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  7345.                                     },
  7346.                                 ],
  7347.                             } %}{% endembed %}
  7348.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  7349.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  7350.                                 icon: 'icon-twitter-fill',
  7351.                                 title: 'Twitter',
  7352.                                 stats: [
  7353.                                     {
  7354.                                         label: 'Total posts',
  7355.                                         value: message.firstJob.twitterTotal|number_format,
  7356.                                         link: (message.firstJob.twitterTotal > 0)
  7357.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7358.                                                 message: message.id,
  7359.                                                 query: {
  7360.                                                     filter: 'twitter',
  7361.                                                     state: 'all',
  7362.                                                     sort: 'timestamp',
  7363.                                                     direction: 'DESC'
  7364.                                                 }
  7365.                                             })
  7366.                                             : null,
  7367.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  7368.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  7369.                                     },
  7370.                                     {
  7371.                                         label: 'Successful posts',
  7372.                                         value: message.firstJob.twitterSucceeded|number_format,
  7373.                                         link: (message.firstJob.twitterSucceeded > 0)
  7374.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7375.                                                 message: message.id,
  7376.                                                 query: {
  7377.                                                     filter: 'twitter',
  7378.                                                     state: 'completed',
  7379.                                                     sort: 'timestamp',
  7380.                                                     direction: 'DESC'
  7381.                                                 }
  7382.                                             })
  7383.                                             : null,
  7384.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  7385.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  7386.                                     },
  7387.                                     {
  7388.                                         label: 'Errors',
  7389.                                         value: message.firstJob.twitterFailed|number_format,
  7390.                                         link: (message.firstJob.twitterFailed > 0)
  7391.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7392.                                                 message: message.id,
  7393.                                                 query: {
  7394.                                                     filter: 'twitter',
  7395.                                                     state: 'failed',
  7396.                                                     sort: 'timestamp',
  7397.                                                     direction: 'DESC'
  7398.                                                 }
  7399.                                             })
  7400.                                             : null,
  7401.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  7402.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  7403.                                     },
  7404.                                 ],
  7405.                             } %}{% endembed %}
  7406.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  7407.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  7408.                                 icon: 'fab fa-instagram',
  7409.                                 title: 'Instagram',
  7410.                                 stats: [
  7411.                                     {
  7412.                                         label: 'Total posts',
  7413.                                         value: message.firstJob.instagramTotal|number_format,
  7414.                                         link: (message.firstJob.instagramTotal > 0)
  7415.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7416.                                                 message: message.id,
  7417.                                                 query: {
  7418.                                                     filter: 'instagram',
  7419.                                                     state: 'all',
  7420.                                                     sort: 'timestamp',
  7421.                                                     direction: 'DESC'
  7422.                                                 }
  7423.                                             })
  7424.                                             : null,
  7425.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  7426.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  7427.                                     },
  7428.                                     {
  7429.                                         label: 'Successful posts',
  7430.                                         value: message.firstJob.instagramSucceeded|number_format,
  7431.                                         link: (message.firstJob.instagramSucceeded > 0)
  7432.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7433.                                                 message: message.id,
  7434.                                                 query: {
  7435.                                                     filter: 'instagram',
  7436.                                                     state: 'completed',
  7437.                                                     sort: 'timestamp',
  7438.                                                     direction: 'DESC'
  7439.                                                 }
  7440.                                             })
  7441.                                             : null,
  7442.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  7443.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  7444.                                     },
  7445.                                     {
  7446.                                         label: 'Errors',
  7447.                                         value: message.firstJob.instagramFailed|number_format,
  7448.                                         link: (message.firstJob.instagramFailed > 0)
  7449.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7450.                                                 message: message.id,
  7451.                                                 query: {
  7452.                                                     filter: 'instagram',
  7453.                                                     state: 'failed',
  7454.                                                     sort: 'timestamp',
  7455.                                                     direction: 'DESC'
  7456.                                                 }
  7457.                                             })
  7458.                                             : null,
  7459.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  7460.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  7461.                                     },
  7462.                                 ],
  7463.                             } %}{% endembed %}
  7464.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  7465.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  7466.                                 icon: 'icon-website',
  7467.                                 title: 'Website',
  7468.                                 stats: [
  7469.                                     {
  7470.                                         label: 'Total posts',
  7471.                                         value: message.firstJob.websiteTotal|number_format,
  7472.                                         link: (message.firstJob.websiteTotal > 0)
  7473.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7474.                                                 message: message.id,
  7475.                                                 query: {
  7476.                                                     filter: 'website',
  7477.                                                     state: 'all',
  7478.                                                     sort: 'timestamp',
  7479.                                                     direction: 'DESC'
  7480.                                                 }
  7481.                                             })
  7482.                                             : null,
  7483.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  7484.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  7485.                                     },
  7486.                                     {
  7487.                                         label: 'Successful posts',
  7488.                                         value: message.firstJob.websiteSucceeded|number_format,
  7489.                                         link: (message.firstJob.websiteSucceeded > 0)
  7490.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7491.                                                 message: message.id,
  7492.                                                 query: {
  7493.                                                     filter: 'website',
  7494.                                                     state: 'completed',
  7495.                                                     sort: 'timestamp',
  7496.                                                     direction: 'DESC'
  7497.                                                 }
  7498.                                             })
  7499.                                             : null,
  7500.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  7501.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  7502.                                     },
  7503.                                     {
  7504.                                         label: 'Errors',
  7505.                                         value: message.firstJob.websiteFailed|number_format,
  7506.                                         link: (message.firstJob.websiteFailed > 0)
  7507.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7508.                                                 message: message.id,
  7509.                                                 query: {
  7510.                                                     filter: 'website',
  7511.                                                     state: 'failed',
  7512.                                                     sort: 'timestamp',
  7513.                                                     direction: 'DESC'
  7514.                                                 }
  7515.                                             })
  7516.                                             : null,
  7517.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  7518.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  7519.                                     },
  7520.                                 ],
  7521.                             } %}{% endembed %}
  7522.                         {% endif %}
  7523.                     {% endfor %}
  7524.                 {% endblock %}
  7525.             {% endembed %}
  7526.         </div>
  7527.     {% endif %}
  7528. {% endblock %}
  7529. {% block modals %}
  7530.     {{ parent() }}
  7531.     {% embed '@ui2022/modal.html.twig' with {
  7532.         attr: {
  7533.             id: 'modal__email_preview',
  7534.         },
  7535.     } %}
  7536.         {% block content %}
  7537.             {% embed '@ui2022/modal__content.html.twig' with {
  7538.                 title: 'Email Preview',
  7539.             } %}
  7540.                 {% block body %}
  7541.                     <iframe
  7542.                         id=\"preview-email-iframe\"
  7543.                         loading=\"lazy\"
  7544.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  7545.                         frameborder=\"0\"
  7546.                         style=\"width: 100%; height: 500px\"
  7547.                     >
  7548.                     </iframe>
  7549.                 {% endblock %}
  7550.             {% endembed %}
  7551.         {% endblock %}
  7552.     {% endembed %}
  7553.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  7554.         attr: {
  7555.             id: 'sidepanel__filtered_logs',
  7556.         },
  7557.     } %}
  7558.     <script type=\"text/javascript\">
  7559.         (function (window, document, \$, undefined) {
  7560.             \$(function () {
  7561.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  7562.                     const pageHeight = \$(window).height();
  7563.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  7564.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  7565.                 });
  7566.             });
  7567.         })(window, document, jQuery);
  7568.     </script>
  7569. {% endblock %}
  7570. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  7571.     }
  7572. }
  7573. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  7574. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___799899813 extends \Twig\Template
  7575. {
  7576.     private $source;
  7577.     private $macros = [];
  7578.     public function __construct(Environment $env)
  7579.     {
  7580.         parent::__construct($env);
  7581.         $this->source $this->getSourceContext();
  7582.         $this->blocks = [
  7583.         ];
  7584.     }
  7585.     protected function doGetParent(array $context)
  7586.     {
  7587.         // line 582
  7588.         return "@ui2022/card__deliverymethods.html.twig";
  7589.     }
  7590.     protected function doDisplay(array $context, array $blocks = [])
  7591.     {
  7592.         $macros $this->macros;
  7593.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  7594.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  7595.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  7596.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  7597.         $this->parent $this->loadTemplate("@ui2022/card__deliverymethods.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"582);
  7598.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  7599.         
  7600.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  7601.         
  7602.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  7603.     }
  7604.     public function getTemplateName()
  7605.     {
  7606.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  7607.     }
  7608.     public function isTraitable()
  7609.     {
  7610.         return false;
  7611.     }
  7612.     public function getDebugInfo()
  7613.     {
  7614.         return array (  7829 => 582,  6963 => 524,  6104 => 516,  6097 => 511,  6087 => 510,  6064 => 466,  5205 => 458,  5203 => 457,  5192 => 448,  5184 => 442,  5174 => 441,  5151 => 379,  4291 => 371,  4284 => 366,  4276 => 364,  4274 => 363,  4270 => 362,  4263 => 357,  4253 => 356,  4230 => 299,  3368 => 291,  3358 => 284,  3351 => 279,  3341 => 278,  3318 => 217,  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  7615.     }
  7616.     public function getSourceContext()
  7617.     {
  7618.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  7619. {% do dom_title_section('Messages') %}
  7620. {% block wrap %}content__area--uilib reports{% endblock %}
  7621. {% block header %}
  7622.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  7623.         title: message.title,
  7624.         back: {
  7625.             text: 'Back to Messages',
  7626.             link: path('app.notifications.dashboard.messages.main'),
  7627.         },
  7628.     } %}
  7629.         {% block actions %}
  7630.             {% include '@ui2022/button--a.html.twig' with {
  7631.                 text: 'Clone message',
  7632.                 link: path('app.notifications.dashboard.messages.create', {
  7633.                     clone: message.id,
  7634.                 }),
  7635.                 styles: 'gray',
  7636.             } %}
  7637.         {% endblock %}
  7638.     {% endembed %}
  7639. {% endblock %}
  7640. {% block content %}
  7641.     {% if not message.firstJob %}
  7642.         <div class=\"content__data reports__message pt-2\">
  7643.             <div class=\"blockgroup\">
  7644.                 <label class=\"blockgroup__label\">Message</label>
  7645.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  7646.             </div>
  7647.         </div>
  7648.     {% else %}
  7649.         {% set stats = message.firstJob.summarize %}
  7650.         <div class=\"content__data reports__message pt-2\">
  7651.             {% embed '@ui2022/tabs--static.html.twig' with {
  7652.                 items: [
  7653.                     {
  7654.                         text: 'Summary',
  7655.                         link: path('app.notifications.dashboard.messages.report', {
  7656.                             message: message.id,
  7657.                         }),
  7658.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  7659.                     },
  7660.                     {
  7661.                         text: 'Logs',
  7662.                         link: path('app.notifications.dashboard.messages.logs', {
  7663.                             message: message.id,
  7664.                         }),
  7665.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  7666.                     },
  7667.                     {
  7668.                         text: 'Debugging',
  7669.                         link: path('app.notifications.dashboard.messages.debugging', {
  7670.                             message: message.id,
  7671.                         }),
  7672.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  7673.                     },
  7674.                     {
  7675.                         text: 'Details',
  7676.                         link: path('app.notifications.dashboard.messages.details', {
  7677.                             message: message.id,
  7678.                         }),
  7679.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  7680.                     },
  7681.                 ],
  7682.             } %}
  7683.                 {% block tab %}
  7684.                     {% include '@ui2022/subheader.html.twig' with {
  7685.                         title: 'Summary',
  7686.                         classes: 'mt-4 pt-4',
  7687.                     } %}
  7688.                     <div class=\"three-column-section\">
  7689.                         <div class=\"three-column-inner-section\">
  7690.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  7691.                                 title: 'Sent',
  7692.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  7693.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  7694.                                 label: 'Contacts',
  7695.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  7696.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  7697.                                         message: message.id,
  7698.                                         query: {
  7699.                                             filter: 'all',
  7700.                                             state: 'all',
  7701.                                             sort: 'timestamp',
  7702.                                             direction: 'DESC'
  7703.                                         }
  7704.                                     })
  7705.                                     : null,
  7706.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  7707.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  7708.                             } %}
  7709.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  7710.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  7711.                                 title: message.sending ? 'Running' : 'Completed',
  7712.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  7713.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  7714.                                 label: interval[1]|default(''),
  7715.                             } %}
  7716.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  7717.                                 title: 'Errors',
  7718.                                 subtitle: 'Message not delivered',
  7719.                                 value: stats.all.failed|number_format,
  7720.                                 label: 'Contacts',
  7721.                                 link: (stats.all.failed > 0)
  7722.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  7723.                                         message: message.id,
  7724.                                         query: {
  7725.                                             filter: 'all',
  7726.                                             state: 'failed',
  7727.                                             sort: 'timestamp',
  7728.                                             direction: 'DESC'
  7729.                                         }
  7730.                                     })
  7731.                                     : null,
  7732.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  7733.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  7734.                             } %}
  7735.                         </div>
  7736.                     </div>
  7737.                     <div class=\"section__infostats mb-4\">
  7738.                         <div class=\"card card__charts\">
  7739.                             <div class=\"row row-10\">
  7740.                                 <div class=\"col-12 col-md-6\">
  7741.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  7742.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  7743.                                         {% include '@ui2022/chart--donut.html.twig' with {
  7744.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  7745.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  7746.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  7747.                                             }),
  7748.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  7749.                                             label: 'Total contacts',
  7750.                                         } %}
  7751.                                     </div>
  7752.                                 </div>
  7753.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  7754.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  7755.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  7756.                                         <div class=\"targetlist\">
  7757.                                             {% if message.lists|length %}
  7758.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  7759.                                                     title: 'Contact lists',
  7760.                                                     icon: 'icon-contact-reachable',
  7761.                                                     items: message.lists|map((list) => {
  7762.                                                         text: list.name,
  7763.                                                         link: path('app.notifications.dashboard.lists.view', {
  7764.                                                             list: list.id,
  7765.                                                         }),
  7766.                                                     }),
  7767.                                                 } %}
  7768.                                             {% endif %}
  7769.                                             {% if message.facebookSocialAccounts|length %}
  7770.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  7771.                                                     title: 'Facebook pages',
  7772.                                                     icon: 'icon-facebook-fill',
  7773.                                                     items: message.facebookSocialAccounts|map((social) => {
  7774.                                                         text: social.name,
  7775.                                                         target: '_blank',
  7776.                                                         link: 'https://www.facebook.com/%s'|format(
  7777.                                                             social.facebookPageId,
  7778.                                                         ),
  7779.                                                     }),
  7780.                                                 } %}
  7781.                                             {% endif %}
  7782.                                             {% if message.twitterSocialAccounts|length %}
  7783.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  7784.                                                     title: 'Twitter profiles',
  7785.                                                     icon: 'icon-twitter-fill',
  7786.                                                     items: message.twitterSocialAccounts|map((social) => {
  7787.                                                         text: social.name,
  7788.                                                         target: '_blank',
  7789.                                                         link: 'https://www.twitter.com/%s'|format(
  7790.                                                             social.twitterUserName,
  7791.                                                         ),
  7792.                                                     }),
  7793.                                                 } %}
  7794.                                             {% endif %}
  7795.                                             {% if message.instagramSocialAccounts|length %}
  7796.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  7797.                                                     title: 'Instagram accounts',
  7798.                                                     icon: 'fab fa-instagram',
  7799.                                                     items: message.instagramSocialAccounts|map((social) => {
  7800.                                                         text: social.name,
  7801.                                                         target: '_blank',
  7802.                                                         link: 'https://www.instagram.com/%s'|format(
  7803.                                                             social.name,
  7804.                                                         ),
  7805.                                                     }),
  7806.                                                 } %}
  7807.                                             {% endif %}
  7808.                                             {% if message.websiteDepartments|length %}
  7809.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  7810.                                                     title: 'Website departments',
  7811.                                                     icon: 'icon-website',
  7812.                                                     items: message.websiteDepartments|map((department) => {
  7813.                                                         text: department.name,
  7814.                                                         target: '_blank',
  7815.                                                         link: web_url_catchall(department, '/'),
  7816.                                                     }),
  7817.                                                 } %}
  7818.                                             {% endif %}
  7819.                                         </div>
  7820.                                     </div>
  7821.                                 {% endif %}
  7822.                             </div>
  7823.                         </div>
  7824.                     </div>
  7825.                     {% for channel in message.usedChannels(true) %}
  7826.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  7827.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  7828.                                 icon: 'icon-activity-mail',
  7829.                                 title: 'Email',
  7830.                                 stats: [
  7831.                                     {
  7832.                                         label: 'Total sent',
  7833.                                         value: message.firstJob.emailSucceeded|number_format,
  7834.                                         link: (message.firstJob.emailSucceeded > 0)
  7835.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7836.                                                 message: message.id,
  7837.                                                 query: {
  7838.                                                     filter: 'email',
  7839.                                                     sort: 'timestamp',
  7840.                                                     direction: 'DESC'
  7841.                                                 }
  7842.                                             })
  7843.                                             : null,
  7844.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  7845.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  7846.                                     },
  7847.                                     {
  7848.                                         label: 'Delivery verified',
  7849.                                         value: message.firstJob.emailDelivered|number_format,
  7850.                                         link: (message.firstJob.emailDelivered > 0)
  7851.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7852.                                                 message: message.id,
  7853.                                                 query: {
  7854.                                                     filter: 'email',
  7855.                                                     state: 'completed',
  7856.                                                     sort: 'timestamp',
  7857.                                                     direction: 'DESC'
  7858.                                                 }
  7859.                                             })
  7860.                                             : null,
  7861.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  7862.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  7863.                                     },
  7864.                                     {
  7865.                                         label: 'Bounces',
  7866.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  7867.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  7868.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7869.                                                 message: message.id,
  7870.                                                 query: {
  7871.                                                     filter: 'email',
  7872.                                                     state: 'failed',
  7873.                                                     sort: 'timestamp',
  7874.                                                     direction: 'DESC'
  7875.                                                 }
  7876.                                             })
  7877.                                             : null,
  7878.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  7879.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  7880.                                     },
  7881.                                     {
  7882.                                         label: 'Open rate',
  7883.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  7884.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  7885.                                     },
  7886.                                 ],
  7887.                             } %}
  7888.                                 {% block content %}
  7889.                                     <table class=\"table-clear border-0 text-gray-dark\">
  7890.                                         <tbody>
  7891.                                             <tr>
  7892.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  7893.                                                 <td class=\"pb-3 pb-sm-2\">
  7894.                                                     <span>{{ message.emailSubject }}</span>
  7895.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  7896.                                                 </td>
  7897.                                             </tr>
  7898.                                             <tr>
  7899.                                                 <td class=\"text-semibold pr-3\">From:</td>
  7900.                                                 <td>
  7901.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  7902.                                                 </td>
  7903.                                             </tr>
  7904.                                         </tbody>
  7905.                                     </table>
  7906.                                 {% endblock %}
  7907.                             {% endembed %}
  7908.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  7909.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  7910.                                 icon: 'icon-activity-text',
  7911.                                 title: 'SMS',
  7912.                                 stats: [
  7913.                                     {
  7914.                                         label: 'Total sent',
  7915.                                         value: message.firstJob.smsSucceeded|number_format,
  7916.                                         link: (message.firstJob.smsSucceeded > 0)
  7917.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7918.                                                 message: message.id,
  7919.                                                 query: {
  7920.                                                     filter: 'sms',
  7921.                                                     state: 'all',
  7922.                                                     sort: 'timestamp',
  7923.                                                     direction: 'DESC'
  7924.                                                 }
  7925.                                             })
  7926.                                             : null,
  7927.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  7928.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  7929.                                     },
  7930.                                     {
  7931.                                         label: 'Delivery verified',
  7932.                                         value: message.firstJob.smsDelivered|number_format,
  7933.                                         link: (message.firstJob.smsDelivered > 0)
  7934.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7935.                                                 message: message.id,
  7936.                                                 query: {
  7937.                                                     filter: 'sms',
  7938.                                                     state: 'completed',
  7939.                                                     sort: 'timestamp',
  7940.                                                     direction: 'DESC'
  7941.                                                 }
  7942.                                             })
  7943.                                             : null,
  7944.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  7945.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  7946.                                     },
  7947.                                     {
  7948.                                         label: 'Bounces',
  7949.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  7950.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  7951.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7952.                                                 message: message.id,
  7953.                                                 query: {
  7954.                                                     filter: 'sms',
  7955.                                                     state: 'failed',
  7956.                                                     sort: 'timestamp',
  7957.                                                     direction: 'DESC'
  7958.                                                 }
  7959.                                             })
  7960.                                             : null,
  7961.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  7962.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  7963.                                     },
  7964.                                 ],
  7965.                             } %}
  7966.                                 {% block content %}
  7967.                                     <table class=\"table-clear border-0 text-gray-dark\">
  7968.                                         <tbody>
  7969.                                             <tr>
  7970.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  7971.                                                 <td class=\"pb-3 pb-sm-2\">
  7972.                                                     <span>{{ message.smsText }}</span>
  7973.                                                     {% if message.smsUrl %}
  7974.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  7975.                                                     {% endif %}
  7976.                                                 </td>
  7977.                                             </tr>
  7978.                                             <tr>
  7979.                                                 <td class=\"text-semibold pr-3\">From:</td>
  7980.                                                 <td>
  7981.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  7982.                                                 </td>
  7983.                                             </tr>
  7984.                                         </tbody>
  7985.                                     </table>
  7986.                                 {% endblock %}
  7987.                             {% endembed %}
  7988.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  7989.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  7990.                                 icon: 'icon-activity-voice',
  7991.                                 title: 'Phone',
  7992.                                 stats: [
  7993.                                     {
  7994.                                         label: 'Total sent',
  7995.                                         value: message.firstJob.voiceSucceeded|number_format,
  7996.                                         link: (message.firstJob.voiceSucceeded > 0)
  7997.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  7998.                                                 message: message.id,
  7999.                                                 query: {
  8000.                                                     filter: 'voice',
  8001.                                                     state: 'all',
  8002.                                                     sort: 'timestamp',
  8003.                                                     direction: 'DESC'
  8004.                                                 }
  8005.                                             })
  8006.                                             : null,
  8007.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  8008.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  8009.                                     },
  8010.                                     {
  8011.                                         label: 'Delivery verified',
  8012.                                         value: message.firstJob.voiceDelivered|number_format,
  8013.                                         link: (message.firstJob.voiceDelivered > 0)
  8014.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8015.                                                 message: message.id,
  8016.                                                 query: {
  8017.                                                     filter: 'voice',
  8018.                                                     state: 'completed',
  8019.                                                     sort: 'timestamp',
  8020.                                                     direction: 'DESC'
  8021.                                                 }
  8022.                                             })
  8023.                                             : null,
  8024.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  8025.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  8026.                                     },
  8027.                                     {
  8028.                                         label: 'Bounces',
  8029.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  8030.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  8031.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8032.                                                 message: message.id,
  8033.                                                 query: {
  8034.                                                     filter: 'voice',
  8035.                                                     state: 'failed',
  8036.                                                     sort: 'timestamp',
  8037.                                                     direction: 'DESC'
  8038.                                                 }
  8039.                                             })
  8040.                                             : null,
  8041.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  8042.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  8043.                                     },
  8044.                                     {
  8045.                                         label: 'Answer rate',
  8046.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  8047.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  8048.                                     },
  8049.                                 ],
  8050.                             } %}
  8051.                                 {% block content %}
  8052.                                     <table class=\"table-clear border-0 text-gray-dark\">
  8053.                                         <tbody>
  8054.                                             <tr>
  8055.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  8056.                                                 <td class=\"pb-3 pb-sm-2\">
  8057.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  8058.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  8059.                                                         Your browser does not support the audio element.
  8060.                                                     </audio>
  8061.                                                 </td>
  8062.                                             </tr>
  8063.                                             <tr>
  8064.                                                 <td class=\"text-semibold pr-3\">From:</td>
  8065.                                                 <td>
  8066.                                                     <span class=\"emailid\">
  8067.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  8068.                                                     </span>
  8069.                                                 </td>
  8070.                                             </tr>
  8071.                                         </tbody>
  8072.                                     </table>
  8073.                                 {% endblock %}
  8074.                             {% endembed %}
  8075.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  8076.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  8077.                                 icon: 'icon-deviceapp',
  8078.                                 title: 'Mobile app',
  8079.                                 stats: [
  8080.                                     {
  8081.                                         label: 'Total sent',
  8082.                                         value: message.firstJob.appSucceeded|number_format,
  8083.                                         link: (message.firstJob.appSucceeded > 0)
  8084.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8085.                                                 message: message.id,
  8086.                                                 query: {
  8087.                                                     filter: 'app',
  8088.                                                     state: 'pending',
  8089.                                                     sort: 'timestamp',
  8090.                                                     direction: 'DESC'
  8091.                                                 }
  8092.                                             })
  8093.                                             : null,
  8094.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  8095.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  8096.                                     },
  8097.                                     {
  8098.                                         label: 'Delivery verified',
  8099.                                         value: message.firstJob.appDelivered|number_format,
  8100.                                     },
  8101.                                     {
  8102.                                         label: 'Bounces',
  8103.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  8104.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  8105.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8106.                                                 message: message.id,
  8107.                                                 query: {
  8108.                                                     filter: 'app',
  8109.                                                     state: 'failed',
  8110.                                                     sort: 'timestamp',
  8111.                                                     direction: 'DESC'
  8112.                                                 }
  8113.                                             })
  8114.                                             : null,
  8115.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  8116.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  8117.                                     },
  8118.                                 ],
  8119.                             } %}
  8120.                                 {% block content %}
  8121.                                     <table class=\"table-clear border-0 text-gray-dark\">
  8122.                                         <tbody>
  8123.                                             <tr>
  8124.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  8125.                                                 <td class=\"pb-3 pb-sm-2\">
  8126.                                                     <span>{{ message.appTitle }}</span>
  8127.                                                 </td>
  8128.                                             </tr>
  8129.                                         </tbody>
  8130.                                     </table>
  8131.                                 {% endblock %}
  8132.                             {% endembed %}
  8133.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  8134.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  8135.                                 icon: 'icon-facebook-fill',
  8136.                                 title: 'Facebook',
  8137.                                 stats: [
  8138.                                     {
  8139.                                         label: 'Total posts',
  8140.                                         value: message.firstJob.facebookTotal|number_format,
  8141.                                         link: (message.firstJob.facebookTotal > 0)
  8142.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8143.                                                 message: message.id,
  8144.                                                 query: {
  8145.                                                     filter: 'facebook',
  8146.                                                     state: 'all',
  8147.                                                     sort: 'timestamp',
  8148.                                                     direction: 'DESC'
  8149.                                                 }
  8150.                                             })
  8151.                                             : null,
  8152.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  8153.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  8154.                                     },
  8155.                                     {
  8156.                                         label: 'Successful posts',
  8157.                                         value: message.firstJob.facebookSucceeded|number_format,
  8158.                                         link: (message.firstJob.facebookSucceeded > 0)
  8159.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8160.                                                 message: message.id,
  8161.                                                 query: {
  8162.                                                     filter: 'facebook',
  8163.                                                     state: 'completed',
  8164.                                                     sort: 'timestamp',
  8165.                                                     direction: 'DESC'
  8166.                                                 }
  8167.                                             })
  8168.                                             : null,
  8169.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  8170.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  8171.                                     },
  8172.                                     {
  8173.                                         label: 'Errors',
  8174.                                         value: message.firstJob.facebookFailed|number_format,
  8175.                                         link: (message.firstJob.facebookFailed > 0)
  8176.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8177.                                                 message: message.id,
  8178.                                                 query: {
  8179.                                                     filter: 'facebook',
  8180.                                                     state: 'failed',
  8181.                                                     sort: 'timestamp',
  8182.                                                     direction: 'DESC'
  8183.                                                 }
  8184.                                             })
  8185.                                             : null,
  8186.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  8187.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  8188.                                     },
  8189.                                 ],
  8190.                             } %}{% endembed %}
  8191.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  8192.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  8193.                                 icon: 'icon-twitter-fill',
  8194.                                 title: 'Twitter',
  8195.                                 stats: [
  8196.                                     {
  8197.                                         label: 'Total posts',
  8198.                                         value: message.firstJob.twitterTotal|number_format,
  8199.                                         link: (message.firstJob.twitterTotal > 0)
  8200.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8201.                                                 message: message.id,
  8202.                                                 query: {
  8203.                                                     filter: 'twitter',
  8204.                                                     state: 'all',
  8205.                                                     sort: 'timestamp',
  8206.                                                     direction: 'DESC'
  8207.                                                 }
  8208.                                             })
  8209.                                             : null,
  8210.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  8211.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  8212.                                     },
  8213.                                     {
  8214.                                         label: 'Successful posts',
  8215.                                         value: message.firstJob.twitterSucceeded|number_format,
  8216.                                         link: (message.firstJob.twitterSucceeded > 0)
  8217.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8218.                                                 message: message.id,
  8219.                                                 query: {
  8220.                                                     filter: 'twitter',
  8221.                                                     state: 'completed',
  8222.                                                     sort: 'timestamp',
  8223.                                                     direction: 'DESC'
  8224.                                                 }
  8225.                                             })
  8226.                                             : null,
  8227.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  8228.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  8229.                                     },
  8230.                                     {
  8231.                                         label: 'Errors',
  8232.                                         value: message.firstJob.twitterFailed|number_format,
  8233.                                         link: (message.firstJob.twitterFailed > 0)
  8234.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8235.                                                 message: message.id,
  8236.                                                 query: {
  8237.                                                     filter: 'twitter',
  8238.                                                     state: 'failed',
  8239.                                                     sort: 'timestamp',
  8240.                                                     direction: 'DESC'
  8241.                                                 }
  8242.                                             })
  8243.                                             : null,
  8244.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  8245.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  8246.                                     },
  8247.                                 ],
  8248.                             } %}{% endembed %}
  8249.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  8250.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  8251.                                 icon: 'fab fa-instagram',
  8252.                                 title: 'Instagram',
  8253.                                 stats: [
  8254.                                     {
  8255.                                         label: 'Total posts',
  8256.                                         value: message.firstJob.instagramTotal|number_format,
  8257.                                         link: (message.firstJob.instagramTotal > 0)
  8258.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8259.                                                 message: message.id,
  8260.                                                 query: {
  8261.                                                     filter: 'instagram',
  8262.                                                     state: 'all',
  8263.                                                     sort: 'timestamp',
  8264.                                                     direction: 'DESC'
  8265.                                                 }
  8266.                                             })
  8267.                                             : null,
  8268.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  8269.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  8270.                                     },
  8271.                                     {
  8272.                                         label: 'Successful posts',
  8273.                                         value: message.firstJob.instagramSucceeded|number_format,
  8274.                                         link: (message.firstJob.instagramSucceeded > 0)
  8275.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8276.                                                 message: message.id,
  8277.                                                 query: {
  8278.                                                     filter: 'instagram',
  8279.                                                     state: 'completed',
  8280.                                                     sort: 'timestamp',
  8281.                                                     direction: 'DESC'
  8282.                                                 }
  8283.                                             })
  8284.                                             : null,
  8285.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  8286.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  8287.                                     },
  8288.                                     {
  8289.                                         label: 'Errors',
  8290.                                         value: message.firstJob.instagramFailed|number_format,
  8291.                                         link: (message.firstJob.instagramFailed > 0)
  8292.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8293.                                                 message: message.id,
  8294.                                                 query: {
  8295.                                                     filter: 'instagram',
  8296.                                                     state: 'failed',
  8297.                                                     sort: 'timestamp',
  8298.                                                     direction: 'DESC'
  8299.                                                 }
  8300.                                             })
  8301.                                             : null,
  8302.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  8303.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  8304.                                     },
  8305.                                 ],
  8306.                             } %}{% endembed %}
  8307.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  8308.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  8309.                                 icon: 'icon-website',
  8310.                                 title: 'Website',
  8311.                                 stats: [
  8312.                                     {
  8313.                                         label: 'Total posts',
  8314.                                         value: message.firstJob.websiteTotal|number_format,
  8315.                                         link: (message.firstJob.websiteTotal > 0)
  8316.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8317.                                                 message: message.id,
  8318.                                                 query: {
  8319.                                                     filter: 'website',
  8320.                                                     state: 'all',
  8321.                                                     sort: 'timestamp',
  8322.                                                     direction: 'DESC'
  8323.                                                 }
  8324.                                             })
  8325.                                             : null,
  8326.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  8327.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  8328.                                     },
  8329.                                     {
  8330.                                         label: 'Successful posts',
  8331.                                         value: message.firstJob.websiteSucceeded|number_format,
  8332.                                         link: (message.firstJob.websiteSucceeded > 0)
  8333.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8334.                                                 message: message.id,
  8335.                                                 query: {
  8336.                                                     filter: 'website',
  8337.                                                     state: 'completed',
  8338.                                                     sort: 'timestamp',
  8339.                                                     direction: 'DESC'
  8340.                                                 }
  8341.                                             })
  8342.                                             : null,
  8343.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  8344.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  8345.                                     },
  8346.                                     {
  8347.                                         label: 'Errors',
  8348.                                         value: message.firstJob.websiteFailed|number_format,
  8349.                                         link: (message.firstJob.websiteFailed > 0)
  8350.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8351.                                                 message: message.id,
  8352.                                                 query: {
  8353.                                                     filter: 'website',
  8354.                                                     state: 'failed',
  8355.                                                     sort: 'timestamp',
  8356.                                                     direction: 'DESC'
  8357.                                                 }
  8358.                                             })
  8359.                                             : null,
  8360.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  8361.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  8362.                                     },
  8363.                                 ],
  8364.                             } %}{% endembed %}
  8365.                         {% endif %}
  8366.                     {% endfor %}
  8367.                 {% endblock %}
  8368.             {% endembed %}
  8369.         </div>
  8370.     {% endif %}
  8371. {% endblock %}
  8372. {% block modals %}
  8373.     {{ parent() }}
  8374.     {% embed '@ui2022/modal.html.twig' with {
  8375.         attr: {
  8376.             id: 'modal__email_preview',
  8377.         },
  8378.     } %}
  8379.         {% block content %}
  8380.             {% embed '@ui2022/modal__content.html.twig' with {
  8381.                 title: 'Email Preview',
  8382.             } %}
  8383.                 {% block body %}
  8384.                     <iframe
  8385.                         id=\"preview-email-iframe\"
  8386.                         loading=\"lazy\"
  8387.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  8388.                         frameborder=\"0\"
  8389.                         style=\"width: 100%; height: 500px\"
  8390.                     >
  8391.                     </iframe>
  8392.                 {% endblock %}
  8393.             {% endembed %}
  8394.         {% endblock %}
  8395.     {% endembed %}
  8396.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  8397.         attr: {
  8398.             id: 'sidepanel__filtered_logs',
  8399.         },
  8400.     } %}
  8401.     <script type=\"text/javascript\">
  8402.         (function (window, document, \$, undefined) {
  8403.             \$(function () {
  8404.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  8405.                     const pageHeight = \$(window).height();
  8406.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  8407.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  8408.                 });
  8409.             });
  8410.         })(window, document, jQuery);
  8411.     </script>
  8412. {% endblock %}
  8413. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  8414.     }
  8415. }
  8416. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  8417. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___34679198 extends \Twig\Template
  8418. {
  8419.     private $source;
  8420.     private $macros = [];
  8421.     public function __construct(Environment $env)
  8422.     {
  8423.         parent::__construct($env);
  8424.         $this->source $this->getSourceContext();
  8425.         $this->blocks = [
  8426.         ];
  8427.     }
  8428.     protected function doGetParent(array $context)
  8429.     {
  8430.         // line 640
  8431.         return "@ui2022/card__deliverymethods.html.twig";
  8432.     }
  8433.     protected function doDisplay(array $context, array $blocks = [])
  8434.     {
  8435.         $macros $this->macros;
  8436.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  8437.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  8438.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  8439.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  8440.         $this->parent $this->loadTemplate("@ui2022/card__deliverymethods.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"640);
  8441.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  8442.         
  8443.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  8444.         
  8445.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  8446.     }
  8447.     public function getTemplateName()
  8448.     {
  8449.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  8450.     }
  8451.     public function isTraitable()
  8452.     {
  8453.         return false;
  8454.     }
  8455.     public function getDebugInfo()
  8456.     {
  8457.         return array (  8695 => 640,  7829 => 582,  6963 => 524,  6104 => 516,  6097 => 511,  6087 => 510,  6064 => 466,  5205 => 458,  5203 => 457,  5192 => 448,  5184 => 442,  5174 => 441,  5151 => 379,  4291 => 371,  4284 => 366,  4276 => 364,  4274 => 363,  4270 => 362,  4263 => 357,  4253 => 356,  4230 => 299,  3368 => 291,  3358 => 284,  3351 => 279,  3341 => 278,  3318 => 217,  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  8458.     }
  8459.     public function getSourceContext()
  8460.     {
  8461.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  8462. {% do dom_title_section('Messages') %}
  8463. {% block wrap %}content__area--uilib reports{% endblock %}
  8464. {% block header %}
  8465.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  8466.         title: message.title,
  8467.         back: {
  8468.             text: 'Back to Messages',
  8469.             link: path('app.notifications.dashboard.messages.main'),
  8470.         },
  8471.     } %}
  8472.         {% block actions %}
  8473.             {% include '@ui2022/button--a.html.twig' with {
  8474.                 text: 'Clone message',
  8475.                 link: path('app.notifications.dashboard.messages.create', {
  8476.                     clone: message.id,
  8477.                 }),
  8478.                 styles: 'gray',
  8479.             } %}
  8480.         {% endblock %}
  8481.     {% endembed %}
  8482. {% endblock %}
  8483. {% block content %}
  8484.     {% if not message.firstJob %}
  8485.         <div class=\"content__data reports__message pt-2\">
  8486.             <div class=\"blockgroup\">
  8487.                 <label class=\"blockgroup__label\">Message</label>
  8488.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  8489.             </div>
  8490.         </div>
  8491.     {% else %}
  8492.         {% set stats = message.firstJob.summarize %}
  8493.         <div class=\"content__data reports__message pt-2\">
  8494.             {% embed '@ui2022/tabs--static.html.twig' with {
  8495.                 items: [
  8496.                     {
  8497.                         text: 'Summary',
  8498.                         link: path('app.notifications.dashboard.messages.report', {
  8499.                             message: message.id,
  8500.                         }),
  8501.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  8502.                     },
  8503.                     {
  8504.                         text: 'Logs',
  8505.                         link: path('app.notifications.dashboard.messages.logs', {
  8506.                             message: message.id,
  8507.                         }),
  8508.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  8509.                     },
  8510.                     {
  8511.                         text: 'Debugging',
  8512.                         link: path('app.notifications.dashboard.messages.debugging', {
  8513.                             message: message.id,
  8514.                         }),
  8515.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  8516.                     },
  8517.                     {
  8518.                         text: 'Details',
  8519.                         link: path('app.notifications.dashboard.messages.details', {
  8520.                             message: message.id,
  8521.                         }),
  8522.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  8523.                     },
  8524.                 ],
  8525.             } %}
  8526.                 {% block tab %}
  8527.                     {% include '@ui2022/subheader.html.twig' with {
  8528.                         title: 'Summary',
  8529.                         classes: 'mt-4 pt-4',
  8530.                     } %}
  8531.                     <div class=\"three-column-section\">
  8532.                         <div class=\"three-column-inner-section\">
  8533.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  8534.                                 title: 'Sent',
  8535.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  8536.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  8537.                                 label: 'Contacts',
  8538.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  8539.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  8540.                                         message: message.id,
  8541.                                         query: {
  8542.                                             filter: 'all',
  8543.                                             state: 'all',
  8544.                                             sort: 'timestamp',
  8545.                                             direction: 'DESC'
  8546.                                         }
  8547.                                     })
  8548.                                     : null,
  8549.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  8550.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  8551.                             } %}
  8552.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  8553.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  8554.                                 title: message.sending ? 'Running' : 'Completed',
  8555.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  8556.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  8557.                                 label: interval[1]|default(''),
  8558.                             } %}
  8559.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  8560.                                 title: 'Errors',
  8561.                                 subtitle: 'Message not delivered',
  8562.                                 value: stats.all.failed|number_format,
  8563.                                 label: 'Contacts',
  8564.                                 link: (stats.all.failed > 0)
  8565.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  8566.                                         message: message.id,
  8567.                                         query: {
  8568.                                             filter: 'all',
  8569.                                             state: 'failed',
  8570.                                             sort: 'timestamp',
  8571.                                             direction: 'DESC'
  8572.                                         }
  8573.                                     })
  8574.                                     : null,
  8575.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  8576.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  8577.                             } %}
  8578.                         </div>
  8579.                     </div>
  8580.                     <div class=\"section__infostats mb-4\">
  8581.                         <div class=\"card card__charts\">
  8582.                             <div class=\"row row-10\">
  8583.                                 <div class=\"col-12 col-md-6\">
  8584.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  8585.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  8586.                                         {% include '@ui2022/chart--donut.html.twig' with {
  8587.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  8588.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  8589.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  8590.                                             }),
  8591.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  8592.                                             label: 'Total contacts',
  8593.                                         } %}
  8594.                                     </div>
  8595.                                 </div>
  8596.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  8597.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  8598.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  8599.                                         <div class=\"targetlist\">
  8600.                                             {% if message.lists|length %}
  8601.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  8602.                                                     title: 'Contact lists',
  8603.                                                     icon: 'icon-contact-reachable',
  8604.                                                     items: message.lists|map((list) => {
  8605.                                                         text: list.name,
  8606.                                                         link: path('app.notifications.dashboard.lists.view', {
  8607.                                                             list: list.id,
  8608.                                                         }),
  8609.                                                     }),
  8610.                                                 } %}
  8611.                                             {% endif %}
  8612.                                             {% if message.facebookSocialAccounts|length %}
  8613.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  8614.                                                     title: 'Facebook pages',
  8615.                                                     icon: 'icon-facebook-fill',
  8616.                                                     items: message.facebookSocialAccounts|map((social) => {
  8617.                                                         text: social.name,
  8618.                                                         target: '_blank',
  8619.                                                         link: 'https://www.facebook.com/%s'|format(
  8620.                                                             social.facebookPageId,
  8621.                                                         ),
  8622.                                                     }),
  8623.                                                 } %}
  8624.                                             {% endif %}
  8625.                                             {% if message.twitterSocialAccounts|length %}
  8626.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  8627.                                                     title: 'Twitter profiles',
  8628.                                                     icon: 'icon-twitter-fill',
  8629.                                                     items: message.twitterSocialAccounts|map((social) => {
  8630.                                                         text: social.name,
  8631.                                                         target: '_blank',
  8632.                                                         link: 'https://www.twitter.com/%s'|format(
  8633.                                                             social.twitterUserName,
  8634.                                                         ),
  8635.                                                     }),
  8636.                                                 } %}
  8637.                                             {% endif %}
  8638.                                             {% if message.instagramSocialAccounts|length %}
  8639.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  8640.                                                     title: 'Instagram accounts',
  8641.                                                     icon: 'fab fa-instagram',
  8642.                                                     items: message.instagramSocialAccounts|map((social) => {
  8643.                                                         text: social.name,
  8644.                                                         target: '_blank',
  8645.                                                         link: 'https://www.instagram.com/%s'|format(
  8646.                                                             social.name,
  8647.                                                         ),
  8648.                                                     }),
  8649.                                                 } %}
  8650.                                             {% endif %}
  8651.                                             {% if message.websiteDepartments|length %}
  8652.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  8653.                                                     title: 'Website departments',
  8654.                                                     icon: 'icon-website',
  8655.                                                     items: message.websiteDepartments|map((department) => {
  8656.                                                         text: department.name,
  8657.                                                         target: '_blank',
  8658.                                                         link: web_url_catchall(department, '/'),
  8659.                                                     }),
  8660.                                                 } %}
  8661.                                             {% endif %}
  8662.                                         </div>
  8663.                                     </div>
  8664.                                 {% endif %}
  8665.                             </div>
  8666.                         </div>
  8667.                     </div>
  8668.                     {% for channel in message.usedChannels(true) %}
  8669.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  8670.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  8671.                                 icon: 'icon-activity-mail',
  8672.                                 title: 'Email',
  8673.                                 stats: [
  8674.                                     {
  8675.                                         label: 'Total sent',
  8676.                                         value: message.firstJob.emailSucceeded|number_format,
  8677.                                         link: (message.firstJob.emailSucceeded > 0)
  8678.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8679.                                                 message: message.id,
  8680.                                                 query: {
  8681.                                                     filter: 'email',
  8682.                                                     sort: 'timestamp',
  8683.                                                     direction: 'DESC'
  8684.                                                 }
  8685.                                             })
  8686.                                             : null,
  8687.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  8688.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  8689.                                     },
  8690.                                     {
  8691.                                         label: 'Delivery verified',
  8692.                                         value: message.firstJob.emailDelivered|number_format,
  8693.                                         link: (message.firstJob.emailDelivered > 0)
  8694.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8695.                                                 message: message.id,
  8696.                                                 query: {
  8697.                                                     filter: 'email',
  8698.                                                     state: 'completed',
  8699.                                                     sort: 'timestamp',
  8700.                                                     direction: 'DESC'
  8701.                                                 }
  8702.                                             })
  8703.                                             : null,
  8704.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  8705.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  8706.                                     },
  8707.                                     {
  8708.                                         label: 'Bounces',
  8709.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  8710.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  8711.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8712.                                                 message: message.id,
  8713.                                                 query: {
  8714.                                                     filter: 'email',
  8715.                                                     state: 'failed',
  8716.                                                     sort: 'timestamp',
  8717.                                                     direction: 'DESC'
  8718.                                                 }
  8719.                                             })
  8720.                                             : null,
  8721.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  8722.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  8723.                                     },
  8724.                                     {
  8725.                                         label: 'Open rate',
  8726.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  8727.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  8728.                                     },
  8729.                                 ],
  8730.                             } %}
  8731.                                 {% block content %}
  8732.                                     <table class=\"table-clear border-0 text-gray-dark\">
  8733.                                         <tbody>
  8734.                                             <tr>
  8735.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  8736.                                                 <td class=\"pb-3 pb-sm-2\">
  8737.                                                     <span>{{ message.emailSubject }}</span>
  8738.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  8739.                                                 </td>
  8740.                                             </tr>
  8741.                                             <tr>
  8742.                                                 <td class=\"text-semibold pr-3\">From:</td>
  8743.                                                 <td>
  8744.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  8745.                                                 </td>
  8746.                                             </tr>
  8747.                                         </tbody>
  8748.                                     </table>
  8749.                                 {% endblock %}
  8750.                             {% endembed %}
  8751.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  8752.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  8753.                                 icon: 'icon-activity-text',
  8754.                                 title: 'SMS',
  8755.                                 stats: [
  8756.                                     {
  8757.                                         label: 'Total sent',
  8758.                                         value: message.firstJob.smsSucceeded|number_format,
  8759.                                         link: (message.firstJob.smsSucceeded > 0)
  8760.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8761.                                                 message: message.id,
  8762.                                                 query: {
  8763.                                                     filter: 'sms',
  8764.                                                     state: 'all',
  8765.                                                     sort: 'timestamp',
  8766.                                                     direction: 'DESC'
  8767.                                                 }
  8768.                                             })
  8769.                                             : null,
  8770.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  8771.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  8772.                                     },
  8773.                                     {
  8774.                                         label: 'Delivery verified',
  8775.                                         value: message.firstJob.smsDelivered|number_format,
  8776.                                         link: (message.firstJob.smsDelivered > 0)
  8777.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8778.                                                 message: message.id,
  8779.                                                 query: {
  8780.                                                     filter: 'sms',
  8781.                                                     state: 'completed',
  8782.                                                     sort: 'timestamp',
  8783.                                                     direction: 'DESC'
  8784.                                                 }
  8785.                                             })
  8786.                                             : null,
  8787.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  8788.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  8789.                                     },
  8790.                                     {
  8791.                                         label: 'Bounces',
  8792.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  8793.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  8794.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8795.                                                 message: message.id,
  8796.                                                 query: {
  8797.                                                     filter: 'sms',
  8798.                                                     state: 'failed',
  8799.                                                     sort: 'timestamp',
  8800.                                                     direction: 'DESC'
  8801.                                                 }
  8802.                                             })
  8803.                                             : null,
  8804.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  8805.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  8806.                                     },
  8807.                                 ],
  8808.                             } %}
  8809.                                 {% block content %}
  8810.                                     <table class=\"table-clear border-0 text-gray-dark\">
  8811.                                         <tbody>
  8812.                                             <tr>
  8813.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  8814.                                                 <td class=\"pb-3 pb-sm-2\">
  8815.                                                     <span>{{ message.smsText }}</span>
  8816.                                                     {% if message.smsUrl %}
  8817.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  8818.                                                     {% endif %}
  8819.                                                 </td>
  8820.                                             </tr>
  8821.                                             <tr>
  8822.                                                 <td class=\"text-semibold pr-3\">From:</td>
  8823.                                                 <td>
  8824.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  8825.                                                 </td>
  8826.                                             </tr>
  8827.                                         </tbody>
  8828.                                     </table>
  8829.                                 {% endblock %}
  8830.                             {% endembed %}
  8831.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  8832.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  8833.                                 icon: 'icon-activity-voice',
  8834.                                 title: 'Phone',
  8835.                                 stats: [
  8836.                                     {
  8837.                                         label: 'Total sent',
  8838.                                         value: message.firstJob.voiceSucceeded|number_format,
  8839.                                         link: (message.firstJob.voiceSucceeded > 0)
  8840.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8841.                                                 message: message.id,
  8842.                                                 query: {
  8843.                                                     filter: 'voice',
  8844.                                                     state: 'all',
  8845.                                                     sort: 'timestamp',
  8846.                                                     direction: 'DESC'
  8847.                                                 }
  8848.                                             })
  8849.                                             : null,
  8850.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  8851.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  8852.                                     },
  8853.                                     {
  8854.                                         label: 'Delivery verified',
  8855.                                         value: message.firstJob.voiceDelivered|number_format,
  8856.                                         link: (message.firstJob.voiceDelivered > 0)
  8857.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8858.                                                 message: message.id,
  8859.                                                 query: {
  8860.                                                     filter: 'voice',
  8861.                                                     state: 'completed',
  8862.                                                     sort: 'timestamp',
  8863.                                                     direction: 'DESC'
  8864.                                                 }
  8865.                                             })
  8866.                                             : null,
  8867.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  8868.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  8869.                                     },
  8870.                                     {
  8871.                                         label: 'Bounces',
  8872.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  8873.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  8874.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8875.                                                 message: message.id,
  8876.                                                 query: {
  8877.                                                     filter: 'voice',
  8878.                                                     state: 'failed',
  8879.                                                     sort: 'timestamp',
  8880.                                                     direction: 'DESC'
  8881.                                                 }
  8882.                                             })
  8883.                                             : null,
  8884.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  8885.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  8886.                                     },
  8887.                                     {
  8888.                                         label: 'Answer rate',
  8889.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  8890.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  8891.                                     },
  8892.                                 ],
  8893.                             } %}
  8894.                                 {% block content %}
  8895.                                     <table class=\"table-clear border-0 text-gray-dark\">
  8896.                                         <tbody>
  8897.                                             <tr>
  8898.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  8899.                                                 <td class=\"pb-3 pb-sm-2\">
  8900.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  8901.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  8902.                                                         Your browser does not support the audio element.
  8903.                                                     </audio>
  8904.                                                 </td>
  8905.                                             </tr>
  8906.                                             <tr>
  8907.                                                 <td class=\"text-semibold pr-3\">From:</td>
  8908.                                                 <td>
  8909.                                                     <span class=\"emailid\">
  8910.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  8911.                                                     </span>
  8912.                                                 </td>
  8913.                                             </tr>
  8914.                                         </tbody>
  8915.                                     </table>
  8916.                                 {% endblock %}
  8917.                             {% endembed %}
  8918.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  8919.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  8920.                                 icon: 'icon-deviceapp',
  8921.                                 title: 'Mobile app',
  8922.                                 stats: [
  8923.                                     {
  8924.                                         label: 'Total sent',
  8925.                                         value: message.firstJob.appSucceeded|number_format,
  8926.                                         link: (message.firstJob.appSucceeded > 0)
  8927.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8928.                                                 message: message.id,
  8929.                                                 query: {
  8930.                                                     filter: 'app',
  8931.                                                     state: 'pending',
  8932.                                                     sort: 'timestamp',
  8933.                                                     direction: 'DESC'
  8934.                                                 }
  8935.                                             })
  8936.                                             : null,
  8937.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  8938.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  8939.                                     },
  8940.                                     {
  8941.                                         label: 'Delivery verified',
  8942.                                         value: message.firstJob.appDelivered|number_format,
  8943.                                     },
  8944.                                     {
  8945.                                         label: 'Bounces',
  8946.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  8947.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  8948.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8949.                                                 message: message.id,
  8950.                                                 query: {
  8951.                                                     filter: 'app',
  8952.                                                     state: 'failed',
  8953.                                                     sort: 'timestamp',
  8954.                                                     direction: 'DESC'
  8955.                                                 }
  8956.                                             })
  8957.                                             : null,
  8958.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  8959.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  8960.                                     },
  8961.                                 ],
  8962.                             } %}
  8963.                                 {% block content %}
  8964.                                     <table class=\"table-clear border-0 text-gray-dark\">
  8965.                                         <tbody>
  8966.                                             <tr>
  8967.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  8968.                                                 <td class=\"pb-3 pb-sm-2\">
  8969.                                                     <span>{{ message.appTitle }}</span>
  8970.                                                 </td>
  8971.                                             </tr>
  8972.                                         </tbody>
  8973.                                     </table>
  8974.                                 {% endblock %}
  8975.                             {% endembed %}
  8976.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  8977.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  8978.                                 icon: 'icon-facebook-fill',
  8979.                                 title: 'Facebook',
  8980.                                 stats: [
  8981.                                     {
  8982.                                         label: 'Total posts',
  8983.                                         value: message.firstJob.facebookTotal|number_format,
  8984.                                         link: (message.firstJob.facebookTotal > 0)
  8985.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  8986.                                                 message: message.id,
  8987.                                                 query: {
  8988.                                                     filter: 'facebook',
  8989.                                                     state: 'all',
  8990.                                                     sort: 'timestamp',
  8991.                                                     direction: 'DESC'
  8992.                                                 }
  8993.                                             })
  8994.                                             : null,
  8995.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  8996.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  8997.                                     },
  8998.                                     {
  8999.                                         label: 'Successful posts',
  9000.                                         value: message.firstJob.facebookSucceeded|number_format,
  9001.                                         link: (message.firstJob.facebookSucceeded > 0)
  9002.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9003.                                                 message: message.id,
  9004.                                                 query: {
  9005.                                                     filter: 'facebook',
  9006.                                                     state: 'completed',
  9007.                                                     sort: 'timestamp',
  9008.                                                     direction: 'DESC'
  9009.                                                 }
  9010.                                             })
  9011.                                             : null,
  9012.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  9013.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9014.                                     },
  9015.                                     {
  9016.                                         label: 'Errors',
  9017.                                         value: message.firstJob.facebookFailed|number_format,
  9018.                                         link: (message.firstJob.facebookFailed > 0)
  9019.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9020.                                                 message: message.id,
  9021.                                                 query: {
  9022.                                                     filter: 'facebook',
  9023.                                                     state: 'failed',
  9024.                                                     sort: 'timestamp',
  9025.                                                     direction: 'DESC'
  9026.                                                 }
  9027.                                             })
  9028.                                             : null,
  9029.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  9030.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  9031.                                     },
  9032.                                 ],
  9033.                             } %}{% endembed %}
  9034.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  9035.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9036.                                 icon: 'icon-twitter-fill',
  9037.                                 title: 'Twitter',
  9038.                                 stats: [
  9039.                                     {
  9040.                                         label: 'Total posts',
  9041.                                         value: message.firstJob.twitterTotal|number_format,
  9042.                                         link: (message.firstJob.twitterTotal > 0)
  9043.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9044.                                                 message: message.id,
  9045.                                                 query: {
  9046.                                                     filter: 'twitter',
  9047.                                                     state: 'all',
  9048.                                                     sort: 'timestamp',
  9049.                                                     direction: 'DESC'
  9050.                                                 }
  9051.                                             })
  9052.                                             : null,
  9053.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  9054.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  9055.                                     },
  9056.                                     {
  9057.                                         label: 'Successful posts',
  9058.                                         value: message.firstJob.twitterSucceeded|number_format,
  9059.                                         link: (message.firstJob.twitterSucceeded > 0)
  9060.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9061.                                                 message: message.id,
  9062.                                                 query: {
  9063.                                                     filter: 'twitter',
  9064.                                                     state: 'completed',
  9065.                                                     sort: 'timestamp',
  9066.                                                     direction: 'DESC'
  9067.                                                 }
  9068.                                             })
  9069.                                             : null,
  9070.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  9071.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9072.                                     },
  9073.                                     {
  9074.                                         label: 'Errors',
  9075.                                         value: message.firstJob.twitterFailed|number_format,
  9076.                                         link: (message.firstJob.twitterFailed > 0)
  9077.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9078.                                                 message: message.id,
  9079.                                                 query: {
  9080.                                                     filter: 'twitter',
  9081.                                                     state: 'failed',
  9082.                                                     sort: 'timestamp',
  9083.                                                     direction: 'DESC'
  9084.                                                 }
  9085.                                             })
  9086.                                             : null,
  9087.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  9088.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  9089.                                     },
  9090.                                 ],
  9091.                             } %}{% endembed %}
  9092.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  9093.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9094.                                 icon: 'fab fa-instagram',
  9095.                                 title: 'Instagram',
  9096.                                 stats: [
  9097.                                     {
  9098.                                         label: 'Total posts',
  9099.                                         value: message.firstJob.instagramTotal|number_format,
  9100.                                         link: (message.firstJob.instagramTotal > 0)
  9101.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9102.                                                 message: message.id,
  9103.                                                 query: {
  9104.                                                     filter: 'instagram',
  9105.                                                     state: 'all',
  9106.                                                     sort: 'timestamp',
  9107.                                                     direction: 'DESC'
  9108.                                                 }
  9109.                                             })
  9110.                                             : null,
  9111.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  9112.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  9113.                                     },
  9114.                                     {
  9115.                                         label: 'Successful posts',
  9116.                                         value: message.firstJob.instagramSucceeded|number_format,
  9117.                                         link: (message.firstJob.instagramSucceeded > 0)
  9118.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9119.                                                 message: message.id,
  9120.                                                 query: {
  9121.                                                     filter: 'instagram',
  9122.                                                     state: 'completed',
  9123.                                                     sort: 'timestamp',
  9124.                                                     direction: 'DESC'
  9125.                                                 }
  9126.                                             })
  9127.                                             : null,
  9128.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  9129.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9130.                                     },
  9131.                                     {
  9132.                                         label: 'Errors',
  9133.                                         value: message.firstJob.instagramFailed|number_format,
  9134.                                         link: (message.firstJob.instagramFailed > 0)
  9135.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9136.                                                 message: message.id,
  9137.                                                 query: {
  9138.                                                     filter: 'instagram',
  9139.                                                     state: 'failed',
  9140.                                                     sort: 'timestamp',
  9141.                                                     direction: 'DESC'
  9142.                                                 }
  9143.                                             })
  9144.                                             : null,
  9145.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  9146.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  9147.                                     },
  9148.                                 ],
  9149.                             } %}{% endembed %}
  9150.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  9151.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9152.                                 icon: 'icon-website',
  9153.                                 title: 'Website',
  9154.                                 stats: [
  9155.                                     {
  9156.                                         label: 'Total posts',
  9157.                                         value: message.firstJob.websiteTotal|number_format,
  9158.                                         link: (message.firstJob.websiteTotal > 0)
  9159.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9160.                                                 message: message.id,
  9161.                                                 query: {
  9162.                                                     filter: 'website',
  9163.                                                     state: 'all',
  9164.                                                     sort: 'timestamp',
  9165.                                                     direction: 'DESC'
  9166.                                                 }
  9167.                                             })
  9168.                                             : null,
  9169.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  9170.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  9171.                                     },
  9172.                                     {
  9173.                                         label: 'Successful posts',
  9174.                                         value: message.firstJob.websiteSucceeded|number_format,
  9175.                                         link: (message.firstJob.websiteSucceeded > 0)
  9176.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9177.                                                 message: message.id,
  9178.                                                 query: {
  9179.                                                     filter: 'website',
  9180.                                                     state: 'completed',
  9181.                                                     sort: 'timestamp',
  9182.                                                     direction: 'DESC'
  9183.                                                 }
  9184.                                             })
  9185.                                             : null,
  9186.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  9187.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9188.                                     },
  9189.                                     {
  9190.                                         label: 'Errors',
  9191.                                         value: message.firstJob.websiteFailed|number_format,
  9192.                                         link: (message.firstJob.websiteFailed > 0)
  9193.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9194.                                                 message: message.id,
  9195.                                                 query: {
  9196.                                                     filter: 'website',
  9197.                                                     state: 'failed',
  9198.                                                     sort: 'timestamp',
  9199.                                                     direction: 'DESC'
  9200.                                                 }
  9201.                                             })
  9202.                                             : null,
  9203.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  9204.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  9205.                                     },
  9206.                                 ],
  9207.                             } %}{% endembed %}
  9208.                         {% endif %}
  9209.                     {% endfor %}
  9210.                 {% endblock %}
  9211.             {% endembed %}
  9212.         </div>
  9213.     {% endif %}
  9214. {% endblock %}
  9215. {% block modals %}
  9216.     {{ parent() }}
  9217.     {% embed '@ui2022/modal.html.twig' with {
  9218.         attr: {
  9219.             id: 'modal__email_preview',
  9220.         },
  9221.     } %}
  9222.         {% block content %}
  9223.             {% embed '@ui2022/modal__content.html.twig' with {
  9224.                 title: 'Email Preview',
  9225.             } %}
  9226.                 {% block body %}
  9227.                     <iframe
  9228.                         id=\"preview-email-iframe\"
  9229.                         loading=\"lazy\"
  9230.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  9231.                         frameborder=\"0\"
  9232.                         style=\"width: 100%; height: 500px\"
  9233.                     >
  9234.                     </iframe>
  9235.                 {% endblock %}
  9236.             {% endembed %}
  9237.         {% endblock %}
  9238.     {% endembed %}
  9239.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  9240.         attr: {
  9241.             id: 'sidepanel__filtered_logs',
  9242.         },
  9243.     } %}
  9244.     <script type=\"text/javascript\">
  9245.         (function (window, document, \$, undefined) {
  9246.             \$(function () {
  9247.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  9248.                     const pageHeight = \$(window).height();
  9249.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  9250.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  9251.                 });
  9252.             });
  9253.         })(window, document, jQuery);
  9254.     </script>
  9255. {% endblock %}
  9256. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  9257.     }
  9258. }
  9259. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  9260. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___855330866 extends \Twig\Template
  9261. {
  9262.     private $source;
  9263.     private $macros = [];
  9264.     public function __construct(Environment $env)
  9265.     {
  9266.         parent::__construct($env);
  9267.         $this->source $this->getSourceContext();
  9268.         $this->blocks = [
  9269.         ];
  9270.     }
  9271.     protected function doGetParent(array $context)
  9272.     {
  9273.         // line 698
  9274.         return "@ui2022/card__deliverymethods.html.twig";
  9275.     }
  9276.     protected function doDisplay(array $context, array $blocks = [])
  9277.     {
  9278.         $macros $this->macros;
  9279.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  9280.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  9281.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  9282.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  9283.         $this->parent $this->loadTemplate("@ui2022/card__deliverymethods.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"698);
  9284.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  9285.         
  9286.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  9287.         
  9288.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  9289.     }
  9290.     public function getTemplateName()
  9291.     {
  9292.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  9293.     }
  9294.     public function isTraitable()
  9295.     {
  9296.         return false;
  9297.     }
  9298.     public function getDebugInfo()
  9299.     {
  9300.         return array (  9561 => 698,  8695 => 640,  7829 => 582,  6963 => 524,  6104 => 516,  6097 => 511,  6087 => 510,  6064 => 466,  5205 => 458,  5203 => 457,  5192 => 448,  5184 => 442,  5174 => 441,  5151 => 379,  4291 => 371,  4284 => 366,  4276 => 364,  4274 => 363,  4270 => 362,  4263 => 357,  4253 => 356,  4230 => 299,  3368 => 291,  3358 => 284,  3351 => 279,  3341 => 278,  3318 => 217,  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  9301.     }
  9302.     public function getSourceContext()
  9303.     {
  9304.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  9305. {% do dom_title_section('Messages') %}
  9306. {% block wrap %}content__area--uilib reports{% endblock %}
  9307. {% block header %}
  9308.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  9309.         title: message.title,
  9310.         back: {
  9311.             text: 'Back to Messages',
  9312.             link: path('app.notifications.dashboard.messages.main'),
  9313.         },
  9314.     } %}
  9315.         {% block actions %}
  9316.             {% include '@ui2022/button--a.html.twig' with {
  9317.                 text: 'Clone message',
  9318.                 link: path('app.notifications.dashboard.messages.create', {
  9319.                     clone: message.id,
  9320.                 }),
  9321.                 styles: 'gray',
  9322.             } %}
  9323.         {% endblock %}
  9324.     {% endembed %}
  9325. {% endblock %}
  9326. {% block content %}
  9327.     {% if not message.firstJob %}
  9328.         <div class=\"content__data reports__message pt-2\">
  9329.             <div class=\"blockgroup\">
  9330.                 <label class=\"blockgroup__label\">Message</label>
  9331.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  9332.             </div>
  9333.         </div>
  9334.     {% else %}
  9335.         {% set stats = message.firstJob.summarize %}
  9336.         <div class=\"content__data reports__message pt-2\">
  9337.             {% embed '@ui2022/tabs--static.html.twig' with {
  9338.                 items: [
  9339.                     {
  9340.                         text: 'Summary',
  9341.                         link: path('app.notifications.dashboard.messages.report', {
  9342.                             message: message.id,
  9343.                         }),
  9344.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  9345.                     },
  9346.                     {
  9347.                         text: 'Logs',
  9348.                         link: path('app.notifications.dashboard.messages.logs', {
  9349.                             message: message.id,
  9350.                         }),
  9351.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  9352.                     },
  9353.                     {
  9354.                         text: 'Debugging',
  9355.                         link: path('app.notifications.dashboard.messages.debugging', {
  9356.                             message: message.id,
  9357.                         }),
  9358.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  9359.                     },
  9360.                     {
  9361.                         text: 'Details',
  9362.                         link: path('app.notifications.dashboard.messages.details', {
  9363.                             message: message.id,
  9364.                         }),
  9365.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  9366.                     },
  9367.                 ],
  9368.             } %}
  9369.                 {% block tab %}
  9370.                     {% include '@ui2022/subheader.html.twig' with {
  9371.                         title: 'Summary',
  9372.                         classes: 'mt-4 pt-4',
  9373.                     } %}
  9374.                     <div class=\"three-column-section\">
  9375.                         <div class=\"three-column-inner-section\">
  9376.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  9377.                                 title: 'Sent',
  9378.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  9379.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  9380.                                 label: 'Contacts',
  9381.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  9382.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  9383.                                         message: message.id,
  9384.                                         query: {
  9385.                                             filter: 'all',
  9386.                                             state: 'all',
  9387.                                             sort: 'timestamp',
  9388.                                             direction: 'DESC'
  9389.                                         }
  9390.                                     })
  9391.                                     : null,
  9392.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  9393.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  9394.                             } %}
  9395.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  9396.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  9397.                                 title: message.sending ? 'Running' : 'Completed',
  9398.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  9399.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  9400.                                 label: interval[1]|default(''),
  9401.                             } %}
  9402.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  9403.                                 title: 'Errors',
  9404.                                 subtitle: 'Message not delivered',
  9405.                                 value: stats.all.failed|number_format,
  9406.                                 label: 'Contacts',
  9407.                                 link: (stats.all.failed > 0)
  9408.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  9409.                                         message: message.id,
  9410.                                         query: {
  9411.                                             filter: 'all',
  9412.                                             state: 'failed',
  9413.                                             sort: 'timestamp',
  9414.                                             direction: 'DESC'
  9415.                                         }
  9416.                                     })
  9417.                                     : null,
  9418.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  9419.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  9420.                             } %}
  9421.                         </div>
  9422.                     </div>
  9423.                     <div class=\"section__infostats mb-4\">
  9424.                         <div class=\"card card__charts\">
  9425.                             <div class=\"row row-10\">
  9426.                                 <div class=\"col-12 col-md-6\">
  9427.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  9428.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  9429.                                         {% include '@ui2022/chart--donut.html.twig' with {
  9430.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  9431.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  9432.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  9433.                                             }),
  9434.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  9435.                                             label: 'Total contacts',
  9436.                                         } %}
  9437.                                     </div>
  9438.                                 </div>
  9439.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  9440.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  9441.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  9442.                                         <div class=\"targetlist\">
  9443.                                             {% if message.lists|length %}
  9444.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  9445.                                                     title: 'Contact lists',
  9446.                                                     icon: 'icon-contact-reachable',
  9447.                                                     items: message.lists|map((list) => {
  9448.                                                         text: list.name,
  9449.                                                         link: path('app.notifications.dashboard.lists.view', {
  9450.                                                             list: list.id,
  9451.                                                         }),
  9452.                                                     }),
  9453.                                                 } %}
  9454.                                             {% endif %}
  9455.                                             {% if message.facebookSocialAccounts|length %}
  9456.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  9457.                                                     title: 'Facebook pages',
  9458.                                                     icon: 'icon-facebook-fill',
  9459.                                                     items: message.facebookSocialAccounts|map((social) => {
  9460.                                                         text: social.name,
  9461.                                                         target: '_blank',
  9462.                                                         link: 'https://www.facebook.com/%s'|format(
  9463.                                                             social.facebookPageId,
  9464.                                                         ),
  9465.                                                     }),
  9466.                                                 } %}
  9467.                                             {% endif %}
  9468.                                             {% if message.twitterSocialAccounts|length %}
  9469.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  9470.                                                     title: 'Twitter profiles',
  9471.                                                     icon: 'icon-twitter-fill',
  9472.                                                     items: message.twitterSocialAccounts|map((social) => {
  9473.                                                         text: social.name,
  9474.                                                         target: '_blank',
  9475.                                                         link: 'https://www.twitter.com/%s'|format(
  9476.                                                             social.twitterUserName,
  9477.                                                         ),
  9478.                                                     }),
  9479.                                                 } %}
  9480.                                             {% endif %}
  9481.                                             {% if message.instagramSocialAccounts|length %}
  9482.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  9483.                                                     title: 'Instagram accounts',
  9484.                                                     icon: 'fab fa-instagram',
  9485.                                                     items: message.instagramSocialAccounts|map((social) => {
  9486.                                                         text: social.name,
  9487.                                                         target: '_blank',
  9488.                                                         link: 'https://www.instagram.com/%s'|format(
  9489.                                                             social.name,
  9490.                                                         ),
  9491.                                                     }),
  9492.                                                 } %}
  9493.                                             {% endif %}
  9494.                                             {% if message.websiteDepartments|length %}
  9495.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  9496.                                                     title: 'Website departments',
  9497.                                                     icon: 'icon-website',
  9498.                                                     items: message.websiteDepartments|map((department) => {
  9499.                                                         text: department.name,
  9500.                                                         target: '_blank',
  9501.                                                         link: web_url_catchall(department, '/'),
  9502.                                                     }),
  9503.                                                 } %}
  9504.                                             {% endif %}
  9505.                                         </div>
  9506.                                     </div>
  9507.                                 {% endif %}
  9508.                             </div>
  9509.                         </div>
  9510.                     </div>
  9511.                     {% for channel in message.usedChannels(true) %}
  9512.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  9513.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9514.                                 icon: 'icon-activity-mail',
  9515.                                 title: 'Email',
  9516.                                 stats: [
  9517.                                     {
  9518.                                         label: 'Total sent',
  9519.                                         value: message.firstJob.emailSucceeded|number_format,
  9520.                                         link: (message.firstJob.emailSucceeded > 0)
  9521.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9522.                                                 message: message.id,
  9523.                                                 query: {
  9524.                                                     filter: 'email',
  9525.                                                     sort: 'timestamp',
  9526.                                                     direction: 'DESC'
  9527.                                                 }
  9528.                                             })
  9529.                                             : null,
  9530.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  9531.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9532.                                     },
  9533.                                     {
  9534.                                         label: 'Delivery verified',
  9535.                                         value: message.firstJob.emailDelivered|number_format,
  9536.                                         link: (message.firstJob.emailDelivered > 0)
  9537.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9538.                                                 message: message.id,
  9539.                                                 query: {
  9540.                                                     filter: 'email',
  9541.                                                     state: 'completed',
  9542.                                                     sort: 'timestamp',
  9543.                                                     direction: 'DESC'
  9544.                                                 }
  9545.                                             })
  9546.                                             : null,
  9547.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  9548.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  9549.                                     },
  9550.                                     {
  9551.                                         label: 'Bounces',
  9552.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  9553.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  9554.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9555.                                                 message: message.id,
  9556.                                                 query: {
  9557.                                                     filter: 'email',
  9558.                                                     state: 'failed',
  9559.                                                     sort: 'timestamp',
  9560.                                                     direction: 'DESC'
  9561.                                                 }
  9562.                                             })
  9563.                                             : null,
  9564.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  9565.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  9566.                                     },
  9567.                                     {
  9568.                                         label: 'Open rate',
  9569.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  9570.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  9571.                                     },
  9572.                                 ],
  9573.                             } %}
  9574.                                 {% block content %}
  9575.                                     <table class=\"table-clear border-0 text-gray-dark\">
  9576.                                         <tbody>
  9577.                                             <tr>
  9578.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  9579.                                                 <td class=\"pb-3 pb-sm-2\">
  9580.                                                     <span>{{ message.emailSubject }}</span>
  9581.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  9582.                                                 </td>
  9583.                                             </tr>
  9584.                                             <tr>
  9585.                                                 <td class=\"text-semibold pr-3\">From:</td>
  9586.                                                 <td>
  9587.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  9588.                                                 </td>
  9589.                                             </tr>
  9590.                                         </tbody>
  9591.                                     </table>
  9592.                                 {% endblock %}
  9593.                             {% endembed %}
  9594.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  9595.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9596.                                 icon: 'icon-activity-text',
  9597.                                 title: 'SMS',
  9598.                                 stats: [
  9599.                                     {
  9600.                                         label: 'Total sent',
  9601.                                         value: message.firstJob.smsSucceeded|number_format,
  9602.                                         link: (message.firstJob.smsSucceeded > 0)
  9603.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9604.                                                 message: message.id,
  9605.                                                 query: {
  9606.                                                     filter: 'sms',
  9607.                                                     state: 'all',
  9608.                                                     sort: 'timestamp',
  9609.                                                     direction: 'DESC'
  9610.                                                 }
  9611.                                             })
  9612.                                             : null,
  9613.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  9614.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9615.                                     },
  9616.                                     {
  9617.                                         label: 'Delivery verified',
  9618.                                         value: message.firstJob.smsDelivered|number_format,
  9619.                                         link: (message.firstJob.smsDelivered > 0)
  9620.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9621.                                                 message: message.id,
  9622.                                                 query: {
  9623.                                                     filter: 'sms',
  9624.                                                     state: 'completed',
  9625.                                                     sort: 'timestamp',
  9626.                                                     direction: 'DESC'
  9627.                                                 }
  9628.                                             })
  9629.                                             : null,
  9630.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  9631.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  9632.                                     },
  9633.                                     {
  9634.                                         label: 'Bounces',
  9635.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  9636.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  9637.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9638.                                                 message: message.id,
  9639.                                                 query: {
  9640.                                                     filter: 'sms',
  9641.                                                     state: 'failed',
  9642.                                                     sort: 'timestamp',
  9643.                                                     direction: 'DESC'
  9644.                                                 }
  9645.                                             })
  9646.                                             : null,
  9647.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  9648.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  9649.                                     },
  9650.                                 ],
  9651.                             } %}
  9652.                                 {% block content %}
  9653.                                     <table class=\"table-clear border-0 text-gray-dark\">
  9654.                                         <tbody>
  9655.                                             <tr>
  9656.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  9657.                                                 <td class=\"pb-3 pb-sm-2\">
  9658.                                                     <span>{{ message.smsText }}</span>
  9659.                                                     {% if message.smsUrl %}
  9660.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  9661.                                                     {% endif %}
  9662.                                                 </td>
  9663.                                             </tr>
  9664.                                             <tr>
  9665.                                                 <td class=\"text-semibold pr-3\">From:</td>
  9666.                                                 <td>
  9667.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  9668.                                                 </td>
  9669.                                             </tr>
  9670.                                         </tbody>
  9671.                                     </table>
  9672.                                 {% endblock %}
  9673.                             {% endembed %}
  9674.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  9675.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9676.                                 icon: 'icon-activity-voice',
  9677.                                 title: 'Phone',
  9678.                                 stats: [
  9679.                                     {
  9680.                                         label: 'Total sent',
  9681.                                         value: message.firstJob.voiceSucceeded|number_format,
  9682.                                         link: (message.firstJob.voiceSucceeded > 0)
  9683.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9684.                                                 message: message.id,
  9685.                                                 query: {
  9686.                                                     filter: 'voice',
  9687.                                                     state: 'all',
  9688.                                                     sort: 'timestamp',
  9689.                                                     direction: 'DESC'
  9690.                                                 }
  9691.                                             })
  9692.                                             : null,
  9693.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  9694.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9695.                                     },
  9696.                                     {
  9697.                                         label: 'Delivery verified',
  9698.                                         value: message.firstJob.voiceDelivered|number_format,
  9699.                                         link: (message.firstJob.voiceDelivered > 0)
  9700.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9701.                                                 message: message.id,
  9702.                                                 query: {
  9703.                                                     filter: 'voice',
  9704.                                                     state: 'completed',
  9705.                                                     sort: 'timestamp',
  9706.                                                     direction: 'DESC'
  9707.                                                 }
  9708.                                             })
  9709.                                             : null,
  9710.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  9711.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  9712.                                     },
  9713.                                     {
  9714.                                         label: 'Bounces',
  9715.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  9716.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  9717.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9718.                                                 message: message.id,
  9719.                                                 query: {
  9720.                                                     filter: 'voice',
  9721.                                                     state: 'failed',
  9722.                                                     sort: 'timestamp',
  9723.                                                     direction: 'DESC'
  9724.                                                 }
  9725.                                             })
  9726.                                             : null,
  9727.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  9728.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  9729.                                     },
  9730.                                     {
  9731.                                         label: 'Answer rate',
  9732.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  9733.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  9734.                                     },
  9735.                                 ],
  9736.                             } %}
  9737.                                 {% block content %}
  9738.                                     <table class=\"table-clear border-0 text-gray-dark\">
  9739.                                         <tbody>
  9740.                                             <tr>
  9741.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  9742.                                                 <td class=\"pb-3 pb-sm-2\">
  9743.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  9744.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  9745.                                                         Your browser does not support the audio element.
  9746.                                                     </audio>
  9747.                                                 </td>
  9748.                                             </tr>
  9749.                                             <tr>
  9750.                                                 <td class=\"text-semibold pr-3\">From:</td>
  9751.                                                 <td>
  9752.                                                     <span class=\"emailid\">
  9753.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  9754.                                                     </span>
  9755.                                                 </td>
  9756.                                             </tr>
  9757.                                         </tbody>
  9758.                                     </table>
  9759.                                 {% endblock %}
  9760.                             {% endembed %}
  9761.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  9762.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9763.                                 icon: 'icon-deviceapp',
  9764.                                 title: 'Mobile app',
  9765.                                 stats: [
  9766.                                     {
  9767.                                         label: 'Total sent',
  9768.                                         value: message.firstJob.appSucceeded|number_format,
  9769.                                         link: (message.firstJob.appSucceeded > 0)
  9770.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9771.                                                 message: message.id,
  9772.                                                 query: {
  9773.                                                     filter: 'app',
  9774.                                                     state: 'pending',
  9775.                                                     sort: 'timestamp',
  9776.                                                     direction: 'DESC'
  9777.                                                 }
  9778.                                             })
  9779.                                             : null,
  9780.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  9781.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9782.                                     },
  9783.                                     {
  9784.                                         label: 'Delivery verified',
  9785.                                         value: message.firstJob.appDelivered|number_format,
  9786.                                     },
  9787.                                     {
  9788.                                         label: 'Bounces',
  9789.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  9790.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  9791.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9792.                                                 message: message.id,
  9793.                                                 query: {
  9794.                                                     filter: 'app',
  9795.                                                     state: 'failed',
  9796.                                                     sort: 'timestamp',
  9797.                                                     direction: 'DESC'
  9798.                                                 }
  9799.                                             })
  9800.                                             : null,
  9801.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  9802.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  9803.                                     },
  9804.                                 ],
  9805.                             } %}
  9806.                                 {% block content %}
  9807.                                     <table class=\"table-clear border-0 text-gray-dark\">
  9808.                                         <tbody>
  9809.                                             <tr>
  9810.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  9811.                                                 <td class=\"pb-3 pb-sm-2\">
  9812.                                                     <span>{{ message.appTitle }}</span>
  9813.                                                 </td>
  9814.                                             </tr>
  9815.                                         </tbody>
  9816.                                     </table>
  9817.                                 {% endblock %}
  9818.                             {% endembed %}
  9819.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  9820.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9821.                                 icon: 'icon-facebook-fill',
  9822.                                 title: 'Facebook',
  9823.                                 stats: [
  9824.                                     {
  9825.                                         label: 'Total posts',
  9826.                                         value: message.firstJob.facebookTotal|number_format,
  9827.                                         link: (message.firstJob.facebookTotal > 0)
  9828.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9829.                                                 message: message.id,
  9830.                                                 query: {
  9831.                                                     filter: 'facebook',
  9832.                                                     state: 'all',
  9833.                                                     sort: 'timestamp',
  9834.                                                     direction: 'DESC'
  9835.                                                 }
  9836.                                             })
  9837.                                             : null,
  9838.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  9839.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  9840.                                     },
  9841.                                     {
  9842.                                         label: 'Successful posts',
  9843.                                         value: message.firstJob.facebookSucceeded|number_format,
  9844.                                         link: (message.firstJob.facebookSucceeded > 0)
  9845.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9846.                                                 message: message.id,
  9847.                                                 query: {
  9848.                                                     filter: 'facebook',
  9849.                                                     state: 'completed',
  9850.                                                     sort: 'timestamp',
  9851.                                                     direction: 'DESC'
  9852.                                                 }
  9853.                                             })
  9854.                                             : null,
  9855.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  9856.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9857.                                     },
  9858.                                     {
  9859.                                         label: 'Errors',
  9860.                                         value: message.firstJob.facebookFailed|number_format,
  9861.                                         link: (message.firstJob.facebookFailed > 0)
  9862.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9863.                                                 message: message.id,
  9864.                                                 query: {
  9865.                                                     filter: 'facebook',
  9866.                                                     state: 'failed',
  9867.                                                     sort: 'timestamp',
  9868.                                                     direction: 'DESC'
  9869.                                                 }
  9870.                                             })
  9871.                                             : null,
  9872.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  9873.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  9874.                                     },
  9875.                                 ],
  9876.                             } %}{% endembed %}
  9877.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  9878.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9879.                                 icon: 'icon-twitter-fill',
  9880.                                 title: 'Twitter',
  9881.                                 stats: [
  9882.                                     {
  9883.                                         label: 'Total posts',
  9884.                                         value: message.firstJob.twitterTotal|number_format,
  9885.                                         link: (message.firstJob.twitterTotal > 0)
  9886.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9887.                                                 message: message.id,
  9888.                                                 query: {
  9889.                                                     filter: 'twitter',
  9890.                                                     state: 'all',
  9891.                                                     sort: 'timestamp',
  9892.                                                     direction: 'DESC'
  9893.                                                 }
  9894.                                             })
  9895.                                             : null,
  9896.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  9897.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  9898.                                     },
  9899.                                     {
  9900.                                         label: 'Successful posts',
  9901.                                         value: message.firstJob.twitterSucceeded|number_format,
  9902.                                         link: (message.firstJob.twitterSucceeded > 0)
  9903.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9904.                                                 message: message.id,
  9905.                                                 query: {
  9906.                                                     filter: 'twitter',
  9907.                                                     state: 'completed',
  9908.                                                     sort: 'timestamp',
  9909.                                                     direction: 'DESC'
  9910.                                                 }
  9911.                                             })
  9912.                                             : null,
  9913.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  9914.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9915.                                     },
  9916.                                     {
  9917.                                         label: 'Errors',
  9918.                                         value: message.firstJob.twitterFailed|number_format,
  9919.                                         link: (message.firstJob.twitterFailed > 0)
  9920.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9921.                                                 message: message.id,
  9922.                                                 query: {
  9923.                                                     filter: 'twitter',
  9924.                                                     state: 'failed',
  9925.                                                     sort: 'timestamp',
  9926.                                                     direction: 'DESC'
  9927.                                                 }
  9928.                                             })
  9929.                                             : null,
  9930.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  9931.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  9932.                                     },
  9933.                                 ],
  9934.                             } %}{% endembed %}
  9935.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  9936.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9937.                                 icon: 'fab fa-instagram',
  9938.                                 title: 'Instagram',
  9939.                                 stats: [
  9940.                                     {
  9941.                                         label: 'Total posts',
  9942.                                         value: message.firstJob.instagramTotal|number_format,
  9943.                                         link: (message.firstJob.instagramTotal > 0)
  9944.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9945.                                                 message: message.id,
  9946.                                                 query: {
  9947.                                                     filter: 'instagram',
  9948.                                                     state: 'all',
  9949.                                                     sort: 'timestamp',
  9950.                                                     direction: 'DESC'
  9951.                                                 }
  9952.                                             })
  9953.                                             : null,
  9954.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  9955.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  9956.                                     },
  9957.                                     {
  9958.                                         label: 'Successful posts',
  9959.                                         value: message.firstJob.instagramSucceeded|number_format,
  9960.                                         link: (message.firstJob.instagramSucceeded > 0)
  9961.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9962.                                                 message: message.id,
  9963.                                                 query: {
  9964.                                                     filter: 'instagram',
  9965.                                                     state: 'completed',
  9966.                                                     sort: 'timestamp',
  9967.                                                     direction: 'DESC'
  9968.                                                 }
  9969.                                             })
  9970.                                             : null,
  9971.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  9972.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  9973.                                     },
  9974.                                     {
  9975.                                         label: 'Errors',
  9976.                                         value: message.firstJob.instagramFailed|number_format,
  9977.                                         link: (message.firstJob.instagramFailed > 0)
  9978.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  9979.                                                 message: message.id,
  9980.                                                 query: {
  9981.                                                     filter: 'instagram',
  9982.                                                     state: 'failed',
  9983.                                                     sort: 'timestamp',
  9984.                                                     direction: 'DESC'
  9985.                                                 }
  9986.                                             })
  9987.                                             : null,
  9988.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  9989.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  9990.                                     },
  9991.                                 ],
  9992.                             } %}{% endembed %}
  9993.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  9994.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  9995.                                 icon: 'icon-website',
  9996.                                 title: 'Website',
  9997.                                 stats: [
  9998.                                     {
  9999.                                         label: 'Total posts',
  10000.                                         value: message.firstJob.websiteTotal|number_format,
  10001.                                         link: (message.firstJob.websiteTotal > 0)
  10002.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10003.                                                 message: message.id,
  10004.                                                 query: {
  10005.                                                     filter: 'website',
  10006.                                                     state: 'all',
  10007.                                                     sort: 'timestamp',
  10008.                                                     direction: 'DESC'
  10009.                                                 }
  10010.                                             })
  10011.                                             : null,
  10012.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  10013.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  10014.                                     },
  10015.                                     {
  10016.                                         label: 'Successful posts',
  10017.                                         value: message.firstJob.websiteSucceeded|number_format,
  10018.                                         link: (message.firstJob.websiteSucceeded > 0)
  10019.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10020.                                                 message: message.id,
  10021.                                                 query: {
  10022.                                                     filter: 'website',
  10023.                                                     state: 'completed',
  10024.                                                     sort: 'timestamp',
  10025.                                                     direction: 'DESC'
  10026.                                                 }
  10027.                                             })
  10028.                                             : null,
  10029.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  10030.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  10031.                                     },
  10032.                                     {
  10033.                                         label: 'Errors',
  10034.                                         value: message.firstJob.websiteFailed|number_format,
  10035.                                         link: (message.firstJob.websiteFailed > 0)
  10036.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10037.                                                 message: message.id,
  10038.                                                 query: {
  10039.                                                     filter: 'website',
  10040.                                                     state: 'failed',
  10041.                                                     sort: 'timestamp',
  10042.                                                     direction: 'DESC'
  10043.                                                 }
  10044.                                             })
  10045.                                             : null,
  10046.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  10047.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  10048.                                     },
  10049.                                 ],
  10050.                             } %}{% endembed %}
  10051.                         {% endif %}
  10052.                     {% endfor %}
  10053.                 {% endblock %}
  10054.             {% endembed %}
  10055.         </div>
  10056.     {% endif %}
  10057. {% endblock %}
  10058. {% block modals %}
  10059.     {{ parent() }}
  10060.     {% embed '@ui2022/modal.html.twig' with {
  10061.         attr: {
  10062.             id: 'modal__email_preview',
  10063.         },
  10064.     } %}
  10065.         {% block content %}
  10066.             {% embed '@ui2022/modal__content.html.twig' with {
  10067.                 title: 'Email Preview',
  10068.             } %}
  10069.                 {% block body %}
  10070.                     <iframe
  10071.                         id=\"preview-email-iframe\"
  10072.                         loading=\"lazy\"
  10073.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  10074.                         frameborder=\"0\"
  10075.                         style=\"width: 100%; height: 500px\"
  10076.                     >
  10077.                     </iframe>
  10078.                 {% endblock %}
  10079.             {% endembed %}
  10080.         {% endblock %}
  10081.     {% endembed %}
  10082.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  10083.         attr: {
  10084.             id: 'sidepanel__filtered_logs',
  10085.         },
  10086.     } %}
  10087.     <script type=\"text/javascript\">
  10088.         (function (window, document, \$, undefined) {
  10089.             \$(function () {
  10090.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  10091.                     const pageHeight = \$(window).height();
  10092.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  10093.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  10094.                 });
  10095.             });
  10096.         })(window, document, jQuery);
  10097.     </script>
  10098. {% endblock %}
  10099. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  10100.     }
  10101. }
  10102. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  10103. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___1719583840 extends \Twig\Template
  10104. {
  10105.     private $source;
  10106.     private $macros = [];
  10107.     public function __construct(Environment $env)
  10108.     {
  10109.         parent::__construct($env);
  10110.         $this->source $this->getSourceContext();
  10111.         $this->blocks = [
  10112.             'content' => [$this'block_content'],
  10113.         ];
  10114.     }
  10115.     protected function doGetParent(array $context)
  10116.     {
  10117.         // line 765
  10118.         return "@ui2022/modal.html.twig";
  10119.     }
  10120.     protected function doDisplay(array $context, array $blocks = [])
  10121.     {
  10122.         $macros $this->macros;
  10123.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  10124.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  10125.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  10126.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  10127.         $this->parent $this->loadTemplate("@ui2022/modal.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"765);
  10128.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  10129.         
  10130.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  10131.         
  10132.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  10133.     }
  10134.     // line 770
  10135.     public function block_content($context, array $blocks = [])
  10136.     {
  10137.         $macros $this->macros;
  10138.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  10139.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  10140.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  10141.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  10142.         // line 771
  10143.         echo "            ";
  10144.         $this->loadTemplate("@ProductsNotifications/dashboard/messages/report.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"771"497543387")->display(twig_array_merge(twig_array_merge($context, ["title" => "Email Preview"]), ['_args' => twig_to_array(["title" => "Email Preview"])]));
  10145.         // line 785
  10146.         echo "        ";
  10147.         
  10148.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  10149.         
  10150.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  10151.     }
  10152.     public function getTemplateName()
  10153.     {
  10154.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  10155.     }
  10156.     public function isTraitable()
  10157.     {
  10158.         return false;
  10159.     }
  10160.     public function getDebugInfo()
  10161.     {
  10162.         return array (  10464 => 785,  10461 => 771,  10451 => 770,  10428 => 765,  9561 => 698,  8695 => 640,  7829 => 582,  6963 => 524,  6104 => 516,  6097 => 511,  6087 => 510,  6064 => 466,  5205 => 458,  5203 => 457,  5192 => 448,  5184 => 442,  5174 => 441,  5151 => 379,  4291 => 371,  4284 => 366,  4276 => 364,  4274 => 363,  4270 => 362,  4263 => 357,  4253 => 356,  4230 => 299,  3368 => 291,  3358 => 284,  3351 => 279,  3341 => 278,  3318 => 217,  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  10163.     }
  10164.     public function getSourceContext()
  10165.     {
  10166.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  10167. {% do dom_title_section('Messages') %}
  10168. {% block wrap %}content__area--uilib reports{% endblock %}
  10169. {% block header %}
  10170.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  10171.         title: message.title,
  10172.         back: {
  10173.             text: 'Back to Messages',
  10174.             link: path('app.notifications.dashboard.messages.main'),
  10175.         },
  10176.     } %}
  10177.         {% block actions %}
  10178.             {% include '@ui2022/button--a.html.twig' with {
  10179.                 text: 'Clone message',
  10180.                 link: path('app.notifications.dashboard.messages.create', {
  10181.                     clone: message.id,
  10182.                 }),
  10183.                 styles: 'gray',
  10184.             } %}
  10185.         {% endblock %}
  10186.     {% endembed %}
  10187. {% endblock %}
  10188. {% block content %}
  10189.     {% if not message.firstJob %}
  10190.         <div class=\"content__data reports__message pt-2\">
  10191.             <div class=\"blockgroup\">
  10192.                 <label class=\"blockgroup__label\">Message</label>
  10193.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  10194.             </div>
  10195.         </div>
  10196.     {% else %}
  10197.         {% set stats = message.firstJob.summarize %}
  10198.         <div class=\"content__data reports__message pt-2\">
  10199.             {% embed '@ui2022/tabs--static.html.twig' with {
  10200.                 items: [
  10201.                     {
  10202.                         text: 'Summary',
  10203.                         link: path('app.notifications.dashboard.messages.report', {
  10204.                             message: message.id,
  10205.                         }),
  10206.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  10207.                     },
  10208.                     {
  10209.                         text: 'Logs',
  10210.                         link: path('app.notifications.dashboard.messages.logs', {
  10211.                             message: message.id,
  10212.                         }),
  10213.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  10214.                     },
  10215.                     {
  10216.                         text: 'Debugging',
  10217.                         link: path('app.notifications.dashboard.messages.debugging', {
  10218.                             message: message.id,
  10219.                         }),
  10220.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  10221.                     },
  10222.                     {
  10223.                         text: 'Details',
  10224.                         link: path('app.notifications.dashboard.messages.details', {
  10225.                             message: message.id,
  10226.                         }),
  10227.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  10228.                     },
  10229.                 ],
  10230.             } %}
  10231.                 {% block tab %}
  10232.                     {% include '@ui2022/subheader.html.twig' with {
  10233.                         title: 'Summary',
  10234.                         classes: 'mt-4 pt-4',
  10235.                     } %}
  10236.                     <div class=\"three-column-section\">
  10237.                         <div class=\"three-column-inner-section\">
  10238.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  10239.                                 title: 'Sent',
  10240.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  10241.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  10242.                                 label: 'Contacts',
  10243.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  10244.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  10245.                                         message: message.id,
  10246.                                         query: {
  10247.                                             filter: 'all',
  10248.                                             state: 'all',
  10249.                                             sort: 'timestamp',
  10250.                                             direction: 'DESC'
  10251.                                         }
  10252.                                     })
  10253.                                     : null,
  10254.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  10255.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  10256.                             } %}
  10257.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  10258.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  10259.                                 title: message.sending ? 'Running' : 'Completed',
  10260.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  10261.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  10262.                                 label: interval[1]|default(''),
  10263.                             } %}
  10264.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  10265.                                 title: 'Errors',
  10266.                                 subtitle: 'Message not delivered',
  10267.                                 value: stats.all.failed|number_format,
  10268.                                 label: 'Contacts',
  10269.                                 link: (stats.all.failed > 0)
  10270.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  10271.                                         message: message.id,
  10272.                                         query: {
  10273.                                             filter: 'all',
  10274.                                             state: 'failed',
  10275.                                             sort: 'timestamp',
  10276.                                             direction: 'DESC'
  10277.                                         }
  10278.                                     })
  10279.                                     : null,
  10280.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  10281.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  10282.                             } %}
  10283.                         </div>
  10284.                     </div>
  10285.                     <div class=\"section__infostats mb-4\">
  10286.                         <div class=\"card card__charts\">
  10287.                             <div class=\"row row-10\">
  10288.                                 <div class=\"col-12 col-md-6\">
  10289.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  10290.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  10291.                                         {% include '@ui2022/chart--donut.html.twig' with {
  10292.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  10293.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  10294.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  10295.                                             }),
  10296.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  10297.                                             label: 'Total contacts',
  10298.                                         } %}
  10299.                                     </div>
  10300.                                 </div>
  10301.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  10302.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  10303.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  10304.                                         <div class=\"targetlist\">
  10305.                                             {% if message.lists|length %}
  10306.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  10307.                                                     title: 'Contact lists',
  10308.                                                     icon: 'icon-contact-reachable',
  10309.                                                     items: message.lists|map((list) => {
  10310.                                                         text: list.name,
  10311.                                                         link: path('app.notifications.dashboard.lists.view', {
  10312.                                                             list: list.id,
  10313.                                                         }),
  10314.                                                     }),
  10315.                                                 } %}
  10316.                                             {% endif %}
  10317.                                             {% if message.facebookSocialAccounts|length %}
  10318.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  10319.                                                     title: 'Facebook pages',
  10320.                                                     icon: 'icon-facebook-fill',
  10321.                                                     items: message.facebookSocialAccounts|map((social) => {
  10322.                                                         text: social.name,
  10323.                                                         target: '_blank',
  10324.                                                         link: 'https://www.facebook.com/%s'|format(
  10325.                                                             social.facebookPageId,
  10326.                                                         ),
  10327.                                                     }),
  10328.                                                 } %}
  10329.                                             {% endif %}
  10330.                                             {% if message.twitterSocialAccounts|length %}
  10331.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  10332.                                                     title: 'Twitter profiles',
  10333.                                                     icon: 'icon-twitter-fill',
  10334.                                                     items: message.twitterSocialAccounts|map((social) => {
  10335.                                                         text: social.name,
  10336.                                                         target: '_blank',
  10337.                                                         link: 'https://www.twitter.com/%s'|format(
  10338.                                                             social.twitterUserName,
  10339.                                                         ),
  10340.                                                     }),
  10341.                                                 } %}
  10342.                                             {% endif %}
  10343.                                             {% if message.instagramSocialAccounts|length %}
  10344.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  10345.                                                     title: 'Instagram accounts',
  10346.                                                     icon: 'fab fa-instagram',
  10347.                                                     items: message.instagramSocialAccounts|map((social) => {
  10348.                                                         text: social.name,
  10349.                                                         target: '_blank',
  10350.                                                         link: 'https://www.instagram.com/%s'|format(
  10351.                                                             social.name,
  10352.                                                         ),
  10353.                                                     }),
  10354.                                                 } %}
  10355.                                             {% endif %}
  10356.                                             {% if message.websiteDepartments|length %}
  10357.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  10358.                                                     title: 'Website departments',
  10359.                                                     icon: 'icon-website',
  10360.                                                     items: message.websiteDepartments|map((department) => {
  10361.                                                         text: department.name,
  10362.                                                         target: '_blank',
  10363.                                                         link: web_url_catchall(department, '/'),
  10364.                                                     }),
  10365.                                                 } %}
  10366.                                             {% endif %}
  10367.                                         </div>
  10368.                                     </div>
  10369.                                 {% endif %}
  10370.                             </div>
  10371.                         </div>
  10372.                     </div>
  10373.                     {% for channel in message.usedChannels(true) %}
  10374.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  10375.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  10376.                                 icon: 'icon-activity-mail',
  10377.                                 title: 'Email',
  10378.                                 stats: [
  10379.                                     {
  10380.                                         label: 'Total sent',
  10381.                                         value: message.firstJob.emailSucceeded|number_format,
  10382.                                         link: (message.firstJob.emailSucceeded > 0)
  10383.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10384.                                                 message: message.id,
  10385.                                                 query: {
  10386.                                                     filter: 'email',
  10387.                                                     sort: 'timestamp',
  10388.                                                     direction: 'DESC'
  10389.                                                 }
  10390.                                             })
  10391.                                             : null,
  10392.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  10393.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  10394.                                     },
  10395.                                     {
  10396.                                         label: 'Delivery verified',
  10397.                                         value: message.firstJob.emailDelivered|number_format,
  10398.                                         link: (message.firstJob.emailDelivered > 0)
  10399.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10400.                                                 message: message.id,
  10401.                                                 query: {
  10402.                                                     filter: 'email',
  10403.                                                     state: 'completed',
  10404.                                                     sort: 'timestamp',
  10405.                                                     direction: 'DESC'
  10406.                                                 }
  10407.                                             })
  10408.                                             : null,
  10409.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  10410.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  10411.                                     },
  10412.                                     {
  10413.                                         label: 'Bounces',
  10414.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  10415.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  10416.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10417.                                                 message: message.id,
  10418.                                                 query: {
  10419.                                                     filter: 'email',
  10420.                                                     state: 'failed',
  10421.                                                     sort: 'timestamp',
  10422.                                                     direction: 'DESC'
  10423.                                                 }
  10424.                                             })
  10425.                                             : null,
  10426.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  10427.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  10428.                                     },
  10429.                                     {
  10430.                                         label: 'Open rate',
  10431.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  10432.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  10433.                                     },
  10434.                                 ],
  10435.                             } %}
  10436.                                 {% block content %}
  10437.                                     <table class=\"table-clear border-0 text-gray-dark\">
  10438.                                         <tbody>
  10439.                                             <tr>
  10440.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  10441.                                                 <td class=\"pb-3 pb-sm-2\">
  10442.                                                     <span>{{ message.emailSubject }}</span>
  10443.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  10444.                                                 </td>
  10445.                                             </tr>
  10446.                                             <tr>
  10447.                                                 <td class=\"text-semibold pr-3\">From:</td>
  10448.                                                 <td>
  10449.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  10450.                                                 </td>
  10451.                                             </tr>
  10452.                                         </tbody>
  10453.                                     </table>
  10454.                                 {% endblock %}
  10455.                             {% endembed %}
  10456.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  10457.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  10458.                                 icon: 'icon-activity-text',
  10459.                                 title: 'SMS',
  10460.                                 stats: [
  10461.                                     {
  10462.                                         label: 'Total sent',
  10463.                                         value: message.firstJob.smsSucceeded|number_format,
  10464.                                         link: (message.firstJob.smsSucceeded > 0)
  10465.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10466.                                                 message: message.id,
  10467.                                                 query: {
  10468.                                                     filter: 'sms',
  10469.                                                     state: 'all',
  10470.                                                     sort: 'timestamp',
  10471.                                                     direction: 'DESC'
  10472.                                                 }
  10473.                                             })
  10474.                                             : null,
  10475.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  10476.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  10477.                                     },
  10478.                                     {
  10479.                                         label: 'Delivery verified',
  10480.                                         value: message.firstJob.smsDelivered|number_format,
  10481.                                         link: (message.firstJob.smsDelivered > 0)
  10482.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10483.                                                 message: message.id,
  10484.                                                 query: {
  10485.                                                     filter: 'sms',
  10486.                                                     state: 'completed',
  10487.                                                     sort: 'timestamp',
  10488.                                                     direction: 'DESC'
  10489.                                                 }
  10490.                                             })
  10491.                                             : null,
  10492.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  10493.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  10494.                                     },
  10495.                                     {
  10496.                                         label: 'Bounces',
  10497.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  10498.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  10499.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10500.                                                 message: message.id,
  10501.                                                 query: {
  10502.                                                     filter: 'sms',
  10503.                                                     state: 'failed',
  10504.                                                     sort: 'timestamp',
  10505.                                                     direction: 'DESC'
  10506.                                                 }
  10507.                                             })
  10508.                                             : null,
  10509.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  10510.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  10511.                                     },
  10512.                                 ],
  10513.                             } %}
  10514.                                 {% block content %}
  10515.                                     <table class=\"table-clear border-0 text-gray-dark\">
  10516.                                         <tbody>
  10517.                                             <tr>
  10518.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  10519.                                                 <td class=\"pb-3 pb-sm-2\">
  10520.                                                     <span>{{ message.smsText }}</span>
  10521.                                                     {% if message.smsUrl %}
  10522.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  10523.                                                     {% endif %}
  10524.                                                 </td>
  10525.                                             </tr>
  10526.                                             <tr>
  10527.                                                 <td class=\"text-semibold pr-3\">From:</td>
  10528.                                                 <td>
  10529.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  10530.                                                 </td>
  10531.                                             </tr>
  10532.                                         </tbody>
  10533.                                     </table>
  10534.                                 {% endblock %}
  10535.                             {% endembed %}
  10536.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  10537.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  10538.                                 icon: 'icon-activity-voice',
  10539.                                 title: 'Phone',
  10540.                                 stats: [
  10541.                                     {
  10542.                                         label: 'Total sent',
  10543.                                         value: message.firstJob.voiceSucceeded|number_format,
  10544.                                         link: (message.firstJob.voiceSucceeded > 0)
  10545.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10546.                                                 message: message.id,
  10547.                                                 query: {
  10548.                                                     filter: 'voice',
  10549.                                                     state: 'all',
  10550.                                                     sort: 'timestamp',
  10551.                                                     direction: 'DESC'
  10552.                                                 }
  10553.                                             })
  10554.                                             : null,
  10555.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  10556.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  10557.                                     },
  10558.                                     {
  10559.                                         label: 'Delivery verified',
  10560.                                         value: message.firstJob.voiceDelivered|number_format,
  10561.                                         link: (message.firstJob.voiceDelivered > 0)
  10562.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10563.                                                 message: message.id,
  10564.                                                 query: {
  10565.                                                     filter: 'voice',
  10566.                                                     state: 'completed',
  10567.                                                     sort: 'timestamp',
  10568.                                                     direction: 'DESC'
  10569.                                                 }
  10570.                                             })
  10571.                                             : null,
  10572.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  10573.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  10574.                                     },
  10575.                                     {
  10576.                                         label: 'Bounces',
  10577.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  10578.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  10579.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10580.                                                 message: message.id,
  10581.                                                 query: {
  10582.                                                     filter: 'voice',
  10583.                                                     state: 'failed',
  10584.                                                     sort: 'timestamp',
  10585.                                                     direction: 'DESC'
  10586.                                                 }
  10587.                                             })
  10588.                                             : null,
  10589.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  10590.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  10591.                                     },
  10592.                                     {
  10593.                                         label: 'Answer rate',
  10594.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  10595.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  10596.                                     },
  10597.                                 ],
  10598.                             } %}
  10599.                                 {% block content %}
  10600.                                     <table class=\"table-clear border-0 text-gray-dark\">
  10601.                                         <tbody>
  10602.                                             <tr>
  10603.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  10604.                                                 <td class=\"pb-3 pb-sm-2\">
  10605.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  10606.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  10607.                                                         Your browser does not support the audio element.
  10608.                                                     </audio>
  10609.                                                 </td>
  10610.                                             </tr>
  10611.                                             <tr>
  10612.                                                 <td class=\"text-semibold pr-3\">From:</td>
  10613.                                                 <td>
  10614.                                                     <span class=\"emailid\">
  10615.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  10616.                                                     </span>
  10617.                                                 </td>
  10618.                                             </tr>
  10619.                                         </tbody>
  10620.                                     </table>
  10621.                                 {% endblock %}
  10622.                             {% endembed %}
  10623.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  10624.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  10625.                                 icon: 'icon-deviceapp',
  10626.                                 title: 'Mobile app',
  10627.                                 stats: [
  10628.                                     {
  10629.                                         label: 'Total sent',
  10630.                                         value: message.firstJob.appSucceeded|number_format,
  10631.                                         link: (message.firstJob.appSucceeded > 0)
  10632.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10633.                                                 message: message.id,
  10634.                                                 query: {
  10635.                                                     filter: 'app',
  10636.                                                     state: 'pending',
  10637.                                                     sort: 'timestamp',
  10638.                                                     direction: 'DESC'
  10639.                                                 }
  10640.                                             })
  10641.                                             : null,
  10642.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  10643.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  10644.                                     },
  10645.                                     {
  10646.                                         label: 'Delivery verified',
  10647.                                         value: message.firstJob.appDelivered|number_format,
  10648.                                     },
  10649.                                     {
  10650.                                         label: 'Bounces',
  10651.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  10652.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  10653.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10654.                                                 message: message.id,
  10655.                                                 query: {
  10656.                                                     filter: 'app',
  10657.                                                     state: 'failed',
  10658.                                                     sort: 'timestamp',
  10659.                                                     direction: 'DESC'
  10660.                                                 }
  10661.                                             })
  10662.                                             : null,
  10663.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  10664.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  10665.                                     },
  10666.                                 ],
  10667.                             } %}
  10668.                                 {% block content %}
  10669.                                     <table class=\"table-clear border-0 text-gray-dark\">
  10670.                                         <tbody>
  10671.                                             <tr>
  10672.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  10673.                                                 <td class=\"pb-3 pb-sm-2\">
  10674.                                                     <span>{{ message.appTitle }}</span>
  10675.                                                 </td>
  10676.                                             </tr>
  10677.                                         </tbody>
  10678.                                     </table>
  10679.                                 {% endblock %}
  10680.                             {% endembed %}
  10681.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  10682.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  10683.                                 icon: 'icon-facebook-fill',
  10684.                                 title: 'Facebook',
  10685.                                 stats: [
  10686.                                     {
  10687.                                         label: 'Total posts',
  10688.                                         value: message.firstJob.facebookTotal|number_format,
  10689.                                         link: (message.firstJob.facebookTotal > 0)
  10690.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10691.                                                 message: message.id,
  10692.                                                 query: {
  10693.                                                     filter: 'facebook',
  10694.                                                     state: 'all',
  10695.                                                     sort: 'timestamp',
  10696.                                                     direction: 'DESC'
  10697.                                                 }
  10698.                                             })
  10699.                                             : null,
  10700.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  10701.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  10702.                                     },
  10703.                                     {
  10704.                                         label: 'Successful posts',
  10705.                                         value: message.firstJob.facebookSucceeded|number_format,
  10706.                                         link: (message.firstJob.facebookSucceeded > 0)
  10707.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10708.                                                 message: message.id,
  10709.                                                 query: {
  10710.                                                     filter: 'facebook',
  10711.                                                     state: 'completed',
  10712.                                                     sort: 'timestamp',
  10713.                                                     direction: 'DESC'
  10714.                                                 }
  10715.                                             })
  10716.                                             : null,
  10717.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  10718.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  10719.                                     },
  10720.                                     {
  10721.                                         label: 'Errors',
  10722.                                         value: message.firstJob.facebookFailed|number_format,
  10723.                                         link: (message.firstJob.facebookFailed > 0)
  10724.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10725.                                                 message: message.id,
  10726.                                                 query: {
  10727.                                                     filter: 'facebook',
  10728.                                                     state: 'failed',
  10729.                                                     sort: 'timestamp',
  10730.                                                     direction: 'DESC'
  10731.                                                 }
  10732.                                             })
  10733.                                             : null,
  10734.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  10735.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  10736.                                     },
  10737.                                 ],
  10738.                             } %}{% endembed %}
  10739.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  10740.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  10741.                                 icon: 'icon-twitter-fill',
  10742.                                 title: 'Twitter',
  10743.                                 stats: [
  10744.                                     {
  10745.                                         label: 'Total posts',
  10746.                                         value: message.firstJob.twitterTotal|number_format,
  10747.                                         link: (message.firstJob.twitterTotal > 0)
  10748.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10749.                                                 message: message.id,
  10750.                                                 query: {
  10751.                                                     filter: 'twitter',
  10752.                                                     state: 'all',
  10753.                                                     sort: 'timestamp',
  10754.                                                     direction: 'DESC'
  10755.                                                 }
  10756.                                             })
  10757.                                             : null,
  10758.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  10759.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  10760.                                     },
  10761.                                     {
  10762.                                         label: 'Successful posts',
  10763.                                         value: message.firstJob.twitterSucceeded|number_format,
  10764.                                         link: (message.firstJob.twitterSucceeded > 0)
  10765.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10766.                                                 message: message.id,
  10767.                                                 query: {
  10768.                                                     filter: 'twitter',
  10769.                                                     state: 'completed',
  10770.                                                     sort: 'timestamp',
  10771.                                                     direction: 'DESC'
  10772.                                                 }
  10773.                                             })
  10774.                                             : null,
  10775.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  10776.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  10777.                                     },
  10778.                                     {
  10779.                                         label: 'Errors',
  10780.                                         value: message.firstJob.twitterFailed|number_format,
  10781.                                         link: (message.firstJob.twitterFailed > 0)
  10782.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10783.                                                 message: message.id,
  10784.                                                 query: {
  10785.                                                     filter: 'twitter',
  10786.                                                     state: 'failed',
  10787.                                                     sort: 'timestamp',
  10788.                                                     direction: 'DESC'
  10789.                                                 }
  10790.                                             })
  10791.                                             : null,
  10792.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  10793.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  10794.                                     },
  10795.                                 ],
  10796.                             } %}{% endembed %}
  10797.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  10798.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  10799.                                 icon: 'fab fa-instagram',
  10800.                                 title: 'Instagram',
  10801.                                 stats: [
  10802.                                     {
  10803.                                         label: 'Total posts',
  10804.                                         value: message.firstJob.instagramTotal|number_format,
  10805.                                         link: (message.firstJob.instagramTotal > 0)
  10806.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10807.                                                 message: message.id,
  10808.                                                 query: {
  10809.                                                     filter: 'instagram',
  10810.                                                     state: 'all',
  10811.                                                     sort: 'timestamp',
  10812.                                                     direction: 'DESC'
  10813.                                                 }
  10814.                                             })
  10815.                                             : null,
  10816.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  10817.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  10818.                                     },
  10819.                                     {
  10820.                                         label: 'Successful posts',
  10821.                                         value: message.firstJob.instagramSucceeded|number_format,
  10822.                                         link: (message.firstJob.instagramSucceeded > 0)
  10823.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10824.                                                 message: message.id,
  10825.                                                 query: {
  10826.                                                     filter: 'instagram',
  10827.                                                     state: 'completed',
  10828.                                                     sort: 'timestamp',
  10829.                                                     direction: 'DESC'
  10830.                                                 }
  10831.                                             })
  10832.                                             : null,
  10833.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  10834.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  10835.                                     },
  10836.                                     {
  10837.                                         label: 'Errors',
  10838.                                         value: message.firstJob.instagramFailed|number_format,
  10839.                                         link: (message.firstJob.instagramFailed > 0)
  10840.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10841.                                                 message: message.id,
  10842.                                                 query: {
  10843.                                                     filter: 'instagram',
  10844.                                                     state: 'failed',
  10845.                                                     sort: 'timestamp',
  10846.                                                     direction: 'DESC'
  10847.                                                 }
  10848.                                             })
  10849.                                             : null,
  10850.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  10851.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  10852.                                     },
  10853.                                 ],
  10854.                             } %}{% endembed %}
  10855.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  10856.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  10857.                                 icon: 'icon-website',
  10858.                                 title: 'Website',
  10859.                                 stats: [
  10860.                                     {
  10861.                                         label: 'Total posts',
  10862.                                         value: message.firstJob.websiteTotal|number_format,
  10863.                                         link: (message.firstJob.websiteTotal > 0)
  10864.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10865.                                                 message: message.id,
  10866.                                                 query: {
  10867.                                                     filter: 'website',
  10868.                                                     state: 'all',
  10869.                                                     sort: 'timestamp',
  10870.                                                     direction: 'DESC'
  10871.                                                 }
  10872.                                             })
  10873.                                             : null,
  10874.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  10875.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  10876.                                     },
  10877.                                     {
  10878.                                         label: 'Successful posts',
  10879.                                         value: message.firstJob.websiteSucceeded|number_format,
  10880.                                         link: (message.firstJob.websiteSucceeded > 0)
  10881.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10882.                                                 message: message.id,
  10883.                                                 query: {
  10884.                                                     filter: 'website',
  10885.                                                     state: 'completed',
  10886.                                                     sort: 'timestamp',
  10887.                                                     direction: 'DESC'
  10888.                                                 }
  10889.                                             })
  10890.                                             : null,
  10891.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  10892.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  10893.                                     },
  10894.                                     {
  10895.                                         label: 'Errors',
  10896.                                         value: message.firstJob.websiteFailed|number_format,
  10897.                                         link: (message.firstJob.websiteFailed > 0)
  10898.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  10899.                                                 message: message.id,
  10900.                                                 query: {
  10901.                                                     filter: 'website',
  10902.                                                     state: 'failed',
  10903.                                                     sort: 'timestamp',
  10904.                                                     direction: 'DESC'
  10905.                                                 }
  10906.                                             })
  10907.                                             : null,
  10908.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  10909.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  10910.                                     },
  10911.                                 ],
  10912.                             } %}{% endembed %}
  10913.                         {% endif %}
  10914.                     {% endfor %}
  10915.                 {% endblock %}
  10916.             {% endembed %}
  10917.         </div>
  10918.     {% endif %}
  10919. {% endblock %}
  10920. {% block modals %}
  10921.     {{ parent() }}
  10922.     {% embed '@ui2022/modal.html.twig' with {
  10923.         attr: {
  10924.             id: 'modal__email_preview',
  10925.         },
  10926.     } %}
  10927.         {% block content %}
  10928.             {% embed '@ui2022/modal__content.html.twig' with {
  10929.                 title: 'Email Preview',
  10930.             } %}
  10931.                 {% block body %}
  10932.                     <iframe
  10933.                         id=\"preview-email-iframe\"
  10934.                         loading=\"lazy\"
  10935.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  10936.                         frameborder=\"0\"
  10937.                         style=\"width: 100%; height: 500px\"
  10938.                     >
  10939.                     </iframe>
  10940.                 {% endblock %}
  10941.             {% endembed %}
  10942.         {% endblock %}
  10943.     {% endembed %}
  10944.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  10945.         attr: {
  10946.             id: 'sidepanel__filtered_logs',
  10947.         },
  10948.     } %}
  10949.     <script type=\"text/javascript\">
  10950.         (function (window, document, \$, undefined) {
  10951.             \$(function () {
  10952.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  10953.                     const pageHeight = \$(window).height();
  10954.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  10955.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  10956.                 });
  10957.             });
  10958.         })(window, document, jQuery);
  10959.     </script>
  10960. {% endblock %}
  10961. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  10962.     }
  10963. }
  10964. /* @ProductsNotifications/dashboard/messages/report.html.twig */
  10965. class __TwigTemplate_7e29e1756143e90c7bb513c3fd2ecd46___497543387 extends \Twig\Template
  10966. {
  10967.     private $source;
  10968.     private $macros = [];
  10969.     public function __construct(Environment $env)
  10970.     {
  10971.         parent::__construct($env);
  10972.         $this->source $this->getSourceContext();
  10973.         $this->blocks = [
  10974.             'body' => [$this'block_body'],
  10975.         ];
  10976.     }
  10977.     protected function doGetParent(array $context)
  10978.     {
  10979.         // line 771
  10980.         return "@ui2022/modal__content.html.twig";
  10981.     }
  10982.     protected function doDisplay(array $context, array $blocks = [])
  10983.     {
  10984.         $macros $this->macros;
  10985.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  10986.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  10987.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  10988.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@ProductsNotifications/dashboard/messages/report.html.twig"));
  10989.         $this->parent $this->loadTemplate("@ui2022/modal__content.html.twig""@ProductsNotifications/dashboard/messages/report.html.twig"771);
  10990.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  10991.         
  10992.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  10993.         
  10994.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  10995.     }
  10996.     // line 774
  10997.     public function block_body($context, array $blocks = [])
  10998.     {
  10999.         $macros $this->macros;
  11000.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  11001.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  11002.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  11003.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  11004.         // line 775
  11005.         echo "                    <iframe
  11006.                         id=\"preview-email-iframe\"
  11007.                         loading=\"lazy\"
  11008.                         src=\"";
  11009.         // line 778
  11010.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app.notifications.dashboard.messages.email_preview", ["message" => twig_get_attribute($this->env$this->source, (isset($context["message"]) || array_key_exists("message"$context) ? $context["message"] : (function () { throw new RuntimeError('Variable "message" does not exist.'778$this->source); })()), "id", [], "any"falsefalsefalse778)]), "html"nulltrue);
  11011.         echo "\"
  11012.                         frameborder=\"0\"
  11013.                         style=\"width: 100%; height: 500px\"
  11014.                     >
  11015.                     </iframe>
  11016.                 ";
  11017.         
  11018.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  11019.         
  11020.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  11021.     }
  11022.     public function getTemplateName()
  11023.     {
  11024.         return "@ProductsNotifications/dashboard/messages/report.html.twig";
  11025.     }
  11026.     public function isTraitable()
  11027.     {
  11028.         return false;
  11029.     }
  11030.     public function getDebugInfo()
  11031.     {
  11032.         return array (  11356 => 778,  11351 => 775,  11341 => 774,  11318 => 771,  10464 => 785,  10461 => 771,  10451 => 770,  10428 => 765,  9561 => 698,  8695 => 640,  7829 => 582,  6963 => 524,  6104 => 516,  6097 => 511,  6087 => 510,  6064 => 466,  5205 => 458,  5203 => 457,  5192 => 448,  5184 => 442,  5174 => 441,  5151 => 379,  4291 => 371,  4284 => 366,  4276 => 364,  4274 => 363,  4270 => 362,  4263 => 357,  4253 => 356,  4230 => 299,  3368 => 291,  3358 => 284,  3351 => 279,  3341 => 278,  3318 => 217,  2464 => 757,  2450 => 756,  2447 => 755,  2445 => 751,  2444 => 750,  2443 => 741,  2442 => 739,  2441 => 738,  2440 => 734,  2439 => 733,  2438 => 724,  2437 => 722,  2436 => 721,  2435 => 717,  2434 => 716,  2433 => 707,  2432 => 705,  2431 => 704,  2430 => 751,  2429 => 750,  2428 => 741,  2427 => 739,  2426 => 738,  2425 => 734,  2424 => 733,  2423 => 724,  2422 => 722,  2421 => 721,  2420 => 717,  2419 => 716,  2418 => 707,  2417 => 705,  2416 => 704,  2414 => 698,  2411 => 697,  2409 => 693,  2408 => 692,  2407 => 683,  2406 => 681,  2405 => 680,  2404 => 676,  2403 => 675,  2402 => 666,  2401 => 664,  2400 => 663,  2399 => 659,  2398 => 658,  2397 => 649,  2396 => 647,  2395 => 646,  2394 => 693,  2393 => 692,  2392 => 683,  2391 => 681,  2390 => 680,  2389 => 676,  2388 => 675,  2387 => 666,  2386 => 664,  2385 => 663,  2384 => 659,  2383 => 658,  2382 => 649,  2381 => 647,  2380 => 646,  2378 => 640,  2375 => 639,  2373 => 635,  2372 => 634,  2371 => 625,  2370 => 623,  2369 => 622,  2368 => 618,  2367 => 617,  2366 => 608,  2365 => 606,  2364 => 605,  2363 => 601,  2362 => 600,  2361 => 591,  2360 => 589,  2359 => 588,  2358 => 635,  2357 => 634,  2356 => 625,  2355 => 623,  2354 => 622,  2353 => 618,  2352 => 617,  2351 => 608,  2350 => 606,  2349 => 605,  2348 => 601,  2347 => 600,  2346 => 591,  2345 => 589,  2344 => 588,  2342 => 582,  2339 => 581,  2337 => 577,  2336 => 576,  2335 => 567,  2334 => 565,  2333 => 564,  2332 => 560,  2331 => 559,  2330 => 550,  2329 => 548,  2328 => 547,  2327 => 543,  2326 => 542,  2325 => 533,  2324 => 531,  2323 => 530,  2322 => 577,  2321 => 576,  2320 => 567,  2319 => 565,  2318 => 564,  2317 => 560,  2316 => 559,  2315 => 550,  2314 => 548,  2313 => 547,  2312 => 543,  2311 => 542,  2310 => 533,  2309 => 531,  2308 => 530,  2306 => 524,  2303 => 523,  2301 => 506,  2300 => 505,  2299 => 496,  2298 => 494,  2297 => 493,  2296 => 489,  2295 => 485,  2294 => 484,  2293 => 475,  2292 => 473,  2291 => 472,  2290 => 506,  2289 => 505,  2288 => 496,  2287 => 494,  2286 => 493,  2285 => 489,  2284 => 485,  2283 => 484,  2282 => 475,  2281 => 473,  2280 => 472,  2278 => 466,  2275 => 465,  2273 => 437,  2272 => 436,  2271 => 432,  2270 => 431,  2269 => 422,  2268 => 420,  2267 => 419,  2266 => 415,  2265 => 414,  2264 => 405,  2263 => 403,  2262 => 402,  2261 => 398,  2260 => 397,  2259 => 388,  2258 => 386,  2257 => 385,  2256 => 437,  2255 => 436,  2254 => 432,  2253 => 431,  2252 => 422,  2251 => 420,  2250 => 419,  2249 => 415,  2248 => 414,  2247 => 405,  2246 => 403,  2245 => 402,  2244 => 398,  2243 => 397,  2242 => 388,  2241 => 386,  2240 => 385,  2238 => 379,  2235 => 378,  2233 => 352,  2232 => 351,  2231 => 342,  2230 => 340,  2229 => 339,  2228 => 335,  2227 => 334,  2226 => 325,  2225 => 323,  2224 => 322,  2223 => 318,  2222 => 317,  2221 => 308,  2220 => 306,  2219 => 305,  2218 => 352,  2217 => 351,  2216 => 342,  2215 => 340,  2214 => 339,  2213 => 335,  2212 => 334,  2211 => 325,  2210 => 323,  2209 => 322,  2208 => 318,  2207 => 317,  2206 => 308,  2205 => 306,  2204 => 305,  2202 => 299,  2199 => 298,  2197 => 274,  2196 => 273,  2195 => 269,  2194 => 268,  2193 => 259,  2192 => 257,  2191 => 256,  2190 => 252,  2189 => 251,  2188 => 242,  2187 => 240,  2186 => 239,  2185 => 235,  2184 => 234,  2183 => 226,  2182 => 224,  2181 => 223,  2180 => 274,  2179 => 273,  2178 => 269,  2177 => 268,  2176 => 259,  2175 => 257,  2174 => 256,  2173 => 252,  2172 => 251,  2171 => 242,  2170 => 240,  2169 => 239,  2168 => 235,  2167 => 234,  2166 => 226,  2165 => 224,  2164 => 223,  2162 => 217,  2159 => 216,  2142 => 215,  2136 => 211,  2131 => 208,  2128 => 207,  2126 => 204,  2125 => 202,  2124 => 201,  2123 => 204,  2122 => 202,  2121 => 201,  2119 => 198,  2116 => 197,  2113 => 196,  2111 => 192,  2110 => 189,  2109 => 188,  2108 => 192,  2107 => 189,  2106 => 188,  2104 => 185,  2101 => 184,  2098 => 183,  2096 => 179,  2095 => 176,  2094 => 175,  2093 => 179,  2092 => 176,  2091 => 175,  2089 => 172,  2086 => 171,  2083 => 170,  2081 => 166,  2080 => 163,  2079 => 162,  2078 => 166,  2077 => 163,  2076 => 162,  2074 => 159,  2071 => 158,  2068 => 157,  2066 => 153,  2065 => 151,  2064 => 150,  2063 => 153,  2062 => 151,  2061 => 150,  2059 => 147,  2057 => 146,  2052 => 143,  2050 => 142,  2046 => 140,  2044 => 137,  2043 => 135,  2042 => 134,  2041 => 133,  2040 => 137,  2039 => 135,  2038 => 134,  2037 => 133,  2036 => 132,  2026 => 124,  2024 => 122,  2023 => 121,  2022 => 112,  2021 => 110,  2020 => 108,  2019 => 122,  2018 => 121,  2017 => 112,  2016 => 110,  2015 => 108,  2013 => 105,  2011 => 103,  2010 => 102,  2009 => 101,  2008 => 100,  2007 => 103,  2006 => 102,  2005 => 101,  2004 => 100,  2002 => 99,  1999 => 98,  1997 => 96,  1996 => 95,  1995 => 86,  1994 => 84,  1993 => 82,  1992 => 81,  1991 => 96,  1990 => 95,  1989 => 86,  1988 => 84,  1987 => 82,  1986 => 81,  1985 => 79,  1981 => 77,  1978 => 73,  1968 => 72,  1945 => 40,  1091 => 23,  1089 => 19,  1087 => 16,  1077 => 15,  1054 => 8,  189 => 792,  186 => 787,  184 => 765,  179 => 764,  169 => 763,  157 => 759,  155 => 68,  154 => 66,  153 => 61,  152 => 59,  151 => 54,  150 => 52,  149 => 47,  148 => 45,  147 => 68,  146 => 66,  145 => 61,  144 => 59,  143 => 54,  142 => 52,  141 => 47,  140 => 45,  139 => 40,  135 => 38,  133 => 37,  130 => 36,  123 => 32,  118 => 29,  115 => 28,  105 => 27,  95 => 9,  93 => 8,  83 => 7,  64 => 5,  53 => 1,  51 => 3,  38 => 1,);
  11033.     }
  11034.     public function getSourceContext()
  11035.     {
  11036.         return new Source("{% extends '@ProductsNotifications/base.html.twig' %}
  11037. {% do dom_title_section('Messages') %}
  11038. {% block wrap %}content__area--uilib reports{% endblock %}
  11039. {% block header %}
  11040.     {% embed '@ui2022/schoolnow/header.html.twig' with {
  11041.         title: message.title,
  11042.         back: {
  11043.             text: 'Back to Messages',
  11044.             link: path('app.notifications.dashboard.messages.main'),
  11045.         },
  11046.     } %}
  11047.         {% block actions %}
  11048.             {% include '@ui2022/button--a.html.twig' with {
  11049.                 text: 'Clone message',
  11050.                 link: path('app.notifications.dashboard.messages.create', {
  11051.                     clone: message.id,
  11052.                 }),
  11053.                 styles: 'gray',
  11054.             } %}
  11055.         {% endblock %}
  11056.     {% endembed %}
  11057. {% endblock %}
  11058. {% block content %}
  11059.     {% if not message.firstJob %}
  11060.         <div class=\"content__data reports__message pt-2\">
  11061.             <div class=\"blockgroup\">
  11062.                 <label class=\"blockgroup__label\">Message</label>
  11063.                 <h2 class=\"h4\">{{- message.title -}}</h2>
  11064.             </div>
  11065.         </div>
  11066.     {% else %}
  11067.         {% set stats = message.firstJob.summarize %}
  11068.         <div class=\"content__data reports__message pt-2\">
  11069.             {% embed '@ui2022/tabs--static.html.twig' with {
  11070.                 items: [
  11071.                     {
  11072.                         text: 'Summary',
  11073.                         link: path('app.notifications.dashboard.messages.report', {
  11074.                             message: message.id,
  11075.                         }),
  11076.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.report')),
  11077.                     },
  11078.                     {
  11079.                         text: 'Logs',
  11080.                         link: path('app.notifications.dashboard.messages.logs', {
  11081.                             message: message.id,
  11082.                         }),
  11083.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.logs')),
  11084.                     },
  11085.                     {
  11086.                         text: 'Debugging',
  11087.                         link: path('app.notifications.dashboard.messages.debugging', {
  11088.                             message: message.id,
  11089.                         }),
  11090.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.debugging')),
  11091.                     },
  11092.                     {
  11093.                         text: 'Details',
  11094.                         link: path('app.notifications.dashboard.messages.details', {
  11095.                             message: message.id,
  11096.                         }),
  11097.                         active: (app.request.attributes.get('_route') is same as('app.notifications.dashboard.messages.details')),
  11098.                     },
  11099.                 ],
  11100.             } %}
  11101.                 {% block tab %}
  11102.                     {% include '@ui2022/subheader.html.twig' with {
  11103.                         title: 'Summary',
  11104.                         classes: 'mt-4 pt-4',
  11105.                     } %}
  11106.                     <div class=\"three-column-section\">
  11107.                         <div class=\"three-column-inner-section\">
  11108.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  11109.                                 title: 'Sent',
  11110.                                 subtitle: message.firstJob.firstActivityAt|ui_datetime,
  11111.                                 value: (message.sending and stats.all.total > 0) ? ((((stats.all.succeeded + stats.all.failed) / stats.all.total) * 100)|round(0, 'ceil') ~ '%') : stats.all.total|number_format,
  11112.                                 label: 'Contacts',
  11113.                                 link: ((stats.all.succeeded + stats.all.failed) > 0)
  11114.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  11115.                                         message: message.id,
  11116.                                         query: {
  11117.                                             filter: 'all',
  11118.                                             state: 'all',
  11119.                                             sort: 'timestamp',
  11120.                                             direction: 'DESC'
  11121.                                         }
  11122.                                     })
  11123.                                     : null,
  11124.                                 dataToggle: ((stats.all.succeeded + stats.all.failed) > 0) ? 'sidepanel' : null,
  11125.                                 dataTarget: ((stats.all.succeeded + stats.all.failed) > 0) ? '#sidepanel__filtered_logs' : null,
  11126.                             } %}
  11127.                             {% set interval = message.firstJob.activityInterval|ui_relativeDate(true)|split(' ') %}
  11128.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  11129.                                 title: message.sending ? 'Running' : 'Completed',
  11130.                                 subtitle: message.firstJob.lastActivityAt|ui_datetime,
  11131.                                 value: interval[1] is defined ? interval[0]|number_format : interval[0],
  11132.                                 label: interval[1]|default(''),
  11133.                             } %}
  11134.                             {% include '@ui2022/schoolnow/stat.html.twig' with {
  11135.                                 title: 'Errors',
  11136.                                 subtitle: 'Message not delivered',
  11137.                                 value: stats.all.failed|number_format,
  11138.                                 label: 'Contacts',
  11139.                                 link: (stats.all.failed > 0)
  11140.                                     ? path('app.notifications.dashboard.messages.filtered_logs', {
  11141.                                         message: message.id,
  11142.                                         query: {
  11143.                                             filter: 'all',
  11144.                                             state: 'failed',
  11145.                                             sort: 'timestamp',
  11146.                                             direction: 'DESC'
  11147.                                         }
  11148.                                     })
  11149.                                     : null,
  11150.                                 dataToggle: (stats.all.failed > 0) ? 'sidepanel' : null,
  11151.                                 dataTarget: (stats.all.failed > 0) ? '#sidepanel__filtered_logs' : null,
  11152.                             } %}
  11153.                         </div>
  11154.                     </div>
  11155.                     <div class=\"section__infostats mb-4\">
  11156.                         <div class=\"card card__charts\">
  11157.                             <div class=\"row row-10\">
  11158.                                 <div class=\"col-12 col-md-6\">
  11159.                                     <h4 class=\"infostats__title\">Delivery methods</h4>
  11160.                                     <div class=\"d-flex justify-content-center justify-content-sm-start flex-wrap mt-1 pt-2\">
  11161.                                         {% include '@ui2022/chart--donut.html.twig' with {
  11162.                                             legend: stats.message_channels|filter((v,k) => v.total > 0)|map((v,k) => {
  11163.                                                 label: 'app.notifications.stats.reporting.labels.%s'|format(k)|trans,
  11164.                                                 color: 'app.notifications.stats.reporting.colors.%s'|format(k)|trans([], 'styles', 'app'),
  11165.                                             }),
  11166.                                             dataset: stats.message_channels|filter((v,k) => v.total > 0)|map((v) => v.total),
  11167.                                             label: 'Total contacts',
  11168.                                         } %}
  11169.                                     </div>
  11170.                                 </div>
  11171.                                 {% if constant('DISCR', message) is same as(constant('Products\\\\NotificationsBundle\\\\Entity\\\\Notifications\\\\Message::DISCR')) %}
  11172.                                     <div class=\"col-12 mt-4 mt-lg-0 col-md-6\">
  11173.                                         <h4 class=\"infostats__title\">Targeted audience</h4>
  11174.                                         <div class=\"targetlist\">
  11175.                                             {% if message.lists|length %}
  11176.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  11177.                                                     title: 'Contact lists',
  11178.                                                     icon: 'icon-contact-reachable',
  11179.                                                     items: message.lists|map((list) => {
  11180.                                                         text: list.name,
  11181.                                                         link: path('app.notifications.dashboard.lists.view', {
  11182.                                                             list: list.id,
  11183.                                                         }),
  11184.                                                     }),
  11185.                                                 } %}
  11186.                                             {% endif %}
  11187.                                             {% if message.facebookSocialAccounts|length %}
  11188.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  11189.                                                     title: 'Facebook pages',
  11190.                                                     icon: 'icon-facebook-fill',
  11191.                                                     items: message.facebookSocialAccounts|map((social) => {
  11192.                                                         text: social.name,
  11193.                                                         target: '_blank',
  11194.                                                         link: 'https://www.facebook.com/%s'|format(
  11195.                                                             social.facebookPageId,
  11196.                                                         ),
  11197.                                                     }),
  11198.                                                 } %}
  11199.                                             {% endif %}
  11200.                                             {% if message.twitterSocialAccounts|length %}
  11201.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  11202.                                                     title: 'Twitter profiles',
  11203.                                                     icon: 'icon-twitter-fill',
  11204.                                                     items: message.twitterSocialAccounts|map((social) => {
  11205.                                                         text: social.name,
  11206.                                                         target: '_blank',
  11207.                                                         link: 'https://www.twitter.com/%s'|format(
  11208.                                                             social.twitterUserName,
  11209.                                                         ),
  11210.                                                     }),
  11211.                                                 } %}
  11212.                                             {% endif %}
  11213.                                             {% if message.instagramSocialAccounts|length %}
  11214.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  11215.                                                     title: 'Instagram accounts',
  11216.                                                     icon: 'fab fa-instagram',
  11217.                                                     items: message.instagramSocialAccounts|map((social) => {
  11218.                                                         text: social.name,
  11219.                                                         target: '_blank',
  11220.                                                         link: 'https://www.instagram.com/%s'|format(
  11221.                                                             social.name,
  11222.                                                         ),
  11223.                                                     }),
  11224.                                                 } %}
  11225.                                             {% endif %}
  11226.                                             {% if message.websiteDepartments|length %}
  11227.                                                 {% include '@ui2022/targetlist__item.html.twig' with {
  11228.                                                     title: 'Website departments',
  11229.                                                     icon: 'icon-website',
  11230.                                                     items: message.websiteDepartments|map((department) => {
  11231.                                                         text: department.name,
  11232.                                                         target: '_blank',
  11233.                                                         link: web_url_catchall(department, '/'),
  11234.                                                     }),
  11235.                                                 } %}
  11236.                                             {% endif %}
  11237.                                         </div>
  11238.                                     </div>
  11239.                                 {% endif %}
  11240.                             </div>
  11241.                         </div>
  11242.                     </div>
  11243.                     {% for channel in message.usedChannels(true) %}
  11244.                         {% if channel == constant('CHANNELS__EMAIL', message) and message.firstJob.emailTotal %}
  11245.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  11246.                                 icon: 'icon-activity-mail',
  11247.                                 title: 'Email',
  11248.                                 stats: [
  11249.                                     {
  11250.                                         label: 'Total sent',
  11251.                                         value: message.firstJob.emailSucceeded|number_format,
  11252.                                         link: (message.firstJob.emailSucceeded > 0)
  11253.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11254.                                                 message: message.id,
  11255.                                                 query: {
  11256.                                                     filter: 'email',
  11257.                                                     sort: 'timestamp',
  11258.                                                     direction: 'DESC'
  11259.                                                 }
  11260.                                             })
  11261.                                             : null,
  11262.                                         dataToggle: (message.firstJob.emailSucceeded > 0) ? 'sidepanel' : null,
  11263.                                         dataTarget: (message.firstJob.emailSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  11264.                                     },
  11265.                                     {
  11266.                                         label: 'Delivery verified',
  11267.                                         value: message.firstJob.emailDelivered|number_format,
  11268.                                         link: (message.firstJob.emailDelivered > 0)
  11269.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11270.                                                 message: message.id,
  11271.                                                 query: {
  11272.                                                     filter: 'email',
  11273.                                                     state: 'completed',
  11274.                                                     sort: 'timestamp',
  11275.                                                     direction: 'DESC'
  11276.                                                 }
  11277.                                             })
  11278.                                             : null,
  11279.                                         dataToggle: (message.firstJob.emailDelivered > 0) ? 'sidepanel' : null,
  11280.                                         dataTarget: (message.firstJob.emailDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  11281.                                     },
  11282.                                     {
  11283.                                         label: 'Bounces',
  11284.                                         value: (message.firstJob.emailUndelivered + message.firstJob.emailFailed)|number_format,
  11285.                                         link: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0)
  11286.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11287.                                                 message: message.id,
  11288.                                                 query: {
  11289.                                                     filter: 'email',
  11290.                                                     state: 'failed',
  11291.                                                     sort: 'timestamp',
  11292.                                                     direction: 'DESC'
  11293.                                                 }
  11294.                                             })
  11295.                                             : null,
  11296.                                         dataToggle: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? 'sidepanel' : null,
  11297.                                         dataTarget: ((message.firstJob.emailUndelivered + message.firstJob.emailFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  11298.                                     },
  11299.                                     {
  11300.                                         label: 'Open rate',
  11301.                                         value: (message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0)|percentage,
  11302.                                         progress: message.firstJob.emailSucceeded ? (message.firstJob.emailOpened / message.firstJob.emailSucceeded) : 0,
  11303.                                     },
  11304.                                 ],
  11305.                             } %}
  11306.                                 {% block content %}
  11307.                                     <table class=\"table-clear border-0 text-gray-dark\">
  11308.                                         <tbody>
  11309.                                             <tr>
  11310.                                                 <td class=\"text-semibold pr-3 pb-2\">Subject:</td>
  11311.                                                 <td class=\"pb-3 pb-sm-2\">
  11312.                                                     <span>{{ message.emailSubject }}</span>
  11313.                                                     <a class=\"text-body text-underline\" href=\"#\" title=\"View email\" data-toggle=\"modal\" data-target=\"#modal__email_preview\">View email</a>
  11314.                                                 </td>
  11315.                                             </tr>
  11316.                                             <tr>
  11317.                                                 <td class=\"text-semibold pr-3\">From:</td>
  11318.                                                 <td>
  11319.                                                     <span class=\"emailid\">{{ message.emailName }} &lt;{{ message.emailFrom }}&gt;</span>
  11320.                                                 </td>
  11321.                                             </tr>
  11322.                                         </tbody>
  11323.                                     </table>
  11324.                                 {% endblock %}
  11325.                             {% endembed %}
  11326.                         {% elseif channel == constant('CHANNELS__SMS', message) and message.firstJob.smsTotal %}
  11327.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  11328.                                 icon: 'icon-activity-text',
  11329.                                 title: 'SMS',
  11330.                                 stats: [
  11331.                                     {
  11332.                                         label: 'Total sent',
  11333.                                         value: message.firstJob.smsSucceeded|number_format,
  11334.                                         link: (message.firstJob.smsSucceeded > 0)
  11335.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11336.                                                 message: message.id,
  11337.                                                 query: {
  11338.                                                     filter: 'sms',
  11339.                                                     state: 'all',
  11340.                                                     sort: 'timestamp',
  11341.                                                     direction: 'DESC'
  11342.                                                 }
  11343.                                             })
  11344.                                             : null,
  11345.                                         dataToggle: (message.firstJob.smsSucceeded > 0) ? 'sidepanel' : null,
  11346.                                         dataTarget: (message.firstJob.smsSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  11347.                                     },
  11348.                                     {
  11349.                                         label: 'Delivery verified',
  11350.                                         value: message.firstJob.smsDelivered|number_format,
  11351.                                         link: (message.firstJob.smsDelivered > 0)
  11352.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11353.                                                 message: message.id,
  11354.                                                 query: {
  11355.                                                     filter: 'sms',
  11356.                                                     state: 'completed',
  11357.                                                     sort: 'timestamp',
  11358.                                                     direction: 'DESC'
  11359.                                                 }
  11360.                                             })
  11361.                                             : null,
  11362.                                         dataToggle: (message.firstJob.smsDelivered > 0) ? 'sidepanel' : null,
  11363.                                         dataTarget: (message.firstJob.smsDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  11364.                                     },
  11365.                                     {
  11366.                                         label: 'Bounces',
  11367.                                         value: (message.firstJob.smsUndelivered + message.firstJob.smsFailed)|number_format,
  11368.                                         link: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0)
  11369.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11370.                                                 message: message.id,
  11371.                                                 query: {
  11372.                                                     filter: 'sms',
  11373.                                                     state: 'failed',
  11374.                                                     sort: 'timestamp',
  11375.                                                     direction: 'DESC'
  11376.                                                 }
  11377.                                             })
  11378.                                             : null,
  11379.                                         dataToggle: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? 'sidepanel' : null,
  11380.                                         dataTarget: ((message.firstJob.smsUndelivered + message.firstJob.smsFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  11381.                                     },
  11382.                                 ],
  11383.                             } %}
  11384.                                 {% block content %}
  11385.                                     <table class=\"table-clear border-0 text-gray-dark\">
  11386.                                         <tbody>
  11387.                                             <tr>
  11388.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  11389.                                                 <td class=\"pb-3 pb-sm-2\">
  11390.                                                     <span>{{ message.smsText }}</span>
  11391.                                                     {% if message.smsUrl %}
  11392.                                                         <a class=\"text-body text-underline\" href=\"{{ message.smsUrl }}\">{{ message.smsUrl }}</a>
  11393.                                                     {% endif %}
  11394.                                                 </td>
  11395.                                             </tr>
  11396.                                             <tr>
  11397.                                                 <td class=\"text-semibold pr-3\">From:</td>
  11398.                                                 <td>
  11399.                                                     <span class=\"emailid\">{{ configs.twilio.incomingPhoneNumber|phone_number_format }}</span>
  11400.                                                 </td>
  11401.                                             </tr>
  11402.                                         </tbody>
  11403.                                     </table>
  11404.                                 {% endblock %}
  11405.                             {% endembed %}
  11406.                         {% elseif channel == constant('CHANNELS__VOICE', message) and message.firstJob.voiceTotal %}
  11407.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  11408.                                 icon: 'icon-activity-voice',
  11409.                                 title: 'Phone',
  11410.                                 stats: [
  11411.                                     {
  11412.                                         label: 'Total sent',
  11413.                                         value: message.firstJob.voiceSucceeded|number_format,
  11414.                                         link: (message.firstJob.voiceSucceeded > 0)
  11415.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11416.                                                 message: message.id,
  11417.                                                 query: {
  11418.                                                     filter: 'voice',
  11419.                                                     state: 'all',
  11420.                                                     sort: 'timestamp',
  11421.                                                     direction: 'DESC'
  11422.                                                 }
  11423.                                             })
  11424.                                             : null,
  11425.                                         dataToggle: (message.firstJob.voiceSucceeded > 0) ? 'sidepanel' : null,
  11426.                                         dataTarget: (message.firstJob.voiceSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  11427.                                     },
  11428.                                     {
  11429.                                         label: 'Delivery verified',
  11430.                                         value: message.firstJob.voiceDelivered|number_format,
  11431.                                         link: (message.firstJob.voiceDelivered > 0)
  11432.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11433.                                                 message: message.id,
  11434.                                                 query: {
  11435.                                                     filter: 'voice',
  11436.                                                     state: 'completed',
  11437.                                                     sort: 'timestamp',
  11438.                                                     direction: 'DESC'
  11439.                                                 }
  11440.                                             })
  11441.                                             : null,
  11442.                                         dataToggle: (message.firstJob.voiceDelivered > 0) ? 'sidepanel' : null,
  11443.                                         dataTarget: (message.firstJob.voiceDelivered > 0) ? '#sidepanel__filtered_logs' : null,
  11444.                                     },
  11445.                                     {
  11446.                                         label: 'Bounces',
  11447.                                         value: (message.firstJob.voiceUndelivered + message.firstJob.voiceFailed)|number_format,
  11448.                                         link: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0)
  11449.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11450.                                                 message: message.id,
  11451.                                                 query: {
  11452.                                                     filter: 'voice',
  11453.                                                     state: 'failed',
  11454.                                                     sort: 'timestamp',
  11455.                                                     direction: 'DESC'
  11456.                                                 }
  11457.                                             })
  11458.                                             : null,
  11459.                                         dataToggle: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? 'sidepanel' : null,
  11460.                                         dataTarget: ((message.firstJob.voiceUndelivered + message.firstJob.voiceFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  11461.                                     },
  11462.                                     {
  11463.                                         label: 'Answer rate',
  11464.                                         value: (message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0)|percentage,
  11465.                                         progress: message.firstJob.voiceSucceeded ? (message.firstJob.voiceAnswered / message.firstJob.voiceSucceeded) : 0,
  11466.                                     },
  11467.                                 ],
  11468.                             } %}
  11469.                                 {% block content %}
  11470.                                     <table class=\"table-clear border-0 text-gray-dark\">
  11471.                                         <tbody>
  11472.                                             <tr>
  11473.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  11474.                                                 <td class=\"pb-3 pb-sm-2\">
  11475.                                                     <audio controls=\"\" class=\"d-block ml-md-auto\">
  11476.                                                         <source src=\"{{ blobs(message.recording).recordingUrl(message.recording)|escape('html_attr') }}\" type=\"audio/mpeg\" />
  11477.                                                         Your browser does not support the audio element.
  11478.                                                     </audio>
  11479.                                                 </td>
  11480.                                             </tr>
  11481.                                             <tr>
  11482.                                                 <td class=\"text-semibold pr-3\">From:</td>
  11483.                                                 <td>
  11484.                                                     <span class=\"emailid\">
  11485.                                                         {{- (message.voiceCallerId ? message.voiceCallerId.phoneNumber : configs.twilio.incomingPhoneNumber)|phone_number_format -}}
  11486.                                                     </span>
  11487.                                                 </td>
  11488.                                             </tr>
  11489.                                         </tbody>
  11490.                                     </table>
  11491.                                 {% endblock %}
  11492.                             {% endembed %}
  11493.                         {% elseif channel == constant('CHANNELS__APP', message) and message.firstJob.appTotal %}
  11494.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  11495.                                 icon: 'icon-deviceapp',
  11496.                                 title: 'Mobile app',
  11497.                                 stats: [
  11498.                                     {
  11499.                                         label: 'Total sent',
  11500.                                         value: message.firstJob.appSucceeded|number_format,
  11501.                                         link: (message.firstJob.appSucceeded > 0)
  11502.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11503.                                                 message: message.id,
  11504.                                                 query: {
  11505.                                                     filter: 'app',
  11506.                                                     state: 'pending',
  11507.                                                     sort: 'timestamp',
  11508.                                                     direction: 'DESC'
  11509.                                                 }
  11510.                                             })
  11511.                                             : null,
  11512.                                         dataToggle: (message.firstJob.appSucceeded > 0) ? 'sidepanel' : null,
  11513.                                         dataTarget: (message.firstJob.appSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  11514.                                     },
  11515.                                     {
  11516.                                         label: 'Delivery verified',
  11517.                                         value: message.firstJob.appDelivered|number_format,
  11518.                                     },
  11519.                                     {
  11520.                                         label: 'Bounces',
  11521.                                         value: (message.firstJob.appUndelivered + message.firstJob.appFailed)|number_format,
  11522.                                         link: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0)
  11523.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11524.                                                 message: message.id,
  11525.                                                 query: {
  11526.                                                     filter: 'app',
  11527.                                                     state: 'failed',
  11528.                                                     sort: 'timestamp',
  11529.                                                     direction: 'DESC'
  11530.                                                 }
  11531.                                             })
  11532.                                             : null,
  11533.                                         dataToggle: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? 'sidepanel' : null,
  11534.                                         dataTarget: ((message.firstJob.appUndelivered + message.firstJob.appFailed) > 0) ? '#sidepanel__filtered_logs' : null,
  11535.                                     },
  11536.                                 ],
  11537.                             } %}
  11538.                                 {% block content %}
  11539.                                     <table class=\"table-clear border-0 text-gray-dark\">
  11540.                                         <tbody>
  11541.                                             <tr>
  11542.                                                 <td class=\"text-semibold pr-3 pb-2\">Message:</td>
  11543.                                                 <td class=\"pb-3 pb-sm-2\">
  11544.                                                     <span>{{ message.appTitle }}</span>
  11545.                                                 </td>
  11546.                                             </tr>
  11547.                                         </tbody>
  11548.                                     </table>
  11549.                                 {% endblock %}
  11550.                             {% endembed %}
  11551.                         {% elseif channel == constant('CHANNELS__FACEBOOK', message) and message.firstJob.facebookTotal %}
  11552.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  11553.                                 icon: 'icon-facebook-fill',
  11554.                                 title: 'Facebook',
  11555.                                 stats: [
  11556.                                     {
  11557.                                         label: 'Total posts',
  11558.                                         value: message.firstJob.facebookTotal|number_format,
  11559.                                         link: (message.firstJob.facebookTotal > 0)
  11560.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11561.                                                 message: message.id,
  11562.                                                 query: {
  11563.                                                     filter: 'facebook',
  11564.                                                     state: 'all',
  11565.                                                     sort: 'timestamp',
  11566.                                                     direction: 'DESC'
  11567.                                                 }
  11568.                                             })
  11569.                                             : null,
  11570.                                         dataToggle: (message.firstJob.facebookTotal > 0) ? 'sidepanel' : null,
  11571.                                         dataTarget: (message.firstJob.facebookTotal > 0) ? '#sidepanel__filtered_logs' : null,
  11572.                                     },
  11573.                                     {
  11574.                                         label: 'Successful posts',
  11575.                                         value: message.firstJob.facebookSucceeded|number_format,
  11576.                                         link: (message.firstJob.facebookSucceeded > 0)
  11577.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11578.                                                 message: message.id,
  11579.                                                 query: {
  11580.                                                     filter: 'facebook',
  11581.                                                     state: 'completed',
  11582.                                                     sort: 'timestamp',
  11583.                                                     direction: 'DESC'
  11584.                                                 }
  11585.                                             })
  11586.                                             : null,
  11587.                                         dataToggle: (message.firstJob.facebookSucceeded > 0) ? 'sidepanel' : null,
  11588.                                         dataTarget: (message.firstJob.facebookSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  11589.                                     },
  11590.                                     {
  11591.                                         label: 'Errors',
  11592.                                         value: message.firstJob.facebookFailed|number_format,
  11593.                                         link: (message.firstJob.facebookFailed > 0)
  11594.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11595.                                                 message: message.id,
  11596.                                                 query: {
  11597.                                                     filter: 'facebook',
  11598.                                                     state: 'failed',
  11599.                                                     sort: 'timestamp',
  11600.                                                     direction: 'DESC'
  11601.                                                 }
  11602.                                             })
  11603.                                             : null,
  11604.                                         dataToggle: (message.firstJob.facebookFailed > 0) ? 'sidepanel' : null,
  11605.                                         dataTarget: (message.firstJob.facebookFailed > 0) ? '#sidepanel__filtered_logs' : null,
  11606.                                     },
  11607.                                 ],
  11608.                             } %}{% endembed %}
  11609.                         {% elseif channel == constant('CHANNELS__TWITTER', message) and message.firstJob.twitterTotal %}
  11610.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  11611.                                 icon: 'icon-twitter-fill',
  11612.                                 title: 'Twitter',
  11613.                                 stats: [
  11614.                                     {
  11615.                                         label: 'Total posts',
  11616.                                         value: message.firstJob.twitterTotal|number_format,
  11617.                                         link: (message.firstJob.twitterTotal > 0)
  11618.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11619.                                                 message: message.id,
  11620.                                                 query: {
  11621.                                                     filter: 'twitter',
  11622.                                                     state: 'all',
  11623.                                                     sort: 'timestamp',
  11624.                                                     direction: 'DESC'
  11625.                                                 }
  11626.                                             })
  11627.                                             : null,
  11628.                                         dataToggle: (message.firstJob.twitterTotal > 0) ? 'sidepanel' : null,
  11629.                                         dataTarget: (message.firstJob.twitterTotal > 0) ? '#sidepanel__filtered_logs' : null,
  11630.                                     },
  11631.                                     {
  11632.                                         label: 'Successful posts',
  11633.                                         value: message.firstJob.twitterSucceeded|number_format,
  11634.                                         link: (message.firstJob.twitterSucceeded > 0)
  11635.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11636.                                                 message: message.id,
  11637.                                                 query: {
  11638.                                                     filter: 'twitter',
  11639.                                                     state: 'completed',
  11640.                                                     sort: 'timestamp',
  11641.                                                     direction: 'DESC'
  11642.                                                 }
  11643.                                             })
  11644.                                             : null,
  11645.                                         dataToggle: (message.firstJob.twitterSucceeded > 0) ? 'sidepanel' : null,
  11646.                                         dataTarget: (message.firstJob.twitterSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  11647.                                     },
  11648.                                     {
  11649.                                         label: 'Errors',
  11650.                                         value: message.firstJob.twitterFailed|number_format,
  11651.                                         link: (message.firstJob.twitterFailed > 0)
  11652.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11653.                                                 message: message.id,
  11654.                                                 query: {
  11655.                                                     filter: 'twitter',
  11656.                                                     state: 'failed',
  11657.                                                     sort: 'timestamp',
  11658.                                                     direction: 'DESC'
  11659.                                                 }
  11660.                                             })
  11661.                                             : null,
  11662.                                         dataToggle: (message.firstJob.twitterFailed > 0) ? 'sidepanel' : null,
  11663.                                         dataTarget: (message.firstJob.twitterFailed > 0) ? '#sidepanel__filtered_logs' : null,
  11664.                                     },
  11665.                                 ],
  11666.                             } %}{% endembed %}
  11667.                         {% elseif channel == constant('CHANNELS__INSTAGRAM', message) and message.firstJob.instagramTotal %}
  11668.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  11669.                                 icon: 'fab fa-instagram',
  11670.                                 title: 'Instagram',
  11671.                                 stats: [
  11672.                                     {
  11673.                                         label: 'Total posts',
  11674.                                         value: message.firstJob.instagramTotal|number_format,
  11675.                                         link: (message.firstJob.instagramTotal > 0)
  11676.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11677.                                                 message: message.id,
  11678.                                                 query: {
  11679.                                                     filter: 'instagram',
  11680.                                                     state: 'all',
  11681.                                                     sort: 'timestamp',
  11682.                                                     direction: 'DESC'
  11683.                                                 }
  11684.                                             })
  11685.                                             : null,
  11686.                                         dataToggle: (message.firstJob.instagramTotal > 0) ? 'sidepanel' : null,
  11687.                                         dataTarget: (message.firstJob.instagramTotal > 0) ? '#sidepanel__filtered_logs' : null,
  11688.                                     },
  11689.                                     {
  11690.                                         label: 'Successful posts',
  11691.                                         value: message.firstJob.instagramSucceeded|number_format,
  11692.                                         link: (message.firstJob.instagramSucceeded > 0)
  11693.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11694.                                                 message: message.id,
  11695.                                                 query: {
  11696.                                                     filter: 'instagram',
  11697.                                                     state: 'completed',
  11698.                                                     sort: 'timestamp',
  11699.                                                     direction: 'DESC'
  11700.                                                 }
  11701.                                             })
  11702.                                             : null,
  11703.                                         dataToggle: (message.firstJob.instagramSucceeded > 0) ? 'sidepanel' : null,
  11704.                                         dataTarget: (message.firstJob.instagramSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  11705.                                     },
  11706.                                     {
  11707.                                         label: 'Errors',
  11708.                                         value: message.firstJob.instagramFailed|number_format,
  11709.                                         link: (message.firstJob.instagramFailed > 0)
  11710.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11711.                                                 message: message.id,
  11712.                                                 query: {
  11713.                                                     filter: 'instagram',
  11714.                                                     state: 'failed',
  11715.                                                     sort: 'timestamp',
  11716.                                                     direction: 'DESC'
  11717.                                                 }
  11718.                                             })
  11719.                                             : null,
  11720.                                         dataToggle: (message.firstJob.instagramFailed > 0) ? 'sidepanel' : null,
  11721.                                         dataTarget: (message.firstJob.instagramFailed > 0) ? '#sidepanel__filtered_logs' : null,
  11722.                                     },
  11723.                                 ],
  11724.                             } %}{% endembed %}
  11725.                         {% elseif channel == constant('CHANNELS__WEBSITE', message) and message.firstJob.websiteTotal %}
  11726.                             {% embed '@ui2022/card__deliverymethods.html.twig' with {
  11727.                                 icon: 'icon-website',
  11728.                                 title: 'Website',
  11729.                                 stats: [
  11730.                                     {
  11731.                                         label: 'Total posts',
  11732.                                         value: message.firstJob.websiteTotal|number_format,
  11733.                                         link: (message.firstJob.websiteTotal > 0)
  11734.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11735.                                                 message: message.id,
  11736.                                                 query: {
  11737.                                                     filter: 'website',
  11738.                                                     state: 'all',
  11739.                                                     sort: 'timestamp',
  11740.                                                     direction: 'DESC'
  11741.                                                 }
  11742.                                             })
  11743.                                             : null,
  11744.                                         dataToggle: (message.firstJob.websiteTotal > 0) ? 'sidepanel' : null,
  11745.                                         dataTarget: (message.firstJob.websiteTotal > 0) ? '#sidepanel__filtered_logs' : null,
  11746.                                     },
  11747.                                     {
  11748.                                         label: 'Successful posts',
  11749.                                         value: message.firstJob.websiteSucceeded|number_format,
  11750.                                         link: (message.firstJob.websiteSucceeded > 0)
  11751.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11752.                                                 message: message.id,
  11753.                                                 query: {
  11754.                                                     filter: 'website',
  11755.                                                     state: 'completed',
  11756.                                                     sort: 'timestamp',
  11757.                                                     direction: 'DESC'
  11758.                                                 }
  11759.                                             })
  11760.                                             : null,
  11761.                                         dataToggle: (message.firstJob.websiteSucceeded > 0) ? 'sidepanel' : null,
  11762.                                         dataTarget: (message.firstJob.websiteSucceeded > 0) ? '#sidepanel__filtered_logs' : null,
  11763.                                     },
  11764.                                     {
  11765.                                         label: 'Errors',
  11766.                                         value: message.firstJob.websiteFailed|number_format,
  11767.                                         link: (message.firstJob.websiteFailed > 0)
  11768.                                             ? path('app.notifications.dashboard.messages.filtered_logs', {
  11769.                                                 message: message.id,
  11770.                                                 query: {
  11771.                                                     filter: 'website',
  11772.                                                     state: 'failed',
  11773.                                                     sort: 'timestamp',
  11774.                                                     direction: 'DESC'
  11775.                                                 }
  11776.                                             })
  11777.                                             : null,
  11778.                                         dataToggle: (message.firstJob.websiteFailed > 0) ? 'sidepanel' : null,
  11779.                                         dataTarget: (message.firstJob.websiteFailed > 0) ? '#sidepanel__filtered_logs' : null,
  11780.                                     },
  11781.                                 ],
  11782.                             } %}{% endembed %}
  11783.                         {% endif %}
  11784.                     {% endfor %}
  11785.                 {% endblock %}
  11786.             {% endembed %}
  11787.         </div>
  11788.     {% endif %}
  11789. {% endblock %}
  11790. {% block modals %}
  11791.     {{ parent() }}
  11792.     {% embed '@ui2022/modal.html.twig' with {
  11793.         attr: {
  11794.             id: 'modal__email_preview',
  11795.         },
  11796.     } %}
  11797.         {% block content %}
  11798.             {% embed '@ui2022/modal__content.html.twig' with {
  11799.                 title: 'Email Preview',
  11800.             } %}
  11801.                 {% block body %}
  11802.                     <iframe
  11803.                         id=\"preview-email-iframe\"
  11804.                         loading=\"lazy\"
  11805.                         src=\"{{ path('app.notifications.dashboard.messages.email_preview', {message: message.id}) }}\"
  11806.                         frameborder=\"0\"
  11807.                         style=\"width: 100%; height: 500px\"
  11808.                     >
  11809.                     </iframe>
  11810.                 {% endblock %}
  11811.             {% endembed %}
  11812.         {% endblock %}
  11813.     {% endembed %}
  11814.     {% include '@ui2022/schoolnow/modal--sidepanel.html.twig' with {
  11815.         attr: {
  11816.             id: 'sidepanel__filtered_logs',
  11817.         },
  11818.     } %}
  11819.     <script type=\"text/javascript\">
  11820.         (function (window, document, \$, undefined) {
  11821.             \$(function () {
  11822.                 \$('#sidepanel__filtered_logs').on('updated.cs.modal', function (e) {
  11823.                     const pageHeight = \$(window).height();
  11824.                     const headerHeight = \$('.sidepanel__head').outerHeight();
  11825.                     \$('.sidepanel__content').height((pageHeight - 3 * headerHeight) + 'px');
  11826.                 });
  11827.             });
  11828.         })(window, document, jQuery);
  11829.     </script>
  11830. {% endblock %}
  11831. ""@ProductsNotifications/dashboard/messages/report.html.twig""/var/www/campussuite/src/Products/NotificationsBundle/Resources/views/dashboard/messages/report.html.twig");
  11832.     }
  11833. }