TestResultSlideout.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. "use strict";
  2. /**
  3.  * Licensed Materials - Property of IBM
  4.  * IBM Cognos Products: Cognos Analytics
  5.  * Copyright IBM Corp. 2017, 2018
  6.  * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7.  */
  8. define(['q', 'doT', 'jquery', 'bi/admin/common/slideout/BasePane', 'bi/admin/nls/StringResource', 'bi/commons/ui/properties/PropertyUIControl'], function (Q, dot, $, BasePane, StringResource, PropertyUIControl) {
  9. /**
  10. * Sample content view that extends the glass View class
  11. *
  12. */
  13. var TestResultSlideout = BasePane.extend({
  14. title: StringResource.get('testResultsTitle'),
  15. init: function init(options) {
  16. TestResultSlideout.inherited('init', this, arguments);
  17. $.extend(this, options);
  18. },
  19. _getMessages: function _getMessages() {
  20. var messages = [];
  21. if (this.objectInfo && (this.objectInfo.connectionString === 'undefined' || this.objectInfo.connectionString === '')) {
  22. messages.push(StringResource.get('emptyConnectionInfo'));
  23. return messages;
  24. }
  25. var resultArray = this.results.data ? this.results.data : this.results.responseJSON.data;
  26. if (!resultArray || resultArray.length === 0) {
  27. this.logger.error("could not find result objects");
  28. return messages;
  29. } else {
  30. if (resultArray[0].messages) {
  31. return resultArray[0].messages;
  32. } else {
  33. //report the fault code
  34. messages.push(StringResource.get('testServerError'));
  35. messages.push(resultArray[0].faultCode);
  36. messages.push(resultArray[0].faultString);
  37. return messages;
  38. }
  39. }
  40. },
  41. _getMessageItems: function _getMessageItems(items) {
  42. var messages = "";
  43. this._getMessages().forEach(function (message) {
  44. messages += message + "\n";
  45. });
  46. items.push({
  47. 'name': 'testResultMessagesText',
  48. 'label': StringResource.get('testResultMessages'),
  49. 'value': messages,
  50. 'editable': false,
  51. 'type': 'TextArea',
  52. 'class': 'connStringText',
  53. 'multiline': true
  54. });
  55. },
  56. _updateConnectionStringTextForCopying: function _updateConnectionStringTextForCopying() {
  57. var connectionStringTextArea = this.$el.find('.v_connectionStringText');
  58. $(connectionStringTextArea).removeAttr("disabled");
  59. $(connectionStringTextArea).attr("readOnly", "true");
  60. },
  61. renderBody: function renderBody($body) {
  62. var deferred = Q.defer();
  63. var $rootEl = $(this.$el.find(".bi-admin-pane-body.bi-admin-pane-flex"));
  64. var items = [];
  65. this._getMessageItems(items);
  66. this._oPropertyUIControl = new PropertyUIControl({
  67. 'el': $rootEl,
  68. 'glassContext': this.glassContext,
  69. 'items': items
  70. });
  71. this._oPropertyUIControl.render().then(function () {
  72. var textArea = this.$el.find('.v_testResultMessagesText');
  73. $(textArea).css('border', '1px');
  74. $(textArea).removeAttr("disabled");
  75. $(textArea).css('maxHeight', '100%');
  76. $(textArea).css('height', '100%');
  77. $(this.$el.find(".propertyRow")).css('height', '100%');
  78. this._updateConnectionStringTextForCopying();
  79. deferred.resolve(this);
  80. }.bind(this));
  81. return deferred.promise;
  82. },
  83. setFocus: function setFocus() {
  84. this.$el.find('textarea').filter(':visible:first').focus();
  85. }
  86. });
  87. return TestResultSlideout;
  88. });