| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- define([
- 'angular',
- 'lodash'
- ],
- function (angular, _) {
- 'use strict';
- var module = angular.module('grafana.controllers');
- module.controller('InspectCtrl', function($scope) {
- var model = $scope.inspector;
- function getParametersFromQueryString(queryString) {
- var result = [];
- var parameters = queryString.split("&");
- for (var i = 0; i < parameters.length; i++) {
- var keyValue = parameters[i].split("=");
- if (keyValue[1].length > 0) {
- result.push({ key: keyValue[0], value: window.unescape(keyValue[1]) });
- }
- }
- return result;
- }
- $scope.init = function () {
- $scope.editor = { index: 0 };
- if (!model.error) {
- return;
- }
- if (_.isString(model.error.data)) {
- $scope.response = model.error.data;
- }
- if (model.error.config && model.error.config.params) {
- $scope.request_parameters = _.map(model.error.config.params, function(value, key) {
- return { key: key, value: value};
- });
- }
- if (model.error.stack) {
- $scope.editor.index = 2;
- $scope.stack_trace = model.error.stack;
- $scope.message = model.error.message;
- }
- else if (model.error.config && model.error.config.data) {
- $scope.editor.index = 1;
- $scope.request_parameters = getParametersFromQueryString(model.error.config.data);
- if (model.error.data.indexOf('DOCTYPE') !== -1) {
- $scope.response_html = model.error.data;
- }
- }
- };
- });
- angular
- .module('grafana.directives')
- .directive('iframeContent', function($parse) {
- return {
- restrict: 'A',
- link: function($scope, elem, attrs) {
- var getter = $parse(attrs.iframeContent), value = getter($scope);
- $scope.$on("$destroy",function() {
- elem.remove();
- });
- var iframe = document.createElement('iframe');
- iframe.width = '100%';
- iframe.height = '400px';
- iframe.style.border = 'none';
- iframe.src = 'about:blank';
- elem.append(iframe);
- iframe.contentWindow.document.open('text/html', 'replace');
- iframe.contentWindow.document.write(value);
- iframe.contentWindow.document.close();
- }
- };
- });
- });
|