var Bizgaze;
(function (Bizgaze) {
let Apps;
(function (Apps) {
let Routes;
(function (Routes) {
let Map;
(function (Map) {
class Routeschedule extends Unibase.Platform.Core.BaseComponent {
cssFiles() {
return [];
}
jsFiles() {
return [];
}
html(id, containerid) {
let html = ``;
return html;
}
load(id, containerid, callback) {
}
;
init(container) {
Bizgaze.Apps.Routes.Map.Routeschedule.Instance().render(container);
}
render(containerid) {
var portletwidgetid = Number($("#hf_PortletWidgetId").val());
$("." + containerid).empty();
let html = `
`;
$("." + containerid).append(html);
this.mapRoute();
}
mapRoute() {
var markers = [];
this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () {
var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
var Routedefinitionid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_routedefinitionid").Value);
Bizgaze.Apps.Routes.Managers.RouteManager.Instance().getSections(Routedefinitionid).then(function (response) {
var markers = [];
if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) {
$("#Customer_Length").text(response.result.length);
if (response.result.length != 0) {
for (var i = 0; i < response.result.length; i++) {
var data = response.result[i];
var addressId = data.ContactAddressId;
var contactId = data.ContactId;
var routeId = data.RouteId;
var routeIndex = data.RouteIndex;
var addressName = data.AddressName;
var contactName = data.ContactName;
var adrlatd = data.AddrLatd;
var adrlgtd = data.AddrLgtd;
var CustomerStatus = data.StatusId;
var RouteScheduleItemId = data.RouteScheduleItemId;
var objCustomer = {
"title": contactName,
"address": addressName,
"lat": adrlatd,
"lng": adrlgtd,
"description": contactName,
"type": CustomerStatus,
"ContactId": contactId,
"RouteScheduleItemId": RouteScheduleItemId
};
markers.push(objCustomer);
}
var mapOptions = {
center: new google.maps.LatLng(32.3917, 115.867),
zoom: 4,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("RouteMap"), mapOptions);
var infoWindow = new google.maps.InfoWindow();
var lat_lng = new Array();
var latlngbounds = new google.maps.LatLngBounds();
var markerArr = [];
for (var i = 0; i < markers.length; i++) {
var dat = markers[i];
var myLatlng = new google.maps.LatLng(dat.lat, dat.lng);
lat_lng.push(myLatlng);
var icon = "";
switch (dat.type) {
case 1:
icon = "green";
break;
case 2:
icon = "red";
break;
case 3:
icon = "yellow";
break;
}
icon = "http://maps.google.com/mapfiles/ms/icons/" + icon + ".png";
var marker;
marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: dat.title,
});
markerArr.push(marker);
latlngbounds.extend(marker.position);
(function (marker, dat) {
google.maps.event.addListener(marker, "click", function (e) {
infoWindow.setContent("" + "" + dat.title + ", " + dat.address + "" + "" + "
" + "
" + "" + " " + " " + "");
infoWindow.open(map, marker);
});
})(marker, dat);
map.setCenter(latlngbounds.getCenter());
map.fitBounds(latlngbounds);
}
var path = new google.maps.MVCArray();
var service = new google.maps.DirectionsService();
var poly = new google.maps.Polyline({ map: map, strokeColor: '#4986E7' });
for (var i = 0; i < lat_lng.length; i++) {
if ((i + 1) < lat_lng.length) {
var src = lat_lng[i];
var des = lat_lng[i + 1];
path.push(src);
poly.setPath(lat_lng);
poly.setMap(map);
}
}
}
}
});
});
}
loadWidgets(customerid, uniqueid) {
Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidgetbyuniqueid(uniqueid).then(function (response) {
var linkwidgetid = response.result.WidgetId;
Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidget(linkwidgetid).then(function (res) {
let ReplaceText = [];
let split = res.result.Parameter.split(':');
ReplaceText.push({
Key: split[0],
Value: (customerid).toString(),
ExpOp: 1
});
let reportwidget = Unibase.Themes.Compact.Components.ReportWidgets.Default.Instance().getReportWidget(0, linkwidgetid, "", ReplaceText, null, true, Unibase.Themes.Providers.DetailHelper.installedAppId, true);
});
});
}
static Instance() {
if (this.instance === undefined) {
this.instance = new Routeschedule();
}
return this.instance;
}
}
Map.Routeschedule = Routeschedule;
})(Map = Routes.Map || (Routes.Map = {}));
})(Routes = Apps.Routes || (Apps.Routes = {}));
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
})(Bizgaze || (Bizgaze = {}));