/module/js/ajax_actions.js

https://github.com/AmirHossein/JoCo · JavaScript · 176 lines · 136 code · 19 blank · 21 comment · 48 complexity · d9c839d21bbbe090436abddd44091108 MD5 · raw file

  1. /******************************************
  2. JoCo permissions
  3. Author : AHHP ~ Boplo.ir
  4. /******************************************/
  5. // main actions: publish, unpublish, edit and delete
  6. function ajaxAction(action, id)
  7. {
  8. if(action == "publish") var conf = lang_are_you_sure_publish;
  9. if(action == "unpublish") var conf = lang_are_you_sure_unpublish;
  10. if(action == "edit") var conf = lang_are_you_sure_edit;
  11. if(action == "delete") var conf = lang_are_you_sure_delete;
  12. if( ! confirm(conf) )
  13. return;
  14. var query = "";
  15. if(action == "edit")
  16. {
  17. var message = document.getElementById('textarea_' + id).value;
  18. for(var i=0; i < message.length; i++)
  19. {
  20. message = message.replace("\n","<BR>");
  21. message = message.replace("\t","&nbsp;&nbsp;&nbsp;&nbsp;");
  22. }
  23. query = "&message=" + message;
  24. }
  25. var xmlHttp = ajaxRequest();
  26. xmlHttp.open("GET" , "index.php?a=112&id=" +mKey+ "&comment_action=" + action + "&comment_id=" + id + query, true);
  27. xmlHttp.onreadystatechange=function()
  28. {
  29. if(xmlHttp.readyState==1)
  30. {
  31. document.getElementById("loading_" + id).innerHTML = "<p><img src=\"" +baseUrl+modulePath+ "images/loading.gif\" />" +lang_loading+ "</p>";
  32. //document.getElementById("indvTpl_" + id).innerHTML = document.getElementById("indvTpl_" + id).innerHTML;
  33. }
  34. if(xmlHttp.readyState==4 && xmlHttp.status==200)
  35. {
  36. document.getElementById("loading_" + id).innerHTML = "";
  37. if(action == "publish")
  38. {
  39. // action message
  40. document.getElementById("done_" + id).innerHTML = '<div class="done">' +lang_published+ '</div>';
  41. // disable publish checkbox TD
  42. document.getElementById("pub_col_"+id).style.backgroundImage="url('"+baseUrl+modulePath+"images/publish-col_dis.png')";
  43. //disable checkbox
  44. document.getElementById("pub_chkbx_" + id).setAttribute("disabled","disabled");
  45. //enable upublish checkbox TD
  46. document.getElementById("unpub_col_"+id).style.backgroundImage="url('"+baseUrl+modulePath+"images/unpublish-col.gif')";
  47. // remove unpublish "disabled" attribute
  48. document.getElementById("unpub_chkbx_" + id).removeAttribute("disabled");
  49. // uncheck publish checkbox
  50. if(document.getElementById("pub_chkbx_" + id).checked == true)
  51. document.getElementById("pub_chkbx_" + id).checked = false;
  52. // disable publish action link
  53. document.getElementById("act_publish_" + id).setAttribute("href","javascript:void(0)");
  54. // disable publish action image
  55. document.getElementById("img_act_publish_" + id).setAttribute("src", baseUrl+modulePath + "images/publish_dis.png");
  56. // enable unpublish action link
  57. document.getElementById("act_unpublish_" + id).setAttribute("href","javascript:ajaxAction('unpublish','"+id+"');");
  58. // enable unpublish action image
  59. document.getElementById("img_act_unpublish_" + id).setAttribute("src", baseUrl+modulePath + "images/unpublish.png");
  60. // set new status bg
  61. document.getElementById("message_"+id).style.backgroundImage="url('"+baseUrl+modulePath+"images/statusBg-published.png')";
  62. if(document.getElementById("status_"+id) != null)
  63. document.getElementById("status_"+id).innerHTML = lang_published;
  64. }
  65. if(action == "unpublish")
  66. {
  67. document.getElementById("done_" + id).innerHTML = "<div class=\"done\">" +lang_unpublished+ "</div>";
  68. document.getElementById("unpub_col_"+id).style.backgroundImage="url('"+baseUrl+modulePath+"images/unpublish-col_dis.png')";
  69. document.getElementById("unpub_chkbx_" + id).setAttribute("disabled","disabled");
  70. document.getElementById("pub_col_"+id).style.backgroundImage="url('"+baseUrl+modulePath+"images/publish-col.gif')";
  71. document.getElementById("pub_chkbx_" + id).removeAttribute("disabled");
  72. if(document.getElementById("unpub_chkbx_" + id).checked == true)
  73. document.getElementById("unpub_chkbx_" + id).checked = false;
  74. // disable Unpublish action
  75. document.getElementById("act_unpublish_" + id).setAttribute("href","javascript:void(0)");
  76. document.getElementById("img_act_unpublish_" + id).setAttribute("src", baseUrl+modulePath + "images/unpublish_dis.png");
  77. // enable Publish action
  78. document.getElementById("act_publish_" + id).setAttribute("href","javascript:ajaxAction('publish','"+id+"');");
  79. document.getElementById("img_act_publish_" + id).setAttribute("src", baseUrl+modulePath + "images/publish.png");
  80. document.getElementById("message_"+id).style.backgroundImage="url('"+baseUrl+modulePath+"images/statusBg-unpublished.png')";
  81. if(document.getElementById("status_"+id) != null)
  82. document.getElementById("status_"+id).innerHTML = lang_unpublished;
  83. }
  84. if(action == "delete")
  85. {
  86. document.getElementById("quickButts_" + id).style.display = "none";
  87. document.getElementById("pub_col_"+id).style.backgroundImage="url('"+baseUrl+modulePath+"images/publish-col_dis.png')";
  88. document.getElementById("pub_chkbx_" + id).setAttribute("disabled","disabled");
  89. document.getElementById("unpub_col_"+id).style.backgroundImage="url('"+baseUrl+modulePath+"images/unpublish-col_dis.png')";
  90. document.getElementById("unpub_chkbx_" + id).setAttribute("disabled","disabled");
  91. document.getElementById("delete_col_"+id).style.backgroundImage="none";
  92. document.getElementById("delete_col_"+id).style.backgroundColor="#EEE";
  93. document.getElementById("delete_chkbx_" + id).setAttribute("disabled","disabled");
  94. document.getElementById("done_" + id).innerHTML = "<div class=\"done\">" +lang_deleted+ "</div><br />";
  95. document.getElementById("pub_chkbx_" + id).checked = false;
  96. document.getElementById("unpub_chkbx_" + id).checked = false;
  97. document.getElementById("delete_chkbx_" + id).checked = false;
  98. }
  99. if(action == "edit")
  100. {
  101. document.getElementById("form_" + id).style.display = "none";
  102. document.getElementById("row_" + id).innerHTML = xmlHttp.responseText;
  103. document.getElementById("done_" + id).innerHTML = "<div class=\"done\">" +lang_edited+ "</div>";
  104. }
  105. }
  106. }
  107. xmlHttp.send(null);
  108. }
  109. // display edit form for editing comment
  110. function editForm(id)
  111. {
  112. var message = document.getElementById("message_" + id).innerHTML;
  113. for(var i=0; i < message.length; i++)
  114. {
  115. if( message.search("%<BR>%") ) message = message.replace("<BR>", "\r"); // Opera uses <BR>
  116. if( message.search("%<br>%") ) message = message.replace("<br>", "\r"); // Gecko uses <br>
  117. message = message.replace("&nbsp;&nbsp;&nbsp;&nbsp;", "\t");
  118. message = message.replace('<span class="highlight">', "").replace('</span>', "");
  119. message = message.replace("&lt;","<").replace("&gt;",">"); // htmlspecialchars() - 0.9.2
  120. }
  121. document.getElementById("textarea_" + id).value = message;
  122. document.getElementById("msg_" + id).innerHTML = "";
  123. document.getElementById("form_" + id).style.display = "block";
  124. }
  125. // check all checkboxes
  126. function checkAll(actName)
  127. {
  128. if(actName == "publish")
  129. {
  130. var name = "comment_publish_ids[]";
  131. var lang_check = lang_checkAll_publish;
  132. var lang_uncheck = lang_uncheckAll_publish;
  133. }
  134. if(actName == "unpublish")
  135. {
  136. var name = "comment_unpublish_ids[]";
  137. var lang_check = lang_checkAll_unpublish;
  138. var lang_uncheck = lang_uncheckAll_unpublish;
  139. }
  140. if(actName == "delete")
  141. {
  142. var name = "comment_delete_ids[]";
  143. var lang_check = lang_checkAll_delete;
  144. var lang_uncheck = lang_uncheckAll_delete;
  145. }
  146. var rows = document.getElementsByTagName('input');
  147. for( var i = 0; i < rows.length; i++ )
  148. {
  149. if(rows[i].name == name)
  150. {
  151. if(rows[i].disabled == false)
  152. rows[i].checked = ( document.getElementById(actName + "_checkLink").checked == true ) ? true : false;
  153. if(document.getElementById(actName + "_checkLink").getAttribute("disabled") == "disabled") // Disabled checkboxes must be unchecked! - 0.9.2
  154. rows[i].checked = false;
  155. }
  156. }
  157. }