Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
30c6a72
Add funding columns to this old GGW codebase
brianbrix Apr 26, 2026
5d998ec
Add workflow to old codebase
brianbrix Apr 27, 2026
6dbd505
Add workflow to old codebase
brianbrix Apr 27, 2026
01722e9
Add workflow to old codebase
brianbrix Apr 27, 2026
d487737
Resolve failing deployment
brianbrix Apr 27, 2026
f6b5be9
Add funding columns to the old GGW codebase DonorFundingJob
brianbrix Apr 27, 2026
d27116f
Add Missing global settings
brianbrix Apr 28, 2026
efc1653
Add Missing global settings
brianbrix Apr 28, 2026
d3f6db2
Failing xml patches
brianbrix Apr 28, 2026
8ac723a
Failing xml patches
brianbrix Apr 28, 2026
6e8d5ec
Failing xml patches
brianbrix Apr 28, 2026
8489239
Failing xml patches
brianbrix Apr 28, 2026
4737503
Failing xml patches
brianbrix Apr 28, 2026
2d506e6
Revert donor job columns
brianbrix Apr 28, 2026
eaf47c3
Revert donor job columns
brianbrix Apr 29, 2026
7824ac6
Resolve map popup issue
brianbrix May 13, 2026
9517e7f
Merge remote-tracking branch 'origin/future/v4.0' into future/GGW
brianbrix May 13, 2026
ccda24b
Resolve map popup issue
brianbrix May 13, 2026
d4c708f
Report engine failing
brianbrix May 14, 2026
0ed93d1
Report engine failing
brianbrix May 14, 2026
fd2781c
Internal error when saving activity
brianbrix May 14, 2026
d7e3293
Internal error when saving activity
brianbrix May 15, 2026
20a1394
Internal error when saving activity
brianbrix May 15, 2026
04fbc87
Project list folded on load
brianbrix May 15, 2026
2011c00
AMP-31125: Issue viewing/editing some activities from tab
brianbrix May 18, 2026
aaf11ce
AMP-31125: Issue viewing/editing some activities from tab
brianbrix May 19, 2026
3c6957d
AMP-31125: Issue some activities missing from GIS
brianbrix May 19, 2026
045d5f0
AMP-31125: Issue some activities missing from GIS
brianbrix May 19, 2026
37c81be
Merge pull request #4475 from devgateway/fix/GGW/GGW-issues
jdeanquin-dg Jul 14, 2026
7cdea86
Merge branch 'future/v4.0' into develop
brianbrix Jul 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions amp/TEMPLATE/ampTemplate/js_2/esrigis/mainmapPopup.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,18 +71,14 @@ function initMap() {
function loadBaseMap() {
map = L.map('map').setView([latitude, longitude], 7);
// create the tile layer with correct attribution
var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
if (isOsm) {
var subdomains = ['a', 'b', 'c'];
if (basemapurl !== undefined && basemapurl.indexOf("mqcdn") != -1) {
subdomains = ['otile1', 'otile2', 'otile3', 'otile4'];
}
var osmAttrib = 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors';
var osmAttrib = 'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
tileLayer = new L.TileLayer(osmUrl, {
minZoom: 0,
maxZoom: 16,
attribution: osmAttrib,
subdomains: subdomains
subdomains: ['a', 'b', 'c']
});
} else {
tileLayer = L.esri.tiledMapLayer({
Expand Down
42 changes: 38 additions & 4 deletions amp/TEMPLATE/ampTemplate/tabs/js/business/grid/gridManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,26 @@ define([ 'business/grid/columnsMapping', 'translationManager', 'util/tabUtils','
return '/aim/viewActivityPreview.do~activityId=' + id;
}

function getRowActivityId(grid, rowId) {
var activityId = jQuery(grid).jqGrid('getCell', rowId, app.TabsApp.COLUMN_ACTIVITY_ID);
// Strip whitespace and non-breaking spaces (\u00A0 / &nbsp;) which hidden jqGrid
// cells may contain — they are truthy but not a valid numeric ID.
if (activityId) {
activityId = String(activityId).replace(/[\s\u00A0]/g, '');
}
if (!activityId) {
try {
activityId = jQuery(grid).jqGrid('getCell', rowId, 'Activity Id');
if (activityId) {
activityId = String(activityId).replace(/[\s\u00A0]/g, '');
}
} catch (error) {
activityId = '';
}
}
return activityId;
}

GridManager.prototype = {
constructor : GridManager
};
Expand Down Expand Up @@ -230,7 +250,7 @@ define([ 'business/grid/columnsMapping', 'translationManager', 'util/tabUtils','
//set default color and link for rows
row = this.rows[iRow];
className = row.className;
var id = row.cells[1].textContent;
var id = getRowActivityId(grid, row.id);
var iconedit = "<a href='/wicket/onepager/"+ onePagerParameter +"/" + id
+ "'><img src='/TEMPLATE/ampTemplate/tabs/css/images/ico_edit.gif'/></a>";
Comment on lines +253 to 255
var iconvalidated = "<a href='/wicket/onepager/"+ onePagerParameter +"/" + id
Expand Down Expand Up @@ -358,9 +378,11 @@ define([ 'business/grid/columnsMapping', 'translationManager', 'util/tabUtils','
colIndex = i;
}
});
var newContent = "<a class='preview-cell" + statusClass + "' href='" + getPreviewPageURL(id) + "'>"
+ jQuery(row.cells[colIndex]).html() + "</a>";
jQuery(row.cells[colIndex]).html(newContent);
if (id) {
var newContent = "<a class='preview-cell" + statusClass + "' href='" + getPreviewPageURL(id) + "'>"
+ jQuery(row.cells[colIndex]).html() + "</a>";
jQuery(row.cells[colIndex]).html(newContent);
}
}

TranslationManager.searchAndTranslate();
Expand Down Expand Up @@ -545,6 +567,18 @@ define([ 'business/grid/columnsMapping', 'translationManager', 'util/tabUtils','
row[column.columnName] = element.entityId;
}
});

// If AMP ID column is absent from the report the entityId was never extracted
// in the loop above. Every leaf element carries entityId regardless of column,
// so fall back to the first one we can find.
if (row[app.TabsApp.COLUMN_ACTIVITY_ID] === undefined) {
jQuery.each(obj.contents, function(hierarchicalName, element) {
if (element && element.entityId !== undefined) {
row[app.TabsApp.COLUMN_ACTIVITY_ID] = element.entityId;
return false; // break
}
});
}

// To flatten the tree structure and maintain hierarchies values on every row we add the values from "auxCurrentHierarchiesValues".
if (hierarchies.models.length > 0) {
Expand Down
250,698 changes: 250,698 additions & 0 deletions amp/doc/gazeteer.csv

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,14 @@ public static ActivityList getActivities(PerformanceFilterParameters config, Lis
}
}
}
// If the AMP ID text cell was absent (activity has no AMP ID value), the id and
// ampUrl were never set in the loop above. Fall back to AreaOwner.id, which is
// always populated for every leaf row regardless of column configuration.
if (activity.getId() == null && reportArea.getOwner() != null && reportArea.getOwner().id > 0) {
long ownerId = reportArea.getOwner().id;
activity.setId(ownerId);
activity.setAmpUrl(ActivityGatekeeper.buildPreviewUrl(String.valueOf(ownerId)));
}
matchesFilters.put("Programs",programs);
activity.setMatchesFilters(matchesFilters);
activities.add(activity);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import org.dgfoundation.amp.newreports.ReportAreaImpl;
import org.dgfoundation.amp.newreports.ReportCell;
import org.dgfoundation.amp.newreports.ReportColumn;
import org.dgfoundation.amp.newreports.ReportOutputColumn;
import org.dgfoundation.amp.newreports.ReportSettingsImpl;
import org.dgfoundation.amp.newreports.ReportSpecification;
import org.dgfoundation.amp.newreports.ReportSpecificationImpl;
Expand Down Expand Up @@ -303,25 +302,17 @@ private static Set<Long> getActivitiesForFiltering(PerformanceFilterParameters c
for (ReportArea reportArea : ll) {
if (implementationLevelColumn != null) {
List<ReportArea> childrenHierarchy = reportArea.getChildren();

for (ReportArea reportAreachi : childrenHierarchy) {
Map<ReportOutputColumn, ReportCell> row = reportAreachi.getContents();
Set<ReportOutputColumn> col = row.keySet();
for (ReportOutputColumn reportOutputColumn : col) {
if (reportOutputColumn.originalColumnName.equals(ColumnConstants.AMP_ID)) {
activitiesId.add(((IdentifiedReportCell) row.get(reportOutputColumn)).entityId);
}
// Use AreaOwner.id — always populated for every leaf row regardless of
// whether the activity has an AMP ID text value assigned.
if (reportAreachi.getOwner() != null && reportAreachi.getOwner().id > 0) {
activitiesId.add(reportAreachi.getOwner().id);
}
}

} else {
// we don't have hierarchy
Map<ReportOutputColumn, ReportCell> row = reportArea.getContents();
Set<ReportOutputColumn> col = row.keySet();
for (ReportOutputColumn reportOutputColumn : col) {
if (reportOutputColumn.originalColumnName.equals(ColumnConstants.AMP_ID)) {
activitiesId.add(((IdentifiedReportCell) row.get(reportOutputColumn)).entityId);
}
if (reportArea.getOwner() != null && reportArea.getOwner().id > 0) {
activitiesId.add(reportArea.getOwner().id);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1634,7 +1634,8 @@ public final static ArrayList<AmpStructure> eager_copy(Set<AmpStructure> structu
for(AmpStructure struc:structures)
{
AmpStructure z = (AmpStructure) struc.clone();
z.setImages(new HashSet(struc.getImages()));
z.getImages().clear();
z.getImages().addAll(struc.getImages());
Comment on lines 1636 to +1638
/*z.setActivities(new HashSet(struc.getActivities()));
z.setAmpStructureId(struc.getAmpStructureId());
z.setCreationdate(struc.getCreationdate());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public class AmpStructure implements Serializable, Comparable<Object>, Versionab
@InterchangeableBackReference
private AmpActivityVersion activity;

private Set<AmpStructureImg> images;
private Set<AmpStructureImg> images = new HashSet<>();

@Interchangeable(fieldTitle = "Coordinates", importable = true, fmPath = "/Activity Form/Structures/Map")
private List<AmpStructureCoordinate> coordinates = new ArrayList<>();
Expand Down Expand Up @@ -194,9 +194,12 @@ public Object prepareMerge(AmpActivityVersion newActivity) throws CloneNotSuppor
auxImg.setStructure(aux);
auxSetImages.add(auxImg);
}
aux.setImages(auxSetImages);
aux.getImages().clear();
aux.getImages().addAll(auxSetImages);
} else {
aux.setImages(new HashSet<>());

aux.getImages().clear();
aux.getImages().addAll(new HashSet<>());
}

if (aux.getCoordinates() != null && !aux.getCoordinates().isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<lang delimiter=";" type="postgres"><![CDATA[
SELECT setval('amp_global_settings_seq', (SELECT MAX(id) FROM amp_global_settings));
INSERT INTO amp_global_settings(id, settingsname, settingsvalue, possiblevalues, description, section, value_translatable, internal)
VALUES (nextval('amp_global_settings_seq'), 'Login Required For GIS', 'true', 't_Boolean', 'Login Required For GIS', 'gis', null, FALSE);
VALUES ((select max(id) + 1 FROM amp_global_settings), 'Login Required For GIS', 'true', 't_Boolean', 'Login Required For GIS', 'gis', null, FALSE);
Comment on lines 11 to +13
]]></lang>
</script>
</apply>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<tns:patch closeOnSuccess="true" retryOnFail="true"
xmlns:tns="http://docs.ampdev.net/schemas/xmlpatcher" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://docs.ampdev.net/schemas/xmlpatcher ../../schemas/xmlpatcher.xsd ">
<jira>AMP</jira>
<keyword>Change url to old report generator</keyword>
<author>bmokandu</author>
<description>Change menu entry for report generator.</description>
<apply>
<script>
<lang delimiter=";" type="postgres">
UPDATE amp_menu_entry SET url = '/TEMPLATE/reampv2/packages/container/build/index.html#/reampv2-app/report_generator?profile=R' WHERE url LIKE '%report_generator?profile=R%';
UPDATE amp_menu_entry SET url = '/TEMPLATE/reampv2/packages/container/build/index.html#/reampv2-app/report_generator?profile=T' WHERE url LIKE '%report_generator?profile=T%';
</lang>
</script>
</apply>
</tns:patch>


Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@
JOIN ni_all_programs_with_levels apl ON a.amp_program_id = apl.amp_theme_id
LEFT JOIN amp_theme level ON level.amp_theme_id = apl.id0
JOIN amp_program_settings aps ON aps.amp_program_settings_id = a.program_setting

WHERE aps.name = 'National Plan Objective' AND a.program_percentage <> 0
GROUP BY a.amp_activity_id, apl.id0, level.amp_theme_id
GROUP BY a.amp_activity_id, apl.id0, level.amp_theme_id, level.name
) v
ON aav.amp_activity_id = v.amp_activity_id;
]]></lang>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
LEFT JOIN amp_theme level ON level.amp_theme_id = apl.id1
JOIN amp_program_settings aps ON aps.amp_program_settings_id = a.program_setting
WHERE aps.name = 'National Plan Objective' AND a.program_percentage <> 0
GROUP BY a.amp_activity_id, apl.id1, level.amp_theme_id
GROUP BY a.amp_activity_id, apl.id1, level.amp_theme_id, level.name

) v
ON aav.amp_activity_id = v.amp_activity_id;
]]></lang>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
LEFT JOIN amp_theme level ON level.amp_theme_id = apl.id2
JOIN amp_program_settings aps ON aps.amp_program_settings_id = a.program_setting
WHERE aps.name = 'National Plan Objective' AND a.program_percentage <> 0
GROUP BY a.amp_activity_id, apl.id2, level.amp_theme_id
GROUP BY a.amp_activity_id, apl.id2, level.amp_theme_id, level.name
) v
ON aav.amp_activity_id = v.amp_activity_id;
]]></lang>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
LEFT JOIN amp_theme level ON level.amp_theme_id = apl.id3
JOIN amp_program_settings aps ON aps.amp_program_settings_id = a.program_setting
WHERE aps.name = 'National Plan Objective' AND a.program_percentage <> 0
GROUP BY a.amp_activity_id, apl.id3, level.amp_theme_id
GROUP BY a.amp_activity_id, apl.id3, level.amp_theme_id, level.name
) v
ON aav.amp_activity_id = v.amp_activity_id;
]]></lang>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
LEFT JOIN amp_theme level ON level.amp_theme_id = apl.id4
JOIN amp_program_settings aps ON aps.amp_program_settings_id = a.program_setting
WHERE aps.name = 'National Plan Objective' AND a.program_percentage <> 0
GROUP BY a.amp_activity_id, apl.id4, level.amp_theme_id
GROUP BY a.amp_activity_id, apl.id4, level.amp_theme_id, level.name
) v
ON aav.amp_activity_id = v.amp_activity_id;
]]></lang>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
LEFT JOIN amp_theme level ON level.amp_theme_id = apl.id5
JOIN amp_program_settings aps ON aps.amp_program_settings_id = a.program_setting
WHERE aps.name = 'National Plan Objective' AND a.program_percentage <> 0
GROUP BY a.amp_activity_id, apl.id5, level.amp_theme_id
GROUP BY a.amp_activity_id, apl.id5, level.amp_theme_id, level.name
) v
ON aav.amp_activity_id = v.amp_activity_id;
]]></lang>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
LEFT JOIN amp_theme level ON level.amp_theme_id = apl.id6
JOIN amp_program_settings aps ON aps.amp_program_settings_id = a.program_setting
WHERE aps.name = 'National Plan Objective' AND a.program_percentage <> 0
GROUP BY a.amp_activity_id, apl.id6, level.amp_theme_id
GROUP BY a.amp_activity_id, apl.id6, level.amp_theme_id, level.name
) v
ON aav.amp_activity_id = v.amp_activity_id;
]]></lang>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
LEFT JOIN amp_theme level ON level.amp_theme_id = apl.id7
JOIN amp_program_settings aps ON aps.amp_program_settings_id = a.program_setting
WHERE aps.name = 'National Plan Objective' AND a.program_percentage <> 0
GROUP BY a.amp_activity_id, apl.id7, level.amp_theme_id
GROUP BY a.amp_activity_id, apl.id7, level.amp_theme_id, level.name
) v
ON aav.amp_activity_id = v.amp_activity_id;
]]></lang>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
LEFT JOIN amp_theme level ON level.amp_theme_id = apl.id8
JOIN amp_program_settings aps ON aps.amp_program_settings_id = a.program_setting
WHERE aps.name = 'National Plan Objective' AND a.program_percentage <> 0
GROUP BY a.amp_activity_id, apl.id8, level.amp_theme_id
GROUP BY a.amp_activity_id, apl.id8, level.amp_theme_id, level.name
) v
ON aav.amp_activity_id = v.amp_activity_id;
]]></lang>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
JOIN all_programs_with_levels oapl ON afpp.amp_program_id = oapl.amp_theme_id
LEFT JOIN amp_theme level ON level.amp_theme_id = apl.id3
WHERE oapl.program_setting_name = 'Tertiary Program'
GROUP BY afpp.pledge_id, apl.id3, level.amp_theme_id,level.name
GROUP BY afpp.pledge_id, apl.id3, level.amp_theme_id,level.name
) v
ON afp.id = v.pledge_id;
</lang>
Expand Down
Loading