Name
sn_ace.ACEDemoDataUtils
Description
No description available
Script
var ACEDemoDataUtils = Class.create();
ACEDemoDataUtils.prototype = {
initialize: function() {
this.sentences = [
"Nulla sed ipsum in magna tincidunt gravida.",
"Aenean at ipsum mollis, dapibus sapien vel, fermentum est.",
"Praesent at nisl at orci aliquam elementum eget eu arcu.",
"Vestibulum a urna molestie, faucibus urna et, laoreet tellus.",
"Suspendisse non sem ut quam consequat fermentum.",
"Fusce porta tellus sit amet purus rutrum, in congue erat laoreet.",
"Donec vestibulum ex eu molestie commodo.",
"Fusce porttitor est sagittis, tincidunt sapien at, posuere ligula.",
"Etiam eu nibh accumsan, fringilla dui ut, semper velit.",
"Nulla ut nisi vulputate augue pharetra aliquet sit amet eu leo.",
"Etiam vel massa nec erat auctor hendrerit eget vel lacus.",
"Etiam hendrerit ligula vitae placerat sodales.",
"Nullam sed dolor cursus, malesuada purus vel, tempus felis.",
"Praesent eu diam iaculis, maximus massa sit amet, placerat erat.",
"Phasellus faucibus mauris vestibulum nulla rhoncus euismod.",
"Ut quis elit at libero lacinia accumsan.",
"Vivamus vitae odio et felis accumsan pharetra.",
"In in urna at turpis consequat pretium in vel turpis.",
"Nullam quis velit tincidunt, bibendum neque fermentum, luctus nunc.",
"Maecenas et lectus volutpat tellus sodales dapibus.",
"Praesent volutpat odio nec maximus euismod.",
"Maecenas sed quam eget lectus rutrum tempor id sed neque.",
"Fusce quis nunc eget sem vestibulum pretium.",
"Maecenas sit amet dolor rhoncus, hendrerit leo vel, dictum metus.",
"Nullam non felis non odio mollis interdum nec at justo.",
"Duis semper arcu nec ligula gravida efficitur.",
"Morbi viverra purus scelerisque, venenatis felis id, aliquet metus.",
"Proin consectetur metus aliquet nulla dignissim egestas.",
"Mauris cursus dolor nec tempor rhoncus.",
"Aenean sollicitudin felis non gravida hendrerit.",
"Quisque at eros luctus, congue est ac, tempus metus.",
"Fusce id nisl vitae ante pulvinar rutrum non nec nisi.",
"In egestas sapien vel justo varius, vel interdum risus bibendum.",
"Sed at nunc quis libero efficitur dignissim.",
"Sed bibendum elit vel augue euismod, non tempor tortor lacinia.",
"Ut vel magna eleifend, porttitor neque eu, posuere nulla.",
"Mauris ut enim cursus nisi fringilla faucibus.",
"Suspendisse eu libero et mi auctor aliquet.",
"Vivamus viverra purus vel erat congue elementum.",
"Sed finibus neque ac dapibus facilisis.",
"Integer pretium lacus at urna fringilla volutpat.",
"Suspendisse nec sem laoreet, imperdiet sem id, accumsan risus.",
"Fusce id massa finibus, sodales metus vitae, iaculis lacus.",
"Morbi non magna vel turpis viverra mattis.",
"Aenean eget velit et purus tincidunt consequat eu eget nunc.",
"Sed cursus diam varius, euismod orci at, scelerisque mauris.",
"Nunc vel metus sed arcu molestie consequat eu quis sem.",
"Duis posuere sapien eu placerat hendrerit.",
"Nullam in tellus ut elit euismod ultrices.",
"Fusce vulputate dui consequat diam rutrum ullamcorper.",
];
this.words = [
"Lorem",
"Ipsum",
"Dolor",
"Sit",
"Amet",
"Consectetur",
"Adipiscing",
"Elit",
"Pellentesque",
"Euismod",
"Ligula",
"Neque",
"Consectetur",
"Finibus",
"Massa",
"Mattis",
"Sit",
"Amet",
"Nullam",
"Tortor",
"Neque",
"Tristique",
"A",
"Nisl",
"Vel",
"Sodales",
"Sollicitudin",
"Turpis",
"Sed",
"Sit",
"Amet",
"Erat",
"Imperdiet",
"Dapibus",
"Sem",
"Rutrum",
"Tincidunt",
"Tortor",
"Donec",
"Laoreet"
];
this.images = [
"/images/ci_landingexp_portals.png",
"/images/ci_landingexp_branding.png",
"/images/ci_landingexp_greetings.png",
"/images/ci_landingexp_va_analytics.png",
"/images/ci_landingexp_channels.png"
];
this.TYPES = {
'SIMPLE_CARD': 'Simple card with button',
'CONTENT_CARD': 'Content card',
'BUTTON': 'Button',
'THREE_COL_SECTION': 'Three-col section',
'TWO_COL_SECTION': 'Two-col section',
'ONE_COL_SECTION': 'One-col section',
'FLEX_ROW_SECTION': 'Flex Row Section'
};
},
W: function(num) {
var words = this.__getRandom(this.words, num);
return words.join(' ');
},
S: function(num) {
var sentences = this.__getRandom(this.sentences, num);
return sentences.join(' ');
},
I: function() {
var images = this.__getRandom(this.images, 1);
return images[0];
},
__getRandom: function(arr, n) {
var result = new Array(n),
len = arr.length,
taken = new Array(len);
while (n--) {
var x = Math.floor(Math.random() * len);
result[n] = arr[x in taken ? taken[x] : x];
taken[x] = --len in taken ? taken[len] : len;
}
return result;
},
getSamplePayloadForType: function(type, num, parentName, startIndex) {
function getName(name, idx) {
var _name = name + ' ' + idx;
if (parentName)
_name = _name + ' - ' + parentName;
return _name;
}
startIndex = startIndex || 1;
var items = [];
switch (type) {
case this.TYPES.SIMPLE_CARD: {
items = [];
for (var i = startIndex; i < num + startIndex; i++) {
items.push({
"name": getName('Simple card', i),
"order": i * 10,
"title": this.W(3),
"subtitle": this.S(2),
"type": {
"name": this.TYPES.SIMPLE_CARD,
},
"props_details": {
"footer_text": this.W(2)
},
"children": this.getSamplePayloadForType('Button', 1, getName('Simple card', i), i)
});
}
return items;
}
case this.TYPES.CONTENT_CARD: {
items = [];
for (var i = startIndex; i < num + startIndex; i++) {
items.push({
"name": getName('Content card', i),
"order": i * 10,
"title": this.W(3),
"subtitle": this.S(1),
"type": {
"name": this.TYPES.CONTENT_CARD,
},
"props_details": {
"description": this.S(3),
"image": this.I()
},
"children": this.getSamplePayloadForType('Button', 2, getName('Content card', i), i)
});
}
return items;
}
case this.TYPES.BUTTON: {
items = [];
for (var i = startIndex; i < num + startIndex; i++) {
items.push({
"name": getName('Button', i),
"order": i * 10,
"title": this.W(2),
"subtitle": null,
"type": {
"name": this.TYPES.BUTTON
},
"props_details": {
"action_type": "link",
"link": "https://www.google.com/",
"event_name": "EXAMPLE_BUTTON_EVENT"
}
});
}
return items;
}
}
},
getDemoTemplate: function() {
// TODO: Create more demo templates for page types??
var template = [{
"name": "Section 1",
"title": this.S(1),
"subtitle": this.S(3),
"order": "10",
"type": {
"name": this.TYPES.THREE_COL_SECTION
},
"children": this.getSamplePayloadForType('Simple card with button', 3, 'Section 1')
},
{
"name": "Section 2",
"title": this.S(1),
"subtitle": this.S(3),
"order": "20",
"type": {
"name": this.TYPES.TWO_COL_SECTION
},
"children": this.getSamplePayloadForType('Simple card with button', 4, 'Section 2')
},
{
"name": "Section 3",
"title": this.S(1),
"subtitle": this.S(3),
"order": "30",
"type": {
"name": this.TYPES.ONE_COL_SECTION
},
"children": this.getSamplePayloadForType('Simple card with button', 2, 'Section 3')
},
{
"name": "Section 4",
"title": this.S(1),
"subtitle": this.S(3),
"order": "40",
"type": {
"name": this.TYPES.FLEX_ROW_SECTION
},
"children": this.getSamplePayloadForType('Content card', 6, 'Section 4')
}
];
return template;
},
type: 'ACEDemoDataUtils'
};
Sys ID
72144624eb0d011090fa99602a5228f2