Version 1
[yaffs-website] / web / modules / contrib / devel / webprofiler / js / database.js
diff --git a/web/modules/contrib/devel/webprofiler/js/database.js b/web/modules/contrib/devel/webprofiler/js/database.js
new file mode 100644 (file)
index 0000000..5f50430
--- /dev/null
@@ -0,0 +1,68 @@
+/**
+ * @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);