Skip to content

Commit de8088d

Browse files
authored
Fixed logEntryMetadataViewer LWC's 'View Full Source' button not showing for non-admins (#671)
* Added access for the Apex class LogEntryMetdataViewerController to the permission sets LoggerAdmin, LoggerLogViewer, LoggerEndUser to fix some permission errors that could occur in some orgs/situations * Fixed some excessively large whitespace in the LWC caused by a present-but-not-visible spinner * Updated the logEntryMetadataViewer LWC to imperatively call Apex controller methods - using the @wire annotation caused weird, silent failures when calling the Apex methods, calling it imperatively seems to work wonderfully (and is more consistent with how the other LWCs in Nebula Logger are written)
1 parent f4addfd commit de8088d

10 files changed

Lines changed: 32 additions & 28 deletions

File tree

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55

66
The most robust logger for Salesforce. Works with Apex, Lightning Components, Flow, Process Builder & Integrations. Designed for Salesforce admins, developers & architects.
77

8-
## Unlocked Package - v4.13.7
8+
## Unlocked Package - v4.13.8
99

10-
[![Install Unlocked Package in a Sandbox](./images/btn-install-unlocked-package-sandbox.png)](https://test.salesforce.com/packaging/installPackage.apexp?p0=04t5Y000001MkHRQA0)
11-
[![Install Unlocked Package in Production](./images/btn-install-unlocked-package-production.png)](https://login.salesforce.com/packaging/installPackage.apexp?p0=04t5Y000001MkHRQA0)
10+
[![Install Unlocked Package in a Sandbox](./images/btn-install-unlocked-package-sandbox.png)](https://test.salesforce.com/packaging/installPackage.apexp?p0=04t5Y000001MkHbQAK)
11+
[![Install Unlocked Package in Production](./images/btn-install-unlocked-package-production.png)](https://login.salesforce.com/packaging/installPackage.apexp?p0=04t5Y000001MkHbQAK)
1212
[![View Documentation](./images/btn-view-documentation.png)](https://jongpie.github.io/NebulaLogger/)
1313

14-
`sf package install --wait 20 --security-type AdminsOnly --package 04t5Y000001MkHRQA0`
14+
`sf package install --wait 20 --security-type AdminsOnly --package 04t5Y000001MkHbQAK`
1515

16-
`sfdx force:package:install --wait 20 --securitytype AdminsOnly --package 04t5Y000001MkHRQA0`
16+
`sfdx force:package:install --wait 20 --securitytype AdminsOnly --package 04t5Y000001MkHbQAK`
1717

1818
---
1919

nebula-logger/core/main/log-management/lwc/logEntryMetadataViewer/logEntryMetadataViewer.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<template>
77
<template if:false={hasLoaded}>
88
<div class="slds-is-relative" style="min-height: 6em">
9-
<lightning-spinner variant="inverse"></lightning-spinner>
9+
<lightning-spinner></lightning-spinner>
1010
</div>
1111
</template>
1212
<template if:true={hasLoaded}>

nebula-logger/core/main/log-management/lwc/logEntryMetadataViewer/logEntryMetadataViewer.js

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export default class LogEntryMetadataViewer extends LightningElement {
3333
@api sourceMetadata;
3434

3535
objectApiName = LOG_ENTRY_OBJECT;
36+
hasLoaded = false;
3637
sourceSnippet;
3738

3839
showFullSourceMetadataModal = false;
@@ -43,10 +44,6 @@ export default class LogEntryMetadataViewer extends LightningElement {
4344
_logEntry;
4445
_logEntryMetadata;
4546

46-
get hasLoaded() {
47-
return !!this._logEntry && !!this._logEntryMetadata;
48-
}
49-
5047
get sectionTitle() {
5148
if (this.sourceMetadata === 'Exception') {
5249
return 'Exception Source Metadata';
@@ -76,18 +73,6 @@ export default class LogEntryMetadataViewer extends LightningElement {
7673
: 'This Apex code has not been modified since this log entry was generated.';
7774
}
7875

79-
@wire(getMetadata, {
80-
recordId: '$recordId',
81-
sourceMetadata: '$sourceMetadata'
82-
})
83-
wiredGetLogEntryMetadata({ error, data }) {
84-
if (data) {
85-
this._logEntryMetadata = data;
86-
} else if (error) {
87-
this._logEntryMetadata = undefined;
88-
}
89-
}
90-
9176
@wire(getRecord, {
9277
recordId: '$recordId',
9378
fields: LOG_ENTRY_FIELDS
@@ -110,6 +95,12 @@ export default class LogEntryMetadataViewer extends LightningElement {
11095
const sourceApiVersion = getFieldValue(this._logEntry, sourceApiVersionField);
11196
const sourceName = `${sourceApiName}.${sourceExtension} - ${sourceApiVersion}`;
11297
this.sourceSnippet = { ...JSON.parse(sourceSnippetJson), ...{ Title: sourceName } };
98+
99+
this.hasLoaded = true;
100+
this._logEntryMetadata = await getMetadata({
101+
recordId: this.recordId,
102+
sourceMetadata: this.sourceMetadata
103+
});
113104
}
114105
}
115106

nebula-logger/core/main/log-management/permissionsets/LoggerAdmin.permissionset-meta.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@
4444
<apexClass>LogEntryEventStreamController</apexClass>
4545
<enabled>true</enabled>
4646
</classAccesses>
47+
<classAccesses>
48+
<apexClass>LogEntryMetadataViewerController</apexClass>
49+
<enabled>true</enabled>
50+
</classAccesses>
4751
<classAccesses>
4852
<apexClass>LogMassDeleteExtension</apexClass>
4953
<enabled>true</enabled>

nebula-logger/core/main/log-management/permissionsets/LoggerEndUser.permissionset-meta.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
<apexClass>FlowRecordLogEntry</apexClass>
2121
<enabled>true</enabled>
2222
</classAccesses>
23+
<classAccesses>
24+
<apexClass>LogEntryMetadataViewerController</apexClass>
25+
<enabled>true</enabled>
26+
</classAccesses>
2327
<classAccesses>
2428
<apexClass>LogMassDeleteExtension</apexClass>
2529
<enabled>true</enabled>

nebula-logger/core/main/log-management/permissionsets/LoggerLogViewer.permissionset-meta.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
<apexClass>LogEntryEventStreamController</apexClass>
1313
<enabled>true</enabled>
1414
</classAccesses>
15+
<classAccesses>
16+
<apexClass>LogEntryMetadataViewerController</apexClass>
17+
<enabled>true</enabled>
18+
</classAccesses>
1519
<classAccesses>
1620
<apexClass>LogMassDeleteExtension</apexClass>
1721
<enabled>true</enabled>

nebula-logger/core/main/logger-engine/classes/Logger.cls

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
global with sharing class Logger {
1616
// There's no reliable way to get the version number dynamically in Apex
1717
@TestVisible
18-
private static final String CURRENT_VERSION_NUMBER = 'v4.13.7';
18+
private static final String CURRENT_VERSION_NUMBER = 'v4.13.8';
1919
private static final System.LoggingLevel FALLBACK_LOGGING_LEVEL = System.LoggingLevel.DEBUG;
2020
private static final List<LogEntryEventBuilder> LOG_ENTRIES_BUFFER = new List<LogEntryEventBuilder>();
2121
private static final String MISSING_SCENARIO_ERROR_MESSAGE = 'No logger scenario specified. A scenario is required for logging in this org.';

nebula-logger/core/main/logger-engine/lwc/logger/logEntryBuilder.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//------------------------------------------------------------------------------------------------//
55
import FORM_FACTOR from '@salesforce/client/formFactor';
66

7-
const CURRENT_VERSION_NUMBER = 'v4.13.7';
7+
const CURRENT_VERSION_NUMBER = 'v4.13.8';
88

99
// JavaScript equivalent to the Apex class ComponentLogger.ComponentLogEntry
1010
const ComponentLogEntry = class {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nebula-logger",
3-
"version": "4.13.7",
3+
"version": "4.13.8",
44
"description": "The most robust logger for Salesforce. Works with Apex, Lightning Components, Flow, Process Builder & Integrations. Designed for Salesforce admins, developers & architects.",
55
"author": "Jonathan Gillespie",
66
"license": "MIT",

sfdx-project.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
"path": "./nebula-logger/core",
1515
"definitionFile": "./config/scratch-orgs/base-scratch-def.json",
1616
"scopeProfiles": true,
17-
"versionNumber": "4.13.7.NEXT",
18-
"versionName": "Fixed function setScenario() in logger LWC",
19-
"versionDescription": "Fixed an issue in the logger LWC's function setScenario() where the value was sometimes (often?) incorrectly set to null",
17+
"versionNumber": "4.13.8.NEXT",
18+
"versionName": "logEntryMetadataViewer LWC Bugfixes",
19+
"versionDescription": "Fixed some additional issues in the logEntryMetadataViewer LWC that prevented the 'view full source' btn from showing up for non-admins",
2020
"releaseNotesUrl": "https://github.com/jongpie/NebulaLogger/releases",
2121
"unpackagedMetadata": {
2222
"path": "./nebula-logger/extra-tests"
@@ -175,6 +175,7 @@
175175
"Nebula Logger - Core@4.13.5-performance-improvements": "04t5Y000001MkGnQAK",
176176
"Nebula Logger - Core@4.13.6-view-log-entry-metadata-custom-permission": "04t5Y000001MkGxQAK",
177177
"Nebula Logger - Core@4.13.7-fixed-function-setscenario()-in-logger-lwc": "04t5Y000001MkHRQA0",
178+
"Nebula Logger - Core@4.13.8-logentrymetadataviewer-lwc-bugfixes": "04t5Y000001MkHbQAK",
178179
"Nebula Logger - Core Plugin - Async Failure Additions": "0Ho5Y000000blO4SAI",
179180
"Nebula Logger - Core Plugin - Async Failure Additions@1.0.0": "04t5Y0000015lhiQAA",
180181
"Nebula Logger - Core Plugin - Async Failure Additions@1.0.1": "04t5Y0000015lhsQAA",

0 commit comments

Comments
 (0)