Modified datastructure for web card content data.

pull/2/head
David Tookey 5 years ago
parent 43368bf358
commit 90980677d1

@ -1,194 +1,204 @@
{
"grid-container": {
"Category1 - Project management, clients, invoicing, data": [
{
"title": "Clarity",
"description": "Clarity project management software is used to create, track, review and bill field-engineering projects, start to finish.",
"imagePath": "clarity-icon-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Clarity image"
},
{
"title": "Project Insight",
"description": "Structural Engineering Design uses this project management software to centralize the group's work, tasks and projects.",
"imagePath": "project-insight-logo6-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Project Insight logo"
},
{
"title": "Deltek",
"description": "Project intelligence, management and collaboration software helps maximize productivity and revenue.",
"imagePath": "deltek-logo-black.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Deltek logo"
},
{
"title": "Procore",
"description": "Streamline billing. Administrators for field engineering projects use Procore software for invoice collection, review and approval.",
"imagePath": "procore-logo-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Procore logo"
},
{
"title": "Client W-9 Form",
"description": "A W-9 form is required by JDSfaulkner so that the company can file an information return with the IRS.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
}
],
"Category2 - Work tools, e-mail, calendar, cloud storage": [
{
"title": "Gmail",
"description": "Access your company e-mail and a suite of Google apps, including a calendar, instant messaging and cloud storage.",
"imagePath": "gmail-logo2-100x100.png",
"urlText": "https://mail.google.com",
"altText": "Gmail logo"
},
{
"title": "Workplace",
"description": "Get the latest news and connect with colleagues. JDSfaulkner uses Workplace by Facebook for posting and sharing.",
"imagePath": "workplace-logo3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Workplace logo"
},
{
"title": "Google Workspace",
"description": "This suite of Google products includes Gmail, Calendar, Meet, Chat, Drive, Docs, Sheets, Slides, Forms and more.",
"imagePath": "google-logo2-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Google Workspace logo"
},
{
"title": "Dropbox",
"description": "The Structural Engineering Design department stores most of its files and folders in the Dropbox cloud-based system.",
"imagePath": "dropbox-logo3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Dropbox logo"
}
],
"Category3 - Marketing, client-facing media, publications": [
{
"title": "JDSfaulkner.com",
"description": "What makes a great first impression? JDSfaulkner.com conveys the company's value to potential clients and partners.",
"imagePath": "jdsfaulkner-small-icon.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Website image"
},
{
"title": "Salesforce",
"description": "Marketing and sales teams focus on the customer experience using Salesforce customer relationship management.",
"imagePath": "salesforce-logo-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Salesforce logo"
},
{
"title": "JDSfaulkner Brochure",
"description": "View the company brochure to learn about the company, or send a copy to potential clients and partners.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "JDSfaulkner SOQ",
"description": "SOQs present the experience and capabilities that qualify JDSfaulkner to win contracts or new clients.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "JDSfaulkner Logo",
"description": "Do you need to use the company logo in marketing material, merchandise or documentation? Here is a copy.",
"imagePath": "image-download-icon.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "JDSfaulkner logo"
},
{
"title": "Marketing Contacts",
"description": "Keep track of clients and partners with important names, addresses, e-mail addresses and phone numbers.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Spreadsheet icon"
}
],
"Category4 - HR, policies, onboarding, benefits, payroll": [
{
"title": "Paycor",
"description": "Clock in and out, request time off, review health benefits and access paystubs using the Paycor human-resources application.",
"imagePath": "paycor-logo3-100x100.png",
"urlText": "https://www.paycor.com/",
"altText": "Paycor logo"
},
{
"title": "Swag Store",
"description": "Buy polo shirts and other logo gear here. Costs are deducted from your paycheck, or you can apply Funny Money.",
"imagePath": "swag-store-icon-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Store image"
},
{
"title": "Employee Handbook",
"description": "View this document to learn about the companys policies related to employment, including pay and benefits.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "Direct Deposit",
"description": "Would you like have your paychecks deposited into your bank account? Fill out this form and submit it to HR.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "NC-4EZ Form",
"description": "Complete this form so that JDSfaulkner can withhold the correct amount of state income tax from your pay.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "Employment Application",
"description": "Would you or someone you know like to apply for a position at JDSfaulkner? Submit this application to HR.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "Drafting Quiz",
"description": "Click here to access a prequalifying quiz that is a requirement for those applying for drafting positions.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Preview image"
},
{
"title": "W-4 Form",
"description": "Fill out this form and submit to HR so that the company can withhold the correct federal income tax from your pay.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
}
],
"Category5 - Career growth, company procedures, helpful references": [
{
"title": "Learning Center",
"description": "Visit your central location for training resources, including online courses and the companys procedure manual. ",
"imagePath": "learning-center-icon4-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Learning Center image"
},
{
"title": "ASTM procedures",
"description": "Visit this website for access to current ASTM procedures. Contact the CMT Manager for the login ID and password.",
"imagePath": "astm-logo3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "ASTM logo"
}
]
"Category1": {
"description": "Project management, clients, invoicing, data",
"cards": [
{
"title": "Clarity",
"description": "Clarity project management software is used to create, track, review and bill field-engineering projects, start to finish.",
"imagePath": "clarity-icon-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Clarity image"
},
{
"title": "Project Insight",
"description": "Structural Engineering Design uses this project management software to centralize the group's work, tasks and projects.",
"imagePath": "project-insight-logo6-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Project Insight logo"
},
{
"title": "Deltek",
"description": "Project intelligence, management and collaboration software helps maximize productivity and revenue.",
"imagePath": "deltek-logo-black.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Deltek logo"
},
{
"title": "Procore",
"description": "Streamline billing. Administrators for field engineering projects use Procore software for invoice collection, review and approval.",
"imagePath": "procore-logo-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Procore logo"
},
{
"title": "Client W-9 Form",
"description": "A W-9 form is required by JDSfaulkner so that the company can file an information return with the IRS.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
}
]
},
"Category2": {
"description": "Work tools, e-mail, calendar, cloud storage",
"cards": [
{
"title": "Gmail",
"description": "Access your company e-mail and a suite of Google apps, including a calendar, instant messaging and cloud storage.",
"imagePath": "gmail-logo2-100x100.png",
"urlText": "https://mail.google.com",
"altText": "Gmail logo"
},
{
"title": "Workplace",
"description": "Get the latest news and connect with colleagues. JDSfaulkner uses Workplace by Facebook for posting and sharing.",
"imagePath": "workplace-logo3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Workplace logo"
},
{
"title": "Google Workspace",
"description": "This suite of Google products includes Gmail, Calendar, Meet, Chat, Drive, Docs, Sheets, Slides, Forms and more.",
"imagePath": "google-logo2-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Google Workspace logo"
},
{
"title": "Dropbox",
"description": "The Structural Engineering Design department stores most of its files and folders in the Dropbox cloud-based system.",
"imagePath": "dropbox-logo3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Dropbox logo"
}
]
},
"Category3": {
"description": "Marketing, client-facing media, publications",
"cards": [
{
"title": "JDSfaulkner.com",
"description": "What makes a great first impression? JDSfaulkner.com conveys the company's value to potential clients and partners.",
"imagePath": "jdsfaulkner-small-icon.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Website image"
},
{
"title": "Salesforce",
"description": "Marketing and sales teams focus on the customer experience using Salesforce customer relationship management.",
"imagePath": "salesforce-logo-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Salesforce logo"
},
{
"title": "JDSfaulkner Brochure",
"description": "View the company brochure to learn about the company, or send a copy to potential clients and partners.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "JDSfaulkner SOQ",
"description": "SOQs present the experience and capabilities that qualify JDSfaulkner to win contracts or new clients.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "JDSfaulkner Logo",
"description": "Do you need to use the company logo in marketing material, merchandise or documentation? Here is a copy.",
"imagePath": "image-download-icon.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "JDSfaulkner logo"
},
{
"title": "Marketing Contacts",
"description": "Keep track of clients and partners with important names, addresses, e-mail addresses and phone numbers.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Spreadsheet icon"
}
]
},
"Category4": {
"description": "HR, policies, on-boarding, benefits, payroll",
"cards": [
{
"title": "Paycor",
"description": "Clock in and out, request time off, review health benefits and access paystubs using the Paycor human-resources application.",
"imagePath": "paycor-logo3-100x100.png",
"urlText": "https://www.paycor.com/",
"altText": "Paycor logo"
},
{
"title": "Swag Store",
"description": "Buy polo shirts and other logo gear here. Costs are deducted from your paycheck, or you can apply Funny Money.",
"imagePath": "swag-store-icon-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Store image"
},
{
"title": "Employee Handbook",
"description": "View this document to learn about the companys policies related to employment, including pay and benefits.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "Direct Deposit",
"description": "Would you like have your paychecks deposited into your bank account? Fill out this form and submit it to HR.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "NC-4EZ Form",
"description": "Complete this form so that JDSfaulkner can withhold the correct amount of state income tax from your pay.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "Employment Application",
"description": "Would you or someone you know like to apply for a position at JDSfaulkner? Submit this application to HR.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
},
{
"title": "Drafting Quiz",
"description": "Click here to access a prequalifying quiz that is a requirement for those applying for drafting positions.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Preview image"
},
{
"title": "W-4 Form",
"description": "Fill out this form and submit to HR so that the company can withhold the correct federal income tax from your pay.",
"imagePath": "pdf-icon3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "PDF icon"
}
]
},
"Category5": {
"description": "Career growth, company procedures, helpful references",
"cards": [
{
"title": "Learning Center",
"description": "Visit your central location for training resources, including online courses and the companys procedure manual. ",
"imagePath": "learning-center-icon4-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "Learning Center image"
},
{
"title": "ASTM procedures",
"description": "Visit this website for access to current ASTM procedures. Contact the CMT Manager for the login ID and password.",
"imagePath": "astm-logo3-100x100.png",
"urlText": "https://jdsfaulkner.workplace.com",
"altText": "ASTM logo"
}
]
}
}
}

@ -1,10 +1,11 @@
<html lang="en">
<div>
<div id="{{{category-clean}}}-collapser" style="background-color:grey;">
<p class="text-white align-self-center">{{{category}}}</p>
<div id="{{{category-id}}}-collapser" style="background-color:grey;">
<h1>{{{category-id-clean}}}</h1> <br/>
<p class="text-white align-self-center">{{{category-description}}}</p>
</div>
<br>
<div id="{{{category-clean}}}-container" class="{{{category-clean}}}-collapse no-overflow row"></div>
<div id="{{{category-id}}}-container" class="{{{category-id}}}-collapse no-overflow row" style="display:none;"></div>
</div>
<br>
</html>

@ -24,7 +24,7 @@ export function loadTemplate(filename: string, obj: object, cb: TemplateCallback
let contents = templateCache[filename];
if (!contents) throw new Error("No such template: " + filename);
let rendered = Mustache.render(contents, obj)
if(null !== cb){
if (null !== cb) {
cb(rendered)
}
return rendered;
@ -33,7 +33,7 @@ export function loadTemplate(filename: string, obj: object, cb: TemplateCallback
export function loadTemplateSingle(filename: string, cardModel: CardModel, cb: (content: string, id: string) => void) {
let contents = templateCache[filename];
if (!contents) throw new Error("No such template: " + filename);
cardModel['id'] = createId(cardModel.resourcePath);
cardModel['id'] = createId(cardModel.title + cardModel.resourcePath);
let rendered = Mustache.render(contents, cardModel);
cb(rendered, cardModel['id']);
}

@ -49,22 +49,23 @@ export function buildWebCardsFromConfig(configName: string) {
let containerCategories = Object.keys(containerObject);
for (let j = 0, m = containerCategories.length; j < m; j++) {
let categoryName = containerCategories[j];
console.log(containerObject);
let contentList = containerObject[categoryName];//should be array of objects to render
let categoryClean = categoryName.replace(/ /ig, "-")
let categoryObject = {"category": categoryName, "category-clean":categoryClean};
let categoryMetaObjectKey = containerCategories[j];
let categoryMetaObject = containerObject[categoryMetaObjectKey];
let contentList = categoryMetaObject["cards"];//should be array of objects to render
let categoryDescription = categoryMetaObject["description"];
let categoryKey = categoryMetaObjectKey.replace(/[\s,]/ig, '-');
let categoryObject = {"category-description": categoryDescription, "category-id": categoryKey, "category-id-clean":categoryMetaObjectKey};
let categoryWrapperRaw = loadTemplate("card-category.mustache", categoryObject, (x) => {
});
let categoryWrapper = $(categoryWrapperRaw);
containerElem.append(categoryWrapper);
let view = $(`#${categoryClean}-container`);
let collapseButton = $(`#${categoryClean}-collapser`);
let view = $(`#${categoryMetaObjectKey}-container`);
let collapseButton = $(`#${categoryMetaObjectKey}-collapser`);
collapseButton.on("click", () => {
let collapsable = $(`#${categoryClean}-container`);
let collapsable = $(`#${categoryMetaObjectKey}-container`);
if ("none" === collapsable.css('display')) {
collapsable.css("display", "");
} else {

Loading…
Cancel
Save