inspect_ctrl.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. define([
  2. 'angular',
  3. 'lodash',
  4. 'jquery',
  5. '../core_module',
  6. ],
  7. function (angular, _, $, coreModule) {
  8. 'use strict';
  9. coreModule.default.controller('InspectCtrl', function($scope, $sanitize) {
  10. var model = $scope.inspector;
  11. function getParametersFromQueryString(queryString) {
  12. var result = [];
  13. var parameters = queryString.split("&");
  14. for (var i = 0; i < parameters.length; i++) {
  15. var keyValue = parameters[i].split("=");
  16. if (keyValue[1].length > 0) {
  17. result.push({ key: keyValue[0], value: window.unescape(keyValue[1]) });
  18. }
  19. }
  20. return result;
  21. }
  22. $scope.init = function () {
  23. $scope.editor = { index: 0 };
  24. if (!model.error) {
  25. return;
  26. }
  27. if (_.isString(model.error.data)) {
  28. $scope.response = $("<div>" + model.error.data + "</div>").text();
  29. } else if (model.error.data) {
  30. if (model.error.data.response) {
  31. $scope.response = $sanitize(model.error.data.response);
  32. } else {
  33. $scope.response = angular.toJson(model.error.data, true);
  34. }
  35. } else if (model.error.message) {
  36. $scope.message = model.error.message;
  37. }
  38. if (model.error.config && model.error.config.params) {
  39. $scope.request_parameters = _.map(model.error.config.params, function(value, key) {
  40. return { key: key, value: value};
  41. });
  42. }
  43. if (model.error.stack) {
  44. $scope.editor.index = 3;
  45. $scope.stack_trace = model.error.stack;
  46. $scope.message = model.error.message;
  47. }
  48. if (model.error.config && model.error.config.data) {
  49. $scope.editor.index = 2;
  50. if (_.isString(model.error.config.data)) {
  51. $scope.request_parameters = getParametersFromQueryString(model.error.config.data);
  52. } else {
  53. $scope.request_parameters = _.map(model.error.config.data, function(value, key) {
  54. return {key: key, value: angular.toJson(value, true)};
  55. });
  56. }
  57. }
  58. };
  59. });
  60. });