siteMapPerso
Changes
dataFactor.js 160(+117 -43)
Details
dataFactor.js 160(+117 -43)
diff --git a/dataFactor.js b/dataFactor.js
index 1a0cbfd..c6ff5b1 100644
--- a/dataFactor.js
+++ b/dataFactor.js
@@ -7,34 +7,111 @@ const isSuscriber = site.session.isSuscriber() && site.session != undefined ? "S
let dateTime = new Date();
dateTime = `${dateTime.getDate()}/${dateTime.getMonth()}/${dateTime.getFullYear()} - hora ${dateTime.getHours()}:${dateTime.getMinutes()}`
-
-let main = document.querySelector('.main-container');
-let block = main.querySelectorAll('div.block');
let isMatch = false
let url = ""
-//SELECTORES DE LA Genericos
-const ulOptions = document.querySelector('.session-options');
-const ItemsList = ulOptions.querySelectorAll('li');
-const perfil = ItemsList[1].querySelector('a');
-
-let listenersHome = [
- `.${block[0].className} h2.title`,
- `.${block[1].className} h2.title`,
- `.locked a`,
+//SELECTORES y zonas Genericos
+
+let globalZones = [
+ { name: "Header", selector: '#page-header' },
+ { name: "Footer", selector: '#page-footer' },
+]
+
+let globalListeners = [
+ '#page-header-session-box .sign-in-button',
+ `#page-header-middle .b-suscription`,
+ `.svg-icon.menu`,
+ `.session.with-avatar`,
+ `.session-options li:nth-child(2) a`,
+ `#main-menu ul li a`,
+ ".piece.markets.standard ul li"
+]
+//
+
+//SELECTORES y zonas Home
+let homeListeners = [
+ `.section article.item`,
+ `.sectionfull article.item`,
+ `article.locked`,
`.columnists .items article.item`
]
-let interactionHome = {
- name: "es mi nombre"
+
+let homeInteractions = {
+ name: "Home"
+}
+//
+function ReadHomeBlocks(target) {
+ let main = document.querySelector('.main-container');
+ let block1 = main.childNodes[0].querySelectorAll('article.item');
+ let block2 = main.childNodes[2].querySelectorAll('article.item')
+ sendDataFromHomeBlocks("Click, Article from home (Bloque1)", target, block1)
+ sendDataFromHomeBlocks("Click, Article from home (Bloque2)", target, block2)
+}
+
+function ReadGlobalEvents(event) {
+ let dataName = SalesforceInteractions.cashDom(event.target).text()
+ let compareClass = "." + event.currentTarget.classList.value.replace(/\s+/g, '.')
+
+ if (event.target.innerText == "Mi perfil") {
+ dataName = "Botón Mi perfil"
+ }
+
+ if (compareClass == globalListeners[3]) {
+ dataName = "Click Botón Desplegable MENU perfil"
+ }
+
+ if (compareClass == globalListeners[2]) {
+ dataName = "MENU sitio"
+ }
+
+
+ SalesforceInteractions.sendEvent({
+ interaction: {
+ name: dataName,
+ attributes: {
+ userIdCms: idUser,
+ name: userName,
+ lastName: userName,
+ isSuscriber: isSuscriber,
+ emailAddress: email,
+ continueUrl: url
+ },
+ },
+ });
+
}
-function GenerateContentZones(names, selectors) {
+function sendDataFromHomeBlocks(nameEvent, target, container) {
+ for (let i = 0; i < container.length; i++) {
+
+ if (target === container[i]) {
+ SalesforceInteractions.sendEvent({
+ interaction: {
+ name: nameEvent,
+ },
+ user: {
+ identities: {
+ emailAddress: email
+ },
+ attributes: {
+ name: userName
+ }
+ }
+ });
+ break;
+ }
+
+ }
+
+}
+
+function GenerateContentZones(zones) {
+
let ContentZones = [];
- if (names.length === selectors.length) {
- let size = names.length
- for (let i = 0; i < size; i++) {
+ if (zones.length > 0) {
+ for (let i = 0; i < zones.length; i++) {
let ContentZone = {
- name: names[i],
- selector: selectors[i]
+ name: zones[i].name,
+ selector: zones[i].selector
}
ContentZones.push(ContentZone)
}
@@ -42,32 +119,31 @@ function GenerateContentZones(names, selectors) {
return ContentZones;
}
-function GenerateListeners(elements) {
+function GenerateListeners(pageType, elements) {
let listeners = [];
+
if (elements.length > 0) {
for (let i = 0; i < elements.length; i++) {
- let myEvents = SalesforceInteractions.listener("click", `${elements[i]}`, (e) => {
- SalesforceInteractions.sendEvent({
- interaction: {
- name: "Botón " + SalesforceInteractions.cashDom(e.target).text(),
- attributes: {
- userIdCms: idUser,
- name: userName,
- lastName: userName,
- isSuscriber: isSuscriber,
- emailAddress: email,
- continueUrl: url
- },
- },
- });
- })
- listeners.push(myEvents)
+ if (pageType == "Home" && (elements[i] == elements[0] || elements[i] == elements[1])) {
+ let myEventsBlock = SalesforceInteractions.listener("click", elements[i], (e) => {
+ ReadHomeBlocks(e)
+ })
+ listeners.push(myEventsBlock)
+ } else {
+ let myEvents = SalesforceInteractions.listener("click", `${elements[i]}`, (e) => {
+ e.preventDefault()
+ ReadGlobalEvents(e)
+ e.stopPropagation();
+ })
+
+ listeners.push(myEvents)
+ }
}
}
return listeners;
}
-function PageType(name, myUrl, interaction, listeners) {
+function PageType(name, myUrl, interaction, myEvents) {
this.name = name;
this.interaction = interaction;
this.isMatch = () => {
@@ -80,12 +156,10 @@ function PageType(name, myUrl, interaction, listeners) {
return isMatch;
};
- this.listeners = GenerateListeners(listeners);
+ this.listeners = GenerateListeners("Home", myEvents);
}
-const home = new PageType("Home", "cronista.com", interactionHome, listenersHome);
+const home = new PageType("Home", "cronista.com", homeInteractions, homeListeners);
function Pages() {
return [home]
-}
-
-export { Pages }
+}
\ No newline at end of file