Skip to content
This repository has been archived by the owner on Jan 25, 2025. It is now read-only.

Commit

Permalink
Added Error Notification Recipients Category Display
Browse files Browse the repository at this point in the history
  • Loading branch information
MatthewBlanski committed Jun 4, 2021
1 parent 0d335d8 commit 2d06234
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 28 deletions.
16 changes: 8 additions & 8 deletions force-app/main/default/classes/ErrorSettingsController_TEST.cls
Original file line number Diff line number Diff line change
Expand Up @@ -75,22 +75,22 @@ private with sharing class ErrorSettingsController_TEST {

System.assertEquals(
'All Sys Admins',
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.value,
errorSettingsVModel.errorNotificationsRecipientCategory.value,
'Send Error Notificiation recipient category should match expected value.'
);
System.assertEquals(
1,
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.options.size(),
errorSettingsVModel.errorNotificationsRecipientCategory.options.size(),
'Number of Send Error Notificiation recipient category valid options should match expected size.'
);
System.assertEquals(
'All Sys Admins',
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.options[0].value,
errorSettingsVModel.errorNotificationsRecipientCategory.options[0].value,
'Send Error Notificiation recipient category valid option for All Sys Admins should have expected value.'
);
System.assertEquals(
'All Sys Admins Label',
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.options[0].label,
errorSettingsVModel.errorNotificationsRecipientCategory.options[0].label,
'Send Error Notificiation recipient category valid option for All Sys Admins should have expected label.'
);

Expand Down Expand Up @@ -134,15 +134,15 @@ private with sharing class ErrorSettingsController_TEST {
*********************************************************************************************************************/
private class STUB_ErrorSettingsVMapper extends ErrorSettingsVMapper {
public override ErrorSettingsVModel getErrorSettingsViewModel() {
List<ComboboxValueVModel> errorNotificationsRecipientCategoryComboboxValues = new List<ComboboxValueVModel>{
List<ComboboxValueVModel> errorNotificationsRecipientCategoryValues = new List<ComboboxValueVModel>{
new ComboboxValueVModel('All Sys Admins Label', 'All Sys Admins')
};
ComboboxVModel errorNotificationsRecipientCategoryCombobox = new ComboboxVModel(
ComboboxVModel errorNotificationsRecipientCategory = new ComboboxVModel(
'All Sys Admins',
errorNotificationsRecipientCategoryComboboxValues
errorNotificationsRecipientCategoryValues
);

return new ErrorSettingsVModel(true, true, errorNotificationsRecipientCategoryCombobox, false, false);
return new ErrorSettingsVModel(true, true, errorNotificationsRecipientCategory, false, false);
}
}

Expand Down
6 changes: 3 additions & 3 deletions force-app/main/default/classes/ErrorSettingsVMapper.cls
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,14 @@ public virtual with sharing class ErrorSettingsVMapper {
*********************************************************************************************/
public virtual ErrorSettingsVModel getErrorSettingsViewModel() {
ErrorSettingsModel errorSettingsModel = this.locateErrorSettingsService().getErrorSettingsModel();
ComboboxVModel errorNotificationsRecipientCategoryComboboxVModel = this.getErrorNotificationsRecipientCategoryComboboxVModel(
ComboboxVModel errorNotificationsRecipientCategoryVModel = this.geterrorNotificationsRecipientCategoryVModel(
errorSettingsModel
);

return new ErrorSettingsVModel(
errorSettingsModel.storeErrors,
errorSettingsModel.sendErrorNotifications,
errorNotificationsRecipientCategoryComboboxVModel,
errorNotificationsRecipientCategoryVModel,
errorSettingsModel.enableDebug,
errorSettingsModel.errorHandling
);
Expand All @@ -82,7 +82,7 @@ public virtual with sharing class ErrorSettingsVMapper {
* Vmodels from
* @return The valid error notification recipient category combobox view model
******************************************************************************/
private ComboboxVModel getErrorNotificationsRecipientCategoryComboboxVModel(ErrorSettingsModel errorSettingsModel) {
private ComboboxVModel geterrorNotificationsRecipientCategoryVModel(ErrorSettingsModel errorSettingsModel) {
List<ComboboxValueVModel> errorNotificationsRecipientCategoryVModelList = new List<ComboboxValueVModel>();

List<String> errorNotificationsRecipientCategoryValueList = new List<String>(
Expand Down
8 changes: 4 additions & 4 deletions force-app/main/default/classes/ErrorSettingsVMapper_TEST.cls
Original file line number Diff line number Diff line change
Expand Up @@ -133,22 +133,22 @@ private with sharing class ErrorSettingsVMapper_TEST {

System.assertEquals(
'All Sys Admins',
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.value,
errorSettingsVModel.errorNotificationsRecipientCategory.value,
'Send Error Notificiation recipient category should match expected value.'
);
System.assertEquals(
1,
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.options.size(),
errorSettingsVModel.errorNotificationsRecipientCategory.options.size(),
'Number of Send Error Notificiation recipient category valid options should match expected size.'
);
System.assertEquals(
'All Sys Admins',
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.options[0].value,
errorSettingsVModel.errorNotificationsRecipientCategory.options[0].value,
'Send Error Notificiation recipient category valid option for All Sys Admins should have expected value.'
);
System.assertEquals(
'All Sys Admins Label',
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.options[0].label,
errorSettingsVModel.errorNotificationsRecipientCategory.options[0].label,
'Send Error Notificiation recipient category valid option for All Sys Admins should have expected label.'
);

Expand Down
8 changes: 4 additions & 4 deletions force-app/main/default/classes/ErrorSettingsVModel.cls
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public with sharing class ErrorSettingsVModel {
public Boolean sendErrorNotifications { get; private set; }

@AuraEnabled
public ComboboxVModel errorNotificationsRecipientCategoryCombobox { get; private set; }
public ComboboxVModel errorNotificationsRecipientCategory { get; private set; }

@AuraEnabled
public Boolean enableDebug { get; private set; }
Expand All @@ -52,21 +52,21 @@ public with sharing class ErrorSettingsVModel {
* @param storeErrors A boolen indicating whether error storing functionality is enabled
* @param sendErrorNotifications A boolen indicating whether send error notifications
* functionality is enabled
* @param errorNotificationsRecipientCategoryCombobox The comobobox view model that represents the
* @param errorNotificationsRecipientCategory The comobobox view model that represents the
* @param enableDebug A boolen indicating whether debug functionality is enabled
* @param errorHandling A boolen indicating whether error handling functionality is enabled
* @return An ErrorSettingsVModel
*/
public ErrorSettingsVModel(
Boolean storeErrors,
Boolean sendErrorNotifications,
ComboboxVModel errorNotificationsRecipientCategoryCombobox,
ComboboxVModel errorNotificationsRecipientCategory,
Boolean enableDebug,
Boolean errorHandling
) {
this.storeErrors = storeErrors;
this.sendErrorNotifications = sendErrorNotifications;
this.errorNotificationsRecipientCategoryCombobox = errorNotificationsRecipientCategoryCombobox;
this.errorNotificationsRecipientCategory = errorNotificationsRecipientCategory;
this.enableDebug = enableDebug;
this.errorHandling = errorHandling;
}
Expand Down
16 changes: 8 additions & 8 deletions force-app/main/default/classes/ErrorSettingsVModel_TEST.cls
Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,19 @@ private with sharing class ErrorSettingsVModel_TEST {
****************************************************************************/
@isTest
private static void sixArugumentConstructorValid() {
List<ComboboxValueVModel> errorNotificationsRecipientCategoryComboboxValues = new List<ComboboxValueVModel>{
List<ComboboxValueVModel> errorNotificationsRecipientCategoryValues = new List<ComboboxValueVModel>{
new ComboboxValueVModel('All Sys Admins Label', 'All Sys Admins')
};
ComboboxVModel errorNotificationsRecipientCategoryCombobox = new ComboboxVModel(
ComboboxVModel errorNotificationsRecipientCategory = new ComboboxVModel(
'All Sys Admins',
errorNotificationsRecipientCategoryComboboxValues
errorNotificationsRecipientCategoryValues
);

Test.startTest();
ErrorSettingsVModel errorSettingsVModel = new ErrorSettingsVModel(
false,
true,
errorNotificationsRecipientCategoryCombobox,
errorNotificationsRecipientCategory,
true,
true
);
Expand All @@ -60,22 +60,22 @@ private with sharing class ErrorSettingsVModel_TEST {
System.assertEquals(false, errorSettingsVModel.storeErrors, 'Store errors functionality should be disabled.');
System.assertEquals(
'All Sys Admins',
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.value,
errorSettingsVModel.errorNotificationsRecipientCategory.value,
'Send Error Notificiation recipient category should match expected value.'
);
System.assertEquals(
1,
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.options.size(),
errorSettingsVModel.errorNotificationsRecipientCategory.options.size(),
'Number of Send Error Notificiation recipient category valid options should match expected size.'
);
System.assertEquals(
'All Sys Admins',
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.options[0].value,
errorSettingsVModel.errorNotificationsRecipientCategory.options[0].value,
'Send Error Notificiation recipient category valid option for All Sys Admins should have expected value.'
);
System.assertEquals(
'All Sys Admins Label',
errorSettingsVModel.errorNotificationsRecipientCategoryCombobox.options[0].label,
errorSettingsVModel.errorNotificationsRecipientCategory.options[0].label,
'Send Error Notificiation recipient category valid option for All Sys Admins should have expected label.'
);
System.assertEquals(false, errorSettingsVModel.storeErrors, 'Store errors functionality should be disabled.');
Expand Down
16 changes: 15 additions & 1 deletion force-app/main/default/lwc/errorSettings/errorSettings.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,21 @@
disabled={affordancesDisabled}
></c-settings-row-input>

<template if:true={errorSettingsVModel.sendErrorNotifications}> </template>
<template if:true={errorSettingsVModel.sendErrorNotifications}>
<!-- Send Error Notification Category -->
<c-settings-row-input
class="slds-size_3-of-3"
title={labelReference.errorNotificationRecipientsTitle}
description={labelReference.errorNotificationRecipientsDescription}
type="combobox"
input-id={inputAttributeReference.errorNotificationRecipientsComboboxId}
value={errorSettingsVModel.errorNotificationsRecipientCategory.value}
placeholder={labelReference.comboboxPlaceholderText}
options={errorSettingsVModel.errorNotificationsRecipientCategory.options}
onsettingsinputchange={handleErrorNotificationRecipientCategoryChange}
disabled={affordancesDisabled}
></c-settings-row-input>
</template>

<!-- Enable Error Handling Setting -->
<c-settings-row-input
Expand Down
24 changes: 24 additions & 0 deletions force-app/main/default/lwc/errorSettings/errorSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@ import stgErrorSettingsTitle from "@salesforce/label/c.stgErrorSettingsTitle";
import stgStoreErrorsTitle from "@salesforce/label/c.stgStoreErrorsTitle";
import stgHelpStoreErrorsOn from "@salesforce/label/c.stgHelpStoreErrorsOn";
import stgSendErrorsTitle from "@salesforce/label/c.stgSendErrorsTitle";
import stgOptSelect from "@salesforce/label/c.stgOptSelect";
import stgHelpErrorNotifyOn from "@salesforce/label/c.stgHelpErrorNotifyOn";
import stgErrorNotifRecipientsTitle from "@salesforce/label/c.stgErrorNotifRecipientsTitle";
import stgHelpErrorNotifyTo from "@salesforce/label/c.stgHelpErrorNotifyTo";
import stgEnableDebugTitle from "@salesforce/label/c.stgEnableDebugTitle";
import stgEnableDebugHelp from "@salesforce/label/c.stgEnableDebugHelp";
import stgDisableErrorHandlingTitle from "@salesforce/label/c.stgDisableErrorHandlingTitle";
import stgHelpErrorDisable from "@salesforce/label/c.stgHelpErrorDisable";

const errorNotificationRecipientCategoryAllSysAdmins = "All Sys Admins";
export default class ErrorSettings extends LightningElement {
isEditMode = false;
affordancesDisabledToggle = false;
Expand All @@ -26,6 +30,9 @@ export default class ErrorSettings extends LightningElement {
storeErrorsSettingDescription: stgHelpStoreErrorsOn,
sendErrorsSettingTitle: stgSendErrorsTitle,
sendErrorsSettingDescription: stgHelpErrorNotifyOn,
errorNotificationRecipientsTitle: stgErrorNotifRecipientsTitle,
errorNotificationRecipientsDescription: stgHelpErrorNotifyTo,
comboboxPlaceholderText: stgOptSelect,
enableDebugSettingsTitle: stgEnableDebugTitle,
enableDebugSettingsDescription: stgEnableDebugHelp,
errorHandlingSettingTitle: stgDisableErrorHandlingTitle,
Expand All @@ -35,6 +42,7 @@ export default class ErrorSettings extends LightningElement {
inputAttributeReference = {
storeErrorsToggleId: "storeErrors",
sendErrorNotificationsToggleId: "sendErrorNotifications",
errorNotificationRecipientsComboboxId: "errorNotificationRecipients",
enableDebugToggleId: "enableDebug",
errorHandlingToggleId: "errorHandling",
};
Expand Down Expand Up @@ -86,6 +94,22 @@ export default class ErrorSettings extends LightningElement {
this.template.querySelector("c-settings-save-canvas").handleHierarchySettingsChange(hierarchySettingsChange);
}

handleErrorNotificationRecipientCategoryChange(event) {
const eventDetail = event.detail;

if (event.detail.value !== errorNotificationRecipientCategoryAllSysAdmins) {
return;
}

let hierarchySettingsChange = {
settingsType: "string",
settingsName: "Error_Notifications_To__c",
settingsValue: eventDetail.value,
};

this.template.querySelector("c-settings-save-canvas").handleHierarchySettingsChange(hierarchySettingsChange);
}

handleEnableDebugChange(event) {
const eventDetail = event.detail;

Expand Down

0 comments on commit 2d06234

Please sign in to comment.