authreq.html 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Authentication Required</title>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0 user-scalable=no">
  7. <link rel="stylesheet" href="../../script/semantic/semantic.min.css">
  8. <script type="text/javascript" src="../../script/jquery.min.js"></script>
  9. <script type="text/javascript" src="../../script/semantic/semantic.min.js"></script>
  10. <script type="text/javascript" src="../../script/ao_module.js"></script>
  11. <style>
  12. </style>
  13. </head>
  14. <body>
  15. <div class="ui container">
  16. <h3 class="ui header" style="padding-top: 12px;">
  17. <img src="img/lock.svg">
  18. <div class="content">
  19. <span id="title">Authentication Required</span>
  20. <div id="desc" class="sub header">in order to proceed this operation</div>
  21. </div>
  22. </h3>
  23. <p>Username</p>
  24. <div class="ui small fluid input" style="margin-top: -10px;">
  25. <input id="username" type="text" placeholder="">
  26. </div>
  27. <p>Password</p>
  28. <div class="ui fluid input" style="margin-top: -10px;">
  29. <input id="password" type="password" placeholder="">
  30. </div>
  31. <br>
  32. <div align="right">
  33. <button class="ui green button" onclick="confirm()">OK</button>
  34. <button class="ui button" onclick="cancel()">Cancel</button>
  35. </div>
  36. </div>
  37. <script>
  38. ao_module_setFixedWindowSize();
  39. var actionObject = {};
  40. var method = "GET";
  41. if (window.location.hash.length > 1){
  42. var object = JSON.parse(decodeURIComponent(window.location.hash.substr(1)));
  43. console.log(object);
  44. if (typeof(object.title) != "undefined"){
  45. $("#title").html(object.title);
  46. }
  47. if (typeof(object.desc) != "undefined"){
  48. $("#desc").html(object.desc);
  49. }
  50. if (typeof(object.thisuser) != "undefined" && object.thisuser == true){
  51. //Load user info from server side
  52. $.get("../../system/desktop/user", function(data){
  53. $("#username").val(data.Username);
  54. $("#username").attr("readonly","true");
  55. $("#username").parent().addClass("disabled");
  56. });
  57. }
  58. if (typeof(object.method) != "undefined" && object.method != ""){
  59. method = object.method;
  60. }
  61. actionObject = object;
  62. }else{
  63. //Invalid usage
  64. }
  65. function confirm(){
  66. $("password").parent().removeClass("error");
  67. var payload = actionObject.data;
  68. //Append custom payload to the original payload
  69. payload.username = $("#username").val();
  70. payload.password = $("#password").val();
  71. //Request endpoint
  72. $.ajax({
  73. url: "../../" + actionObject.api,
  74. data: payload,
  75. method: method,
  76. success: function(data){
  77. if (data.error != undefined){
  78. $("#password").parent().addClass("error");
  79. }else{
  80. if (ao_module_hasParentCallback()){
  81. ao_module_parentCallback(data);
  82. }
  83. ao_module_close();
  84. }
  85. }
  86. })
  87. }
  88. function cancel(){
  89. if (ao_module_hasParentCallback()){
  90. ao_module_parentCallback(false);
  91. }
  92. ao_module_close();
  93. }
  94. </script>
  95. </body>
  96. </html>