<% --[[ La definición de las versiones de jQuery y jQueryUI que se utilizan, se encuentra en "shared/apps/utils.lua" "LAST" = Versiones - jQuery (3.6.0 "Mar 02, 2021") y jQueryUI (1.13.0 "Oct 07, 2021") "STABLE" = Versiones - jQuery (3.4.1 "May 01, 2019") y jQueryUI (1.12.1 "Sep 14, 2016") ]]-- local m_version = "LAST" local jQuery, jQueryUI = m_utils.jQuery(m_version) %> <%=_T("inConcert OmniChannel - Printing")%> <% --[[ ATENCION: --------- Cada vez que se realice un cambio o se agregue una funcion al objeto "_MAIL", se debe actualizar la funcion "render_pages" del archivo "inconcert\apps\agent\init.lua", para que esta exponga las mismas funciones, y retorne los mismos tipos de datos, cuando se realiza el render de esta pagina. Esta funcion "render_pages" es invocada cuando es realizado el primer login, luego de la actualizacion de un build. Por esto mismo, es que si ejecutamos el codigo desde los fuentes, el error no es visualizado hasta que se instale el build. La forma de probar lo que ejecuta el render en la primera instalacion, sin tener que instalar el build es correr directo la URI desde el navegador, para que pase por la funcion "render_pages", Ej: http://i6.inconcert.cc/inconcert/apps/agent/pages/print.1033.html ]]-- local mailDate = _MAIL.GetDate() local from = _MAIL.GetFrom() local to = _MAIL.GetTo() local cc = _MAIL.GetCC() local bcc = _MAIL.GetBCC() local subject = _MAIL.GetSubject() local body = _MAIL.GetBody() local successParsedBody = "0" local contentType, htmlBody --[[ Esta funcion se encarga de parsear el texto imprimible, que retorna la funcion "_MAIL.GetBody()" Lo que retorna la funcion "_MAIL.GetBody()" es un string con 3 campos separados con un separador ";". Estos campos nos indica si el controller mail.lua ha realizado bien el parseo. El separador de campos es el caracter ";" y los 3 campos que retorna son los siguientes: 1 - El primer campo retorna el valor 1 o 0. El valor 1 nos indica que la impresion se puede realizar. 2 - El segundo campo nos retorna el valor del contentType del html a imprimir, y sus valores posibles son: "text/html" y "text/plain" 3 - El tercer campo contiene el html a imprimir. Ej: ok = "1;text/plain;EL TEXTO A IMPRIMIR" error = "0;;" Nota: Esto se recibe asi como un string con separadores, en lugar de una tabla, porque el cgilua, no permite enviar una tabla, sino un string. ]]-- local function ParseBody() LogInfo("[PRINT.HTML] Parsing body html to print.") local position = body:find(";") if not position then successParsedBody = "0" LogWarning("[PRINT.HTML] Unable to print html, error parsing body html. String not contain ';' separator.") return end successParsedBody = body:sub(0, position - 1) if successParsedBody ~= "1" then successParsedBody = "0" LogWarning("[PRINT.HTML] Unable to print html, error parsing body html. Cannot obtain 'success' field. BODY: %s", body) return end body = body:sub(position + 1) position = body:find(";") if not position then successParsedBody = "0" LogWarning("[PRINT.HTML] Unable to print html, error parsing body html. Cannot obtain 'content type' field. BODY: %s", body) return end contentType = (body:sub(0, position - 1) or ""):lower() if contentType ~= "text/html" and contentType ~= "text/plain" then successParsedBody = "0" LogError("[PRINT.HTML] Unable to print html. Unrecognized content type '%s'.", contentType) return end -- Se ha parseado correctamente el body html htmlBody = body:sub(position + 1) or "" LogInfo("[PRINT.HTML] Successfully parsed body html to print.") end ParseBody() -- Esta funcion valida si la seccion debe ser visualizada o no (CC o BCC) local function CanShowSection(text) return (text or ""):len() == 0 and "none" or "" end local GetContentType = function() return contentType end local GetHTMLBody = function() return htmlBody end %>