Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
0ddbcd8
tree structuring improvements
mikejack857 Jun 13, 2025
d94f901
Merge pull request #94 from icipe-official/main
mikejack857 Jun 13, 2025
b1b1635
dated models
mikejack857 Jun 18, 2025
eca7d03
generic models changed to models
mikejack857 Jun 18, 2025
a93688e
admin panel restricted
mikejack857 Jun 30, 2025
b85702b
camera icon with hover text
mikejack857 Jun 30, 2025
e8a1042
dashboard enhancement
mikejack857 Jun 30, 2025
02feccf
conditional rendering
mikejack857 Jul 1, 2025
d894d2d
mails functionality
mikejack857 Jul 4, 2025
a53745c
forgot password functionality added
mikejack857 Jul 4, 2025
5b23d3a
added reset password + tree restructuring + brushing
mikejack857 Jul 8, 2025
9a08e29
removed gender ,added Viscreal ... and now removing all comments
mikejack857 Jul 9, 2025
a548b26
removed comments from map.tsx
mikejack857 Jul 9, 2025
3894ce3
rename vectoRiskData
main-tech Jul 9, 2025
a81a835
Update ui-pr-build.yml
main-tech Jul 9, 2025
bbb015a
remove copy .env command in docker build
main-tech Jul 9, 2025
5791b22
improved tree structure + generic models from db + profile alert +
mikejack857 Jul 10, 2025
56a5784
Merge branch 'emailUi' of github.com:icipe-official/DuduMapper into e…
mikejack857 Jul 10, 2025
5ce73df
improved tree structure + generic models from db + profile alert +
mikejack857 Jul 10, 2025
71a1eeb
models functionality: edit and post added
mikejack857 Jul 14, 2025
c2414f8
models email notification: high/low risk
mikejack857 Jul 14, 2025
e12cb00
dialog population of add + update, also added buttons
mikejack857 Jul 15, 2025
b52ceff
delete functionality working
mikejack857 Jul 16, 2025
2f1d384
update functionality ie; updating details for now
mikejack857 Jul 17, 2025
0c7da21
geoserver enabled
mikejack857 Jul 21, 2025
a680a79
credentials in embedded
mikejack857 Jul 28, 2025
703b022
docker-compose.yml + web.xml
mikejack857 Jul 31, 2025
6d4ff4d
added python,cors,editted geoserverupload,removed web.xml, modified a…
mikejack857 Aug 5, 2025
665ff3e
disabled add,delete buttons for model reading first
mikejack857 Aug 6, 2025
4ed896a
geoserverupload working, add 100%
mikejack857 Aug 8, 2025
e49acbf
geoserverupload working delete now working
mikejack857 Aug 8, 2025
793e173
corrected workspace
mikejack857 Aug 11, 2025
5c80ce5
added delete for emails, admin ,modelroute,map,sendemail
mikejack857 Aug 13, 2025
9ac444d
added delete for layer, corrected model route for highrisk, added rad…
mikejack857 Aug 14, 2025
b66c29d
removed update button, removed maptsx line 272, made title not editable
mikejack857 Aug 14, 2025
559d496
disabled model edit
mikejack857 Aug 14, 2025
6ecf70b
disabled title update, delete for store and layer
mikejack857 Aug 15, 2025
f8283b6
added displayname,
mikejack857 Aug 15, 2025
d597761
added layer.displayName
mikejack857 Aug 18, 2025
6827cfb
duplicate handling,
mikejack857 Aug 18, 2025
48dee8d
activeTitle for legend
mikejack857 Aug 18, 2025
1bc7757
wait for db fetch
mikejack857 Aug 19, 2025
67149cb
optional displayname
mikejack857 Aug 19, 2025
2521938
must displayname
mikejack857 Aug 19, 2025
8f3c8b2
vl
mikejack857 Aug 19, 2025
713f919
removed hard+_idw
mikejack857 Aug 19, 2025
2b8d050
hardord idw 2024
mikejack857 Aug 19, 2025
d8c71a6
added download in drawer <list>
mikejack857 Aug 20, 2025
546360f
added dynamic for country and region
mikejack857 Aug 21, 2025
be383e9
dynamic region ie opening independent country,region,
mikejack857 Aug 26, 2025
f634c95
code to be corrected for generic and population
mikejack857 Aug 26, 2025
8504daf
updated generic and population
mikejack857 Aug 27, 2025
203f21e
added 3 lines to push generic, also population, generic working
mikejack857 Aug 28, 2025
7c563ab
working on download
mikejack857 Aug 28, 2025
29e5adf
fetched layers, api
mikejack857 Aug 28, 2025
f2ed019
added button in nav
mikejack857 Aug 28, 2025
d9590ba
added download api, button in nav, disabled in map,
mikejack857 Sep 2, 2025
5d7b6e4
added state marrying nav+map,
mikejack857 Sep 2, 2025
dcf89e5
added states to navconta,mapwraper,enabled all to navloggin and map,c…
mikejack857 Sep 3, 2025
59b1cd5
added setlayers to each, layout,page,map,mapw,navc,navl
mikejack857 Sep 4, 2025
8202700
download working as zipped now
mikejack857 Sep 4, 2025
f97f1ec
download working as zipped now
mikejack857 Sep 4, 2025
738325c
disabled download list on drawer
mikejack857 Sep 4, 2025
b8336aa
removed strict in download,
mikejack857 Sep 4, 2025
326e6e1
added namig
mikejack857 Sep 4, 2025
b8f38ff
added ticked map, button navbar
mikejack857 Sep 8, 2025
a5b253a
replaced json with excelsheet
mikejack857 Sep 8, 2025
c977525
fixed dated download
mikejack857 Sep 9, 2025
7e43c1c
just comment map
mikejack857 Sep 9, 2025
80d1fa2
refined about
mikejack857 Sep 11, 2025
7fd69fa
changes in about
mikejack857 Sep 15, 2025
24adff0
frontend doi + global state
mikejack857 Sep 19, 2025
959dac0
+ added close for dialog
mikejack857 Sep 22, 2025
c85c820
+ prisma relation
mikejack857 Sep 22, 2025
e45f75b
+ close for legend
mikejack857 Sep 22, 2025
8215668
doi implementation and realtime profile
mikejack857 Sep 29, 2025
e5cbb0e
resourceType + creator array
mikejack857 Sep 30, 2025
3d5a68c
url
mikejack857 Sep 30, 2025
c51b4a4
disabled doi
mikejack857 Sep 30, 2025
91c3012
udpdate project name in package.json
main-tech Jan 7, 2026
82fed57
update node dependencies
main-tech Jan 7, 2026
e3bed03
update dependencies
main-tech Jan 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
47 changes: 39 additions & 8 deletions .github/workflows/ui-pr-build.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions


name: UI build

on:
Expand Down Expand Up @@ -38,10 +34,10 @@ jobs:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
#- name: Audit packages
# run: npm audit --production --audit-level=high

- name: Install packages
run: npm ci

- uses: actions/cache@v3
with:
path: |
Expand All @@ -50,10 +46,45 @@ jobs:
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx') }}
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-

- name: Build
run: npm run build

- name: Lint
run: npm run lint
# - name: Test
# run: npm run test:ci

docker-push:
needs: build
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Docker tags
id: docker_tag
run: |
SHORT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)
IMAGE_TAG=ghcr.io/${{ github.repository_owner }}/dudumapper
echo "short_sha=${SHORT_SHA}" >> $GITHUB_OUTPUT
echo "image_tag=${IMAGE_TAG}" >> $GITHUB_OUTPUT

- name: Build Docker image
run: |
docker build -t ${{ steps.docker_tag.outputs.image_tag }}:latest \
-t ${{ steps.docker_tag.outputs.image_tag }}:${{ steps.docker_tag.outputs.short_sha }} .

- name: Push Docker image
run: |
docker push ${{ steps.docker_tag.outputs.image_tag }}:latest
docker push ${{ steps.docker_tag.outputs.image_tag }}:${{ steps.docker_tag.outputs.short_sha }}
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs

COPY --from=builder /app/public ./public
COPY .env .
#COPY .env .

# Set the correct permission for prerender cache
RUN mkdir .next
Expand Down
18 changes: 18 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: "3.8"
services:
dudumapper:
build: .

ports:
- "3001:3000"
volumes:
- ./dudumapper:/app
depends_on:
- geoserver

geoserver:
image: kartoza/geoserver
ports:
- "8081:8080"
volumes:
- ./web.xml:/opt/geoserver/webapps/geoserver/WEB-INF/web.xml
58 changes: 58 additions & 0 deletions doiContext.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
"use client";

import React, { createContext, useState, useContext, ReactNode } from "react";

// Define the shape of the context value
interface MapDrilldownContextType {
//defines the states for button and layer
isChecked: boolean;
setIsChecked: (value: boolean) => void;
selectedLayer: string | null;
setSelectedLayer: (value: string | null) => void;

//lets extend for doi also
//minting
//doi: string | null; setDoi: (value: string | null) => void;
//metadata
//doiMetadata: Record<string, any> | null; //json
//setDoiMetadata: (value: string | null) => void;
}

// Create the context
const MapDrilldownContext = createContext<MapDrilldownContextType | undefined>(
undefined
);

// Custom hook for easy access
export const useMapDrilldown = () => {
const context = useContext(MapDrilldownContext);
if (!context) {
throw new Error(
"useMapDrilldown must be used within a MapDrilldownProvider"
);
}
return context;
};

// Provider component
export const MapDrilldownProvider = ({ children }: { children: ReactNode }) => {
//for states
const [isChecked, setIsChecked] = useState(false);
const [selectedLayer, setSelectedLayer] = useState<string | null>(null);
//for doi
const [doi, setDoi] = useState<string | null>(null);
const [doiMetadata, setDoiMetadata] = useState<Record<string, any>>({});

return (
<MapDrilldownContext.Provider
value={{
isChecked,
setIsChecked,
selectedLayer,
setSelectedLayer,
}}
>
{children}
</MapDrilldownContext.Provider>
);
};
4 changes: 2 additions & 2 deletions next.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/** @type {import('next').NextConfig} */
const nextConfig = { output: 'standalone', }
const nextConfig = { output: "standalone" };

module.exports = nextConfig
module.exports = nextConfig;
Loading
Loading