{{!
    This file is part of Moodle - http://moodle.org/

    Moodle is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Moodle 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 General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
}}
{{!
    @template local_dash/query_debug

    Example context (json):
    {
        "sitefullname": "Moodle - 311",
		"courseurl": "https://localhost/moodle/course/view.php?id=2"
    }
}}
<button id="query-debug-modal-{{uniqueid}}-trigger" data-body="{{query}}<pre></pre>" data-params="{{params}}" class="btn btn-secondary btn-default btn-sm">
<i class="fa fa-code"></i> {{#str}}querydebug, block_dash{{/str}}
</button>

{{#js}}
    require(['jquery', 'core/modal_factory', 'core/modal_events', 'core/modal', 'core/notification'],
        function($, ModalFactory, Events, Modal, Notification) {
        var trigger = $('#query-debug-modal-{{uniqueid}}-trigger');
        var body = '<p>' + trigger.data('body') + '</p>';
        var promise;
        if ((typeof Modal.registerModalType !== 'undefined')) {
            promise = Modal.create({
                title: '{{#str}}querydebug, block_dash{{/str}}',
                body: body,
                large: true
            }, trigger);
        } else {
            promise = ModalFactory.create({
                title: '{{#str}}querydebug, block_dash{{/str}}',
                body: body,
                type: ModalFactory.types.SAVE_CANCEL,
                large: true
            }, trigger);
        }

        promise.then(function(modal) {
            trigger.on('click', function() {
                modal.show();
            });
            modal.getRoot().on(Events.shown, function() {
                var params = JSON.stringify(trigger.data('params'), null, 2);
                $(this).find('.modal-body').find('pre').html(params);
            });
            return modal;
        }).catch(Notification.exception);
    });
{{/js}}
