You are here

webprofiler_loader.html.twig in Devel 8.3

<div id="webprofiler{{ token }}" class="sf-toolbar" style="display: none"></div>

<script>
    Webprofiler = (function () {
        "use strict";

        var key = 'webprofiler/profiler/',

                getPreference = function (name) {
                    if (!window.localStorage) {
                        return null;
                    }

                    return localStorage.getItem(key + name);
                },

                setPreference = function (name, value) {
                    if (!window.localStorage) {
                        return null;
                    }

                    localStorage.setItem(key + name, value);
                    return true;
                },

                load = function () {
                    ajax('{{ profiler_url }}', function (result) {
                        var toolbar = document.getElementById('webprofiler{{ token }}');
                        toolbar.innerHTML = result;
                        toolbar.style.display = 'block';

                        if (getPreference('toolbar/displayState') == 'none') {
                            document.getElementById('sfToolbarMainContent-{{ token }}').style.display = 'none';
                            document.getElementById('sfToolbarClearer-{{ token }}').style.display = 'none';
                            document.getElementById('sfMiniToolbar-{{ token }}').style.display = 'block';
                        } else {
                            document.getElementById('sfToolbarMainContent-{{ token }}').style.display = 'block';
                            document.getElementById('sfToolbarClearer-{{ token }}').style.display = 'block';
                            document.getElementById('sfMiniToolbar-{{ token }}').style.display = 'none';
                        }

                        var arr = toolbar.getElementsByTagName('script');
                        for (var n = 0; n < arr.length; n++) {
                            eval(arr[n].innerHTML);
                        }
                    });
                },

                ajax = function (url, callback, data) {
                    try {
                        var x = new (XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0');
                        x.open(data ? 'POST' : 'GET', url, 1);
                        x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
                        x.setRequestHeader('Content-type', 'application/json');
                        x.onreadystatechange = function () {
                            x.readyState > 3 && x.status === 200 && callback && callback(x.responseText, x);
                        };
                        x.send(data);
                    } catch (e) {
                        window.console && console.log(e);
                    }
                };

        return {
            getPreference: getPreference,
            setPreference: setPreference,
            load: load,
            ajax: ajax
        }
    })();

    Webprofiler.load();
</script>

File

webprofiler/templates/Profiler/webprofiler_loader.html.twig
View source
  1. <div id="webprofiler{{ token }}" class="sf-toolbar" style="display: none"></div>
  2. <script>
  3. Webprofiler = (function () {
  4. "use strict";
  5. var key = 'webprofiler/profiler/',
  6. getPreference = function (name) {
  7. if (!window.localStorage) {
  8. return null;
  9. }
  10. return localStorage.getItem(key + name);
  11. },
  12. setPreference = function (name, value) {
  13. if (!window.localStorage) {
  14. return null;
  15. }
  16. localStorage.setItem(key + name, value);
  17. return true;
  18. },
  19. load = function () {
  20. ajax('{{ profiler_url }}', function (result) {
  21. var toolbar = document.getElementById('webprofiler{{ token }}');
  22. toolbar.innerHTML = result;
  23. toolbar.style.display = 'block';
  24. if (getPreference('toolbar/displayState') == 'none') {
  25. document.getElementById('sfToolbarMainContent-{{ token }}').style.display = 'none';
  26. document.getElementById('sfToolbarClearer-{{ token }}').style.display = 'none';
  27. document.getElementById('sfMiniToolbar-{{ token }}').style.display = 'block';
  28. } else {
  29. document.getElementById('sfToolbarMainContent-{{ token }}').style.display = 'block';
  30. document.getElementById('sfToolbarClearer-{{ token }}').style.display = 'block';
  31. document.getElementById('sfMiniToolbar-{{ token }}').style.display = 'none';
  32. }
  33. var arr = toolbar.getElementsByTagName('script');
  34. for (var n = 0; n < arr.length; n++) {
  35. eval(arr[n].innerHTML);
  36. }
  37. });
  38. },
  39. ajax = function (url, callback, data) {
  40. try {
  41. var x = new (XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0');
  42. x.open(data ? 'POST' : 'GET', url, 1);
  43. x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
  44. x.setRequestHeader('Content-type', 'application/json');
  45. x.onreadystatechange = function () {
  46. x.readyState > 3 && x.status === 200 && callback && callback(x.responseText, x);
  47. };
  48. x.send(data);
  49. } catch (e) {
  50. window.console && console.log(e);
  51. }
  52. };
  53. return {
  54. getPreference: getPreference,
  55. setPreference: setPreference,
  56. load: load,
  57. ajax: ajax
  58. }
  59. })();
  60. Webprofiler.load();
  61. </script>