--- /dev/null
+/**
+ * @file
+ * Database panel app.
+ */
+(function ($, Drupal, drupalSettings) {
+
+ "use strict";
+
+ Drupal.behaviors.webprofiler_database = {
+ attach: function (context) {
+ $(context).find('.js--explain-trigger').once('js--explain-trigger').each(function () {
+
+ $(this).on('click', function () {
+ var position = $(this).attr('data-wp-queryPosition'),
+ wrapper = $(this).parent().parent().find('.js--explain-target'),
+ loader = $(this).parent().parent().find('.js--loader');
+
+ if (wrapper.html().length === 0) {
+
+ var url = Drupal.url('admin/reports/profiler/database_explain/' + drupalSettings.webprofiler.token + '/' + position);
+
+ loader.show();
+
+ $.getJSON(url, function (data) {
+ _.templateSettings.variable = 'rc';
+ var template = _.template(
+ $("#wp-query-explain-template").html()
+ );
+ wrapper.html(template(data));
+ loader.hide();
+ delete _.templateSettings.variable;
+ });
+ }
+ wrapper.toggle();
+
+ });
+ });
+
+ $(context).find('.js--code-toggle').once('js--code-toggle').each(function () {
+ $(this).on('click', function () {
+ $(this).parent().find('.js--code-target').find('code').toggleClass('is--hidden');
+ });
+ });
+
+ $(context).find('.js--code-toggle--global').once('js--code-toggle--global').each(function () {
+ $(this).on('click', function () {
+
+ if($(this).hasClass('js--placeholder-visible')){
+ $('.js--placeholder-query').addClass('is--hidden');
+ $('.js--original-query').removeClass('is--hidden');
+
+ }else{
+ $('.js--placeholder-query').removeClass('is--hidden');
+ $('.js--original-query').addClass('is--hidden');
+ }
+ $(this).toggleClass('js--placeholder-visible');
+ });
+ });
+
+ if (typeof hljs != "undefined") {
+ $('code.sql').each(function (i, block) {
+ hljs.highlightBlock(block);
+ });
+ }
+ }
+ }
+})
+(jQuery, Drupal, drupalSettings);