profile-studio/app/page_registration.js

223 lines
5.3 KiB
JavaScript

/**
* Register and manage all components.
* This is not a part of VueJS. It is a helper so we can easily access information about each component.
*/
var pageComponents = {
/**
* [Private]
* Store all registered components
*/
components: [],
/**
* Lookup components array and return the componente for the specified ID.
* If ID is not found then return null.
*
* @param string id: ID of the component to return.
*
* @return object: The requested ID, or null if not found.
*/
getComponent: function(id)
{
for (i = 0; i < this.components.length; i++)
{
var component = this.components[i];
if (component.id.toLowerCase() == id.toLowerCase())
{
return component;
}
}
return null;
},
getComponentByPath: function(path)
{
for (i = 0; i < this.components.length; i++)
{
var component = this.components[i];
if (component.path.toLowerCase() == ("#" + path.trim()).toLowerCase())
{
return component;
}
}
return null;
},
registerComponent: function(component)
{
this.components.push(component);
},
registerComponents: function()
{
this.registerComponent({
id: "home",
path: "#/",
type: "page",
title: "Welcome",
description: "",
fontAwesomeIcon: "fas fa-home"
});
this.registerComponent({
id: "basics",
path: "#/section/basics",
type: "page",
title: "Basics",
description: "",
fontAwesomeIcon: "far fa-address-card"
});
this.registerComponent({
id: "work",
path: "#/section/work",
type: "page",
title: "Work",
description: "",
fontAwesomeIcon: "fas fa-building"
});
this.registerComponent({
id: "volunteer",
path: "#/section/volunteer",
type: "page",
title: "Volunteer",
description: "",
fontAwesomeIcon: "fas fa-hands-helping"
});
this.registerComponent({
id: "education",
path: "#/section/education",
type: "page",
title: "Education",
description: "",
fontAwesomeIcon: "fas fa-graduation-cap"
});
this.registerComponent({
id: "awards",
path: "#/section/awards",
type: "page",
title: "Awards",
description: "",
fontAwesomeIcon: "fas fa-award"
});
this.registerComponent({
id: "publications",
path: "#/section/publications",
type: "page",
title: "Publications",
description: "",
fontAwesomeIcon: "fas fa-book"
});
this.registerComponent({
id: "skills",
path: "#/section/skills",
type: "page",
title: "Skills",
description: "",
fontAwesomeIcon: "fas fa-tools"
});
this.registerComponent({
id: "languages",
path: "#/section/languages",
type: "page",
title: "Languages",
description: "",
fontAwesomeIcon: "fas fa-heart"
});
this.registerComponent({
id: "interests",
path: "#/section/interests",
type: "page",
title: "Interests",
description: "",
fontAwesomeIcon: "fas fa-map"
});
this.registerComponent({
id: "references",
path: "#/section/references",
type: "page",
title: "References",
description: "",
fontAwesomeIcon: "fas fa-list"
});
this.registerComponent({
id: "projects",
path: "#/section/projects",
type: "page",
title: "Projects",
description: "",
fontAwesomeIcon: "fas fa-project-diagram"
});
this.registerComponent({
id: "previewResume",
path: "#/preview",
type: "page",
title: "Preview Your Resume",
description: "Preview your final resume.",
fontAwesomeIcon: "fas fa-print"
});
this.registerComponent({
id: "import",
path: "#/import",
type: "page",
title: "Import",
description: "Import an existing JSON resume to continue editing.",
fontAwesomeIcon: "fas fa-file-upload"
});
this.registerComponent({
id: "export",
path: "#/export",
type: "page",
title: "Export",
description: "Export your resume to JSON.",
fontAwesomeIcon: "fas fa-file-download"
});
this.registerComponent({
id: "about",
path: "#/about",
type: "page",
title: "About",
description: "About this application.",
fontAwesomeIcon: "fas fa-info-circle"
});
}
};