0byt3m1n1
Path:
/
home
/
mgatv524
/
www
/
midiatech
/
cache
/
c4
/
[
Home
]
File: c4940745a2472aa929ce83056ea37664ed7ba7b6847432d5ed83e52699818b8d.php
<?php use Twig\Environment; use Twig\Error\LoaderError; use Twig\Error\RuntimeError; use Twig\Markup; use Twig\Sandbox\SecurityError; use Twig\Sandbox\SecurityNotAllowedTagError; use Twig\Sandbox\SecurityNotAllowedFilterError; use Twig\Sandbox\SecurityNotAllowedFunctionError; use Twig\Source; use Twig\Template; /* distribution-report-form.twig */ class __TwigTemplate_49db9ebacf9b282d72959f69f106dbba341b78ded105285be1d2a8bf8000ac48 extends \Twig\Template { public function __construct(Environment $env) { parent::__construct($env); $this->blocks = [ 'actionMenu' => [$this, 'block_actionMenu'], 'pageContent' => [$this, 'block_pageContent'], 'javaScript' => [$this, 'block_javaScript'], ]; } protected function doGetParent(array $context) { // line 24 return "authed.twig"; } protected function doDisplay(array $context, array $blocks = []) { // line 25 $context["inline"] = $this->loadTemplate("inline.twig", "distribution-report-form.twig", 25)->unwrap(); // line 24 $this->parent = $this->loadTemplate("authed.twig", "distribution-report-form.twig", 24); $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 27 public function block_actionMenu($context, array $blocks = []) { // line 28 echo " <ul class=\"nav nav-pills pull-right\"> <li class=\"btn btn-success btn-xs\"><a class=\"XiboFormButton btns\" title=\""; // line 29 echo __("Select a type and an item (i.e., layout/media/tag)"); echo "\" id=\"reportAddBtn\"><i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> "; echo __("Schedule"); echo "</a></li> <li class=\"btn btn-info btn-xs\"><a class=\"btns\" href=\""; // line 30 echo twig_escape_filter($this->env, $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("savedreport.view"), "html", null, true); echo "?reportName=distributionReport\"\"><i class=\"fa fa-eye\" aria-hidden=\"true\"></i> "; echo __("Saved Reports"); echo "</a></li> <li class=\"btn btn-primary btn-xs\"><a class=\"btns\" href=\""; // line 31 echo twig_escape_filter($this->env, $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("reportschedule.view"), "html", null, true); echo "?reportName=distributionReport\"><i class=\"fa fa-th-list\" aria-hidden=\"true\"></i> "; echo __("Report Schedules"); echo "</a></li> </ul> <div class=\"proof-of-play-report-div pull-right btn-group\"> <button class=\"proof-of-play-report-btn btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\" aria-expanded=\"false\"> <span class=\"fa fa-caret-down\"></span> "; // line 36 echo __("Reports"); // line 37 echo " </button> <ul class=\"dropdown-menu\"> "; // line 39 $context['_parent'] = $context; $context['_seq'] = twig_ensure_traversable($this->getAttribute(($context["defaults"] ?? null), "availableReports", [])); foreach ($context['_seq'] as $context["_key"] => $context["report"]) { // line 40 echo " "; if (($this->getAttribute($context["report"], "hidden", []) == 0)) { // line 41 echo " <li> <a href=\""; // line 42 echo twig_escape_filter($this->env, $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("report.form", ["name" => $this->getAttribute($context["report"], "name", [])]), "html", null, true); echo "\">"; echo twig_escape_filter($this->env, $this->getAttribute($context["report"], "description", []), "html", null, true); echo "</a> </li> "; } // line 45 echo " "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['report'], $context['_parent'], $context['loop']); $context = array_intersect_key($context, $_parent) + $_parent; // line 46 echo " </ul> </div> "; } // line 50 public function block_pageContent($context, array $blocks = []) { // line 51 echo " <div class=\"widget\"> <div class=\"widget-title\"> "; // line 54 echo __("Distribution by Layout, Media or Event"); // line 55 echo " <span class=\"fa fa-info-circle\" data-toggle=\"popover\" data-trigger=\"hover\" data-placement=\"bottom\" data-content=\""; echo __("This chart shows an aggregate duration and number of plays for the selected Layout, Media or Event. Please select your Range and Type below. Where the Range crosses period boundaries the data is aggregated into the correct period - i.e 1 week grouped by hourly produces 24 periods."); echo "\"></span> </div> <div class=\"widget-body\"> <div class=\"XiboGrid\" id=\""; // line 58 echo twig_escape_filter($this->env, twig_random($this->env), "html", null, true); echo "\"> <div class=\"XiboFilterCustom\"> <div class=\"FilterDiv\" id=\"distributionReport\"> <form class=\"form-inline\"> "; // line 62 ob_start(); echo __("Filter"); $context["title"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 63 echo " "; ob_start(); echo __("Select a range"); $context["range"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 64 echo " "; ob_start(); echo __("Today"); $context["today"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 65 echo " "; ob_start(); echo __("Yesterday"); $context["yesterday"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 66 echo " "; ob_start(); echo __("This Week"); $context["thisweek"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 67 echo " "; ob_start(); echo __("This Month"); $context["thismonth"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 68 echo " "; ob_start(); echo __("This Year"); $context["thisyear"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 69 echo " "; ob_start(); echo __("Last Week"); $context["lastweek"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 70 echo " "; ob_start(); echo __("Last Month"); $context["lastmonth"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 71 echo " "; ob_start(); echo __("Last Year"); $context["lastyear"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 72 echo " "; $context["options"] = [0 => ["filterName" => "", "reportFilter" => // line 73 ($context["range"] ?? null)], 1 => ["filterName" => "today", "reportFilter" => // line 74 ($context["today"] ?? null)], 2 => ["filterName" => "yesterday", "reportFilter" => // line 75 ($context["yesterday"] ?? null)], 3 => ["filterName" => "thisweek", "reportFilter" => // line 76 ($context["thisweek"] ?? null)], 4 => ["filterName" => "thismonth", "reportFilter" => // line 77 ($context["thismonth"] ?? null)], 5 => ["filterName" => "thisyear", "reportFilter" => // line 78 ($context["thisyear"] ?? null)], 6 => ["filterName" => "lastweek", "reportFilter" => // line 79 ($context["lastweek"] ?? null)], 7 => ["filterName" => "lastmonth", "reportFilter" => // line 80 ($context["lastmonth"] ?? null)], 8 => ["filterName" => "lastyear", "reportFilter" => // line 81 ($context["lastyear"] ?? null)]]; // line 83 echo " "; echo $context["inline"]->getdropdown("reportFilter", "single", ($context["title"] ?? null), "today", ($context["options"] ?? null), "filterName", "reportFilter"); echo " "; // line 85 ob_start(); echo __("From Date"); $context["title"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 86 echo " "; echo $context["inline"]->getdate("statsFromDt", ($context["title"] ?? null), $this->getAttribute(($context["defaults"] ?? null), "fromDateOneDay", []), "", "stats-from-dt", "", ""); echo " "; // line 88 ob_start(); echo __("To Date"); $context["title"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 89 echo " "; echo $context["inline"]->getdate("statsToDt", ($context["title"] ?? null), $this->getAttribute(($context["defaults"] ?? null), "toDate", []), "", "stats-to-dt", "", ""); echo " "; // line 91 ob_start(); echo __("Group by"); $context["title"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 92 echo " "; ob_start(); echo __("Hour"); $context["byhour"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 93 echo " "; ob_start(); echo __("Day of week"); $context["bydayofweek"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 94 echo " "; ob_start(); echo __("Day of month"); $context["bydayofmonth"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 95 echo " "; $context["options"] = [0 => ["filterName" => "byhour", "groupByFilter" => // line 96 ($context["byhour"] ?? null)], 1 => ["filterName" => "bydayofweek", "groupByFilter" => // line 97 ($context["bydayofweek"] ?? null)], 2 => ["filterName" => "bydayofmonth", "groupByFilter" => // line 98 ($context["bydayofmonth"] ?? null)]]; // line 100 echo " "; echo $context["inline"]->getdropdown("groupByFilter", "single", ($context["title"] ?? null), "", ($context["options"] ?? null), "filterName", "groupByFilter", "", "group-by-filter"); echo " "; // line 102 ob_start(); echo __("Type"); $context["title"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 103 echo " "; ob_start(); echo __("Layout"); $context["layout"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 104 echo " "; ob_start(); echo __("Media"); $context["media"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 105 echo " "; ob_start(); echo __("Event"); $context["event"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 106 echo " "; $context["options"] = [0 => ["typeid" => "layout", "type" => // line 107 ($context["layout"] ?? null)], 1 => ["typeid" => "media", "type" => // line 108 ($context["media"] ?? null)], 2 => ["typeid" => "event", "type" => // line 109 ($context["event"] ?? null)]]; // line 111 echo " "; echo $context["inline"]->getdropdown("type", "single", ($context["title"] ?? null), "", ($context["options"] ?? null), "typeid", "type"); echo " "; // line 113 ob_start(); echo __("Layout"); echo " *"; $context["title"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 114 echo " "; ob_start(); echo __("This field is required when the Type selected is Layout"); $context["helpText"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 115 echo " "; $context["attributes"] = [0 => ["name" => "data-width", "value" => "200px"], 1 => ["name" => "data-allow-clear", "value" => "true"], 2 => ["name" => "data-placeholder--id", "value" => null], 3 => ["name" => "data-placeholder--value", "value" => ""], 4 => ["name" => "data-search-url", "value" => $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("layout.search")], 5 => ["name" => "data-search-term", "value" => "layout"], 6 => ["name" => "data-search-term-tags", "value" => "tags"], 7 => ["name" => "data-id-property", "value" => "layoutId"], 8 => ["name" => "data-text-property", "value" => "layout"]]; // line 126 echo " "; // line 127 echo $context["inline"]->getdropdown("layoutId", "single", ($context["title"] ?? null), "", null, "layoutId", "layout", ($context["helpText"] ?? null), "pagedSelect layout-select", "", "l", "", ($context["attributes"] ?? null)); echo " "; // line 129 ob_start(); echo __("Media"); echo " *"; $context["title"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 130 echo " "; ob_start(); echo __("This field is required when the Type selected is Media"); $context["helpText"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 131 echo " "; $context["attributes"] = [0 => ["name" => "data-width", "value" => "200px"], 1 => ["name" => "data-allow-clear", "value" => "true"], 2 => ["name" => "data-placeholder--id", "value" => null], 3 => ["name" => "data-placeholder--value", "value" => ""], 4 => ["name" => "data-search-url", "value" => $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("library.search")], 5 => ["name" => "data-search-term", "value" => "media"], 6 => ["name" => "data-id-property", "value" => "mediaId"], 7 => ["name" => "data-text-property", "value" => "name"]]; // line 141 echo " "; echo $context["inline"]->getdropdown("mediaId", "single", ($context["title"] ?? null), "", null, "mediaId", "name", ($context["helpText"] ?? null), "pagedSelect media-select", "", "m", "", ($context["attributes"] ?? null)); echo " "; // line 143 ob_start(); echo __("Tag"); echo " *"; $context["title"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 144 echo " "; ob_start(); echo __("This field is required when the Type selected is Event"); $context["helpText"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 145 echo " "; echo $context["inline"]->getinput("eventTag", ($context["title"] ?? null), "", ($context["helpText"] ?? null), "tag-text"); echo " "; // line 147 ob_start(); echo __("Display"); $context["title"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 148 echo " "; $context["attributes"] = [0 => ["name" => "data-width", "value" => "200px"], 1 => ["name" => "data-allow-clear", "value" => "true"], 2 => ["name" => "data-placeholder--id", "value" => null], 3 => ["name" => "data-placeholder--value", "value" => ""], 4 => ["name" => "data-search-url", "value" => $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("display.search")], 5 => ["name" => "data-search-term", "value" => "display"], 6 => ["name" => "data-search-term-tags", "value" => "tags"], 7 => ["name" => "data-id-property", "value" => "displayId"], 8 => ["name" => "data-text-property", "value" => "display"]]; // line 159 echo " "; echo $context["inline"]->getdropdown("displayId", "single", ($context["title"] ?? null), "", null, "displayId", "display", "", "pagedSelect", "", "d", "", ($context["attributes"] ?? null)); echo " <p></p> <div class=\"row\"> <a id=\"applyBtn\" class=\"btn btn-success\"> <span>"; // line 164 echo __("Apply"); echo "</span> </a> <span id=\"applyWarning\" class=\"text-warning\" style=\"display:none; padding-left: 10px\">"; // line 166 echo __("Warning: This may return a lot of data and may take several minutes to process."); echo "</span> </div> </form> </div> </div> <div class=\"XiboData\"> <canvas id=\"reportChart\" style=\"clear:both; margin-top:25px;\" height=\"70%\"></canvas> <img id=\"imageLoader\" style=\"display: block; margin: auto;\" src=\""; // line 173 echo twig_escape_filter($this->env, $this->getAttribute(($context["theme"] ?? null), "uri", [0 => "img/loader.gif"], "method"), "html", null, true); echo "\"> </div> </div> </div> </div> "; } // line 181 public function block_javaScript($context, array $blocks = []) { // line 182 echo " <script type=\"text/javascript\"> \$(function () { \$('[data-toggle=\"popover\"]').popover(); }); var reportChart = null; var imageLoader = \$(\"#imageLoader\"); function setReport() { imageLoader.show(); \$.ajax({ type: \"get\", url: \""; // line 196 echo twig_escape_filter($this->env, $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("report.data", ["name" => ($context["reportName"] ?? null)]), "html", null, true); echo "\", cache: false, dataType: \"json\", data: \$(\"#distributionReport\").find(\"form\").serialize(), success: function(response) { setTimeout(function() { \$(\"#applyBtn\").removeClass('disabled'); }, 300); imageLoader.hide(); if (reportChart !== undefined && reportChart !== null) { reportChart.destroy(); } if (response.extra.countData.length <= 0) { return; } if (response.extra.durationData.length <= 0) { return; } // Create our chart reportChart = new Chart(\$(\"#reportChart\"), { type: \"bar\", data: { labels: response.extra.labels, datasets: [{ label: \""; // line 225 echo __("Total duration"); echo "\", yAxisID: 'Duration', backgroundColor: response.extra.backgroundColor, data: response.extra.durationData, }, { label: \""; // line 231 echo __("Total count"); echo "\", yAxisID: 'Count', borderColor: response.extra.borderColor, data: response.extra.countData, type: 'line', fill: false }] }, options: { scales: { yAxes: [{ id: 'Duration', type: 'linear', position: 'left', display: true, scaleLabel: { display: true, labelString: 'Duration(s)' }, ticks: { beginAtZero:true } }, { id: 'Count', type: 'linear', position: 'right', display: true, scaleLabel: { display: true, labelString: 'Count' }, ticks: { beginAtZero:true } }] }, maintainAspectRatio: true, } }); } }); } \$(document).ready(function() { // Init var warning = \$(\"#applyWarning\"); var applyBtn = \$(\"#applyBtn\"); var type = \$(\"#type\"); var mediaSelect =\$(\".media-select\"); var layoutSelect =\$(\".layout-select\"); var eventTagCls =\$(\".tag-text\"); // Calculate the difference of number of days of a selected range const calculateDaysShowHideWarn = function() { console.log('m i here'); let fromDt = moment(\$(\"#statsFromDt\").val()); let toDt = moment(\$(\"#statsToDt\").val()); let days = toDt.diff(fromDt, 'days'); warning.hide(); if ( days >= 30) { warning.show(); } return true; }; \$(\"#statsFromDtLink\").change( function() { calculateDaysShowHideWarn(); }); \$(\"#statsToDtLink\").change( function() { calculateDaysShowHideWarn(); }); // Enable/Disable Schedule Btn const checkEnableSchedule = function() { // Schedule button enable/disable - start var mediaVal = \$(\"#mediaId\").val(); var layoutVal = \$(\"#layoutId\").val(); var eventTagVal = \$(\"#eventTag\").val(); var anchorReportAddBtn = \$(\"a#reportAddBtn\"); var typeVal = \$(\"#type\").val(); if ( typeVal === 'layout') { if (layoutVal == null) { anchorReportAddBtn.parent().addClass('disabled'); anchorReportAddBtn.removeAttr('href'); } else { anchorReportAddBtn.parent().removeClass('disabled'); anchorReportAddBtn.attr(\"href\", \""; // line 326 echo twig_escape_filter($this->env, $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("reportschedule.add.form"), "html", null, true); echo "?type=\" + typeVal + \"&layoutId=\" + layoutVal + \"&reportName=distributionReport\" ); anchorReportAddBtn.removeAttr('title'); } } else if ( typeVal === 'media') { if (mediaVal == null) { anchorReportAddBtn.parent().addClass('disabled'); anchorReportAddBtn.removeAttr('href'); } else { anchorReportAddBtn.parent().removeClass('disabled'); anchorReportAddBtn.attr(\"href\", \""; // line 336 echo twig_escape_filter($this->env, $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("reportschedule.add.form"), "html", null, true); echo "?type=\" + typeVal + \"&mediaId=\" + mediaVal + \"&reportName=distributionReport\" ); anchorReportAddBtn.removeAttr('title'); } } else if ( typeVal === 'event') { if (eventTagVal == null) { anchorReportAddBtn.parent().addClass('disabled'); anchorReportAddBtn.removeAttr('href'); } else { anchorReportAddBtn.parent().removeClass('disabled'); anchorReportAddBtn.attr(\"href\", \""; // line 346 echo twig_escape_filter($this->env, $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("reportschedule.add.form"), "html", null, true); echo "?type=\" + typeVal + \"&eventTag=\" + eventTagVal + \"&reportName=distributionReport\" ); anchorReportAddBtn.removeAttr('title'); } } }; // Report Filter var reportFilter = \$(\"#reportFilter\"); // Hide / Show FromDt and ToDt function checkReportFilter(reportFilter) { if (reportFilter.val() === '' || reportFilter.val() === undefined) { \$(\".stats-from-dt\").show(); \$(\".stats-to-dt\").show(); } else { \$(\".stats-from-dt\").hide(); \$(\".stats-to-dt\").hide(); } } const checkFilterAndApply = function() { reportFilter.off('change').change( function() { var value = reportFilter.val(); // Hide / Show FromDt and ToDt checkReportFilter(reportFilter); // Hide / Show Warning warning.hide(); if ( value === '') { calculateDaysShowHideWarn(); } else if ( value === 'thismonth' || value === 'lastmonth' || value === 'thisyear' || value === 'lastyear') { warning.show(); } }); type.off('change').change( function() { var value = type.val(); if (value === 'media') { // show media and clear/hide the layout \$(\"#layoutId\").val(\"\"); \$(\"#layoutId option\").remove(); layoutSelect.hide(); \$(\"#eventTag\").val(\"\"); eventTagCls.hide(); mediaSelect.show(); } else if (value === 'layout') { // show layout and clear/hide the media \$(\"#mediaId\").val(\"\"); \$(\"#mediaId option\").remove(); mediaSelect.hide(); \$(\"#eventTag\").val(\"\"); eventTagCls.hide(); layoutSelect.show(); } else if (value === 'event') { // clear/hide the media and layout \$(\"#mediaId\").val(\"\"); \$(\"#mediaId option\").remove(); \$(\"#layoutId\").val(\"\"); \$(\"#layoutId option\").remove(); mediaSelect.hide(); layoutSelect.hide(); // show tag eventTagCls.show(); } }); }; type.val('layout'); mediaSelect.hide(); eventTagCls.hide(); imageLoader.hide(); checkReportFilter(reportFilter); checkFilterAndApply(); applyBtn.addClass('disabled'); checkEnableSchedule(); // Bind to form change \$(\"#distributionReport\").on('change', function() { checkEnableSchedule(); var layoutVal = \$(\"#layoutId\").val(); var mediaVal = \$(\"#mediaId\").val(); var eventVal = \$(\"#eventTag\").val(); if ((layoutVal === null || layoutVal === '' || layoutVal === undefined) && (mediaVal === null || mediaVal === '' || mediaVal === undefined) && (eventVal === null || eventVal === '' || eventVal === undefined) ) { applyBtn.addClass('disabled'); } else { applyBtn.removeClass('disabled'); } }); // Apply applyBtn.click(function () { checkFilterAndApply(); setReport(); }); }); </script> "; } public function getTemplateName() { return "distribution-report-form.twig"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 563 => 346, 550 => 336, 537 => 326, 439 => 231, 430 => 225, 398 => 196, 382 => 182, 379 => 181, 368 => 173, 358 => 166, 353 => 164, 344 => 159, 341 => 148, 337 => 147, 331 => 145, 326 => 144, 321 => 143, 315 => 141, 312 => 131, 307 => 130, 302 => 129, 297 => 127, 294 => 126, 291 => 115, 286 => 114, 281 => 113, 275 => 111, 273 => 109, 272 => 108, 271 => 107, 269 => 106, 264 => 105, 259 => 104, 254 => 103, 250 => 102, 244 => 100, 242 => 98, 241 => 97, 240 => 96, 238 => 95, 233 => 94, 228 => 93, 223 => 92, 219 => 91, 213 => 89, 209 => 88, 203 => 86, 199 => 85, 193 => 83, 191 => 81, 190 => 80, 189 => 79, 188 => 78, 187 => 77, 186 => 76, 185 => 75, 184 => 74, 183 => 73, 181 => 72, 176 => 71, 171 => 70, 166 => 69, 161 => 68, 156 => 67, 151 => 66, 146 => 65, 141 => 64, 136 => 63, 132 => 62, 125 => 58, 118 => 55, 116 => 54, 111 => 51, 108 => 50, 102 => 46, 96 => 45, 88 => 42, 85 => 41, 82 => 40, 78 => 39, 74 => 37, 72 => 36, 62 => 31, 56 => 30, 50 => 29, 47 => 28, 44 => 27, 39 => 24, 37 => 25, 31 => 24,); } /** @deprecated since 1.27 (to be removed in 2.0). Use getSourceContext() instead */ public function getSource() { @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0. Use getSourceContext() instead.', E_USER_DEPRECATED); return $this->getSourceContext()->getCode(); } public function getSourceContext() { return new Source("{# /* * Xibo - Digital Signage - http://www.xibo.org.uk * Copyright (C) 2019 Xibo Signage Ltd * * This file is part of Xibo. * * Xibo is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * Xibo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Xibo. If not, see <http://www.gnu.org/licenses/>. * */ #} {% extends \"authed.twig\" %} {% import \"inline.twig\" as inline %} {% block actionMenu %} <ul class=\"nav nav-pills pull-right\"> <li class=\"btn btn-success btn-xs\"><a class=\"XiboFormButton btns\" title=\"{% trans \"Select a type and an item (i.e., layout/media/tag)\" %}\" id=\"reportAddBtn\"><i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> {% trans \"Schedule\" %}</a></li> <li class=\"btn btn-info btn-xs\"><a class=\"btns\" href=\"{{ urlFor(\"savedreport.view\") }}?reportName=distributionReport\"\"><i class=\"fa fa-eye\" aria-hidden=\"true\"></i> {% trans \"Saved Reports\" %}</a></li> <li class=\"btn btn-primary btn-xs\"><a class=\"btns\" href=\"{{ urlFor(\"reportschedule.view\") }}?reportName=distributionReport\"><i class=\"fa fa-th-list\" aria-hidden=\"true\"></i> {% trans \"Report Schedules\" %}</a></li> </ul> <div class=\"proof-of-play-report-div pull-right btn-group\"> <button class=\"proof-of-play-report-btn btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\" aria-expanded=\"false\"> <span class=\"fa fa-caret-down\"></span> {% trans \"Reports\" %} </button> <ul class=\"dropdown-menu\"> {% for report in defaults.availableReports %} {% if report.hidden == 0 %} <li> <a href=\"{{ urlFor(\"report.form\", {name: report.name}) }}\">{{ report.description }}</a> </li> {% endif %} {% endfor %} </ul> </div> {% endblock %} {% block pageContent %} <div class=\"widget\"> <div class=\"widget-title\"> {% trans \"Distribution by Layout, Media or Event\" %} <span class=\"fa fa-info-circle\" data-toggle=\"popover\" data-trigger=\"hover\" data-placement=\"bottom\" data-content=\"{% trans \"This chart shows an aggregate duration and number of plays for the selected Layout, Media or Event. Please select your Range and Type below. Where the Range crosses period boundaries the data is aggregated into the correct period - i.e 1 week grouped by hourly produces 24 periods.\" %}\"></span> </div> <div class=\"widget-body\"> <div class=\"XiboGrid\" id=\"{{ random() }}\"> <div class=\"XiboFilterCustom\"> <div class=\"FilterDiv\" id=\"distributionReport\"> <form class=\"form-inline\"> {% set title %}{% trans \"Filter\" %}{% endset %} {% set range %}{% trans \"Select a range\" %}{% endset %} {% set today %}{% trans \"Today\" %}{% endset %} {% set yesterday %}{% trans \"Yesterday\" %}{% endset %} {% set thisweek %}{% trans \"This Week\" %}{% endset %} {% set thismonth %}{% trans \"This Month\" %}{% endset %} {% set thisyear %}{% trans \"This Year\" %}{% endset %} {% set lastweek %}{% trans \"Last Week\" %}{% endset %} {% set lastmonth %}{% trans \"Last Month\" %}{% endset %} {% set lastyear %}{% trans \"Last Year\" %}{% endset %} {% set options = [ { filterName: \"\", reportFilter: range }, { filterName: \"today\", reportFilter: today }, { filterName: \"yesterday\", reportFilter: yesterday }, { filterName: \"thisweek\", reportFilter: thisweek }, { filterName: \"thismonth\", reportFilter: thismonth }, { filterName: \"thisyear\", reportFilter: thisyear }, { filterName: \"lastweek\", reportFilter: lastweek }, { filterName: \"lastmonth\", reportFilter: lastmonth }, { filterName: \"lastyear\", reportFilter: lastyear }, ] %} {{ inline.dropdown(\"reportFilter\", \"single\", title, \"today\", options, \"filterName\", \"reportFilter\") }} {% set title %}{% trans \"From Date\" %}{% endset %} {{ inline.date(\"statsFromDt\", title, defaults.fromDateOneDay, \"\", \"stats-from-dt\", \"\", \"\") }} {% set title %}{% trans \"To Date\" %}{% endset %} {{ inline.date(\"statsToDt\", title, defaults.toDate, \"\", \"stats-to-dt\", \"\", \"\") }} {% set title %}{% trans \"Group by\" %}{% endset %} {% set byhour %}{% trans \"Hour\" %}{% endset %} {% set bydayofweek %}{% trans \"Day of week\" %}{% endset %} {% set bydayofmonth %}{% trans \"Day of month\" %}{% endset %} {% set options = [ { filterName: \"byhour\", groupByFilter: byhour }, { filterName: \"bydayofweek\", groupByFilter: bydayofweek }, { filterName: \"bydayofmonth\", groupByFilter: bydayofmonth }, ] %} {{ inline.dropdown(\"groupByFilter\", \"single\", title, \"\", options, \"filterName\", \"groupByFilter\", \"\", \"group-by-filter\") }} {% set title %}{% trans \"Type\" %}{% endset %} {% set layout %}{% trans \"Layout\" %}{% endset %} {% set media %}{% trans \"Media\" %}{% endset %} {% set event %}{% trans \"Event\" %}{% endset %} {% set options = [ { typeid: \"layout\", type: layout }, { typeid: \"media\", type: media }, { typeid: \"event\", type: event }, ] %} {{ inline.dropdown(\"type\", \"single\", title, \"\", options, \"typeid\", \"type\") }} {% set title %}{% trans \"Layout\" %} *{% endset %} {% set helpText %}{% trans \"This field is required when the Type selected is Layout\" %}{% endset %} {% set attributes = [ { name: \"data-width\", value: \"200px\" }, { name: \"data-allow-clear\", value: \"true\" }, { name: \"data-placeholder--id\", value: null }, { name: \"data-placeholder--value\", value: \"\" }, { name: \"data-search-url\", value: urlFor(\"layout.search\") }, { name: \"data-search-term\", value: \"layout\" }, { name: \"data-search-term-tags\", value: \"tags\" }, { name: \"data-id-property\", value: \"layoutId\" }, { name: \"data-text-property\", value: \"layout\" } ] %} {{ inline.dropdown(\"layoutId\", \"single\", title, \"\", null, \"layoutId\", \"layout\", helpText, \"pagedSelect layout-select\", \"\", \"l\", \"\", attributes) }} {% set title %}{% trans \"Media\" %} *{% endset %} {% set helpText %}{% trans \"This field is required when the Type selected is Media\" %}{% endset %} {% set attributes = [ { name: \"data-width\", value: \"200px\" }, { name: \"data-allow-clear\", value: \"true\" }, { name: \"data-placeholder--id\", value: null }, { name: \"data-placeholder--value\", value: \"\" }, { name: \"data-search-url\", value: urlFor(\"library.search\") }, { name: \"data-search-term\", value: \"media\" }, { name: \"data-id-property\", value: \"mediaId\" }, { name: \"data-text-property\", value: \"name\" } ] %} {{ inline.dropdown(\"mediaId\", \"single\", title, \"\", null, \"mediaId\", \"name\", helpText, \"pagedSelect media-select\", \"\", \"m\", \"\", attributes) }} {% set title %}{% trans \"Tag\" %} *{% endset %} {% set helpText %}{% trans \"This field is required when the Type selected is Event\" %}{% endset %} {{ inline.input(\"eventTag\", title, \"\", helpText, \"tag-text\") }} {% set title %}{% trans \"Display\" %}{% endset %} {% set attributes = [ { name: \"data-width\", value: \"200px\" }, { name: \"data-allow-clear\", value: \"true\" }, { name: \"data-placeholder--id\", value: null }, { name: \"data-placeholder--value\", value: \"\" }, { name: \"data-search-url\", value: urlFor(\"display.search\") }, { name: \"data-search-term\", value: \"display\" }, { name: \"data-search-term-tags\", value: \"tags\" }, { name: \"data-id-property\", value: \"displayId\" }, { name: \"data-text-property\", value: \"display\" } ] %} {{ inline.dropdown(\"displayId\", \"single\", title, \"\", null, \"displayId\", \"display\", \"\", \"pagedSelect\", \"\", \"d\", \"\", attributes) }} <p></p> <div class=\"row\"> <a id=\"applyBtn\" class=\"btn btn-success\"> <span>{% trans \"Apply\" %}</span> </a> <span id=\"applyWarning\" class=\"text-warning\" style=\"display:none; padding-left: 10px\">{% trans \"Warning: This may return a lot of data and may take several minutes to process.\" %}</span> </div> </form> </div> </div> <div class=\"XiboData\"> <canvas id=\"reportChart\" style=\"clear:both; margin-top:25px;\" height=\"70%\"></canvas> <img id=\"imageLoader\" style=\"display: block; margin: auto;\" src=\"{{ theme.uri(\"img/loader.gif\") }}\"> </div> </div> </div> </div> {% endblock %} {% block javaScript %} <script type=\"text/javascript\"> \$(function () { \$('[data-toggle=\"popover\"]').popover(); }); var reportChart = null; var imageLoader = \$(\"#imageLoader\"); function setReport() { imageLoader.show(); \$.ajax({ type: \"get\", url: \"{{ urlFor(\"report.data\", {name: reportName}) }}\", cache: false, dataType: \"json\", data: \$(\"#distributionReport\").find(\"form\").serialize(), success: function(response) { setTimeout(function() { \$(\"#applyBtn\").removeClass('disabled'); }, 300); imageLoader.hide(); if (reportChart !== undefined && reportChart !== null) { reportChart.destroy(); } if (response.extra.countData.length <= 0) { return; } if (response.extra.durationData.length <= 0) { return; } // Create our chart reportChart = new Chart(\$(\"#reportChart\"), { type: \"bar\", data: { labels: response.extra.labels, datasets: [{ label: \"{% trans \"Total duration\" %}\", yAxisID: 'Duration', backgroundColor: response.extra.backgroundColor, data: response.extra.durationData, }, { label: \"{% trans \"Total count\" %}\", yAxisID: 'Count', borderColor: response.extra.borderColor, data: response.extra.countData, type: 'line', fill: false }] }, options: { scales: { yAxes: [{ id: 'Duration', type: 'linear', position: 'left', display: true, scaleLabel: { display: true, labelString: 'Duration(s)' }, ticks: { beginAtZero:true } }, { id: 'Count', type: 'linear', position: 'right', display: true, scaleLabel: { display: true, labelString: 'Count' }, ticks: { beginAtZero:true } }] }, maintainAspectRatio: true, } }); } }); } \$(document).ready(function() { // Init var warning = \$(\"#applyWarning\"); var applyBtn = \$(\"#applyBtn\"); var type = \$(\"#type\"); var mediaSelect =\$(\".media-select\"); var layoutSelect =\$(\".layout-select\"); var eventTagCls =\$(\".tag-text\"); // Calculate the difference of number of days of a selected range const calculateDaysShowHideWarn = function() { console.log('m i here'); let fromDt = moment(\$(\"#statsFromDt\").val()); let toDt = moment(\$(\"#statsToDt\").val()); let days = toDt.diff(fromDt, 'days'); warning.hide(); if ( days >= 30) { warning.show(); } return true; }; \$(\"#statsFromDtLink\").change( function() { calculateDaysShowHideWarn(); }); \$(\"#statsToDtLink\").change( function() { calculateDaysShowHideWarn(); }); // Enable/Disable Schedule Btn const checkEnableSchedule = function() { // Schedule button enable/disable - start var mediaVal = \$(\"#mediaId\").val(); var layoutVal = \$(\"#layoutId\").val(); var eventTagVal = \$(\"#eventTag\").val(); var anchorReportAddBtn = \$(\"a#reportAddBtn\"); var typeVal = \$(\"#type\").val(); if ( typeVal === 'layout') { if (layoutVal == null) { anchorReportAddBtn.parent().addClass('disabled'); anchorReportAddBtn.removeAttr('href'); } else { anchorReportAddBtn.parent().removeClass('disabled'); anchorReportAddBtn.attr(\"href\", \"{{ urlFor(\"reportschedule.add.form\") }}?type=\" + typeVal + \"&layoutId=\" + layoutVal + \"&reportName=distributionReport\" ); anchorReportAddBtn.removeAttr('title'); } } else if ( typeVal === 'media') { if (mediaVal == null) { anchorReportAddBtn.parent().addClass('disabled'); anchorReportAddBtn.removeAttr('href'); } else { anchorReportAddBtn.parent().removeClass('disabled'); anchorReportAddBtn.attr(\"href\", \"{{ urlFor(\"reportschedule.add.form\") }}?type=\" + typeVal + \"&mediaId=\" + mediaVal + \"&reportName=distributionReport\" ); anchorReportAddBtn.removeAttr('title'); } } else if ( typeVal === 'event') { if (eventTagVal == null) { anchorReportAddBtn.parent().addClass('disabled'); anchorReportAddBtn.removeAttr('href'); } else { anchorReportAddBtn.parent().removeClass('disabled'); anchorReportAddBtn.attr(\"href\", \"{{ urlFor(\"reportschedule.add.form\") }}?type=\" + typeVal + \"&eventTag=\" + eventTagVal + \"&reportName=distributionReport\" ); anchorReportAddBtn.removeAttr('title'); } } }; // Report Filter var reportFilter = \$(\"#reportFilter\"); // Hide / Show FromDt and ToDt function checkReportFilter(reportFilter) { if (reportFilter.val() === '' || reportFilter.val() === undefined) { \$(\".stats-from-dt\").show(); \$(\".stats-to-dt\").show(); } else { \$(\".stats-from-dt\").hide(); \$(\".stats-to-dt\").hide(); } } const checkFilterAndApply = function() { reportFilter.off('change').change( function() { var value = reportFilter.val(); // Hide / Show FromDt and ToDt checkReportFilter(reportFilter); // Hide / Show Warning warning.hide(); if ( value === '') { calculateDaysShowHideWarn(); } else if ( value === 'thismonth' || value === 'lastmonth' || value === 'thisyear' || value === 'lastyear') { warning.show(); } }); type.off('change').change( function() { var value = type.val(); if (value === 'media') { // show media and clear/hide the layout \$(\"#layoutId\").val(\"\"); \$(\"#layoutId option\").remove(); layoutSelect.hide(); \$(\"#eventTag\").val(\"\"); eventTagCls.hide(); mediaSelect.show(); } else if (value === 'layout') { // show layout and clear/hide the media \$(\"#mediaId\").val(\"\"); \$(\"#mediaId option\").remove(); mediaSelect.hide(); \$(\"#eventTag\").val(\"\"); eventTagCls.hide(); layoutSelect.show(); } else if (value === 'event') { // clear/hide the media and layout \$(\"#mediaId\").val(\"\"); \$(\"#mediaId option\").remove(); \$(\"#layoutId\").val(\"\"); \$(\"#layoutId option\").remove(); mediaSelect.hide(); layoutSelect.hide(); // show tag eventTagCls.show(); } }); }; type.val('layout'); mediaSelect.hide(); eventTagCls.hide(); imageLoader.hide(); checkReportFilter(reportFilter); checkFilterAndApply(); applyBtn.addClass('disabled'); checkEnableSchedule(); // Bind to form change \$(\"#distributionReport\").on('change', function() { checkEnableSchedule(); var layoutVal = \$(\"#layoutId\").val(); var mediaVal = \$(\"#mediaId\").val(); var eventVal = \$(\"#eventTag\").val(); if ((layoutVal === null || layoutVal === '' || layoutVal === undefined) && (mediaVal === null || mediaVal === '' || mediaVal === undefined) && (eventVal === null || eventVal === '' || eventVal === undefined) ) { applyBtn.addClass('disabled'); } else { applyBtn.removeClass('disabled'); } }); // Apply applyBtn.click(function () { checkFilterAndApply(); setReport(); }); }); </script> {% endblock %}", "distribution-report-form.twig", "/home/mgatv524/public_html/midiatech/reports/distribution-report-form.twig"); } }