diff --git a/html.go b/html.go index 35db1201..a3b9219b 100644 --- a/html.go +++ b/html.go @@ -62,6 +62,12 @@ var ( serviceRequestQuick = newBuiltTemplate("service-request-quick", "base") serviceRequestQuickConfirmation = newBuiltTemplate("service-request-quick-confirmation", "base") serviceRequestUpdates = newBuiltTemplate("service-request-updates", "base") + settingRoot = newBuiltTemplate("setting-mock", "base") + settingIntegration = newBuiltTemplate("setting-integration", "base") + settingPesticide = newBuiltTemplate("setting-pesticide", "base") + settingPesticideAdd = newBuiltTemplate("setting-pesticide-add", "base") + settingUsers = newBuiltTemplate("setting-user", "base") + settingUsersAdd = newBuiltTemplate("setting-user-add", "base") signin = newBuiltTemplate("signin", "base") signup = newBuiltTemplate("signup", "base") ) @@ -103,15 +109,21 @@ type ContentCell struct { User User } type ContentMockURLs struct { - Dispatch string - DispatchResults string - ReportConfirmation string - ReportDetail string - ReportContribute string - ReportEvidence string - ReportSchedule string - ReportUpdate string - Root string + Dispatch string + DispatchResults string + ReportConfirmation string + ReportDetail string + ReportContribute string + ReportEvidence string + ReportSchedule string + ReportUpdate string + Root string + Setting string + SettingIntegration string + SettingPesticide string + SettingPesticideAdd string + SettingUser string + SettingUserAdd string } type ContentMock struct { DistrictName string @@ -358,15 +370,21 @@ func htmlMock(t string, w http.ResponseWriter, code string) { data := ContentMock{ DistrictName: "Delta MVCD", URLs: ContentMockURLs{ - Dispatch: "/mock/dispatch", - DispatchResults: "/mock/dispatch-results", - ReportConfirmation: fmt.Sprintf("/mock/report/%s/confirm", code), - ReportDetail: fmt.Sprintf("/mock/report/%s", code), - ReportContribute: fmt.Sprintf("/mock/report/%s/contribute", code), - ReportEvidence: fmt.Sprintf("/mock/report/%s/evidence", code), - ReportSchedule: fmt.Sprintf("/mock/report/%s/schedule", code), - ReportUpdate: fmt.Sprintf("/mock/report/%s/update", code), - Root: "/mock", + Dispatch: "/mock/dispatch", + DispatchResults: "/mock/dispatch-results", + ReportConfirmation: fmt.Sprintf("/mock/report/%s/confirm", code), + ReportDetail: fmt.Sprintf("/mock/report/%s", code), + ReportContribute: fmt.Sprintf("/mock/report/%s/contribute", code), + ReportEvidence: fmt.Sprintf("/mock/report/%s/evidence", code), + ReportSchedule: fmt.Sprintf("/mock/report/%s/schedule", code), + ReportUpdate: fmt.Sprintf("/mock/report/%s/update", code), + Root: "/mock", + Setting: "/mock/setting", + SettingIntegration: "/mock/setting/integration", + SettingPesticide: "/mock/setting/pesticide", + SettingPesticideAdd: "/mock/setting/pesticide/add", + SettingUser: "/mock/setting/user", + SettingUserAdd: "/mock/setting/user/add", }, } template, ok := templatesByFilename[t] diff --git a/main.go b/main.go index 42a7a923..81efd47e 100644 --- a/main.go +++ b/main.go @@ -117,6 +117,12 @@ func main() { r.Get("/mock/service-request-quick", renderMock("service-request-quick")) r.Get("/mock/service-request-quick-confirmation", renderMock("service-request-quick-confirmation")) r.Get("/mock/service-request-updates", renderMock("service-request-updates")) + r.Get("/mock/setting", renderMock("setting-mock")) + r.Get("/mock/setting/integration", renderMock("setting-integration")) + r.Get("/mock/setting/pesticide", renderMock("setting-pesticide")) + r.Get("/mock/setting/pesticide/add", renderMock("setting-pesticide-add")) + r.Get("/mock/setting/user", renderMock("setting-user")) + r.Get("/mock/setting/user/add", renderMock("setting-user-add")) r.Get("/oauth/refresh", getOAuthRefresh) diff --git a/templates/mock-root.html b/templates/mock-root.html index 47d50d2a..fcda80dd 100644 --- a/templates/mock-root.html +++ b/templates/mock-root.html @@ -45,6 +45,11 @@ Service Request A page for members of the public to make a direct service request + + /mock/setting + Settings + A page for management to control the behavior of Nidus + diff --git a/templates/setting-integration.html b/templates/setting-integration.html new file mode 100644 index 00000000..5ffb73eb --- /dev/null +++ b/templates/setting-integration.html @@ -0,0 +1,257 @@ +{{template "base.html" .}} + +{{define "title"}}Dash{{end}} +{{define "extraheader"}} + +{{end}} +{{define "content"}} +
+ +
+

Integrations

+
+ + Important: This page allows you to configure integration with third-party services. The credentials and tokens stored here provide access to external systems and should be protected. Only authorized personnel should modify these settings. +
+
+ + +
+
+
+

Frontier Precision's FieldSeeker GIS

+
+ FieldSeeker Logo +
+
+
+ + + + + + + + + + + + + + + + + + + +
OAuth Token Status + + Active + +
Token Expiration26 days remaining (Expires on Dec 31, 2025)
Integration MethodWeb Hooks
Permission LevelRead & Write
+
+
+ + +
+
+
+ + +
+
+
+

VectorSurv

+
+ VectorSurv Logo +
+
+
+ + + + + + + + + + + + + + + +
API Token + vs_9f72b5e3******************************c11d +
Last SynchronizationDecember 5, 2025 at 08:34 AM (2 days ago)
Synchronization Status + + Active (Scheduled daily at 2:00 AM) + +
+
+
+ + +
+
+
+ + +
+
+
+

VeeMac

+
+ VeeMac Logo +
+
+
+ + + + + + + + + + + + + + + + + + + +
Usernamemosquito_district21
Password••••••••••••
Last SynchronizationDecember 6, 2025 at 11:15 PM (Yesterday)
Synchronization Status + + Inactive (Manual sync only) + +
+
+
+ + +
+
+
+
+ + + + + + +{{end}} diff --git a/templates/setting-mock.html b/templates/setting-mock.html new file mode 100644 index 00000000..82e101b4 --- /dev/null +++ b/templates/setting-mock.html @@ -0,0 +1,192 @@ +{{template "base.html" .}} + +{{define "title"}}Dash{{end}} +{{define "extraheader"}} + +{{end}} +{{define "content"}} +
+
+
+

Settings

+

Configure your organization's preferences and integrations

+
+
+ +
+ +
+
+
+
+ +
+

User Management

+

Manage staff accounts, roles, and permissions for your organization.

+
+ + Manage Users + + + 23 users +
+
+
+
+ + +
+
+
+
+ +
+

Pesticide Products

+

Configure products, application rates, and field recommendations.

+
+ + Manage Products + + + 12 active products +
+
+
+
+ + +
+
+
+
+ +
+

Integrations

+

Configure connections with FieldSeeker, VectorSurv, and other services.

+
+ + Manage Integrations + + + 3 active connections +
+
+
+
+ + +
+
+
+
+ +
+

Equipment

+

Manage your field equipment inventory, calibration, and maintenance.

+
+ + Manage Equipment + + + Updated 5 days ago +
+
+
+
+ + +
+
+
+
+ +
+

Notifications

+

Configure email alerts, SMS notifications, and reporting preferences.

+
+ + Manage Notifications + + + 5 active alerts +
+
+
+
+ + +
+
+
+
+ +
+

General Settings

+

Configure organization details, branding, and system preferences.

+
+ + Manage Settings + + + Updated yesterday +
+
+
+
+
+ +
+

+ + All changes made in settings are logged for audit purposes +

+
+
+{{end}} diff --git a/templates/setting-pesticide-add.html b/templates/setting-pesticide-add.html new file mode 100644 index 00000000..6d8d4909 --- /dev/null +++ b/templates/setting-pesticide-add.html @@ -0,0 +1,231 @@ +{{template "base.html" .}} + +{{define "title"}}Dash{{end}} +{{define "extraheader"}} + +{{end}} +{{define "content"}} +
+ + + + +
+
+ +
+
+

VectoMax FG

+

Biological larvicide granules combining Bacillus thuringiensis subspecies israelensis and Bacillus sphaericus for extended residual control of mosquito larvae.

+
+ + Enabled + +
+ + +
+

General Information

+
+
+
Formulation
+
Granule
+
+
+
EPA Registration Number
+
73049-429
+
+
+
Active Ingredients
+
Bacillus thuringiensis subspecies israelensis (2.7%)
+ Bacillus sphaericus (4.5%)
+
+
+
Biological Targeting
+
+ I1 + I2 + I3 + I4 + P +
+
+
+
Application Rates
+
Low: 5 lbs/acre
+ High: 20 lbs/acre
+
+
+
Residual
+
Up to 30 days (environmental conditions dependent)
+
+
+
+ + +
+
+
+ +
+
+
Key Usage Notes
+

Apply evenly across water surface. Use higher rate when L4 present or when organic load is high. Avoid application in ponds with fish unless approved by a supervisor.

+
+
+
+ + +
+

PPE Requirements

+
+ + Gloves + + + Eye Protection + + + Respirator (Optional) + +
+
+ + +
+

Equipment Supported

+
+ + Backpack Spreader + + + Hand Spreader + + + Truck Granule Unit + +
+
+ + +
+

Suitability

+
+
+
Pools
+
Recommended
+
+
+
Vegetation
+
OK
+
+
+
High Organics
+
OK
+
+
+
Organic Crop Restriction
+
None
+
+
+
+ + +
+ + +
+
+
+
+{{end}} diff --git a/templates/setting-pesticide.html b/templates/setting-pesticide.html new file mode 100644 index 00000000..c545ee79 --- /dev/null +++ b/templates/setting-pesticide.html @@ -0,0 +1,211 @@ +{{template "base.html" .}} + +{{define "title"}}Dash{{end}} +{{define "extraheader"}} + +{{end}} +{{define "content"}} +
+
+

Pesticide Products Configuration

+ + Add New Product + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProductFormulationTargetsResidual (days)Low RateMax RatePoolsInfoActions
BVA OilLiquid + I1 + I2 + I3 + I4 + P + 10.5 gal/acre5 gal/acreRecommended + + + + + + +
VectoMax FGGranule + I1 + I2 + I3 + I4 + P + 305 lbs/acre20 lbs/acreRecommended + + + + + + +
CensorLiquid + I1 + I2 + I3 + I4 + P + 210.75 gal/acre2.5 gal/acreAllowed + + + + + + +
AquaBac XTLiquid + I1 + I2 + I3 + I4 + P + 140.25 gal/acre2 gal/acreProhibited + + + + + + +
Natular G30Granule + I1 + I2 + I3 + I4 + P + 305 lbs/acre12 lbs/acreDiscouraged + + + + + + +
+
+
+
+
+{{end}} diff --git a/templates/setting-user-add.html b/templates/setting-user-add.html new file mode 100644 index 00000000..fee9968d --- /dev/null +++ b/templates/setting-user-add.html @@ -0,0 +1,123 @@ +{{template "base.html" .}} + +{{define "title"}}Dash{{end}} +{{define "extraheader"}} + +{{end}} +{{define "content"}} +
+
+
+
+
+
+

Add New User

+ + Back to Users + +
+
+
+
+ +
+ + +
+ Please provide the user's full name. +
+
+ + +
+ + +
+ Please provide a valid email address. +
+
An invitation will be sent to this email address.
+
+ + +
+ + +
+ Please provide a username. +
+
Username must be unique and contain only letters, numbers, and underscores.
+
+ +
+ +
+ + +
+ Please select a role. +
+
+ + +
+ + +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ +
+ + +
+ + Cancel + + +
+
+
+
+
+
+
+{{end}} diff --git a/templates/setting-user.html b/templates/setting-user.html new file mode 100644 index 00000000..b5845612 --- /dev/null +++ b/templates/setting-user.html @@ -0,0 +1,144 @@ +{{template "base.html" .}} + +{{define "title"}}Dash{{end}} +{{define "extraheader"}} + +{{end}} +{{define "content"}} +
+
+

User Management

+ + Add New User + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Full NameEmail AddressUsernameRoleServe WarrantsStatusLast LoginActions
John Doejohn.doe@example.comjohndoe + + +
+ +
+
Active2023-06-15 09:45 AM + +
Jane Smithjane.smith@example.comjanesmith + + +
+ +
+
Active2023-06-17 14:20 PM + +
Robert Johnsonrobert.j@example.comrobertj + + +
+ +
+
Deactivated2023-06-10 11:30 AM + +
Emily Wilsonemily.w@example.comemilyw + + +
+ +
+
InvitedNever + +
+
+
+
+
+{{end}}