checkpoints.js 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. var body = $('body');
  2. body.on('click','#setlast',function() { SetLastActiveCheckType(); });
  3. body.on('click','#remove_checktype',function(){DeleteCheckType();});
  4. body.on('click','#add_new_checkbox',function(){ShowCheckBoxList();});
  5. body.on('click','#add_cb_button',function(){AddNewCheckBox();});
  6. body.on('click','#add_to_task',function(){AddToTask();});
  7. body.on('click','#toggleTWX',function(){toggleTWX();});
  8. body.on('change','#select_CheckBox_list',function(){ShowCheckBox(this);});
  9. body.on('change','select',function()
  10. {
  11. var id = this.options[this.selectedIndex].value;
  12. var empty_contents = false;
  13. if (this.id == 'classes')
  14. {
  15. ShowCheckPointTypeList(id);
  16. }
  17. else if (this.id == 'select_DropList_list' || this.id == 'select_MultiSelect_list' )
  18. {
  19. ShowCheckPointTypeContents();
  20. }
  21. EmptyContents(this);
  22. if ($('#'+this.id).parent().parent()[0].id == 'checkpoint_list')
  23. DeleteCheckTypeDialogShow(1);
  24. });
  25. $("#add_new_list").click(
  26. function() {
  27. AddNewCheckPointTypeDialog(GetActiveClassName());
  28. }
  29. );
  30. $("#send").click(
  31. function(){
  32. AddNewCheckPointType();
  33. }
  34. );
  35. $("#close").click(
  36. function(){
  37. CloseNewClassDialog();
  38. }
  39. );
  40. function toggleTWX() {
  41. var dataarr = new Object();
  42. var cptype = $('#select_CheckBox_list').val();
  43. dataarr["toggletwx"] = cptype;
  44. sendAjax('contents', dataarr);
  45. }
  46. function ShowCheckBox(el) {
  47. //alert ("ShowCheckBox "+el.value);
  48. var dataarr = new Object();
  49. dataarr["showcheckbox"] = el.value;
  50. sendAjax('contents', dataarr);
  51. }
  52. function AddToTask() {
  53. var id = GetActiveCheckTypeID();
  54. var taskType = $("#activeTaskTypeId")[0].getAttribute('data-activeid');
  55. // alert("id "+id+" taskType "+taskType);
  56. sendAjaxForm('result_cont', 'ajax_form', 'response.php?add_to_task='+id+"&taskType="+taskType);
  57. }
  58. function EmptyContents(select) {
  59. if (select.getAttribute( 'data-contentsFlag') != 'noHideContents')
  60. {
  61. $('#contents').html('');
  62. }
  63. }
  64. function ShowCheckPointTypeList(id)
  65. {
  66. if (id == '')
  67. $('#contents').html('');
  68. else
  69. sendAjaxForm('result_cont', 'ajax_form', 'response.php?show='+id);
  70. }
  71. function DeleteCheckTypeDialogShow(val) {
  72. if (parseInt(val) == 0) {
  73. $("#add_to_task").hide();
  74. $("#remove_checktype").hide();
  75. }
  76. else {
  77. var taskType = $("#activeTaskTypeId")[0];
  78. if (taskType != null) {
  79. $("#add_to_task").css("display", "inline-block");
  80. }
  81. $("#remove_checktype").css("display", "inline-block");
  82. }
  83. }
  84. function ShowCheckPointTypeContents()
  85. {
  86. var id = GetActiveCheckTypeID();
  87. sendAjaxForm('contents', 'ajax_form', 'response.php?id='+id);
  88. // if (id == '0')
  89. // $("#remove_checktype").hide();
  90. // else
  91. // $("#remove_checktype").css("display", "inline-block");
  92. //CloseNewClassDialog();
  93. }
  94. function DeleteCheckType() {
  95. var id = GetActiveCheckTypeID();
  96. sendAjaxForm('contents', 'ajax_form', 'response.php?delete_cpt='+id);
  97. ShowCheckPointTypeList(GetActiveClassName());
  98. }
  99. function GetActiveCheckTypeID() {
  100. var name = GetActiveCheckTypeName();
  101. var select = $("#"+name)[0];
  102. return select.options[select.selectedIndex].value;
  103. }
  104. function GetActiveClassName() {
  105. var select = $("#classes")[0];
  106. return select.options[select.selectedIndex].value;
  107. }
  108. function GetActiveCheckTypeName() {
  109. return "select_"+GetActiveClassName()+"_list";
  110. }
  111. function SetLastActiveCheckType() {
  112. var name = GetActiveCheckTypeName();
  113. var select = $("#"+name)[0];
  114. var len = select.options.length;
  115. select.selectedIndex = len-1;
  116. }
  117. var setlast = 0;
  118. function AddNewCheckPointType() {
  119. var name = $('#cb_name').val();
  120. if (name == '')
  121. {
  122. alert('Заполните имя!');
  123. return;
  124. }
  125. var activeClass = GetActiveClassName();
  126. sendAjaxForm('result', 'ajax_form', 'response.php?addcpt='+activeClass+"&name="+name);
  127. CloseNewClassDialog();
  128. ShowCheckPointTypeList(GetActiveClassName());
  129. setlast = 2;
  130. }
  131. function CloseNewClassDialog()
  132. {
  133. $("#class_name").html('');
  134. $("#cont").hide();
  135. }
  136. function AddNewCheckPointTypeDialog(theclass)
  137. {
  138. $("#cont").show();
  139. $("#class_name").show();
  140. $("#class_name").html(theclass);
  141. }
  142. function ShowCheckBoxList()
  143. {
  144. $.ajax({
  145. type: "POST",
  146. url: "response.php",
  147. data: { "show_cb_list": 1},
  148. dataType: "html",
  149. success: function(data){
  150. $("#new_cb_list").html(data);
  151. $("#new_cb_list").append("<input type='button' value='Добавить' id='add_cb_button'>");
  152. },
  153. failure: function(errMsg) {
  154. alert(errMsg);
  155. }
  156. });
  157. }
  158. function AddNewCheckBox()
  159. {
  160. var select = $("#select_cb_template")[0];
  161. var parent_id = GetActiveCheckTypeID();
  162. var cb_id = select.options[select.selectedIndex].value;
  163. $.ajax({
  164. type: "POST",
  165. url: "response.php",
  166. data: { "add_cb": cb_id, "parent_id": parent_id},
  167. dataType: "html",
  168. success: function(data){
  169. sendAjaxForm('contents', 'ajax_form', 'response.php?id='+parent_id);
  170. },
  171. failure: function(errMsg) {
  172. alert(errMsg);
  173. }
  174. });
  175. }
  176. function GetDesc(type)
  177. {
  178. switch (type)
  179. {
  180. case "DropList": desc = type+": Выбор одного значения из списка"; break;
  181. case "CheckBox": desc = type+": Элемент, принимающий 1 из значений: Да/Нет (Например подтвердить наличие огнетушителя)"; break;
  182. case "MultiSelect": desc = type+": Выбор нескольких значений из списка"; break;
  183. case "SerialNumber": desc = type+": Ввод текстовых данных"; break;
  184. }
  185. return desc;
  186. }
  187. function sendAjax(result_form, dataarr, onsuccess = null, url = "response.php") {
  188. // var dict = new Object(); //or Map()
  189. // dict[ dataname ] = datavalue;
  190. $.ajax({
  191. type: "POST",
  192. url: url,
  193. data: dataarr,
  194. dataType: "html",
  195. success: function (data) { //console.log(data);
  196. if (result_form != '' && result_form != null) {
  197. $('#' + result_form).html(data);
  198. }
  199. if (onsuccess != null)
  200. onsuccess(data);
  201. // LoadLocations();
  202. },
  203. failure: function (errMsg) {
  204. alert(errMsg);
  205. },
  206. timeout : 10000000
  207. });
  208. }
  209. function sendAjaxForm(result_form, ajax_form, url) {
  210. $.ajax({
  211. url: url, //url страницы (action_ajax_form.php)
  212. type: "POST", //метод отправки
  213. dataType: "html", //формат данных
  214. data: $("#"+ajax_form).serialize(), // Сеарилизуем объект
  215. success: function(response) { //Данные отправлены успешно
  216. result = response;
  217. $('#'+result_form).html(result);
  218. if (setlast > 0)
  219. {
  220. setlast-- ;
  221. if (setlast == 0)
  222. {
  223. SetLastActiveCheckType();
  224. ShowCheckPointTypeContents();
  225. }
  226. }
  227. //AppendDiv("test333");
  228. },
  229. error: function(response) { // Данные не отправлены
  230. $('#result_form').html('Ошибка. Данные не отправлены.');
  231. }
  232. });
  233. }
  234. function AppendDiv(id) {
  235. $('<div>', { id:id, text: 'Гугли!'}).appendTo('#result_form');
  236. }
  237. function delCheckbox(id, parent_id) {
  238. if (!sure(id, "Удалить вариант "))
  239. return;
  240. $.ajax({
  241. type: "POST",
  242. url: "response.php",
  243. data: { "remove_cb": id, "parent_id": parent_id},
  244. //data: JSON.stringify( markers ),
  245. // contentType: "application/json; charset=utf-8",
  246. dataType: "html",
  247. success: function(data){sendAjaxForm('contents', 'ajax_form', 'response.php?id='+parent_id);},
  248. failure: function(errMsg) {
  249. alert(errMsg);
  250. }
  251. });
  252. }
  253. function changeCheckbox(id) {
  254. alert ('change id '+id);
  255. }