0byt3m1n1
Path:
/
home
/
mgatv524
/
www
/
novabrasil
/
cache
/
c5
/
[
Home
]
File: c5d23bae3caf572c24bb5a44fd21831ac97c006e7f4c28f4d6aca4b1509a4c32.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; /* playlist-dashboard.twig */ class __TwigTemplate_54a2784ef4c9c783e891d17f0f459e5142f0395c3776fc404d284200ee9d0cb7 extends \Twig\Template { public function __construct(Environment $env) { parent::__construct($env); $this->blocks = [ 'pageContent' => [$this, 'block_pageContent'], 'javaScript' => [$this, 'block_javaScript'], ]; } protected function doGetParent(array $context) { // line 23 return "authed.twig"; } protected function doDisplay(array $context, array $blocks = []) { // line 24 $context["forms"] = $this->loadTemplate("forms.twig", "playlist-dashboard.twig", 24)->unwrap(); // line 23 $this->parent = $this->loadTemplate("authed.twig", "playlist-dashboard.twig", 23); $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 26 public function block_pageContent($context, array $blocks = []) { // line 27 echo " <div class=\"row\"> <div class=\"col-lg-6\"> "; // line 31 echo " "; $context["attributes"] = [0 => ["name" => "data-placeholder--id", "value" => null], 1 => ["name" => "data-placeholder--value", "value" => ""], 2 => ["name" => "data-search-url", "value" => $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("playlistdashboard.search")], 3 => ["name" => "data-search-term", "value" => "name"], 4 => ["name" => "data-id-property", "value" => "playlistId"], 5 => ["name" => "data-text-property", "value" => "name"]]; // line 39 echo " "; // line 40 ob_start(); echo __("Playlist"); $context["title"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 41 echo " "; ob_start(); echo __("Please select a Playlist to manage"); $context["helpText"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset()); // line 42 echo " "; echo $context["forms"]->getdropdown("playlistId", "single", ($context["title"] ?? null), "", [0 => ($context["playlist"] ?? null)], "playlistId", "name", ($context["helpText"] ?? null), "playlist-control pagedSelect", "", "", "", ($context["attributes"] ?? null)); echo " </div> </div> <div class=\"row\"> <div class=\"col-lg-6\"> <div id=\"spots\"> </div> </div> <div class=\"col-lg-6\"> <div class=\"well\"> <h3>"; // line 54 echo __("Playlist Content"); echo "</h3> <p>Fill empty Spots by clicking on ‘Add’ to select the media file you wish to use.</p> <p>Replace existing media files by clicking on a Spot and select the new media file you wish to use.</p> <p>"; // line 59 echo twig_escape_filter($this->env, $this->getAttribute(($context["libraryUpload"] ?? null), "maxSizeMessage", []), "html", null, true); echo "</p> </div> "; // line 61 $__internal_f607aeef2c31a95a7bf963452dff024ffaeb6aafbe4603f9ca3bec57be8633f4 = null; try { $__internal_f607aeef2c31a95a7bf963452dff024ffaeb6aafbe4603f9ca3bec57be8633f4 = $this->loadTemplate("theme-dashboard-message.twig", "playlist-dashboard.twig", 61); } catch (LoaderError $e) { // ignore missing template } if ($__internal_f607aeef2c31a95a7bf963452dff024ffaeb6aafbe4603f9ca3bec57be8633f4) { $__internal_f607aeef2c31a95a7bf963452dff024ffaeb6aafbe4603f9ca3bec57be8633f4->display($context); } // line 62 echo " </div> </div> "; } // line 67 public function block_javaScript($context, array $blocks = []) { // line 68 echo " "; // line 69 echo " "; $this->loadTemplate("common.twig", "playlist-dashboard.twig", 69)->display($context); // line 70 echo " <script src=\""; echo twig_escape_filter($this->env, $this->getAttribute(($context["theme"] ?? null), "rootUri", [], "method"), "html", null, true); echo "dist/playlistEditor.bundle.min.js?"; echo twig_escape_filter($this->env, ($context["version"] ?? null), "html", null, true); echo "\"></script> <script type=\"text/javascript\"> // Define some global variables to keep hold of let template; let uploadUrl; \$(document).ready(function() { // Hide reshow welcome on this page \$('#reshowWelcomeMenuItem').parent().remove(); // We need to have the URL of hte upload form available uploadUrl = \""; // line 82 echo twig_escape_filter($this->env, $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("playlistdashboard.library.add"), "html", null, true); echo "\"; // Bind our buttons on the dashboard // Listen to the playlist selector change \$(\"div.playlist-control select\").on(\"change\", function() { loadPlaylistIntoSpotEditor(\$(this).val()); }); // Upload server status check for browsers with CORS support: if (\$.support.cors) { \$.ajax({ url: uploadUrl, type: 'HEAD' }).fail(function () { \$('<span class=\"alert alert-error\"/>') .text('Upload server currently unavailable - ' + new Date()) .appendTo(\$('.well')); }); } // Compile our template once template = Handlebars.compile(\$(\"#template-spot-dashboard\").html()); // Do we need to load a preset? loadPlaylistIntoSpotEditor(\$(\"div.playlist-control select\").val()); }); /** * Load a Playlist into the Spot Editor * @param playlistId the playlistId */ function loadPlaylistIntoSpotEditor(playlistId) { // Check we have a playlistId provided if (playlistId === undefined || playlistId === null || playlistId === \"\") { return; } // Make an AJAX call to the spots backend for this, and dump the resulting HTML into our target div. let \$spotElement = \$(\"#spots\"); \$spotElement.html(\"<span class=\\\"fa fa-cogs fa-spin\\\"></span>\"); \$.ajax(\""; // line 124 echo twig_escape_filter($this->env, $this->env->getExtension('Slim\Views\TwigExtension')->urlFor("playlistdashboard.show"), "html", null, true); echo "\".replace(\":id\", playlistId), { method: \"GET\", success: function(response) { if (response.success) { \$spotElement.html(response.html); // Run init generally to capture any Xibo special elements XiboInitialise(\"#spots\"); // Also bind to any special buttons we have on our page. // Bind an on-click event to each of our buttons // when we click them, they get replaced with a file upload form. // once complete, or cancelled, they get reloaded with new information, or the old info put back. \$spotElement.find(\".spot-action-button\").on(\"click\", function() { spotActionButtonClick(\$(this)); }); // Bind click event to delete a playlist widget \$spotElement.find(\".delete-widget\").click(function(e) { let \$anchor = \$(this).children(); e.preventDefault(); XiboFormRender(\$anchor); }); } else { SystemMessage(response.message); } } }) } /** * What should happen when we click a button? * @param button */ function spotActionButtonClick(button) { // Whip away the current button let \$container = button.parent(); let \$imgDiv = \$container.prev(); let \$delButtonDiv = \$container.next(); // Remove the button, thumbnail and whatever else button.remove(); \$imgDiv.empty(); \$delButtonDiv.empty(); // Append a new one \$container.append(template({ playlistId: \$container.data(\"playlistId\"), widgetId: \$container.data(\"widgetId\"), oldMediaId: \$container.data(\"mediaId\"), upload: { maxSize: "; // line 177 echo twig_escape_filter($this->env, $this->getAttribute(($context["libraryUpload"] ?? null), "maxSize", []), "html", null, true); echo ", validExt: \""; // line 178 echo twig_escape_filter($this->env, ($context["validExtensions"] ?? null), "html", null, true); echo "\" } })); // Hand over to blue-imp // Configure the upload form let form = \$container.find(\"form\"); // Initialize the jQuery File Upload widget: form.fileupload({ url: uploadUrl, disableImageResize: true, maxNumberOfFiles: 1, limitMultiFileUploads: 1, autoUpload: true, dropZone: \$(this).parent() }); // Enable iframe cross-domain access via redirect option: form.fileupload('option', 'redirect', window.location.href.replace(/\\/[^\\/]*\$/, '/cors/result.html?%s')); form.bind('fileuploadalways', function (e, data) { if (data.textStatus === \"success\") { // Take the data and update our form back to a replace button let result = data.result.files[0]; // Pull the results out if (result.error !== undefined) { toastr.error(result.error); } else { // update the container with a new mediaId \$container.data(\"mediaId\", result.mediaId); \$container.data(\"widgetId\", result.widgetId); \$container.data(\"widgetName\", result.name); \$container.data(\"mediaType\", result.mediaType); if (\$container.data(\"buttonType\") === \"add\") { \$container.data(\"buttonType\", \"replace\"); // Change Empty to Add in the next row down (if there is one) let \$next = \$container.parent().next().find(\"button\"); \$next.addClass(\"spot-action\").addClass(\"btn-success\").removeClass(\"btn-default\").prop(\"disabled\", false).html(\"Add\"); \$next.on(\"click\", function () { spotActionButtonClick(\$next); }); } } } else { toastr.error(data.result); } let button; if (\$container.data(\"widgetName\") !== undefined) { // Switch back to a button button = \$(\"<button class=\\\"btn btn-block btn-warning spot-action-button\\\">\" + \$container.data(\"widgetName\") + \"</button>\"); \$container.append(button); var delTempl = Handlebars.compile(\$(\"#delete-template\").html()); \$delButtonDiv.append(delTempl({ href: \$container.data(\"widgetDel\").replace(\":id\", \$container.data(\"widgetId\")), routeViewable: \$container.data(\"routeViewable\"), transDelete: \""; // line 240 echo __("Delete"); echo "\" })); if (\$container.data(\"mediaType\") === \"image\") { let previewUrl = \$container.data(\"widgetPreview\").replace(\":id\", \$container.data(\"mediaId\")); let thumbnail = \$(\"<a class=\\\"img-replace\\\" data-toggle=\\\"lightbox\\\" data-type=\\\"image\\\" href=\\\"\" + previewUrl + \"\\\">\" + \"<img src=\\\"\" + previewUrl + \"&width=50&height=50&cache=1\\\" style=\\\"max-height: 50px; max-width: 50px;\\\"/>\" + \"</a>\"); \$imgDiv.append(thumbnail); } else { \$imgDiv.append(\$(\"<i class=\\\"fa fa-2x module-icon-\" + \$container.data(\"mediaType\") + \"\\\" style=\\\"height: 50px; max-width: 50px;\\\"></i>\")); } } else { button = \$(\"<button class=\\\"btn btn-block btn-success spot-action-button\\\">Add</button>\"); \$container.append(button); } // Bind to the button. button.on(\"click\", function () { spotActionButtonClick(\$(this)); }); setTimeout(function() { form.fileupload('destroy'); form.remove(); }, 500); }); // Click our new button \$container.find('input[name=\"files[]\"]').trigger(\"click\"); } /** * Callback used by the Playlist Module Delete form opening. */ function playlistModuleDeleteFormOpen() { \$(\"#playlistModuleDeleteForm\").submit(function(e) { e.preventDefault(); // Call the usual form submit. XiboFormSubmit(\$(\"#playlistModuleDeleteForm\"), null, function(xhr, form) { if (xhr.success) { loadPlaylistIntoSpotEditor(\$(\"div.playlist-control select\").val()); } }); }); } </script> "; // line 294 echo " "; // line 343 echo " <script type=\"text/x-handlebars-template\" id=\"template-spot-dashboard\"> <form method=\"post\" enctype=\"multipart/form-data\" data-max-file-size=\"{{ upload.maxSize }}\" data-accept-file-types=\"/(\\.|\\/){{ upload.validExt }}\$/i\"> <input type=\"hidden\" name=\"playlistId\" value=\"{{ playlistId }}\" /> {{#if widgetId}} <input type=\"hidden\" name=\"widgetId\" value=\"{{ widgetId }}\" /> {{/if}} {{#if oldMediaId}} <input type=\"hidden\" name=\"oldMediaId\" value=\"{{ oldMediaId }}\" /> {{/if}} <input type=\"hidden\" name=\"updateInLayouts\" value=\"1\" /> <input type=\"hidden\" name=\"deleteOldRevisions\" value=\"1\" /> <div class=\"row fileupload-buttonbar\"> <div class=\"col-md-7\"> <!-- The fileinput-button span is used to style the file input field as button --> <span class=\"btn btn-success fileinput-button\"> <i class=\"glyphicon glyphicon-plus glyphicon glyphicon-white\"></i> <span>Please select a file...</span> <input type=\"file\" name=\"files[]\"> </span> <!-- The loading indicator is shown during file processing --> <span class=\"fileupload-loading\"></span> </div> <!-- The global progress information --> <div class=\"col-md-4 fileupload-progress fade\"> <!-- The global progress bar --> <div class=\"progress\"> <div class=\"progress-bar progress-bar-success progress-bar-striped active\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width:0%;\"> <div class=\"sr-only\"></div> </div> </div> <!-- The extended global progress information --> <div class=\"progress-extended\"> </div> <!-- Processing info container --> <div class=\"progress-end\" style=\"display:none;\">{{ trans.processing }}</div> </div> </div> </form> </script> <!-- The template to display delete button --> <script type=\"text/x-handlebars-template\" id=\"delete-template\"> {{#if routeViewable}} <a class=\"XiboFormButton added btns\" title=\"{{ transDelete }}\" href=\"{{ href }}\"> <i class=\"fa fa-lg fa-trash\" aria-hidden=\"true\" style=\"padding:8px 0 8px; color:#d9534f;\"></i> </a> {{/if}} </script> "; echo " "; } public function getTemplateName() { return "playlist-dashboard.twig"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 366 => 343, 364 => 294, 308 => 240, 243 => 178, 239 => 177, 183 => 124, 138 => 82, 120 => 70, 117 => 69, 115 => 68, 112 => 67, 105 => 62, 95 => 61, 90 => 59, 82 => 54, 66 => 42, 61 => 41, 57 => 40, 54 => 39, 51 => 31, 46 => 27, 43 => 26, 38 => 23, 36 => 24, 30 => 23,); } /** @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("{# /** * Copyright (C) 2020 Xibo Signage Ltd * * Xibo - Digital Signage - http://www.xibo.org.uk * * 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 \"forms.twig\" as forms %} {% block pageContent %} <div class=\"row\"> <div class=\"col-lg-6\"> {# Playlist selection #} {% set attributes = [ { name: \"data-placeholder--id\", value: null }, { name: \"data-placeholder--value\", value: \"\" }, { name: \"data-search-url\", value: urlFor(\"playlistdashboard.search\") }, { name: \"data-search-term\", value: \"name\" }, { name: \"data-id-property\", value: \"playlistId\" }, { name: \"data-text-property\", value: \"name\" } ] %} {% set title %}{% trans \"Playlist\" %}{% endset %} {% set helpText %}{% trans \"Please select a Playlist to manage\" %}{% endset %} {{ forms.dropdown(\"playlistId\", \"single\", title, \"\", [playlist], \"playlistId\", \"name\", helpText, \"playlist-control pagedSelect\", \"\", \"\", \"\", attributes) }} </div> </div> <div class=\"row\"> <div class=\"col-lg-6\"> <div id=\"spots\"> </div> </div> <div class=\"col-lg-6\"> <div class=\"well\"> <h3>{% trans \"Playlist Content\" %}</h3> <p>Fill empty Spots by clicking on ‘Add’ to select the media file you wish to use.</p> <p>Replace existing media files by clicking on a Spot and select the new media file you wish to use.</p> <p>{{ libraryUpload.maxSizeMessage }}</p> </div> {% include \"theme-dashboard-message.twig\" ignore missing %} </div> </div> {% endblock %} {% block javaScript %} {# Add common file #} {% include \"common.twig\" %} <script src=\"{{ theme.rootUri() }}dist/playlistEditor.bundle.min.js?{{ version }}\"></script> <script type=\"text/javascript\"> // Define some global variables to keep hold of let template; let uploadUrl; \$(document).ready(function() { // Hide reshow welcome on this page \$('#reshowWelcomeMenuItem').parent().remove(); // We need to have the URL of hte upload form available uploadUrl = \"{{ urlFor(\"playlistdashboard.library.add\") }}\"; // Bind our buttons on the dashboard // Listen to the playlist selector change \$(\"div.playlist-control select\").on(\"change\", function() { loadPlaylistIntoSpotEditor(\$(this).val()); }); // Upload server status check for browsers with CORS support: if (\$.support.cors) { \$.ajax({ url: uploadUrl, type: 'HEAD' }).fail(function () { \$('<span class=\"alert alert-error\"/>') .text('Upload server currently unavailable - ' + new Date()) .appendTo(\$('.well')); }); } // Compile our template once template = Handlebars.compile(\$(\"#template-spot-dashboard\").html()); // Do we need to load a preset? loadPlaylistIntoSpotEditor(\$(\"div.playlist-control select\").val()); }); /** * Load a Playlist into the Spot Editor * @param playlistId the playlistId */ function loadPlaylistIntoSpotEditor(playlistId) { // Check we have a playlistId provided if (playlistId === undefined || playlistId === null || playlistId === \"\") { return; } // Make an AJAX call to the spots backend for this, and dump the resulting HTML into our target div. let \$spotElement = \$(\"#spots\"); \$spotElement.html(\"<span class=\\\"fa fa-cogs fa-spin\\\"></span>\"); \$.ajax(\"{{ urlFor(\"playlistdashboard.show\") }}\".replace(\":id\", playlistId), { method: \"GET\", success: function(response) { if (response.success) { \$spotElement.html(response.html); // Run init generally to capture any Xibo special elements XiboInitialise(\"#spots\"); // Also bind to any special buttons we have on our page. // Bind an on-click event to each of our buttons // when we click them, they get replaced with a file upload form. // once complete, or cancelled, they get reloaded with new information, or the old info put back. \$spotElement.find(\".spot-action-button\").on(\"click\", function() { spotActionButtonClick(\$(this)); }); // Bind click event to delete a playlist widget \$spotElement.find(\".delete-widget\").click(function(e) { let \$anchor = \$(this).children(); e.preventDefault(); XiboFormRender(\$anchor); }); } else { SystemMessage(response.message); } } }) } /** * What should happen when we click a button? * @param button */ function spotActionButtonClick(button) { // Whip away the current button let \$container = button.parent(); let \$imgDiv = \$container.prev(); let \$delButtonDiv = \$container.next(); // Remove the button, thumbnail and whatever else button.remove(); \$imgDiv.empty(); \$delButtonDiv.empty(); // Append a new one \$container.append(template({ playlistId: \$container.data(\"playlistId\"), widgetId: \$container.data(\"widgetId\"), oldMediaId: \$container.data(\"mediaId\"), upload: { maxSize: {{ libraryUpload.maxSize }}, validExt: \"{{ validExtensions }}\" } })); // Hand over to blue-imp // Configure the upload form let form = \$container.find(\"form\"); // Initialize the jQuery File Upload widget: form.fileupload({ url: uploadUrl, disableImageResize: true, maxNumberOfFiles: 1, limitMultiFileUploads: 1, autoUpload: true, dropZone: \$(this).parent() }); // Enable iframe cross-domain access via redirect option: form.fileupload('option', 'redirect', window.location.href.replace(/\\/[^\\/]*\$/, '/cors/result.html?%s')); form.bind('fileuploadalways', function (e, data) { if (data.textStatus === \"success\") { // Take the data and update our form back to a replace button let result = data.result.files[0]; // Pull the results out if (result.error !== undefined) { toastr.error(result.error); } else { // update the container with a new mediaId \$container.data(\"mediaId\", result.mediaId); \$container.data(\"widgetId\", result.widgetId); \$container.data(\"widgetName\", result.name); \$container.data(\"mediaType\", result.mediaType); if (\$container.data(\"buttonType\") === \"add\") { \$container.data(\"buttonType\", \"replace\"); // Change Empty to Add in the next row down (if there is one) let \$next = \$container.parent().next().find(\"button\"); \$next.addClass(\"spot-action\").addClass(\"btn-success\").removeClass(\"btn-default\").prop(\"disabled\", false).html(\"Add\"); \$next.on(\"click\", function () { spotActionButtonClick(\$next); }); } } } else { toastr.error(data.result); } let button; if (\$container.data(\"widgetName\") !== undefined) { // Switch back to a button button = \$(\"<button class=\\\"btn btn-block btn-warning spot-action-button\\\">\" + \$container.data(\"widgetName\") + \"</button>\"); \$container.append(button); var delTempl = Handlebars.compile(\$(\"#delete-template\").html()); \$delButtonDiv.append(delTempl({ href: \$container.data(\"widgetDel\").replace(\":id\", \$container.data(\"widgetId\")), routeViewable: \$container.data(\"routeViewable\"), transDelete: \"{% trans \"Delete\" %}\" })); if (\$container.data(\"mediaType\") === \"image\") { let previewUrl = \$container.data(\"widgetPreview\").replace(\":id\", \$container.data(\"mediaId\")); let thumbnail = \$(\"<a class=\\\"img-replace\\\" data-toggle=\\\"lightbox\\\" data-type=\\\"image\\\" href=\\\"\" + previewUrl + \"\\\">\" + \"<img src=\\\"\" + previewUrl + \"&width=50&height=50&cache=1\\\" style=\\\"max-height: 50px; max-width: 50px;\\\"/>\" + \"</a>\"); \$imgDiv.append(thumbnail); } else { \$imgDiv.append(\$(\"<i class=\\\"fa fa-2x module-icon-\" + \$container.data(\"mediaType\") + \"\\\" style=\\\"height: 50px; max-width: 50px;\\\"></i>\")); } } else { button = \$(\"<button class=\\\"btn btn-block btn-success spot-action-button\\\">Add</button>\"); \$container.append(button); } // Bind to the button. button.on(\"click\", function () { spotActionButtonClick(\$(this)); }); setTimeout(function() { form.fileupload('destroy'); form.remove(); }, 500); }); // Click our new button \$container.find('input[name=\"files[]\"]').trigger(\"click\"); } /** * Callback used by the Playlist Module Delete form opening. */ function playlistModuleDeleteFormOpen() { \$(\"#playlistModuleDeleteForm\").submit(function(e) { e.preventDefault(); // Call the usual form submit. XiboFormSubmit(\$(\"#playlistModuleDeleteForm\"), null, function(xhr, form) { if (xhr.success) { loadPlaylistIntoSpotEditor(\$(\"div.playlist-control select\").val()); } }); }); } </script> {# Output a template for the upload form which will appear in the spot when clicked. #} {% raw %} <script type=\"text/x-handlebars-template\" id=\"template-spot-dashboard\"> <form method=\"post\" enctype=\"multipart/form-data\" data-max-file-size=\"{{ upload.maxSize }}\" data-accept-file-types=\"/(\\.|\\/){{ upload.validExt }}\$/i\"> <input type=\"hidden\" name=\"playlistId\" value=\"{{ playlistId }}\" /> {{#if widgetId}} <input type=\"hidden\" name=\"widgetId\" value=\"{{ widgetId }}\" /> {{/if}} {{#if oldMediaId}} <input type=\"hidden\" name=\"oldMediaId\" value=\"{{ oldMediaId }}\" /> {{/if}} <input type=\"hidden\" name=\"updateInLayouts\" value=\"1\" /> <input type=\"hidden\" name=\"deleteOldRevisions\" value=\"1\" /> <div class=\"row fileupload-buttonbar\"> <div class=\"col-md-7\"> <!-- The fileinput-button span is used to style the file input field as button --> <span class=\"btn btn-success fileinput-button\"> <i class=\"glyphicon glyphicon-plus glyphicon glyphicon-white\"></i> <span>Please select a file...</span> <input type=\"file\" name=\"files[]\"> </span> <!-- The loading indicator is shown during file processing --> <span class=\"fileupload-loading\"></span> </div> <!-- The global progress information --> <div class=\"col-md-4 fileupload-progress fade\"> <!-- The global progress bar --> <div class=\"progress\"> <div class=\"progress-bar progress-bar-success progress-bar-striped active\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width:0%;\"> <div class=\"sr-only\"></div> </div> </div> <!-- The extended global progress information --> <div class=\"progress-extended\"> </div> <!-- Processing info container --> <div class=\"progress-end\" style=\"display:none;\">{{ trans.processing }}</div> </div> </div> </form> </script> <!-- The template to display delete button --> <script type=\"text/x-handlebars-template\" id=\"delete-template\"> {{#if routeViewable}} <a class=\"XiboFormButton added btns\" title=\"{{ transDelete }}\" href=\"{{ href }}\"> <i class=\"fa fa-lg fa-trash\" aria-hidden=\"true\" style=\"padding:8px 0 8px; color:#d9534f;\"></i> </a> {{/if}} </script> {% endraw %} {% endblock %}", "playlist-dashboard.twig", "/home2/mgatv524/public_html/novabrasil/views/playlist-dashboard.twig"); } }