Onboarding Plugins: Difference between revisions
(Created page with "Category:3B Onboarding") |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:3B Onboarding]] | [[Category:3B Onboarding]] | ||
=== '''Intro''' === | |||
3B offers a number of plugins that can be embedded on custom Visualforce Pages or even external pages to Salesforce. | |||
=== '''Plugins''' === | |||
==== “remoteUtils” ==== | |||
Enables communication with Salesforce. If the global variable b3o.GlobalRemoutingRouter is available (when the plugin is embedded in a VFP with the apex controller set to “b3o.GlobalRemoutingRouter”), then we will use secure AJAX to communicate with Salesforce. Alternatively, if the b3o.GlobalRemoutingRouter global variable is not available, we will fall back to REST API for communication with Salesforce. | |||
REST API communication is unauthenticated and requires that the plugin is set up with a “publicSiteURL” pointing to a guest user enabled site/community*(link to article) | |||
We do not recommend overriding or extending this plugin. <syntaxhighlight lang="javascript" line="1"> | |||
remoteUtils.init({ | |||
publicSiteURL: '{!$Setup.b3o__Onboarding_Default_Settings__c.b3o__Site_URL__c}' | |||
}).then(value => { | |||
console.log('Loaded [Remote Utils]', value); | |||
}).catch(error => { | |||
console.error('Error Initializing [Remote Utils]', error); | |||
}); | |||
</syntaxhighlight> | |||
{| class="wikitable" | |||
|+Properties | |||
!Property | |||
!Type | |||
!Description | |||
!Default | |||
!Required | |||
|- | |||
|publicSiteURL | |||
|string | |||
|This is the Site/Community base endpoint. | |||
| | |||
|true | |||
|} | |||
==== “modal” ==== | |||
This is a simple modal plugin. It is a dependency for other plugins to display pages/content in a modal interface. <syntaxhighlight lang="javascript"> | |||
modal.init({ | |||
rootEl: 'modal-wrapper', | |||
reloadComponentsOnClose: false | |||
}).then(value => { | |||
console.log('Loaded [MODALHANDLER]', value); | |||
}).catch(error => { | |||
console.error('Error Loading Component [MODALHANDLER]', error); | |||
}).finally(fin =>{ | |||
}); | |||
</syntaxhighlight> | |||
{| class="wikitable" | |||
|+Properties | |||
!Property | |||
!Type | |||
!Description | |||
!Default | |||
!Required | |||
|- | |||
|rootEl | |||
|string | |||
|This is the ID of the root element where the modal will be rendered into | |||
| | |||
|true | |||
|- | |||
|reloadComponentsOnClose | |||
|boolean | |||
|Whether or not the component will request all other sibling components to re-render when the modal is closed | |||
|true | |||
|false | |||
|} | |||
==== “jobVetting” ==== | |||
This is the plugin that runs assessments *(link to article). | |||
{| class="wikitable" | |||
|+Properties | |||
!Property | |||
!Type | |||
!Description | |||
!Default | |||
!Required | |||
|- | |||
|rootEl | |||
|string | |||
|This is the ID of the root element where the modal will be rendered into | |||
| | |||
|true | |||
|- | |||
|jobPostId | |||
|string | |||
|This is the 3B Job's record id. Used to auto-generate 3B Application if passed. | |||
| | |||
|false | |||
|- | |||
|jobBoardId | |||
|string | |||
|This is the Job Board's record id. Used together with jobPostId, when a 3B Application is created, we will assign the Job Board's ID in the field on the 3B Application | |||
| | |||
|false | |||
|- | |||
|userId | |||
|string | |||
|This is the Contact Id (logged in user) | |||
| | |||
|true | |||
|- | |||
|questionSetId | |||
|string | |||
|This is the Question Set's record id. | |||
| | |||
|true | |||
|- | |||
|documentId | |||
|string | |||
|This is the Document's record id. If passed, we will create a new document submission*(Link to article) upon successful submission of the record | |||
| | |||
|false | |||
|- | |||
|applicationId | |||
|string | |||
|This is the 3B Application's record id. If passed, we will relate the Candidate Scorecard*(Link to article) to the provided 3B Application id | |||
| | |||
|false | |||
|- | |||
|LBL_DefaultOptionLabel | |||
|string | |||
|For drop-downs, what would be the text displayed in the non-selected drop downs | |||
| -- Select -- | |||
|false | |||
|- | |||
|MSG_FieldRequired | |||
|string | |||
|Error message displayed when a field is required, but no value is provided | |||
|This is required | |||
|false | |||
|- | |||
|MSG_FieldTooLong | |||
|string | |||
|Error message displayed if the input field violates the maximum length settings | |||
|Input is too long | |||
|false | |||
|- | |||
|submitBTN | |||
|string | |||
|The label of the submit button | |||
|Submit | |||
|false | |||
|} | |||
==== “jobBoardActions” ==== | |||
This is the plugin that renders the login/log out and options menu for non-community user authentication mode. Elect a registration form or even other menu options to be displayed. Feel free to override the HTML implementation to make the drop down fit better your branding. | |||
==== “selfB” ==== | |||
This is the plugin that runs the self bookings*(link to article). | |||
==== “jobPost” ==== | |||
This is the plugin that renders Job Posts in an embedded format | |||
==== “jobApp” ==== | |||
This is the plugin that enables the job application workflow | |||
=== '''Authentication Context''' === | |||
3B components are designed to be running in internal user context, community user context or un-authenticated guest user context. When running our components in the later context, you are responsible for implementing a reliable and secure authentication and communication mechanism. We provide a component “jobBoardActions” that manages authentication using 3B Forms, however we view this as dangerous and prone to brute force attacks. Always implement full-blown community licenses where possible for external candidate communication. |
Revision as of 06:00, 22 October 2022
Intro
3B offers a number of plugins that can be embedded on custom Visualforce Pages or even external pages to Salesforce.
Plugins
“remoteUtils”
Enables communication with Salesforce. If the global variable b3o.GlobalRemoutingRouter is available (when the plugin is embedded in a VFP with the apex controller set to “b3o.GlobalRemoutingRouter”), then we will use secure AJAX to communicate with Salesforce. Alternatively, if the b3o.GlobalRemoutingRouter global variable is not available, we will fall back to REST API for communication with Salesforce.
REST API communication is unauthenticated and requires that the plugin is set up with a “publicSiteURL” pointing to a guest user enabled site/community*(link to article)
We do not recommend overriding or extending this plugin.
remoteUtils.init({
publicSiteURL: '{!$Setup.b3o__Onboarding_Default_Settings__c.b3o__Site_URL__c}'
}).then(value => {
console.log('Loaded [Remote Utils]', value);
}).catch(error => {
console.error('Error Initializing [Remote Utils]', error);
});
Property | Type | Description | Default | Required |
---|---|---|---|---|
publicSiteURL | string | This is the Site/Community base endpoint. | true |
“modal”
This is a simple modal plugin. It is a dependency for other plugins to display pages/content in a modal interface.
modal.init({
rootEl: 'modal-wrapper',
reloadComponentsOnClose: false
}).then(value => {
console.log('Loaded [MODALHANDLER]', value);
}).catch(error => {
console.error('Error Loading Component [MODALHANDLER]', error);
}).finally(fin =>{
});
Property | Type | Description | Default | Required |
---|---|---|---|---|
rootEl | string | This is the ID of the root element where the modal will be rendered into | true | |
reloadComponentsOnClose | boolean | Whether or not the component will request all other sibling components to re-render when the modal is closed | true | false |
“jobVetting”
This is the plugin that runs assessments *(link to article).
Property | Type | Description | Default | Required |
---|---|---|---|---|
rootEl | string | This is the ID of the root element where the modal will be rendered into | true | |
jobPostId | string | This is the 3B Job's record id. Used to auto-generate 3B Application if passed. | false | |
jobBoardId | string | This is the Job Board's record id. Used together with jobPostId, when a 3B Application is created, we will assign the Job Board's ID in the field on the 3B Application | false | |
userId | string | This is the Contact Id (logged in user) | true | |
questionSetId | string | This is the Question Set's record id. | true | |
documentId | string | This is the Document's record id. If passed, we will create a new document submission*(Link to article) upon successful submission of the record | false | |
applicationId | string | This is the 3B Application's record id. If passed, we will relate the Candidate Scorecard*(Link to article) to the provided 3B Application id | false | |
LBL_DefaultOptionLabel | string | For drop-downs, what would be the text displayed in the non-selected drop downs | -- Select -- | false |
MSG_FieldRequired | string | Error message displayed when a field is required, but no value is provided | This is required | false |
MSG_FieldTooLong | string | Error message displayed if the input field violates the maximum length settings | Input is too long | false |
submitBTN | string | The label of the submit button | Submit | false |
“jobBoardActions”
This is the plugin that renders the login/log out and options menu for non-community user authentication mode. Elect a registration form or even other menu options to be displayed. Feel free to override the HTML implementation to make the drop down fit better your branding.
“selfB”
This is the plugin that runs the self bookings*(link to article).
“jobPost”
This is the plugin that renders Job Posts in an embedded format
“jobApp”
This is the plugin that enables the job application workflow
Authentication Context
3B components are designed to be running in internal user context, community user context or un-authenticated guest user context. When running our components in the later context, you are responsible for implementing a reliable and secure authentication and communication mechanism. We provide a component “jobBoardActions” that manages authentication using 3B Forms, however we view this as dangerous and prone to brute force attacks. Always implement full-blown community licenses where possible for external candidate communication.