Skip to content
This repository was archived by the owner on Apr 20, 2024. It is now read-only.

Commit 1b2ae3c

Browse files
Merge pull request #103 from nodes-vapor/feature/environment-badge
Add env badge when outside prod
2 parents c78d6e9 + ede2fde commit 1b2ae3c

File tree

5 files changed

+20
-4
lines changed

5 files changed

+20
-4
lines changed

Resources/Views/AdminPanel/Layout/Partials/navbar.leaf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<nav class="navbar navbar-dark fixed-top bg-dark flex-md-nowrap p-0">
2-
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="#">#adminpanel:config("name")</a>
2+
#embed("AdminPanel/Layout/Partials/sitetitle")
33

44
<ul class="navbar-nav px-3">
55
<li class="nav-item text-nowrap">
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="/admin/dashboard">
2+
#adminpanel:config("name")
3+
#if(adminpanel:config("environment") != "production") {
4+
<span class="badge badge-primary">#adminpanel:config("environment")</span>
5+
}
6+
</a>

Sources/AdminPanel/Configs/AdminPanelConfig.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public struct AdminPanelConfig<U: AdminPanelUserType>: Service {
3636
public let resetPasswordEmail: ResetPasswordEmail
3737
public let specifyPasswordEmail: SpecifyPasswordEmail
3838
public let newUserSetPasswordSigner: ExpireableJWTSigner
39+
public let environment: Environment
3940

4041
public init(
4142
name: String,
@@ -46,7 +47,8 @@ public struct AdminPanelConfig<U: AdminPanelUserType>: Service {
4647
sidebarMenuPathGenerator: @escaping SidebarMenuPathGenerator<U.Role> = U.Role.sidebarMenuPathGenerator,
4748
resetPasswordEmail: ResetPasswordEmail = .default,
4849
specifyPasswordEmail: SpecifyPasswordEmail = .default,
49-
newUserSetPasswordSigner: ExpireableJWTSigner
50+
newUserSetPasswordSigner: ExpireableJWTSigner,
51+
environment: Environment
5052
) {
5153
self.name = name
5254
self.baseUrl = baseUrl
@@ -57,6 +59,7 @@ public struct AdminPanelConfig<U: AdminPanelUserType>: Service {
5759
self.resetPasswordEmail = resetPasswordEmail
5860
self.specifyPasswordEmail = specifyPasswordEmail
5961
self.newUserSetPasswordSigner = newUserSetPasswordSigner
62+
self.environment = environment
6063
}
6164
}
6265

Sources/AdminPanel/Providers/AdminPanelProvider.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ public final class AdminPanelProvider<U: AdminPanelUserType>: Provider {
113113
services.register(AdminPanelConfigTagData<U>(
114114
name: config.name,
115115
baseUrl: config.baseUrl,
116-
sidebarMenuPathGenerator: config.sidebarMenuPathGenerator
116+
sidebarMenuPathGenerator: config.sidebarMenuPathGenerator,
117+
environment: config.environment
117118
))
118119
services.register(config)
119120
services.register(KeyedCacheSessions.self)

Sources/AdminPanel/Tags/AdminPanelConfigTag.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,27 @@ public final class AdminPanelConfigTagData<U: AdminPanelUserType>: Service {
2727
case baseUrl = "baseUrl"
2828
case sidebarMenuPath = "sidebarMenuPath"
2929
case dashboardPath = "dashboardPath"
30+
case environment = "environment"
3031
}
3132

3233
public var name = ""
3334
public var baseUrl = ""
3435
public var dashboardPath: String?
3536
public var sidebarMenuPathGenerator: SidebarMenuPathGenerator<U.Role>
37+
public var environment: Environment
3638

3739
init(
3840
name: String,
3941
baseUrl: String,
4042
sidebarMenuPathGenerator: @escaping SidebarMenuPathGenerator<U.Role>,
41-
dashboardPath: String? = nil
43+
dashboardPath: String? = nil,
44+
environment: Environment
4245
) {
4346
self.name = name
4447
self.baseUrl = baseUrl
4548
self.sidebarMenuPathGenerator = sidebarMenuPathGenerator
4649
self.dashboardPath = dashboardPath
50+
self.environment = environment
4751
}
4852

4953
func viewData(for data: TemplateData, user: U?, tag: TagContext) throws -> TemplateData {
@@ -66,6 +70,8 @@ public final class AdminPanelConfigTagData<U: AdminPanelUserType>: Service {
6670
} ?? .null
6771
case .dashboardPath:
6872
return dashboardPath.map { .string($0) } ?? .null
73+
case .environment:
74+
return .string(environment.name)
6975
}
7076
}
7177
}

0 commit comments

Comments
 (0)