script.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. function newOffer(){
  2. document.getElementById('screen_cover').style.display = 'block';
  3. document.getElementById('form_new_offer').style.display = 'block';
  4. document.getElementById('screen_cover').style.opacity = '0.6';
  5. document.getElementById('form_new_offer').style.opacity = '1';
  6. }
  7. function cancelNewOffer(){
  8. if (confirm("Oferta no agregada. Descartar cambios?")){
  9. closeNewOffer();
  10. }
  11. }
  12. function closeNewOffer(){
  13. document.getElementById('new_offer_title_es').value = '';
  14. document.getElementById('new_offer_title_en').value = '';
  15. document.getElementById('new_offer_title_eu').value = '';
  16. document.getElementById('new_offer_text_es').value = '';
  17. document.getElementById('new_offer_text_en').value = '';
  18. document.getElementById('new_offer_text_eu').value = '';
  19. document.getElementById('new_offer_days').value = '1';
  20. document.getElementById('new_offer_price').value = '0';
  21. document.getElementById('screen_cover').style.display = 'none';
  22. document.getElementById('form_new_offer').style.display = 'none';
  23. document.getElementById('screen_cover').style.opacity = '0';
  24. document.getElementById('form_new_offer').style.opacity = '0';
  25. }
  26. function saveNewOffer(year){
  27. //Get values
  28. var name_es = document.getElementById('new_offer_title_es').value;
  29. var name_en = document.getElementById('new_offer_title_en').value;
  30. var name_eu = document.getElementById('new_offer_title_eu').value;
  31. var text_es = document.getElementById('new_offer_text_es').value;
  32. var text_en = document.getElementById('new_offer_text_en').value;
  33. var text_eu = document.getElementById('new_offer_text_eu').value;
  34. var days = document.getElementById('new_offer_days').value;
  35. var price = document.getElementById('new_offer_price').value;
  36. //Validate values
  37. if (name_es.length == 0){
  38. alert("Debes introducir el nombre, al menos en castellano.");
  39. document.getElementById('new_offer_title_es').focus();
  40. return;
  41. }
  42. if (text_es.length == 0){
  43. alert("Debes introducir una descripcion, al menos en castellano.");
  44. document.getElementById('new_offer_text_es').focus();
  45. return;
  46. }
  47. if (parseInt(price, 10) <= 0){
  48. alert("Debes introducir un precio valido.");
  49. document.getElementById('new_offer_price').focus();
  50. return;
  51. }
  52. if (parseInt(price, 10) <= 1 || parseInt(price, 10) > 6){
  53. alert("Debes introducir un numer valido de dias.");
  54. document.getElementById('new_offer_days').focus();
  55. return;
  56. }
  57. // Encode required values
  58. name_es = encodeURI(name_es);
  59. name_en = encodeURI(name_en);
  60. name_eu = encodeURI(name_eu);
  61. text_es = encodeURI(text_es);
  62. text_en = encodeURI(text_en);
  63. text_eu = encodeURI(text_eu);
  64. // Get page
  65. if(XMLHttpRequest)
  66. var x = new XMLHttpRequest();
  67. else
  68. var x = new ActiveXObject("Microsoft.XMLHTTP");
  69. x.open("POST", "/lablanca/insertoffer.php", true);
  70. var params = "year=" + year + "&name_es=" + name_es + "&name_en=" + name_en + "&name_eu=" + name_eu + "&text_es=" + text_es + "&text_en=" + text_en + "&text_eu=" + text_eu + "&price=" + price + "&days=" + days;
  71. x.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
  72. x.onreadystatechange = function(){
  73. if(x.readyState == 4){
  74. if(x.status == 200)
  75. closeNewOffer();
  76. calculate('prices');
  77. }
  78. }
  79. x.send(params);
  80. }
  81. function calculate(section){
  82. switch (section){
  83. case 'all':
  84. calculate('header');
  85. calculate('prices');
  86. calculate('schedule');
  87. break;
  88. case 'header':
  89. setTimeout(function(){
  90. // Get page
  91. if(XMLHttpRequest)
  92. var x = new XMLHttpRequest();
  93. else
  94. var x = new ActiveXObject("Microsoft.XMLHTTP");
  95. x.open("GET", "/lablanca/calculate.php?section=header", true);
  96. x.send();
  97. x.onreadystatechange = function(){
  98. if(x.readyState == 4){
  99. if(x.status == 200)
  100. document.getElementById('status_header').innerHTML = x.responseText;
  101. }
  102. }
  103. }, 500);
  104. break;
  105. case 'prices':
  106. setTimeout(function(){
  107. // Get page
  108. if(XMLHttpRequest)
  109. var x = new XMLHttpRequest();
  110. else
  111. var x = new ActiveXObject("Microsoft.XMLHTTP");
  112. x.open("GET", "/lablanca/calculate.php?section=pricesprogress", true);
  113. x.send();
  114. x.onreadystatechange = function(){
  115. if(x.readyState == 4){
  116. if(x.status == 200)
  117. document.getElementById('status_prices').innerHTML = x.responseText;
  118. }
  119. }
  120. }, 500);
  121. setTimeout(function(){
  122. // Get page
  123. if(XMLHttpRequest)
  124. var x = new XMLHttpRequest();
  125. else
  126. var x = new ActiveXObject("Microsoft.XMLHTTP");
  127. x.open("GET", "/lablanca/calculate.php?section=pricesoffers", true);
  128. x.send();
  129. x.onreadystatechange = function(){
  130. if(x.readyState == 4){
  131. if(x.status == 200)
  132. document.getElementById('prices_offers').innerHTML = x.responseText;
  133. }
  134. }
  135. }, 700);
  136. break;
  137. case 'schedule':
  138. console.log('Recalculating schedule...');
  139. break;
  140. }
  141. }
  142. function uploadHeaderImage(event, id){
  143. var selectedFile = event.target.files[0];
  144. //Set image on page
  145. var reader = new FileReader();
  146. var imgtag = document.getElementById("header_img");
  147. reader.onload = function(event) {
  148. imgtag.src = event.target.result;
  149. //Upload image;
  150. var formData = new FormData();
  151. var file = document.getElementById('header_img_selector').files[0];
  152. formData.append('img', selectedFile, selectedFile.name);
  153. //for(var pair of formData.entries()) {
  154. // console.log(pair[0]+ ', '+ pair[1]);
  155. //}
  156. //console.log("FD" + formData);
  157. // Get page
  158. if(XMLHttpRequest)
  159. var x = new XMLHttpRequest();
  160. else
  161. var x = new ActiveXObject("Microsoft.XMLHTTP");
  162. x.open("POST", "/lablanca/uploadimage.php?type=header&id=" + id, true);
  163. x.onload = function(){
  164. if(x.readyState == 4){
  165. if(x.status == 200)
  166. console.log("TRUE")
  167. return true;
  168. }
  169. else{
  170. console.log("FASLE");
  171. }
  172. }
  173. x.send(formData);
  174. };
  175. reader.readAsDataURL(selectedFile);
  176. }
  177. function updateField(table, field, value, id, type = 'text', canBeNull = true){
  178. // Get page
  179. if(XMLHttpRequest)
  180. var x = new XMLHttpRequest();
  181. else
  182. var x = new ActiveXObject("Microsoft.XMLHTTP");
  183. x.open("POST", "/lablanca/execute.php", true);
  184. var params = "action=update&table=" + table + "&field=" + field + "&value=" + encodeURI(value) + "&id=" + id + "&type=" + type;
  185. x.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
  186. x.onreadystatechange = function(){
  187. if(x.readyState == 4){
  188. if(x.status == 200)
  189. return true;
  190. }
  191. }
  192. x.send(params);
  193. }
  194. function deleteOffer(id){
  195. // Get page
  196. if(XMLHttpRequest)
  197. var x = new XMLHttpRequest();
  198. else
  199. var x = new ActiveXObject("Microsoft.XMLHTTP");
  200. x.open("POST", "/lablanca/execute.php", true);
  201. var params = "action=delete&table=festival_offer&id=" + id;
  202. x.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
  203. x.onreadystatechange = function(){
  204. if(x.readyState == 4){
  205. if(x.status == 200)
  206. calculate('prices');
  207. }
  208. }
  209. x.send(params);
  210. }