Created
September 17, 2020 00:07
-
-
Save jeznag/977e4207f0f14b0160652ceb34ed8567 to your computer and use it in GitHub Desktop.
updated code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| !function(o) { | |
| var d = null | |
| , l = null; | |
| function n(e) { | |
| e = e || 10; | |
| for (var t = "", a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", i = 0; i < e; ) | |
| t += a.charAt(Math.floor(Math.random() * a.length)), | |
| i++; | |
| return t | |
| } | |
| function e(e) { | |
| if (!o.localStorage) | |
| throw new Error("localStorage not available"); | |
| var t = "BroadcastChannelPoly_" + e | |
| , a = null === d; | |
| return this.channelId = t, | |
| l = l || n(), | |
| (d = d || {})[t] = d[t] || [], | |
| d[t].push(this), | |
| this.name = t + "::::" + n() + (new Date).getTime(), | |
| a && o.addEventListener("storage", i.bind(this), !1), | |
| this | |
| } | |
| function i(e) { | |
| var t = e.key | |
| , a = e.newValue | |
| , i = !a | |
| , n = null; | |
| if (-1 < t.indexOf("eomBCmessage_") && !i) { | |
| try { | |
| n = JSON.parse(a) | |
| } catch (e) { | |
| throw new Error("Unable to parse JsonString") | |
| } | |
| if (n.tabId !== l && n.channelId && d && d[n.channelId]) { | |
| var r = d[n.channelId]; | |
| for (var s in r) | |
| !r[s].closed && r[s].onmessage && r[s].onmessage(n.message); | |
| o.localStorage.removeItem(t) | |
| } | |
| } | |
| } | |
| e.prototype.postMessage = function(e) { | |
| if (e = { | |
| data: e | |
| }, | |
| this.closed) | |
| throw new Error("This BroadcastChannel is closed."); | |
| var t = { | |
| channelId: this.channelId, | |
| bcId: this.name, | |
| tabId: l, | |
| message: e | |
| }; | |
| try { | |
| var a = JSON.stringify(t) | |
| , i = "eomBCmessage_" + n() + "_" + this.channelId; | |
| o.localStorage.setItem(i, a) | |
| } catch (e) { | |
| throw new Error("Unable to parse msgObj") | |
| } | |
| setTimeout(function() { | |
| o.localStorage.removeItem(i) | |
| }, 1e3) | |
| } | |
| , | |
| e.prototype.close = function() { | |
| this.closed = !0; | |
| var e = d[this.channelId].indexOf(this); | |
| -1 < e && d[this.channelId].splice(e, 1), | |
| d[this.channelId].length || delete d[this.channelId], | |
| function(e) { | |
| for (var t in e) | |
| if (e.hasOwnProperty(t)) | |
| return; | |
| return 1 | |
| }(d) && o.removeEventListener("storage", i.bind(this)) | |
| } | |
| , | |
| o.BroadcastChannel = o.BroadcastChannel || e | |
| }(window.self), | |
| function() { | |
| function e(e, a, i, t) { | |
| t.forEach(function(t) { | |
| t in i.prototype && (e.prototype[t] = function() { | |
| return i = this[a], | |
| n = t, | |
| r = arguments, | |
| (e = new Promise(function(e, t) { | |
| var a; | |
| s = i[n].apply(i, r), | |
| a = s, | |
| new Promise(function(e, t) { | |
| a.onsuccess = function() { | |
| e(a.result) | |
| } | |
| , | |
| a.onerror = function() { | |
| t(a.error) | |
| } | |
| } | |
| ).then(e, t) | |
| } | |
| )).request = s, | |
| e; | |
| var i, n, r, s, e | |
| } | |
| ) | |
| }) | |
| } | |
| function t(e, a, t) { | |
| t.forEach(function(t) { | |
| Object.defineProperty(e.prototype, t, { | |
| get: function() { | |
| return this[a][t] | |
| }, | |
| set: function(e) { | |
| this[a][t] = e | |
| } | |
| }) | |
| }) | |
| } | |
| function a(t, a, i, e) { | |
| e.forEach(function(e) { | |
| e in i.prototype && (t.prototype[e] = function() { | |
| return this[a][e].apply(this[a], arguments) | |
| } | |
| ) | |
| }) | |
| } | |
| function s(e) { | |
| this._name = e.name, | |
| this._version = e.version, | |
| this._objectStoreNames = e.objectStoreNames, | |
| this._db = e | |
| } | |
| function i(a) { | |
| this._tx = a, | |
| this.complete = new Promise(function(e, t) { | |
| a.oncomplete = function() { | |
| e() | |
| } | |
| , | |
| a.onerror = function() { | |
| t(a.error) | |
| } | |
| , | |
| a.onabort = function() { | |
| t(a.error) | |
| } | |
| } | |
| ) | |
| } | |
| function n(e) { | |
| this._store = e | |
| } | |
| function r(e) { | |
| this._index = e | |
| } | |
| s.prototype.createObjectStore = function() { | |
| return new n(this._db.createObjectStore.apply(this._db, arguments)) | |
| } | |
| , | |
| s.prototype.transaction = function() { | |
| return new i(this._db.transaction.apply(this._db, arguments)) | |
| } | |
| , | |
| t(s, "_db", ["name", "version", "objectStoreNames"]), | |
| a(s, "_db", IDBDatabase, ["close"]), | |
| i.prototype.objectStore = function() { | |
| return new n(this._tx.objectStore.apply(this._tx, arguments)) | |
| } | |
| , | |
| t(i, "_tx", ["objectStoreNames", "mode"]), | |
| a(i, "_tx", IDBTransaction, ["abort"]), | |
| n.prototype.createIndex = function() { | |
| return new r(this._store.createIndex.apply(this._store, arguments)) | |
| } | |
| , | |
| n.prototype.index = function() { | |
| return new r(this._store.index.apply(this._store, arguments)) | |
| } | |
| , | |
| t(n, "_store", ["name", "keyPath", "indexNames", "autoIncrement"]), | |
| e(n, "_store", IDBObjectStore, ["put", "add", "delete", "clear", "get", "getAll", "getKey", "getAllKeys", "count"]), | |
| t(r, "_index", ["name", "keyPath", "multiEntry", "unique"]), | |
| e(r, "_index", IDBIndex, ["get", "getKey", "getAll", "getAllKeys", "count"]), | |
| self.idbHandler = { | |
| open: function(i, n, r) { | |
| return new Promise(function(a, t) { | |
| var e = indexedDB.open(i, n); | |
| e.onupgradeneeded = function(e) { | |
| if (r) { | |
| var t = new s(e.target.result); | |
| r(t) | |
| } | |
| } | |
| , | |
| e.onerror = function(e) { | |
| t(e.target.result) | |
| } | |
| , | |
| e.onsuccess = function(e) { | |
| var t = new s(e.target.result); | |
| a(t) | |
| } | |
| } | |
| ) | |
| } | |
| } | |
| }(), | |
| function(r) { | |
| var s = { | |
| Threads: 4, | |
| Timeout: 0, | |
| Worker: function(e, t) { | |
| console.log("finished : " + e.data), | |
| t() | |
| } | |
| }; | |
| r.ZReqPool = function(e) { | |
| var t = r.extend({}, s, e) | |
| , a = { | |
| ready: t.Threads, | |
| assign: function() { | |
| a.ready-- | |
| }, | |
| free: function() { | |
| a.ready++, | |
| n.process() | |
| }, | |
| available: function() { | |
| return 0 < a.ready | |
| } | |
| } | |
| , i = [] | |
| , n = { | |
| add: function(e) { | |
| e && (i.push(e), | |
| n.process()) | |
| }, | |
| next: function() { | |
| return i.shift() | |
| }, | |
| flush: function(t) { | |
| t && (i = i.filter(function(e) { | |
| return !t(e) | |
| })) | |
| }, | |
| flushAll: function() { | |
| var e = i; | |
| return i = [], | |
| e | |
| }, | |
| process: function() { | |
| if (a.available()) { | |
| var e = n.next(); | |
| if (e) { | |
| a.assign(); | |
| setTimeout(function() { | |
| t.Worker(e, function() { | |
| a.free() | |
| }) | |
| }, t.Timeout) | |
| } | |
| } | |
| } | |
| }; | |
| return n | |
| } | |
| }(jQuery); | |
| var ZAppUtil = function(e) { | |
| var t; | |
| function a() {} | |
| return a.prototype.Info = function() { | |
| (e.isDevMode() || e.isLogEnabled()) && console.info.apply(window.console, arguments) | |
| } | |
| , | |
| a.prototype.Error = function() { | |
| (e.isDevMode() || e.isLogEnabled()) && console.error.apply(window.console, arguments) | |
| } | |
| , | |
| e.getPatchedString = function(e, a) { | |
| if (!e || "string" != typeof e) | |
| throw new Error("Invalid String"); | |
| if (!a || "object" != typeof a) | |
| throw new Error("Invalid Params object"); | |
| return e.replace(/\$\{\w{1,}\}/g, function(e) { | |
| var t = e.replace(/[${}]/g, ""); | |
| return a[t] | |
| }) | |
| } | |
| , | |
| e.getURLOrigin = function(e) { | |
| var t = e || document.location.href | |
| , a = document.createElement("a"); | |
| return a.setAttribute("href", t), | |
| a.protocol + "//" + a.host | |
| } | |
| , | |
| e.getQueryParams = function(e) { | |
| var i = {}; | |
| e = e || window.location.href; | |
| var t = document.createElement("a"); | |
| t.setAttribute("href", e); | |
| var a = "string" == typeof t.search ? t.search.substr(1) : e.substr(e.indexOf("?") + 1); | |
| return (1 < a.length ? a.split("&") : []).forEach(function(e, t) { | |
| var a = e.split("="); | |
| i[a[0]] = a[1] | |
| }), | |
| i | |
| } | |
| , | |
| e.isURL = function(e) { | |
| return -1 !== e.indexOf("http") | |
| } | |
| , | |
| e.isDevMode = function() { | |
| return localStorage && !!localStorage.getItem("isDevMode") | |
| } | |
| , | |
| e.isLogEnabled = function() { | |
| return localStorage && !!localStorage.getItem("isLogEnabled") | |
| } | |
| , | |
| e.getLogger = function() { | |
| return t && t instanceof a || (t = new a), | |
| t | |
| } | |
| , | |
| e.constructQueryParamsString = function(e) { | |
| var t = []; | |
| for (var a in e) | |
| a && e[a] && t.push(a + "=" + e[a]); | |
| return t.join("&") | |
| } | |
| , | |
| e | |
| }(window.ZAppUtil || {}) | |
| , MessageManager = function(a) { | |
| var u, m = ZAppUtil.getLogger(); | |
| function n(e, t) { | |
| for (var a, i = e.source, n = e.origin, r = u.GetModelStore(), s = document.getElementsByTagName("iframe"), o = 0; o < s.length; o++) | |
| s[o].contentWindow === i && (a = s[o].id); | |
| var d = u.GetAppInstance(a); | |
| if (d) { | |
| if (h(d.resolvedURL) !== h(decodeURIComponent(t.appOrigin))) | |
| throw new Error("Message from Un-Authorized App"); | |
| var l = d.extensionID; | |
| d.state = "REGISTERED", | |
| d.origin = n, | |
| m.Info("App Registered: " + d.location); | |
| var c = u.GetExtensionInstance(l) | |
| , g = { | |
| model: r, | |
| locale: c && c.Locale ? c.Locale : "en", | |
| localeResource: c && c.localeResource, | |
| uniqueID: d.uniqueID | |
| } | |
| , p = u.GetPanelReference(d.uniqueID); | |
| p.initialized = d.initialized = !0, | |
| p.SendEvent("SET_CONTEXT", g), | |
| "function" == typeof d.onload && setTimeout(d.onload.bind(null, [d.config]), window.AppOnLoadDelay || 0) | |
| } else | |
| m.Error("Message from UnAuthorized window arrived.") | |
| } | |
| function r(e, t) { | |
| var a = t.uniqueID | |
| , i = u.GetPanelReference(a) | |
| , n = u.GetAppInstance(a); | |
| n ? (n.initialized = i.initialized = !1, | |
| m.Info("App[" + a + "] DeRegistered successfully"), | |
| "function" == typeof n.onunload && setTimeout(n.onunload.bind(null, [n.config]), window.AppOnUnLoadDelay || 0)) : m.Info("Coult not find App Instance to De-Register.") | |
| } | |
| function s(t, e) { | |
| var a = e.data | |
| , i = e.promiseid | |
| , n = e.uniqueID; | |
| u.ProcessGetRequest(i, n, a).then(function(e) { | |
| o(t.source, t.origin, i, e, !0) | |
| }).catch(function(e) { | |
| o(t.source, t.origin, i, e, !1) | |
| }) | |
| } | |
| function o(e, t, a, i, n) { | |
| var r = { | |
| type: "FRAMEWORK.EVENT", | |
| eventName: "EVENT_RESPONSE", | |
| data: i, | |
| time: (new Date).getTime(), | |
| promiseid: a, | |
| isSuccess: n | |
| }; | |
| e.postMessage(r, t) | |
| } | |
| function h(e) { | |
| var t = document.createElement("a"); | |
| return t.setAttribute("href", e), | |
| t.protocol + "//" + t.host + t.pathname | |
| } | |
| return a.Init = function(e, t) { | |
| if (!e || "object" != typeof e) | |
| throw Error("Invalid Context object passed"); | |
| if (t && "object" != typeof t) | |
| throw Error("Invalid Configuration Passed to MessageHandler"); | |
| return u = e, | |
| function(t) { | |
| try { | |
| var a = "string" == typeof t.data ? JSON.parse(t.data) : t.data | |
| } catch (e) { | |
| a = t.data | |
| } | |
| var e = a.type; | |
| if ("SDK.EVENT" != e) | |
| return; | |
| var i = "SDK.EVENT" === e ? a.eventName : void 0; | |
| try { | |
| if (-1 !== ["REGISTER", "DEREGISTER"].indexOf(i) || function(e, t) { | |
| var a = u.GetAppInstance(t.uniqueID) | |
| , i = document.getElementById(a.uniqueID) | |
| , n = i && i.contentWindow | |
| , r = h(a.resolvedURL) | |
| , s = a.uniqueID | |
| , o = e.source | |
| , d = t.uniqueID | |
| , l = h(decodeURIComponent(t.appOrigin)); | |
| if (n === o && r === l && s === d) | |
| return 1; | |
| throw new Error("Message from UnAuthorized Source") | |
| }(t, a)) | |
| switch (e) { | |
| case "SDK.EVENT": | |
| !function(e, t) { | |
| var a = { | |
| REGISTER: n, | |
| DEREGISTER: r, | |
| HTTP_REQUEST: s | |
| }[t.eventName]; | |
| a && "function" == typeof a ? a(e, t) : function(e) { | |
| var t, a, i = e.eventName, n = e.promiseid, r = e.data, s = e.uniqueID, o = u.GetAppInstance(s), d = u.GetPanelReference(s), l = d && d.getConfig(); | |
| o.extension_id; | |
| if (n) { | |
| var c = document.getElementById(o.location).contentWindow; | |
| t = function(e, t, a, i, n) { | |
| var r = { | |
| type: "FRAMEWORK.EVENT", | |
| eventName: "EVENT_RESPONSE", | |
| promiseid: a, | |
| time: (new Date).getTime(), | |
| data: n | |
| }; | |
| e.postMessage(r, t) | |
| } | |
| .bind(null, c, o.origin, n, i), | |
| a = function(e, t, a, i, n) { | |
| var r = { | |
| type: "FRAMEWORK.EVENT", | |
| eventName: "EVENT_RESPONSE_FAILURE", | |
| promiseid: a, | |
| time: (new Date).getTime(), | |
| data: n | |
| }; | |
| e.postMessage(r, t) | |
| } | |
| .bind(null, c, o.origin, n, i) | |
| } | |
| m.Info("Event from SDK => Eventname : ", i, ", Time : ", e.time, ", Eventpayload : ", r); | |
| var g = { | |
| data: r, | |
| config: l, | |
| callback: t, | |
| callbackFailure: a, | |
| iframe: document.getElementById(o.location) | |
| }; | |
| u.TriggerEventListeners(i, g) | |
| }(t) | |
| }(t, a); | |
| break; | |
| default: | |
| u.InterceptMessage(t, a) | |
| } | |
| } catch (e) { | |
| m.Error("[MessageHandler] => ", e.stack) | |
| } | |
| } | |
| .bind(a) | |
| } | |
| , | |
| a.GetMessenger = function(n) { | |
| return { | |
| SendEvent: function(e, t) { | |
| !function(e) { | |
| if (void 0 !== e) { | |
| var t = u.GetAppInstance(n) | |
| , a = t && t.resolvedURL | |
| , i = document.getElementById(n) && document.getElementById(n).contentWindow; | |
| i && i.postMessage(e, a) | |
| } else | |
| m.Error("Invalid Message.") | |
| }({ | |
| type: "FRAMEWORK.EVENT", | |
| eventName: e, | |
| data: t, | |
| time: (new Date).getTime(), | |
| uniqueID: n | |
| }) | |
| } | |
| } | |
| } | |
| , | |
| a.BroadcastEvent = function(e, t) { | |
| var a = u.GetAllAppInstance(); | |
| for (var i in a) { | |
| var n = u.GetPanelReference(i); | |
| n && n.initialized ? n.SendEvent(e, t) : m.Error("App reference could not be found.") | |
| } | |
| } | |
| , | |
| a | |
| }(window.MessageManager || {}) | |
| , DefaultPluginManager = function(e) { | |
| return e.RenderPanel = function(e) { | |
| var t, a = e.location, i = e.resolvedURL; | |
| return a && "string" == typeof a && (a = t = document.getElementById(a)), | |
| a instanceof HTMLIFrameElement && ((t = a).setAttribute("src", i), | |
| t.setAttribute("id", e.uniqueID)), | |
| t | |
| } | |
| , | |
| e | |
| }(window.DefaultPluginManager || {}) | |
| , ZApp = function(s) { | |
| var v = ZAppUtil.getLogger(); | |
| try { | |
| var o, d, l, w, a, c = !1, t = {}, g = { | |
| devHost: "http://127.0.0.1:5000", | |
| zappsHost: "http://zapps.zohousercontent/appfiles/" | |
| }, i = {}, p = {}, u = {}, m = {}; | |
| function I(e) { | |
| return p[e] | |
| } | |
| function h() { | |
| return p | |
| } | |
| function f(e) { | |
| return u[e] | |
| } | |
| function b(e) { | |
| return i[e] | |
| } | |
| function E(e) { | |
| var t, a; | |
| try { | |
| var i = {} | |
| , n = e ? e.uniqueID : void 0; | |
| n && p[n] ? i = p[n] : (n = e.uniqueID || (a = (new Date).getTime(), | |
| "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) { | |
| var t = (a + 16 * Math.random()) % 16 | 0; | |
| return a = Math.floor(a / 16), | |
| ("x" == e ? t : 3 & t | 8).toString(16) | |
| })), | |
| i.uniqueID = n, | |
| i.url = e.url, | |
| i.config = e.config || {}, | |
| i.location = e.location, | |
| i.extension_id = e.extension_id, | |
| i.extension_version = e.extension_version, | |
| i.resolvedURL = function(e) { | |
| var t, a = e.url, i = ZAppUtil.isDevMode() ? g.devHost : g.zappsHost, n = ZAppUtil.getURLOrigin(), r = { | |
| serviceOrigin: encodeURIComponent(n), | |
| frameorigin: encodeURIComponent(n), | |
| isDevMode: ZAppUtil.isDevMode(), | |
| isLogEnabled: ZAppUtil.isLogEnabled() | |
| }, s = ZAppUtil.constructQueryParamsString(r), o = e.extension_id, d = e.extension_version; | |
| !ZAppUtil.isDevMode() && o && d && (i += "/" + o + "/" + d); | |
| t = ZAppUtil.isURL(a) ? a : i + a; | |
| return t += -1 === t.indexOf("?") ? "?" : "&", | |
| t += s | |
| }(i)), | |
| i.ondemand = e.ondemand, | |
| i.onload = e.onload, | |
| i.onunload = e.onunload, | |
| y(o, i); | |
| var r = l.RenderPanel(i); | |
| r ? r instanceof HTMLIFrameElement && (p[n] = i, | |
| (t = MessageManager.GetMessenger(n)).getConfig = function() { | |
| return e.config | |
| } | |
| , | |
| u[n] = t, | |
| y(d, i)) : i.initialized = !1 | |
| } catch (e) { | |
| v.Error(e) | |
| } | |
| return t | |
| } | |
| function y(e, t) { | |
| return e && "function" == typeof e && e(t) | |
| } | |
| function C(e) { | |
| try { | |
| if ("string" == typeof e && (e = JSON.parse(e)), | |
| "object" != typeof e) | |
| return void v.Error("Invalid extension config passed"); | |
| var t = e.modules | |
| , a = { | |
| version: e.version, | |
| locale: e.locale, | |
| modules: t, | |
| widgets: t ? t.widgets : void 0, | |
| connectors: t ? t.connectors : void 0, | |
| id: e.id, | |
| params: e.params, | |
| modules: void 0 | |
| }; | |
| delete a.modules, | |
| function(e) { | |
| if (e) { | |
| for (var t = e.widgets || [], a = [], i = 0; i < t.length; i++) { | |
| var n = t[i]; | |
| n.extension_id = e.id, | |
| n.extension_version = e.version; | |
| var r = E(n); | |
| r && a.push(r) | |
| } | |
| return e.panelRefs = a | |
| } | |
| v.Error("Invalid Extension data passed.") | |
| }(a), | |
| i[e.id] = a | |
| } catch (e) { | |
| v.Error("Error in Loading App Data ", e) | |
| } | |
| } | |
| function A(e, t) { | |
| "function" == typeof a && a(e, t) | |
| } | |
| var _ = {}; | |
| function W() { | |
| return t | |
| } | |
| function P(m, h, f) { | |
| return new Promise(function(e, t) { | |
| try { | |
| v.Info("ProcessGetRequest : PromiseID: ", m, ", Options: ", f); | |
| var a = f.url | |
| , i = f.type | |
| , n = f.data | |
| , r = f.postBody | |
| , s = f.headers | |
| , o = f.contentType || "application/text" | |
| , d = f.dataType || "text" | |
| , l = I(h) | |
| , c = b(l && l.extension_id); | |
| if ("object" == typeof c) { | |
| var g = function(e) { | |
| if (!Array.isArray(e)) | |
| throw new Error("Invalid params array"); | |
| for (var t = {}, a = 0; a < e.length; a++) { | |
| var i = e[a].name | |
| , n = e[a].value; | |
| t[i] = n | |
| } | |
| return t | |
| }(c.params); | |
| a = ZAppUtil.getPatchedString(a, g), | |
| n = n ? function(e, t) { | |
| if (!e || "object" != typeof e) | |
| return; | |
| if (t && "object" == typeof t) | |
| return JSON.parse(ZAppUtil.getPatchedString(JSON.stringify(e), t)); | |
| throw new Error("Invalid Params object") | |
| }(n, g) : void 0 | |
| } | |
| var p = ""; | |
| n && "object" == typeof n && (p = Object.keys(n).map(function(e) { | |
| return e + "=" + n[e] | |
| }).join("&")); | |
| var u = { | |
| requestURL: a, | |
| requestType: i, | |
| queryParams: p, | |
| headers: s, | |
| postBody: r || "", | |
| contentType: o, | |
| dataType: d | |
| }; | |
| if ("function" != typeof w) | |
| throw new Error("Provide Request handler implementation in the Bootstrap."); | |
| w(u, e, t) | |
| } catch (e) { | |
| v.Error("ProcessGetRequest : Error => ", e), | |
| t(e) | |
| } | |
| } | |
| ) | |
| } | |
| function R(e) { | |
| return ZAppUtil.isDevMode(), | |
| {} | |
| } | |
| return s.Bootstrap = function(e) { | |
| var t, a, i; | |
| v.Info("Running in Dev Mode : ", ZAppUtil.isDevMode()); | |
| try { | |
| if (!e || "object" != typeof e) | |
| throw new Error("Invalid configurations passed to Bootstrap."); | |
| l = e.PluginManager || DefaultPluginManager, | |
| w = e.RequestHandler, | |
| o = e.preRenderApp, | |
| d = e.postRenderApp, | |
| $.extend(g, e.serverConfig), | |
| m.ProcessGetRequest = P, | |
| m.Logger = v, | |
| m.GetLocaleResource = R, | |
| m.GetAppInstance = I, | |
| m.GetAllAppInstance = h, | |
| m.GetPanelReference = f, | |
| m.GetExtensionInstance = b, | |
| m.GetModelStore = W, | |
| m.InterceptMessage = A, | |
| m.TriggerEventListeners = function(e, t) { | |
| var a = _[e]; | |
| if (Array.isArray(a)) | |
| for (var i = 0; i < a.length; i++) | |
| a[i](t) | |
| } | |
| ; | |
| var n = e.EventListeners || {}; | |
| for (var r in n) | |
| i = n[a = r], | |
| _.hasOwnProperty(a) || (_[a] = []), | |
| _[a].push(i); | |
| return t = MessageManager.Init(m), | |
| window.addEventListener("message", t), | |
| c = !0, | |
| ZAppUtil.isDevMode() && new Promise(function(t, a) { | |
| var e = g.devHost + "/plugin-manifest.json"; | |
| $.support.cors = !0, | |
| $.ajax({ | |
| type: "GET", | |
| url: e, | |
| dataType: "json", | |
| success: function(e) { | |
| t(e) | |
| }, | |
| error: function(e) { | |
| var t; | |
| t = e, | |
| v.Error("Error occured while trying to Get plugin-manifest.json : ", t), | |
| a(e) | |
| } | |
| }) | |
| } | |
| ).then(function(e) { | |
| var t = e.modules; | |
| C({ | |
| locale: e.locale, | |
| modules: t, | |
| widgets: t ? t.widgets : void 0, | |
| connectors: t ? t.connectors : void 0, | |
| id: e.id || "00000000", | |
| params: e.params | |
| }) | |
| }).catch(function(e) { | |
| v.Error("Error occured while loading Meta data. Error: ", e.message) | |
| }), | |
| s | |
| } catch (e) { | |
| v.Error("Error occured while Initiating Framework : ", e.message) | |
| } | |
| } | |
| , | |
| s.isInitialized = function() { | |
| return c | |
| } | |
| , | |
| s.LoadExtension = function(e) { | |
| if (!ZAppUtil.isDevMode()) | |
| return C(e); | |
| v.Info("Running in Dev mode so can't Load the Extension.") | |
| } | |
| , | |
| s.LoadApp = function(e) { | |
| if (v.Info("Load App : [ " + e.url + "," + e.location + "]"), | |
| !ZAppUtil.isDevMode()) | |
| return E(e); | |
| v.Info("Running in Dev mode so can't Load the app.") | |
| } | |
| , | |
| s.RenderApps = function(e, t) { | |
| for (var a in v.Info("Render Apps with LocationID => ", e), | |
| "string" == typeof e && (e = [e]), | |
| p) | |
| try { | |
| var i = p[a] | |
| , n = i.location | |
| , r = i.ref; | |
| if (e && -1 === e.indexOf(n)) | |
| continue; | |
| if (r && r.initialized) | |
| continue; | |
| E(i) | |
| } catch (e) { | |
| v.Error("Exception while Rendering Panel ==> ", a, ".", e) | |
| } | |
| } | |
| , | |
| s.GetAppInstance = I, | |
| s.GetAllAppInstance = h, | |
| s.isDevMode = ZAppUtil.isDevMode, | |
| s.SetModel = function(e) { | |
| return t = e, | |
| !0 | |
| } | |
| , | |
| s.UpdateModel = function(e) { | |
| return t | |
| } | |
| , | |
| s.GetModel = function(e) { | |
| return t[e] | |
| } | |
| , | |
| s.BroadcastEvent = function(e, t) { | |
| MessageManager.BroadcastEvent(e, t) | |
| } | |
| , | |
| s.getLogger = ZAppUtil.getLogger, | |
| s.version = "0.7.0", | |
| s | |
| } catch (e) { | |
| v.Error("Error Occured ", e.message) | |
| } | |
| }(window.ZApp || {}) | |
| , CrmWidgets = function() { | |
| var p, h = {}, a = {}, f = { | |
| NAME: "WIDGET_DB", | |
| OBJECT_STORE_NAME: "WIDGET_REQUEST_TRACKER" | |
| }, v = { | |
| CLEANUP_DELAY: 1e4, | |
| HASHING_METHOD: "SHA-256" | |
| }, w = { | |
| CHANNEL: "WIDGET_TELEPHONY_RESULT_CHANNEL", | |
| REPETITION: 4, | |
| INTRAVEL: 400 | |
| }, I = idbHandler.open(f.NAME, 1, function(e) { | |
| e.createObjectStore(f.OBJECT_STORE_NAME) | |
| }); | |
| function b(a) { | |
| var e = a.requestHash | |
| , t = h[e]; | |
| t && t instanceof Array && (t.each(function(e) { | |
| var t = e.cachedPromise; | |
| "DONE" === a.status ? t.done(a.response) : t.fail(a.response), | |
| clearTimeout(e.setTimeoutID) | |
| }), | |
| delete h[e]) | |
| } | |
| var i = new BroadcastChannel(w.CHANNEL); | |
| function s(e, t) { | |
| var a, i = function(e) { | |
| if (window.TextEncoder) | |
| return new TextEncoder("utf-8").encode(e); | |
| for (var t = unescape(encodeURIComponent(e)), a = new Uint8Array(t.length), i = t.length, n = 0; n < i; n++) | |
| a[n] = t.charCodeAt(n); | |
| return a | |
| }(t); | |
| if (window.crypto) | |
| a = window.crypto.subtle.digest(e, i); | |
| else if (window.msCrypto) { | |
| var n; | |
| a = new Promise(function(e) { | |
| n = e | |
| } | |
| ), | |
| window.msCrypto.subtle.digest(e, i).oncomplete = function(e) { | |
| n(e.target.result) | |
| } | |
| } | |
| return a.then(function(e) { | |
| return Array.from(new Uint8Array(e)).map(function(e) { | |
| return ("00" + e.toString(16)).slice(-2) | |
| }).join("") | |
| }) | |
| } | |
| function u(e, t) { | |
| if (e instanceof Object) { | |
| var a = { | |
| "x-ratelimit-remaining": t.getResponseHeader("x-ratelimit-remaining"), | |
| "x-ratelimit-limit": t.getResponseHeader("x-ratelimit-limit"), | |
| "x-ratelimit-reset": t.getResponseHeader("x-ratelimit-reset") | |
| }; | |
| e.$responseHeaders = a | |
| } | |
| } | |
| function t(a) { | |
| return CrmWidgets.Utils.isMobileWidget() || "21" != a.context.TYPE ? Promise.resolve(a) : I.then(function(e) { | |
| return i = e.transaction(f.OBJECT_STORE_NAME, "readwrite"), | |
| (n = i.objectStore(f.OBJECT_STORE_NAME)).get(a.requestHash) | |
| }).then(function(e) { | |
| var t = (new Date).getTime(); | |
| return !e || Math.abs(t - e) > v.CLEANUP_DELAY + 1e3 ? (n.put(t, a.requestHash), | |
| a.broadcastResult = !0) : a.handlerType = "DEFER", | |
| i.complete | |
| }).then(function() { | |
| return a | |
| }); | |
| var i, n | |
| } | |
| i.onmessage = function(e) { | |
| var t = e.data; | |
| if (t && t.action) | |
| switch (t.action) { | |
| case "mimicResponse": | |
| b(t.data) | |
| } | |
| } | |
| ; | |
| function n(c) { | |
| function g(e, t) { | |
| var a = new CrmWidgets.Exceptions.InternalServerException; | |
| if (400 === t.status || 403 === t.status) { | |
| a = t.responseJSON || t.responseText; | |
| var i = alert; | |
| CrmWidgets.Utils.isMobileWidget() && a && a.constructor === {}.constructor && a.code && "REQUIRED_HEADER_MISSING" === a.code && i("Kindly update your app for the feature to work") | |
| } else | |
| 401 === t.status ? a = new CrmWidgets.Exceptions.AuthorizationException : 429 === t.status && (a = new CrmWidgets.Exceptions.LimitException); | |
| u(a, t), | |
| e(a, !0) | |
| } | |
| return { | |
| setKeySpec: function(e) { | |
| if (!(e && e instanceof Object && e.iv && e.secret)) | |
| throw new CrmWidgets.Exceptions.InvalidKeySpec; | |
| p = { | |
| iv: CryptoJS.enc.Hex.parse(e.iv), | |
| key: CryptoJS.enc.Hex.parse(e.secret), | |
| handShake: e.handShake, | |
| orgId: e["X-CRM-ORG"] | |
| } | |
| }, | |
| getHandShakeToken: function() { | |
| if (p && p instanceof Object && p.handShake) | |
| return p.handShake | |
| }, | |
| makeRequest: function(e, t, a, r, i) { | |
| var n = a instanceof FormData | |
| , s = { | |
| widget_id: c.ID, | |
| widget_name: encodeURIComponent(c.NAME) | |
| } | |
| , o = { | |
| "X-ZOHO-SERVICE": "widget", | |
| "X-ZOHO-SERVICE-DETAILS": JSON.stringify(s) | |
| }; | |
| "undefined" != typeof Crm && void 0 !== Crm.userDetails.CLIENT_PORTAL_NAME && (o["X-CRMPORTAL"] = Crm.userDetails.CLIENT_PORTAL_NAME), | |
| "undefined" != typeof csrfToken ? o["X-ZCSRF-TOKEN"] = csrfParamName + "=" + csrfToken : CrmWidgets.Utils.isMobileWidget() && (o.Authorization = CrmWidgets.Utils.getDeviceToken(p), | |
| p && p.orgId && (o["X-CRM-ORG"] = p.orgId)); | |
| var d = {}; | |
| a && "stream" === a.RESPONSE_TYPE && (d.responseType = "blob", | |
| delete a.RESPONSE_TYPE); | |
| var l = { | |
| type: e, | |
| url: t, | |
| data: a, | |
| headers: o, | |
| contentType: !n && void 0, | |
| processData: !n && void 0, | |
| xhrFields: d, | |
| cachedPromise: { | |
| done: r, | |
| fail: i | |
| }, | |
| success: function(t, e, a) { | |
| var i, n; | |
| if ("string" == typeof t) | |
| try { | |
| i = jQuery.parseJSON(t) | |
| } catch (e) { | |
| i = t | |
| } | |
| else | |
| i = t; | |
| if (200 === a.status || 201 === a.status || 202 === a.status) | |
| n = i; | |
| else if (204 === a.status) { | |
| n = { | |
| status: a.status, | |
| statusText: a.statusText | |
| } | |
| } | |
| n && (u(n, a), | |
| r(n)) | |
| }, | |
| error: g.bind(null, i) | |
| }; | |
| CrmWidgets.APIHelper.RequestPool.add({ | |
| category: c.ID, | |
| context: c, | |
| obj: l | |
| }) | |
| }, | |
| makeAjax: function(e, t, a, i, n) { | |
| var r = { | |
| widget_id: c.ID, | |
| widget_name: encodeURIComponent(c.NAME) | |
| } | |
| , s = { | |
| "X-ZOHO-SERVICE": "widget", | |
| "X-ZOHO-SERVICE-DETAILS": JSON.stringify(r) | |
| }; | |
| "undefined" != typeof Crm && void 0 !== Crm.userDetails.CLIENT_PORTAL_NAME && (s["X-CRMPORTAL"] = Crm.userDetails.CLIENT_PORTAL_NAME), | |
| "undefined" != typeof csrfToken ? s["X-ZCSRF-TOKEN"] = csrfParamName + "=" + csrfToken : CrmWidgets.Utils.isMobileWidget() && (s.Authorization = CrmWidgets.Utils.getDeviceToken(p), | |
| p && p.orgId && (s["X-CRM-ORG"] = p.orgId)); | |
| var o = {}; | |
| a && "stream" === a.RESPONSE_TYPE && (o.responseType = "blob", | |
| delete a.RESPONSE_TYPE); | |
| var d = { | |
| type: e, | |
| url: t, | |
| data: JSON.stringify(a), | |
| processData: !1, | |
| contentType: "application/json", | |
| headers: s, | |
| xhrFields: o, | |
| success: function(e) { | |
| i(e) | |
| }, | |
| error: g.bind(null, n) | |
| }; | |
| CrmWidgets.APIHelper.RequestPool.add({ | |
| category: c.ID, | |
| context: c, | |
| obj: d | |
| }) | |
| }, | |
| get: function(a, i) { | |
| var n = this; | |
| return new Promise(function(e, t) { | |
| n.makeRequest("GET", a, i, e, t) | |
| } | |
| ) | |
| }, | |
| put: function(a, i) { | |
| var n = this; | |
| return new Promise(function(e, t) { | |
| n.makeRequest("PUT", a, i, e, t) | |
| } | |
| ) | |
| }, | |
| post: function(a, i) { | |
| var n = this; | |
| return new Promise(function(e, t) { | |
| n.makeRequest("POST", a, i, e, t) | |
| } | |
| ) | |
| }, | |
| del: function(a, i) { | |
| var n = this; | |
| return new Promise(function(e, t) { | |
| n.makeRequest("DELETE", a, i, e, t) | |
| } | |
| ) | |
| }, | |
| ajax: function(a, i, n) { | |
| var r = this; | |
| return new Promise(function(e, t) { | |
| r.makeAjax(a, i, n, e, t) | |
| } | |
| ) | |
| } | |
| } | |
| } | |
| return { | |
| Exceptions: { | |
| PermissionException: function(e) { | |
| this.message = "Permission Denied for widget", | |
| this.code = "403", | |
| this.detail = e | |
| }, | |
| AuthorizationException: function(e) { | |
| this.message = "Authorization Exception", | |
| this.code = "403", | |
| this.detail = e | |
| }, | |
| LimitException: function(e) { | |
| this.message = "API Limit Exception", | |
| this.code = "429", | |
| this.detail = e | |
| }, | |
| InternalServerException: function(e) { | |
| this.message = "Internal Server Error", | |
| this.code = "500", | |
| this.detail = e | |
| }, | |
| InvalidKeySpec: function(e) { | |
| this.message = "Invalid Key Sepc provided", | |
| this.code = "400", | |
| this.detail = e | |
| }, | |
| invalidTokenReceived: function(e) { | |
| this.message = "Invalid Token received", | |
| this.code = "400", | |
| this.detail = e | |
| }, | |
| widgetInterfaceException: function(e) { | |
| this.code = e, | |
| this.Message = { | |
| 200: "Success", | |
| 401: "Authentication Failure", | |
| 404: "Invalid Module API Name", | |
| 403: "Permission Denied" | |
| }[e] | |
| } | |
| }, | |
| Utils: { | |
| getCrmBasePath: function() { | |
| return Crm && Crm.getCrmBasePath instanceof Function ? Crm.getCrmBasePath() : "/crm" | |
| }, | |
| isMobileWidget: function() { | |
| return !!CrmWidgets.Utils.getJSInterface() | |
| }, | |
| getJSInterface: function() { | |
| if ("undefined" != typeof WidgetJSInterface) | |
| return WidgetJSInterface; | |
| if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.WidgetJSInterface) { | |
| var t = prompt; | |
| return { | |
| getOauthToken: function() { | |
| var e = { | |
| action: "getOauthToken", | |
| handShake: arguments[0] | |
| }; | |
| return t(JSON.stringify(e)) | |
| }, | |
| openDetailsView: function() { | |
| var e = { | |
| action: "openDetailsView", | |
| handShake: arguments[0], | |
| Entity: arguments[1], | |
| RecordID: arguments[2] | |
| }; | |
| return t(JSON.stringify(e)) | |
| }, | |
| editRecord: function() { | |
| var e = { | |
| action: "editRecord", | |
| handShake: arguments[0], | |
| Entity: arguments[1], | |
| RecordID: arguments[2] | |
| }; | |
| return t(JSON.stringify(e)) | |
| }, | |
| addRecord: function() { | |
| var e = { | |
| action: "addRecord", | |
| handShake: arguments[0], | |
| Entity: arguments[1] | |
| }; | |
| return t(JSON.stringify(e)) | |
| }, | |
| openWebTabWidget: function() { | |
| var e = { | |
| action: "openWebTabWidget", | |
| handShake: arguments[0], | |
| webTabSysRefName: arguments[1], | |
| customPageLoadData: arguments[2] | |
| }; | |
| return t(JSON.stringify(e)) | |
| } | |
| } | |
| } | |
| }, | |
| PermissionHandler: function(t) { | |
| return { | |
| authorize: function(e) { | |
| if (-1 === t.indexOf(e)) | |
| throw new CrmWidgets.Exceptions.PermissionException({ | |
| OperationPerformed: e, | |
| OperationsAllowed: t | |
| }) | |
| } | |
| } | |
| }, | |
| VersionHandler: function(e) { | |
| return { | |
| isBeta: function() { | |
| return !e | |
| } | |
| } | |
| }, | |
| DeepFreeze: function(a) { | |
| return Object.getOwnPropertyNames(a).forEach(function(e) { | |
| var t = a[e]; | |
| null !== t && "object" == typeof t && CrmWidgets.Utils.DeepFreeze(t) | |
| }), | |
| Object.freeze(a) | |
| }, | |
| GetTabNameFromSysRef: function(e) { | |
| if (!this.SysRefVSTabName) { | |
| this.SysRefVSTabName = {}; | |
| var t = Crm.userDetails.MODULE_LIST; | |
| for (module in t) | |
| this.SysRefVSTabName[t[module].api_name] = module | |
| } | |
| var a = this.SysRefVSTabName[e]; | |
| if (a) | |
| return a | |
| }, | |
| GetSysRefFromTabName: function(e) { | |
| var t = Crm.userDetails.MODULE_LIST[e]; | |
| if (t) | |
| return t.api_name | |
| }, | |
| GetTabIDFromTabName: function(e) { | |
| var t = Crm.userDetails.MODULE_LIST[e]; | |
| if (t) | |
| return t.id | |
| }, | |
| requestFlusher: function(t) { | |
| CrmWidgets.APIHelper.RequestPool.flush(function(e) { | |
| if (e.category === t) | |
| return !0 | |
| }) | |
| }, | |
| hideLoading: function() { | |
| $(this).removeClass("widget_Frame_loading") | |
| }, | |
| forceLoadStartupWidget: function() { | |
| WidgetHandler.PopUp.render(WidgetHandler.WidgetConfig.Startup, { | |
| ButtonPosition: "startup" | |
| }, "startup", !0) | |
| }, | |
| resolveConnectorAuthorize: function(e) { | |
| var t = a[e]; | |
| t && t.resolve() | |
| }, | |
| rejectConnectorAuthorize: function(e) { | |
| var t = a[e]; | |
| t && (t.reject("authorize failed"), | |
| delete a[e]) | |
| }, | |
| addConnectorAuthorizePromise: function(e, t) { | |
| a[e] = t | |
| }, | |
| getDeviceToken: function(e) { | |
| var t; | |
| try { | |
| var a = CrmWidgets.Utils.getJSInterface().getOauthToken(e.handShake); | |
| if (!e) | |
| throw new CrmWidgets.Exceptions.InvalidKeySpec("Key Spec missing"); | |
| if (!a) | |
| throw new CrmWidgets.Exceptions.invalidTokenReceived("Device Token not received"); | |
| var i = CryptoJS.AES.decrypt(a, e.key, { | |
| iv: e.iv, | |
| padding: CryptoJS.pad.Pkcs7, | |
| mode: CryptoJS.mode.CBC | |
| }); | |
| if (i) { | |
| var n = i.toString(CryptoJS.enc.Utf8); | |
| if (n && "" != n) | |
| return "Zoho-oauthtoken " + n | |
| } | |
| t = "Device Token Decryption Failure" | |
| } catch (e) { | |
| t = "Device Token Decryption Failure" | |
| } | |
| throw new CrmWidgets.Exceptions.invalidTokenReceived(t) | |
| }, | |
| GetCustomSettingsIDbyAPI: function(e) { | |
| if (!this.CustomSettingsApiVsId) { | |
| this.CustomSettingsApiVsId = {}; | |
| var t = WidgetHandler.WidgetConfig.Setup; | |
| for (widget in t) | |
| this.CustomSettingsApiVsId[t[widget].API_NAME] = widget | |
| } | |
| var a = this.CustomSettingsApiVsId[e]; | |
| if (a) | |
| return a | |
| }, | |
| openWebTab: function(e, t, a, i) { | |
| return CrmWidgets.Utils.lyteTransitTo(t, a, "crm.tab.module.index-module", i), | |
| !0 | |
| }, | |
| lyteTransitTo: function(e, t, a, i) { | |
| var n = { | |
| route: a, | |
| dynamicParams: [e], | |
| queryParams: { | |
| widgetparams: JSON.stringify(t) | |
| } | |
| }; | |
| if ("_blank" === i) { | |
| var r = Lyte.Router.getURL(n); | |
| Utils.openUrl(r, "_blank") | |
| } else | |
| Lyte.Router.transitionTo(n) | |
| }, | |
| deleteEntityFromCache: function(e) { | |
| if (!CrmWidgets.Utils.isMobileWidget()) { | |
| var t = this.GetTabNameFromSysRef(e); | |
| crmTab.deleteFromCache(t) | |
| } | |
| }, | |
| refreshNotesInUI: function(e, t) { | |
| CrmWidgets.Utils.isMobileWidget() || Notes.loadNotes(t, void 0, e, "") | |
| }, | |
| getAudioNotifier: function() { | |
| return this.AudioNotifier || (this.AudioNotifier = new Audio("/Platform/audio/Bell.wav")), | |
| this.AudioNotifier | |
| }, | |
| getDimensionCss: function(e, t) { | |
| var a = {} | |
| , i = /^[0-9\s]*[\s]?%/ | |
| , n = t.ALLOWED_PROP; | |
| return isNaN(e.height) && isNaN(e.width) ? (i.test(e.height) || i.test(e.width)) && (-1 !== n.indexOf("HEIGHT") && i.test(e.height) && (a.height = parseInt(e.height.replace("%")) / 100, | |
| a.height *= window.innerHeight), | |
| -1 !== n.indexOf("WIDTH") && i.test(e.width) && (a.width = parseInt(e.width.replace("%")) / 100, | |
| a.width *= window.innerWidth)) : (-1 !== n.indexOf("HEIGHT") && (void 0 !== t.MAX_HEIGHT ? a.height = e.height <= t.MAX_HEIGHT ? e.height : t.MAX_HEIGHT : a.height = e.height), | |
| -1 !== n.indexOf("WIDTH") && (void 0 !== t.MAX_WIDTH ? a.width = e.width <= t.MAX_WIDTH ? e.width : t.MAX_WIDTH : a.width = e.width)), | |
| a | |
| } | |
| }, | |
| APIHelper: { | |
| APISpec: { | |
| AddNotes: "/crm/v2/{0}/{1}/Notes", | |
| AttachFileToNotes: "/crm/v2/Notes/{2}/Attachments", | |
| AddAttachment: "/crm/v2/{0}/{1}/Attachments", | |
| InsertRecord: "/crm/v2/{0}", | |
| UpsertRecord: "/crm/v2/{0}/upsert", | |
| GetRecordById: "/crm/v2/{0}/{1}", | |
| GetAllRecord: "/crm/v2/{0}", | |
| GetMultipleRecord: "/crm/v2/{0}", | |
| UpdateRecord: "/crm/v2/{0}", | |
| DeleteRecord: "/crm/v2/{0}/{1}", | |
| DeleteRecords: "/crm/v2/{0}", | |
| queryRecord: "/crm/v2/coql", | |
| roles: "/crm/v2/settings/roles", | |
| specificRole: "/crm/v2/settings/roles/{0}", | |
| SearchRecord: "/crm/v2/{0}/search", | |
| InvokeConnector: "/crm/connectorAPI/execute.do?nameSpace={0}", | |
| InvokeCrmConnection: "/crm/v2/connections/{0}/actions/invoke", | |
| ExecuteFunction: "/crm/v2/functions/{0}/actions/execute", | |
| GetOrgVariable: "/crm/getOrgVariable.do?orgVariable={0}", | |
| GetUsers: "/crm/v2/users", | |
| GetUser: "/crm/v2/users/{0}", | |
| GetOrgInfo: "/crm/v2/org", | |
| GetRelatedRecords: "/crm/v2/{0}/{1}/{2}", | |
| GetRelatedRecords_email: "/crm/v2/{0}/{1}/{2}/{3}", | |
| UpdateRelatedList: "/crm/v2/{0}/{1}/{2}/{3}", | |
| UpdateRelatedList_photo: "/crm/v2/{0}/{1}/{2}", | |
| GetFields: "/crm/v2/settings/fields?module={0}", | |
| GetModuleList: "/crm/v2/settings/modules", | |
| GetAssignmentRules: "/crm/v2/settings/assignment_rules/{0}", | |
| GetLayouts: "/crm/v2/settings/layouts?module={0}", | |
| GetLayout: "/crm/v2/settings/layouts/{0}?module={1}", | |
| GetRelatedList: "/crm/v2/settings/related_lists?module={0}", | |
| GetCustomViews: "/crm/v2/settings/custom_views?module={0}", | |
| GetCustomView: "/crm/v2/settings/custom_views/{0}?module={1}", | |
| GetEmailFromAliases: "/crm/v2/settings/emails/from_aliases", | |
| GetAllProfiles: "/crm/v2/settings/profiles", | |
| GetAllTemplates: "/crm/v2/settings/templates?type={0}&module={1}"", | |
| GetProfile: "/crm/v2/settings/profiles/{0}", | |
| UpdateProfile: "/crm/v2/settings/profiles/{0}", | |
| EnableAccountAccess: "/crm/enableAccountAccess.do", | |
| Blueprint: "/crm/v2/{0}/{1}/actions/blueprint", | |
| ZfsFile: "/crm/v2/files", | |
| ViewAllActions: "/crm/v2/{0}/{1}/actions", | |
| GetApprovalRecords: "/crm/v2/Approvals", | |
| GetApprovalActions: "/crm/v2/{0}/{1}/actions/approvals?action={2}", | |
| GetAuthorizeUrl: "/market/getConnectorAuthorizeMap.do?connectorNS={0}", | |
| GetRevokeUrl: "/market/revokeAuthToken.do?connectorNS={0}", | |
| GetSendmailUrl: "/crm/v2/{0}/{1}/actions/send_mail", | |
| UpdateVoiceURL: "/crm/v2/phonebridge/voiceurl?callactivityid={0}&voiceurl={1}" | |
| }, | |
| generatorURL: function() { | |
| for (var e = arguments[0], t = arguments.length, a = 0; a < t - 1; a += 1) { | |
| var i = new RegExp("\\{" + a + "\\}","gm"); | |
| e = e.replace(i, arguments[a + 1]) | |
| } | |
| return e | |
| }, | |
| RequestPool: new $.ZReqPool({ | |
| Worker: function(a, m) { | |
| var e = a.obj; | |
| (a && a.context && a.context.CONFIG && "21" == a.context.CONFIG.TYPE ? function(e) { | |
| var t, a = JSON.stringify({ | |
| data: e.data, | |
| type: e.type, | |
| url: e.url | |
| }); | |
| switch (v.HASHING_METHOD) { | |
| case "SHA-256": | |
| t = s("SHA-256", a); | |
| break; | |
| default: | |
| var i = 0 | |
| , n = a.length | |
| , r = 0; | |
| if (0 < n) | |
| for (; r < n; ) | |
| i = (i << 5) - i + a.charCodeAt(r++) | 0; | |
| t = Promise.resolve(i) | |
| } | |
| return t | |
| }(e) : Promise.resolve(void 0)).then(function(e) { | |
| var t = a.obj; | |
| return { | |
| handlerType: "REG", | |
| broadcastResult: !(t.beforeSend = function() { | |
| "undefined" != typeof Crm && Crm.REQUEST_QUEUE && delete Crm.REQUEST_QUEUE[this.url + "---" + this.data] | |
| } | |
| ), | |
| request: t, | |
| context: a.context.CONFIG, | |
| requestHash: e, | |
| WBC: i | |
| } | |
| }).then(t).then(function(e) { | |
| var t = e.handlerType | |
| , a = e.broadcastResult | |
| , i = e.request | |
| , o = e.requestHash | |
| , n = e.WBC; | |
| if ("REG" === t) { | |
| var r = i.success | |
| , s = i.error; | |
| i.success = void 0, | |
| i.error = void 0; | |
| var d = $.ajax(i); | |
| if (d.done(r).fail(s).always(function() { | |
| m() | |
| }), | |
| a) { | |
| var l, c = function(e) { | |
| this.postMessage({ | |
| action: "mimicResponse", | |
| data: e | |
| }), | |
| b(e) | |
| } | |
| .bind(n); | |
| d.done(function() { | |
| var e = arguments[0] | |
| , t = arguments[2]; | |
| 204 === t.status && (e = { | |
| status: t.status, | |
| statusText: t.statusText | |
| }), | |
| l = { | |
| status: "DONE", | |
| requestHash: o, | |
| response: e | |
| } | |
| }).fail(function() { | |
| l = { | |
| status: "FAIL", | |
| requestHash: o, | |
| response: arguments[0].responseJSON | |
| } | |
| }).always(function() { | |
| var n, r, s; | |
| n = function() { | |
| c(l) | |
| } | |
| , | |
| r = w.REPETITION, | |
| s = w.INTRAVEL, | |
| new Promise(function(e, t) { | |
| var a, i = 1; | |
| a = setInterval(function() { | |
| try { | |
| r < i && (clearInterval(a), | |
| e()), | |
| i++, | |
| n() | |
| } catch (e) { | |
| t(e) | |
| } | |
| }, s) | |
| } | |
| ).then(function() { | |
| var e = l; | |
| I.then(function(e) { | |
| var t = e.transaction(f.OBJECT_STORE_NAME, "readwrite"); | |
| return t.objectStore(f.OBJECT_STORE_NAME).delete(o), | |
| t.complete | |
| }).then(function() { | |
| c(e) | |
| }) | |
| }) | |
| }) | |
| } | |
| } else if ("DEFER" === t) { | |
| var g = (new Date).getTime() | |
| , p = { | |
| cachedPromise: i.cachedPromise, | |
| timeStamp: g | |
| }; | |
| h[o] = h[o] || [], | |
| h[o].push(p); | |
| var u = setTimeout(function() { | |
| h[o] = h[o].filter(function(e) { | |
| return e.timeStamp !== g || (e.cachedPromise.fail({ | |
| Error: "Request Timed Out" | |
| }), | |
| !1) | |
| }) | |
| }, v.CLEANUP_DELAY); | |
| p.setTimeoutID = u, | |
| m() | |
| } | |
| }) | |
| } | |
| }), | |
| getRequester: function(e) { | |
| return new n(e) | |
| }, | |
| Requester: function(e) { | |
| return n(e) | |
| } | |
| } | |
| } | |
| }(); | |
| function loadRecordTransition(e, t) { | |
| var a = window.location.pathname | |
| , i = Lyte.Router.getRoute(a) | |
| , n = i.dynamicParams; | |
| 0 < n.length && null != n[1] && n[1] == e.RecordID && i.route === t.route ? Lyte.Router.getRouteInstance().refresh() : Lyte.Router.transitionTo(t) | |
| } | |
| function makeAPIDataJson(e, t) { | |
| var a = "users" === e ? "users" : "data" | |
| , i = {} | |
| , n = t.trigger; | |
| return n && (delete t.trigger, | |
| i.trigger = n), | |
| t instanceof Array || (t = [t]), | |
| i[a] = t, | |
| i | |
| } | |
| CrmWidgets.Utils.DeepFreeze(CrmWidgets.APIHelper), | |
| Object.defineProperties(window, { | |
| CrmWidget: { | |
| enumerable: !0, | |
| value: { | |
| Telephony: void 0, | |
| Detail: void 0, | |
| RelatedList: void 0 | |
| } | |
| } | |
| }), | |
| Object.defineProperties(window, { | |
| WidgetHandler: { | |
| enumerable: !0, | |
| value: { | |
| WidgetConfig: void 0, | |
| SetConfig: function(e) { | |
| Object.defineProperty(WidgetHandler, "WidgetConfig", { | |
| value: e, | |
| writable: !1, | |
| enumerable: !0, | |
| configurable: !1 | |
| }), | |
| CrmWidgets.Utils.DeepFreeze(WidgetHandler.WidgetConfig) | |
| }, | |
| getWidget: function(e, t) { | |
| if (WidgetHandler && WidgetHandler.WidgetConfig && WidgetHandler.WidgetConfig[e]) { | |
| var a = WidgetHandler.WidgetConfig[e]; | |
| return t ? a[t] : a | |
| } | |
| }, | |
| getWidgetById: function(e, t) { | |
| if (WidgetHandler && WidgetHandler.WidgetConfig && WidgetHandler.WidgetConfig[e]) { | |
| var a = WidgetHandler.WidgetConfig[e]; | |
| for (key in a) | |
| if (a[key].ID === t) | |
| return a[key] | |
| } | |
| }, | |
| loadWidgets: function(e) { | |
| var t = e.moduleID | |
| , a = e.paramsID | |
| , i = e.urlModule | |
| , n = "undefined" != typeof WidgetHandler ? WidgetHandler.getWidget("RecordViewBC", t) : void 0; | |
| if (n) { | |
| var r = { | |
| Entity: CrmWidgets.Utils.GetSysRefFromTabName(i), | |
| EntityId: a | |
| }; | |
| WidgetHandler.Record.render(n, r) | |
| } | |
| } | |
| } | |
| } | |
| }), | |
| WidgetHandler.Telephony = { | |
| render: function() { | |
| var e = WidgetHandler.getWidget("Telephony") | |
| , t = "widgetTelephony"; | |
| if (e && (CrmWidget.Telephony = ZApp.LoadApp({ | |
| uniqueID: t, | |
| location: t, | |
| url: e.START_URL, | |
| config: e, | |
| onload: function() { | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.Telephony, {}) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(e.ID) | |
| } | |
| }), | |
| 0 < $("#chatBarIcons").length)) { | |
| $("#chatBarIcons tr:first").prepend("<td id='widgetIcon'><div style='border-left: 1px solid #ddd;padding: 2px 3px;' class='cP widgetIcon' onmouseenter='crmui.toolTip_show(this,\"center\",\"Telephony\")' onmouseleave='crmui.hideTooltip(this)' onclick='WidgetHandler.Telephony.toggle()' data-title='Telephony'><div class='telephony_Dialer_icon'></div></td>") | |
| } | |
| }, | |
| hide: function() { | |
| $("#widget_Panel").hide() | |
| }, | |
| show: function() { | |
| CrmWidget.Telephony && $("#widget_Panel").show() | |
| }, | |
| toggle: function(e) { | |
| $("#widget_Panel").is(":visible") ? this.hide() : (CrmWidget.Telephony.SendEvent("DialerActive", e || {}), | |
| this.show()) | |
| } | |
| }, | |
| WidgetHandler.StandAlone = { | |
| render: function() { | |
| var e = WidgetHandler.getWidget("StandAlone") | |
| , t = "widgetStandAlone"; | |
| e && (CrmWidget.StandAlone = ZApp.LoadApp({ | |
| uniqueID: t, | |
| location: t, | |
| url: e.START_URL, | |
| config: e, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(e.ID) | |
| } | |
| })) | |
| } | |
| }, | |
| WidgetHandler.CustomAction = { | |
| render: function(e, t) { | |
| var a = "Widget_Frame_CustomAction" + e.ID | |
| , i = document.createElement("iframe"); | |
| (i = $(i)).addClass("widget_Frame_CustomAction"), | |
| i.attr("id", a), | |
| i.attr("allow", "geolocation; microphone; camera; midi; encrypted-media"), | |
| $("#actionOption").html(i[0]).show(), | |
| crmui.showPopup("commonActionPage"), | |
| CrmWidget.CustomActions = ZApp.LoadApp({ | |
| uniqueID: a, | |
| location: a, | |
| url: e.START_URL, | |
| config: e, | |
| onload: function() { | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.CustomActions, t) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(e.ID) | |
| } | |
| }) | |
| } | |
| }, | |
| WidgetHandler.PopUp = WidgetHandler.CustomButtons = { | |
| render: function(e, t, a, i) { | |
| if (e.ISACTIVE || "0" === e.TYPE) { | |
| if (!e.ISACTIVE && !i) | |
| return; | |
| var n, r = "widgetPopFrame" + e.ID, s = document.createElement("iframe"); | |
| if ((s = $(s)).addClass("widget_Frame_Popup"), | |
| s.addClass("widget_Frame_loading"), | |
| s.attr("id", r), | |
| s.attr("allow", "geolocation; microphone; camera; midi; encrypted-media"), | |
| CrmWidgets.Utils.isMobileWidget() && s.attr("sandbox", "allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-top-navigation-by-user-activation"), | |
| $("#CBWidgetPopUpRespContent").html(s[0]), | |
| $("#CBWidgetPopUp .popup-model-header.f21").text(e.NAME), | |
| $("#CBWidgetExecutedPage").val(a), | |
| s.load(CrmWidgets.Utils.hideLoading), | |
| e.dimensionSpec) { | |
| var o = CrmWidgets.Utils.getDimensionCss(e, e.DIMENSION); | |
| s.css(o) | |
| } | |
| switch (a) { | |
| case "eachRecord": | |
| n = "ListViewEachRecord"; | |
| break; | |
| case "listView": | |
| n = "ListView"; | |
| break; | |
| case "view": | |
| case "viewEntity": | |
| n = "DetailView"; | |
| break; | |
| case "edit": | |
| case "cbedit": | |
| n = "EditView"; | |
| break; | |
| case "create_clone": | |
| case "createclone": | |
| n = "CreateOrCloneView"; | |
| break; | |
| case "startup": | |
| n = "StartUp", | |
| $("#CBWidgetPopUp .widgetPopup").addClass("startupWidget"), | |
| $(".startupWidget .newPopupCloseIcon").hide() | |
| } | |
| t.ButtonPosition = n, | |
| CrmWidget.CustomButton = ZApp.LoadApp({ | |
| uniqueID: r, | |
| location: r, | |
| url: e.START_URL, | |
| config: e, | |
| onload: function() { | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.CustomButton, t) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(e.ID) | |
| } | |
| }) | |
| } else { | |
| $("#CBWidgetPopUp .popup-model-header.f21").text(e.NAME); | |
| var d = $("#CBWidgetPopUpRespContent"); | |
| d.html('<table class="borderCollapse h100p w100p"><tr><td class="vam txt-ctr color7">' + I18n.getMsg("crm.label.widgets.error.feature.unsupported") + "</td></tr></table>"), | |
| d.addClass("widget_Frame_Popup").css({ | |
| position: "absolute", | |
| "min-height": "160px", | |
| background: "#fff" | |
| }) | |
| } | |
| setTimeout(function() { | |
| if (!CrmWidgets.Utils.isMobileWidget()) { | |
| var e = $("#CBWidgetPopUp") | |
| , t = Utils.windowHeight; | |
| e.addClass("zcrm-show"), | |
| e.css("max-height", t - 80 + "px"), | |
| freezeBackground(), | |
| "startup" !== a && ($("#CBWidgetPopUp .widgetPopup").removeClass("startupWidget"), | |
| $("#CBWidgetPopUp .newPopupCloseIcon").show()), | |
| e.show() | |
| } | |
| }, 150) | |
| }, | |
| close: function(e) { | |
| if ($("#multipleFieldsEditPop").is(":visible")) | |
| return ProcessFlow.validateAndClosePopUp(), | |
| void removeFreezeLayer(); | |
| var t = $("#CBWidgetPopUp"); | |
| if (t.removeClass("zcrm-show"), | |
| t.hide(), | |
| $("#CBWidgetPopUpRespContent").empty(), | |
| removeFreezeLayer(), | |
| e) { | |
| var a = null | |
| , i = $("#CBWidgetExecutedPage"); | |
| i && (a = i.val()), | |
| "viewEntity" === a || "relatedlist" === a ? ("undefined" != typeof CustomButtonJSObjectInit && (CustomButtonJSObjectInit.checkBox = {}), | |
| reloadCurrentEntityView()) : "eachRecord" !== a && "listView" !== a || crmListView.reloadCurrentListView() | |
| } | |
| } | |
| }, | |
| WidgetHandler.SalesSignals = { | |
| show: function(e, t) { | |
| var a = e.signal | |
| , i = e.id | |
| , n = a.id | |
| , r = crmNTCGlobal.getPageLoadDataForWidget(e, t) | |
| , s = WidgetHandler.WidgetConfig.SalesSignals[n]; | |
| if (s.ISACTIVE) { | |
| var o = "signalPlatformIframeContent_" + i | |
| , d = $(o); | |
| d.attr("id", o), | |
| d.load(CrmWidgets.Utils.hideLoading), | |
| CrmWidget.SalesSignals || (CrmWidget.SalesSignals = {}), | |
| CrmWidget.SalesSignals[n] = ZApp.LoadApp({ | |
| uniqueID: o, | |
| location: o, | |
| url: s.START_URL, | |
| config: s, | |
| onload: function() { | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.SalesSignals[n], r) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(s.ID) | |
| } | |
| }) | |
| } else | |
| $("#ntcPlatformIframeWrap_" + i).html('<table class="borderCollapse h100p w100p"><tr><td class="vam txt-ctr color7">' + I18n.getMsg("crm.label.widgets.error.feature.unsupported") + "</td></tr></table>").addClass("h150").css("border", "1px solid #e9e9e9") | |
| }, | |
| render: function(e, t, a) { | |
| if (e.ISACTIVE) { | |
| $("#SignalWidgetPopup").css({ | |
| "z-index": 249 | |
| }), | |
| freezeBackground(), | |
| $("#FreezeLayer").css({ | |
| display: "block", | |
| opacity: ".1", | |
| "z-index": 31 | |
| }); | |
| var i = "signalWidgetPopFrame_" + e.ID | |
| , n = document.createElement("iframe"); | |
| (n = $(n)).addClass("signal_Widget_Frame_Popup"), | |
| n.addClass("widget_Frame_loading"), | |
| n.attr("id", i), | |
| n.attr("allow", "geolocation; microphone; camera; midi; encrypted-media"), | |
| $("#signalWidgetPopupTitle").text(e.NAME), | |
| $("#SignalWidgetPopUpRespContent").html(n[0]), | |
| n.load(CrmWidgets.Utils.hideLoading), | |
| CrmWidget.SalesSignals || (CrmWidget.SalesSignals = {}), | |
| CrmWidget.SalesSignals[a] = ZApp.LoadApp({ | |
| uniqueID: i, | |
| location: i, | |
| url: e.START_URL, | |
| config: e, | |
| onload: function() { | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.SalesSignals[a], t) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(e.ID) | |
| } | |
| }) | |
| } else { | |
| var r = $("#SignalWidgetPopUpRespContent"); | |
| $("#SignalWidgetPopup .popup-model-header.f21").text(e.NAME), | |
| r.html('<table class="borderCollapse h100p w100p"><tr><td class="vam txt-ctr color7">' + I18n.getMsg("crm.label.widgets.error.feature.unsupported") + "</td></tr></table>"), | |
| r.addClass("widget_Frame_Popup").css({ | |
| position: "absolute", | |
| "min-height": "160px", | |
| background: "#fff" | |
| }) | |
| } | |
| setTimeout(function() { | |
| var e = $("#SignalWidgetPopup"); | |
| e.addClass("zcrm-show"), | |
| freezeBackground(), | |
| e.show() | |
| }, 150) | |
| }, | |
| close: function() { | |
| var e = $("#SignalWidgetPopup"); | |
| e.removeClass("zcrm-show"), | |
| e.hide(), | |
| $("#SignalWidgetPopUpRespContent").empty(), | |
| removeFreezeLayer() | |
| } | |
| }, | |
| WidgetHandler.Settings = { | |
| render: function(e, t) { | |
| var a = WidgetHandler.getWidget("Settings", t); | |
| if (a) { | |
| var i = $("#settingWidgetContainer") | |
| , n = "settingsWidget_" + a.ID | |
| , r = document.createElement("iframe"); | |
| if (r.id = n, | |
| 1 === a.SOURCE) { | |
| var s = Utils.windowHeight - i.offset().top - 28; | |
| r.setAttribute("style", "background: #fff; width: 100%; border: none; height: " + s + "px"), | |
| r.setAttribute("class", "widget_Frame_settings widget_Frame_loading"), | |
| $(r).load(CrmWidgets.Utils.hideLoading) | |
| } else | |
| r.setAttribute("class", "widget_Frame_settings"), | |
| r.setAttribute("scrolling", "no"); | |
| $("#ExtensionName").html(e + " - Settings"), | |
| r.setAttribute("allow", "geolocation; microphone; camera; midi; encrypted-media"), | |
| i.html(r), | |
| setTimeout(function() { | |
| crmLayout.Resize.Setup() | |
| }, 0), | |
| CrmWidget.Settings = ZApp.LoadApp({ | |
| uniqueID: n, | |
| location: n, | |
| url: a.START_URL, | |
| config: a, | |
| onload: function() { | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.Settings, {}) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(a.ID) | |
| } | |
| }), | |
| $(".pluginMainDiv #pluginPageContent").hide(), | |
| $("#setUp_widget_Panel").show() | |
| } else | |
| crmui.showMsgBand("error", I18n.getMsg("crm.label.creator.noaccess"), 4e3, ""), | |
| Utils.windowLocationHref(CrmWidgets.Utils.getCrmBasePath() + "/settings/index") | |
| }, | |
| close: function() { | |
| $("#setUp_widget_Panel").hide(), | |
| $(".pluginMainDiv #pluginPageContent").show(), | |
| $("#setupWidget").attr("src", "") | |
| } | |
| }, | |
| WidgetHandler.Record = { | |
| render: function(e, t) { | |
| var a, i; | |
| "29" === e.TYPE ? (a = "#fullInfoDiv", | |
| i = "widget_Frame_RecordView") : "28" === e.TYPE || "27" === e.TYPE ? (a = "#show", | |
| i = "widget_Frame_RecordEdit") : "27" === e.TYPE ? (a = "#bcWraperDiv", | |
| i = "widget_Frame_RecordBC") : "30" === e.TYPE && (a = "#widget_businessCard", | |
| i = "widget_businessCard"); | |
| var n = document.createElement("iframe") | |
| , r = i + "_" + e.ID; | |
| if (n.id = r, | |
| "28" === e.TYPE || "27" === e.TYPE) { | |
| var s = Utils.windowHeight | |
| , o = $("#mainMenuTabDiv").height() | |
| , d = $("#wms-chatwindowcontainer").height() | |
| , l = s - (o + (d || 0)); | |
| n.setAttribute("style", "height:" + l + "px;") | |
| } | |
| return n.setAttribute("class", i), | |
| n.setAttribute("allow", "geolocation; microphone; camera; midi; encrypted-media"), | |
| $(a).html(n), | |
| Utils.showHideLoadingDiv(), | |
| CrmWidget.Record || (CrmWidget.Record = {}), | |
| CrmWidget.Record[r] = ZApp.LoadApp({ | |
| uniqueID: r, | |
| location: r, | |
| url: e.START_URL, | |
| config: e, | |
| onload: function() { | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.Record[r], t) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(e.ID) | |
| } | |
| }), | |
| $("#widget_Record").show(), | |
| n | |
| }, | |
| close: function() { | |
| $("#widget_Record").hide(), | |
| $("#widgetRecord").attr("src", "") | |
| } | |
| }, | |
| WidgetHandler.RelatedList = { | |
| render: function(e, t, a, i) { | |
| if (e.ISACTIVE) { | |
| var n = "RelatedList_" + t | |
| , r = document.createElement("iframe"); | |
| (r = $(r)).attr("id", n), | |
| i ? r.addClass("widget_Frame_relatedList_canvas") : r.addClass("widget_Frame_relatedList"), | |
| r.addClass("widget_Frame_loading"), | |
| r.attr("allow", "geolocation; microphone; camera; midi; encrypted-media"), | |
| CrmWidgets.Utils.isMobileWidget() && r.attr("sandbox", "allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-top-navigation-by-user-activation"); | |
| var s = $("#customRelatedListDiv_" + t); | |
| if (i ? s.html(r[0]) : s.html(r[0]).css({ | |
| "max-height": "700px" | |
| }), | |
| r.load(CrmWidgets.Utils.hideLoading), | |
| e.dimensionSpec && !i) { | |
| var o = CrmWidgets.Utils.getDimensionCss(e, e.DIMENSION); | |
| r.css(o) | |
| } | |
| CrmWidget.RelatedList || (CrmWidget.RelatedList = {}), | |
| CrmWidget.RelatedList[t] = ZApp.LoadApp({ | |
| uniqueID: n, | |
| location: n, | |
| url: e.START_URL, | |
| config: e, | |
| onload: function() { | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.RelatedList[t], a) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(e.ID) | |
| } | |
| }) | |
| } else | |
| $("#customRelatedListDiv_" + t).html('<table class="borderCollapse h100p w100p"><tr><td class="vam txt-ctr color7">' + I18n.getMsg("crm.label.widgets.error.feature.unsupported") + "</td></tr></table>").addClass("h150").css("border", "1px solid #e9e9e9") | |
| } | |
| }, | |
| WidgetHandler.Blueprint = { | |
| render: function(e, t, a) { | |
| var i = $("#" + t) | |
| , n = "undefined" != typeof WidgetHandler ? WidgetHandler.getWidget("Blueprint", e) : void 0 | |
| , r = n.ID; | |
| if (n) | |
| if (n.ISACTIVE) { | |
| var s = "WidgetFrame_" + r | |
| , o = document.createElement("iframe"); | |
| (o = $(o)).attr({ | |
| id: s, | |
| frameborder: "0", | |
| height: "100%", | |
| allow: "geolocation; microphone; camera; midi; encrypted-media", | |
| width: "100%" | |
| }), | |
| o.addClass("widget_Frame_Blueprint widget_Frame_loading"), | |
| i.html(o[0]), | |
| o.load(CrmWidgets.Utils.hideLoading), | |
| CrmWidget.Blueprint || (CrmWidget.Blueprint = {}), | |
| CrmWidget.Blueprint[r] = ZApp.LoadApp({ | |
| uniqueID: s, | |
| location: s, | |
| url: n.START_URL, | |
| config: n, | |
| onload: function() { | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.Blueprint[r], a || {}) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(r) | |
| } | |
| }) | |
| } else | |
| i.html('<table class="borderCollapse h100p w100p"><tr><td class="vam txt-ctr color7">' + I18n.getMsg("crm.label.widgets.error.feature.unsupported") + "</td></tr></table>") | |
| } | |
| }, | |
| WidgetHandler.HomePage = { | |
| render: function(e) { | |
| var t = $("#widget_" + e); | |
| t.attr("style", "width:98%;height:88%;"); | |
| var a = "undefined" != typeof WidgetHandler ? WidgetHandler.getWidgetById("HomePage", e) : void 0; | |
| if (a) | |
| if (a.ISACTIVE) { | |
| var i = "WidgetFrame_" + e | |
| , n = document.createElement("iframe"); | |
| (n = $(n)).attr("id", i), | |
| n.attr("frameborder", "0"), | |
| n.attr("height", "100%"), | |
| n.attr("width", "100%"), | |
| n.addClass("widget_Frame_homePage"), | |
| n.addClass("widget_Frame_loading"), | |
| n.attr("allow", "geolocation; microphone; camera; midi; encrypted-media"), | |
| t.html(n[0]), | |
| n.load(CrmWidgets.Utils.hideLoading), | |
| CrmWidget.HomePage || (CrmWidget.HomePage = {}), | |
| CrmWidget.HomePage[e] = ZApp.LoadApp({ | |
| uniqueID: i, | |
| location: i, | |
| url: a.START_URL, | |
| config: a, | |
| onload: function() { | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.HomePage[e]) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(a.ID) | |
| } | |
| }) | |
| } else | |
| t.html('<table class="borderCollapse h100p w100p"><tr><td class="vam txt-ctr color7">' + I18n.getMsg("crm.label.widgets.error.feature.unsupported") + "</td></tr></table>") | |
| } | |
| }, | |
| WidgetHandler.WebTab = { | |
| render: function(e, t, a) { | |
| var i = "externalIframe_" + e.ID; | |
| 1 !== e.SOURCE && isNaN(t) || (t = ""), | |
| $("#" + i).load(CrmWidgets.Utils.hideLoading); | |
| var n = e.START_URL + t; | |
| CrmWidget.WebTab = ZApp.LoadApp({ | |
| uniqueID: i, | |
| location: i, | |
| url: n, | |
| config: e, | |
| onload: function() { | |
| CrmWidget.currentWidget = "WebTab", | |
| a = a || WidgetHandler.Utils.fetchHistoryStateParam(), | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.WebTab, a || {}) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(e.ID), | |
| delete CrmWidget.currentWidget | |
| } | |
| }) | |
| } | |
| }, | |
| WidgetHandler.SetupWidget = { | |
| render: function(e, t) { | |
| var a = WidgetHandler.getWidget("Settings", t); | |
| if (a) { | |
| var i = $("#settingWidgetContainer") | |
| , n = "settingsWidget_" + a.ID | |
| , r = document.createElement("iframe"); | |
| r.id = n, | |
| r.setAttribute("style", "border: none;width: 100%;height:100%;float:left;"), | |
| r.setAttribute("allow", "geolocation; microphone; camera; midi; encrypted-media"), | |
| i.html(r), | |
| setTimeout(function() { | |
| crmLayout.Resize.Setup() | |
| }, 0), | |
| CrmWidget.Setup = ZApp.LoadApp({ | |
| uniqueID: n, | |
| location: n, | |
| url: a.START_URL, | |
| config: a, | |
| onload: function() { | |
| CrmWidget.currentWidget = "Setup"; | |
| var e = WidgetHandler.Utils.fetchHistoryStateParam(); | |
| WidgetHandler.EventNotifier.pageLoad(CrmWidget.Setup, e || {}) | |
| }, | |
| onunload: function() { | |
| CrmWidgets.Utils.requestFlusher(a.ID), | |
| delete CrmWidget.currentWidget | |
| } | |
| }), | |
| $("#setUp_widget_Panel").show() | |
| } else | |
| crmui.showMsgBand("error", I18n.getMsg("crm.label.creator.noaccess"), 4e3, ""), | |
| Utils.windowLocationHref(CrmWidgets.Utils.getCrmBasePath() + "/settings/index") | |
| } | |
| }, | |
| WidgetHandler.Utils = { | |
| getRequestParams: function(e) { | |
| var t = [] | |
| , a = {} | |
| , i = location.search; | |
| if (i && "" !== i) | |
| for (var n = i.substr(1).split("&"), r = n.length, s = 0; s < r; s++) { | |
| var o = (t = n[s].split("="))[0] | |
| , d = decodeURIComponent(t[1]); | |
| if (e) { | |
| if (o === e) | |
| return d | |
| } else | |
| a[o] = d | |
| } | |
| return a | |
| }, | |
| readForm: function() { | |
| var e = $("form[name='createEntityNewForm']")[0] | |
| , t = $(e).find("[data-sysRefName]").not(".subformTabl [data-sysRefName]") | |
| , r = WidgetHandler.Utils.fieldData(t) | |
| , a = $(e).find(".subformTabl"); | |
| 0 < a.length && $.each(a, function(e, t) { | |
| var a = t.getAttribute("sub-data") | |
| , i = $(t).find("tbody tr") | |
| , n = []; | |
| $.each(i, function() { | |
| var e = $(this).find("[data-sysRefName]") | |
| , t = WidgetHandler.Utils.fieldData(e); | |
| n.push(t) | |
| }), | |
| r[a] = n | |
| }); | |
| var o = { | |
| hdnProductId: "ID", | |
| txtProduct: "Name", | |
| itemDescription: "Description", | |
| txtListPrice: "ListPrice", | |
| hdnUnitPrice: "UnitPrice", | |
| txtQty: "NewQuantity", | |
| hdnOldQty: "OldQuantity", | |
| hdnQtyStock: "InStock", | |
| discount: "Discount", | |
| discPc: "DiscountPerItem", | |
| tax: "Tax", | |
| prdTaxDet: "TaxDetection", | |
| netTotal: "Total" | |
| } | |
| , i = $("#linesTbody tr") | |
| , n = []; | |
| $.each(i, function(e, t) { | |
| var r = (t = $(t)).attr("id").replace("hrow", "") | |
| , a = t.find("input") | |
| , s = {}; | |
| $.each(a, function(e, t) { | |
| var a = (t = $(t)).attr("id").replace(r, "") | |
| , i = o[a] | |
| , n = t.val(); | |
| i && (s[i] = n) | |
| }), | |
| n.push(s) | |
| }); | |
| var s = { | |
| Data: r | |
| }; | |
| return n && 0 < n.length && (s.LineItems = n), | |
| s | |
| }, | |
| fieldData: function(e) { | |
| var d = {}; | |
| return $.each(e, function(e, t) { | |
| var a, i = (t = $(t)).attr("data-sysRefName"); | |
| if (t) { | |
| var n = t.prop("type") | |
| , r = t.attr("data-content-type"); | |
| switch (n) { | |
| case "text": | |
| if ("Lookup" === r) { | |
| var s = t.val() | |
| , o = t.data("id"); | |
| s && "" !== s && o && "" !== o && ((a = {}).name = s, | |
| a.id = o) | |
| } else | |
| a = t.val(); | |
| break; | |
| case "checkbox": | |
| a = t.is(":checked"); | |
| break; | |
| default: | |
| a = t.val() | |
| } | |
| } | |
| a = "" === a ? void 0 : a, | |
| d[i] = a | |
| }), | |
| d | |
| }, | |
| populateForm: function(e) { | |
| var t, a, l = ["First_Name"]; | |
| if (e.$data ? (t = e.$data, | |
| a = e.$lineItems) : t = e, | |
| t) { | |
| var c = $("#subFrmaddRowBtn"); | |
| jQuery.each(t, function(i, n) { | |
| var e = $("table[sub-data='" + i + "']"); | |
| if (0 < e.length) { | |
| for (var t = e.attr("id").split("_")[1], a = crmCommonModule.createEditJson.module, r = n.length, s = 1; s < r; s++) | |
| crmTemplate.addSubFromRow(c, t, a, "2"); | |
| var o = e.find("tbody tr"); | |
| $.each(o, function(e, t) { | |
| for (objKey in n[e]) { | |
| var a = $(t).find("[data-sysRefName='" + objKey + "']")[0]; | |
| WidgetHandler.Utils.addFieldValues(i, n[e][objKey], a) | |
| } | |
| }) | |
| } else { | |
| var d; | |
| (d = l.includes(i) ? $("[data-sysRefName='" + i + "'][data-content-type='Text']")[0] : $("[data-sysRefName='" + i + "']")[0]) && WidgetHandler.Utils.addFieldValues(i, n, d) | |
| } | |
| }) | |
| } | |
| if (a) { | |
| var i = a[0] | |
| , n = { | |
| ISTAXABLE: !0, | |
| PRODUCTCODE: void 0, | |
| PRODUCTID: void 0, | |
| PRODUCTNAME: void 0, | |
| QUANTITY: 0, | |
| QUANTITY_IN_DEMAND: 0, | |
| QUANTITY_IN_STOCK: 0, | |
| UNITPRICE: 0, | |
| USAGE_UNIT: "Box", | |
| VENDORID: "null" | |
| } | |
| , r = $.extend({}, n, i); | |
| productDetails.addSave(r) | |
| } | |
| }, | |
| addFieldValues: function(e, t, a) { | |
| var i = (a = $(a)).prop("type") | |
| , n = a.attr("data-content-type"); | |
| switch (i) { | |
| case "text": | |
| if ("Lookup" === n) { | |
| if (t.constructor === Object) { | |
| var r = t.id | |
| , s = t.name; | |
| a.data("id", r), | |
| a.val(s) | |
| } | |
| } else | |
| a.val(t); | |
| break; | |
| case "textarea": | |
| a.val(t); | |
| break; | |
| case "checkbox": | |
| "boolean" == typeof t && a.prop("checked", t); | |
| break; | |
| case "select-multiple": | |
| Array.isArray(t) && (populatePicklist(a, t), | |
| a.val(t), | |
| Utils.triggerEvent("change", a)); | |
| break; | |
| case "select-one": | |
| "string" == typeof t && (populatePicklist(a, [t]), | |
| a.val(t), | |
| Utils.triggerEvent("change", a)) | |
| } | |
| }, | |
| resize: function(n, e, t) { | |
| n = n instanceof HTMLElement ? $(n) : $("#" + n.id); | |
| var a = e.height | |
| , i = e.width | |
| , r = e.hideParent; | |
| n.css({ | |
| transition: "all .8s ease", | |
| "-webkit-transition": "all .8s ease" | |
| }); | |
| var s = function(e, t, a) { | |
| var i = {}; | |
| void 0 !== e && (i.width = e + "px"), | |
| void 0 !== t && (i.height = t + "px"), | |
| a && (0 < e ? (freezeBackground(), | |
| i.display = "block") : ($("#FreezeLayer").remove(), | |
| i.display = "none")), | |
| n.css(i) | |
| } | |
| .bind(void 0, i, a, t); | |
| if (void 0 !== r) { | |
| var o = n.parent(); | |
| r ? o.slideUp("slow", "swing", s) : (s(), | |
| o.slideDown("slow", "swing")) | |
| } else | |
| s() | |
| }, | |
| playSound: function() { | |
| CrmWidgets.Utils.getAudioNotifier().play() | |
| }, | |
| loadDetailPage: function(e) { | |
| if (e.Entity && e.RecordID) { | |
| var t = { | |
| route: "crm.tab.module.entity.detail", | |
| dynamicParams: [e.Entity, e.RecordID] | |
| }; | |
| if ("Calls" !== e.Entity && "Tasks" !== e.Entity && "Events" !== e.Entity || (t.dynamicParams = ["Activities", e.RecordID], | |
| t.queryParams = { | |
| sub_module: e.Entity | |
| }), | |
| e.target && "_blank" === e.target) { | |
| var a = Lyte.Router.getURL(t); | |
| Utils.openUrl(a, "_blank") | |
| } else | |
| loadRecordTransition(e, t); | |
| WidgetHandler.PopUp.close() | |
| } | |
| }, | |
| loadEditPage: function(e) { | |
| if (e.Entity && e.RecordID) { | |
| var t = { | |
| route: "crm.tab.module.entity.edit", | |
| dynamicParams: [e.Entity, e.RecordID] | |
| }; | |
| if (e.target && "_blank" === e.target) { | |
| var a = Lyte.Router.getURL(t); | |
| Utils.openUrl(a, "_blank") | |
| } else | |
| loadRecordTransition(e, t); | |
| WidgetHandler.PopUp.close() | |
| } | |
| }, | |
| loadCreatePage: function(e) { | |
| if (e.Entity) { | |
| var t = { | |
| route: "crm.tab.module.create", | |
| dynamicParams: [e.Entity] | |
| }; | |
| if (e.target && "_blank" === e.target) { | |
| var a = Lyte.Router.getURL(t); | |
| Utils.openUrl(a, "_blank") | |
| } else { | |
| var i = window.location.pathname | |
| , n = Lyte.Router.getRoute(i) | |
| , r = n.dynamicParams; | |
| 0 < r.length && null != r[0] && r[0] == e.Entity && n.route === t.route ? Lyte.Router.getRouteInstance().refresh().data = { | |
| refreshPage: !0 | |
| } : Lyte.Router.transitionTo(t) | |
| } | |
| WidgetHandler.PopUp.close() | |
| } | |
| }, | |
| fetchHistoryStateParam: function() { | |
| if (history.state && history.state.meta && history.state.meta.matched && history.state.meta.matched.queryParams) { | |
| var e = history.state.meta.matched.queryParams; | |
| if (e instanceof Object) | |
| try { | |
| return e.widgetparams ? JSON.parse(e.widgetparams) : {} | |
| } catch (e) { | |
| return | |
| } | |
| } | |
| } | |
| }, | |
| WidgetHandler.EventNotifier = { | |
| pageLoad: function(e, t) { | |
| e && e.SendEvent("PageLoad", t || {}) | |
| }, | |
| historyPopState: function(e) { | |
| var t = WidgetHandler.Utils.fetchHistoryStateParam(); | |
| e && t && e.SendEvent("HistoryPopState", t) | |
| }, | |
| dial: function(e, t, a, i) { | |
| var n = CrmWidgets.Utils.GetSysRefFromTabName(t); | |
| if (CrmWidget.Telephony) { | |
| var r = { | |
| Number: e, | |
| EntityType: n, | |
| EntityID: a, | |
| CallActivityID: i | |
| }; | |
| return CrmWidget.Telephony.SendEvent("Dial", r), | |
| !1 | |
| } | |
| return !0 | |
| } | |
| }, | |
| CrmWidgets.Utils.messageHandler = function(e) { | |
| var t = (P = e.data).sdkVersion | |
| , a = e.config | |
| , i = e.callback | |
| , n = e.callbackFailure | |
| , r = e.iframe; | |
| if (i && "function" == typeof i) { | |
| var s = new CrmWidgets.APIHelper.getRequester({ | |
| ID: a.ID, | |
| EMBEDDED_APP_ID: a.EMBEDDED_APP_ID, | |
| NAME: a.NAME, | |
| CONFIG: a | |
| }) | |
| , o = new CrmWidgets.Utils.PermissionHandler(a.PERMISSIONS) | |
| , d = new CrmWidgets.Utils.VersionHandler(t); | |
| if ("CREATE" === P.category) { | |
| if (o.authorize("CREATE"), | |
| "NOTES" === P.type) { | |
| var l = P.APIData; | |
| l = JSON.stringify(l); | |
| var c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.AddNotes, P.Entity, P.RelatedID); | |
| s.post(c, l).then(function(e) { | |
| var t = e; | |
| return e.data && (CrmWidgets.Utils.refreshNotesInUI(P.Entity, P.RelatedID), | |
| d.isBeta() && (t = e.data[0])), | |
| t | |
| }).then(i).catch(n) | |
| } else if ("ATTACHMENT" === P.type) { | |
| var g = (l = P.APIData).FileData | |
| , p = l.FileName; | |
| (D = new FormData).append("file", g, p); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.AddAttachment, P.Entity, P.RelatedID); | |
| s.post(c, D).then(function(e) { | |
| var t = e; | |
| return e.data && (CrmWidgets.Utils.refreshNotesInUI(P.Entity, P.RelatedID), | |
| d.isBeta() && (t = e.data[0])), | |
| t | |
| }).then(i).catch(n) | |
| } else if ("RECORD" === P.type) { | |
| l = P.APIData, | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.InsertRecord, P.Entity); | |
| "UPSERT" === l.action && (c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.UpsertRecord, P.Entity), | |
| delete l.action), | |
| !Array.isArray(l) && "object" != typeof l || (l = makeAPIDataJson(P.Entity, l)), | |
| l = JSON.stringify(l), | |
| s.post(c, l).then(function(e) { | |
| return CrmWidgets.Utils.deleteEntityFromCache(P.Entity), | |
| d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } | |
| } else if ("READ" === P.category) { | |
| if (o.authorize("READ"), | |
| (l = P.APIData).RelatedList) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetRelatedRecords, l.Entity, l.RecordID, l.RelatedList); | |
| "photo" === l.RelatedList ? l.RESPONSE_TYPE = "stream" : "Emails" === l.RelatedList && l.RelatedRecordID && (c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetRelatedRecords_email, l.Entity, l.RecordID, l.RelatedList, l.RelatedRecordID), | |
| delete l.RelatedRecordID), | |
| delete l.Entity, | |
| delete l.RecordID, | |
| delete l.RelatedList, | |
| s.get(c, l).then(function(e) { | |
| return d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } else { | |
| var u = (l = P.APIData).RecordID; | |
| if (u) { | |
| c = u instanceof Array ? (x = { | |
| ids: u.join(",") | |
| }, | |
| CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetMultipleRecord, l.Entity)) : CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetRecordById, l.Entity, l.RecordID), | |
| s.get(c, x).then(function(e) { | |
| return d.isBeta() && e.data ? e.data[0] : e | |
| }).then(i).catch(n) | |
| } else { | |
| c = ""; | |
| if (l.criteria) { | |
| var m = encodeURIComponent(l.criteria); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetAllRecord, l.Entity) + "?filters=" + m | |
| } else | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetAllRecord, l.Entity); | |
| delete l.Entity, | |
| s.get(c, l).then(function(e) { | |
| return d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } | |
| } | |
| } else if ("UPDATE" === P.category) { | |
| if (o.authorize("UPDATE"), | |
| "RECORD" === P.type) { | |
| l = P.APIData; | |
| (Array.isArray(l) || "object" == typeof l) && (l = makeAPIDataJson(P.Entity, l)), | |
| l = JSON.stringify(l); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.UpdateRecord, P.Entity); | |
| s.put(c, l).then(function(e) { | |
| return CrmWidgets.Utils.deleteEntityFromCache(P.Entity), | |
| d.isBeta() && e.data && e.data || e | |
| }).then(i).catch(n) | |
| } else if ("NOTES" === P.type) { | |
| g = (l = P.APIData).FileData, | |
| p = l.FileName; | |
| (D = new FormData).append("file", g, p); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.AttachFileToNotes, P.Entity, P.RecordID, P.RelatedRecordID); | |
| s.post(c, D).then(function(e) { | |
| var t = e; | |
| return e.data && (CrmWidgets.Utils.refreshNotesInUI(P.Entity, P.RelatedID), | |
| d.isBeta() && (t = e.data[0])), | |
| t | |
| }).then(i).catch(n) | |
| } else if ("RELATED_RECORD" === P.type) { | |
| var h; | |
| if (P.APIData instanceof File) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.UpdateRelatedList_photo, P.Entity, P.RecordID, P.RelatedList); | |
| (D = new FormData).append("file", P.APIData, P.APIData.name), | |
| h = s.post(c, D) | |
| } else { | |
| l = { | |
| data: [P.APIData] | |
| }; | |
| l = JSON.stringify(l); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.UpdateRelatedList, P.Entity, P.RecordID, P.RelatedList, P.RelatedRecordID); | |
| h = s.put(c, l) | |
| } | |
| h.then(function(e) { | |
| return CrmWidgets.Utils.deleteEntityFromCache(P.RelatedList), | |
| d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } else if ("PROFILE" === P.type) { | |
| l = P.APIData; | |
| l = JSON.stringify(l); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.UpdateProfile, P.ID); | |
| s.put(c, l).then(function(e) { | |
| return e.data || e | |
| }).then(i).catch(n) | |
| } else if ("VOICE_URL" === P.type) { | |
| (l = P.APIData).VoiceURL = encodeURIComponent(l.VoiceURL); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.UpdateVoiceURL, l.RecordID, l.VoiceURL); | |
| s.put(c, l).then(function(e) { | |
| return e.data || e | |
| }).then(i).catch(n) | |
| } | |
| } else if ("DELETE" === P.category) { | |
| if (o.authorize("DELETE"), | |
| "RECORD" === P.type) { | |
| var f = {}; | |
| c = P.RecordID instanceof Array ? (f = { | |
| ids: P.RecordID.join() | |
| }, | |
| (c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.DeleteRecords, P.Entity)).concat("?").concat(jQuery.param(f))) : CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.DeleteRecord, P.Entity, P.RecordID), | |
| s.del(c).then(function(e) { | |
| return CrmWidgets.Utils.deleteEntityFromCache(P.Entity), | |
| d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } else if ("RELATED_RECORD" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.UpdateRelatedList, P.Entity, P.RecordID, P.RelatedList, P.RelatedRecordID); | |
| s.del(c, l).then(function(e) { | |
| return CrmWidgets.Utils.deleteEntityFromCache(P.RelatedList), | |
| d.isBeta() && e.data ? e.data[0] : e | |
| }).then(i).catch(n) | |
| } | |
| } else if ("SEARCH" === P.category) { | |
| if (o.authorize("READ"), | |
| P.APIData) { | |
| var v = (l = P.APIData).Entity | |
| , w = l.Type | |
| , I = l.Query; | |
| delete l.Entity, | |
| delete l.Type, | |
| delete l.Query, | |
| l[w] = I | |
| } else { | |
| v = P.Entity, | |
| w = P.Type, | |
| I = P.Query; | |
| (l = {})[w] = I, | |
| P.page && (l.page = P.page), | |
| P.per_page && (l.per_page = P.per_page), | |
| P.delay && (l.delay = P.delay) | |
| } | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.SearchRecord, v); | |
| s.get(c, l).then(i).catch(n) | |
| } else if ("PAGEINFO" === P.category) { | |
| o.authorize("READ"); | |
| var b = detailView.currentModule | |
| , E = detailView.entityId; | |
| if (b && Crm.userDetails.MODULE_LIST) { | |
| var y = Crm.userDetails.MODULE_LIST[b]; | |
| if (y) | |
| if (v = y.api_name) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetRecordById, v, E); | |
| s.get(c, l).then(function(e) { | |
| var t = void 0 !== e.data ? e.data[0] : e; | |
| return { | |
| entity: v, | |
| data: t | |
| } | |
| }).then(i).catch(n) | |
| } | |
| } | |
| } else if ("FUNCTIONS_EXECUTE" === P.category) { | |
| o.authorize("READ"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.ExecuteFunction, P.customFunctionName); | |
| (C = P.data) && s.post(c, C.data, "", C.headers).then(i).catch(n) | |
| } else if ("CRM_CONNECTION" === P.category) { | |
| o.authorize("CONNECTOR"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.InvokeCrmConnection, P.connectionName); | |
| (C = P.data) && s.post(c, C.data, "").then(i).catch(n) | |
| } else if ("CRM_WIZARD" === P.category) | |
| wizardWidgetHandler.receiver(JSON.parse(P.data)); | |
| else if ("CRM_BLUEPRINT" === P.category) | |
| ProcessFlow.proceedWidget(); | |
| else if ("CONNECTOR" === P.category) | |
| if (o.authorize("CONNECTOR"), | |
| P.type && "CONNECTOR_API" !== P.type) { | |
| if ("CONNECTOR_AUTHORIZE" === P.type) { | |
| A = P.nameSpace, | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetAuthorizeUrl, A); | |
| s.get(c, D).then(function(e) { | |
| if (void 0 !== e.RESULT && "SUCCESS" === e.RESULT) { | |
| var t = e.AUTHORIZEURL; | |
| Utils.openUrl(t, "widgetConnectorAuthorize", "width=600, height=600, top=200, left=400") | |
| } | |
| var a, i, n = new Promise(function(e, t) { | |
| a = e, | |
| i = t | |
| } | |
| ), r = e.NAMESPACE, s = { | |
| resolve: a, | |
| reject: i | |
| }; | |
| return CrmWidgets.Utils.addConnectorAuthorizePromise(r, s), | |
| setTimeout(function() { | |
| if (connectorAuthorizePromiseMap) { | |
| var e = connectorAuthorizePromiseMap[r]; | |
| e && (e.reject("Timeout"), | |
| delete connectorAuthorizePromiseMap[r]) | |
| } | |
| }, 3e5), | |
| n | |
| }).then(i).catch(n) | |
| } else if ("CONNECTOR_REVOKE" === P.type) { | |
| A = P.nameSpace, | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetRevokeUrl, A); | |
| s.post(c, D).then(i).catch(n) | |
| } | |
| } else { | |
| var C = P.data | |
| , A = P.nameSpace; | |
| C.invokeType && "ISAUTHORIZE" === C.invokeType && (A = "isAuthorized_" + A); | |
| var c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.InvokeConnector, A); | |
| if (C) { | |
| var _ = C.CONTENT_TYPE | |
| , W = C.RESPONSE_TYPE; | |
| if (_ && "multipart" === _) { | |
| var P = new FormData; | |
| if (C.FORWARD_TYPE && "data-binary" === C.FORWARD_TYPE ? P.append("forwardType", "data-binary") : P.append("forwardType", "multi"), | |
| C.FILE) { | |
| var R = C.FILE.fileParam | |
| , T = C.FILE.file | |
| , S = new File([T],T.name,{ | |
| type: T.type | |
| }); | |
| P.append(R, S) | |
| } | |
| var L = C.VARIABLES; | |
| !L && C.url && (L = { | |
| url: C.url, | |
| Header: C.Header | |
| }); | |
| var O = { | |
| parts: C.PARTS, | |
| partBoundary: C.PARTS_BOUNDARY | |
| } | |
| , U = JSON.stringify(O); | |
| P.append("partContents", U), | |
| P.append("VARIABLES", JSON.stringify(L)), | |
| void 0 !== W && P.append("resultType", W), | |
| s.post(c, P).then(i).catch(n) | |
| } else { | |
| var x = { | |
| VARIABLES: C | |
| }; | |
| W && (c = c.concat("&resultType=").concat(W), | |
| x.RESPONSE_TYPE = W), | |
| s.ajax("POST", c, x).then(i).catch(n) | |
| } | |
| } | |
| } | |
| else if ("FILES" === P.category) { | |
| if ("UPLOAD_FILE" === P.type) | |
| if (o.authorize("CREATE"), | |
| (l = P).FileData instanceof File) { | |
| var D; | |
| (D = new FormData).append("file", l.FileData, l.FileData.name); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.ZfsFile); | |
| s.post(c, D).then(function(e) { | |
| return e | |
| }).then(i).catch(n) | |
| } else | |
| n("Input is not of type 'File'"); | |
| else if ("DOWNLOAD_FILE" === P.type) { | |
| l = { | |
| id: P.id, | |
| RESPONSE_TYPE: "stream" | |
| }; | |
| o.authorize("READ"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.ZfsFile); | |
| s.get(c, l).then(function(e) { | |
| return d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } | |
| } else if ("BLUEPRINT" === P.category) { | |
| if ("GET_BLUEPRINT_STATUS" === (l = P).action) { | |
| o.authorize("READ"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.Blueprint, l.Entity, l.RecordID); | |
| s.get(c).then(function(e) { | |
| return d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } else if ("UPDATE_BLUEPRINT_STATUS" === l.action) { | |
| o.authorize("UPDATE"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.Blueprint, l.Entity, l.RecordID); | |
| l = JSON.stringify(l.BlueprintData), | |
| s.put(c, l).then(function(e) { | |
| return d.isBeta() && e.data && e.data || e | |
| }).then(i).catch(n) | |
| } | |
| } else if ("APPROVALS" === P.category) { | |
| if ("GET_ALL_ACTIONS" === (l = P).action) { | |
| o.authorize("READ"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.ViewAllActions, l.Entity, l.RecordID); | |
| s.get(c).then(function(e) { | |
| return d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } else if ("GET_APPROVAL_RECORDS" === l.action) { | |
| o.authorize("READ"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetApprovalRecords); | |
| l.type && (c = c + "?type=" + l.type), | |
| s.get(c).then(function(e) { | |
| return d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } else if ("GET_APPROVALBYID" === l.action) { | |
| o.authorize("READ"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetApprovalRecords); | |
| l.id && (c = c + "/" + l.id), | |
| s.get(c).then(function(e) { | |
| return d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } else if ("GET_APPROVALS_HISTORY" === l.action) { | |
| o.authorize("READ"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetApprovalRecords) + "/history"; | |
| s.get(c).then(function(e) { | |
| return d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } else if ("UPDATE_APPROVAL" === l.action) { | |
| o.authorize("UPDATE"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetApprovalActions, l.Entity, l.RecordID, l.actionType); | |
| l.comments && (c = c + "&comments=" + l.comments), | |
| l.user && (c = c + "&user=" + l.user), | |
| s.post(c).then(function(e) { | |
| return d.isBeta() && e.data || e | |
| }).then(i).catch(n) | |
| } | |
| } else if ("MAIL" === P.category) { | |
| o.authorize("CREATE"); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetSendmailUrl, P.APIData.Entity, P.APIData.RecordID); | |
| var N = P.APIData.APIData; | |
| s.post(c, JSON.stringify(N)).then(function(e) { | |
| return e | |
| }).then(i).catch(n) | |
| } else if ("QUERY" === P.category) | |
| P.APIData && s.post(CrmWidgets.APIHelper.APISpec.queryRecord, JSON.stringify(P.APIData)).then(i).catch(n); | |
| else if ("ROLES" === P.category) { | |
| c = void 0 === P.roleId ? CrmWidgets.APIHelper.APISpec.roles : CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.specificRole, P.roleId); | |
| s.get(c).then(i).catch(n) | |
| } else if ("UI" === P.category) { | |
| if (P.action.telephony) { | |
| if ("MAXIMIZE" === P.action.telephony) | |
| WidgetHandler.Telephony.show(); | |
| else if ("MINIMIZE" === P.action.telephony) | |
| WidgetHandler.Telephony.hide(); | |
| else { | |
| if ("NOTIFY" !== P.action.telephony) | |
| return; | |
| WidgetHandler.Utils.playSound() | |
| } | |
| i(!0) | |
| } else if (P.action.record) { | |
| var H = P.data; | |
| H.Entity = CrmWidgets.Utils.GetTabNameFromSysRef(H.Entity); | |
| var M = "200"; | |
| "OPEN" === P.action.record ? CrmWidgets.Utils.isMobileWidget() ? M = CrmWidgets.Utils.getJSInterface().openDetailsView(s.getHandShakeToken(), H.Entity, H.RecordID) : WidgetHandler.Utils.loadDetailPage(H) : "EDIT" === P.action.record ? CrmWidgets.Utils.isMobileWidget() ? M = CrmWidgets.Utils.getJSInterface().editRecord(s.getHandShakeToken(), H.Entity, H.RecordID) : WidgetHandler.Utils.loadEditPage(H) : "CREATE" === P.action.record ? CrmWidgets.Utils.isMobileWidget() ? M = CrmWidgets.Utils.getJSInterface().addRecord(s.getHandShakeToken(), H.Entity) : WidgetHandler.Utils.loadCreatePage(H) : "POPULATE" === P.action.record && WidgetHandler.Utils.populateForm(P.data), | |
| "200" == M ? i(!0) : n(new CrmWidgets.Exceptions.widgetInterfaceException(M)) | |
| } else if (P.action.setting) { | |
| if ("OPEN" === P.action.setting) { | |
| var F = P.data | |
| , j = F.target | |
| , k = F.APIName; | |
| if (k.includes("__")) { | |
| (Q = CrmWidgets.Utils.GetCustomSettingsIDbyAPI(k)) && CrmWidgets.Utils.lyteTransitTo(Q, F.Message, "crm.settings.section.widget", j) | |
| } else { | |
| var B = Lyte.Router.getRoute(CrmWidgets.Utils.getCrmBasePath() + "/settings/" + k); | |
| Lyte.Router.transitionTo(B) | |
| } | |
| } | |
| } else if (P.action.popup) | |
| "CLOSE" === P.action.popup && WidgetHandler.PopUp.close(), | |
| "CLOSE_RELOAD" === P.action.popup && WidgetHandler.PopUp.close(!0), | |
| i(!0); | |
| else if ("RESIZE" === P.action) { | |
| if (CrmWidgets.Utils.isMobileWidget()) | |
| return void i(!0); | |
| var z = a.DIMENSION | |
| , q = (z.ALLOWED_PROP, | |
| P.data) | |
| , G = CrmWidgets.Utils.getDimensionCss(q, z) | |
| , V = !1; | |
| "30" === a.TYPE ? 0 === G.height ? G.hideParent = !0 : G.hideParent = !1 : "55" === a.TYPE && (r = $("#widget_StandAlone_Panel")[0], | |
| V = !0), | |
| WidgetHandler.Utils.resize(r, G, V), | |
| i(!0) | |
| } else if (P.action.webTab) { | |
| if ("OPEN" === P.action.webTab) { | |
| var J = (ee = P.data).Entity | |
| , Z = ee.Message | |
| , Y = ee.target; | |
| M = "200"; | |
| if (CrmWidgets.Utils.isMobileWidget()) { | |
| var K = JSON.stringify({ | |
| data: JSON.stringify(Z), | |
| dataType: typeof Z | |
| }); | |
| return void ("200" == (M = CrmWidgets.Utils.getJSInterface().openWebTabWidget(s.getHandShakeToken(), J, K)) ? i(!0) : n(new CrmWidgets.Exceptions.widgetInterfaceException(M))) | |
| } | |
| if (b = CrmWidgets.Utils.GetTabNameFromSysRef(J)) { | |
| var X = Crm.userDetails.MODULE_LIST[b]; | |
| if (X) { | |
| var Q = X.id; | |
| if (WidgetHandler.WidgetConfig && WidgetHandler.WidgetConfig.WebTab && WidgetHandler.WidgetConfig.WebTab[Q]) | |
| return CrmWidgets.Utils.openWebTab(Q, b, Z, null, Y), | |
| void i(!0) | |
| } | |
| } | |
| i(!1) | |
| } else if ("HISTORY" === P.action.webTab) { | |
| l = P.data; | |
| new Promise(function(e) { | |
| var t = Lyte.Router.getRouteInstance().transition.info.route | |
| , a = Lyte.Router.getRouteInstance().transition.info.dynamicParams; | |
| Lyte.Router.transitionTo({ | |
| route: t, | |
| dynamicParams: a, | |
| queryParams: { | |
| widgetparams: JSON.stringify(l) | |
| } | |
| }), | |
| e(!0) | |
| } | |
| ).then(i).catch(n) | |
| } | |
| } else if (P.action.StandAlone) { | |
| if ("OPEN" === P.action.StandAlone) { | |
| var ee, te = (ee = P.data).Message; | |
| CrmWidgets.Utils.isMobileWidget() || WidgetHandler.WidgetConfig && WidgetHandler.WidgetConfig.StandAlone && (CrmWidget.StandAlone ? WidgetHandler.EventNotifier.pageLoad(CrmWidget.StandAlone, te || {}) : WidgetHandler.StandAlone.render(te), | |
| i(!0)), | |
| i(!1) | |
| } | |
| "CLOSE" === P.action.StandAlone && (WidgetHandler.StandAlone.hide(), | |
| i(!0)) | |
| } | |
| } else if ("CONFIG" === P.category) { | |
| if (o.authorize("READ"), | |
| "CURRENT_USER" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetUsers), | |
| l = { | |
| type: "CurrentUser" | |
| }; | |
| s.get(c, l).then(function(e) { | |
| return d.isBeta() && e.users ? e.users : e | |
| }).then(i).catch(n) | |
| } else if ("ORG_LEVEL_INFO" === P.type) { | |
| var ae = Crm.userDetails | |
| , ie = { | |
| deployment: ae.DEPLOYMENT, | |
| zgid: ae.ZGID, | |
| zuid: ae.ZUID | |
| }; | |
| (Crm.isVertical || Crm.isSolution) && (ie.appDetails = { | |
| url: window.location.protocol + "//" + window.location.hostname, | |
| name: Crm.Vertical.appName | |
| }), | |
| new Promise(function(e) { | |
| return e(ie) | |
| } | |
| ).then(i).catch(n) | |
| } else if ("CREATEUSER" === P.type) { | |
| o.authorize("CREATE"); | |
| l = P.APIData, | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetUsers); | |
| var ne = JSON.stringify(l); | |
| s.post(c, ne).then(function(e) { | |
| return d.isBeta() && e.users ? e.users : e | |
| }).then(i).catch(n) | |
| } else if ("EDITUSER" === P.type) { | |
| o.authorize("UPDATE"); | |
| l = P.APIData, | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetUser, l.id), | |
| ne = JSON.stringify(l.userobject); | |
| s.put(c, ne).then(function(e) { | |
| return d.isBeta() && e.users ? e.users : e | |
| }).then(i).catch(n) | |
| } else if ("DELETEUSER" === P.type) { | |
| o.authorize("DELETE"); | |
| l = P.APIData, | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetUser, l.id); | |
| s.del(c).then(function(e) { | |
| return d.isBeta() && e.users ? e.users : e | |
| }).then(i).catch(n) | |
| } else if ("VARIABLE" === P.type) { | |
| var re = P.nameSpace; | |
| "object" == typeof re && (re = re.apiKeys.toString()); | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetOrgVariable, re); | |
| s.get(c, l).then(i).catch(n) | |
| } else if ("ORG" === P.type) { | |
| c = CrmWidgets.APIHelper.APISpec.GetOrgInfo; | |
| s.get(c, void 0).then(function(e) { | |
| return d.isBeta() && e.org ? e.org[0] : e | |
| }).then(i).catch(n) | |
| } | |
| } else if ("ACTION" === P.category) { | |
| if ("CUSTOM_ACTION_SAVE_CONFIG" === P.type && wfCustomActions.selectedAction && wfCustomActions.selectedAction.widgetId === a.ID && (wfCustomActions.SavedConfig = P.object, | |
| wfCustomActions.validateCustomAction() ? (wfCustomActions.saveCustomAction(), | |
| i(!0)) : n(!1)), | |
| "ENABLE_ACCOUNT_ACCESS" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.EnableAccountAccess); | |
| s.post(c).then(function() { | |
| WidgetHandler.PopUp.close() | |
| }).then(i).catch(n) | |
| } | |
| } else if ("USER" === P.category) { | |
| if (o.authorize("READ"), | |
| P.ID) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetUser, P.ID); | |
| s.get(c, void 0).then(function(e) { | |
| return d.isBeta() && e.users ? e.users[0] : e | |
| }).then(i).catch(n) | |
| } else if (P.Type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetUsers), | |
| l = { | |
| type: P.Type | |
| }; | |
| P.page && (l.page = P.page), | |
| P.per_page && (l.per_page = P.per_page), | |
| s.get(c, l).then(function(e) { | |
| return d.isBeta() && e.users || e | |
| }).then(i).catch(n) | |
| } | |
| } else if ("META" === P.category) { | |
| if ("FIELD_LIST" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetFields, P.Entity); | |
| s.get(c, void 0).then(i).catch(n) | |
| } else if ("MODULE_LIST" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetModuleList); | |
| s.get(c, void 0).then(i).catch(n) | |
| } else if ("ASSIGNMENT_RULES" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetAssignmentRules, P.Entity); | |
| s.get(c, void 0).then(i).catch(n) | |
| } else if ("LAYOUTS" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetLayouts, P.Entity); | |
| s.get(c, void 0).then(i).catch(n) | |
| } else if ("LAYOUT" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetLayout, P.Id, P.Entity); | |
| s.get(c, void 0).then(i).catch(n) | |
| } else if ("RELATED_LIST" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetRelatedList, P.Entity); | |
| s.get(c, void 0).then(i).catch(n) | |
| } else if ("CUSTOM_VIEWS" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetCustomViews, P.Entity); | |
| s.get(c, void 0).then(i).catch(n) | |
| } else if ("CUSTOM_VIEW" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetCustomView, P.Id, P.Entity); | |
| s.get(c, void 0).then(i).catch(n) | |
| } else if ("EMAIL" === P.type && "GET_ALIAS" === P.subType) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetEmailFromAliases); | |
| s.get(c, void 0).then(i).catch(n) | |
| } | |
| } else if ("PROFILES" === P.category) { | |
| if ("GET_ALL_PROFILES" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetAllProfiles); | |
| s.get(c, void 0).then(function(e) { | |
| return e | |
| }).then(i).catch(n) | |
| } else if ("GET_PROFILE" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetProfile, P.ID); | |
| s.get(c, void 0).then(function(e) { | |
| return e.users ? e.users[0] : e | |
| }).then(i).catch(n) | |
| } | |
| } else if ("TEMPLATES" === P.category) { | |
| if ("GET_ALL_TEMPLATES" === P.type) { | |
| c = CrmWidgets.APIHelper.generatorURL(CrmWidgets.APIHelper.APISpec.GetAllTemplates, P.Type, P.Entity); | |
| s.get(c, void 0).then(function(e) { | |
| return e | |
| }).then(i).catch(n) | |
| } | |
| } | |
| } | |
| } | |
| , | |
| $(document).ready(function() { | |
| ZApp.Bootstrap({ | |
| EventListeners: { | |
| CRM_EVENT: CrmWidgets.Utils.messageHandler | |
| } | |
| }) | |
| }), | |
| window.addEventListener("message", function(e) { | |
| "string" == typeof e.data && -1 < e.data.indexOf("CONNECTOR_SUCCESS") && CrmWidgets.Utils.resolveConnectorAuthorize(e.data.replace("CONNECTOR_SUCCESS_", "")), | |
| "string" == typeof e.data && -1 < e.data.indexOf("CONNECTOR_ERROR") && CrmWidgets.Utils.rejectConnectorAuthorize(e.data.replace("CONNECTOR_ERROR_", "")) | |
| }), | |
| window.addEventListener("popstate", function() { | |
| CrmWidget && CrmWidget.currentWidget && WidgetHandler.EventNotifier.historyPopState(CrmWidget[CrmWidget.currentWidget]) | |
| }); | |
| var crmWidgetsObj = { | |
| STATUS: !1, | |
| ERROR_POPUP_DELAY: 15e8, | |
| ERROR: "error", | |
| SUCCESS: "success", | |
| SUCCESS_POPUP_DELAY: 3e3, | |
| timer: 0, | |
| AJAX_TYPE: { | |
| GET: "GET", | |
| POST: "POST", | |
| PUT: "PUT", | |
| DELETE: "DELETE" | |
| }, | |
| URL: "/crm/v2/settings/widgets" | |
| }; | |
| crmWidgetsObj.URL_POSITION = crmWidgetsObj.URL + "/position", | |
| crmWidgetsObj.TYPE = { | |
| INSTALLED: "installed", | |
| UNINSTALLED: "uninstalled", | |
| ORG: "org" | |
| }, | |
| crmWidgetsObj.file = "", | |
| crmWidgetsObj.regex = /[^~`^*(){}[\]|\;"<>\\]/g, | |
| crmWidgetsObj.dependancy = "", | |
| crmWidgetsObj.installedWidgets = [], | |
| crmWidgetsObj.prevHtml = "", | |
| crmWidgetsObj.currentCategory = "", | |
| crmWidgetsObj.depObj, | |
| crmWidgetsObj.errorCode = { | |
| DEFAULT_URL: { | |
| url: Crm.getCrmBasePath() + "/ShowTab.do?module=Setup", | |
| data: { | |
| module: "Setup", | |
| toolTip: "Setup", | |
| isFromBack: "true", | |
| fetchNotifications: "true", | |
| isload: "true", | |
| clearCache: "false" | |
| } | |
| }, | |
| INTERNAL_ERROR: { | |
| code: "INTERNAL_ERROR", | |
| message: I18n.getMsg("crm.label.widgets.error.internal") | |
| }, | |
| CANNOT_DELETE: { | |
| code: "CANNOT_DELETE", | |
| message: I18n.getMsg("crm.label.widgets.error.cannotdelete") | |
| }, | |
| UNCONFIRMED_EMAIL: { | |
| code: "UNCONFIRMED_EMAIL", | |
| error_popup: !0, | |
| width: "500px", | |
| previousState: !0, | |
| message: I18n.getMsg("crm.label.widgets.error.email.unconfirmed") | |
| }, | |
| LIMIT_EXCEEDED: { | |
| code: "LIMIT_EXCEEDED", | |
| error_popup: !0, | |
| width: "500px", | |
| previousState: !0, | |
| message: I18n.getMsg("crm.massmail.limit.title") | |
| }, | |
| INVALID_INPUT: { | |
| code: "INVALID_DATA", | |
| message: I18n.getMsg("crm.label.widgets.error.internal") | |
| }, | |
| PATTERN_NOT_MATCHED: { | |
| code: "PATTERN_NOT_MATCHED", | |
| message: I18n.getMsg("crm.label.widgets.properinput") | |
| }, | |
| INVALID_URL: { | |
| code: "INVALID_URL", | |
| message: I18n.getMsg("crm.label.widgets.error.url") | |
| }, | |
| CONNECTION_TIMEOUT: { | |
| code: "CONNECTION_TIMEOUT", | |
| message: I18n.getMsg("crm.label.widgets.error.connection.timeout") | |
| }, | |
| AUTHORIZATION_FAILED: { | |
| code: "AUTHORIZATION_FAILED", | |
| message: I18n.getMsg("crm.label.widgets.error.authorization") | |
| }, | |
| NO_PERMISSION: { | |
| code: "NO_PERMISSION", | |
| message: I18n.getMsg("crm.label.cf.error.authorization") | |
| }, | |
| NO_DATA: { | |
| code: "NO_DATA", | |
| message: I18n.getMsg("crm.label.widgets.error.nodata") | |
| }, | |
| IMPROPER_FILE: { | |
| code: "IMPROPER FILE", | |
| message: I18n.getMsg("crm.label.widgets.propfile") | |
| }, | |
| FEATURE_NOT_AVAILABLE: { | |
| code: "FEATURE_NOT_AVAILABLE", | |
| message: I18n.getMsg("crm.label.widgets.error.feature.unsupported") | |
| } | |
| }, | |
| crmWidgetsObj.url = "/crm/v2/settings/widgets", | |
| crmWidgetsObj.loadListView = function(a, e, t, i, n, r) { | |
| var s = crmWidgetsObj.URL | |
| , o = { | |
| source: "crm" | |
| }; | |
| i && (o.position = i), | |
| crmWidgetsObj.dependancy && (o.dependancy = crmWidgetsObj.dependancy), | |
| r && (crmWidgetsObj.depObj = r), | |
| crmWidgetsObj.makeAjaxCall(s, crmWidgetsObj.AJAX_TYPE.GET, o, function(e) { | |
| if ($("#" + a).html(Handlebars.templates.CrmWidgetsListViewHeaders()).css({ | |
| "z-index": 31 | |
| }), | |
| $("#crmWidgetsListViewContentHeader").html(Handlebars.templates.CrmWidgetsListViewContentHeader()), | |
| crmWidgetsObj.currentCategory = i, | |
| e && e.crm_widgets) { | |
| var t = e.crm_widgets; | |
| i && "SETUP_PAGE" == i && (t.dep_obj = crmWidgetsObj.depObj, | |
| t.forEach(function(e) { | |
| e.installed = crmWidgetsObj.installedWidgets.contains(e.widgets_id) | |
| })), | |
| i && Utils.getValueFromObj(window, ["ProcessBuilder", "WidgetKey"]) === i && (t.dep_obj = crmWidgetsObj.depObj), | |
| $("tbody#crmWidgetsListViewContent").html(Handlebars.templates.CrmWidgetsListViewContent(t)) | |
| } else | |
| $("tbody#crmWidgetsListViewContent").html(Handlebars.templates.CrmWidgetsListViewContent("")); | |
| crmui.showPopup(a), | |
| n && $("#wid_row_" + n).addClass("lastActive"), | |
| setTimeout(function() { | |
| crmWidgetsObj.descSeemoreShow() | |
| }, 500) | |
| }, void 0) | |
| } | |
| , | |
| crmWidgetsObj.makeAjaxCall = function(e, t, a, i, n) { | |
| var r = { | |
| "X-ZCSRF-TOKEN": csrfParamName + "=" + csrfToken | |
| }; | |
| -1 < window.location.href.indexOf("/settings/widgets") && (r.isFrom = "widget"), | |
| t = t || crmWidgetsObj.TYPE.POST, | |
| !a || t != crmWidgetsObj.AJAX_TYPE.POST && t != crmWidgetsObj.AJAX_TYPE.PUT || (a = JSON.stringify(a)), | |
| Utils.showHideLoadingDiv(!0), | |
| (new crmRequestPool).initiate({ | |
| action: e, | |
| type: t, | |
| headers: r, | |
| data: a, | |
| success: function(e) { | |
| Utils.showHideLoadingDiv(!1), | |
| e && e.status && "error" == e.status ? (e.responseJSON = e, | |
| n ? n(e) : crmWidgetsObj.showErrorMessage(e.responseJSON, !0, !0, void 0, !0)) : i(e) | |
| }, | |
| error: function(e) { | |
| Utils.showHideLoadingDiv(!1), | |
| n ? n(e) : crmWidgetsObj.showErrorMessage(e.responseJSON, !0, !0, void 0, !0) | |
| } | |
| }) | |
| } | |
| , | |
| crmWidgetsObj.showErrorMessage = function(e, t, a, i, n, r, s) { | |
| var o, d = crmWidgetsObj.errorCode; | |
| if (Utils.showHideLoadingDiv(!1), | |
| "AUTHENTICATION_FAILURE" !== (o = e ? e.code ? e.code : e : "") && "NO_CRM_ACCOUNT" !== o && (!s || 1 != s)) { | |
| var l, c, g; | |
| switch (o) { | |
| case d.UNCONFIRMED_EMAIL.code: | |
| l = d.UNCONFIRMED_EMAIL.error_popup, | |
| c = d.UNCONFIRMED_EMAIL.message, | |
| g = d.UNCONFIRMED_EMAIL.width, | |
| i = d.UNCONFIRMED_EMAIL.previousState; | |
| var p = {} | |
| , u = crmConstants.helpUrl["help.domain.url"] + crmConstants.helpUrl["help.customization.widgets.support"]; | |
| p.widgetSupportHelpLink = I18n.getMsg("crm.label.widgets.getstarted.label1", u), | |
| Lyte.Router.getRouteInstance().htmlContent = Handlebars.templates.CrmWidgetsWelcome(p); | |
| break; | |
| case d.INVALID_INPUT.code: | |
| c = d.INVALID_INPUT.message; | |
| break; | |
| case d.INVALID_URL.code: | |
| c = d.INVALID_URL.message; | |
| break; | |
| case d.PATTERN_NOT_MATCHED.code: | |
| c = d.PATTERN_NOT_MATCHED.message; | |
| break; | |
| case d.CONNECTION_TIMEOUT.code: | |
| c = d.CONNECTION_TIMEOUT.message; | |
| break; | |
| case d.AUTHORIZATION_FAILED.code: | |
| c = d.AUTHORIZATION_FAILED.message; | |
| break; | |
| case d.NO_PERMISSION.code: | |
| c = d.NO_PERMISSION.message; | |
| break; | |
| case d.CANNOT_DELETE.code: | |
| c = d.CANNOT_DELETE.message; | |
| break; | |
| case d.NO_DATA.code: | |
| c = d.NO_DATA.message; | |
| break; | |
| case d.IMPROPER_FILE.code: | |
| return c = d.IMPROPER_FILE.message, | |
| void $("#widgetsNoFile").html(c).show(); | |
| case d.FEATURE_NOT_AVAILABLE.code: | |
| c = d.FEATURE_NOT_AVAILABLE.message; | |
| break; | |
| case d.LIMIT_EXCEEDED.code: | |
| c = d.LIMIT_EXCEEDED.message; | |
| break; | |
| default: | |
| c = d.INTERNAL_ERROR.message | |
| } | |
| l ? crmWidgetsObj.showErrorPopup(c, g, i) : (r ? crmui.showMsgBand(crmWidgetsObj.ERROR, c, r) : crmui.showMsgBand(crmWidgetsObj.ERROR, c, crmWidgetsObj.ERROR_POPUP_DELAY), | |
| a && $("#crm-msg-close").on("click", function() { | |
| crmWidgetsObj.restoreState(i) | |
| })) | |
| } | |
| } | |
| , | |
| crmWidgetsObj.restoreState = function(e) { | |
| hideFreezeLayer(), | |
| removeFreezeLayer(), | |
| e && Lyte.Router.transitionTo("crm.settings.index") | |
| } | |
| , | |
| crmWidgetsObj.associatedWidget = function(e, t, a) { | |
| switch (t) { | |
| case "related_list": | |
| case "RELATED_LIST": | |
| CustomRelatedListObj.saveWidgetInfo(e); | |
| break; | |
| case "webtab": | |
| case "WEBTAB": | |
| webTabJSObject.saveWidgetInfo(e); | |
| break; | |
| case "custom_button": | |
| case "CUSTOM_BUTTON": | |
| CustomButtonJSObject.saveWidgetInfo(e); | |
| break; | |
| case "home_page_dashboard": | |
| case "HOME_PAGE_DASHBOARD": | |
| CrmDashboard.associateWidgets(e); | |
| break; | |
| case "SETUP_PAGE": | |
| case "setup_page": | |
| case "SETTINGS_WIDGET": | |
| case "settings_widget": | |
| crmSetup.associateWidgets(e, a); | |
| break; | |
| case "BLUEPRINT": | |
| ProcessBuilder.WidgetHandler.associateWidgets(e, a) | |
| } | |
| } | |
| , | |
| crmWidgetsObj.showCreateWidgetPopUp = function(s) { | |
| crmWidgetsObj.makeAjaxCall(crmWidgetsObj.URL_POSITION, crmWidgetsObj.AJAX_TYPE.GET, void 0, function(e) { | |
| if (e && e.crm_widgets) { | |
| for (var t = e.crm_widgets[0].category, a = Object.keys(t), i = [], n = a.length, r = 0; r < n; r++) | |
| i[r] = t[a[r]]; | |
| void 0 !== s && s.includes("salessignals") ? ($("#CrmWidgetsForm").html(Handlebars.templates.CrmWidgetsForm({ | |
| categoryArray: i, | |
| callFrom: s | |
| })), | |
| $("#widgetType").val("SALES_SIGNALS").change()) : $("#CrmWidgetsForm").html(Handlebars.templates.CrmWidgetsForm(i)), | |
| crmui.showPopup(CrmWidgetsForm), | |
| wfForm.initFormClick(), | |
| wfForm.inputfieldFocus() | |
| } | |
| }, void 0) | |
| } | |
| , | |
| crmWidgetsObj.createWidgets = function(i, n) { | |
| if (crmui.hideMsgBand(1), | |
| crmWidgetsObj.validateInput()) { | |
| var r = $("#widgetsSave"); | |
| r.attr("disabled", !0); | |
| var e = crmWidgetsObj.URL | |
| , t = $("#widgetHosting").val() | |
| , a = new FormData; | |
| if (a.append(csrfParamName, encodeURIComponent(csrfToken)), | |
| a.append("name", "" + $("#widgetFormName").val().trim()), | |
| a.append("description", "" + $("#widgetDescription").val()), | |
| a.append("type", "" + $("#widgetType").val()), | |
| a.append("hosting", t), | |
| "internal" === t) { | |
| if (!crmWidgetsObj.file) | |
| return r.attr("disabled", !1), | |
| void $("#widgetsNoFile").text(I18n.getMsg("crm.label.widgets.error.fileupload")).show(); | |
| a.append("file", crmWidgetsObj.file), | |
| a.append("start_url", $("#widgetIndexPage").val()) | |
| } else | |
| a.append("base_url", $("#widgetExternalUrl").val()); | |
| var s = { | |
| read: !0, | |
| update: !0, | |
| create: !0, | |
| delete: !0, | |
| connector: !0 | |
| }; | |
| a.append("permissions", JSON.stringify(s)), | |
| i || Utils.showHideLoadingDiv(!0); | |
| var o = new XMLHttpRequest; | |
| o.open(crmWidgetsObj.AJAX_TYPE.POST, e, !0), | |
| o.setRequestHeader("X-ZCSRF-TOKEN", csrfParamName + "=" + csrfToken), | |
| o.setRequestHeader("X-CRM-ORG", crmZgid), | |
| o.setRequestHeader("isFrom", "widget"), | |
| o.send(a), | |
| o.onload = function() { | |
| i || Utils.showHideLoadingDiv(!1); | |
| var e = JSON.parse(this.response); | |
| if (200 == this.status) | |
| if (crmWidgetsObj.file = "", | |
| i) | |
| $("#newRelatedListPopUpDiv").hide(), | |
| crmui.showMsgBand("success", I18n.getMsg("crm.label.widgets.create.success"), 5e3), | |
| crmWidgetsObj.loadListView("newRelatedListPopUpDiv", void 0, void 0, crmWidgetsObj.currentCategory, e.details.widgets_id); | |
| else if (void 0 !== n && n.includes("salessignals")) | |
| crmNTCGlobal.createWidSuccessCallBack(n, e); | |
| else { | |
| if (crmui.hidePopup("CrmWidgetsForm"), | |
| 0 === $(".contentRows").length) | |
| Lyte.Router.getRouteInstance().refresh().data = { | |
| isAjax: !1, | |
| newWidgetId: e.details.widgets_id | |
| }; | |
| else | |
| Lyte.Router.getRouteInstance().refresh().data = { | |
| isAjax: !0, | |
| newWidgetId: e.details.widgets_id | |
| }; | |
| crmui.showMsgBand("success", I18n.getMsg("crm.label.widgets.create.success"), 5e3) | |
| } | |
| else if (r.attr("disabled", !1), | |
| "invalid_url" === e.message) { | |
| var t = crmWidgetsObj.errorCode.INVALID_URL.message | |
| , a = $("#widgetsUrlError"); | |
| a.text(t), | |
| a.show() | |
| } else | |
| crmWidgetsObj.showErrorMessage(e.code, !0, !1, void 0, void 0, 1e8, void 0) | |
| } | |
| } | |
| } | |
| , | |
| crmWidgetsObj.showInputFields = function(e) { | |
| var t = $(".info_icon"); | |
| $("#widgetsSave").attr("disabled", !1), | |
| $("#widgetsNoFile, #widgetsHostingError").hide(); | |
| var a = $("#widgetsExternal") | |
| , i = $("#widgetsInternalUpload") | |
| , n = $("#widgetsInternal") | |
| , r = $("#widgetsInternalBase"); | |
| switch (t.hide(), | |
| e) { | |
| case "internal": | |
| a.hide(), | |
| i.show(), | |
| n.show(), | |
| "" != $("#widgetIndexPage2").val() && r.show(), | |
| t.show(), | |
| t.attr("onmouseover", "crmui.toolTip_show(this, 'left', '" + I18n.getMsg("crm.label.widgets.hosting.internal.info") + "');"), | |
| t.attr("onmouseout", "crmui.toolTip_hide();"); | |
| break; | |
| case "external": | |
| i.hide(), | |
| n.hide(), | |
| r.hide(), | |
| a.show(), | |
| t.show(), | |
| t.attr("onmouseover", "crmui.toolTip_show(this, 'left', '" + I18n.getMsg("crm.label.widgets.hosting.external.info") + "');"), | |
| t.attr("onmouseout", "crmui.toolTip_hide();"); | |
| break; | |
| default: | |
| a.hide(), | |
| i.hide(), | |
| r.hide(), | |
| n.hide() | |
| } | |
| } | |
| , | |
| crmWidgetsObj.deleteWidget = function(e) { | |
| showDeletePopup(I18n.getMsg("crm.label.widgets.delete.confirmation.message"), "crm.label.widgets.delete.yes", "", "", this), | |
| $("#deletepopup #deleteButton").unbind("click").click(function() { | |
| crmWidgetsObj.deleteWidgetById(e) | |
| }) | |
| } | |
| , | |
| crmWidgetsObj.deleteWidgetById = function(e) { | |
| var t = crmWidgetsObj.URL + "/" + e; | |
| hideAnimatePopup("deletepopup"), | |
| crmWidgetsObj.makeAjaxCall(t, crmWidgetsObj.AJAX_TYPE.DELETE, void 0, function() { | |
| Lyte.Router.getRouteInstance().refresh().data = { | |
| isAjax: !0 | |
| }, | |
| crmui.showMsgBand("success", I18n.getMsg("crm.label.widgets.delete.success"), 5e3) | |
| }, void 0) | |
| } | |
| , | |
| crmWidgetsObj.closeWidgetPopup = function() { | |
| hideFreezeLayer(), | |
| crmui.hidePopup("newRelatedListPopUpDiv, CrmWidgetsForm"); | |
| var e = $("#tab_widgetName"); | |
| void 0 === e || void 0 === e.val() || 0 !== e.val().length && "null" != e.val() || ($("#widget_checkbox").prop("checked", !1), | |
| $("#widgetNameDiv").addClass("hide"), | |
| $("#save_webTab").addClass("inActiveSec")), | |
| void 0 !== (e = $("#buttonAction")) && e.val("-1").trigger("change.select2"), | |
| (e = $("#editor-menuprop")[0]) && e.ltProp("show", !0) | |
| } | |
| , | |
| crmWidgetsObj.showAllAssociatedPlace = function() { | |
| for (var e = $("#widgetsAssociatedPlaces").val().split(","), t = e.length, a = "", i = 0; i < t; i++) | |
| a = a + I18n.getMsg("crm.label.widgets." + e[i]) + ","; | |
| a = a.substring(0, a.length - 1), | |
| $("#widgetsAPDiv").html(a) | |
| } | |
| , | |
| crmWidgetsObj.onFileSelected = function(e) { | |
| var t = $("#widgetsNoFile"); | |
| t.hide(); | |
| var a = (e = e || window.event).target.files[0]; | |
| if (a) { | |
| var i = a.name | |
| , n = a.size; | |
| if ("zip" != i.substring(i.lastIndexOf(".") + 1).toLowerCase()) | |
| $(".uploadedfileName").html(""), | |
| t.text(I18n.getMsg("crm.label.widgets.onlyzip")).show(); | |
| else if (26214400 < n) | |
| $(".uploadedfileName").html(""), | |
| t.text(I18n.getMsg("crm.mailmerge.filesize", 25)).show(); | |
| else { | |
| var r = 1048576 < n ? Math.ceil(n / 1024 / 1024) + I18n.getMsg("MB") : Math.ceil(n / 1024) + I18n.getMsg("KB"); | |
| crmWidgetsObj.file = a, | |
| $(".uploadbtnholder").addClass("fR").find('input[type="button"]').removeClass("primarybtn").addClass("newgreybtn").val(I18n.getMsg("crm.label.change")), | |
| $(".uploadedfileName").text(i + " (" + r + ")").removeClass("dN") | |
| } | |
| } | |
| } | |
| , | |
| crmWidgetsObj.renderSandboxDiffContent = function(e) { | |
| var t = "<div>" + Handlebars.templates.CrmWidgetsDetailPopUp(e) + "</div>" | |
| , a = $(t); | |
| return a.find(".pp-header,.pp-footer,.info_icon,.uploadbtnholder,button").remove(), | |
| a.find("table").attr("id", "widtable"), | |
| a.find(".uploadedfileName").attr("id", "uploadedfileName"), | |
| a.find("#widgetFormName,#widgetDescription,#widgetType,#widgetExternalUrl,#widgetIndexPage,#uploadedfileName,#widgetHosting,#widgetIndexPage2").addClass("sandboxDiffChanges"), | |
| a.html() | |
| } | |
| , | |
| crmWidgetsObj.showWidgetsPopUp = function(e, s) { | |
| var o = JSON.parse(e); | |
| crmWidgetsObj.makeAjaxCall(crmWidgetsObj.URL_POSITION, crmWidgetsObj.AJAX_TYPE.GET, void 0, function(e) { | |
| if (e && e.crm_widgets) { | |
| for (var t = e.crm_widgets[0].category, a = Object.keys(t), i = [], n = a.length, r = 0; r < n; r++) | |
| i[r] = t[a[r]]; | |
| o.categoryArray = i, | |
| void 0 !== s && s.includes("salessignals") ? $("#CrmWidgetsForm").html(Handlebars.templates.CrmWidgetsDetailPopUp({ | |
| json: o, | |
| source: s | |
| })) : $("#CrmWidgetsForm").html(Handlebars.templates.CrmWidgetsDetailPopUp({ | |
| json: o | |
| })), | |
| crmui.showPopup(CrmWidgetsForm), | |
| wfForm.initFormClick(), | |
| wfForm.inputfieldFocus() | |
| } | |
| }, void 0) | |
| } | |
| , | |
| crmWidgetsObj.updateWidgets = function(e, n) { | |
| crmui.hideMsgBand(1); | |
| var r = $("#widgetsSave"); | |
| if (crmWidgetsObj.validateInput()) { | |
| r.attr("disabled", !0); | |
| var t = crmWidgetsObj.URL + "/" + e | |
| , a = $("#widgetHosting").val() | |
| , i = new FormData; | |
| if (i.append(csrfParamName, encodeURIComponent(csrfToken)), | |
| i.append("name", "" + $("#widgetFormName").val().trim()), | |
| i.append("description", "" + $("#widgetDescription").val()), | |
| i.append("type", "" + $("#widgetType").val()), | |
| i.append("hosting", a), | |
| "internal" === a) { | |
| if (!crmWidgetsObj.file && "" == $("#widgetsInternalUpload .uploadedfileName").text()) | |
| return r.attr("disabled", !1), | |
| void $("#widgetsNoFile").text(I18n.getMsg("crm.label.widgets.error.fileupload")).show(); | |
| crmWidgetsObj.file && i.append("file", crmWidgetsObj.file), | |
| i.append("start_url", $("#widgetIndexPage").val()) | |
| } else | |
| i.append("base_url", $("#widgetExternalUrl").val()); | |
| var s = { | |
| read: !0, | |
| update: !0, | |
| create: !0, | |
| delete: !0, | |
| connector: !0 | |
| }; | |
| i.append("permissions", JSON.stringify(s)); | |
| var o = new XMLHttpRequest; | |
| o.open(crmWidgetsObj.AJAX_TYPE.PUT, t, !0), | |
| o.setRequestHeader("X-CRM-ORG", crmZgid), | |
| o.send(i), | |
| o.onload = function() { | |
| var e = JSON.parse(this.response); | |
| if (200 == this.status) | |
| void 0 !== n && n.includes("salessignals") ? crmNTCGlobal.updateWidSuccessCallBack(n, e) : (crmWidgetsObj.file = "", | |
| crmui.hidePopup("CrmWidgetsForm"), | |
| Lyte.Router.getRouteInstance().refresh().data = { | |
| isAjax: !0, | |
| newWidgetId: e.details.widgets_id | |
| }, | |
| crmui.showMsgBand("success", I18n.getMsg("crm.label.widgets.update.success"), 5e3)); | |
| else if (void 0 !== n && n.includes("salessignals")) { | |
| var t = widget_name + "Sorry, Internal Error Occured! Please try again."; | |
| crmNTCManage.showErrorMessage(t) | |
| } else if (r.attr("disabled", !1), | |
| "invalid_url" === e.message) { | |
| var a = crmWidgetsObj.errorCode.INVALID_URL.message | |
| , i = $("#widgetsUrlError"); | |
| i.text(a), | |
| i.show() | |
| } else | |
| crmWidgetsObj.showErrorMessage(e.code, !0, !1, void 0, void 0, 1e8, void 0) | |
| } | |
| } | |
| } | |
| , | |
| crmWidgetsObj.showOptionList = function(e) { | |
| $(e).next("#settingActions").show() | |
| } | |
| , | |
| crmWidgetsObj.mouseEnterActions = function(e) { | |
| var t = $(e); | |
| t.find(".settingsIcons").show(), | |
| t.last("td").find(".assocFn").removeClass("vH") | |
| } | |
| , | |
| crmWidgetsObj.mouseLeaveActions = function(e) { | |
| var t = $(e); | |
| t.find(".settingsIcons, #settingActions").hide(), | |
| t.last("td").find(".assocFn").addClass("vH") | |
| } | |
| , | |
| crmWidgetsObj.showCreatePopupInListView = function() { | |
| crmWidgetsObj.prevHtml = $("#newRelatedListPopUpDiv").html(), | |
| crmWidgetsObj.makeAjaxCall(crmWidgetsObj.URL_POSITION, crmWidgetsObj.AJAX_TYPE.GET, void 0, function(e) { | |
| if (e && e.crm_widgets) { | |
| for (var t = $("#newRelatedListPopUpDiv"), a = e.crm_widgets[0].category, i = Object.keys(a), n = [], r = i.length, s = 0; s < r; s++) | |
| n[s] = a[i[s]]; | |
| var o = {}; | |
| o.categoryArray = n, | |
| o.listView = !0, | |
| o.type = crmWidgetsObj.currentCategory, | |
| t.html(Handlebars.templates.CrmWidgetsForm(o)), | |
| crmui.showPopup("newRelatedListPopUpDiv"), | |
| t.removeClass("w800"), | |
| t.css("width", "initial"), | |
| select2ChangesInFields(t), | |
| wfForm.initFormClick(), | |
| wfForm.inputfieldFocus() | |
| } | |
| }, void 0) | |
| } | |
| , | |
| crmWidgetsObj.showPreviousPopup = function() { | |
| var e = $("#newRelatedListPopUpDiv"); | |
| e.html(crmWidgetsObj.prevHtml), | |
| e.css("width", "1000px"), | |
| crmui.showPopup("newRelatedListPopUpDiv") | |
| } | |
| , | |
| crmWidgetsObj.validateInput = function() { | |
| var e = !0; | |
| if ($("#widgetFormName").val().trim()) | |
| if ("" != (n = getClrTxtPtnResChars($("#widgetFormName").val().trim(), crmWidgetsObj.regex))) { | |
| var t = I18n.getMsg("crm.label.widgets.name"); | |
| $("#widgetsNameError").text(1 === n.length ? I18n.getMsg("crm.clearTextPattern.validationFail.alert", [t, n]) : I18n.getMsg("crm.clearTextPattern.validationFail.alert.moreThanOneChar", [t, n])).show(), | |
| e = !1 | |
| } else | |
| $("#widgetsNameError").hide(); | |
| else | |
| $("#widgetsNameError").text(I18n.getMsg("crm.label.widgets.error.name")).show(), | |
| e = !1; | |
| var a = $("#widgetType").val(); | |
| a && "none" !== a ? $("#widgetsTypeError").hide() : ($("#widgetsTypeError").text(I18n.getMsg("crm.label.widgets.error.type")).show(), | |
| e = !1); | |
| var i = $("#widgetHosting").val(); | |
| if (i && "none" !== i) | |
| if ($("#widgetsHostingError").hide(), | |
| "internal" == i) { | |
| if ($("#widgetIndexPage").val()) | |
| if ($("#widgetIndexPage").val().startsWith("/")) { | |
| if ("" != (n = getClrTxtPtnResChars($("#widgetIndexPage").val(), crmWidgetsObj.regex))) { | |
| t = I18n.getMsg("crm.label.widgets.indexpage"); | |
| $("#widgetsStartUrlError").text(1 === n.length ? I18n.getMsg("crm.clearTextPattern.validationFail.alert", [t, n]) : I18n.getMsg("crm.clearTextPattern.validationFail.alert.moreThanOneChar", [t, n])).show(), | |
| e = !1 | |
| } else | |
| $("#widgetsStartUrlError").hide() | |
| } else | |
| $("#widgetsStartUrlError").text(I18n.getMsg("crm.label.widgets.indexpage") + " " + I18n.getMsg("crm.condition.doesnot.startswith") + " /").show(), | |
| e = !1; | |
| else | |
| $("#widgetsStartUrlError").text(I18n.getMsg("crm.label.widgets.error.start_url")).show(), | |
| e = !1; | |
| crmWidgetsObj.file || "" != $("#widgetsInternalUpload .uploadedfileName").text() ? $("#widgetsNoFile").hide() : ($("#widgetsNoFile").text(I18n.getMsg("crm.label.widgets.error.fileupload")).show(), | |
| e = !1) | |
| } else { | |
| var n; | |
| if ($("#widgetExternalUrl").val()) | |
| if ("" != (n = getClrTxtPtnResChars($("#widgetExternalUrl").val(), crmWidgetsObj.regex))) { | |
| t = I18n.getMsg("crm.label.widgets.baseurl"); | |
| $("#widgetsUrlError").text(1 === n.length ? I18n.getMsg("crm.clearTextPattern.validationFail.alert", [t, n]) : I18n.getMsg("crm.clearTextPattern.validationFail.alert.moreThanOneChar", [t, n])).show(), | |
| e = !1 | |
| } else | |
| $("#widgetsUrlError").hide(); | |
| else | |
| $("#widgetsUrlError").text(I18n.getMsg("crm.label.widgets.error.base_url")).show(), | |
| e = !1 | |
| } | |
| else | |
| $("#widgetsHostingError").text(I18n.getMsg("crm.label.widgets.error.hosting")).show(), | |
| e = !1; | |
| return e | |
| } | |
| , | |
| crmWidgetsObj.processFilter = function() { | |
| var e = $("#CrmWidgetsCustomizationListView"); | |
| e.addClass("mT25"); | |
| var t = $("#widgetListTable .topEdition"); | |
| t.show(), | |
| $(".lastActive").removeClass("lastActive"); | |
| var a = $("#widgetListTableFixed"); | |
| a.show(); | |
| var i = $("#widgetListTable") | |
| , n = i.find("tr"); | |
| n.show(); | |
| var r = $("#nowidgetdiv") | |
| , s = $("#crmWidgetCategoryList option:selected") | |
| , o = $("#crmWidgetConfigList option:selected"); | |
| "all" !== o.val() && t.hide(), | |
| r.hide(); | |
| var d = i.find("tbody"); | |
| d.show(), | |
| n.each(function() { | |
| var e = $(this); | |
| "-1" !== s.val() && (e.hasClass(s.val()) || e.hide()), | |
| "all" !== o.val() && (e.hasClass(o.val()) || e.hide()) | |
| }), | |
| 0 === $(".contentRows:visible").length && (a.hide(), | |
| r.fadeIn(150), | |
| d.hide(), | |
| e.removeClass("mT25")) | |
| } | |
| , | |
| crmWidgetsObj.descSeemoreShow = function() { | |
| $(".descText").each(function() { | |
| var e = $(this) | |
| , t = e.parent().width() - 30 | |
| , a = e.innerWidth() | |
| , i = e[0].scrollWidth | |
| , n = e.parent("td").width(); | |
| a < i ? e.css({ | |
| "white-space": "nowrap", | |
| "text-overflow": "ellipsis", | |
| float: "left", | |
| width: n | |
| }).attr("onclick", '$(this).removeAttr("style").removeClass("descText");sE(event);') : e.css({ | |
| width: t | |
| }) | |
| }) | |
| } | |
| , | |
| crmWidgetsObj.fixedTblheader = function() { | |
| var e = $("#widgetListTable").offset().top | |
| , t = Utils.windowHeight - e - 28; | |
| $("#CrmWidgetsCustomizationListViewTable").height(t) | |
| } | |
| , | |
| crmWidgetsObj.showErrorPopup = function(e) { | |
| crmui.showMsgBand("error", e, 5e3), | |
| hideFreezeLayer(), | |
| removeFreezeLayer() | |
| } | |
| , | |
| crmWidgetsObj.init = function() { | |
| Handlebars.registerPartial("CrmWidgetsForm", Handlebars.templates.CrmWidgetsForm), | |
| Handlebars.registerPartial("CrmWidgetsDetailPopUp", Handlebars.templates.CrmWidgetsDetailPopUp), | |
| Handlebars.registerPartial("CrmWidgetsListView", Handlebars.templates.CrmWidgetsListView), | |
| Handlebars.registerPartial("CrmWidgetsBody", Handlebars.templates.CrmWidgetsBody), | |
| Handlebars.registerPartial("CrmWidgetsListViewHeaders", Handlebars.templates.CrmWidgetsListViewHeaders), | |
| Handlebars.registerPartial("CrmWidgetsListViewContentHeader", Handlebars.templates.CrmWidgetsListViewContentHeader), | |
| Handlebars.registerPartial("CrmWidgetsListViewContent", Handlebars.templates.CrmWidgetsListViewContent) | |
| } | |
| , | |
| crmWidgetsObj.processClientForSandbox = function() { | |
| var t = $("#parentObj_sandboxChanges") | |
| , a = $("#sandboxObj_sandboxChanges"); | |
| t.on("scroll", function() { | |
| var e = $(this) | |
| , t = $("#sandboxObj_sandboxChanges"); | |
| t.scrollTop(e.scrollTop()), | |
| t.scrollLeft(e.scrollLeft()) | |
| }), | |
| a.on("scroll", function() { | |
| var e = $(this) | |
| , t = $("#parentObj_sandboxChanges"); | |
| t.scrollTop(e.scrollTop()), | |
| t.scrollLeft(e.scrollLeft()) | |
| }), | |
| Utils.bindPerfectScroll("#parentObj_sandboxChanges", { | |
| wheelSpeed: 1, | |
| wheelPropagation: !0, | |
| suppressScrollX: !1 | |
| }), | |
| Utils.bindPerfectScroll("#sandboxObj_sandboxChanges", { | |
| wheelSpeed: 1, | |
| wheelPropagation: !0, | |
| suppressScrollX: !1 | |
| }); | |
| var i = "#FAE3B1"; | |
| $("#sandboxObj_sandboxChanges .sandboxDiffChanges").each(function() { | |
| var e = t.find("[id='parent_" + this.id + "']"); | |
| null !== this && null !== this.id && "" !== this.id && (("text" !== this.type && "textarea" !== this.type || $(this).val() === e.val()) && ("select-multiple" !== this.type && "select-one" !== this.type || $(this).val() === e.val()) ? "radio" === this.type ? $(this).is(":checked") !== $(e).is(":checked") && ($(this).closest("tr").css("background-color", i), | |
| e.closest("tr").css("background-color", i)) : "checkbox" === this.type && $(this).is(":checked") !== e.is(":checked") ? ($(this).closest("tr").css("background-color", i), | |
| e.closest("tr").css("background-color", i)) : $(this).is("span") || $(this).is("div") ? $(this).children("span").length < 1 ? sandbox.setColorForElem($(this).closest("tr"), e.closest("tr"), $(this).text(), e.text()) : sandbox.setColorForElem($(this).closest("tr"), e.closest("tr"), "temp", void 0) : sandbox.setColorForElem($(this).closest("tr"), e.closest("tr"), $(this).val(), e.val()) : sandbox.setColorForElem($(this).closest("tr"), e.closest("tr"), $(this).val(), e.val())) | |
| }), | |
| $("#parentObj_sandboxChanges .sandboxDiffChanges").each(function() { | |
| var e = a.find("#" + this.id.replace("parent_", "")); | |
| if (null !== this && null !== this.id && "" !== this.id) | |
| if ("text" !== this.type && "textarea" !== this.type || $(this).val() === $(e).val()) | |
| if ("select-multiple" === this.type || "select-one" === this.type) { | |
| null !== sandbox.setColor(e.find(":selected").text(), $("#" + this.id).find(":selected").text()) && ($(this).addClass("sandbox_change"), | |
| e.addClass("sandbox_change")) | |
| } else | |
| $(this).is("div") ? sandbox.setColorForElem(e.find("textarea").closest("tr"), $(this).find("textarea").closest("tr"), e.text(), $(this).text()) : $(this).is("table") ? sandbox.compareTable($(this).find("tr"), e.find("tr"), "Schedules") : sandbox.setColorForElem(e.closest("tr"), $(this).closest("tr"), e.val(), $(this).val()); | |
| else | |
| sandbox.setColorForElem(e.closest("tr"), $(this).closest("tr"), e.val(), $(this).val()); | |
| else | |
| null !== this.id && null === e && $(this).closest("tr").css("background-color", "#FFD2D2") | |
| }) | |
| } | |
| , | |
| function() { | |
| var e = Handlebars.template | |
| , t = Handlebars.templates = Handlebars.templates || {}; | |
| t.CrmWidgetsBody = e({ | |
| 1: function(e, t, a, i, n) { | |
| var r = e.lambda | |
| , s = e.escapeExpression; | |
| return ' <option data-zcqa="wid_opt_' + s(r(t, t)) + '" value="' + s(r(t, t)) + '">' + s(a.getI18nByAppendKey.call(null != t ? t : {}, "crm.label.widgets.", t, { | |
| name: "getI18nByAppendKey", | |
| hash: {}, | |
| data: n | |
| })) + "</option> " | |
| }, | |
| 3: function(e, t, a, i, n) { | |
| return ' <td class="fR webInteg_zscKey" style="text-align: right; white-space: nowrap"><input data-zcqa="wid_newbtn" id="createWidgetButton" type="button" onclick="crmWidgetsObj.showCreateWidgetPopUp()" value="' + e.escapeExpression(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.button.create", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" class="primaryflatbtn mL30"></td> ' | |
| }, | |
| compiler: [7, ">= 4.0.0"], | |
| main: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}, o = e.escapeExpression; | |
| return '<div class="setup-space"> <div id="widgetsTabHeader" style="display: block;"> <div class="posrel"> <h2>' + o(a.getI18n.call(s, "crm.label.widgets", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</h2> <div class="posabs"> <a data-zcqa="wid_help" id="context-helplink" class="toplink dIB f13 lh18" onclick="openHelp(\'' + o(a.getHelpUrl.call(s, "help.customization.widgets.usewidget", "zoho", { | |
| name: "getHelpUrl", | |
| hash: {}, | |
| data: n | |
| })) + '\')" href="javascript:;">' + o(a.getI18n.call(s, "crm.label.context.help", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</a> </div> </div> <div class="mt15 content col444 w90per">' + o(a.getI18n.call(s, "crm.label.widgets.productinfo", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </div> <div> <div id="widgetHeaderLabel" class="mB25"></div> <div id="crmWidgetsListViewPopUp" class="mT25"></div> <table class="w100p" cellpadding="0" cellspacing="0" border="0"> <tbody> <tr> <td class="webInteg_zscKey nuEnhancFocusBox"> <div class="newSelect fL"> <select data-zcqa="wid_prfilter" class="newSelect" id="crmWidgetCategoryList" onchange="crmWidgetsObj.processFilter();"> <option data-zcqa="wid_opt_alltype" value="-1">' + o(a.getI18n.call(s, "crm.label.widgets.allType", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</option> " + (null != (r = a.each.call(s, null != t ? t.category : t, { | |
| name: "each", | |
| hash: {}, | |
| fn: e.program(1, n, 0), | |
| inverse: e.noop, | |
| data: n | |
| })) ? r : "") + ' </select> </div> <div class="newSelect fL mL20"> <select data-zcqa="wid_prfilter2" class="newSelect" id="crmWidgetConfigList" onchange="crmWidgetsObj.processFilter();"> <option data-zcqa="wid_opt_all" value="all">' + o(a.getI18n.call(s, "crm.globalsearch.option.all", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> <option data-zcqa="wid_opt_installed" value="installed">' + o(a.getI18n.call(s, "crm.newrelatedlist.gallery.installed", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> <option data-zcqa="wid_opt_notinstalled" value="notinstalled">' + o(a.getI18n.call(s, "crm.newrelatedlist.gallery.notinstalled", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> <option data-zcqa="wid_opt_extn" value="extn">' + o(a.getI18n.call(s, "crm.setup.label.extensions", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</option> </select> </div> </td> " + (null != (r = a.ifEquals.call(s, a.isAdvancePermission.call(s, { | |
| name: "isAdvancePermission", | |
| hash: {}, | |
| data: n | |
| }), "true", { | |
| name: "ifEquals", | |
| hash: {}, | |
| fn: e.program(3, n, 0), | |
| inverse: e.noop, | |
| data: n | |
| })) ? r : "") + ' </tr> </tbody> </table> <div id="crmWidgetsListViewHeader" class="mT25" data-loaded="true" data-load="true"></div> <div id="crmWidgetsListViewContentHeader" class="mT10" data-loaded="true" data-load="true"> <table id="crmWidgetsListViewContent" class="newListView bdrCollapse w100p"> <tbody> </tbody> </table> </div> <div id="CrmWidgetsCustomizationListView" class="mT25" data-loaded="true" data-load="true"></div> <div id="CrmWidgetsForm" class="newpopup is-scroll ppTop dN showPpTop newInputStyleEle newPopupStyleEle" style=" display: none;"></div> </div> </div> ' | |
| }, | |
| useData: !0 | |
| }), | |
| t.CrmWidgetsDetailPopUp = e({ | |
| 1: function(e, t, a, i, n) { | |
| return ' <span class="svgIcons ico-close op05 dIB cP r0" data-zcqa="wid_close" onclick="crmNTCGlobal.closePopupAndOpenSigPanel( \'CrmWidgetsForm\' , \'' + e.escapeExpression(e.lambda(null != t ? t.source : t, t)) + "' )\"></span> " | |
| }, | |
| 3: function(e, t, a, i, n) { | |
| return ' <span class="svgIcons ico-close op05 dIB cP r0" data-zcqa="wid_close" onclick="crmui.hidePopup(\'CrmWidgetsForm\');"></span> ' | |
| }, | |
| 5: function(e, t, a, i, n) { | |
| var r = null != t ? t : {} | |
| , s = e.escapeExpression; | |
| return ' <option data-zcqa="wid_opt_int" value="internal" selected="selected">' + s(a.getI18n.call(r, "crm.label.widgets.internal", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> <option data-zcqa="wid_opt_ext" value="external">' + s(a.getI18n.call(r, "crm.label.widgets.external", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</option> " | |
| }, | |
| 7: function(e, t, a, i, n) { | |
| var r = null != t ? t : {} | |
| , s = e.escapeExpression; | |
| return ' <option data-zcqa="wid_opt_int" value="internal">' + s(a.getI18n.call(r, "crm.label.widgets.internal", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> <option data-zcqa="wid_opt_ext" value="external" selected="selected">' + s(a.getI18n.call(r, "crm.label.widgets.external", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</option> " | |
| }, | |
| 9: function(e, t, a, i, n) { | |
| return ' <span data-zcqa="wid_tooltip" class="svgIcons info_icon mL10 cP dIB vtxtBot pA" style="top: 12px;right: -23px;" onmouseover="crmui.toolTip_show(this,\'left\',\'' + e.escapeExpression(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.hosting.internal.info", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '\');" onmouseout="crmui.toolTip_hide();"></span> ' | |
| }, | |
| 11: function(e, t, a, i, n) { | |
| return ' <span data-zcqa="wid_tooltip" class="svgIcons info_icon mL10 cP dIB vtxtBot pA" style="top: 12px;right: -23px;" onmouseover="crmui.toolTip_show(this,\'left\',\'' + e.escapeExpression(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.hosting.external.info", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '\');" onmouseout="crmui.toolTip_hide();"></span> ' | |
| }, | |
| 13: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}, o = e.escapeExpression, d = e.lambda; | |
| return ' <tr id="widgetsExternal" style="display: none"> <td class="wf_requiredMark"> <div>' + o(a.getI18n.call(s, "crm.label.widgets.baseurl", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_ip_base" id="widgetExternalUrl" type="text" value="" class="newinputText w100per" placeholder="https://zapps.zoho.com/zapps#apps/sample/index.html" /> <div class="form_err_msg" id="widgetsUrlError" style="display: none;"></div></td> </tr> <tr id="widgetsInternalUpload"> <td> <div class="wf_requiredMark">' + o(a.getI18n.call(s, "crm.label.widgets.fileupload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><span class="uploadedfileName color_1">' + o(d(null != (r = null != t ? t.json : t) ? r.file_name : r, t)) + '</span> <label class="uploadbtnholder fR"> <input data-zcqa="wid_btn_up" type="button" value="' + o(a.getI18n.call(s, "crm.button.change", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" class="newgreybtn"> <input data-zcqa="wid_ip_upd" id="widgetUploadFile" type="file" title="' + o(a.getI18n.call(s, "webform.fileupload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" onchange="crmWidgetsObj.onFileSelected(event);" accept=".zip" value="change"> </label><div class="form_err_msg zI10" id="widgetsNoFile" style="display: none;"></div></td> </tr> <tr id="widgetsInternalBase"> <td> <div class="wf_requiredMark">' + o(a.getI18n.call(s, "crm.label.widgets.baseurl", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_ip_sys_base" id="widgetIndexPage2" type="text" value="' + o(d(null != (r = null != t ? t.json : t) ? r.base_url : r, t)) + '" class="newinputText w100per" disabled ></input></td> </tr> <tr id="widgetsInternal"> <td> <div class="wf_requiredMark">' + o(a.getI18n.call(s, "crm.label.widgets.indexpage", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_ip_index" id="widgetIndexPage" type="text" value="' + o(d(null != (r = null != t ? t.json : t) ? r.start_url : r, t)) + '" class="newinputText w100per" placeholder="/sample/index.html" /> <div class="form_err_msg" id="widgetsStartUrlError" style="display: none;"></div></td> </tr> ' | |
| }, | |
| 15: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}, o = e.escapeExpression; | |
| return ' <tr id="widgetsExternal"> <td class="wf_requiredMark"> <div>' + o(a.getI18n.call(s, "crm.label.widgets.baseurl", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_ip_base" id="widgetExternalUrl" type="text" value="' + o(e.lambda(null != (r = null != t ? t.json : t) ? r.base_url : r, t)) + '" class="newinputText w100per" placeholder="https://zapps.zoho.com/zapps#apps/sample/index.html" /> <div class="form_err_msg" id="widgetsUrlError" style="display: none;"></div></td> </tr> <tr id="widgetsInternalUpload" style="display: none"> <td> <div class="wf_requiredMark">' + o(a.getI18n.call(s, "crm.label.widgets.fileupload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><span class="uploadedfileName dN color_1"></span> <label class="uploadbtnholder fL"> <input data-zcqa="wid_btn_up" type="button" value="' + o(a.getI18n.call(s, "crm.button.upload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" class="primarybtn"> <input data-zcqa="wid_ip_upd" id="widgetUploadFile" type="file" title="' + o(a.getI18n.call(s, "webform.fileupload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" onchange="crmWidgetsObj.onFileSelected(event);" accept=".zip" value="upload"> </label><div class="form_err_msg zI10" id="widgetsNoFile" style="display: none;"></div></td> </tr> <tr id="widgetsInternalBase" style="display: none"> <td> <div class="wf_requiredMark">' + o(a.getI18n.call(s, "crm.label.widgets.baseurl", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_ip_sys_base" id="widgetIndexPage2" type="text" value="" class="newinputText w100per" disabled ></input></td> </tr> <tr id="widgetsInternal" style="display: none"> <td> <div class="wf_requiredMark">' + o(a.getI18n.call(s, "crm.label.widgets.indexpage", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_ip_index" id="widgetIndexPage" type="text" value="" class="newinputText w100per" placeholder="/sample/index.html"> <div class="form_err_msg" id="widgetsStartUrlError" style="display: none;"></div></td> </tr> ' | |
| }, | |
| 17: function(e, t, a, i, n) { | |
| var r, s = e.lambda, o = e.escapeExpression, d = null != t ? t : {}; | |
| return ' <input type="button" data-zcqa="wid_hidpop" onclick="crmNTCGlobal.closePopupAndOpenSigPanel( \'CrmWidgetsForm\' , \'' + o(s(null != t ? t.source : t, t)) + '\' )" class="newgraybtn" value="' + o(a.getI18n.call(d, "crm.button.cancel", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> <input data-zcqa="wid_save" type="button" id="widgetsSave" onclick="crmWidgetsObj.updateWidgets(\'' + o(s(null != (r = null != t ? t.json : t) ? r.widgets_id : r, t)) + "','" + o(s(null != t ? t.source : t, t)) + '\');" class="primarybtn clickSave" value="' + o(a.getI18n.call(d, "crm.button.save", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> ' | |
| }, | |
| 19: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}, o = e.escapeExpression; | |
| return ' <input type="button" data-zcqa="wid_hidpop" onclick="crmui.hidePopup(\'CrmWidgetsForm\'); " class="newgraybtn" value="' + o(a.getI18n.call(s, "crm.button.cancel", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> <input data-zcqa="wid_save" type="button" id="widgetsSave" onclick="crmWidgetsObj.updateWidgets(\'' + o(e.lambda(null != (r = null != t ? t.json : t) ? r.widgets_id : r, t)) + '\');" class="primarybtn clickSave" value="' + o(a.getI18n.call(s, "crm.button.save", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> ' | |
| }, | |
| compiler: [7, ">= 4.0.0"], | |
| main: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}, o = e.escapeExpression, d = e.lambda; | |
| return ' <div class="pp-header"> <table width="100%" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="f22 crm-font-bold">' + o(a.getI18n.call(s, "crm.label.edit.widget", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '<br></td> <td class="alignright f14 pR" valign="top" width="200"><a id="context-helplink" class="toplink dIB f13 lh18 mR20" data-zcqa="wid_help" onclick="openHelp(\'' + o(a.getHelpUrl.call(s, "help.customization.widgets.addwidget", "zoho", { | |
| name: "getHelpUrl", | |
| hash: {}, | |
| data: n | |
| })) + '\')" href="javascript:;">' + o(a.getI18n.call(s, "crm.label.context.help", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</a> " + (null != (r = a.isCallFromSalesSignals.call(s, null != t ? t.source : t, { | |
| name: "isCallFromSalesSignals", | |
| hash: {}, | |
| fn: e.program(1, n, 0), | |
| inverse: e.program(3, n, 0), | |
| data: n | |
| })) ? r : "") + ' </td> </tr> </tbody> </table> </div> <div class="pp-content" style="max-height: 624px;"> <table class="wf_form_UI w100per wf_form_focus" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="wf_requiredMark"> <div>' + o(a.getI18n.call(s, "crm.label.widgets.name", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_name" id="widgetFormName" type="text" value="' + o(d(null != (r = null != t ? t.json : t) ? r.name : r, t)) + '" class="newinputText w100per" maxlength="30" autocomplete="off" ></input> <div class="form_err_msg" id="widgetsNameError" style="display: none;"></div></td> </tr> <tr id="functionDescriptionDiv"> <td>' + o(a.getI18n.call(s, "Description", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</td> <td><textarea data-zcqa="txtarea_cfunc_desc" rows="3" class="textField w600" maxlength="250" id="widgetDescription" name="description" style="height: 0px;">' + o(d(null != (r = null != t ? t.json : t) ? r.description : r, t)) + '</textarea></td> </tr> <tr> <td class="wf_requiredMark"> <div>' + o(a.getI18n.call(s, "crm.label.widgets.type", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td style="padding-top: 10px"> <div>' + o(a.getI18nByAppendKey.call(s, "crm.label.widgets.", null != (r = null != t ? t.json : t) ? r.type : r, { | |
| name: "getI18nByAppendKey", | |
| hash: {}, | |
| data: n | |
| })) + '</div><input data-zcqa="wid_sel_type" type="hidden" value="' + o(d(null != (r = null != t ? t.json : t) ? r.type : r, t)) + '" id="widgetType" ></input> <div class="form_err_msg" id="widgetsTypeError" style="display: none;"></div> </td> </tr> <tr class="selectBoxSelect2"> <td class="wf_requiredMark"> <div class="">' + o(a.getI18n.call(s, "crm.label.widgets.hosting", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td style="padding-top: 10px"> <div class="newSelect"> <select data-zcqa="wid_sel_host" id="widgetHosting" style="border: 0" onchange="crmWidgetsObj.showInputFields(value);"> ' + (null != (r = a.ifEquals.call(s, null != (r = null != t ? t.json : t) ? r.hosting : r, "Internal", { | |
| name: "ifEquals", | |
| hash: {}, | |
| fn: e.program(5, n, 0), | |
| inverse: e.program(7, n, 0), | |
| data: n | |
| })) ? r : "") + " </select> </div> " + (null != (r = a.ifEquals.call(s, null != (r = null != t ? t.json : t) ? r.hosting : r, "Internal", { | |
| name: "ifEquals", | |
| hash: {}, | |
| fn: e.program(9, n, 0), | |
| inverse: e.program(11, n, 0), | |
| data: n | |
| })) ? r : "") + ' <div class="form_err_msg" id="widgetsHostingError" style="display: none;"></div> </td> </tr> ' + (null != (r = a.ifEquals.call(s, null != (r = null != t ? t.json : t) ? r.hosting : r, "Internal", { | |
| name: "ifEquals", | |
| hash: {}, | |
| fn: e.program(13, n, 0), | |
| inverse: e.program(15, n, 0), | |
| data: n | |
| })) ? r : "") + ' </tbody> </table> </div> <div class="pp-footer"> ' + (null != (r = a.isCallFromSalesSignals.call(s, null != t ? t.source : t, { | |
| name: "isCallFromSalesSignals", | |
| hash: {}, | |
| fn: e.program(17, n, 0), | |
| inverse: e.program(19, n, 0), | |
| data: n | |
| })) ? r : "") + " </div> " | |
| }, | |
| useData: !0 | |
| }), | |
| t.CrmWidgetsForm = e({ | |
| 1: function(e, t, a, i, n) { | |
| var r = null != t ? t : {} | |
| , s = e.escapeExpression; | |
| return ' <div> <div class="pp-header"> ' + s(a.getI18n.call(r, "crm.label.widgets.button.create", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + ' <div class="alignright f14 fR pR" valign="top" width="200"> <a data-zcqa="wid_help" id="context-helplink" class="toplink dIB lh18 f13 mT8 mR20 pR10 rightSeparation" onclick="openHelp(\'' + s(a.getHelpUrl.call(r, "help.customization.widgets.addwidget", "zoho", { | |
| name: "getHelpUrl", | |
| hash: {}, | |
| data: n | |
| })) + '\')" href="javascript:;">' + s(a.getI18n.call(r, "crm.label.context.help", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</a><span class="dbBtnClose svgIcons ico-close op05 dIB cP mT8 r0" onclick="crmWidgetsObj.showPreviousPopup();"></span> </div> <div class="cB"></div> </div> <div class="pp-content" style="max-height: 624px;"> <table class="wf_form_UI w100per wf_form_focus" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="wf_requiredMark"> <div>' + s(a.getI18n.call(r, "crm.label.widgets.name", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_name" id="widgetFormName" type="text" value="" class="newinputText w100per" maxlength="30" autocomplete="off" onblur="wfForm.removeFocus(this,\'form\')" ></input> <div class="form_err_msg" id="widgetsNameError" style="display: none;"></div></td> </tr> <tr id="functionDescriptionDiv"> <td>' + s(a.getI18n.call(r, "Description", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</td> <td><textarea data-zcqa="txtarea_cfunc_desc" rows="3" class="textField w600" id="widgetDescription" maxlength="250" name="description" style="height: 0px;"></textarea></td> </tr> <tr> <td class="wf_requiredMark"> <div>' + s(a.getI18n.call(r, "crm.label.widgets.type", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td style="padding-top: 10px"> <div>' + s(a.getI18nByAppendKey.call(r, "crm.label.widgets.", null != t ? t.type : t, { | |
| name: "getI18nByAppendKey", | |
| hash: {}, | |
| data: n | |
| })) + '</div> <input data-zcqa="wid_opt_type" type="hidden" value="' + s(e.lambda(null != t ? t.type : t, t)) + '" id="widgetType" ></input> </td> </tr> <tr> <td class="wf_requiredMark"> <div>' + s(a.getI18n.call(r, "crm.label.widgets.hosting", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td style="padding-top: 10px"> <div class="newSelect"> <select data-zcqa="wid_opt_host" id="widgetHosting" style="border: 0" onchange="crmWidgetsObj.showInputFields(value);"> <option data-zcqa="wid_opt_none" value="none">' + s(a.getI18n.call(r, "None", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> <option data-zcqa="wid_opt_int" value="internal">' + s(a.getI18n.call(r, "crm.label.widgets.internal", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> <option data-zcqa="wid_opt_ext" value="external">' + s(a.getI18n.call(r, "crm.label.widgets.external", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> </select> </div> <span class="svgIcons info_icon mL10 cP dIB vtxtBot" style="display: none"></span> <div class="form_err_msg" id="widgetsHostingError" style="display: none;"></div> </td> </tr> <tr id="widgetsExternal" style="display: none"> <td class="wf_requiredMark"> <div>' + s(a.getI18n.call(r, "crm.label.widgets.baseurl", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_ip_base" id="widgetExternalUrl" type="text" value="" class="newinputText w100per" placeholder="https://zapps.zoho.com/zapps#apps/sample/index.html"> <div class="form_err_msg" id="widgetsUrlError" style="display: none;"></div></td> </tr> <tr id="widgetsInternalUpload" style="display: none"> <td class="wf_requiredMark"> <div>' + s(a.getI18n.call(r, "crm.label.widgets.fileupload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><span class="uploadedfileName dN color_1"></span> <label class="uploadbtnholder dIB mT5"> <input data-zcqa="wid_ip_up" type="button" value="' + s(a.getI18n.call(r, "crm.button.upload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" class="primarybtn"> <input data-zcqa="wid_ip_upd" id="widgetUploadFile" type="file" title="' + s(a.getI18n.call(r, "webform.fileupload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" onchange="crmWidgetsObj.onFileSelected(event);" accept=".zip" value="upload"> </label><div class="form_err_msg zI10" id="widgetsNoFile" style="display: none;"></div></td> </tr> <tr id="widgetsInternal" style="display: none"> <td class="wf_requiredMark"> <div>' + s(a.getI18n.call(r, "crm.label.widgets.indexpage", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_ip_index" id="widgetIndexPage" type="text" value="" class="newinputText w100per" placeholder="/sample/index.html"> <div class="form_err_msg" id="widgetsStartUrlError" style="display: none;"></div></td> </tr> </tbody> </table> </div> <div class="pp-footer"> <input type="button" data-zcqa="wid_hidpop" onclick="crmWidgetsObj.showPreviousPopup();" class="newgraybtn" value="' + s(a.getI18n.call(r, "crm.button.cancel", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> <input data-zcqa="wid_save" type="button" id="widgetsSave" onclick="crmWidgetsObj.createWidgets(true);" class="primarybtn clickSave" value="' + s(a.getI18n.call(r, "crm.button.save", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> </div> </div> ' | |
| }, | |
| 3: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}, o = e.escapeExpression; | |
| return ' <div class="pp-header"> ' + o(a.getI18n.call(s, "crm.label.widgets.button.create", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + ' <div class="alignright f14 fR" valign="top" width="200"> ' + (null != (r = a.isCallFromSalesSignals.call(s, null != t ? t.callFrom : t, { | |
| name: "isCallFromSalesSignals", | |
| hash: {}, | |
| fn: e.program(4, n, 0), | |
| inverse: e.program(6, n, 0), | |
| data: n | |
| })) ? r : "") + ' </div> <div class="cB"></div> </div> <div class="pp-content" style="max-height: 624px;"> <table class="wf_form_UI w100per wf_form_focus" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="wf_requiredMark"> <div>' + o(a.getI18n.call(s, "crm.label.widgets.name", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_name" id="widgetFormName" type="text" value="" class="newinputText w100per" autocomplete="off" maxlength="30" onblur="wfForm.removeFocus(this,\'form\')" ></input> <div class="form_err_msg" id="widgetsNameError" style="display: none;"></div></td> </tr> <tr id="functionDescriptionDiv"> <td>' + o(a.getI18n.call(s, "Description", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</td> <td><textarea data-zcqa="txtarea_cfunc_desc" rows="3" class="textField w600" id="widgetDescription" maxlength="250" name="description" style="height: 0px;"></textarea></td> </tr> ' + (null != (r = a.isCallFromSalesSignals.call(s, null != t ? t.callFrom : t, { | |
| name: "isCallFromSalesSignals", | |
| hash: {}, | |
| fn: e.program(8, n, 0), | |
| inverse: e.program(10, n, 0), | |
| data: n | |
| })) ? r : "") + ' <tr class="selectBoxSelect2"> <td class="wf_requiredMark"> <div class="wf_requiredMark">' + o(a.getI18n.call(s, "crm.label.widgets.hosting", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td style="padding-top: 10px"> <div class="newSelect"> <select data-zcqa="wid_sel_host" id="widgetHosting" style="border: 0" onchange="crmWidgetsObj.showInputFields(value);"> <option data-zcqa="wid_opt_none" value="none">' + o(a.getI18n.call(s, "None", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> <option data-zcqa="wid_opt_int" value="internal">' + o(a.getI18n.call(s, "crm.label.widgets.internal", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> <option data-zcqa="wid_opt_ext" value="external">' + o(a.getI18n.call(s, "crm.label.widgets.external", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</option> </select> </div> <span class="svgIcons info_icon mL10 cP dIB vtxtBot pA" style="display: none;top:12px; right: -23px;"></span> <div class="form_err_msg" id="widgetsHostingError" style="display: none;"></div> </td> </tr> <tr id="widgetsExternal" style="display: none"> <td class="wf_requiredMark"> <div>' + o(a.getI18n.call(s, "crm.label.widgets.baseurl", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_ip_base" id="widgetExternalUrl" type="text" value="" class="newinputText w100per" placeholder="https://zapps.zoho.com/zapps#apps/sample/index.html"> <div class="form_err_msg" id="widgetsUrlError" style="display: none;"></div> </td> </tr> <tr id="widgetsInternalUpload" style="display: none"> <td class="wf_requiredMark"> <div>' + o(a.getI18n.call(s, "crm.label.widgets.fileupload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><span class="uploadedfileName dN color_1"></span> <label class="uploadbtnholder fL"> <input data-zcqa="wid_btn_up" type="button" value="' + o(a.getI18n.call(s, "crm.button.upload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" class="primarybtn"> <input data-zcqa="wid_ip_upd" id="widgetUploadFile" type="file" title="' + o(a.getI18n.call(s, "webform.fileupload", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" onchange="crmWidgetsObj.onFileSelected(event);" accept=".zip" value="upload"> </label><div class="form_err_msg zI10" id="widgetsNoFile" style="display: none;"></div></td> </tr> <tr id="widgetsInternal" style="display: none"> <td class="wf_requiredMark"> <div>' + o(a.getI18n.call(s, "crm.label.widgets.indexpage", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td><input data-zcqa="wid_ip_index" id="widgetIndexPage" type="text" value="" class="newinputText w100per" placeholder="/sample/index.html"> <div class="form_err_msg" id="widgetsStartUrlError" style="display: none;"></div> </td> </tr> </tbody> </table> </div> <div class="pp-footer"> ' + (null != (r = a.isCallFromSalesSignals.call(s, null != t ? t.callFrom : t, { | |
| name: "isCallFromSalesSignals", | |
| hash: {}, | |
| fn: e.program(13, n, 0), | |
| inverse: e.program(15, n, 0), | |
| data: n | |
| })) ? r : "") + " </div> " | |
| }, | |
| 4: function(e, t, a, i, n) { | |
| var r = null != t ? t : {} | |
| , s = e.escapeExpression; | |
| return ' <a data-zcqa="wid_help" id="context-helplink" class="toplink dIB f13 lh18" onclick="openHelp(\'' + s(a.getHelpUrl.call(r, "help.customization.widgets.addwidget", "zoho", { | |
| name: "getHelpUrl", | |
| hash: {}, | |
| data: n | |
| })) + '\')" href="javascript:;">' + s(a.getI18n.call(r, "crm.label.context.help", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</a><span class=\"dbBtnClose svgIcons ico-close op05 dIB cP mL20 mT7\" onclick=\"crmNTCGlobal.closePopupAndOpenSigPanel('CrmWidgetsForm', '" + s(e.lambda(null != t ? t.callFrom : t, t)) + "');\"></span> " | |
| }, | |
| 6: function(e, t, a, i, n) { | |
| var r = null != t ? t : {} | |
| , s = e.escapeExpression; | |
| return ' <a data-zcqa="wid_help" id="context-helplink" class="toplink dIB f13 lh18" onclick="openHelp(\'' + s(a.getHelpUrl.call(r, "help.customization.widgets.addwidget", "zoho", { | |
| name: "getHelpUrl", | |
| hash: {}, | |
| data: n | |
| })) + '\')" href="javascript:;">' + s(a.getI18n.call(r, "crm.label.context.help", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</a><span class="dbBtnClose svgIcons ico-close op05 dIB cP mL20 mT7" onclick="crmui.hidePopup(\'CrmWidgetsForm\');"></span> ' | |
| }, | |
| 8: function(e, t, a, i, n) { | |
| return ' <tr> <td> <div class="wf_requiredMark">' + e.escapeExpression(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.type", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td style=""> <div>Sales Signals</div><input data-zcqa="wid_sel_type" type="hidden" value="SALES_SIGNALS" id="widgetType"> <div class="form_err_msg" id="widgetsTypeError" style="display: none;"></div> </td> </tr> ' | |
| }, | |
| 10: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}, o = e.escapeExpression; | |
| return ' <tr class="selectBoxSelect2" > <td class="wf_requiredMark"> <div>' + o(a.getI18n.call(s, "crm.label.widgets.type", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</div> </td> <td style="padding-top: 10px"> <div class="newSelect"> <select data-zcqa="wid_sel_type" id="widgetType" style="border: 0"> <option data-zcqa="wid_opt_none" value="none">' + o(a.getI18n.call(s, "None", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</option> " + (null != (r = a.each.call(s, t, { | |
| name: "each", | |
| hash: {}, | |
| fn: e.program(11, n, 0), | |
| inverse: e.noop, | |
| data: n | |
| })) ? r : "") + ' </select> </div> <div class="form_err_msg" id="widgetsTypeError" style="display: none;"></div> </td> </tr> ' | |
| }, | |
| 11: function(e, t, a, i, n) { | |
| var r = e.lambda | |
| , s = e.escapeExpression; | |
| return ' <option data-zcqa="wid_opt_' + s(r(t, t)) + '" value="' + s(r(t, t)) + '">' + s(a.getI18nByAppendKey.call(null != t ? t : {}, "crm.label.widgets.", t, { | |
| name: "getI18nByAppendKey", | |
| hash: {}, | |
| data: n | |
| })) + "</option> " | |
| }, | |
| 13: function(e, t, a, i, n) { | |
| var r = e.lambda | |
| , s = e.escapeExpression | |
| , o = null != t ? t : {}; | |
| return ' <input type="button" data-zcqa="wid_hidpop" onclick="crmNTCGlobal.closePopupAndOpenSigPanel(\'CrmWidgetsForm\', \'' + s(r(null != t ? t.callFrom : t, t)) + '\');" class="newgraybtn" value="' + s(a.getI18n.call(o, "crm.button.cancel", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> <input data-zcqa="wid_save" type="button" id="widgetsSave" onclick="crmWidgetsObj.createWidgets(false,\'' + s(r(null != t ? t.callFrom : t, t)) + '\');" class="primarybtn clickSave" value="' + s(a.getI18n.call(o, "crm.button.save", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> ' | |
| }, | |
| 15: function(e, t, a, i, n) { | |
| var r = null != t ? t : {} | |
| , s = e.escapeExpression; | |
| return ' <input type="button" data-zcqa="wid_hidpop" onclick="crmui.hidePopup(\'CrmWidgetsForm\');" class="newgraybtn" value="' + s(a.getI18n.call(r, "crm.button.cancel", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> <input data-zcqa="wid_save" type="button" id="widgetsSave" onclick="crmWidgetsObj.createWidgets();" class="primarybtn clickSave" value="' + s(a.getI18n.call(r, "crm.button.save", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> ' | |
| }, | |
| compiler: [7, ">= 4.0.0"], | |
| main: function(e, t, a, i, n) { | |
| var r; | |
| return (null != (r = a.if.call(null != t ? t : {}, null != t ? t.listView : t, { | |
| name: "if", | |
| hash: {}, | |
| fn: e.program(1, n, 0), | |
| inverse: e.program(3, n, 0), | |
| data: n | |
| })) ? r : "") + " " | |
| }, | |
| useData: !0 | |
| }), | |
| t.CrmWidgetsListView = e({ | |
| 1: function(e, t, a, i, n) { | |
| return ' <tr> <td> <p align="center" class="aligncenter fontsmooth f15 pT20 pB20 color_9">' + e.escapeExpression(e.lambda(null != t ? t.errorMessage : t, t)) + "</p> </td> </tr> " | |
| }, | |
| 3: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}; | |
| return " " + (null != (r = a.if.call(s, a.hasKeys.call(s, t, { | |
| name: "hasKeys", | |
| hash: {}, | |
| data: n | |
| }), { | |
| name: "if", | |
| hash: {}, | |
| fn: e.program(4, n, 0), | |
| inverse: e.noop, | |
| data: n | |
| })) ? r : "") + ' <div id="nowidgetdiv" style="display: none;" name="templateheader"> <br> <br> <div class="norec fontsmooth f15 aligncenter dN" name="nomatch" style="display: block;">' + e.escapeExpression(a.getI18n.call(s, "crm.label.widgets.nodata", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</div> <br> </div> " | |
| }, | |
| 4: function(e, t, a, i, n) { | |
| var r; | |
| return " " + (null != (r = a.each.call(null != t ? t : {}, t, { | |
| name: "each", | |
| hash: {}, | |
| fn: e.program(5, n, 0), | |
| inverse: e.noop, | |
| data: n | |
| })) ? r : "") + " " | |
| }, | |
| 5: function(e, t, a, i, n) { | |
| var r; | |
| return " " + (null != (r = a.ifEquals.call(null != t ? t : {}, null != t ? t.source : t, "extension", { | |
| name: "ifEquals", | |
| hash: {}, | |
| fn: e.program(6, n, 0), | |
| inverse: e.program(11, n, 0), | |
| data: n | |
| })) ? r : "") + " " | |
| }, | |
| 6: function(e, t, a, i, n) { | |
| var r, s = e.lambda, o = e.escapeExpression, d = null != t ? t : {}; | |
| return ' <tr data-zcqa="wid_row_' + o(s(null != t ? t.widgets_id : t, t)) + '" class="tableTitleHeaderRow extn installed ' + o(s(null != t ? t.type : t, t)) + ' contentRows" onmouseenter="crmWidgetsObj.mouseEnterActions(this)" onmouseleave="crmWidgetsObj.mouseLeaveActions(this)" id="wid_row_' + o(s(null != t ? t.widgets_id : t, t)) + '"> ' + (null != (r = a.ifEquals.call(d, a.isAdvancePermission.call(d, { | |
| name: "isAdvancePermission", | |
| hash: {}, | |
| data: n | |
| }), "true", { | |
| name: "ifEquals", | |
| hash: {}, | |
| fn: e.program(7, n, 0), | |
| inverse: e.noop, | |
| data: n | |
| })) ? r : "") + ' <td width="73%"> <div class="f15"> <span class="fnHd">' + o(s(null != t ? t.name : t, t)) + "</span> " + (null != (r = a.ifEquals.call(d, null != t ? t.source : t, "extension", { | |
| name: "ifEquals", | |
| hash: {}, | |
| fn: e.program(9, n, 0), | |
| inverse: e.noop, | |
| data: n | |
| })) ? r : "") + ' <div class="descTextWrap"> <div class="f14 mT5 color_7 descText" style="width: 75%">' + o(s(null != t ? t.description : t, t)) + '</div> </div> </div> </td> <td width="27%">' + o(a.getI18nByAppendKey.call(d, "crm.label.widgets.", null != t ? t.type : t, { | |
| name: "getI18nByAppendKey", | |
| hash: {}, | |
| data: n | |
| })) + "</td> </tr> " | |
| }, | |
| 7: function(e, t, a, i, n) { | |
| var r = e.escapeExpression; | |
| return ' <td class="wwbw" id="cf_delete" onclick="sE(event);" width="4%"> <div align="center" class=" pR"> <span data-zcqa="wid_sethv_' + r(e.lambda(null != t ? t.widgets_id : t, t)) + '" class="settingsIcons dIB cP disable mT3" style="display: none;" onmouseover="crmui.toolTip_show(this,\'left\',\'' + r(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.extn.delete.warn", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '\');" onmouseout="crmui.toolTip_hide();"></span> <div id="settingActions" style="display: none;" class="p0 pA"> <i class="setDDPopupAbG" style="top: -8px;"><i class="setDDPopupA"></i></i> </div> </div> </td> ' | |
| }, | |
| 9: function(e, t, a, i, n) { | |
| return ' <span class="topEdition mL5">' + e.escapeExpression(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.extension", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</span> " | |
| }, | |
| 11: function(e, t, a, i, n) { | |
| var r, s = e.lambda, o = e.escapeExpression, d = null != t ? t : {}; | |
| return ' <tr data-zcqa="wid_row_' + o(s(null != t ? t.widgets_id : t, t)) + '" class="tableTitleHeaderRow ' + (null != (r = a.isNotEmpty.call(d, null != t ? t.associated_places : t, { | |
| name: "isNotEmpty", | |
| hash: {}, | |
| fn: e.program(12, n, 0), | |
| inverse: e.program(14, n, 0), | |
| data: n | |
| })) ? r : "") + " " + o(s(null != t ? t.type : t, t)) + ' contentRows" onmouseenter="crmWidgetsObj.mouseEnterActions(this)" onmouseleave="crmWidgetsObj.mouseLeaveActions(this)" onclick="crmWidgetsObj.showWidgetsPopUp(\'' + o(a.encodeJS.call(d, a.ObjToString.call(d, t, { | |
| name: "ObjToString", | |
| hash: {}, | |
| data: n | |
| }), { | |
| name: "encodeJS", | |
| hash: {}, | |
| data: n | |
| })) + '\');" id="wid_row_' + o(s(null != t ? t.widgets_id : t, t)) + '"> ' + (null != (r = a.ifEquals.call(d, a.isAdvancePermission.call(d, { | |
| name: "isAdvancePermission", | |
| hash: {}, | |
| data: n | |
| }), "true", { | |
| name: "ifEquals", | |
| hash: {}, | |
| fn: e.program(16, n, 0), | |
| inverse: e.noop, | |
| data: n | |
| })) ? r : "") + ' <td width="73%"> <div class="f15"> <span class="fnHd">' + o(s(null != t ? t.name : t, t)) + "</span> " + (null != (r = a.ifEquals.call(d, null != t ? t.source : t, "extension", { | |
| name: "ifEquals", | |
| hash: {}, | |
| fn: e.program(9, n, 0), | |
| inverse: e.program(21, n, 0), | |
| data: n | |
| })) ? r : "") + ' <div class="descTextWrap"> <div class="f14 mT5 color_7 descText" style="width: 75%">' + o(s(null != t ? t.description : t, t)) + '</div> </div> </div> </td> <td width="27%">' + o(a.getI18nByAppendKey.call(d, "crm.label.widgets.", null != t ? t.type : t, { | |
| name: "getI18nByAppendKey", | |
| hash: {}, | |
| data: n | |
| })) + "</td> </tr> " | |
| }, | |
| 12: function(e, t, a, i, n) { | |
| return "installed" | |
| }, | |
| 14: function(e, t, a, i, n) { | |
| return "notinstalled" | |
| }, | |
| 16: function(e, t, a, i, n) { | |
| var r, s = e.lambda, o = e.escapeExpression, d = null != t ? t : {}; | |
| return ' <td class="wwbw" id="cf_delete" onclick="sE(event);" width="4%"> <div align="center" class="pR"> <span data-zcqa="wid_sethv_' + o(s(null != t ? t.widgets_id : t, t)) + '" class="settingsIcons dIB cP mT3" style="display: none;" onclick="crmWidgetsObj.showOptionList(this);sE(event);"></span> <div id="settingActions" style="display: none;" class="p0 pA"> <i class="setDDPopupAbG" style="top: -8px; "><i class="setDDPopupA"></i></i> <ul class="m0 modListMenuDD" style="min-width: 80px;"> <li data-zcqa="wid_sete_' + o(s(null != t ? t.widgets_id : t, t)) + '" class="modListLi crm-font-regular f14 color_7 cP alignleft editWid" onclick="crmWidgetsObj.showWidgetsPopUp(\'' + o(a.encodeJS.call(d, a.ObjToString.call(d, t, { | |
| name: "ObjToString", | |
| hash: {}, | |
| data: n | |
| }), { | |
| name: "encodeJS", | |
| hash: {}, | |
| data: n | |
| })) + "');sE(event);\">" + o(a.getI18n.call(d, "crm.label.customRL.modifyScript", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</li> " + (null != (r = a.isNotEmpty.call(d, null != t ? t.associated_places : t, { | |
| name: "isNotEmpty", | |
| hash: {}, | |
| fn: e.program(17, n, 0), | |
| inverse: e.program(19, n, 0), | |
| data: n | |
| })) ? r : "") + " </ul> </div> </div> </td> " | |
| }, | |
| 17: function(e, t, a, i, n) { | |
| var r = e.escapeExpression | |
| , s = null != t ? t : {}; | |
| return ' <li data-zcqa="wid_setd_' + r(e.lambda(null != t ? t.widgets_id : t, t)) + '" class="modListLi crm-font-regular f14 color_7 cP alignleft deleteCF disabled" onmouseover="crmui.toolTip_show(this,\'left\',\'' + r(a.getI18n.call(s, "crm.label.widgets.error.cannotdelete", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '\');" onmouseout="crmui.toolTip_hide();">' + r(a.getI18n.call(s, "crm.label.customRL.uninstall", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</li> " | |
| }, | |
| 19: function(e, t, a, i, n) { | |
| var r = e.lambda | |
| , s = e.escapeExpression; | |
| return ' <li data-zcqa="wid_setd_' + s(r(null != t ? t.widgets_id : t, t)) + '" class="modListLi crm-font-regular f14 color_7 cP alignleft deleteCF" onclick="crmWidgetsObj.deleteWidget(\'' + s(r(null != t ? t.widgets_id : t, t)) + "');sE(event);\">" + s(a.getI18n.call(null != t ? t : {}, "crm.label.customRL.uninstall", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</li> " | |
| }, | |
| 21: function(e, t, a, i, n) { | |
| var r; | |
| return " " + (null != (r = a.isNotEmpty.call(null != t ? t : {}, null != t ? t.associated_places : t, { | |
| name: "isNotEmpty", | |
| hash: {}, | |
| fn: e.program(22, n, 0), | |
| inverse: e.noop, | |
| data: n | |
| })) ? r : "") + " " | |
| }, | |
| 22: function(e, t, a, i, n) { | |
| return ' <span class="topEdition mL5">' + e.escapeExpression(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.installed", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</span> " | |
| }, | |
| compiler: [7, ">= 4.0.0"], | |
| main: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}, o = e.escapeExpression; | |
| return ' <table id="widgetListTableFixed" border="0" class="newListView bdrCollapse newTb fontSmooth w100per"> <tr class="tableTitleHeaderRow"> <th width="4%"></th> <th width="73%">' + o(a.getI18n.call(s, "crm.label.widgets.name", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</th> <th width="27%">' + o(a.getI18n.call(s, "crm.label.widgets.type", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</th> </tr> </table> <div id=\'CrmWidgetsCustomizationListViewTable\' class=\'oA\'> <table id="widgetListTable" border="0" class="w100p newListView bdrCollapse newTb pT0 fontSmooth"> <tbody> ' + (null != (r = a.if.call(s, null != t ? t.errorMessage : t, { | |
| name: "if", | |
| hash: {}, | |
| fn: e.program(1, n, 0), | |
| inverse: e.program(3, n, 0), | |
| data: n | |
| })) ? r : "") + " </tbody> </table> </div>" | |
| }, | |
| useData: !0 | |
| }), | |
| t.CrmWidgetsListViewContent = e({ | |
| 1: function(e, t, a, i, n) { | |
| return ' <tr> <td colspan="2"> <p align="center" class="aligncenter fontsmooth f14 pT20 pB20 color_9">' + e.escapeExpression(e.lambda(null != t ? t.errorMessage : t, t)) + "</p> </td> </tr> " | |
| }, | |
| 3: function(e, t, a, i, n, r, s) { | |
| var o, d = null != t ? t : {}; | |
| return " " + (null != (o = a.if.call(d, a.hasKeys.call(d, t, { | |
| name: "hasKeys", | |
| hash: {}, | |
| data: n | |
| }), { | |
| name: "if", | |
| hash: {}, | |
| fn: e.program(4, n, 0, r, s), | |
| inverse: e.program(12, n, 0, r, s), | |
| data: n | |
| })) ? o : "") + " " | |
| }, | |
| 4: function(e, t, a, i, n, r, s) { | |
| var o; | |
| return " " + (null != (o = a.each.call(null != t ? t : {}, t, { | |
| name: "each", | |
| hash: {}, | |
| fn: e.program(5, n, 0, r, s), | |
| inverse: e.noop, | |
| data: n | |
| })) ? o : "") + " " | |
| }, | |
| 5: function(e, t, a, i, n, r, s) { | |
| var o, d = e.lambda, l = e.escapeExpression, c = null != t ? t : {}; | |
| return ' <tr class="tableTitleHeaderRow" id="wid_row_' + l(d(null != t ? t.widgets_id : t, t)) + '"> <td class="w250"> <div class="f14" id="div_' + l(d(null != t ? t.widgets_id : t, t)) + '" wid_name="' + l(d(null != t ? t.name : t, t)) + '"> ' + l(d(null != t ? t.name : t, t)) + " \x3c!-- " + (null != (o = a.if.call(c, null != t ? t.associated_places : t, { | |
| name: "if", | |
| hash: {}, | |
| fn: e.program(6, n, 0, r, s), | |
| inverse: e.noop, | |
| data: n | |
| })) ? o : "") + ' --\x3e <div> <div class="f12 mT5 color_7 descText" style="width: 75%" id="desc_' + l(d(null != t ? t.widgets_id : t, t)) + '">' + l(d(null != t ? t.description : t, t)) + "</div> </div> </div> </td> " + (null != (o = a.if.call(c, null != t ? t.installed : t, { | |
| name: "if", | |
| hash: {}, | |
| fn: e.program(8, n, 0, r, s), | |
| inverse: e.program(10, n, 0, r, s), | |
| data: n | |
| })) ? o : "") + " </tr> " | |
| }, | |
| 6: function(e, t, a, i, n) { | |
| return ' <span class="topEdition mL5">' + e.escapeExpression(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.installed", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</span> " | |
| }, | |
| 8: function(e, t, a, i, n) { | |
| var r = e.escapeExpression | |
| , s = null != t ? t : {}; | |
| return ' <td class="w100"><input data-zcqa="txt_btn_' + r(e.lambda(null != t ? t.widgets_id : t, t)) + '" type="button" class="w90 newbutton disabled fR" value="' + r(a.getI18n.call(s, "crm.label.widgets.installed", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "\" onmouseover=\"crmui.toolTip_show(this,'left','" + r(a.getI18n.call(s, "crm.label.widgets.webtab.installed.already", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '\');" onmouseout="crmui.toolTip_hide();"></input></td> ' | |
| }, | |
| 10: function(e, t, a, i, n, r, s) { | |
| var o = e.lambda | |
| , d = e.escapeExpression | |
| , l = null != t ? t : {}; | |
| return ' <td class="w100"><input data-zcqa="txt_btn_' + d(o(null != t ? t.widgets_id : t, t)) + '" type="button" class="w90 newbutton outlinegreenlight fR" value="' + d(a.getI18n.call(l, "crm.label.install", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" onclick="crmWidgetsObj.associatedWidget(\'' + d(o(null != t ? t.widgets_id : t, t)) + "','" + d(a.encodeJS.call(l, null != t ? t.type : t, { | |
| name: "encodeJS", | |
| hash: {}, | |
| data: n | |
| })) + "','" + d(o(null != s[1] ? s[1].dep_obj : s[1], t)) + "');event.stopPropagation();\" /></td> " | |
| }, | |
| 12: function(e, t, a, i, n) { | |
| return ' <tr> <td colspan="2"> <p align="center" class="aligncenter fontsmooth f14 pT20 pB20 color_9">' + e.escapeExpression(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.nodata", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</p> </td> </tr> " | |
| }, | |
| compiler: [7, ">= 4.0.0"], | |
| main: function(e, t, a, i, n, r, s) { | |
| var o; | |
| return " " + (null != (o = a.if.call(null != t ? t : {}, null != t ? t.errorMessage : t, { | |
| name: "if", | |
| hash: {}, | |
| fn: e.program(1, n, 0, r, s), | |
| inverse: e.program(3, n, 0, r, s), | |
| data: n | |
| })) ? o : "") + " " | |
| }, | |
| useData: !0, | |
| useDepths: !0 | |
| }), | |
| t.CrmWidgetsListViewContentHeader = e({ | |
| compiler: [7, ">= 4.0.0"], | |
| main: function(e, t, a, i, n) { | |
| return '<table border="0" class="w100p newListView bdrCollapse mycustomFunction"> <thead> <tr class="tableTitleHeaderRow"> <th class="w250">' + e.escapeExpression(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.name", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</th> <th class="w100"> </th> </tr> </thead> <tbody id=\'crmWidgetsListViewContent\'></tbody> </table> <input type="hidden" id="widgetCategory" value="" ></input>' | |
| }, | |
| useData: !0 | |
| }), | |
| t.CrmWidgetsListViewHeaders = e({ | |
| 1: function(e, t, a, i, n) { | |
| return ' <div class="fR"> <input data-zcqa="txt_btn_b1" id="newmodbtn" type="button" onclick="crmWidgetsObj.showCreatePopupInListView();" value="' + e.escapeExpression(a.getI18n.call(null != t ? t : {}, "crm.label.widgets.button.create", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '" class="newbutton outlineprimaryflat mR0"> </div> ' | |
| }, | |
| compiler: [7, ">= 4.0.0"], | |
| main: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}; | |
| return '<div class="pp-header"> <table class="w100p" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="f22 crm-font-bold" nowrap="nowrap">' + e.escapeExpression(a.getI18n.call(s, "crm.label.widgets", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</td> <td class="alignright pR"><span data-zcqa="txt_wid_close" class="svgIcons widgetCloseIcon ico-close op05 dIB cP" onclick="crmWidgetsObj.closeWidgetPopup(this);"></span></td> </tr> </tbody> </table> </div> <div class="p30 pp-content mB20" style="max-height: 613px;"> ' + (null != (r = a.ifEquals.call(s, a.isAdvancePermission.call(s, { | |
| name: "isAdvancePermission", | |
| hash: {}, | |
| data: n | |
| }), "true", { | |
| name: "ifEquals", | |
| hash: {}, | |
| fn: e.program(1, n, 0), | |
| inverse: e.noop, | |
| data: n | |
| })) ? r : "") + ' <div class="cB"></div> <div id="crmWidgetsListViewContentHeader" class="mT25"></div> </div> ' | |
| }, | |
| useData: !0 | |
| }), | |
| t.CrmWidgetsWelcome = e({ | |
| compiler: [7, ">= 4.0.0"], | |
| main: function(e, t, a, i, n) { | |
| var r, s = null != t ? t : {}, o = e.escapeExpression; | |
| return ' <div class="setup-space"> <div class="w1100"> <div class="borderBottom pB30"> <div class="dIB vam w50per"> <h3 class="f26 color_5 mB30">' + o(a.getI18n.call(s, "crm.label.widgets", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</h3> <button class="greenbtn btn_medium" data-zcqa="txt_btn_w1" onClick="crmWidgetsObj.showCreateWidgetPopUp();">' + o(a.getI18n.call(s, "crm.label.widgets.getstarted.label4", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</button> </div> <div class="alignright dIB vam w49per"> <img src="' + o(a.img_link.call(s, { | |
| name: "img_link", | |
| hash: {}, | |
| data: n | |
| })) + '/WidgetWelcome_0b64158_.svg" alt="' + o(a.getI18n.call(s, "crm.label.widgets.getstarted.label4", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '"> </div> </div> <div class="pT30"> <p class="color444 lh20">' + o(a.getI18n.call(s, "crm.label.widgets.productinfo", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + ' <a data-zcqa="wid_help" id="context-helplink1" class="f13 undline" onclick="openHelp(\'' + o(a.getHelpUrl.call(s, "help.customization.widgets.helplink", "zoho", { | |
| name: "getHelpUrl", | |
| hash: {}, | |
| data: n | |
| })) + '\')" href="javascript:;">' + o(a.getI18n.call(s, "crm.login.learn.more", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + '</a></p> <p class="mT30"><span data-zcqa="txt_btn_w2" class="widPrsLst dIB aligncenter mR5">' + o(a.getI18n.call(s, "crm.label.1", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</span> " + (null != (r = a.getI18n.call(s, "crm.label.widgets.getstarted.label3", a.getHelpUrl.call(s, "help.customization.widgets.installcli", { | |
| name: "getHelpUrl", | |
| hash: {}, | |
| data: n | |
| }), { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) ? r : "") + ' <span data-zcqa="txt_btn_w3" class="widPrsLst dIB aligncenter mL20 mR5">' + o(a.getI18n.call(s, "crm.label.2", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</span> " + (null != (r = a.getI18n.call(s, "crm.label.widgets.getstarted.label2", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) ? r : "") + ' <span data-zcqa="txt_btn_w4" class="widPrsLst dIB aligncenter mL20 mR5">' + o(a.getI18n.call(s, "crm.label.3", { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) + "</span>" + (null != (r = a.getI18n.call(s, "crm.label.widgets.getstarted.label5", a.getHelpUrl.call(s, "help.customization.widgets.firstwidget", { | |
| name: "getHelpUrl", | |
| hash: {}, | |
| data: n | |
| }), { | |
| name: "getI18n", | |
| hash: {}, | |
| data: n | |
| })) ? r : "") + '</p> </div> </div> </div> <div id="CrmWidgetsForm" class="newpopup is-scroll ppTop dN showPpTop newInputStyleEle newPopupStyleEle" style="display: none;"></div>' | |
| }, | |
| useData: !0 | |
| }) | |
| }(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment