CORSConfigSetter.html 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <!DOCTYPE html>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: bi-utils
  5. (C) 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. <html>
  9. <head>
  10. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  11. <script src="../lib/jquery/2.1.1/jquery.min.js"></script>
  12. <script type="text/javascript">
  13. $(document).ready(function(){
  14. // click on button submit
  15. $("#submit").on('click', function(){
  16. document.getElementById("updating").innerText = " updating...";
  17. $.ajax({
  18. headers: {'X-XSRF-Token': getCookie('XSRF-TOKEN')},
  19. url: '../v1/configuration/keys/global',
  20. type : 'PUT',
  21. contentType: 'application/json',
  22. data : '{"' + $("#form :input[name='name']").val() + '":"' + $("#form :input[name='value']").val() + '"}',
  23. error: function(xhr, resp, text) {
  24. console.log(xhr, resp, text);
  25. document.getElementById("updating").innerText = "";
  26. alert(text);
  27. },
  28. success: function() {
  29. document.getElementById("updating").innerText = "";
  30. alert("Configuration updated.");
  31. }
  32. })
  33. });
  34. });
  35. </script>
  36. <script>
  37. function getCookie(c_name) {
  38. if (document.cookie.length > 0) {
  39. c_start = document.cookie.indexOf(c_name + "=");
  40. if (c_start != -1) {
  41. c_start = c_start + c_name.length + 1;
  42. c_end = document.cookie.indexOf(";", c_start);
  43. if (c_end == -1) {
  44. c_end = document.cookie.length;
  45. }
  46. return unescape(document.cookie.substring(c_start, c_end));
  47. }
  48. }
  49. return "";
  50. }
  51. function getval(sel) {
  52. var name = sel.value;
  53. $.ajax({
  54. headers: {'X-XSRF-Token': getCookie('XSRF-TOKEN')},
  55. url: '../v1/configuration/keys/' + sel.value,
  56. type : 'GET',
  57. dataType: 'json',
  58. success : function(data) {
  59. $("#form :input[name='value']").val(data[name] == 'myDefault' ? getDefault(name) : data[name]);
  60. $('#description').text(getDesc(name));
  61. },
  62. error: function(xhr, resp, text) {
  63. console.log(xhr, resp, text);
  64. }
  65. })
  66. }
  67. function getDefault(name) {
  68. if (name === 'cors.allowed.origins') return '*';
  69. if (name === 'cors.allowed.methods') return 'GET,POST,PUT,DELETE,HEAD,OPTIONS';
  70. if (name === 'cors.allowed.headers') return 'Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers';
  71. if (name === 'cors.support.credentials') return 'true';
  72. }
  73. function getDesc(name) {
  74. if (name === 'cors.allowed.origins') return ' comma separated list of origins, or \'*\'';
  75. if (name === 'cors.allowed.methods') return ' comma separated list of methods';
  76. if (name === 'cors.allowed.headers') return ' comma separate list of headers';
  77. if (name === 'cors.support.credentials') return ' true or false';
  78. }
  79. </script>
  80. </head>
  81. <body>
  82. <h1>Configure CORS Headers</h1>
  83. <h3>First log into Cognos Analytics as a System Administrator</h3>
  84. <p>Changes may take up to 10sec to apply. No server restart required.</p>
  85. <form id="form" action="" method="post">
  86. Name: <select name="name" onchange="getval(this)">
  87. <option value='' disabled selected style='display:none;'>Select option...</option>
  88. <option>cors.allowed.origins</option>
  89. <option>cors.allowed.methods</option>
  90. <option>cors.allowed.headers</option>
  91. <option>cors.support.credentials</option>
  92. </select><span id='description'></span><br>
  93. Value: <input type="text" name="value" size="50"><br>
  94. <input id="submit" type="button" name="submit" value="submit"><span id="updating"/>
  95. </form>
  96. </body>
  97. </html>