Toggle menu

Additional Configuration

Once Report It has been installed the following elements should also be set up, or may need to be modified.

Confirmation and Disclaimer Text

Each report you set up lets you add custom text for various disclaimers, instructions and warnings. The main Report It configuration End Point, config.<environment>.reportIt.getConfig, holds the following defaults:

"text": {
    "mapInstructions": "Please select the location of the #NAME# on the map below. You can drag the pin to the location required or you can use the search box to find a specific area.",
    "existingReportIntro": "We've already had some reports of #NAME# in this area. Is what you are reporting one of these?",
    "subTypeIntro": "Please provide us with some more details about the #NAME#",
    "disclaimerText": "Goss does not guarantee the material, accuracy, or use of any materials reported on this page. Goss also disclaims all liability for claims or damages whatever nature and extent that may result directly or indirectly from any material being displayed.",
    "uploadDisclaimerText": "Goss disclaims all liability for claims or damages of whatever nature and extent that may result directly or indirectly from any material uploaded on this page. By uploading the material you grant Goss the irrevocable right to use the uploaded material for purposes. Goss reserves the right to revise, review and/or remove any material submitted without prior notice.",
}
The text appears in the following places:

  • mapInstructions - Appears above the map on page one of the report form
  • existingReportIntro - Appears above the map showing existing reports
  • disclaimerText - Appears above the map showing existing reports
  • subTypeIntro - Appears on the "sub type" page if users are able to refine the type of thing being reported (eg an abandoned vehicle report could let a user pick the type of vehicle)
  • uploadDisclaimerText - Appears above the image upload button

All text areas support the #NAME# token, which inserts the name of your report type.

Reminder Emails

The uploaded image approval process sends out reminder emails to appropriate staff members about images that are awaiting approval. These reminders are handled by an iCM mailing rule and scheduled End Point.

To disable reminders, don't schedule the End Point.

Mailing Rule

Create an iCM Mailing Rules for the users who should handle image approvals. You can create multiple rules if you have different teams who handle different types of report. The mailing rule IDs and types of report they approve are added to the configuration End Point (below). You should always create a default rule.

The simplest type of rule to set up is a group rule. Remember that mailing rules apply to site users, not iCM users.

Group Mailing Rule

Configuration

The main Report It configuration End Point, config.environment.reportIt.getConfig, holds the following properties for approval reminders:

"approvalReminders": [{
    "name": "_default", // All non-configured types use the _default ruleset
    "days": 3,
    "bulkMailRuleID": 8485
},{
    "name": "Graffiti and vandalism approvers", // A friendly name used for logging etc
    "days": 3, // How old submissions must be before a reminder is sent
    "bulkMailRuleID": 8486, // Bulk mail rule ID to determine who is contacted
    "types": ["graffiti", "vandalism"] // An array of config IDs that this rule will apply to
}]

You can set up multiple reminder rules by creating additional objects in the array and setting the type the rule applies to. You can see a report's type/ID in the setup and naming section of the Configuration Manager.

Scheduled End Point

Schedule the goss.ReportIt.v1.scheduled.checkApprovals End Point to be called daily. No parameters need to be passed to it.

Map Providers

Map providers are set up as products in the Configuration Manager. They have the following settings.

SettingDescription
Provider NameA meaningful name for this provider, visible when picking map providers when configuring other products
Provider IDGenerated automatically and used internally
ProviderEither Google or OSM. If you select Google you will need to enter a Google Maps API key
Map ViewIf you pick Google you can choose between hybrid, road, satellite and terrain
Base MapIf you pick OSM, and have multiple base maps set up, pick the one you'd like to use. "Default" is the standard OSM base map. Other base maps need to be set up by a developer
Map ZoomThe default zoom level when the map first loads. Google's zoom levels range from 1 (whole world) to 20 (building). OSM uses a similar scale, ranging from 0 (whole world) to 19 (street crossing)
Map CentreA comma separated lat/long to centre the map when it loads
Map BoundaryThe ID of a media item containing a GeoJSON object. The GeoJSON defines a boundary in which valid points can be reported. If no boundary is set the provider will fall back to the default. Boundaries need to be set up by a developer before they appear as a config option

Google Maps API

If you are using Google Maps as your Map Provider then you'll need to enable the following APIs. They should be set up to use https://

  • Maps JavaScript API - The core API powering the Map Provider
  • Geocoding API - The lookup functionality powering the search and approve address text
  • Maps Static API - The lower cost "Check your answers" page image
  • Places API - The API powering the place names written to the map

Map Boundaries

Map boundaries (ie the area within which something can be reported) are defined by GeoJSON. You can set a default boundary that will be used across all maps, and pick a boundary to use per map provider. Your GeoJSON boundary should be held in the iCM media library as a .js file.

Your JavaScript media that define boundaries should have the following format:

getMapBoundary = function() {
    return {
        "features": [{
            "geometry": {
                "coordinates": [
                    [
                        [
                            -1.579692024999929,
                            54.965447425000036
                        ],
                        [
                            -1.5799934849999318,
                            54.96559945400003
                        ],
                        [
                            -1.5803243069999553,
                            54.965782140000044
                        ],
                    ]
                ],
                "type": "Polygon"
            },
            "id": 1,
            "type": "Feature",
            "properties": {
                "OBJECTID": 1,
                "SHAPE.STLength()": 1.0211274500546963,
                "SHAPE.STArea()": 0.020211834531210116
            }
        }],
        "crs": {
            "type": "name",
            "properties": {
                "name": "EPSG:4326"
            }
        },
        "type": "FeatureCollection"
    };
}

You can then add the media ID when you configure a map provider:

Config Media ID

Or set a default in the main Report It configuration End Point for your environment:

mapBoundaryOverrideID: 123

Base Maps

The OSM provider can use custom base layers. Base layers are defined in the config.environment.mapProviders.getConfig End Point, for example:

function(params, credentials) {
let config = {
        tileLayers: {
            source: "config", //Valid options are "config" or "arcgisworker"
            layers: [{
                    name: "terrain",
                    displayName: "ARC GIS Terrain",
                    url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/",
                    type: "arcgis"
                } ,
                {
                    name: "astcolour",
                    displayName: "Astun Colour",
                    url: "https://t0.ads.astuntechnology.com/ospremium/tiles/ospremiumwebmerc_EPSG3857/",
                    type: "astun"
                }
            ]
        }
    };
    return config;
}

PropertyDescription
sourceOne of:
"config" - the array of objects defined in this configuration End Point
"arcgisworker" - if you have the ArcGIS worker, map layers will be taken from there
nameA unique name for the layer
displayNameThe name that will appear in the configuration manager drop-down
urlThe URL of the layer
typeEither "arcgis" or "astun"
Last modified on 26 March 2024

Share this page

Facebook icon Twitter icon email icon

Print

print icon