95 lines
3.8 KiB
XML
95 lines
3.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?><record_update table="cmn_map_page">
|
|
<cmn_map_page action="INSERT_OR_UPDATE">
|
|
<center_address>Yogododji, Africa</center_address>
|
|
<center_latitude/>
|
|
<center_longitude/>
|
|
<controls_size>large</controls_size>
|
|
<coordinates_retrieved_on/>
|
|
<disable_map_controls/>
|
|
<disable_nav_bar>false</disable_nav_bar>
|
|
<filter/>
|
|
<initial_zoom>2</initial_zoom>
|
|
<name>x_cdltd_loaner_req_Requested for Locatio</name>
|
|
<overview>false</overview>
|
|
<refresh_on_zoom>false</refresh_on_zoom>
|
|
<roles/>
|
|
<script><![CDATA[// Let's go get all the active Loaner Requests where the requestor has a city and country in their user record
|
|
var gr = new GlideRecord('x_cdltd_loaner_req_loaner_request');
|
|
gr.addEncodedQuery("active=true^requested_for.cityISNOTEMPTY^requested_for.countryISNOTEMPTY");
|
|
gr.orderBy('number');
|
|
gr.query();
|
|
|
|
while (gr.next()) {
|
|
|
|
// Find the label of the country (from sys_choice)
|
|
var countrygr = new GlideRecord('sys_choice');
|
|
countrygr.addQuery('name', 'sys_user');
|
|
countrygr.addQuery('element', 'country');
|
|
countrygr.addQuery('language', 'en');
|
|
countrygr.addQuery('value', gr.requested_for.country);
|
|
countrygr.query();
|
|
|
|
var responseBody = "";
|
|
var responseJSON;
|
|
var myLat, myLong;
|
|
|
|
if (countrygr.next()) {
|
|
var query = gr.requested_for.city + "," + countrygr.label;
|
|
|
|
var r = new sn_ws.RESTMessageV2('x_cdltd_loaner_req.Get Lat Long', 'Default GET');
|
|
r.setStringParameterNoEscape('text', query);
|
|
|
|
var response = r.execute();
|
|
responseBody = response.getBody();
|
|
var httpStatus = response.getStatusCode();
|
|
|
|
if (httpStatus == 200 && responseBody) {
|
|
try {
|
|
responseJSON = JSON.parse(responseBody);
|
|
myLat = responseJSON.features[0].properties.lat;
|
|
myLong = responseJSON.features[0].properties.lon;
|
|
} catch (e) {
|
|
gs.warn("JSON parse error for request " + gr.number + ": " + e.message);
|
|
continue;
|
|
}
|
|
} else {
|
|
gs.warn("REST request failed for " + gr.number + " with status " + httpStatus);
|
|
continue;
|
|
}
|
|
} else {
|
|
gs.warn("No country label found for user " + gr.requested_for.name);
|
|
continue;
|
|
}
|
|
|
|
// Only plot if we got coordinates
|
|
if (myLat && myLong) {
|
|
var item = map.addItem(gr);
|
|
item.latitude = String(myLat);
|
|
item.longitude = String(myLong);
|
|
item.dialog_title = gr.getDisplayValue();
|
|
item.icon = "https://maps.google.com/mapfiles/ms/micons/yellow.png";
|
|
item.icon_width = "32";
|
|
item.icon_height = "32";
|
|
}
|
|
}
|
|
]]></script>
|
|
<show_device_location>true</show_device_location>
|
|
<suffix>Requested for Locations</suffix>
|
|
<sys_class_name>cmn_map_page</sys_class_name>
|
|
<sys_created_by>admin</sys_created_by>
|
|
<sys_created_on>2025-10-20 00:30:12</sys_created_on>
|
|
<sys_id>a77944c89fb432107f44f1328124ab8d</sys_id>
|
|
<sys_mod_count>2</sys_mod_count>
|
|
<sys_name>x_cdltd_loaner_req_Requested for Locatio</sys_name>
|
|
<sys_package display_value="Loaner Request" source="x_cdltd_loaner_req">2c4209629f7322107f44d6013024ab4a</sys_package>
|
|
<sys_policy/>
|
|
<sys_scope display_value="Loaner Request">2c4209629f7322107f44d6013024ab4a</sys_scope>
|
|
<sys_update_name>cmn_map_page_a77944c89fb432107f44f1328124ab8d</sys_update_name>
|
|
<sys_updated_by>admin</sys_updated_by>
|
|
<sys_updated_on>2025-10-20 00:43:05</sys_updated_on>
|
|
<type>terrain</type>
|
|
<type_selection>buttons</type_selection>
|
|
<use_advanced_configuration>false</use_advanced_configuration>
|
|
</cmn_map_page>
|
|
</record_update>
|