Skip to content

Commit b72eb66

Browse files
committed
update monkey html module
1 parent 1e8dae6 commit b72eb66

15 files changed

Lines changed: 324 additions & 97 deletions

core/modules/monkeyhtml/Localized/en-US/monkeyhtml.psd1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@
1515
BaseUrlErrorMessage = Unable to get baseUrl property from config file
1616
JsDelivrInfoMessage = Url converted to {0}
1717
FileNotFoundErrorMessage = Could not find file {0}
18+
AddNewModalObjectTo = Add modal object into {0}
1819
'@

core/modules/monkeyhtml/Localized/monkeyhtml.psd1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@
1515
BaseUrlErrorMessage = Unable to get baseUrl property from config file
1616
JsDelivrInfoMessage = Url converted to {0}
1717
FileNotFoundErrorMessage = Could not find file {0}
18+
AddNewModalObjectTo = Add modal object into {0}
1819
'@

core/modules/monkeyhtml/monkeyhtml.psd1

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,14 @@ RequiredModules = @()
6969
# NestedModules = @()
7070

7171
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
72+
<#
7273
FunctionsToExport = @(
7374
'New-HtmlReport'
7475
)
76+
#>
77+
FunctionsToExport = @(
78+
'*'
79+
)
7580

7681
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
7782
CmdletsToExport = @()

core/modules/monkeyhtml/private/Card/New-FindingCard.ps1

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Function New-FindingCard{
5757
Process{
5858
Try{
5959
Foreach($findingObj in @($PSBoundParameters['FindingObject'])){
60-
Write-Verbose ($Script:messages.NewCardMessage -f $findingObj.title)
60+
Write-Verbose ($Script:messages.NewCardMessage -f $findingObj.displayName)
6161
If($findingObj.statusCode.ToLower() -eq "manual" -or $findingObj.statusCode.ToLower() -eq "pass"){
6262
$bodyObject = [xml] '<div class="row monkey-finding-row"></div>'
6363
}
@@ -173,7 +173,7 @@ Function New-FindingCard{
173173
}
174174
}
175175
Catch{
176-
Write-Warning ($Script:messages.UnableToGetProperty -f $findingObj.title)
176+
Write-Warning ($Script:messages.UnableToGetProperty -f $findingObj.displayName)
177177
Write-Error $_.Exception
178178
}
179179
#Get references
@@ -209,9 +209,14 @@ Function New-FindingCard{
209209
}
210210
#>
211211
#Fill card
212-
foreach($section in $sections){
213-
Write-Verbose ($Script:messages.AppendElementMessageInfo -f $section.name, $findingObj.displayName);
214-
[void]$bodyObject.AppendChild($section.xml);
212+
ForEach($section in $sections){
213+
Try{
214+
Write-Verbose ($Script:messages.AppendElementMessageInfo -f $section.name, $findingObj.displayName);
215+
[void]$bodyObject.AppendChild($section.xml);
216+
}
217+
Catch{
218+
Write-Error $_.Exception
219+
}
215220
}
216221
#Add body object to card body
217222
If($findingObj.statusCode.ToLower() -in @('pass','manual')){
@@ -276,7 +281,7 @@ Function New-FindingCard{
276281
[void]$_div.AppendChild($myTable);
277282
}
278283
Else{
279-
Write-Warning ($Scripts:messages.EmptySectionMessage -f "data",$findingObj.title);
284+
Write-Warning ($Scripts:messages.EmptySectionMessage -f "data",$findingObj.displayName);
280285
}
281286
}
282287
#Add to body
@@ -286,7 +291,7 @@ Function New-FindingCard{
286291
}
287292
}
288293
Catch{
289-
Write-Warning ($Script:messages.CardErrorMessage -f "Finding card", $findingObj.title);
294+
Write-Warning ($Script:messages.CardErrorMessage -f "Finding card", $findingObj.displayName);
290295
Write-Error $_.Exception
291296
}
292297
}

core/modules/monkeyhtml/private/Header/Get-HtmlHeader.ps1

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -174,32 +174,61 @@ Function Get-HtmlHeader{
174174
);
175175
If($null -ne $properties){
176176
ForEach($prop in $properties.Psobject.Properties){
177-
If($prop.Name -eq 'crossorigin' -and ($Script:mode -ne 'cdn' -or $Script:mode -ne 'localcdn')){
177+
<#
178+
If($prop.Name -eq 'crossorigin' -and ($Script:mode -notmatch '(?i)cdn_(branch|latest|tag)' -or $Script:mode -notmatch '^localcdn$')){
178179
continue
179180
}
180-
If($prop.Name -eq 'integrity' -and ($Script:mode -ne 'cdn' -or $Script:mode -ne 'localcdn')){
181+
If($prop.Name -eq 'integrity' -and ($Script:mode -notmatch '(?i)cdn_(branch|latest|tag)' -or $Script:mode -notmatch '^localcdn$')){
181182
continue
182183
}
183-
If($Script:mode -eq 'cdn' -and $prop.Name -in @("src","href")){
184-
#Get baseUrl
185-
If($null -ne (Get-Variable -Name Repository -Scope Script -ErrorAction Ignore)){
186-
$_url = ("{0}/{1}" -f $Script:Repository,$prop.Value);
187-
$jsDelivr = Convert-UrlToJsDelivr -Url $_url -Latest
188-
[void]$tag.SetAttribute($prop.Name,$jsDelivr)
184+
#>
185+
If($Script:mode -match '(?i)cdn_(branch|latest|tag)'){
186+
If($prop.Name -in @("src","href")){
187+
#Get baseUrl
188+
If($null -ne (Get-Variable -Name Repository -Scope Script -ErrorAction Ignore)){
189+
$_url = ("{0}/{1}" -f $Script:Repository,$prop.Value);
190+
Try{
191+
Switch($Script:mode){
192+
'cdn_branch'{
193+
$jsDelivr = Convert-UrlToJsDelivr -Url $_url -Branch $script:Branch
194+
[void]$tag.SetAttribute($prop.Name,$jsDelivr)
195+
}
196+
'cdn_latest'{
197+
$jsDelivr = Convert-UrlToJsDelivr -Url $_url -Latest
198+
[void]$tag.SetAttribute($prop.Name,$jsDelivr)
199+
}
200+
'cdn_tag'{
201+
$jsDelivr = Convert-UrlToJsDelivr -Url $_url -Tag $script:GitHubTag
202+
[void]$tag.SetAttribute($prop.Name,$jsDelivr)
203+
}
204+
}
205+
}
206+
Catch{
207+
Write-Error $_.Exception.Message
208+
}
209+
}
210+
Else{
211+
Write-Warning $Script:messages.BaseUrlErrorMessage
212+
}
189213
}
190214
Else{
191-
Write-Warning $Script:messages.BaseUrlErrorMessage
215+
[void]$tag.SetAttribute($prop.Name,$prop.value)
192216
}
193217
}
194-
ElseIf($Script:mode -eq 'localcdn' -and $prop.Name -in @("src","href")){
195-
$_url = ("{0}/{1}" -f $Script:Repository,$prop.Value);
196-
[void]$tag.SetAttribute($prop.Name,$_url)
218+
ElseIf($Script:mode -match '^localcdn$'){
219+
If($prop.Name -in @("src","href")){
220+
$_url = ("{0}/{1}" -f $Script:Repository,$prop.Value);
221+
[void]$tag.SetAttribute($prop.Name,$_url)
222+
}
197223
}
198224
Else{
199225
If($prop.Name -in @("src","href")){
200226
$_url = ("{0}/{1}" -f $Script:LocalPath,$prop.Value);
201227
[void]$tag.SetAttribute($prop.Name,$_url)
202228
}
229+
ElseIf($prop.Name -in @("crossorigin","integrity")){
230+
continue
231+
}
203232
Else{
204233
[void]$tag.SetAttribute($prop.Name,$prop.value)
205234
}
@@ -227,8 +256,5 @@ Function Get-HtmlHeader{
227256
Catch{
228257
Write-Error $_
229258
}
230-
231-
}
232-
End{
233259
}
234260
}

core/modules/monkeyhtml/private/Icons/Get-SvgIcon.ps1

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,20 @@ Function Get-SvgIcon{
4848
'Monkey365'='assets/inc-monkey/logo/MonkeyLogo.png'
4949
'General'='assets/inc-entraicons/Microsoft_Entra_ID_color_icon.svg'
5050
'Users'='assets/inc-azicons/identity/10230-icon-service-Users.svg'
51+
'User Settings'='assets/inc-azicons/identity/10433-icon-service-User-Settings.svg'
5152
'Groups'='assets/inc-azicons/identity/10223-icon-service-Groups.svg'
53+
'Devices'='assets/inc-azicons/intune/10332-icon-service-Devices.svg'
5254
'App Registrations'='assets/inc-azicons/identity/10232-icon-service-App-Registrations.svg'
5355
'Enterprise Applications'='assets/inc-azicons/identity/10225-icon-service-Enterprise-Applications.svg'
5456
'Conditional Access'='assets/inc-azicons/security/10233-icon-service-Conditional-Access.svg'
55-
'App Services'='assets/inc-azicons/app services/10035-icon-service-App-Services.svg'
57+
'Privileged Identity Management'='assets/inc-azicons/identity/02251-icon-service-Entra-Privleged-Identity-Management.svg'
58+
'Entra Properties'='assets/inc-azicons/identity/02679-icon-service-Tenant-Properties.svg'
5659
'Entra Identity Governance'='assets/inc-azicons/identity/10235-icon-service-Identity-Governance.svg'
60+
'Entra Role Assignment'='assets/inc-azicons/identity/10340-icon-service-Entra-Identity-Roles-and-Administrators.svg'
61+
'Entra Security'='assets/inc-azicons/identity/00321-icon-service-Security.svg'
62+
'Security Defaults'='assets/inc-azicons/identity/00321-icon-service-Security.svg'
63+
'Entra Connect'='assets/inc-azicons/identity/02854-icon-service-Entra-Connect.svg'
64+
'External Collaboration'='assets/inc-azicons/new icons/034251-icon-service-external-id-modified.svg'
5765
'Identity Protection'='assets/inc-azicons/identity/10231-icon-service-Entra-ID-Protection.svg'
5866
'Applications'='assets/inc-azicons/identity/10225-icon-service-Enterprise-Applications.svg'
5967
'Subscription Policies'='assets/inc-azicons/management + governance/10316-icon-service-Policy.svg'
@@ -66,15 +74,15 @@ Function Get-SvgIcon{
6674
'Azure KeyVault'='assets/inc-azicons/security/10245-icon-service-Key-Vaults.svg'
6775
'Bastion'='assets/inc-azicons/networking/02422-icon-service-Bastions.svg'
6876
'Network Watcher'='assets/inc-azicons/networking/10066-icon-service-Network-Watcher.svg'
69-
'Azure Disks'='assets/inc-azicons/compute/10032-icon-service-Disks.svg'
70-
'SQL Server'='assets/inc-azicons/databases/10130-icon-service-SQL-Database.svg'
71-
'Azure Virtual Machines'='assets/inc-azicons/compute/10021-icon-service-Virtual-Machine.svg'
77+
'Disks'='assets/inc-azicons/compute/10032-icon-service-Disks.svg'
78+
'SQL Database'='assets/inc-azicons/databases/10130-icon-service-SQL-Database.svg'
79+
'Virtual Machines'='assets/inc-azicons/compute/10021-icon-service-Virtual-Machine.svg'
7280
'Network Security Groups'='assets/inc-azicons/networking/10067-icon-service-Network-Security-Groups.svg'
7381
'Storage Accounts'='assets/inc-azicons/storage/10086-icon-service-Storage-Accounts.svg'
74-
'PostgreSQL Server'='assets/inc-azicons/databases/10131-icon-service-Azure-Database-PostgreSQL-Server.svg'
82+
'Database for PostgreSQL'='assets/inc-azicons/databases/10131-icon-service-Azure-Database-PostgreSQL-Server.svg'
7583
'PostgreSQL Configuration'='assets/inc-azicons/databases/10131-icon-service-Azure-Database-PostgreSQL-Server.svg'
7684
'MySQL Configuration'='assets/inc-azicons/databases/10122-icon-service-Azure-Database-MySQL-Server.svg'
77-
'MySQL Server'='assets/inc-azicons/databases/10122-icon-service-Azure-Database-MySQL-Server.svg'
85+
'Database for MySQL'='assets/inc-azicons/databases/10122-icon-service-Azure-Database-MySQL-Server.svg'
7886
'Microsoft 365'='assets/inc-officeicons/64x64/office-365.svg'
7987
'Sharepoint Online'='assets/inc-officeicons/64x64/Microsoft_Office_SharePoint.svg'
8088
'Sharepoint Online Identity'='assets/inc-officeicons/64x64/Microsoft_Office_SharePoint.svg'
@@ -89,6 +97,16 @@ Function Get-SvgIcon{
8997
'Diagnostic Settings'='assets/inc-azicons/management + governance/00008-icon-service-Diagnostics-Settings.svg'
9098
'Public Ip Addresses'='assets/inc-azicons/networking/10069-icon-service-Public-IP-Addresses.svg'
9199
'Application Insights'='assets/inc-azicons/monitor/00012-icon-service-Application-Insights.svg'
100+
'Cache for Redis'='assets/inc-azicons/databases/10137-icon-service-Cache-Redis.svg'
101+
'Cache for Redis Enterprise'='assets/inc-azicons/databases/10137-icon-service-Cache-Redis.svg'
102+
'Data Factory'='assets/inc-azicons/databases/10126-icon-service-Data-Factories.svg'
103+
'Cosmos DB'='assets/inc-azicons/databases/10121-icon-service-Azure-Cosmos-DB.svg'
104+
'App Service'='assets/inc-azicons/app services/10035-icon-service-App-Services.svg'
105+
'App Service Slot'='assets/inc-azicons/app services/10035-icon-service-App-Services.svg'
106+
'Functions'='assets/inc-azicons/compute/10029-icon-service-Function-Apps.svg'
107+
'Functions Slot'='assets/inc-azicons/compute/10029-icon-service-Function-Apps.svg'
108+
'App Service Environments'='assets/inc-azicons/app services/10047-icon-service-App-Service-Environments.svg'
109+
'Container Instances'='assets/inc-azicons/containers/10104-icon-service-Container-Instances.svg'
92110
}
93111
#Set null
94112
$_iconPath = $null;
@@ -100,10 +118,25 @@ Function Get-SvgIcon{
100118
If($null -eq $icon){
101119
$icon = 'assets/inc-azicons/general/10001-icon-service-All-Resources.svg'
102120
}
103-
If($Script:mode -eq 'cdn' -or $Script:mode -eq 'localcdn'){
121+
If($Script:mode -match '(?i)cdn_(branch|latest|tag)' -or $Script:mode -match '^localcdn$'){
104122
$baseUrl = ("{0}/{1}" -f $Script:Repository,$icon);
105-
If($Script:mode -eq 'cdn'){
106-
$_iconPath = Convert-UrlToJsDelivr -Url $baseUrl -Latest
123+
If($Script:mode -match '(?i)cdn_(branch|latest|tag)'){
124+
Try{
125+
Switch($Script:mode){
126+
'cdn_branch'{
127+
$_iconPath = Convert-UrlToJsDelivr -Url $baseUrl -Branch $script:Branch
128+
}
129+
'cdn_latest'{
130+
$_iconPath = Convert-UrlToJsDelivr -Url $baseUrl -Latest
131+
}
132+
'cdn_tag'{
133+
$_iconPath = Convert-UrlToJsDelivr -Url $baseUrl -Tag $Script:GitHubTag
134+
}
135+
}
136+
}
137+
Catch{
138+
Write-Error $_.Exception.Message
139+
}
107140
}
108141
Else{
109142
$_iconPath = $baseUrl;

core/modules/monkeyhtml/private/Modal/Get-AllModalHtmlObject.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ Function Get-AllModalHtmlObject{
7878
If($null -ne $extendedData){
7979
Foreach($rawObject in @($extendedData)){
8080
If($null -ne $rawObject -and ([System.Collections.IDictionary]).IsAssignableFrom($rawObject.GetType())){
81+
Write-Verbose ($Script:messages.AddNewModalObjectTo -f $finding.displayName)
8182
$id = $rawObject.Item('id')
8283
$format = $rawObject.Item('format')
8384
$rawData = $rawObject.Item('rawData')

core/modules/monkeyhtml/private/Modal/New-HtmlAboutTool.ps1

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,25 @@ Function New-HtmlAboutTool{
6868
)
6969
#Tool image
7070
#Create Monkey365 IMG
71-
If($Script:mode -eq 'cdn' -or $Script:mode -eq 'localcdn'){
71+
If($Script:mode -match '(?i)cdn_(branch|latest|tag)' -or $Script:mode -match '^localcdn$'){
7272
$baseUrl = ("{0}/{1}" -f $Script:Repository,'assets/inc-monkey/logo/MonkeyLogo.png');
73-
If($Script:mode -eq 'cdn'){
74-
$img_src = Convert-UrlToJsDelivr -Url $baseUrl -Latest
73+
If($Script:mode -match '(?i)cdn_(branch|latest|tag)'){
74+
Try{
75+
Switch($Script:mode){
76+
'cdn_branch'{
77+
$img_src = Convert-UrlToJsDelivr -Url $baseUrl -Branch $script:Branch
78+
}
79+
'cdn_latest'{
80+
$img_src = Convert-UrlToJsDelivr -Url $baseUrl -Latest
81+
}
82+
'cdn_tag'{
83+
$img_src = Convert-UrlToJsDelivr -Url $baseUrl -Tag $Script:GitHubTag
84+
}
85+
}
86+
}
87+
Catch{
88+
Write-Error $_.Exception.Message
89+
}
7590
}
7691
Else{
7792
$img_src = $baseUrl;

core/modules/monkeyhtml/private/Modal/New-HtmlRawObjectModal.ps1

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,13 @@ Function New-HtmlRawObjectModal{
7979
[void]$CodeTag.SetAttribute('class',$codeClass);
8080
[void]$CodeTag.SetAttribute('id',$CodeId);
8181
#Format data
82-
If($Format.ToLower() -eq 'json'){
82+
#TODO Add different formats
83+
Try{
8384
$rawData = $Data | ConvertTo-Json -Depth 100 -Compress
8485
}
85-
Else{
86-
$rawData = $Data
86+
Catch{
87+
Write-Verbose $_.Exception
88+
$rawData = $Data;
8789
}
8890
[void]$CodeTag.AppendChild($ModalBody.CreateTextNode($rawData));
8991
#Append to pre

0 commit comments

Comments
 (0)