Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.63 KB | None | 0 0
  1. var textoCuerpoPopupModal; var tituloPopupModal; var popupModal; var imgPreview; var btnFileUpload; var divDatePicker;
  2. var iptFecha; var hdfNumeroUsuario; var iptNumeroEmpleado; var iptNumeroAutorizacion; var errorFileUpload; var iptFileUploadRequerido;
  3. var cajaLoaderCodigo; var contenedorLoaderCodigo; var loaderCodigo; var ajaxUpload; var btnCancelarSubida;
  4. var hdfPesoMaximoSubirArchivo; var canvasFile; var nameFile; var typeFile;
  5.  
  6. $(document).on('mousedown touchstart', function (e) {
  7. if ($(e.target).closest('.datepicker').length == 0) {
  8. $('.datepicker').hide();
  9. }
  10. });
  11.  
  12.  
  13. $(document).ready(function () {
  14.  
  15. hdfPesoMaximoSubirArchivo = $("#hdfPesoMaximoSubirArchivo");
  16. btnCancelarSubida = $("#btnCancelarSubida");
  17. cajaLoaderCodigo = $("#cajaLoaderCodigo");
  18. contenedorLoaderCodigo = $("#contenedorLoaderCodigo");
  19. loaderCodigo = $("#loaderCodigo");
  20.  
  21. MostrarLoaderCodigo(false);
  22. MostrarLoader(true);
  23.  
  24. iptFileUploadRequerido = $("#iptFileUploadRequerido");
  25. errorFileUpload = $("#errorFileUpload");
  26. iptNumeroAutorizacion = $("#iptNumeroAutorizacion");
  27. iptFecha = $("#iptFecha");
  28. divDatePicker = $("#divDatePicker");
  29. btnFileUpload = $("#btnFileUpload");
  30. imgPreview = $("#imgPreview");
  31. textoCuerpoPopupModal = $("#textoCuerpoPopupModal");
  32. tituloPopupModal = $("#tituloPopupModal");
  33. popupModal = $("#popupModal");
  34.  
  35. imgPreview.off('click').on('click', function () {
  36. PrepararFileUpload();
  37. btnFileUpload.click();
  38. });
  39.  
  40. $("form").validator();
  41. divDatePicker.datepicker({
  42. format: "dd/mm/yyyy",
  43. language: "es",
  44. orientation: "bottom auto",
  45. autoclose: true,
  46. showOnFocus: true,
  47. enableOnReadOnly: true
  48. });
  49.  
  50. iptFecha.click(function () {
  51. $('.datepicker').show();
  52. });
  53. btnCancelarSubida.click(function () { ajaxUpload.abort(); });
  54. MostrarLoader(false);
  55. });
  56.  
  57. function PrepararFileUpload() {
  58. btnFileUpload.fileupload({
  59. maxNumberOfFiles: 1,
  60. disableImageResize: false,
  61. dataType: 'json',
  62. autoUpload: false,
  63. add: function (e, data) {
  64. var archivo = data.files[0];
  65. var extensionArchivo = archivo.name.split('.').pop().toLowerCase();
  66. if ($.inArray(extensionArchivo, ['gif', 'png', 'jpg', 'jpeg', 'ico']) == -1) {
  67. PreparPopupParaErrorValidacionArchivo("Error extensión archivo", "Extensión de archivo no válida, por favor adjunte una imagen.");
  68. popupModal.modal({ keyboard: false, backdrop: 'static' });
  69. }
  70. else {
  71. var size = archivo.size / (1024 * 1024);
  72. if (size <= hdfPesoMaximoSubirArchivo.val()) {
  73. iptFileUploadRequerido.val(archivo.name);
  74. CargarImagenPreview(data);
  75. $("form").validator('validate');
  76. }
  77. else {
  78. PreparPopupParaErrorValidacionArchivo("Error tamaño de archivo", "Debe seleccionar una imagen con un tamaño menor a " + hdfPesoMaximoSubirArchivo.val() + " megas.");
  79. popupModal.modal({ keyboard: false, backdrop: 'static' });
  80. }
  81.  
  82. }
  83. }
  84. });
  85. }
  86.  
  87. function EnviarArchivo_click() {
  88. var noExistenCamposRequeridosSinLlenar = !($("form").validator('validate').data('bs.validator').hasErrors());
  89. if (noExistenCamposRequeridosSinLlenar) {
  90. btnCancelarSubida.removeAttr('disabled');
  91. sendFiles();
  92. }
  93. return false;
  94. }
  95.  
  96. function CargarImagenPreview(data) {
  97. if (data.files && data.files[0]) {
  98. MostrarLoader(true);
  99. var reader = new FileReader();
  100. reader.onload = function (e) {
  101. imgPreview.attr('src', e.target.result);
  102.  
  103. var img = new Image();
  104. img.src = e.target.result;
  105. img.onload = function () {
  106. // CREATE A CANVAS ELEMENT AND ASSIGN THE IMAGES TO IT.
  107. canvas = document.createElement("canvas");
  108. var value = 50;
  109. var MAX_WIDTH = 950;
  110. var MAX_HEIGHT = 950;
  111. var width = img.width;
  112. var height = img.height;
  113.  
  114. if (width > height) {
  115. if (width > MAX_WIDTH) {
  116. height *= MAX_WIDTH / width;
  117. width = MAX_WIDTH;
  118. }
  119. } else {
  120. if (height > MAX_HEIGHT) {
  121. width *= MAX_HEIGHT / height;
  122. height = MAX_HEIGHT;
  123. }
  124. }
  125. // RESIZE THE IMAGES ONE BY ONE.
  126. img.width = width; //(img.width * value) / 100
  127. img.height = height; //(img.height * value) / 100
  128.  
  129. var ctx = canvas.getContext("2d");
  130. ctx.clearRect(0, 0, canvas.width, canvas.height);
  131. canvas.width = img.width;
  132. canvas.height = img.height;
  133. ctx.drawImage(img, 0, 0, img.width, img.height);
  134. nameFile = data.files[0].name;
  135. typeFile = data.files[0].type;
  136.  
  137. MostrarLoader(false);
  138.  
  139. }
  140.  
  141. }
  142.  
  143. reader.readAsDataURL(data.files[0]);
  144. }
  145. }
  146.  
  147. function sendFiles(files) {
  148.  
  149. $('#progressbar div').css('width', '0%');
  150. $('#progressbar').show();
  151.  
  152. MostrarLoader(true);
  153.  
  154. var dataurl = canvas.toDataURL(typeFile);
  155.  
  156. var fileData = dataURItoFile(dataurl, nameFile);
  157. var formdata = new FormData();
  158. formdata.append(nameFile, fileData, nameFile);
  159. ajaxUpload = new XMLHttpRequest();
  160.  
  161. ajaxUpload.open("POST", urlManejadorArchivo);
  162.  
  163. ajaxUpload.upload.addEventListener("progress", progressHandler, false);
  164. ajaxUpload.addEventListener("load", successHandler, false);
  165. ajaxUpload.addEventListener("error", errorHandler, false);
  166. //ajax.addEventListener("load", completeHandler, false);
  167. ajaxUpload.addEventListener("abort", abortHandler, false);
  168. ajaxUpload.setRequestHeader('Cache-Control', false);
  169. MostrarLoader(false);
  170. MostrarLoaderCodigo(true);
  171. ajaxUpload.send(formdata);
  172.  
  173. }
  174.  
  175. function dataURItoFile(dataURI, fileName) {
  176. // convert base64/URLEncoded data component to raw binary data held in a string
  177. var byteString;
  178. if (dataURI.split(',')[0].indexOf('base64') >= 0)
  179. byteString = atob(dataURI.split(',')[1]);
  180. else
  181. byteString = unescape(dataURI.split(',')[1]);
  182.  
  183. // separate out the mime component
  184. var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
  185.  
  186. // write the bytes of the string to a typed array
  187. var ia = new Uint8Array(byteString.length);
  188. for (var i = 0; i < byteString.length; i++) {
  189. ia[i] = byteString.charCodeAt(i);
  190. }
  191.  
  192. return new Blob([ia], { type: mimeString });
  193. }
  194.  
  195. function abortHandler(data) {
  196. data.target.abort();
  197. window.location = "../Puntos/IngresarCodigo.aspx";
  198. }
  199. function cerrarPopup() {
  200. window.location = '../Puntos/IngresarCodigo.aspx';
  201. }
  202. function errorHandler(data) {
  203. MostrarLoaderCodigo(false);
  204. MostrarLoader(false);
  205. PreparPopupParaError();
  206. popupModal.modal({ keyboard: false, backdrop: 'static' });
  207. }
  208. function successHandler(data) {
  209. var huboError = data.target.response.includes("error");
  210. if (huboError) {
  211. console.log(data.target.response);
  212. MostrarLoaderCodigo(false);
  213. MostrarLoader(false);
  214. PreparPopupParaError();
  215. popupModal.modal({ keyboard: false, backdrop: 'static' });
  216. RefrescarElementos();
  217. }
  218. else {
  219. var idFoto = data.target.response;
  220. console.log("GUID del archivo " + data.target.response);
  221. OtorgarPuntosPorVoucher(idFoto);
  222. }
  223. }
  224.  
  225. function progressHandler(data) {
  226. var progress = parseInt(data.loaded / data.total * 100, 10);
  227. if (progress >= 95) {
  228. btnCancelarSubida.attr('disabled', 'true');
  229. }
  230. $('#progressbar div').css('width', progress + '%');
  231. $('#progressbar div').text(progress + '%');
  232. if (progress >= 100) {
  233. MostrarLoader(true);
  234. MostrarLoaderCodigo(false);
  235. }
  236. }
  237.  
  238. function OtorgarPuntosPorVoucher(idFoto) {
  239. var data = { numeroAutorizacion: iptNumeroAutorizacion.val(), idFoto: idFoto, fecha: iptFecha.val() };
  240.  
  241. $.ajax({
  242. type: 'POST',
  243. url: urlOtorgarPuntos,
  244. contentType: "application/json; charset=utf-8", dataType: "json",
  245. data: JSON.stringify(data),
  246. error: function (xhr, ajaxOptions, thrownError) {
  247. MostrarLoader(false);
  248. PreparPopupParaError();
  249. popupModal.modal({ keyboard: false, backdrop: 'static' });
  250. },
  251. beforeSend: function () {
  252. MostrarLoader(true);
  253. MostrarLoaderCodigo(false);
  254. },
  255. success: function (json) {
  256. var huboError = json.d.error;
  257. if (huboError) {
  258. MostrarLoader(false);
  259. PreparPopupParaError();
  260. popupModal.modal({ keyboard: false, backdrop: 'static' });
  261. }
  262. else {
  263. MostrarLoaderCodigo(false);
  264. MostrarLoader(false);
  265. PreparPopupParaExito();
  266. popupModal.modal({ keyboard: false, backdrop: 'static' });
  267. RefrescarElementos();
  268. }
  269. }
  270. });
  271. }
  272.  
  273. function PreparPopupParaExito() {
  274. tituloPopupModal.text("Archivo enviado");
  275. textoCuerpoPopupModal.text("Su archivo ha sido enviado exitosamente");
  276. }
  277. function PreparPopupParaError() {
  278. tituloPopupModal.text("Error envío de archivo");
  279. textoCuerpoPopupModal.text("Hubo un error al enviar el archivo");
  280. }
  281.  
  282. function PreparPopupParaErrorValidacionArchivo(titulo, cuerpo) {
  283. tituloPopupModal.text(titulo);
  284. textoCuerpoPopupModal.text(cuerpo);
  285. }
  286.  
  287. function RefrescarElementos() {
  288. var fechaActual = new Date();
  289. iptFecha.val(fechaActual.getDate() + "/" + (fechaActual.getMonth() + 1) + "/" + fechaActual.getFullYear());
  290. iptNumeroAutorizacion.val(null);
  291. imgPreview.attr('src', '../Imagenes/NC-voucher_btn.png');
  292. iptFileUploadRequerido.val("");
  293. // PrepararFileUpload();
  294. }
  295.  
  296.  
  297. function MostrarLoaderCodigo(seDebeMostrarLoader) {
  298. if (seDebeMostrarLoader) {
  299. contenedorLoaderCodigo.css("display", "block");
  300. cajaLoaderCodigo.css("display", "block");
  301. loaderCodigo.css("display", "block");
  302. }
  303. else {
  304. contenedorLoaderCodigo.css("display", "none");
  305. loaderCodigo.css("display", "none");
  306. cajaLoaderCodigo.css("display", "none");
  307. }
  308. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement